Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/mcb/dup.list
There are no other files named dup.list in the archive.
DUP MACRO M1110 13-OCT-79 08:21 PAGE 3
1 .TITLE DUP
2 .IDENT /V01.07/
3
4 ;
5 ; COPYRIGHT (C) 1978 BY
6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
7 ;
8 ;
9 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
10 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
11 ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
12 ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
13 ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
14 ; TRANSFERRED.
15 ;
16 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
17 ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
18 ; CORPORATION.
19 ;
20 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
21 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
22 ;
23 ;
24 ; MODULE DESCRIPTION:
25 ;
26 ; DUP-11 DEVICE DRIVER MODULE
27 ;
28 ;
29 ; DISTRIBUTED SYSTEMS SOFTWARE ENGINEERING
30 ;
31 ; IDENT HISTORY:
32 ;
33 ; 1.00 10-FEB-78
34 ; VERSION 2.0 RELEASE
35 ;
36 ; 1.01 17-NOV-78 BUREN HOFFMAN ;BH0001
37 ; REMOVED DLT DEFINITION TO DDML.MAC, FOR INCLUSION
38 ; IN NETLIB. ALSO MADE MODIFICATIONS TO ACCOMODATE
39 ; EVENT LOGGING.
40 ; 1.02 28-DEC-78 LEE WEBBER ;LW0002
41 ; CORRECTED TYPO IN ERROR LOGGING CODE
42 ; 1.03 3-JAN-79 BUREN HOFFMAN ;BH0003
43 ; FIXED YET ANOTHER BUG (YAB) IN EVENT LOGGING STUFF.
44 ; 1.04 12-JAN-79 BUREN HOFFMAN ;BH0004
45 ; MODIFIED TO USE NEW $CMLOG (V1.01).
46 ; 1.05 30-JAN-79 BUREN HOFFMAN ;BH0005
47 ; ADDED CODE TO ASSURE SIGN BIT SET IN REASON CODE FOR CMLOG CALL.
48 ; 1.06 1-FEB-79 BUREN HOFFMAN ;BH0006
49 ; CHANGED TO GLOBAL INVOCATION OF LINE TABLE DEFINITION MACROS.
50 ; 1.07 2-FEB-79 BUREN HOFFMAN ;BH0007
51 ; ADDED ERROR RETURN DETECTION IN COROUTINE CALL TO $CMLOG.
52 ; ALSO, STARTED UTILIZING EVLDF$ MACRO FOR LOGGING SYMBOLS.
53 ; OMITTED NEED FOR SIGN BIT SETTING IN 1.05.
54 ;
55
56 ; MACRO LIBRARY CALLS
57 ;
DUP MACRO M1110 13-OCT-79 08:21 PAGE 3-1
58 .MCALL NHWDF$,$INTSX,$INTXT,INHIB$,ENABL$
59 .MCALL $LIBCL,CCBDF$,MDCDF$,DUPDF$,CMLDF$,DEVDF,EVLDF$ ;BH0007
60 000000 MDCDF$ ; DEFINE MODEM CONTROL SYMBOLS ;**-2
61 000000 NHWDF$ ; DEFINE THE HARDWARE REGISTERS
62 000000 CCBDF$ ; DEFINE THE CCB OFFSETS
63 ;**-1
64 .IF DF R$$11D!I$$AS
65
66 .MCALL PRCHD$
67 PRCHD$ $DUPTB,DRIVER,CHAR ; DEFINE THE PROCESS HEADER
68
69 .ENDC
DUP MACRO M1110 13-OCT-79 08:21 PAGE 4
71 ;
72 ; LOCAL SYMBOL DEFINITIONS
73 ;
74 ; TRANSMITTER FLAGS
75 ;
76 000010 TINIT= 000010 ; INITIAL TRANSMIT STATUS
77 000020 SEND= 000020 ; TRANSMIT ENABLE
78 000100 TXINT= 000100 ; TRANSMIT INTERRUPT ENABLE
79 001000 TXACT= 001000 ; TRANSMIT ACTIVE
80
81 000400 TSOM= 000400 ; TRANSMIT START OF MESSAGE
82 001000 TEOM= 001000 ; TRANSMIT END OF MESSAGE
83
84 ;
85 ; RECEIVE CSR FLAGS
86 ;
87 000020 RCVEN= 000020 ; RECEIVE ENABLE
88 000100 RXINT= 000100 ; RECEIVE INTERRUPT ENABLE
89 010000 CRC= 010000 ; RECEIVE CRC CHECK
90 000400 SSYN= 000400 ; STRIP SYNC
91 000522 RINIT= SSYN!RXINT!RCVEN!DTR ; INITIAL RECEIVE STATUS
92
93 ;
94 ; MODEM STATUS FLAGS
95 ;
96 000004 RTS= 000004 ; REQUEST TO SEND LEAD
97 020000 CTS= 020000 ; CLEAR TO SEND
98 000002 DTR= 000002 ; DATA TERMINAL READY
99 001000 DSR= 001000 ; DATA SET READY
100 040000 RING= 040000 ; RING INDICATOR
101
102 ;
103 ; MISCELENIOUS FLAGS
104 ;
105 100000 INPRM= 100000 ; INITIALIZATION FLAGS (DEC MODE)
DUP MACRO M1110 13-OCT-79 08:21 PAGE 5
107 ; ;BH0001
108 ; DEFINE THE DUP DEVICE CODE ;BH0001
109 ; ;BH0001
110 000000 DEVDF ;BH0001
111 000000 EVLDF$ ;BH0007
112 ;BH0001
113 ; ;BH0001
114 ; DEFINE THE EVENT LOGGING MAPPING TABLE ;BH0001
115 ; ;BH0001
116 000000 000003 ERRTB: .WORD ERRTBL ;**LENGTH OF TABLE ;BH0001
117 000002 000400 000023 .WORD CS.DCR,E$RCRC ; CRC ERROR ;BH0007
118 000006 000004 000012 .WORD CS.ROV,E$ROVR ; RECEIVER OVERRUN ;BH0007
119 000012 020000 000006 .WORD CS.TMO,E$RRTO ; TIMEOUT ;BH0007
120 000003 ERRTBL=<.-ERRTB-2>/4 ;BH0007
121 ;BH0004
122 ; ;BH0004
123 ; DEFINE THE $CMLOG ARGUMENT BLOCK ;BH0004
124 ; ;BH0004
125 000012 LGDAT=10. ; HDR + 4*REGS = 5.WORDS = 10.BYTES ;BH0007
126 000016 CMLDF$ DUP,E$THDW,,DUP,ERRTB,LGDAT ;BH0007
000016 000000 PDST: .WORD 0 ; LOGGING DESTINATION
000020 000000 PRSN: .WORD 0 ; " REASON
000022 177777 PDT1: .WORD -1 ; FORMAT DEPENDENT ARG #1
000024 000012 PDT2: .WORD DUP ; " " " #2
000026 000012 PLNG: .WORD LGDAT ; BYTES OF COROUTINE-ADDED INFO
000030 016130 PNAM: .RAD50 /DUP/ ; PROCESS NAME
000032 000003 PTYP: .WORD E$THDW ; EVENT TYPE CODE
000034 000000' PTAB: .WORD ERRTB ; ERROR CODE MAPPING TABLE
000036 000000 PSTA: .WORD 0 ; STATE WORD FOR USE BY $CMLOG
127 000022' PLIN=PDT1 ; SYS LINE # ;BH0004
128 000024' PDID=PDT2 ; DEVICE ID ;BH0004
129 ;BH0006
130 000040 DUPDF$ <:>,<=>,LST ;BH0006
;
; DEVICE LINE TABLE OFFSET DEFINITIONS
;
000000 .ASECT
000000 .=0
000000 TIME:: .BLKB 1 ; DEVICE DRIVER TIMER CELL
000001 TIMS:: .BLKB 1 ; DEVICE DRIVER INITIAL TIMEOUT
000002 RINS:: .INT ; RECEIVE TRANSFER INSTRUCTION
.EVEN
.IF DF M$$MGE
000002 .BLKW 7
.IFF
.BLKW 2
.ENDC
000020 RDBF:: .BLKW 1 ; RECEIVE DATA ADDRESS
.IF DF M$$MGE
000022 RBIAS:: .BLKW 1 ; RELOCATION BIAS
.IFTF
000024 RADD:: .BLKW 1 ; VIRTUAL ADDRESS
000026 RCNT:: .BLKW 1 ; REMAINING COUNT
000030 RPRI:: .PRI ; PRIORITY
.EVEN
000030 .BLKW 1
000032 RTHRD:: .BLKW 1 ; POINTER TO CURRENT BUFFER IN CCB
DUP MACRO M1110 13-OCT-79 08:21 PAGE 5-1
000034 RFLAG:: .BLKW 1 ; FLAGS WORD
000036 RPRIM:: .BLKW 1 ; PRIMARY CCB (CURRENT)
000040 RSTAT:: .BLKW 1 ; DEVICE STATUS
000042 RPCNT:: .BLKW 1 ; SIZE OF DATA IN NUMBERED MESSAGE
000044 TINS:: .INT ; TRANSMIT TRANSFER INSTRUCTION
.EVEN
.IF DF M$$MGE
000044 .BLKW 7
.IFF
.BLKW 2
.ENDC
000062 TCSR:: .BLKW 1 ; CSR ADDRESS
.IFT
000064 TBIAS:: .BLKW 1 ; RELOCATION BIAS
.IFTF
000066 TADD:: .BLKW 1 ; VIRTUAL ADDRESS
000070 TCNT:: .BLKW 1 ; REMAINING COUNT
000072 TPRI:: .PRI ; PRIORITY
.EVEN
000072 .BLKW 1
000074 TSTAT:: .BLKW 1 ; NEXT STATE
000076 TTHRD:: .BLKW 1 ; POINTER TO CURRENT BUFFER IN CCB
000100 TPRIM:: .BLKW 1 ; PRIMARY CCB (CURRENT)
000102 TSEC:: .BLKW 1 ; SECONDARY CCB CHAIN
000104 KICCB:: .BLKW 1 ; ADDRESS OF CCB USED IN KILL
000106 LINE:: .BLKW 1 ; DEVICE SYSTEM LINE NUMBER
000110 DUPCH:: .DVCHA ; DEVICE CHA. (LOADED BY .DVCHA) ONLY THE
.EVEN
000110 .BLKW 2
; FULL/HALF DUPLEX INDICATOR IS USED
000114 DUPLG:: .BLKW 1 ; EVENT LOGGING DESTINATION
000116 HDRA:: .LIBR
.EVEN
.IF DF M$$MGE
000116 .BLKW 2
.IFF
.BLKW 1
.ENDC
.ENDC
000122 DUPLN:: ; LENGTH OF DUP LINE TABLE
000040 .PSECT
DUP MACRO M1110 13-OCT-79 08:21 PAGE 6
132 ;+ ;**-2
133 ; **-$DUPTB-DUP11 DEVICE DRIVER DISPATCH TABLE
134 ;
135 ;-
136
137 000040 000630' $DUPTB::.WORD DPASX ; TRANSMIT ENABLE
138 000042 001324' .WORD DPASR ; RECEIVE ENABLE (ASSIGN BUFFER)
139 000044 001346' .WORD DPKIL ; KILL I/O
140 000046 001466' .WORD DPCTL ; CONTROL INITIATION
141 000050 001746' .WORD DPTIM ; TIME OUT
142 ; TRANSMIT COMPLETE (VIA INTERRUPT)
143 ; RECEIVE COMPLETE (VIA INTERRUPT)
144 ; KILL COMPLETE
145 ; CONTROL COMPLETE
146
147 ;
148 ; **-CONTROL SUBFUNCTION DISPATCH TABLE
149 ;
150
151 000052 177777 CTDSP: .WORD -1 ; INITIALIZE
152 000054 001472' .WORD DPSTR ; START
153 000056 001574' .WORD DPSTP ; STOP
154 000060 177777 .WORD -1 ; EXIT
155 000062 177777 .WORD -1 ; MAINTANCE
156 000064 177777 .WORD -1 ; SET CHARACTERISTICS
157 000066 177777 .WORD -1 ; GET CHARACTERISTICS
158 000070 177777 .WORD -1 ; XON
159 000072 177777 .WORD -1 ; XOFF
160 000074 001742' .WORD DPRNG ; LOOK FOR RING
161 000076 001666' .WORD DPENB ; ENABLE LINE
162 000100 001700' .WORD DPDIS ; DISABLE LINE
163 000102 001710' .WORD DPMSN ; SENSE MODEM STATUS
DUP MACRO M1110 13-OCT-79 08:21 PAGE 7
165 ;+
166 ; **-$DUPRI-DUP11 RECEIVE INTERRUPT SERVICE ROUTINE
167 ;
168 ; THE DEVICE INTERRUPT IS VECTORED TO THE DEVICE LINE TABLE
169 ; BY THE HARDWARE AND THIS ROUTINE IS ENTERED BY A
170 ; 'JSR R5,$DUPRI' INSTRUCTION AT THE BEGINNING OF THE LINE
171 ; TABLE.
172 ;
173 ; INPUTS:
174 ;
175 ; R5 = ADDRESS OF DEVICE LINE TABLE + 4
176 ; STACK:
177 ; 0(SP) = SAVED R5
178 ; 2(SP) = INTERRUPTED BIAS
179 ; 4(SP) = INTERRUPTED PC
180 ; 6(SP) = INTERRUPTED PS
181 ;
182 ; OUTPUTS:
183 ;
184 ; ETC.
185 ;-
186
187 000104 $DUPRI::
188 000104 010446 MOV R4,-(SP) ;;; SAVE R4
189 000106 012504 MOV (R5)+,R4 ;;; GET ADDRESS OF RECEIVER DATA BUFFER
190 000110 011404 MOV (R4),R4 ;;; GET CHARACTER AND FLAGS
191 000112 100415 BMI DPRHO ;;; ANY ERROR IS RECEIVER OVERRUN
192
193 .IF DF M$$MGE
194
195 .IF DF R$$11D!I$$AS
196
197 MOV KP.AR2,-(SP) ;;; SAVE CURRENT MAP
198 MOV (R5)+,KP.AR2 ;;; MAP TO DATA BUFFER
199
200 .IFF
201
202 000114 016746 172354 MOV KISAR6,-(SP) ;;; SAVE CURRENT MAP
203 000120 012567 172354 MOV (R5)+,KISAR6 ;;; MAP TO DATA BUFFER
204
205 .ENDC
206
207 .IFTF
208
209 000124 110435 MOVB R4,@(R5)+ ;;; STORE CHARACTER IN RECEIVE BUFFER
210
211 .IFT
212
213 .IF DF R$$11D!I$$AS
214
215 MOV (SP)+,KP.AR2 ;;; RESTORE PREVIOUS MAPPING
216
217 .IFF
218
219 000126 012667 172354 MOV (SP)+,KISAR6 ;;; RESTORE PREVIOUS MAPPING
220
221 .ENDC
DUP MACRO M1110 13-OCT-79 08:21 PAGE 7-1
222
223 .ENDC
224
225 000132 005315 DEC (R5) ;;; DECREMENT REMAINING BYTE COUNT
226 000134 001414 BEQ DPRCP ;;; IF EQ RECEIVE COMPLETE
227 000136 005245 INC -(R5) ;;; ADVANCE BUFFER ADDRESS
228 000140 012604 MOV (SP)+,R4 ;;; RESTORE REGISTERS
229 000142 $INTXT ;;; EXIT THE INTERRUPT
230
231 ;
232 ; EXCEPTIONAL RECEIVE SERVICE ROUTINES
233 ;
234 ; HARDWARE OVERRUN
235 ;
236 .ENABL LSB
237
238 000146 062705 000004 DPRHO: ADD #<RCNT-RDBF-2>,R5 ;;; POINT TO COUNT CELL
239 000152 012765 100001 000006 MOV #100001,RFLAG-RCNT(R5) ;;; SET FLAGS TO COMPLETE REQUEST AND
240 ;;; CLEAR RECEIVE ACTIVE ON EXIT
241 000160 012765 100004 000012 MOV #CS.ERR+CS.ROV,RSTAT-RCNT(R5) ;;; SET OVERRUN STATUS
242
243 ;
244 ; RECEIVE BYTE COUNT RUNOUT
245 ;
246
247 000166 010425 DPRCP: MOV R4,(R5)+ ;;; SAVE CRC FLAG AND POINT TO PRIORITY
248 000170 016504 177770 MOV RDBF-RPRI(R5),R4 ;;; GET RECEIVE DATA BUFFER ADDRESS
249 000174 042744 000100 BIC #RXINT,-(R4) ;;; CLEAR RECEIVER INTERRUPT ENABLE
250 000200 012604 MOV (SP)+,R4 ;;; RESTORE R4 SO '$INTSV' IS HAPPY
251 000202 $INTSX ;;; DO A TRICKEY $INTSV (R5 PRESAVED BUT NOT R4)
252 000206 010346 MOV R3,-(SP) ;; SAVE AN ADDITIONAL REGISTER
253 000210 005725 TST (R5)+ ;; POINT TO FLAGS WORD
254 000212 006225 ASR (R5)+ ;; LOAD C-BIT FROM FLAGS (BIT 0)
255 000214 103447 BCS 20$ ;; IF CS DATA, POST COMPLETION
256 000216 011504 MOV (R5),R4 ;; GET PRIMARY CCB ADDRESS
257 .LIST MEB
258 000220 $LIBCL HDRA-RPRIM,R5,$DDHAR,SAV ;; CALL DDHAR THROUGH LINE TABLE
000220 013746 172354 MOV @#KISAR6,-(SP)
000224 016537 000060 172354 MOV HDRA-RPRIM(R5),@#KISAR6
000232 004737 000000G JSR PC,@#$DDHAR
000236 012637 172354 MOV (SP)+,@#KISAR6
259 .NLIST MEB
260 000242 006065 177776 ROR -2(R5) ;; SAVE 'FINAL SEEN' IN FLAGS (BIT 15 SET)
261 000246 005703 TST R3 ;; EXAMINE BYTE COUNT FOR THIS MESSAGE
262 000250 100420 BMI 10$ ;; IF MI AN INVALID HEADER RECEIVED
263 000252 001404 BEQ 7$ ;; IF EQ SET TO RECEIVE REST OF HEADER
264 000254 062703 000002 ADD #2,R3 ;; ACCOUNT FOR BCC IN CURRENT COUNT
265 000260 010365 000004 MOV R3,RPCNT-RPRIM(R5) ;; SAVE DATA COUNT UNTIL HEADER CRC
266 ;; IS CHECKED
267 000264 012703 000005 7$: MOV #5,R3 ;; GET REMAINING HEADER
268 000270 005245 INC -(R5) ;; MARK DATA IN PROGRESS IN FLAGS (BIT 0 SET)
269 000272 060355 ADD R3,@-(R5) ;; INCLUDE CURRENT COUNT IN TOTAL COUNT
270 000274 062705 177774 ADD #RCNT-RTHRD,R5 ;; POINT TO CURRENT COUNT
271 000300 010315 MOV R3,(R5) ;; SET UP CURRENT BYTE COUNT
272 000302 005245 INC -(R5) ;; MOVE BUFFER ADDRESS PAST BCC
273
274 .IF DF M$$MGE
DUP MACRO M1110 13-OCT-79 08:21 PAGE 7-2
275
276 000304 016503 177774 MOV -4(R5),R3 ;; GET ADDRESS OF RECEIVE DATA BUFFER
277
278 .IFF
279
280 MOV -(R5),R3 ;; GET ADDRESS OF RECEIVE DATA BUFFER
281
282 .ENDC
283
284 000310 000463 BR REXT0 ;; FINISH IN COMMON CODE
285
286 ;
287 ; INVALID HEADER RECEIVED
288 ;
289
290 000312 032703 004000 10$: BIT #CS.MTL,R3 ;; MESSAGE TO LONG ?
291 000316 001035 BNE 31$ ;; IF NE YES, POST COMPLETION
292 000320 012504 MOV (R5)+,R4 ;; RECOVER PRIMARY CCB ADDRESS
293 000322 CALL BUFUSE ;; SET UP THIS CCB AGAIN (CLEARS 'RSTAT')
294 000326 016503 177762 MOV RDBF-RPRIM(R5),R3 ;; SET POINTER TO REC. DAT. BUFF.
295 000332 000456 BR 40$ ;; CLEAR RECEIVE ACTIVE TO FORCE RESYNC
296
297 ;
298 ; POST COMPLETION ON RECEIVE COMPLETE
299 ;
300 ; R5 = POINTS TO PRIMARY CCB ADDRESS
301 ;
302
303 000334 032765 010000 177770 20$: BIT #CRC,RCNT-RPRIM(R5) ;; IS CRC FLAG SET ?
304 000342 001003 BNE 25$ ;; IF NE, YES - CRC IS VALID
305 000344 012703 100400 MOV #CS.ERR+CS.DCR,R3 ;; ELSE SET CRC ERROR STATUS FOR DLC
306 000350 000420 BR 31$ ;; GO RETURN BUFFER
307 000352 016565 000004 177770 25$: MOV RPCNT-RPRIM(R5),RCNT-RPRIM(R5) ;; SET REMAINING COUNT
308 000360 001413 BEQ 30$ ;; NONE SO END OF MESSAGE
309 000362 066575 000004 177774 ADD RPCNT-RPRIM(R5),@RTHRD-RPRIM(R5) ;; SET TOTAL COUNT IN CCB
310 000370 000261 SEC ;; FORCE C BIT
311 000372 006165 177776 ROL RFLAG-RPRIM(R5) ;; PUT Q SYN BACK & MARK NON HEADER
312 000376 005265 177766 INC RADD-RPRIM(R5) ;; INCLUDE LAST CHAR IN BUFFER
313 000402 016503 177762 MOV RDBF-RPRIM(R5),R3 ;; GET CSR FOR EXIT
314 000406 000422 BR REXT ;; TAKE COMMON EXIT
315 000410 005003 30$: CLR R3 ;; GET GOOD STATUS
316 000412 012504 31$: MOV (R5)+,R4 ;; GET PRIMARY CCB ADDRESS
317 000414 051503 BIS (R5),R3 ;; PICK UP ADDITIONAL STATUS
318 ;BH0001
319 ; LOG ANY ABNORMALITY HERE ;BH0001
320 000416 100006 BPL 35$ ; JUMP AHEAD IF NO ERROR ;BH0001
321 000420 010546 MOV R5,-(SP) ; SAVE R5 ;BH0001
322 000422 162705 000040 SUB #RSTAT,R5 ; POINT AT FIRST OF DLT ;BH0001
323 000426 CALL LOGGIT ; DO THE LOGGING ;BH0001
324 000432 012605 MOV (SP)+,R5 ; RESTORE R5 ;BH0001
325 000434 35$: ;BH0001
326 000434 CALL $DDRCP ;; POST RECEIVE COMPLETION
327 000440 016503 177760 MOV RDBF-RSTAT(R5),R3 ;; GET ADDRESS OF RECEIVE DATA BUFFER
328 000444 CALL BUFSET ;; SET UP NEXT RECEIVE BUFFER
329 000450 103405 BCS REXT1 ;; IF CS NO BUFFER AVAILABLE TURN OFF RECEIVER
330 000452 001006 BNE 40$ ;; IF NE CLEAR RECEIVE ACTIVE TO RESYNC
331 000454 005065 000004 REXT: CLR RPCNT-RPRIM(R5) ;; RESET PARTIAL COUNT
DUP MACRO M1110 13-OCT-79 08:21 PAGE 7-3
332 000460 052743 000100 REXT0: BIS #RXINT,-(R3) ;; ENABLE RECEIVER INTERRUPTS
333 000464 012603 REXT1: MOV (SP)+,R3 ;; RESTORE R3
334 000466 RETURN ;; RETURN TO SYSTEM
335
336 000470 40$: ;; REF LABEL
337 ;
338 ; CLEAR RECEIVE ACTIVE TO FORCE RESYNC
339 ;
340 ; R3 = ADDRESS OF RECEIVE DAT BUFFER
341 ; R5 = ADDRESS OF 'RPRIM'
342 ;
343
344 000470 005045 DPCRA: CLR -(R5) ;; CLEAR FLAGS WORD
345 000472 042743 000020 BIC #RCVEN,-(R3) ;; CLEAR RECEIVE ACTIVE FOR RESYNC
346 000476 005065 000006 CLR RPCNT-RFLAG(R5) ;; RESET PARTIAL COUNT
347 000502 052765 010000 000004 BIS #CS.RSN,RSTAT-RFLAG(R5) ;; INDICATE A RESYNC
348 000510 052713 000522 BIS #RINIT,(R3) ;; ENABLE RECEIVER
349 000514 000763 BR REXT1 ;; FINISH IN COMMON CODE
350
351 .DSABL LSB
DUP MACRO M1110 13-OCT-79 08:21 PAGE 8
353 ;+
354 ; **-$DUPTI-DUP11 TRANSMIT INTERRUPT SERVICE
355 ;
356 ;
357 ; THIS ROUTINE IS ENTERED ON A TRANSMITTER INTERRRUPT VIA
358 ; A 'JSR R5,DUPTI' WITH R5 CONTAINING THE ADDRESS OF THE
359 ; DEVICE LINE TABLE OFFSET BY 'TCSR'.
360 ;
361 ; INPUTS:
362 ;
363 ; R5 = ADDRESS OF DEVICE LINE TABLE + 'TCSR'
364 ; STACK CONTAINS:
365 ; 0(SP) = INTERRUPTED R5
366 ; 2(SP) = INTERRUPTED BIAS
367 ; 4(SP) = INTERRUPTED PC
368 ; 6(SP) = INTERRUPTED PS
369 ;
370 ; OUTPUTS:
371 ;
372 ; ETC.
373 ;-
374 .ENABL LSB
375
376 000516 $DUPTI::
377 000516 010446 MOV R4,-(SP) ;;; SAVE R4
378 000520 012504 MOV (R5)+,R4 ;;; GET TRANSMITTER CSR ADDRESS
379 000522 005724 TST (R4)+ ;;; TEST FOR UNDERRUN
380 000524 100416 BMI 10$ ;;; IF MI, UNDERRUN - WAIT FOR TIMEOUT
381 000526 005365 000004 DEC TCNT-TCSR-2(R5) ;;; DECEREMENT COUNT
382 000532 001421 BEQ 20$ ;;; IF EQ, BYTE COUNT RUNOUT
383
384 .IF DF M$$MGE
385
386 .IF DF R$$11D!I$$AS
387
388 MOV KP.AR2,-(SP) ;;; SAVE CURRENT MAPPING
389 MOV (R5)+,KP.AR2 ;;; MAP TO DATA BUFFER
390
391 .IFF
392
393 000534 016746 172354 MOV KISAR6,-(SP) ;;; SAVE CURRENT MAPPING
394 000540 012567 172354 MOV (R5)+,KISAR6 ;;; MAP TO DATA BUFFER
395
396 .ENDC
397
398 .IFTF
399
400 000544 113514 MOVB @(R5)+,(R4) ;;; OUTPUT A CHARACTER
401
402 .IFT
403
404 .IF DF R$$11D!I$$AS
405
406 MOV (SP)+,KP.AR2 ;;; RESTORE PREVIOUS MAPPING
407
408 .IFF
409
DUP MACRO M1110 13-OCT-79 08:21 PAGE 8-1
410 000546 012667 172354 MOV (SP)+,KISAR6 ;;; RESTORE PREVIOUS MAPPING
411
412 .ENDC
413
414 .IFTF
415
416 000552 005245 INC -(R5) ;;; UPDATE BUFFER ADDRESS
417 000554 012604 MOV (SP)+,R4 ;;; RESTORE R4
418 ; MOV (SP)+,R5 ;;; RESTORE R5
419 ; RTI ;;; EXIT INTERRUPT
420 000556 $INTXT
421
422 ;
423 ; TRANSMITTER UNDERRUN
424 ;
425 ; DISABLE TRANSMITTER INTERRUPTS AND WAIT FOR A TIMEOUT
426 ;
427
428 000562 152764 000001 000001 10$: BISB #TSOM/400,1(R4) ;;; CLEAR UNDERRUN BIT
429 000570 012765 001110' 000010 MOV #TUNST,TSTAT-TCSR-2(R5) ;;; SET STATE TO DISABLE TRANSMITTER
430
431 ;
432 ; TRANSMIT BYTE COUNT RUNOUT
433 ;
434 ; OUTPUT TO STATE PROCESSING ROUTINES:
435 ;
436 ; R3 = ADDRESS OF TRANSMITTER CSR
437 ; R5 = ADDRESS OF THREAD WORD CELL
438 ;
439
440 000576 062705 000006 20$: ADD #TPRI-TCSR-2,R5 ;;; POINT TO PRIORITY DATA
441 000602 042744 000100 BIC #TXINT,-(R4) ;;; CLEAR INTERRUPT ENABLE
442 000606 012604 MOV (SP)+,R4 ;;; RESTORE R4 SO '$INTSV' IS HAPPY
443 000610 $INTSX ;SAVE WITH R5 ON STACK BUT NOT R4
444
445 .IFT
446
447 .IF DF R$$11D!I$$AS
448
449 MOV #KP.AR2,-(SP) ;;; THIS ENTRY WAS FROM KERNEL MODE
450 MOV KP.AR2,-(SP) ;;; SAVE CURRENT MAPPING
451
452 .IFF
453
454 000614 016746 172354 MOV KISAR6,-(SP) ;; SAVE CURRENT MAPPING
455
456 .ENDC
457
458 .IFTF
459
460 000620 010346 MOV R3,-(SP) ;; SAVE AN ADDITIONAL REGISTER
461 000622 016503 177766 MOV TCSR-TSTAT(R5),R3 ;; GET TRANSMITTER CSR ADDRESS
462 000626 CALLR @(R5)+ ;; DISPATCH TO PROCESSING ROUTINE
463
464 .DSABL LSB
DUP MACRO M1110 13-OCT-79 08:21 PAGE 9
466 ;+
467 ; **-DPASX-ASSIGN A TRANSMIT BUFFER
468 ;
469 ;
470 ; THIS ROUTINE IS ENTERED VIA THE MATRIX SWITCH TO
471 ; QUEUE A CCB FOR TRANSMISSION.
472 ;
473 ; INPUTS:
474 ;
475 ; R4 = ADDRESS OF CCB TO TRANSMIT
476 ; R5 = ADDRESS OF DEVICE LINE TABLE
477 ;
478 ; OUTPUTS:
479 ;
480 ; IF THE TRANSMITTER IS IDLE, TRANSMISSION IS
481 ; INITIATED; OTHERWISE, THE CCB (OR CHAIN) IS QUEUED TO
482 ; THE END OF THE SECONDARY CHAIN.
483 ;
484 ; REGISTERS MODIFIED:
485 ;
486 ; R3, R4, AND R5
487 ;-
488
489 000630 DPASX:
490 000630 016503 000062 MOV TCSR(R5),R3 ; GET TRANSMITTER CSR ADDRESS
491 000634 042713 000100 BIC #TXINT,(R3) ; DISABLE TRANSMITTER INTERRUPTS
492 000640 062705 000100 ADD #TPRIM,R5 ; POINT TO PRIMARY CELL
493
494 .IFT
495
496 .IF DF R$$11D!I$$AS
497
498 MOV #UPAR0+4,-(SP) ; SHOW ENTRY WAS FROM USER MODE
499 MOV UPAR0+4,-(SP) ; SAVE CURRENT MAPPING
500
501 .IFF
502
503 000644 016746 172354 MOV KISAR6,-(SP) ; SAVE CURRENT MAPPING
504
505 .ENDC
506
507 .IFTF
508
509 000650 010346 MOV R3,-(SP) ; SAVE R3
510 000652 005725 TST (R5)+ ; PRIMARY ASSIGNED ?
511 000654 001010 BNE 10$ ; IF NE, YES - QUEUE TO SECONDARY CHAIN
512 000656 CALL TBSET ; SET UP PRIMARY
513 000662 032713 001000 BIT #TXACT,(R3) ; TRANSMITTER ACTIVE ?
514 000666 001411 BEQ STSTR ; IF EQ, NO - START IMMEDIATELY
515 000670 012745 000712' MOV #STSTR,-(R5) ; SET STATE FOR STARTUP
516 000674 000467 BR WAITI ; WAIT FOR INTERRUPT
517
518 000676 010446 10$: MOV R4,-(SP) ; SAVE POINTER TO FIRST CCB
519 000700 010504 20$: MOV R5,R4 ; COPY POINTER TO CCB
520 000702 011405 MOV (R4),R5 ; GET NEXT CCB
521 000704 001375 BNE 20$ ; IF NE, KEEP GOING
522 000706 012614 MOV (SP)+,(R4) ; LINK NEW CCB CHAIN TO LAST CCB
DUP MACRO M1110 13-OCT-79 08:21 PAGE 9-1
523 000710 000551 BR TEXT2 ; FINISH IN COMMON CODE
524
525 ;+
526 ; **-STSTR-STARTUP STATE PROCESSING
527 ;
528 ;-
529
530 000712 052763 000004 177774 STSTR: BIS #RTS,-4(R3) ; ASSERT REQUEST TO SEND
531 000720 052713 000020 BIS #SEND,(R3) ; ENABLE TRANSMITTER
532 000724 116565 177703 177702 MOVB TIMS-TTHRD(R5),TIME-TTHRD(R5) ; START TIMER
533
534 ;+
535 ; **-STCTS-WAIT FOR CLEAR TO SEND STATE PROCESSING
536 ;
537 ;-
538
539 000732 032763 020000 177774 STCTS: BIT #CTS,-4(R3) ; IS CLEAR TO SEND UP ?
540 000740 001007 BNE STSYN ; IF NE, YES - START SYNC TRAIN
541 000742 012745 000732' MOV #STCTS,-(R5) ; SET STATE FOR CTS
542 000746 012704 000000G MOV #$PADB,R4 ; SET ADDRESS OF PAD BUFFER
543 000752 012746 000400 MOV #TSOM,-(SP) ; SET TSOM, CLEAR TEOM
544 000756 000510 BR TEXT1 ; FINISH IN COMMON CODE
545
546 ;+
547 ; **-STSYN-SYNC TRAIN REQUIRED STATE PROCESSING
548 ;
549 ;-
550
551 000760 012745 001132' STSYN: MOV #STDAT,-(R5) ; SET STATE FOR DATA
552 000764 012704 000000G MOV #$SYNB,R4 ; SET ADDRESS OF SYNC BUFFER
553 000770 012746 000400 MOV #TSOM,-(SP) ; SET TSOM, CLEAR TEOM
554 000774 000476 BR TEXT0 ; FINISH IN COMMON CODE
555
556 ;+
557 ; **-STCRC-SEND CRC STATE PROCESSING
558 ;
559 ;-
560 .ENABL LSB
561
562 000776 052763 001000 000002 STCRC: BIS #TEOM,2(R3) ; SEND CRC
563 001004 CALL TPOST ; POST COMPLETION AND SET UP NEXT CCB
564 001010 001011 BNE 10$ ; IF NE, NOTHING MORE TO SEND
565 001012 012745 001132' MOV #STDAT,-(R5) ; ASSUME NEXT STATE IS SEND SYNC'S
566 001016 032764 000040 000006 BIT #CF.SYN,C.FLG-C.BUF(R4) ; ARE SYNC'S REQUIRED ?
567 001024 001413 BEQ 20$ ; IF EQ, NO - LEAVE ASSUMED STATE
568 001026 012715 000760' MOV #STSYN,(R5) ; ELSE CHANGE STATE TO SEND SYNC'S
569 001032 000410 BR 20$ ; WAIT FOR CRC TO BE SENT
570
571 001034 012745 001072' 10$: MOV #STIDL,-(R5) ; SET STATE TO IDLE
572 001040 042713 000020 BIC #SEND,(R3) ; SHUT DOWN TRANSMITTER
573 001044 032765 000001 000014 BIT #1,DUPCH-TSTAT(R5) ;FULL OR HALF DUPLEX
574 001052 001413 BEQ 30$ ; IF EQ, FULL DUPLEX - EXIT
575 001054 20$: ;
576
577 ;+
578 ; **-WAITI-WAIT FOR INTERRUPT
579 ;
DUP MACRO M1110 13-OCT-79 08:21 PAGE 9-2
580 ;-
581
582 001054 012765 000001 177774 WAITI: MOV #1,TCNT-TSTAT(R5) ; WAIT FOR ONE INTERRUPT
583 001062 116565 177705 177704 MOVB TIMS-TSTAT(R5),TIME-TSTAT(R5) ; START TIMER
584 001070 000461 BR TEXT2 ; FINISH IN COMMON CODE
585
586 ;+
587 ; **-STIDL-IDLE STATE PROCESSING
588 ;
589 ;-
590
591 001072 042763 000004 177774 STIDL: BIC #RTS,-4(R3) ; DROP REQUEST TO SEND
592 001100 005745 TST -(R5) ;
593 001102 105065 177704 30$: CLRB TIME-TSTAT(R5) ; CLEAR TIMER
594 001106 000454 BR TEXT3 ; FINISH IN COMMON CODE
595
596 .DSABL LSB
597 ;+
598 ; **-TUNST-TRANSMIT DATA UNDER RUN STATE
599 ;
600 ; RETURN ALL TRANSMIT BUFFERS TO HIGHER LEVEL
601 ;-
602 001110 062705 177702 TUNST: ADD #-TTHRD,R5 ;;TIMEOUT EXPECTS DDM LINE TABLE POINTER
603 001114 105015 CLRB (R5) ;;RESET TIMER
604 001116 CALL DPTIM ;;FAKE A TIMEOUT TO RETURN BUFFERS
605 001122 012765 001072' 000006 MOV #STIDL,TSEC-TSTAT(R5) ;;SET STATE TO IDLE
606 001130 000443 BR TEXT3 ;;TAKE COMMON EXIT
607
608
609 ;+
610 ; **-STDAT-DATA STATE PROCESSING
611 ;
612 ;-
613
614 001132 011504 STDAT: MOV (R5),R4 ; GET ADDRESS OF FLAGS WORD FROM THREAD
615 001134 062715 000010 ADD #C.FLG-C.STS,(R5) ; UPDATE THREAD POINTER
616 001140 005724 TST (R4)+ ; LAST BUFFER THIS CCB ? (BIT 15 SET)
617 001142 100002 BPL 10$ ; IF PL, NO
618 001144 CALL TPOST ; POST COMPLETION AND SET UP NEXT CCB
619 001150 012745 001132' 10$: MOV #STDAT,-(R5) ; ASSUME DATA CONTINUES
620 001154 032764 000004 000006 BIT #CF.EOM,C.FLG-C.BUF(R4) ; SEND CRC FOLLOWING THIS BUFFER ?
621 001162 001402 BEQ 20$ ; IF EQ, NO - LEAVE ASSUMED STATE
622 001164 012715 000776' MOV #STCRC,(R5) ; ELSE CHANGE STATE FOR CRC TO BE SENT
623 001170 005046 20$: CLR -(SP) ; CLEAR TSOM, CLEAR TEOM
624
625 ;+
626 ; **-TEXT0-COMMON EXIT ROUTINES
627 ; **-TEXT1-
628 ; **-TEXT2-
629 ; **-TEXT3-
630 ;
631 ;-
632
633 001172 116565 177705 177704 TEXT0: MOVB TIMS-TSTAT(R5),TIME-TSTAT(R5) ; START TIMER
634 001200 062705 177770 TEXT1: ADD #TCSR-TSTAT+2,R5 ; POINT TO CURRENT BUFFER CELL
635
636 .IFT
DUP MACRO M1110 13-OCT-79 08:21 PAGE 9-3
637
638 001204 012425 MOV (R4)+,(R5)+ ; COPY RELOCATION BIAS
639
640 .IFF
641
642 TST (R4)+ ; SKIP OVER RELOCATION BIAS IN CCB
643
644 .IFTF
645
646 001206 012425 MOV (R4)+,(R5)+ ; COPY VIRTUAL ADDRESS
647 001210 011415 MOV (R4),(R5) ; AND THE BYTE COUNT
648
649 .IFT
650
651 .IF DF,R$$11D!I$$AS
652
653 MOV -4(R5),@6(SP) ; MAP TO DATA BUFFER (USER/KERNEL MODE)
654
655 .IFF
656
657 001212 016567 177774 172354 MOV -4(R5),KISAR6 ; MAP TO DATA BUFFER
658
659 .ENDC
660
661 .IFTF
662
663 001220 157516 177776 BISB @-2(R5),(SP) ; BUILD CHARACTER TO OUTPUT
664 001224 005265 177776 INC -2(R5) ; UPDATE VIRTUAL ADDRESS
665 001230 012663 000002 MOV (SP)+,2(R3) ; OUTPUT CHARACTER AND FLAGS
666 001234 052713 000100 TEXT2: BIS #TXINT,(R3) ; ENABLE TRANSMITTER INTERRUPTS
667 001240 012603 TEXT3: MOV (SP)+,R3 ; RESTORE R3
668 .IFT
669
670 .IF DF R$$11D!I$$AS
671
672 MOV (SP)+,@(SP)+ ; RESTORE PREVIOUS MAPPING (KERNEL/USER)
673
674 .IFF
675
676 001242 012667 172354 MOV (SP)+,KISAR6 ; RESTORE PREVIOUS MAPPING
677
678 .ENDC
679
680 .ENDC
681
682 001246 000261 SEC ; SET C-BIT ASYNCHRONOUS COMPLETION
683 001250 RETURN ; RETURN TO CALLER
DUP MACRO M1110 13-OCT-79 08:21 PAGE 10
685 ;+
686 ; **-TPOST-POST COMPLETION ON A CCB AND SETUP NEXT CCB
687 ;
688 ; INPUTS:
689 ;
690 ; R5 = ADDRESS OF THREAD CELL
691 ;
692 ; OUTPUTS:
693 ;
694 ; IF NE:
695 ; R3 = ADDRESS OF TRANSMITTER DATA BUFFER
696 ; R4 = ZERO
697 ; R5 = ADDRESS OF THREAD POINTER CELL
698 ;
699 ; IF EQ:
700 ; R3 = ADDRESS OF TRANSMITTER DATA BUFFER
701 ; R4 = ADDRESS OF FIRST BUFFER DESCRIPTOR
702 ; R5 = ADDRESS OF THREAD POINTER CELL
703 ;-
704
705 001252 005003 TPOST: CLR R3 ; INDICATE NORMAL STATUS, NO ERRORS
706 001254 005725 TST (R5)+ ; POINT TO PRIMARY CELL
707 001256 011504 MOV (R5),R4 ; GET PRIMARY CCB ADDRESS
708 001260 005025 CLR (R5)+ ; CLEAR PRIMARY CELL
709 001262 CALL $DDXMP ; POST TRANSMIT COMPLETION
710 001266 016503 177760 MOV TCSR-TSEC(R5),R3 ; RECOVER TRANSMIT CSR ADDRESS
711 001272 011504 MOV (R5),R4 ; GET SECONDARY CCB ADDRESS (NEXT CCB)
712 001274 001003 BNE TBSET ; IF NE, NO SECONDARY CCB TO SEND
713 001276 062705 177774 ADD #TTHRD-TSEC,R5 ; POINT TO THREAD WORD (SET NOT EQUAL)
714 001302 RETURN
715
716
717 ;+
718 ; **-TBSET-SET UP NEXT CCB
719 ;
720 ; INPUTS:
721 ;
722 ; R4 = ADDRESS OF FIRST CCB IN A CHAIN
723 ; R5 = ADDRESS OF SECONDARY CELL
724 ;
725 ; OUTPUTS:
726 ;
727 ; R4 = ADDRESS OF FIRST BUFFER DESCRIPTOR
728 ; R5 = ADDRESS OF THREAD POINTER CELL
729 ;-
730
731 001304 011415 TBSET: MOV (R4),(R5) ; SET ADDRESS OF NEW SECONDARY IF ANY
732 001306 005014 CLR (R4) ; CLEAR NEXT CCB POINTER IN NEW PRIMARY CCB
733 001310 010445 MOV R4,-(R5) ; SET AS PRIMARY CCB
734 001312 062704 000012 ADD #C.STS,R4 ; ADDRESS OF FIRST FLAGS WORD
735 001316 010445 MOV R4,-(R5) ; SET ADDRESS AS THREAD POINTER
736 001320 005024 CLR (R4)+ ; POINT TO ADDRESS OF DATA BUFFER (SET EQ)
737 001322 RETURN ; RETURN TO CALLER
DUP MACRO M1110 13-OCT-79 08:21 PAGE 11
739 ;+
740 ; **-DPASR-ASSIGN A RECEIVE BUFFER
741 ;
742 ; THIS ROUTINE IS CALLED BY THE BUFFER POOL MANAGER WHEN
743 ; A BUFFER ALLOCATION REQUEST CAN BE SATISFIED.
744 ;
745 ; INPUTS:
746 ;
747 ; R4 = ADDRESS OF CCB TO ASSIGN
748 ; R5 = ADDRESS OF DEVICE LINE TABLE
749 ;
750 ; OUTPUTS:
751 ;
752 ; THE BUFFER DESCRIBED BY THE CCB IS ASSIGNED TO THE
753 ; RECEIVER.
754 ;
755 ; REGISTERS MODIFIED:
756 ;
757 ; R4 AND R5
758 ;-
759
760 001324 062705 000040 DPASR: ADD #RSTAT,R5 ; POINT TO STATUS WORD
761 001330 012715 000200 MOV #CS.BUF,(R5) ; MARK A PREVIOUS BUFFER ALLOCATION FAILURE
762
763 ;+
764 ; **-DPAS1-REASSIGN AN EXISTING BUFFER
765 ;
766 ; THIS ROUTINE IS CALLED TO SET UP AN EXISTING RECEIVE BUFFER. THE STATUS
767 ; IN 'RSTAT' IS SET UP PRIOR TO THE CALL.
768 ;
769 ;-
770
771 001334 DPAS1: CALL BUFALT ; ASSIGN THIS CCB AS PRIMARY
772 001340 010346 MOV R3,-(SP) ; SAVE R3
773 001342 CALLR DPCRA ; START RECEIVER AND EXIT
DUP MACRO M1110 13-OCT-79 08:21 PAGE 12
775 ;+
776 ; **-DPKIL-KILL I/O
777 ;
778 ; INPUTS:
779 ;
780 ; R3 = SUBFUNCTION CODE
781 ; R5 = ADDRESS OF DEVICE LINE TABLE
782 ;
783 ; OUTPUTS:
784 ;
785 ; AS DESCRIBED
786 ;
787 ; REGISTERS MODIFIED:
788 ;
789 ; R3, R4, AND R5
790 ;-
791
792 001346 122703 000002 DPKIL: CMPB #FS.CRA/400,R3 ; KILL RECEIVER (RESYNC) ?
793 001352 100403 BMI 10$ ; NO - TRANSMIT KILL
794 001354 001425 BEQ 20$ ; YES - GO KILL RECEIVER
795 001356 CALL 20$ ; KILL RECIEVER AND TRANSMITTER
796
797 001362 000261 10$: SEC ;ASSUME A ASYNCH. COMPLETION
798 001364 INHIB$ ;DONT ALLOW INTERRUPT- AVOID RACE WITH TRANSMIT
799 ; DONE INTERRUPT
800 001376 005765 000100 TST TPRIM(R5) ;IS A TRANSMIT ACTIVE
801 001402 001003 BNE 12$ ;YES
802 001404 042716 000001 BIC #1,(SP) ;CLEAR C BIT ASSUME A SYNCH. COMPLETION
803 001410 000404 BR 15$ ;EXIT
804
805 001412 005075 000062 12$: CLR @TCSR(R5) ; DISABLE XMTER - LET TIMER FLUSH TRANSMITTER
806 001416 010465 000104 MOV R4,KICCB(R5) ; SAVE THE CALLING CCB
807 001422 15$: ENABL$ ;ALLOW INTERRUPTS
808 001426 RETURN ; RETURN TO CALLER
809
810 001430 010446 20$: MOV R4,-(SP) ; SAVE THE CCB ADDRESS
811 001432 016503 000020 MOV RDBF(R5),R3 ; GET RECEIVER DATA BUFFER ADDRESS
812 001436 042763 000100 177776 BIC #RXINT,-2(R3) ; DISABLE RECEIVER INTERRUPTS
813 001444 062705 000036 ADD #RPRIM,R5 ; POINT TO PRIMARY CCB ADDRESS
814 001450 012504 MOV (R5)+,R4 ; USE CURRENT BUFFER
815 001452 001402 BEQ 30$ ; IF EQ, NO CURRENT BUFFER
816 001454 CALL DPAS1 ; SET UP CURRENT RECEIVE BUFFER AGAIN
817 001460 012604 30$: MOV (SP)+,R4 ; RESTORE THE CCB ADDRESS
818 001462 000241 CLC ; CLEAR C-BIT SYNCHRONOUS COMPLETION
819 001464 RETURN ; RETURN TO CALLER
DUP MACRO M1110 13-OCT-79 08:21 PAGE 13
821 ;+
822 ; **-DPCTL-CONTROL FUNCTION DISPATCH
823 ;
824 ;
825 ; INPUTS:
826 ;
827 ; R3 = SUBFUNCTTION CODE
828 ; R4 = ADDRESS OF CCB (OPTTIONAL)
829 ; R5 = ADDRESS OF DEVICE LINE TABLE
830 ;
831 ; OUTPUTS:
832 ; DISPATCHES THE PROPER SUBFUNCTION (NO RETURN)
833 ;
834 ;
835 ;-
836
837 001466 DPCTL: CALLR @CTDSP(R3) ; DISPATCH CONTROL FUNCTION
DUP MACRO M1110 13-OCT-79 08:21 PAGE 14
839 ;+
840 ; **-DPSTR-DEVICE START-UP
841 ;
842 ; THIS ROUTINE IS CALLED TO ACTIVATE THE DEVICE.
843 ;
844 ;-
845
846 001472 010446 DPSTR: MOV R4,-(SP) ; SAVE THE CALLING CCB
847 001474 016503 000020 MOV RDBF(R5),R3 ; GET RECEIVER DATA BUFFER ADDRESS
848 001500 012713 100000G MOV #$SYNC+INPRM,(R3) ; SET INITIAL PARAMETERS
849 001504 005743 TST -(R3) ; POINT TO RECEIVER CSR
850 001506 062705 000040 ADD #RSTAT,R5 ; POINT TO STATUS WORD
851 001512 CALL BUFSET ; ASSIGN A PRIMARY CCB (AND BUFFER)
852 001516 103404 BCS 20$ ; IF CS GO TO TRANSMITTER
853 001520 005065 177776 CLR -2(R5) ; CLEAR THE FLAGS WORD
854 001524 012713 000522 MOV #RINIT,(R3) ; INITIALIZE RECEIVER
855 001530 012763 000010 000004 20$: MOV #TINIT,4(R3) ; TURN ON TRANSMITTER
856 001536 116565 000055 177743 MOVB DUPCH+3-RPRIM(R5),TIMS-RPRIM(R5) ;SET DDM TIME INTERVAL
857 001544 032765 000001 000052 BIT #1,DUPCH-RPRIM(R5); HALF DUPLEX
858 001552 001005 BNE 30$ ; IF NE YES, DONT FORCE FD MODE
859 001554 052713 000004 BIS #RTS,(R3) ; ASSERT REQUEST TO SEND
860 001560 042763 000010 000004 BIC #TINIT,4(R3) ; INDICATE FULL DUPLEX
861 001566 012604 30$: MOV (SP)+,R4 ; RESTORE THE CALLING CCB
862 001570 000241 CLC ; CLEAR C-BIT SYNCHRONOUS COMPLETION
863 001572 RETURN ; RETURN
864
865 ;+
866 ; **-DPSTP-STOP DEVICE
867 ;
868 ; RETURN OUTSTANDING BUFFERS AND CLEAR TIMERS
869 ;-
870
871 001574 010446 DPSTP: MOV R4,-(SP) ; SAVE THE CALLING CCB
872 001576 016503 000020 MOV RDBF(R5),R3 ; GET RECEIVE DATA BUFFER ADDRESS
873 001602 012743 000002 MOV #DTR,-(R3) ; DISABLE RECEIVER - LEAVE DTR UP
874 001606 005063 000004 CLR 4(R3) ; DISABLE TRANSMITTER
875 001612 016504 000036 MOV RPRIM(R5),R4 ; GET PRIMARY RECEIVER CCB
876 001616 001402 BEQ 10$ ; IF EQ, NONE ASSIGNED
877 001620 CALL $RDBRT ; RETURN BUFFER TO THE POOL
878 001624 005065 000036 10$: CLR RPRIM(R5) ; CLEAR PRIMARY POINTER
879 001630 016504 000106 MOV LINE(R5),R4 ; SET SYSTEM LINE NUMBER
880 001634 CALL $RDBQP ; REMOVE ANY WAIT REQUESTS
881 001640 012604 MOV (SP)+,R4 ; RESTORE THE SAVED CCB
882 001642 005765 000100 TST TPRIM(R5) ; IS ANYTHING ACTIVE
883 001646 001003 BNE 20$ ; YES, SO SAVE FOR TIMEOUT
884 001650 CALL $DDCCP ; NO, SO GIVE THE COMPLETION NOW
885 001654 000402 BR 30$ ; AND EXIT
886
887 001656 010465 000104 20$: MOV R4,KICCB(R5) ; SAVE THE CCB FOR LATER
888 001662 000261 30$: SEC ; INDICATE ASYNCH
889 001664 RETURN ; AND EXIT
DUP MACRO M1110 13-OCT-79 08:21 PAGE 16
892 ;+
893 ; **-DPENB - ENABLE LINE
894 ; **-DPDIS - DISABLE LINE
895 ; **-DPRNG - LOOK FOR RING
896 ; **-DPMSN - SENSE MODEM STATUS
897 ;
898 ;-
899 .ENABL LSB
900
901 001666 016503 000020 DPENB: MOV RDBF(R5),R3 ; GET ADDRESS OF RECEIVER CSR +2
902 001672 012743 000002 MOV #DTR,-(R3) ; SET DATA TERMINAL READY
903 001676 000421 BR 15$ ; JOIN COMMON CODE
904
905 001700 016503 000020 DPDIS: MOV RDBF(R5),R3 ; GET ADDRESS OF RECEIVER CSR +2
906 001704 005043 CLR -(R3) ; DISABLE RECEIVER AND TURN DTR OFF
907 001706 000415 BR 15$ ; JOIN COMMON CODE
908
909 001710 005004 DPMSN: CLR R4 ;
910 001712 016503 000020 MOV RDBF(R5),R3 ; GET ADDRESS OF RECEIVER CSR +2
911 001716 032743 001000 BIT #DSR,-(R3) ; IS DSR SET?
912 001722 001402 BEQ 10$ ; NO
913 001724 052704 000002 BIS #MC.DSR,R4 ; IF SO SET INDICATOR IN R4
914 001730 032713 040000 10$: BIT #RING,@R3 ; IS RING SET?
915 001734 001402 BEQ 15$ ; NO
916 001736 052704 000004 BIS #MC.RNG,R4 ; IF SO SET INDICATOR IN R4
917
918 001742 DPRNG:
919 001742 000241 15$: CLC ; CLEAR C-BIT SYNCHRONOUS COMPLETION
920 001744 RETURN ; RETURN
921
922 .DSABL LSB
DUP MACRO M1110 13-OCT-79 08:21 PAGE 17
924 ;+
925 ; **-DPTIM-TIMEOUT PROCESSING
926 ;
927 ;
928 ; THIS ROUTINE IS ENTERED WHEN A TIMEOUT OCCURS ON A TRANSMIT
929 ; MESSAGE. THE TRANSMITTER IS DISABLED AND ALL OUTSTANDING
930 ; MESSAGES ARE RETURNED WITH A TIMEOUT ERROR
931 ;
932 ; INPUTS:
933 ;
934 ; R5 = ADDRESS OF DEVICE LINE TABLE
935 ;
936 ;
937 ;
938 ;-
939
940 001746 016503 000062 DPTIM: MOV TCSR(R5),R3 ; GET TRANSMITTER CSR ADDRESS
941 001752 042763 001400 000002 BIC #TSOM+TEOM,2(R3) ; CLEAR TRANSMITTER FLAGS
942 001760 042713 000120 BIC #TXINT!SEND,(R3) ; DISABLE TRANSMITTER
943 001764 062705 000100 ADD #TPRIM,R5 ; POINT TO PRIMARY POINTER
944 001770 012504 MOV (R5)+,R4 ; GET PRIMARY CCB ADDRESS
945 001772 001422 BEQ 20$ ; IF EQ, NOTHING ACTIVE
946 001774 012703 120000 MOV #CS.ERR+CS.TMO,R3 ; SET TIMEOUT ERROR
947 002000 162705 000102 SUB #TSEC,R5 ; POINT R5 AT FIRST OF LIST FOR LOGGING ;BH0003
948 002004 CALL LOGGIT ; DO THE LOGGING ;BH0003
949 002010 062705 000102 ADD #TSEC,R5 ; PUT R5 BACK WHERE FOLLOWING CODE WANTS IT ;BH0003
950 002014 011514 MOV (R5),(R4) ; LINK ANY SECONDARIES TO PRIMARY
951 002016 005015 CLR (R5) ; CLEAR SECONDARY POINTER
952 002020 005065 177776 CLR TPRIM-TSEC(R5) ; CLEAR PRIMARY POINTER
953 002024 011446 10$: MOV (R4),-(SP) ; SAVE POINTER TO NEXT CCB
954 002026 005014 CLR (R4) ; CLEAR THE LINK WORD
955 002030 CALL $DDXMP ; POST COMPLETION
956 002034 012604 MOV (SP)+,R4 ; GET ADDRESS OF NEXT CCB
957 002036 001372 BNE 10$ ; IF NE, KEEP GOING
958 002040 016504 000002 20$: MOV KICCB-TSEC(R5),R4 ; GET THE CCB FOR THE KILL
959 002044 001413 BEQ 100$ ; NONE SO JUST EXIT
960 002046 005065 000002 CLR KICCB-TSEC(R5) ; CLEAR THE POINTER
961 002052 122764 000004 000010 CMPB #FC.KIL,C.FNC(R4) ; IS THIS A KILL OR A CONTROL
962 002060 001003 BNE 30$ ; CONTROL
963 002062 CALL $DDKCP ; AND RETURN A COMPLETION
964 002066 000402 BR 100$ ; AND EXIT
965
966 002070 30$: CALL $DDCCP ; RETURN A CONTROL COMPLETE
967 002074 100$: RETURN ; RETURN TO CALLER
DUP MACRO M1110 13-OCT-79 08:21 PAGE 18
969 ;+ ;BH0001
970 ; ** - LOGGIT - ERROR LOGGING ;BH0001
971 ; ;BH0001
972 ; THIS ROUTINE IS ENTERED WHEN A LOGGABLE EVENT OCCURS. THE EVENT ;BH0001
973 ; INFORMATION IS SENT TO NICE, VIA THE ROUTINE $CMLOG. ;BH0001
974 ; ;BH0001
975 ; INPUTS: ;BH0001
976 ; R3 = REASON CODE ;BH0001
977 ; R5 = DEVICE LINE TABLE ADDRESS ;BH0001
978 ; ;BH0001
979 ; OUTPUTS: ;BH0001
980 ; MESSAGE IS SENT. ;BH0001
981 ; ;BH0001
982 ; SIDE EFFECTS: ;BH0001
983 ; CALLING CONTEXT IS SAVED. ;BH0001
984 ; ;BH0001
985 ;- ;BH0001
986 120404 LGERRS=CS.ERR!CS.DCR!CS.ROV!CS.TMO ;ERROR BITS ;BH0001
987 ;BH0001
988 002076 016567 000114 175712 LOGGIT: MOV DUPLG(R5),PDST ; SET LOGGING DESTINATION ;BH0004
989 002104 001434 BEQ 20$ ; WE AREN'T ENABLED ;BH0004
990 002106 010046 MOV R0,-(SP) ; SAVE R0 ;BH0004
991 002110 010146 MOV R1,-(SP) ; AND R1 ;BH0004
992 002112 010367 175702 MOV R3,PRSN ; COPY THE ERROR CODE ;BH0004
993 002116 042767 057373 175674 BIC #^C<LGERRS>,PRSN ;ALLOW ONLY CERTAIN BITS ;BH0004
994 002124 116567 000106 175670 MOVB LINE(R5),PLIN ; SET SYS LINE # ;BH0004
995 002132 012700 000016' MOV #PDST,R0 ; POINT TO ARG BLOCK ;BH0004
996 002136 CALL $CMLOG ; LOG THIS EVENT >>>ENTER COROUTINE ;BH0004
997 002142 103413 BCS 10$ ; >>>$CMLOG POINTS R2 AT MSG BUFFER ;BH0007
998 002144 012722 MOV (PC)+,(R2)+ ; >>>SET REG CODE & LENGTH OF DATA ;BH0007
999 002146 001 010 .BYTE E$DREG,8. ; >>>... ;BH0007
1000 002150 016501 000020 MOV RDBF(R5),R1 ; >>>SET ADDR OF CSR ;BH0004
1001 002154 162701 000002 SUB #2,R1 ; >>>POINT TO FIRST REGISTER ;BH0004
1002 002160 012122 MOV (R1)+,(R2)+ ; >>>MOVE THE REGISTER ;BH0004
1003 002162 012122 MOV (R1)+,(R2)+ ; >>>... ;BH0004
1004 002164 012122 MOV (R1)+,(R2)+ ; >>>... ;BH0004
1005 002166 012122 MOV (R1)+,(R2)+ ; >>>... ;BH0004
1006 002170 CALL @(SP)+ ; GO FINISH UP >>>EXIT COROUTINE ;BH0004
1007 002172 012601 10$: MOV (SP)+,R1 ; RESTORE REGISTERS ;BH0007
1008 002174 012600 MOV (SP)+,R0 ; ... ;BH0004
1009 002176 20$: RETURN ; AND RETURN ;BH0004
DUP MACRO M1110 13-OCT-79 08:21 PAGE 19
1011 ;+
1012 ; **-BUFSET-ALLOCATE AND SET UP A RECEIVE DATA BUFFER
1013 ; **-BUFUSE-SET UP A PREVIOUSLY ALLOCATED BUFFER
1014 ; **-BUFALT-ALTERNATE ENTRY FOR BUFUSE (STATUS IN 'RSTAT')
1015 ;
1016 ; THIS ROUTINE IS CALLED TO ALLOCATE A BUFFER FOR RECEIVE
1017 ; AND FORMAT THE LINE TABLE CORRECTLY. AN ALTERNATE ENTRY
1018 ; PROVIDE LINE TABLE RE-FORMATTING FOR PREVIOUSLY ALLOCATED
1019 ; BUFFERS.
1020 ;
1021 ; INPUTS:
1022 ; R4 = ADDRESS OF CCB (ENTRY AT BUFUSE ONLY)
1023 ; R5 = POINTER TO 'RSTAT' IN LINE TABLE
1024 ;
1025 ; OUTPUTS:
1026 ; R5 = POINTER TO PRIMARY CCB ADDRESS
1027 ; C/SET = BUFFER ALLOCATE (ENTRY AT BUFSET)
1028 ; C/CLEAR = BUFFER ALLOCATION FAILURE (ENTRY AT BUFSET)
1029 ;
1030 ; REGISTERS MODIFIED:
1031 ; R4 AND R5
1032 ;-
1033
1034 002200 BUFSET: CALL $RDBGT ; ALLOCATE A RECEIVE DATA BUFFER
1035 002204 041515 BUFUSE: BIC (R5),(R5) ; CLEAR STATUS BITS (DONT MODIFY C-BIT)
1036 002206 010445 BUFALT: MOV R4,-(R5) ; STORE ADDRESS OF CCB IN RPRIM
1037 002210 001006 BNE 5$ ; NONZERO SO BUFFER WAS ALLOCATED
1038 002212 016504 000050 MOV LINE-RPRIM(R5),R4 ; GET THE SYSTEM LINE NUMBER
1039 002216 CALL $RDBWT ; AND WAIT FOR A BUFFER
1040 002222 000261 SEC ; INDICATE FAILURE
1041 002224 000422 BR 10$ ; AND EXIT
1042
1043 002226 016564 000050 000006 5$: MOV LINE-RPRIM(R5),C.LIN(R4) ; SET SYSTEM LINE NUMBER AND CLEAR STATION
1044 002234 112764 000006 000011 MOVB #FS.CIB!FS.DVC/400,C.MOD(R4) ; INDICATE DEVICE CHECKS BCC
1045
1046 .IF DF M$$MGE
1047
1048 002242 062705 177764 ADD #RBIAS-RPRIM,R5 ; POINT TO CURRENT RELOCATION BIAS
1049 002246 062704 000014 ADD #C.BUF,R4 ; POINT TO FIRST BUFFER DESCRIPTOR
1050 002252 012425 MOV (R4)+,(R5)+ ; STORE RELOCATION BIAS IN CURRENT BIAS
1051
1052 .IFF
1053
1054 ADD #RADD-RPRIM,R5 ; POINT TO VIRTUAL ADDRESS
1055 ADD #C.BUF+2,R4 ; POINT TO FIRST BUFFER DESCRIPTOR
1056
1057 .ENDC
1058
1059 002254 012425 MOV (R4)+,(R5)+ ; STORE BUFFER ADDRESS AS CURRENT BUFFER
1060 002256 012714 000003 MOV #3,(R4) ; SET INITIAL BYTE COUNT IN CCB
1061 002262 011425 MOV (R4),(R5)+ ; SET HEADER BYTE COUNT AS CURRENT BYTE COUNT
1062 002264 005725 TST (R5)+ ; POINT TO THREAD
1063 002266 010425 MOV R4,(R5)+ ; STORE ADDRESS OF COUNT IN THREAD
1064 002270 005725 TST (R5)+ ; TEST FLAGS FOR EXIT
1065 002272 10$: RETURN ; RETURN
1066
1067 000001 .END
DUP MACRO M1110 13-OCT-79 08:21 PAGE 19-1
SYMBOL TABLE
A$$CHK= 000000 C.FNC 000010 E$DTHR= 000015 FS.MSN= 014000 PDST 000016R
A$$CPS= 000000 C.LIN 000006 E$DTIM= 000002 FS.RNG= 011000 PDT1 000022R
A$$PRI= 000000 C.LNK 000000 E$DTPC= 000014 FS.RTN= 001000 PDT2 000024R
A$$TRP= 000000 C.MOD 000011 E$DTXT= 000016 FS.SET= 005000 PIRQ = 177772
BUFALT 002206R C.NSP 000004 E$DUPT= 000004 FS.STM= 000000 PLIN = 000022R
BUFSET 002200R C.RSV 000002 E$RABO= 000017 FS.STP= 002000 PLNG 000026R
BUFUMP= 172354 C.STA 000007 E$RCRC= 000023 FS.STR= 001000 PMODE = 030000
BUFUSE 002204R C.STS 000012 E$RDSC= 000005 FS.TRM= 003000 PNAM 000030R
CB.CCB= 000002 DA = 000010 E$RFRM= 000024 FS.XKL= 002000 PRSN 000020R
CB.RDB= 000004 DL = 000004 E$RHFE= 000016 FS.XOF= 010000 PR0 = 000000
CE.ABO= 100362 DLA = 000020 E$RLIN= 000003 FS.XON= 007000 PR1 = 000040
CE.DIS= 100366 DLV = 000004 E$RMOP= 000014 F$$LVL= 000001 PR2 = 000100
CE.ERR= 100370 DMC = 000014 E$RMTL= 000013 G$$TPP= 000000 PR3 = 000140
CE.MOP= 100372 DP = 000000 E$RNAK= 000032 G$$TSS= 000000 PR4 = 000200
CE.NTE= 100361 DPASR 001324R E$RNXM= 000002 G$$TTK= 000000 PR5 = 000240
CE.RTE= 100376 DPASX 000630R E$ROVR= 000012 G$$WRD= 000000 PR6 = 000300
CE.SRC= 100364 DPAS1 001334R E$RPEC= 000022 HDRA 000116 G PR7 = 000340
CE.TMO= 100374 DPCRA 000470R E$RPEM= 000021 INPRM = 100000 PS = 177776
CF.EOM= 000004 DPCTL 001466R E$RPET= 000020 I$$RAR= 000000 PSTA 000036R
CF.HDR= 000020 DPDIS 001700R E$RPRC= 000025 I$$RDN= 000000 PTAB 000034R
CF.LB = 100000 DPENB 001666R E$RPWF= 000007 KDP = 000034 PTYP 000032R
CF.SOM= 000010 DPKIL 001346R E$RPWR= 000010 KDZ = 000036 P$$DDC= 000001
CF.SYN= 000040 DPMSN 001710R E$RRET= 000031 KICCB 000104 G P$$P45= 000000
CF.TRN= 000100 DPRCP 000166R E$RRTE= 000011 KISAR0= 172340 P$$WRD= 000000
CMODE = 140000 DPRHO 000146R E$RRTO= 000006 KISAR6= 172354 Q$$OPT= 000010
CRC = 010000 DPRNG 001742R E$RSEL= 000030 KL = 000040 RADD 000024 G
CS.ABO= 000100 DPSTP 001574R E$RSIN= 000004 K$$CNT= 177546 RBIAS 000022 G
CS.BUF= 000200 DPSTR 001472R E$RSRC= 000015 K$$CSR= 177546 RCNT 000026 G
CS.DCR= 000400 DPTIM 001746R E$RTRN= 000026 K$$LDC= 000000 RCVEN = 000020
CS.DEV= 000002 DQ = 000006 E$RUCL= 000001 K$$TPS= 000074 RDBF 000020 G
CS.DIS= 000040 DSR = 001000 E$RXTO= 000027 LD$LP = 000000 REXT 000454R
CS.ENB= 000020 DTE = 000024 E$TASC= 000001 LGDAT = 000012 REXT0 000460R
CS.EOF= 000001 DTR = 000002 E$TASX= 000002 LGERRS= 120404 REXT1 000464R
CS.ERR= 100000 DU = 000002 E$THDW= 000003 LINE 000106 G RFLAG 000034 G
CS.HFE= 002000 DUP = 000012 E$TSFT= 000004 LOGGIT 002076R RING = 040000
CS.LST= 040000 DUPCH 000110 G E$TTOP= 000005 L$$ASG= 000000 RINIT = 000522
CS.MTL= 004000 DUPLG 000114 G E$$XPR= 000000 L$$DRV= 000000 RINS 000002 G
CS.RNG= 000010 DUPLN 000122 G FC.CCP= 000020 L$$P11= 000001 RPCNT 000042 G
CS.ROV= 000004 DUV = 000002 FC.CTL= 000006 L$$11R= 000000 RPRI 000030 G
CS.RSN= 010000 DV = 000026 FC.KCP= 000016 MC.CAR= 000001 RPRIM 000036 G
CS.SUC= 000001 DZ = 000030 FC.KIL= 000004 MC.CCB= 000200 RSTAT 000040 G
CS.TMO= 020000 D$$BUG= 177514 FC.RCE= 000002 MC.DSR= 000002 RTHRD 000032 G
CTDSP 000052R D$$ISK= 000000 FC.RCP= 000014 MC.RNG= 000004 RTS = 000004
CTS = 020000 D$$L11= 000001 FC.TIM= 000010 MPAR = 172100 RXINT = 000100
C$$CKP= 000000 D$$YNC= 000000 FC.XCP= 000012 MPCSR = 177746 R$$DER= 000000
C$$ORE= 000400 D$$YNM= 000000 FC.XME= 000000 MS.SCA= 000002 R$$K11= 000001
C$$RSH= 177564 ERRTB 000000R FS.AST= 000000 MS.SYN= 000001 R$$SND= 000000
C.BID 000003 ERRTBL= 000003 FS.CIB= 002000 M$$CRB= 000124 R$$11M= 000000
C.BUF 000014 E$DDAT= 000003 FS.CRA= 001000 M$$CRX= 000000 SEND = 000020
C.BUF1 000014 E$DDEV= 000005 FS.DIS= 013000 M$$FCS= 000000 SSYN = 000400
C.BUF2 000024 E$DLPC= 000013 FS.DVC= 001000 M$$MGE= 000000 STCRC 000776R
C.CNT 000020 E$DMCD= 000012 FS.ENB= 012000 M$$OVR= 000000 STCTS 000732R
C.CNT1 000020 E$DNOD= 000011 FS.GET= 006000 N$$LDV= 000001 STDAT 001132R
C.CNT2 000030 E$DOSI= 000010 FS.INI= 000000 N$$MOV= 000010 STIDL 001072R
C.FLG 000022 E$DREC= 000007 FS.KIL= 000000 N$$SYS= 000001 STSTR 000712R
C.FLG1 000022 E$DREG= 000001 FS.LTM= 001000 N$$USR= 000001 STSYN 000760R
C.FLG2 000032 E$DRSN= 000006 FS.MNT= 004000 PDID = 000024R SWR = 177570
DUP MACRO M1110 13-OCT-79 08:21 PAGE 19-2
SYMBOL TABLE
S$$WRG= 000000 TEXT3 001240R TSTAT 000074 G WAITI 001054R $INTSX= ****** GX
S$$YSZ= 007600 TIME 000000 G TTHRD 000076 G X$$DBT= 000000 $INTX7= ****** GX
TADD 000066 G TIMS 000001 G TUNST 001110R $CMLOG= ****** GX $PADB = ****** GX
TBIAS 000064 G TINIT = 000010 TXACT = 001000 $DDCCP= ****** GX $RDBGT= ****** GX
TBSET 001304R TINS 000044 G TXINT = 000100 $DDHAR= ****** GX $RDBQP= ****** GX
TCNT 000070 G TPOST 001252R T$$KMG= 000000 $DDKCP= ****** GX $RDBRT= ****** GX
TCSR 000062 G TPRI 000072 G T$$MIN= 000000 $DDRCP= ****** GX $RDBWT= ****** GX
TEOM = 001000 TPRIM 000100 G UBMPR = 170200 $DDXMP= ****** GX $SYNB = ****** GX
TEXT0 001172R TPS = 177564 UISAR0= 177640 $DUPRI 000104RG $SYNC = ****** GX
TEXT1 001200R TSEC 000102 G UISAR1= 177642 $DUPTB 000040RG .BASEB= 140000
TEXT2 001234R TSOM = 000400 V$$CTR= 001000 $DUPTI 000516RG
. ABS. 000122 000
002274 001
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 9627 WORDS ( 38 PAGES)
DYNAMIC MEMORY: 11116 WORDS ( 42 PAGES)
ELAPSED TIME: 00:00:47
DUP,[131,34]DUP/CR/-SP=[130,10]NETLIB/ML,RSXTMP/PA:1,[131,10]DUP
DUP CREATED BY MACRO ON 13-OCT-79 AT 08:21 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
BUFALT 002206 R 11-771 #19-1036
BUFSET 002200 R 7-328 14-851 #19-1034
BUFUMP = 172354 #3-61
BUFUSE 002204 R 7-293 #19-1035
CF.EOM = 000004 9-620
CF.SYN = 000040 9-566
CMODE = 140000 #3-61
CRC = 010000 #4-89 7-303
CS.BUF = 000200 11-761
CS.DCR = 000400 5-117 7-305 18-986
CS.ERR = 100000 7-241 7-305 17-946 18-986
CS.MTL = 004000 7-290
CS.ROV = 000004 5-118 7-241 18-986
CS.RSN = 010000 7-347
CS.TMO = 020000 5-119 17-946 18-986
CTDSP 000052 R #6-151 13-837
CTS = 020000 #4-97 9-539
C.BUF 000014 9-566 9-620 19-1049
C.FLG 000022 9-566 9-615 9-620
C.FNC 000010 17-961
C.LIN 000006 *19-1043
C.MOD 000011 *19-1044
C.STS 000012 9-615 10-734
DPASR 001324 R 6-138 #11-760
DPASX 000630 R 6-137 #9-489
DPAS1 001334 R #11-771 12-816
DPCRA 000470 R #7-344 11-773
DPCTL 001466 R 6-140 #13-837
DPDIS 001700 R 6-162 #16-905
DPENB 001666 R 6-161 #16-901
DPKIL 001346 R 6-139 #12-792
DPMSN 001710 R 6-163 #16-909
DPRCP 000166 R 7-226 #7-247
DPRHO 000146 R 7-191 #7-238
DPRNG 001742 R 6-160 #16-918
DPSTP 001574 R 6-153 #14-871
DPSTR 001472 R 6-152 #14-846
DPTIM 001746 R 6-141 9-604 #17-940
DSR = 001000 #4-99 16-911
DTR = 000002 4-91 #4-98 14-873 16-902
DUP = 000012 5-126
DUPCH 000110 G #5-130 9-573 14-856 14-857
DUPLG 000114 G #5-130 18-988
DUPLN 000122 G #5-130
ERRTB 000000 R #5-116 5-120 5-126
ERRTBL = 000003 5-116 #5-120
E$DREG = 000001 18-999
E$RCRC = 000023 5-117
E$ROVR = 000012 5-118
E$RRTO = 000006 5-119
E$THDW = 000003 5-126
FC.KIL = 000004 17-961
DUP CREATED BY MACRO ON 13-OCT-79 AT 08:21 PAGE 2
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
FS.CIB = 002000 19-1044
FS.CRA = 001000 12-792
FS.DVC = 001000 19-1044
HDRA 000116 G #5-130 7-258
INPRM = 100000 #4-105 14-848
I$$AS = ****** 3-61 3-64 7-195 7-213 8-386 8-404 8-447 9-496 9-651
9-670
KICCB 000104 G #5-130 *12-806 *14-887 17-958 *17-960
KISAR0 = 172340 #3-61
KISAR6 = 172354 #3-61 7-202 *7-203 *7-219 7-258 7-258 7-258 8-393 *8-394
*8-410 8-454 9-503 *9-657 *9-676
LGDAT = 000012 #5-125 5-126
LGERRS = 120404 #18-986 18-993
LINE 000106 G #5-130 14-879 18-994 19-1038 19-1043
LOGGIT 002076 R 7-323 17-948 #18-988
L$$SI1 = ****** 12-798 12-807
MC.DSR = 000002 16-913
MC.RNG = 000004 16-916
MPAR = 172100 #3-61
MPCSR = 177746 #3-61
M$$MGE = 000000 3-61 5-130 5-130 5-130 5-130 7-193 7-258 7-274 8-384
19-1046
PDID = 000024 R #5-128
PDST 000016 R #5-126 *18-988 18-995
PDT1 000022 R #5-126 5-127
PDT2 000024 R #5-126 5-128
PIRQ = 177772 #3-61
PLIN = 000022 R #5-127 *18-994
PLNG 000026 R #5-126
PMODE = 030000 #3-61
PNAM 000030 R #5-126
PRSN 000020 R #5-126 *18-992 *18-993
PR0 = 000000 #3-61
PR1 = 000040 #3-61
PR2 = 000100 #3-61
PR3 = 000140 #3-61
PR4 = 000200 #3-61
PR5 = 000240 #3-61
PR6 = 000300 #3-61
PR7 = 000340 #3-61 12-798
PS = 177776 #3-61 12-798 12-798 12-807
PSTA 000036 R #5-126
PTAB 000034 R #5-126
PTYP 000032 R #5-126
RADD 000024 G #5-130 *7-312
RBIAS 000022 G #5-130 19-1048
RCNT 000026 G #5-130 7-238 *7-239 *7-241 7-270 7-303 *7-307
RCVEN = 000020 #4-87 4-91 7-345
RDBF 000020 G #5-130 7-238 7-248 7-294 7-313 7-327 12-811 14-847 14-872
16-901 16-905 16-910 18-1000
REXT 000454 R 7-314 #7-331
REXT0 000460 R 7-284 #7-332
DUP CREATED BY MACRO ON 13-OCT-79 AT 08:21 PAGE 3
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
REXT1 000464 R 7-329 #7-333 7-349
RFLAG 000034 G #5-130 *7-239 *7-311 *7-346 *7-347
RING = 040000 #4-100 16-914
RINIT = 000522 #4-91 7-348 14-854
RINS 000002 G #5-130
RPCNT 000042 G #5-130 *7-265 7-307 7-309 *7-331 *7-346
RPRI 000030 G #5-130 7-248
RPRIM 000036 G #5-130 7-258 *7-265 7-294 7-303 7-307 *7-307 7-309 7-309
*7-311 *7-312 7-313 *7-331 12-813 14-856 *14-856 14-857 14-875
*14-878 19-1038 19-1043 19-1048
RSTAT 000040 G #5-130 *7-241 7-322 7-327 *7-347 11-760 14-850
RTHRD 000032 G #5-130 7-270 7-309
RTS = 000004 #4-96 9-530 9-591 14-859
RXINT = 000100 #4-88 4-91 7-249 7-332 12-812
R$$11D = ****** 3-61 3-64 7-195 7-213 8-386 8-404 8-447 9-496 9-651
9-670
SEND = 000020 #4-77 9-531 9-572 17-942
SSYN = 000400 #4-90 4-91
STCRC 000776 R #9-562 9-622
STCTS 000732 R #9-539 9-541
STDAT 001132 R 9-551 9-565 #9-614 9-619
STIDL 001072 R 9-571 #9-591 9-605
STSTR 000712 R 9-514 9-515 #9-530
STSYN 000760 R 9-540 #9-551 9-568
SWR = 177570 #3-61
TADD 000066 G #5-130
TBIAS 000064 G #5-130
TBSET 001304 R 9-512 10-712 #10-731
TCNT 000070 G #5-130 *8-381 *9-582
TCSR 000062 G #5-130 *8-381 *8-429 8-440 8-461 9-490 9-634 10-710 12-805
17-940
TEOM = 001000 #4-82 9-562 17-941
TEXT0 001172 R 9-554 #9-633
TEXT1 001200 R 9-544 #9-634
TEXT2 001234 R 9-523 9-584 #9-666
TEXT3 001240 R 9-594 9-606 #9-667
TIME 000000 G #5-130 *9-532 *9-583 *9-593 *9-633
TIMS 000001 G #5-130 9-532 9-583 9-633 *14-856
TINIT = 000010 #4-76 14-855 14-860
TINS 000044 G #5-130
TPOST 001252 R 9-563 9-618 #10-705
TPRI 000072 G #5-130 8-440
TPRIM 000100 G #5-130 9-492 12-800 14-882 17-943 *17-952
TPS = 177564 #3-61
TSEC 000102 G #5-130 *9-605 10-710 10-713 17-947 17-949 *17-952 17-958 *17-960
TSOM = 000400 #4-81 8-428 9-543 9-553 17-941
TSTAT 000074 G #5-130 *8-429 8-461 9-573 *9-582 9-583 *9-583 *9-593 *9-605
9-633 *9-633 9-634
TTHRD 000076 G #5-130 9-532 *9-532 9-602 10-713
TUNST 001110 R 8-429 #9-602
TXACT = 001000 #4-79 9-513
TXINT = 000100 #4-78 8-441 9-491 9-666 17-942
DUP CREATED BY MACRO ON 13-OCT-79 AT 08:21 PAGE 4
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
UBMPR = 170200 #3-61
UISAR0 = 177640 #3-61
UISAR1 = 177642 #3-61
WAITI 001054 R 9-516 #9-582
$CMLOG = ****** GX 18-996
$DDCCP = ****** GX 14-884 17-966
$DDHAR = ****** GX 7-258
$DDKCP = ****** GX 17-963
$DDRCP = ****** GX 7-326
$DDXMP = ****** GX 10-709 17-955
$DUPRI 000104 RG #7-187
$DUPTB 000040 RG #6-137
$DUPTI 000516 RG #8-376
$INTSX = ****** GX 7-251 8-443
$INTX7 = ****** GX 7-229 8-420
$PADB = ****** GX 9-542
$RDBGT = ****** GX 19-1034
$RDBQP = ****** GX 14-880
$RDBRT = ****** GX 14-877
$RDBWT = ****** GX 19-1039
$SYNB = ****** GX 9-552
$SYNC = ****** GX 14-848
.BASEB = 140000 #3-61
DUP CREATED BY MACRO ON 13-OCT-79 AT 08:21 PAGE 5
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
CALL 7-258 7-293 7-323 7-326 7-328 9-512 9-563 9-604 9-618 10-709
11-771 12-795 12-816 14-851 14-877 14-880 14-884 17-948 17-955 17-963
17-966 18-996 18-1006 19-1034 19-1039
CALLR #7-229 #8-420 #8-462 #11-773 #13-837
CCBDF$ #3-59 #3-62
CMLDF$ #3-59 #5-126
DEVDF #3-59 #5-110
DUPDF$ #3-59 5-130
ENABL$ #3-58 #12-807
EVLDF$ #3-59 5-111
INHIB$ #3-58 12-798
MDCDF$ #3-59 #3-60
NHWDF$ #3-58 #3-61
RETURN #7-334 #9-683 #10-714 #10-737 #12-808 #12-819 #14-863 #14-889 #16-920 #17-967
#18-1009 #19-1065
TMPDF$ #5-130 #5-130
$INTSX #3-58 #7-251 #8-443
$INTXT #3-58 #7-229 #8-420
$LIBCL #3-59 #7-258
.BIN #5-130
.CNB #5-130
.CNW #5-130
.CORE #5-130
.CSR #5-130
.DVCHA #5-130 #5-130
.INT #5-130 #5-130 #5-130
.INT1 #5-130
.INT2 #5-130
.INT3 #5-130
.LFLHD #5-130
.LIBR #5-130 5-130
.LINKS #5-130
.LSTHD #5-130
.LTAB #5-130
.MPLHD #5-130
.POOL #5-130
.PRI #5-130 #5-130 #5-130
.SCOM #5-130
.SECSR #5-130
.SLNB #5-130
.SLNW #5-130
.STNB #5-130
.STNW #5-130
.UNB #5-130
.UNW #5-130
.VFY #5-130