Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/mcb/dmc.list
There are no other files named dmc.list in the archive.
DMC MACRO M1110 27-DEC-79 09:13
TABLE OF CONTENTS
3- 58 LOCAL DEFINITIONS
4- 91 DMC11 DEFINITIONS
5- 126 LINE TABLE DEFINITIONS
6- 176 FUNCTION DISPATCH TABLES
7- 218 INTERRUPT DISPATCH TABLES
8- 248 OTHER TABLE DEFINITIONS
9- 273 $$DMC - COMMON INTERRUPT ENTRY ROUTINE
10- 318 RECVIN - RECEIVE INPUT TRANSFER INTERRUPT SERVICE
10- 319 XMITIN - TRANSMIT INPUT TRANSFER INTERRUPT SERVICE
11- 350 PROCD - REQUEST PROCEDURE ERROR INTERRUPT SERVICE
12- 371 RCVOUT - RECEIVE OUTPUT TRANSFER INTERRUPT SERVICE
12- 372 XMTOUT - TRANSMIT OUTPUT TRANSFER INTERRUPT SERVICE
13- 420 SETDMC - DMC BA/CC SET UP SUBROUTINE
14- 532 CTRLO - CONTROL OUT INTERRUPT SERVICE
17- 644 TMOUT - TIMEOUT SERVICE ROUTINE
18- 707 TIMRST - TIMER RESET ROUTINE
19- 729 XMTENB - TRANSMIT ENABLE REQUEST SERVICE ROUTINE
20- 754 RCVENB - RECEIVE ENABLE REQUEST SERVICE ROUTINE
21- 786 CTRL - CONTROL REQUEST SERVICE ROUTINE
27- 985 CLRQS - QUEUE CLEAN UP SUBROUTINE
DMC MACRO M1110 27-DEC-79 09:13 PAGE 3
1 .TITLE DMC
2 .IDENT /V01.10/
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 ; DMC-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 B. HOFFMAN ;BH0001
37 ; MODIFICATIONS TO ACCOMODATE EVENT LOGGING.
38 ; 1.02 22-DEC-78 B. HOFFMAN ;BH0002
39 ; PREVENT LOGGING OF "PROCEDURE ERRORS", SINCE THEY ARE
40 ; NOT REALLY ERRORS, AND OCCUR FREQUENTLY.
41 ; 1.03 12-JAN-79 B. HOFFMAN ;BH0003
42 ; MODIFIED TO USE NEW $CMLOG (V1.01).
43 ; 1.04 30-JAN-79 B. HOFFMAN ;BH0004
44 ; FIXED BUG IN PLACEMENT OF LOGGIT CODE - THE
45 ; CTRLO CODE WAS FALLING INTO IT
46 ; 1.05 30-JAN-79 B. HOFFMAN ;BH0005
47 ; ADDED ANOTHER LOGGING POINT IN CODE TO CATCH TIMEOUTS.
48 ; ALSO ASSURED REASON CODE SIGN BIT SET IN CALL TO $CMLOG.
49 ; 1.06 1-FEB-79 B. HOFFMAN ;BH0006
50 ; CHANGED TO GLOBAL INVOCATION OF LINE TABLE DEFINITION MACROS.
51 ; 1.07 2-FEB-79 B. HOFFMAN ;BH0007
52 ; ADDED ERROR RETURN DETECTION IN COROUTINE CALL TO $CMLOG.
53 ; ALSO, STARTED UTILIZING EVLDF$ MACRO FOR LOGGING SYMBOLS.
54 ; OMITTED SIGN BIT REQMT OF 1.05.
55 ; 1.10 27-DEC-79 SCOTT G. ROBINSON ;SR0010
56 ; REMOVE CODE TO LOG TIMEOUT EVENTS, BUT ALLOW A PATCH TO
57 ; REENABLE THEM.
DMC MACRO M1110 27-DEC-79 09:13 PAGE 3-1
LOCAL DEFINITIONS
58 .SBTTL LOCAL DEFINITIONS
59
60 000000 .PSECT
61 ;
62 ; MACRO LIBRARY CALLS
63 ;
64 .MCALL $INTSX
65 .MCALL CCBDF$,HWDDF$,DMCDF$,DEVDF,CMLDF$,EVLDF$ ;BH0007
66 .MCALL $ENQ,$DEQ,SAVRG,RESRG ;**-1
67 000000 CCBDF$ ; DEFINE CCB OFFSETS
68 000000 HWDDF$ ; DEFINE HARDWARE REGISTERS
69
70
71 ;
72 ; BIT DEFINTIONS
73 ;
74 000001 BIT00= 000001
75 000002 BIT01= 000002
76 000004 BIT02= 000004
77 000010 BIT03= 000010
78 000020 BIT04= 000020
79 000040 BIT05= 000040
80 000100 BIT06= 000100
81 000200 BIT07= 000200
82 000400 BIT08= 000400
83 001000 BIT09= 001000
84 002000 BIT10= 002000
85 004000 BIT11= 004000
86 010000 BIT12= 010000
87 020000 BIT13= 020000
88 040000 BIT14= 040000
89 100000 BIT15= 100000
DMC MACRO M1110 27-DEC-79 09:13 PAGE 4
DMC11 DEFINITIONS
91 .SBTTL DMC11 DEFINITIONS
92 ;
93 ; DMC11 DEFINITIONS
94 ;
95
96 100000 RUN= BIT15 ; MICROPROCESSOR RUN BIT (KMC ONLY)
97 040000 MC= BIT14 ; MASTER CLEAR
98
99 000200 RDYI= BIT07 ; READY FOR INPUT TRANSFER
100 000200 RDYO= BIT07 ; READY FOR OUTPUT TRANSFER
101 000100 IEI= BIT06 ; RDYI INTERRUPT ENABLE
102 000100 IEO= BIT06 ; RDYO INTERRUPT ENABLE
103 000040 RQI= BIT05 ; REQUEST FOR INPUT TRANSFER
104
105 000000 XMT= 0 ; INPUT TRANSFER TYPE XMIT BA/CC
106 000001 CTRLI= BIT00 ; INPUT TRANSFER TYPE CONTROL IN
107 000003 BASEI= BIT00+BIT01 ; INPUT TRANSFER TYPE BASE IN
108 000004 RCV= BIT02 ; INPUT TRANSFER TYPE RECV BA/CC
109
110 000004 ORUN= BIT02 ; OVERRUN ERROR
111 001000 PROC= BIT09 ; PROCEDURE ERROR
112 000003 NFLTER= BIT00+BIT01 ; NON-FATAL ERRORS MASK
113 000770 FTLFL= BIT03+BIT04+BIT05+BIT06+BIT07+BIT08 ; FATAL ERROR MASK
114
115 002000 HD= BIT10 ; HALF DUPLEX FLAG
116 004000 SCND= BIT11 ; SECONDARY STATION BIT
117 000400 MOP= BIT08 ; MOP MAINTAINANCE MODE BIT
118
119 ;
120 ; STATE DEFINITIONS
121 ;
122 000001 STSTP= 001 ; STOP IN PROGRESS
123 000002 STDIS= 002 ; DISABLE LINE IN PROGRESS
124 000200 STMC= 200 ; DMC MICRO-PROCESSOR IS STOPPED
DMC MACRO M1110 27-DEC-79 09:13 PAGE 5
LINE TABLE DEFINITIONS
126 .SBTTL LINE TABLE DEFINITIONS
127
128 ;
129 ; DMC11 LINE TABLE OFFSET DEFINITIONS
130 ;
131
132 000000 DMCDF$ <:>,<=>,LST ;BH0006
;
; DMC LINE TABLE OFFSETS
;
000000 .ASECT
000000 .=0
000000 .INT
.EVEN
.IF DF M$$MGE
000000 .BLKW 7
.IFF
.BLKW 2
.ENDC
177724 ..OFF.=-<<.*2>+20>
177724 .=..OFF.
177724 D.IVCT:: ; INPUT INTERRUPT TRANSFER VECTOR
177724 .INT ; INPUT INTERRUPT TRANSFER VECTOR
.EVEN
.IF DF M$$MGE
177724 .BLKW 7
.IFF
.BLKW 2
.ENDC
177742 .PRI ; ^C< DEVICE PRIORITY >
.EVEN
177742 .BLKW 1
177744 D.SEL0::.CSR ; ADDRESS OF DMC SEL0 REGISTER
.EVEN
177744 .BLKW 1
177746 .BLKW 1 ; OFFSET TO INTERRUPT SERVICE DISPATCH TABLE
000030 D.OFFI== -.
177750 .BLKW 1 ; OFFSET TO START OF LINE TABLE
177752 D.OVCT:: ; OUTPUT INTERRUPT TRANSFER VECTOR
177752 .INT ; OUTPUT INTERRUPT TRANSFER VECTOR
.EVEN
.IF DF M$$MGE
177752 .BLKW 7
.IFF
.BLKW 2
.ENDC
177770 .PRI ; ^C< DEVICE PRIORITY >
.EVEN
177770 .BLKW 1
177772 D.SEL2::.CSR ; ADDRESS OF DMC SEL2 REGISTER
.EVEN
177772 .BLKW 1
177774 .BLKW 1 ; OFFSET TO INTERRUPT SERVICE DISPATCH TABLE
000002 D.OFFO== -.
177776 .BLKW 1 ; OFFSET TO START OF LINE TABLE
000054 D.OFFS== .-D.IVCT
000000 D.TIMR::.BLKB 1 ; LINE TABLE TIMER CELL
DMC MACRO M1110 27-DEC-79 09:13 PAGE 5-1
LINE TABLE DEFINITIONS
000001 D.TIME::.BLKB 1 ; TIMER RESET VALUE CELL
000002 D.RAQC::.BLKB 1 ; MINUS THE CURRENT NUMBER OF RECV BUFFERS ASSIG
000003 D.RBFC::.BLKB 1 ; MINUS THE MAXIMUM NUMBER OF RECV BUFFERS ASSIG
000004 D.RAWQ::.LSTHD ; RECV BUFFERS AWAITING ASSIGNMENT QUEUE
.EVEN
000004 .BLKW 2
000010 D.RASQ::.LSTHD ; RECV BUFFERS ASSIGNED TO DMC QUEUE
.EVEN
000010 .BLKW 2
000014 D.XAQC::.BLKB 1 ; MINUS THE CURRENT NUMBER OF XMIT BUFFERS ASSIG
000015 D.XBFC::.BLKB 1 ; MINUS THE MAXIMUM NUMBER OF XMIT BUFFERS ASSIG
000016 D.XAWQ::.LSTHD ; XMIT BUFFERS AWAITING ASSIGNMENT QUEUE
.EVEN
000016 .BLKW 2
000022 D.XASQ::.LSTHD ; XMIT BUFFERS ASSIGNED TO DMC QUEUE
.EVEN
000022 .BLKW 2
000026 D.LINE::.BLKW 1 ; SYSTEM LINE NUMBER
000030 D.LBIA::
.IF DF M$$MGE
000030 .BLKW 1 ; DMC LINE TABLE BIAS ADDRESS
.ENDC
000032 D.LVA:: .BLKW 1 ; DMC LINE TABLE VIRTUAL ADDRESS
000034 D.ERRS::.BLKW 1 ; PENDING STATUS WORD
000036 D.CFNC::.BLKW 1 ; CONTROL FUNCTION IN PROGRESS
000040 D.PFNC::.LSTHD ; PENDING CONTROL FUNCTION QUEUE
.EVEN
000040 .BLKW 2
000044 D.STAT::.BLKW 1 ; STATE FLAGS
000046 D.PLEX::.DVCHA ; DEVICE CHARACTERISTICS
.EVEN
000046 .BLKW 2
000052 D.TLZ:: .BLKW 1 ; THE TIME COUNTERS WHERE LAST ZEROED
000054 D.XMT:: .BLKW 1 ; NUMBER OF BLOCKS TRANSMITTED
000056 D.RCV:: .BLKW 1 ; NUMBER OF BLOCKS RECEIVED
000060 D.LREC::.BLKB 6 ; ERROR COUNTER VALUES FROM LAST READ OF BASE TA
000066 D.LOGG::.BLKW 1 ; EVENT LOGGING DESTINATION
000144 D.LEN==.-..OFF.
000000 .PSECT
133 ;BH0001
134 ; ;BH0001
135 ; DEFINE THE DMC DEVICE CODE ;BH0001
136 ; ;BH0001
137 000000 DEVDF ;BH0001
138 000000 EVLDF$ ;BH0007
139 ;BH0007
140 ; ;BH0007
141 ;NOW DEFINE THE ERROR REPORTING MAP ;BH0007
142 ; ;BH0007
143 000000 000010 ERRTB: .WORD ERRTBL ;**LENGTH OF TABLE ;BH0007
144 000002 000001 000011 .WORD BIT00,E$RRTE ; RETRANSMISSION THRESHOLD EXCEEDED ;BH0007
145 000006 000002 000006 .WORD BIT01,E$RRTO ; TIMEOUT ;BH0007
146 000012 000004 000012 .WORD BIT02,E$ROVR ; OVERRUN ;BH0007
147 000016 000010 000014 .WORD BIT03,E$RMOP ; MAINT MSG RECEIVED DURING NORMAL OPERATIONS ;BH0007
148 000022 000020 000013 .WORD BIT04,E$RMTL ; LOST DATA - MSG TOO LONG ;BH0007
149 000026 000100 000005 .WORD BIT06,E$RDSC ; DISCONNECT - MODEM TRANSITION ;BH0007
150 000032 000200 000015 .WORD BIT07,E$RSRC ; DDCMP START RECEIVED ;BH0007
DMC MACRO M1110 27-DEC-79 09:13 PAGE 5-2
LINE TABLE DEFINITIONS
151 000036 000400 000002 .WORD BIT08,E$RNXM ; NXM ;BH0007
152 000010 ERRTBL=<.-ERRTB-2>/4 ;BH0007
153 ;BH0006
154 ; ;BH0006
155 ; DEFINE THE $CMLOG ARGUMENT BLOCK ;BH0006
156 ; ;BH0006
157 000012 LGDAT=10. ; HDR + 4*REG = 5.WORDS = 10.BYTES ;BH0007
158 000042 CMLDF$ DMC,E$THDW,,DMC,ERRTB,LGDAT ;BH0007
000042 000000 PDST: .WORD 0 ; LOGGING DESTINATION
000044 000000 PRSN: .WORD 0 ; " REASON
000046 177777 PDT1: .WORD -1 ; FORMAT DEPENDENT ARG #1
000050 000014 PDT2: .WORD DMC ; " " " #2
000052 000012 PLNG: .WORD LGDAT ; BYTES OF COROUTINE-ADDED INFO
000054 015413 PNAM: .RAD50 /DMC/ ; PROCESS NAME
000056 000003 PTYP: .WORD E$THDW ; EVENT TYPE CODE
000060 000000' PTAB: .WORD ERRTB ; ERROR CODE MAPPING TABLE
000062 000000 PSTA: .WORD 0 ; STATE WORD FOR USE BY $CMLOG
159 000046' PLIN=PDT1 ;LINE # ;BH0006
160 000050' PDID=PDT2 ;DEVICE ID ;BH0006
DMC MACRO M1110 27-DEC-79 09:13 PAGE 6
LINE TABLE DEFINITIONS
162 .IF DF R$$11D!I$$AS
163 ;+
164 ;
165 ; DEFINE PROCESS HEADER
166 ;
167 ;-
168 .MCALL PRCHD$
169 .LIST ME
170 PRCHD$ $DMCTB,DRIVER
171 .NLIST ME
172 .ENDC
173
174
175
176 .SBTTL FUNCTION DISPATCH TABLES
177
178 ;
179 ; FUNCTION CODE DISPATCH TABLE
180 ;
181 000064 $DMCTB::
182 000064 001562' .WORD XMTENB ; TRANSMIT ENABLE
183 000066 001604' .WORD RCVENB ; RECEIVE ENABLE
184 000070 000071' .WORD .+1 ; KILL I/O
185 000072 001636' .WORD CTRL ; CONTROL
186 000074 001330' .WORD TMOUT ; TIMEOUT
187 ; TRANSMIT COMPLETE (DEVICE INTERRUPT)
188 ; RECEIVE COMPLETE (DEVICE INTERRUPT)
189 ; KILL COMPLETE
190 ; CONTROL COMPLETE
191
192
193 ;
194 ; RECEIVE ENABLE SUB-FUNCTION DISPATCH TABLE
195 ;
196 000076 RCVDSP:
197 000076 000000G .WORD $RDBRT ; NORMAL BUFFER RETURN
198 000100 001610' .WORD RCVBFW ; BUFFER RETURN FROM WAIT QUEUE REQUEST
199
200 ;
201 ; CONTROL SUB-FUNCTION DISPATCH TABLE
202 ;
203 000102 CNTDSP:
204 000102 000103' .WORD .+1 ; INTITIALIZE
205 000104 001672' .WORD START ; START
206 000106 002210' .WORD STOP ; STOP
207 000110 000111' .WORD .+1 ; TERMINATE
208 000112 001664' .WORD STRMOP ; START MOP MODE
209 000114 000115' .WORD .+1 ; SET LINE CHARACTERISTICS
210 000116 000117' .WORD .+1 ; GET LINE CHARACTERISTICS
211 000120 000121' .WORD .+1 ; XON
212 000122 000123' .WORD .+1 ; XOFF
213 000124 002410' .WORD RING ; LOOK FOR RING
214 000126 002402' .WORD ENABL ; ENABLE LINE
215 000130 002276' .WORD DISABL ; DISABLE LINE
216 ; MODEM SENSE
DMC MACRO M1110 27-DEC-79 09:13 PAGE 7
INTERRUPT DISPATCH TABLES
218 .SBTTL INTERRUPT DISPATCH TABLES
219
220 ;
221 ; INPUT INTERRUPT DISPATCH TABLE
222 ;
223
224 000132' DMCITB=.
225 000132 000302' .WORD XMITIN
226 000134 000135' .WORD .+1
227 000136 000320' .WORD PROCD
228 000140 000320' .WORD PROCD
229 000142 000274' .WORD RECVIN
230 000144 000145' .WORD .+1
231 000146 000320' .WORD PROCD
232 ; .WORD .+1
233
234 ;
235 ; OUTPUT INTERRUPT DISPATCH TABLE
236 ;
237
238 000016 DMCOTB==.-DMCITB
239 000150 000426' .WORD XMTOUT
240 000152 001102' .WORD CTRLO
241 000154 000155' .WORD .+1
242 000156 000157' .WORD .+1
243 000160 000326' .WORD RCVOUT
244 000162 001102' .WORD CTRLO
245 ; .WORD .+1
246 ; .WORD .+1
DMC MACRO M1110 27-DEC-79 09:13 PAGE 8
OTHER TABLE DEFINITIONS
248 .SBTTL OTHER TABLE DEFINITIONS
249
250 ;
251 ; ERROR STATUS DEFINITION TABLE
252 ;
253 000164 100376 001324' ERTBL: .WORD CE.RTE,NFTER ; BIT 0 - RECEVIE THRESHOLD EXCEEDED
254 000170 100374 001324' .WORD CE.TMO,NFTER ; BIT 1 - REP THRESHOLD EXCEEDED
255 000174 000000 000522' .WORD 0,SETDMC ; BIT 2 - OVERRUN (NO RECV BUFFER)
256 000200 100372 001320' .WORD CE.MOP,FTLER ; BIT 3 - MOP MESSAGE RECEIVED
257 000204 100370 001320' .WORD CE.ERR,FTLER ; BIT 4 - LOST DATA (MESSAGE TOO LONG)
258 000210 100370 001320' .WORD CE.ERR,FTLER ; BIT 5 - RESERVED
259 000214 100366 001324' .WORD CE.DIS,NFTER ; BIT 6 - DISCONNECT
260 000220 100364 001320' .WORD CE.SRC,FTLER ; BIT 7 - START RECEIVED
261 000224 100370 001320' .WORD CE.ERR,FTLER ; BIT 8 - NXM
262 000230 100366 001256' .WORD CE.DIS,PRCER ; BIT 9 - PROCEDURE ERROR
263
264 ;
265 ; MEMORY EXTENSION BIT TABLE
266 ;
267
268 000234 000 MEBTAB: .BYTE 0
269 000235 100 .BYTE 100
270 000236 200 .BYTE 200
271 000237 300 .BYTE 300
DMC MACRO M1110 27-DEC-79 09:13 PAGE 9
$$DMC - COMMON INTERRUPT ENTRY ROUTINE
273 .SBTTL $$DMC - COMMON INTERRUPT ENTRY ROUTINE
274 ;+
275 ; **- $$DMC - COMMON INTERRUPT ENTRY ROUTINE
276 ;
277 ; THIS IS A COMMON ROUTINE FOR BOTH INPUT AND OUTPUT INTERRUPT
278 ; SERVICING. ALL INTERRUPTS ARE VECTORED THROUGH UNIQUE LINE TABLES
279 ; TO $$DMC. THE FOUR WORDS FOLLOWING THE VECTOR TO $$DMC IN THE
280 ; LINE TABLE ARE:
281 ; 1) ^C< DEVICE PRIORITY >
282 ; 2) CSR ADDRESS (SEL0 - INPUT OR SEL2 - OUTPUT)
283 ; 3) OFFSET TO PROPER INTERRUPT SERVICE DISPATCH TABLE
284 ; 4) OFFSET TO START OF LINE TABLE
285 ;
286 ; INPUTS:
287 ; R0,R1,R2,R3,R4 - ORIGINAL CONTENTS FROM INTERRUPT
288 ; R5 = POINTER TO DEVICE PRIORITY WORD IN LINE TABLE
289 ;
290 ; OUTPUTS: (ON DISPATCH TO INTERRUPT SERVICE ROUTINE)
291 ; R3 = ADDRESS OF PROPER SEL REGISTER
292 ; R4 - SCRATCH
293 ; R5 = POINTER TO START OF LINE TABLE
294 ; R0,R1,R2 - MUST BE SAVED BEFORE USE
295 ;-
296
297 000240 $$DMC::
298 000240 $INTSX ;;; DROP TO DEVICE PRIORITY AND SAVE R4
299 000244 SAVRG <R3> ;;; SAVE REGISTER
300 000246 012503 MOV (R5)+,R3 ;;; GET ADDRESS OF SEL REGISTER
301 000250 011304 MOV @R3,R4 ;;; GET CONTENTS OF SEL REGISTER
302
303 .IF DF X$$BUG ;;; ? DEBUG ?
304 BIT #IEI!IEO,R4 ;;; ? EITHER IEI OR IEO MUST BE SET
305 BEQ . ;;; ? ERROR IF NOT
306 BIT #RDYI!RDYO,R4 ;;; ? EITHER RDYI OR RDYO MUST BE SET
307 BEQ . ;;; ? ERROR IF NOT
308 .ENDC ;;; ? END DEBUG ?
309
310 000252 042704 177770 BIC #^C7,R4 ;;; LEAVE ONLY FUNCTION CODE BITS
311 000256 006304 ASL R4 ;;; MAKE IT A WORD INDEX
312 000260 062504 ADD (R5)+,R4 ;;; ADD OFFSET TO PROPER DISPATCH TABLE
313 000262 061505 ADD (R5),R5 ;;; MOVE POINTER TO START OF LINE TABLE
314 000264 CALL @DMCITB(R4) ;;; DISPATCH TO INTERRUPT SERVICE ROUTINE
315 000270 RESRG <R3> ;;; RESTORE REGISTER
316 000272 RETURN ;;; EXIT INTERRUPT
DMC MACRO M1110 27-DEC-79 09:13 PAGE 10
RECVIN - RECEIVE INPUT TRANSFER INTERRUPT SERVICE
318 .SBTTL RECVIN - RECEIVE INPUT TRANSFER INTERRUPT SERVICE
319 .SBTTL XMITIN - TRANSMIT INPUT TRANSFER INTERRUPT SERVICE
320 ;+
321 ; **- RECVIN - RECIEVE INPUT TRANSFER INTERRUPT SERVICE ROUTINE
322 ; **- XMITIN - TRANSMIT INPUT TRANSFER INTERRUPT SERVICE ROUTINE
323 ;
324 ; THIS INTERRUPT IS CAUSED BY RDYI COMING UP WITH IEI SET.
325 ; IT INDICATES THAT THE DMC IS READY TO ACCEPT A BUFFER ADDRESS
326 ; AND BYTE COUNT FOR A TRANSFER.
327 ;
328 ; INPUTS:
329 ; R3 = ADDRESS OF SEL0 REGISTER
330 ; R4 - SCRATCH
331 ; R5 = POINTER TO START OF LINE TABLE
332 ;
333 ; OUTPUTS: (ON CALL TO SETBUF)
334 ; R3 = ADDRESS OF SEL0 REGISTER
335 ; R4 = OFFSET TO EITHER D.RAWQ OR D.XAWQ IN LINE TABLE
336 ; R5 = POINTER TO START OF LINE TABLE
337 ;-
338
339 .ENABL LSB
340 000274 012704 000004 RECVIN: MOV #D.RAWQ,R4 ;;; GET OFFSET TO D.RAWQ
341 000300 000402 BR 10$ ;;; JOIN COMMON CODE
342
343 000302 012704 000016 XMITIN: MOV #D.XAWQ,R4 ;;; GET OFFSET TO D.XAWQ
344 000306 042713 000100 10$: BIC #IEI,@R3 ;;; CLEAR RDYI INTERRUPT ENABLE
345 000312 105015 CLRB (R5) ;;; CANCEL COMPLETION TIMER
346 000314 CALLR SETBUF ;;; GO ASSIGN BUFFER TO DMC
347 ;;; AND RETURN
348 .DSABL LSB
DMC MACRO M1110 27-DEC-79 09:13 PAGE 11
PROCD - REQUEST PROCEDURE ERROR INTERRUPT SERVICE
350 .SBTTL PROCD - REQUEST PROCEDURE ERROR INTERRUPT SERVICE
351 ;+
352 ; **- PROCD - REQUEST PROCEDURE ERROR INTERRUPT SERVICE ROUTINE
353 ;
354 ; THIS INTERRUPT IS CAUSED BY RDYI COMING UP WITH IEI SET.
355 ; PROCEDURE ERRORS ARE USED TO SYNCHRONIZE WITH THE DMC MICRO-PROCESSOR.
356 ; THEY ENABLE ALL COMPLETIONS QUEUED INTERNALLY IN THE DMC TO
357 ; BE RETURNED TO THE DRIVER BEFORE THE DMC IS MASTER CLEARED.
358 ;
359 ; INPUTS:
360 ; R3 = ADDRESS OF SEL0 REGISTER
361 ; R4 - SCRATCH
362 ; R5 = POINTER TO START OF LINE TABLE
363 ;
364 ; OUTPUTS:
365 ; THE PROCEDURE ERROR IS SPRUNG.
366 ;-
367
368 000320 042713 000140 PROCD: BIC #RQI+IEI,@R3 ;;; SPRING PROCEDURE ERROR
369 000324 RETURN ;;; AND RETURN
DMC MACRO M1110 27-DEC-79 09:13 PAGE 12
RCVOUT - RECEIVE OUTPUT TRANSFER INTERRUPT SERVICE
371 .SBTTL RCVOUT - RECEIVE OUTPUT TRANSFER INTERRUPT SERVICE
372 .SBTTL XMTOUT - TRANSMIT OUTPUT TRANSFER INTERRUPT SERVICE
373 ;+
374 ; **- RCVOUT - RECEIVE OUTPUT TRANSFER INTERRUPT SERVICE ROUTINE
375 ; **- XMTOUT - TRANSMIT OUTPUT TRANSFER INTERRUPT SERVICE ROUTINE
376 ;
377 ; THIS INTERRUPT IS CAUSED BY RDYO COMING UP WHILE IEO IS SET.
378 ; IT INDICATES THAT THE DMC HAS COMPLETED A (RECV/XMIT) TRANSFER
379 ; REQUEST. THE ROUTINE ALSO POSTS THESE COMPLETIONS TO THE LLC.
380 ;
381 ; INPUTS:
382 ; R3 = ADDRESS OF SEL2 REGISTER
383 ; R4 - SCRATCH
384 ; R5 = POINTER TO START OF LINE TABLE
385 ;
386 ; OUTPUTS: (ON CALL TO SETDMC)
387 ; R3 = ADDRESS OF SEL0 REGISTER
388 ; R4 - SCRATCH
389 ; R5 = POINTER TO START OF LINE TABLE
390 ;-
391
392 .ENABL LSB
393 000326 RCVOUT: $DEQ R5,D.RASQ,R4 ;;; GET CCB OF RECIEVE BUFFER THAT JUST COMPLETED
394 000356 105365 000002 DECB D.RAQC(R5) ;;; ADJUST COUNT OF BUFFERS ASSIGNED TO DMC
395 000362 016364 000004 000020 MOV 4(R3),C.CNT(R4) ;;; GET RECV BYTE COUNT
396 000370 042764 140000 000020 BIC #140000,C.CNT(R4) ;;; CLEAR EXTENDED MEMORY BITS
397 000376 SAVRG <R3> ;;; SAVE REGISTER
398 000400 012703 000001 MOV #CS.SUC,R3 ;;; SIGNAL SUCCESSFUL COMPLETION
399 000404 CALL $RCCMP ;;; POST RECEIVE COMPLETE
400 000410 022765 177777 000056 CMP #-1,D.RCV(R5) ;;; IS COUNT ABOUT TO OVERFLOW?
401 000416 001434 BEQ 10$ ;;; IF EQ, YES THEN DON'T INCREMENT COUNT
402 000420 005265 000056 INC D.RCV(R5) ;;; INCREMENT # OF BLOCKS RECEIVED
403 000424 000431 BR 10$ ;;; JOIN COMMON CODE
404
405 000426 XMTOUT: $DEQ R5,D.XASQ,R4 ;;; GET CCB OF TRANSMIT BUFFER THAT JUST COMPLETED
406 000456 105365 000014 DECB D.XAQC(R5) ;;; ADJUST COUNT OF BUFFERS ASSIGNED TO DMC
407 000462 SAVRG <R3> ;;; SAVE REGISTER
408 000464 012703 000001 MOV #CS.SUC,R3 ;;; SIGNAL SUCCESSFUL COMPLETION
409 000470 CALL $XMCMP ;;; POST TRANSMIT COMPLETE
410 000474 022765 177777 000054 CMP #-1,D.XMT(R5) ;;; IS COUNT ABOUT TO OVERFLOW?
411 000502 001402 BEQ 10$ ;;; IF EQ, YES THEN DON'T INCREMENT COUNT
412 000504 005265 000054 INC D.XMT(R5) ;;; INCREMENT # OF BLOCKS TRANSMITTED
413 000510 10$: RESRG <R3> ;;; RESTORE REGISTER
414 000512 042713 000200 BIC #RDYO,@R3 ;;; RELEASE DMC DATA PORT
415 000516 005743 TST -(R3) ;;; POINT R3 TO SEL0 REGISTER
416 000520 105015 CLRB (R5) ;;; CANCEL COMPLETION TIMER
417 ;;; FALL INTO SETDMC TO
418 ;;; TO ASSIGN MORE BUFFERS TO DMC
DMC MACRO M1110 27-DEC-79 09:13 PAGE 13
SETDMC - DMC BA/CC SET UP SUBROUTINE
420 .SBTTL SETDMC - DMC BA/CC SET UP SUBROUTINE
421 ;+
422 ; **- SETDMC - DMC BA/CC SET UP SUBROUTINE
423 ;
424 ; THIS SUBROUTINE TRIES TO ASSIGN AS MANY RECEIVE AND TRANSMIT
425 ; BUFFERS THAT ARE PERMITTED TO THE DMC. IT ALWAYS GIVES PRIORITY
426 ; TO ASSIGNING RECEIVE BUFFERS BEFORE TRANSMIT. IT IS CALLED ON
427 ; EACH TRANSMIT AND RECEIVE COMPLETION AND ON EACH TRANSMIT ENABLE
428 ;
429 ; INPUTS:
430 ; R3 = ADDRESS OF SEL0 REGISTER
431 ; R4 - SCRATCH
432 ; R5 = POINTER TO START OF LINE TABLE
433 ;
434 ; OUTPUTS: (ON RETURN TO CALLER)
435 ; R3 = ADDRESS OF SEL0 REGISTER
436 ; R4 - DESTROYED
437 ; R5 = POINTER TO START OF LINE TABLE
438 ;-
439
440 .ENABL LSB
441 000522 SETDMC: SAVRG <R5> ;;; SAVE REGISTER
442 000524 005725 5$: TST (R5)+ ;;; MOVE POINTER TO D.RAQC
443 000526 132525 BITB (R5)+,(R5)+ ;;; CAN THE DMC ACCEPT ANY MORE RECV BUFFERS?
444 000530 001435 BEQ 20$ ;;; NO
445 000532 005715 TST @R5 ;;; ANY RECEIVE BUFFERS AWAITING ASSIGNMENT
446 000534 001030 BNE 12$ ;;; YES
447 000536 CALL $RDBGT ;;; NO - TRY TO ALLOCATE A RECV DATA BUFFER
448 000542 103012 BCC 10$ ;;; ALLOCATION SUCCEEDED
449 000544 005765 000004 TST D.RASQ-D.RAWQ(R5) ;;; ARE THERE ANY BUFFERS CURRENTLY ASSIGNED TO DMC?
450 000550 001025 BNE 20$ ;;; IF NE, YES - DON'T QUEUE A BUFFER WAIT REQUEST
451 000552 016504 000022 MOV D.LINE-D.RAWQ(R5),R4 ;;; ALLOCATION FAILED - GET LINE NUMBER
452 000556 CALL $RDBWT ;;; QUEUE BUFFER WAIT REQUEST
453 000562 105265 177776 INCB D.RAQC-D.RAWQ(R5) ;;; ADJUST BUFFER COUNT
454 000566 000416 BR 20$ ;;; GO TRY TRANSMIT REQUESTS
455
456 000570 10$: $ENQ R5,,R4 ;;; PUT RECV BUFFER IN AWAITING ASSIGNMENT QUEUE
457 000610 016564 000022 000006 MOV D.LINE-D.RAWQ(R5),C.LIN(R4) ;;; PUT SYSTEM LINE NUMBER IN CCB
458 000616 012704 000044 12$: MOV #RQI+RCV,R4 ;;; GET INPUT REQUEST TYPE AND RQI CODE
459 000622 000410 BR 25$ ;;; JOIN COMMON CODE
460
461 000624 062705 000010 20$: ADD #D.XAQC-D.RAWQ,R5 ;;; MOVE LINE TABLE POINTER TO XMIT QUEUE COUNT
462 000630 132525 BITB (R5)+,(R5)+ ;;; CAN THE DMC ACCEPT ANY MORE TRANSMIT BUFFERS?
463 000632 001521 BEQ 60$ ;;; NO
464 000634 005715 TST @R5 ;;; ANY TRANSMIT BUFFERS AWAITING ASSIGNMENT
465 000636 001517 BEQ 60$ ;;; NO
466 000640 012704 000040 MOV #RQI+XMT,R4 ;;; GET INPUT TRANSFER TYPE AND RQI CODE
467 000644 032713 000040 25$: BIT #RQI,@R3 ;;; IS RQI SET?
468 000650 001112 BNE 60$ ;;; YES - JUST BE PATIENT, WE'RE WAITING FOR AN INTERRUP
469 ;
470 ; THE FOLLOWING LOOP WAITS FOR RDYI TO DROP. IF RDYI DOES NOT
471 ; DROP BEFORE THIS LOOP EXITS THE BUFFER ASSIGNMENT WILL EITHER
472 ; BE MADE ON THE NEXT COMPLETION INTERRUPT, TRANSMIT/RECEIVE
473 ; REQUEST, CONTROL OUT INTERRUPT (NO RECEIVE BUFFER ASSIGNED), OR
474 ; A SOFTWARE TIMEOUT. IF THE TIMER CATCHES THE CONDITION THERE
475 ; COULD BE A DELAY IN TRANSMISSION IN THE RANGE OF 1 CLOCK TICK
476 ; TO 1 SECOND (DUE TO GRANULARITY OF TIMER). NOTE THE DMC DOES NOT
DMC MACRO M1110 27-DEC-79 09:13 PAGE 13-1
SETDMC - DMC BA/CC SET UP SUBROUTINE
477 ; INTERRUPT WHEN THE PORT BECOMES AVAILABLE (I.E. RDYI DROPS).
478 ;
479 000652 CALL WAITS ;;; WAIT FOR RDYI TO GO DOWN
480 000656 103415 BCS 35$ ;;; IF CS, RDYI IS STILL UP
481
482 000660 110413 28$: MOVB R4,@R3 ;;; SET RQI AND INPUT TYPE CODE
483 000662 032763 000200 000002 BIT #RDYO,2(R3) ;;; IS RDYO SET?
484 000670 001003 BNE 30$ ;;; YES - SET IEI AND LET RDYO INTERRUPT
485 ;
486 ; THE FOLLOWING LOOP WAITS FOR RDYI TO COME UP. THE LOOP CATCHES
487 ; THE TIMES THAT THE MICRO-PROCESSOR RESPONDS QUICKLY AND THERFORE
488 ; AVOIDS THE INTERRUPT EXIT AND RE-INTERRUPT PROCESSING.
489 ;
490 000672 CALL WAITS ;;; WAIT FOR RDYI TO COME UP
491 000676 103016 BCC 50$ ;;; IF CC, RDYI IS UP, GO ASSIGN BUFFER
492
493 000700 052713 000100 30$: BIS #IEI,@R3 ;;; SET RDYI INTERRUPT ENABLE
494 000704 000240 NOP ;;; TIME DELAY
495 000706 052713 000100 BIS #IEI,@R3 ;;; SET IEI AGAIN - RACE IN HARDWARE
496
497 000712 35$: RESRG <R5> ;;; RESTORE ORIGINAL LINE TABLE POINTER
498 000714 112715 000001 MOVB #1,(R5) ;;; START TIMER
499 000720 152765 000001 000045 BISB #1,D.STAT+1(R5) ;;; SET FLAG TO CATCH RDYI LATE DROPPING
500 ;;; INCASE NO OTHER EVENT DRIVES US BACK TO SETDMC
501 000726 RETURN ;;; RETURN TO CALLER
502
503
504 000730 SETBUF: SAVRG <R5> ;;; ENTRY FROM RDYI INTERRUPT ROUTINES
505 000732 060405 ADD R4,R5 ;;; ADD OFFSET TO POINT TO PROPER LISTHEAD
506 000734 105265 177776 50$: INCB -2(R5) ;;; INCREMENT NUMBER OF BUFFERS ASSIGNED TO DMC
507 000740 $DEQ R5,,R4 ;;; GET NEXT BUFFER TO BE ASSIGNED
508 000756 022525 CMP (R5)+,(R5)+ ;;; MOVE POINTER TO ASSIGNED QUEUE
509 000760 $ENQ R5,,R4 ;;; ADD BUFFER TO ASSIGNED QUEUE
510 001000 SAVRG <R1,R2,R3> ;;; SAVE REGISTERS
511 001006 010301 MOV R3,R1 ;;; COPY SEL0 REGISTER ADDRESS
512 001010 016403 000014 MOV C.BUF(R4),R3 ;;; GET BUFFER BIAS
513 001014 016402 000016 MOV C.BUF+2(R4),R2 ;;; GET BUFFER VIRTUAL ADDRESS
514 001020 CALL $CNV18 ;;; CALCULATE 18-BIT UNIBUS ADDRESS
515 001024 022121 CMP (R1)+,(R1)+ ;;; MOVE POINTER TO SEL4 REGISTER
516 001026 010221 MOV R2,(R1)+ ;;; PUT LOW ORDER 16-BITS OF ADDRESS IN SEL4
517 001030 016411 000020 MOV C.CNT(R4),@R1 ;;; PUT BYTE COUNT IN SEL6 REGISTER
518 001034 042711 140000 BIC #140000,@R1 ;;; CLEAR EXTENDED MEMORY BITS
519 001040 156361 000234' 000001 BISB MEBTAB(R3),1(R1) ;;; SET EXTENDED MEMORY BITS IN SEL6
520 001046 RESRG <R3,R2,R1> ;;; RESTORE REGISTERS
521 001054 042713 000040 BIC #RQI,@R3 ;;; RELEASE DMC DATA PORT
522 001060 011605 MOV (SP),R5 ;;; RESTORE ORIGINAL LINE TABLE POINTER
523 001062 105015 CLRB (R5) ;;; CANCEL COMPLETION TIMER
524 001064 105065 000045 CLRB D.STAT+1(R5) ;;; CLEAR RDYI LATE FLAG
525 001070 CALL TIMRST ;;; RESTART COMPLETION TIMER IF NECESSARY
526 001074 000613 BR 5$ ;;; GO CHECK FOR MORE BUFFERS TO ASSIGN
527
528 001076 60$: RESRG <R5> ;;; RESTORE ORIGINAL LINE TABLE POINTER
529 001100 RETURN ;;; RETURN TO CALLER
530 .DSABL LSB
DMC MACRO M1110 27-DEC-79 09:13 PAGE 14
CTRLO - CONTROL OUT INTERRUPT SERVICE
532 .SBTTL CTRLO - CONTROL OUT INTERRUPT SERVICE
533
534 ;+
535 ; **- CTRLO - CONTROL OUT INTERRUPT SERVICE ROUTINE
536 ;
537 ; THIS ROUTINE SERVICES ALL CONTROL OUT INTERRUPTS. THE POSSIBLE
538 ; ERRORS CAN BE DIVIDED INTO FOUR GROUPS:
539 ; 1) FATAL ERRORS - ALL FATAL ERRORS CAUSE ALL REQUESTS TO BE
540 ; RETURNED TO THE LLC WITH ERRORS
541 ; 2) NON-FATAL ERRORS - THE NON-FATAL ERROR IS SIMPLY REPORTED TO
542 ; THE HIGHER LEVEL (LLC).
543 ; 3) OVERRUN ERRORS - THIS IS A WARNING THAT A MESSAGE WAS RECEIVED
544 ; BUT THERE WAS NO RECEIVE BUFFER ASSIGNED.
545 ; 4) PROCEDURE ERRORS - PROC ERRORS ARE USED TO SYNCHRONIZE THE SHUT
546 ; DOWN PROCESS WITH THE DMC.
547 ;
548 ; INPUTS:
549 ; R3 = ADDRESS OF SEL2 REGISTER
550 ; R4 - SCRATCH
551 ; R5 = POINTER TO START OF LINE TABLE
552 ;-
553
554 001102 016304 000004 CTRLO: MOV 4(R3),R4 ;;; GET ERROR CODE
555 001106 042704 176000 BIC #176000,R4 ;;; CLEAR EXTRANIOUS BITS
556 001112 CALL LOGGIT ;;; LOG THIS ERROR ;BH0003
557
558 .IF DF X$$BUG ;;; ? DEBUG ?
559 BEQ . ;;; ? ERROR IF NO ERROR CODE
560 .ENDC ;;; ? END DEBUG ?
561
562 001116 042713 000200 BIC #RDYO,@R3 ;;; RELEASE DMC DATA PORT
563 001122 005743 TST -(R3) ;;; POINT TO SEL0 REGISTER
564 001124 SAVRG <R2> ;;; SAVE ADDITIONAL REGISTER
565 001126 012702 177777 MOV #-1,R2 ;;; BIT SHIFT TO FIND FIRST ERROR BIT SET
566 001132 005202 5$: INC R2 ;;; BUMP INDEX
567 001134 006204 ASR R4 ;;; THIS BIT SET?
568 001136 103375 BCC 5$ ;;; NO - GO TRY NEXT ONE
569 001140 006302 ASL R2 ;;; OTHERWISE MULTIPLY BY 4
570 001142 006302 ASL R2 ;;; ...
571 001144 062702 000164' ADD #ERTBL,R2 ;;; COMPUTE ADDRESS INTO ERROR TABLE
572 001150 012204 MOV (R2)+,R4 ;;; GET STATUS CODE
573 001152 CALL @(R2)+ ;;; DISPATCH TO ERROR SERVICE ROUTINE
574 001154 RESRG <R2> ;;; RESTORE REGISTER
575 001156 RETURN ;;; RETURN
DMC MACRO M1110 27-DEC-79 09:13 PAGE 15
CTRLO - CONTROL OUT INTERRUPT SERVICE
577 ;+ ;BH0003
578 ; ** LOGGIT ;BH0003
579 ; ;BH0003
580 ; INPUTS: ;BH0003
581 ; R3 = ADDR OF SEL2 REGISTER ;BH0003
582 ; R4 = ERROR CODE ;BH0003
583 ; R5 = DLT ADDRESS ;BH0003
584 ; ;BH0003
585 ; INSIDE THE COROUTINE CALL, R2 WILL BE USED TO DEPOSIT INFO IN THE ;BH0003
586 ; BUFFER. HOWEVER, THE ORIGINAL CONTENTS OF R2 WILL BE RESTORED BY ;BH0003
587 ; $CMLOG UPON COROUTINE COMPLETION. ;BH0003
588 ;- ;BH0003
589 ;BH0003
590 001160 032704 001000 LOGGIT: BIT #PROC,R4 ;;; PROCEDURE ERROR ? ;BH0002
591 001164 001033 BNE 20$ ;;; YES, SO SKIP LOGGING EFFORT, BECAUSE ;BH0002
592 ;;; THIS IS NOT REALLY AN ERROR. ;BH0002
593 001166 016567 000066 176646 MOV D.LOGG(R5),PDST ;;; SET LOGGING DESTINATION ;BH0003
594 001174 001427 BEQ 20$ ;;; WE AREN'T ENABLED ;BH0003
595 001176 010046 MOV R0,-(SP) ;;; SAVE R0 ;BH0003
596 001200 010146 MOV R1,-(SP) ;;; AND R1 ;BH0003
597 001202 010467 176636 MOV R4,PRSN ;;; SET THE ERROR CODE ;BH0003
598 001206 116567 000026 176632 MOVB D.LINE(R5),PLIN ;;; SYS LINE # ;BH0003
599 001214 012700 000042' MOV #PDST,R0 ;;; POINT TO ARG BLOCK ;BH0003
600 001220 CALL $CMLOG ;;; LOG IT >>>ENTER COROUTINE ;BH0003
601 001224 103411 BCS 1$ ;;; >>>$CMLOG POINTS R2 AT MSG BUFFER ;BH0007
602 001226 012722 MOV (PC)+,(R2)+ ;;; >>>SET REGISTER CODE & ;BH0007
603 001230 001 010 .BYTE E$DREG,8. ;;; >>> LENGTH OF REGISTER DATA ;BH0007
604 001232 010301 MOV R3,R1 ;;; >>>COPY SEL2 POINTER ;BH0003
605 001234 005741 TST -(R1) ;;; >>>POINT IT TO SEL0 ;BH0003
606 001236 012122 MOV (R1)+,(R2)+ ;;; >>>MOVE THE SEL CONTENT ;BH0003
607 001240 012122 MOV (R1)+,(R2)+ ;;; >>> ;BH0003
608 001242 012122 MOV (R1)+,(R2)+ ;;; >>> ;BH0003
609 001244 012122 MOV (R1)+,(R2)+ ;;; >>> ;BH0003
610 001246 CALL @(SP)+ ;;; BACK TO $CMLOG TO FINISH >>>EXIT COROUTINE ;BH0003
611 001250 012601 1$: MOV (SP)+,R1 ;;; RESTORE REGISTERS ;BH0007
612 001252 012600 MOV (SP)+,R0 ;;; ... ;BH0003
613 001254 20$: RETURN ;BH0004
DMC MACRO M1110 27-DEC-79 09:13 PAGE 16
CTRLO - CONTROL OUT INTERRUPT SERVICE
615 .ENABL LSB
616 ;
617 ; PROCEDURE ERROR
618 ;
619 001256 PRCER: CALL 7$ ;;; DO FATAL ERROR PROCESSING
620 001262 132765 000001 000044 BITB #STSTP,D.STAT(R5) ;;; STOP PENDING?
621 001270 001403 BEQ 5$ ;;; NO - MUST BE DISABLE LINE PENDING
622 001272 052713 040000 BIS #MC,@R3 ;;; MASTER CLEAR DMC TO ASSERT DTR
623 001276 000461 BR REDSP ;;; GO RESTART ANY BLOCKED CONTROL FUNCTIONS
624
625 001300 112715 000003 5$: MOVB #3,(R5) ;;; START DISCONNECT TIMER
626 001304 RETURN ;;; RETURN
627
628 001306 105015 7$: CLRB (R5) ;;; CANCEL COMPLETION TIMER
629 001310 152765 000200 000044 BISB #STMC,D.STAT(R5) ;;; INDICATE DMC MICRO-PROCESSOR STOPPED
630 001316 RETURN
631
632 ;
633 ; FATAL ERROR
634 ;
635 001320 FTLER: CALL 7$ ;;; DO FATAL ERROR PROCESSING
636
637
638 ;
639 ; NON-FATAL ERROR
640 ;
641 001324 010403 NFTER: MOV R4,R3 ;;; COPY ERROR CODE
642 001326 000426 BR 10$ ;;; GO REPORT ERROR TO LLC
DMC MACRO M1110 27-DEC-79 09:13 PAGE 17
TMOUT - TIMEOUT SERVICE ROUTINE
644 .SBTTL TMOUT - TIMEOUT SERVICE ROUTINE
645 ;+
646 ; **- TMOUT - TIMEOUT SERVICE ROUTINE
647 ;
648 ; THIS ROUTINE IS ENTERED FOR ANY OF THE FOLLOWING REASONS:
649 ; 1) COMPLETION TIMER FIRED. THE DMC HAS FAILED TO RESPOND
650 ; WITHIN A PREDETERMINED AMOUNT OF TIME.
651 ; 2) DISCONNECT TIMER HAS FIRED. LINE DISABLE
652 ; HAS COMPLETED.
653 ; 3) TIMER FIRED THAT WAS STARTED WHEN A PREVIOUS FATAL
654 ; ERROR COULDN'T BE REPORTED BECAUSE OF A RESOURCE
655 ; ALLOCATION FAILURE.
656 ;
657 ; INPUTS:
658 ; R5 = POINTER TO START OF LINE TABLE
659 ; R0,R1,R2,R3,R4 - AVAILABLE FOR USE WITHOUT SAVING
660 ;
661 ;-
662
663 001330 016503 000034 TMOUT: MOV D.ERRS(R5),R3 ;;; ANY OUTSTANDING ERRORS UNREPORTED?
664 001334 001023 BNE 10$ ;;; YES - GO POST ASYNCHRONOUS ERROR
665 001336 132765 000003 000044 BITB #STDIS!STSTP,D.STAT(R5) ;;; DISABLE LINE OR STOP IN PROGRESS?
666 001344 001036 BNE REDSP ;;; YES
667 001346 105765 000045 TSTB D.STAT+1(R5) ;;; DID WE JUST CATCH THE RDYI LATE DROP PROBLEM?
668 001352 001404 BEQ 9$ ;;; IF EQ, NO - THEN IT'S A REAL DEVICE TIMEOUT
669 001354 105065 000045 CLRB D.STAT+1(R5) ;;; CLEAR FLAG
670 001360 CALLR SETDMC ;;; GO TRY TO GET DMC STARTED UP AGAIN
671
672 001364 016503 177772 9$: MOV D.SEL2(R5),R3 ;;; SET ARGS FOR LOGGIT CALL ;BH0005
673 001370 012704 000002 MOV #BIT01,R4 ;;; THIS IS TMO FLAG ;BH0005
674 001374 000401 BR 1$ ;;; DON'T LOG IT BUT ALLOW A ;SR0010
675 001376 001160' .WORD LOGGIT ;;; A PATCH OF THE BR TO JSR TO ;SR0010
676 001400 1$: ;;; REENABLE ;SR0010
677 001400 012703 100374 MOV #CE.TMO,R3 ;;; CONTINUE WITH ERROR PROCESSING ;BH0005
678 ;**-1
679 001404 005065 000034 10$: CLR D.ERRS(R5) ;;; CLEAR PENDING ERROR INDICATOR
680 001410 016502 000026 MOV D.LINE(R5),R2 ;;; GET SYSTEM LINE NUMBER
681 001414 CALL $ASCMP ;;; POST ASYNCHRONOUS ERROR TO LLC
682 001420 103007 BCC 20$ ;;; IF CC OPERATION SUCEEDED
683 001422 032703 000770 BIT #FTLFL,R3 ;;; ALLOCATION FAILURE - REPORTING FATAL ERROR?
684 001426 001404 BEQ 20$ ;;; NO - FORGET ERROR
685 001430 010365 000034 MOV R3,D.ERRS(R5) ;;; YES - STORE FATAL ERROR CODE
686 001434 112715 000002 MOVB #2,(R5) ;;; TRY AGAIN IN 2 SECONDS
687 001440 20$: RETURN ;;; RETURN
688
689 ;*** NOTE : ALL CONTROL REQUEST ROUTINES MUST EITHER
690 ;*** NOT USE REGISTERS R0,R1,R2 OR THE REGISTERS
691 ;*** MUST BE SAVED HERE BEFORE DISPATCHING PENDING
692 ;*** REQUESTS OR THE CONTROL REQUEST CANNOT BE QUEUED.
693 ;*** SINCE THESE CONTROL FUNCTION ROUTINES RUN AT BOTH
694 ;*** INTERRUPT LEVEL AND TIMER LEVEL.
695
696 001442 016504 000036 REDSP: MOV D.CFNC(R5),R4 ;;; ANY CONTROL FUNCTIONS IN PROGRESS?
697 001446 001014 BNE 30$ ;;; IF NE, YES GO REDISPATCH
698 001450 25$: $DEQ R5,D.PFNC,R4,40$ ;;; ANY PENDING CONTROL FUNCTIONS?
699 001500 005065 000036 30$: CLR D.CFNC(R5) ;;; CLEAR CONTROL IN PROGRESS CELL
700 001504 116403 000011 MOVB C.MOD(R4),R3 ;;; YES - GET SUBFUNCTION CODE
DMC MACRO M1110 27-DEC-79 09:13 PAGE 17-1
TMOUT - TIMEOUT SERVICE ROUTINE
701 001510 CALL CTRL ;;; DISPATCH REQUEST
702 001514 005765 000036 TST D.CFNC(R5) ;;; CONTROL FUNCTION IN PROGRESS?
703 001520 001753 BEQ 25$ ;;; IF EQ, NO - LOOP TILL DONE WITH PENDING REQUESTS
704 001522 40$: RETURN ;;; OTHERWISE RETURN
705 .DSABL LSB
DMC MACRO M1110 27-DEC-79 09:13 PAGE 18
TIMRST - TIMER RESET ROUTINE
707 .SBTTL TIMRST - TIMER RESET ROUTINE
708 ;+
709 ; **- TIMRST - TIMER RESET ROUTINE
710 ;
711 ; THIS ROUTINE DESIDES IF THE TIMER SHOULD BE RESTARTED AND IF SO
712 ; IT THEN RESTARTS IT.
713 ;
714 ; INPUTS:
715 ; R5 = POINTER TO START OF LINE TABLE
716 ;-
717
718 001524 132765 000201 000044 TIMRST: BITB #STSTP!STMC,D.STAT(R5) ;;; STOP PENDING OR DEVICE STOPPED?
719 001532 001012 BNE 10$ ;;; YES - DON'T RESTART TIMER
720 001534 005765 000022 TST D.XASQ(R5) ;;; ARE THERE ANY XMIT BUFFERS ASSIGNED TO THE DMC?
721 001540 001003 BNE 5$ ;;; YES - GO RESTART TIMER
722 001542 005765 000034 TST D.ERRS(R5) ;;; ARE THERE ANY UNREPORTED ERRORS?
723 001546 001404 BEQ 10$ ;;; NO - THEN DON'T RESTART TIMER
724 001550 105715 5$: TSTB (R5) ;;; IS THE TIMER ALREADY GOING?
725 001552 001002 BNE 10$ ;;; YES - DON'T BOTHER RESTARTING IT
726 001554 116515 000001 MOVB D.TIME(R5),(R5) ;;; RESTART TIMER
727 001560 10$: RETURN ;;; RETURN
DMC MACRO M1110 27-DEC-79 09:13 PAGE 19
XMTENB - TRANSMIT ENABLE REQUEST SERVICE ROUTINE
729 .SBTTL XMTENB - TRANSMIT ENABLE REQUEST SERVICE ROUTINE
730 ;+
731 ; **- XMTENB - TRANSMIT ENABLE SERVICE ROUTINE
732 ;
733 ; THIS ROUTINE SERVICES ALL TRANSMIT ENABLE REQUESTS FROM
734 ; THE LLC LEVEL.
735 ;
736 ; INPUTS:
737 ; R4 = POINTER TO FIRST OR ONLY CCB IN CHAIN
738 ; R5 = POINTER TO START OF LINE TABLE
739 ;
740 ; OUTPUTS: (ON CALL TO SETDMC)
741 ; R3 = ADDRESS OF SEL0 REGISTER
742 ; R4 - SCRATCH
743 ; R5 = POINTER TO START OF LINE TABLE
744 ;-
745
746 .ENABL LSB
747 001562 010503 XMTENB: MOV R5,R3 ;; COPY POINTER TO START OF LINE TABLE
748 001564 062703 000016 ADD #D.XAWQ,R3 ;; ADD OFFSET TO AWAITING ASSIGNMENT QUEUE
749 001570 CALL $CMQIN ;; QUEUE SINGLE OR CHAIN OF CCB(S)
750 001574 016503 177744 10$: MOV D.SEL0(R5),R3 ;; GET ADDRESS OF SEL0 REGISTER
751 001600 CALLR SETDMC ;; GO ASSIGN AS MANY BUFFERS TO THE DMC AS POSSIBLE
752 ;; AND RETURN
DMC MACRO M1110 27-DEC-79 09:13 PAGE 20
RCVENB - RECEIVE ENABLE REQUEST SERVICE ROUTINE
754 .SBTTL RCVENB - RECEIVE ENABLE REQUEST SERVICE ROUTINE
755 ;+
756 ; **- RCVENB - RECEIVE ENABLE REQUEST SERVICE ROUTINE
757 ;
758 ; THIS ROUTINE SERVICES ALL RECEIVE ENABLE REQUESTS FROM THE LLC LEVEL
759 ; AND ALL COMPLETIONS OF BUUFER WAIT REQUESTS.
760 ;
761 ; INPUTS:
762 ; R3 = SUBFUNCTION CODE (AS A WORD INDEX)
763 ; R4 = ADDRESS OF CCB
764 ; R5 = POINTER TO START OF LINE TABLE
765 ;
766 ; OUTPUTS: (THE PROPER SERVICE ROUTINE IS CALLED WITH:)
767 ; R4 = ADDRESS OF CCB
768 ; R5 = POINTER TO START OF LINE TABLE
769 ;-
770
771 001604 RCVENB: CALLR @RCVDSP(R3) ;; CALL PROPER SERVICE ROUTINE
772 ;; AND RETURN
773
774
775
776 ;
777 ; RCVBFW - COMPLETION OF BUFFER WAIT REQUEST
778 ;
779
780 001610 RCVBFW: $ENQ R5,D.RAWQ,R4 ;; QUEUE BUFFER TO AWAITING ASSIGNMENT QUEUE
781 001630 105365 000002 DECB D.RAQC(R5) ;; ADJUST BUFFER COUNT FOR WAIT COMPLETION
782 001634 000757 BR 10$ ;; GO TRY TO ASSIGN BUFFER TO DMC
783
784 .DSABL LSB
DMC MACRO M1110 27-DEC-79 09:13 PAGE 21
CTRL - CONTROL REQUEST SERVICE ROUTINE
786 .SBTTL CTRL - CONTROL REQUEST SERVICE ROUTINE
787 ;+
788 ; **- CTRL - CONTROL REQUEST SERVICE ROUTINE
789 ;
790 ; THIS ROUTNIE SERVICES ALL CONTROL REQUESTS FROM THE LLC LEVEL.
791 ; THE ROUTINE DISPATCHS TO THE PROPER SERVICE ROUTINE BASED
792 ; ON THE SUBFUNCTION CODE.
793 ;
794 ; INPUTS:
795 ; R3 = REQUEST SUBFUNCTION CODE (AS A WORD INDEX)
796 ; R4 = ADDRESS OF CCB
797 ; R5 = POINTER TO START OF LINE TABLE
798 ;
799 ; OUTPUTS: (ON CALL TO SERVICE ROUTINE)
800 ; R3 = REQUEST SUBFUNCTION CODE
801 ; R4 = ADDRESS OF CCB
802 ; R5 = POINTER TO START OF LINE TABLE
803 ;-
804
805 001636 CTRL: CALLR @CNTDSP(R3) ;; DISPATCH TO PROPER SERVICE ROUTINE
806 ;; AND RETURN
807
808
809
810 ;
811 ; QCTRL - QUEUE CONTROL REQUEST FOR LATER EXECUTION
812 ;
813
814 001642 QCTRL: $ENQ R5,D.PFNC,R4 ;; QUEUE CONTROL REQUEST (STOP OR DISCONNECT IS PENDING)
815 001662 RETURN ;; RETURN
DMC MACRO M1110 27-DEC-79 09:13 PAGE 22
CTRL - CONTROL REQUEST SERVICE ROUTINE
817 .ENABL LSB
818 ;
819 ; START MOP MODE
820 ;
821
822 001664 012746 006400 STRMOP: MOV #MOP!HD!SCND,-(SP) ;; SET INDICATOR FOR MOP MODE (ALSO SET HALF-DUPLEX)
823 001670 000401 BR 5$ ;; JOIN COMMON CODE
824
825 ;
826 ; START
827 ;
828
829 001672 005046 START: CLR -(SP) ;; SET INDICATOR FOR NORMAL MODE
830 001674 005065 000044 5$: CLR D.STAT(R5) ;; CLEAR STATE
831 001700 016503 177744 MOV D.SEL0(R5),R3 ;; GET ADDRESS OF SEL0 REGISTER
832 ;
833 ; ASSIGN BASE TABLE
834 ;
835 001704 CALL BASEIN ;; ASSIGN BASE TABLE TO DMC
836 001710 103443 BCS 20$ ;; IF CS - ERROR DMC IS NOT RESPONDING
837 ;
838 ; SET CHARACTERISTICS (CONTROL IN)
839 ;
840 001712 112713 000041 MOVB #RQI+CTRLI,@R3 ;; GET INPUT REQUEST AND RQI CODE
841 001716 CALL WAITL ;; WAIT FOR RDYI TO COME UP
842 001722 103436 BCS 20$ ;; IF CS - ERROR DMC IS NOT RESPONDING
843 001724 005063 000006 CLR 6(R3) ;; ASSUME FULL DUPLEX,PRIMARY STATION, AND NORMAL MODE
844 001730 032765 000001 000046 BIT #BIT00,D.PLEX(R5) ;; FULL OR HALF DUPLEX?
845 001736 001403 BEQ 10$ ;; FULL
846 001740 052763 006000 000006 BIS #HD+SCND,6(R3) ;; HALF - SET HALF DUPLEX AND SECONDARY STATION
847 001746 051663 000006 10$: BIS (SP),6(R3) ;; SET MODE
848 001752 042713 000040 BIC #RQI,@R3 ;; RELEASE DMC DATA PORT
849 001756 CALL WAITL ;; WAIT FOR RDYI TO GO DOWN
850 001762 103416 BCS 20$ ;; IF CS - ERROR DMC IS NOT RESPONDING
851 ;
852 ; SET UP QUOTA OF RECEIVE BUFFERS
853 ;
854 001764 SAVRG <R4> ;; SAVE REGISTER
855 001766 116504 000051 MOVB D.PLEX+3(R5),R4 ;; GET QUOTA OF RECEIVE BUFFERS (POSITIVE #)
856 001772 105404 NEGB R4 ;; MAKE IT A MINUS COUNT
857 001774 110465 000002 MOVB R4,D.RAQC(R5) ;; SET UP RECEIVE BUFFER QUOTA
858 002000 110465 000003 MOVB R4,D.RBFC(R5) ;; ...
859 002004 CALL SETDMC ;; GO ASSIGN RECEIVE BUFFERS
860 002010 RESRG <R4> ;; RESTORE REGISTER
861 002012 012703 000001 MOV #CS.SUC,R3 ;; SIGNAL SUCCESSFUL COMPLETION
862 002016 000402 BR 25$ ;; GO POST START COMPLETE
863
864 002020 012703 100362 20$: MOV #CE.ABO,R3 ;; GET ERROR COMPLETION CODE
865 002024 005726 25$: TST (SP)+ ;; CLEAN UP STACK
866 002026 CALLR $CTCMP ;; POST START COMPLETE
867 ;; AND RETURN
868 .DSABL LSB
DMC MACRO M1110 27-DEC-79 09:13 PAGE 23
CTRL - CONTROL REQUEST SERVICE ROUTINE
870 .ENABL LSB
871
872 002032 012746 000020 WAITS: MOV #20,-(SP) ;; STORE SHORT WAIT LOOP COUNT
873 002036 000402 BR 5$ ;; JOIN COMMON CODE
874
875 002040 012746 000200 WAITL: MOV #200,-(SP) ;; STORE LONG WAIT LOOP COUNT
876 002044 000241 5$: CLC ;; ASSUME SUCCESSFUL COMPLETION
877 002046 132713 000240 10$: BITB #RDYI+RQI,@R3 ;; ARE BOTH RDYI & RQI CLEAR?
878 002052 001411 BEQ 20$ ;; YES - THEN WE WERE WAITING FOR RDYI TO CLEAR
879 002054 132713 000200 BITB #RDYI,@R3 ;; NO - THEN IS RDYI SET?
880 002060 001403 BEQ 15$ ;; NO - LOOP
881 002062 132713 000040 BITB #RQI,@R3 ;; YES - THEN IS RQI ALSO SET?
882 002066 001003 BNE 20$ ;; YES - THEN WE WERE WAITING FOR RDYI TO COME UP
883 002070 005316 15$: DEC (SP) ;; LOOP TIL END OR PROPER CONDITION
884 002072 001365 BNE 10$ ;; ...
885 002074 000261 SEC ;; SET C-BIT TO INDICATE ERROR
886 002076 005226 20$: INC (SP)+ ;; CLEAN UP STACK AND DON'T ALTER C-BIT
887 002100 RETURN ;; RETURN
888 .DSABL LSB
DMC MACRO M1110 27-DEC-79 09:13 PAGE 24
CTRL - CONTROL REQUEST SERVICE ROUTINE
890
891 002102 052713 040000 BASEIN: BIS #MC,@R3 ;; MASTER CLEAR THE DMC
892 ;
893 ; NOTE: THE FOLLOWING INSTRUCTION IS NEEDED ONLY ON KMC BOARDS
894 ;
895 002106 012713 100000 MOV #RUN,@R3 ;; SET MICRO-PROCESSOR RUN BIT
896 002112 052763 000100 000002 BIS #IEO,2(R3) ;; SET OUTPUT INTERRUPT ENABLE
897 002120 112713 000043 MOVB #RQI+BASEI,@R3 ;; SET REQUEST AND RQI CODES
898 002124 CALL WAITL ;; WAIT FOR RDYI TO COME UP
899 002130 103426 BCS 10$ ;; IF CS - ERROR DMC IS NOT RESPONDING
900 002132 SAVRG <R4,R2,R3> ;; SAVE REGISTERS
901 002140 016503 000030 MOV D.LBIA(R5),R3 ;; GET BASE TABLE BIAS ADDRESS
902 002144 016502 000032 MOV D.LVA(R5),R2 ;; GET BASE TABLE VIRTUAL ADDRESS
903 002150 CALL $CNV18 ;; CONVERT TO 18-BIT UNIBUS ADDRESS
904 002154 010304 MOV R3,R4 ;; COPY EXTENDED MEMORY BITS
905 002156 RESRG <R3> ;; RESTORE REGISTER
906 002160 010263 000004 MOV R2,4(R3) ;; STORE LOW ORDER 16-BITS OF BASE TABLE ADDRESS IN SEL4
907 002164 RESRG <R2> ;; RESTORE REGISTER
908 002166 116463 000234' 000007 MOVB MEBTAB(R4),7(R3) ;; STORE EXTENDED MEMORY BITS IN SEL6
909 002174 RESRG <R4> ;; RESTORE REGISTER
910 002176 042713 000040 BIC #RQI,@R3 ;; RELEASE DMC DATA PORT
911 002202 CALL WAITL ;; WAIT FOR RDYI TO GO DOWN
912 002206 10$: RETURN ;; RETURN
DMC MACRO M1110 27-DEC-79 09:13 PAGE 25
CTRL - CONTROL REQUEST SERVICE ROUTINE
914 ;
915 ; STOP
916 ;
917
918 .ENABL LSB
919 002210 005765 000036 STOP: TST D.CFNC(R5) ;; IS THERE A CONTROL FUNCTION IN PROGRESS?
920 002214 001402 BEQ 5$ ;; IF EQ, NO
921 002216 CALLR QCTRL ;; OTHERWISE QUEUE REQUEST FOR LATER
922
923 002222 132765 000001 000044 5$: BITB #STSTP,D.STAT(R5) ;; IS THERE A STOP PENDING?
924 002230 001014 BNE 20$ ;; IF EQ, YES - THEN GO DO IT
925 002232 132765 000200 000044 BITB #STMC,D.STAT(R5) ;; IS THE DMC ALREADY STOPPED?
926 002240 001404 BEQ 10$ ;; IF EQ, NO - GO STOP THE DMC MICRO-PROCESSOR
927 002242 CALL 20$ ;; OTHERWISE JUST DO CLEAN-UP
928 002246 CALLR REDSP ;; GO DISPATCH ANY PENDING CONTROL REQUESTS
929
930 002252 152765 000001 000044 10$: BISB #STSTP,D.STAT(R5) ;; SET STOP PENDING STATE BIT
931 002260 000427 BR 40$ ;; JOIN COMMON CODE
932
933 002262 142765 000001 000044 20$: BICB #STSTP,D.STAT(R5) ;; CLEAR STOP PENDING STATE
934 002270 CALL CLRQS ;; GO CLEAN UP ALL QUEUES
935 002274 000436 BR 60$ ;; JOIN COMMON CODE
936
937 ;
938 ; DISABLE LINE
939 ;
940
941 002276 005765 000036 DISABL: TST D.CFNC(R5) ;; IS THERE A CONTROL FUNCTION IN PROGRESS?
942 002302 001402 BEQ 30$ ;; IF EQ, NO
943 002304 CALLR QCTRL ;; OTHERWISE QUEUE REQUEST
944
945 002310 132765 000002 000044 30$: BITB #STDIS,D.STAT(R5) ;; IS THERE A DISABLE PENDING?
946 002316 001020 BNE 50$ ;; YES - THEN GO DO IT
947 002320 152765 000002 000044 BISB #STDIS,D.STAT(R5) ;; SET DISABLE PENDING STATE BIT
948 002326 016503 177744 MOV D.SEL0(R5),R3 ;; GET ADDRESS OF THE SEL 0 REGISTER
949 002332 CALL BASEIN ;; MASTER CLEAR DMC AND REASSIGN BASE TABLE
950 002336 103410 BCS 50$ ;; IF CS, DMC IS BROKEN RETURN COMPLETION
951 002340 052775 000142 177744 40$: BIS #142,@D.SEL0(R5) ;; REQUEST A PROCEDURE ERROR
952 002346 112715 000003 MOVB #3,(R5) ;; START DISABLE COMPLETION TIMER
953 002352 010465 000036 MOV R4,D.CFNC(R5) ;; STORE CCB FOR CONTROL REQUEST IN PROGRESS
954 002356 RETURN ;; RETURN
955
956 002360 005075 177772 50$: CLR @D.SEL2(R5) ;; MAKE SURE OUTPUT INTERRUPT ENABLE IS CLEAR
957 002364 142765 000002 000044 BICB #STDIS,D.STAT(R5) ;; CLEAR DISABLE PENDING STATE BIT
958 002372 012703 000001 60$: MOV #CS.SUC,R3 ;; SIGNAL SUCCESSFUL COMPLETION
959 002376 CALLR $CTCMP ;; POST CONTROL COMPLETE
960 ;; AND RETURN
961 .DSABL LSB
DMC MACRO M1110 27-DEC-79 09:13 PAGE 26
CTRL - CONTROL REQUEST SERVICE ROUTINE
963 ;
964 ; INIT - INTIALIZE
965 ; EXIT - TERMINATE
966 ;
967 002402 INIT:
968 002402 EXIT: ;; NOP FOR NOW
969
970 ;
971 ; GET - GET LINE CHARACTERISTICS
972 ; SET - SET LINE CHARACTERISTICS
973 ;
974 002402 GET: ;; NOP FOR NOW
975 002402 SET:
976
977 ;
978 ; RING - LOOK FOR RING
979 ; ENABLE - ENABLE THE DEVICE
980 ;
981 002402 052775 040000 177744 ENABL: BIS #MC,@D.SEL0(R5) ;; MASTER CLEAR DMC TO ASSERT DTR
982 002410 012703 000001 RING: MOV #CS.SUC,R3 ;; INDICATE SUCCESSFUL COMPLETION
983 002414 CALLR $CTCMP ;; POST COMPLETION TO LLC
DMC MACRO M1110 27-DEC-79 09:13 PAGE 27
CLRQS - QUEUE CLEAN UP SUBROUTINE
985 .SBTTL CLRQS - QUEUE CLEAN UP SUBROUTINE
986 ;+
987 ; **- CLRQS - QUEUE CLEAN UP SUBROUTINE
988 ;
989 ; THIS SUBROUTINE CLEANS ALL THE REQUESTS OUT OF THE LINE TABLE QUEUES.
990 ; IT RETURNS ALL RECEIVE BUFFERS TO THE POOL AND RETURNS ALL TRANSMIT REQUESTS
991 ; WITH ABORT ERRORS.
992 ;
993 ; INPUTS:
994 ; R5 = POINTER TO START OF LINE TABLE
995 ;
996 ;-
997
998 002420 CLRQS: SAVRG <R4> ;; SAVE REGISTER
999 002422 016504 000026 MOV D.LINE(R5),R4 ;; GET SYSTEM LINE NUMBER
1000 002426 CALL $RDBQP ;; PURGE ALL BUFFER WAIT REQUESTS
1001 002432 105015 CLRB (R5) ;; CANCEL COMPLETION TIMER
1002
1003 002434 116565 000003 000002 MOVB D.RBFC(R5),D.RAQC(R5) ;; RESET NUMBER OF RECV BUFFERS CURRENTLY ASSIGNAB
1004 002442 116565 000015 000014 MOVB D.XBFC(R5),D.XAQC(R5) ;; RESET NUMBER OF XMIT BUFFERS CURRENTLY ASSIGNAB
1005 002450 10$: $DEQ R5,D.XASQ,R4,20$ ;; GET NEXT CCB FROM ASSIGNED TO DMC QUEUE
1006 002500 012703 100362 MOV #CE.ABO,R3 ;; GET ABORT ERROR CODE
1007 002504 CALL $XMCMP ;; POST TRANSMIT COMPLETE
1008 002510 000757 BR 10$ ;; LOOP TILL QUEUE IS EMPTY
1009
1010 002512 20$: $DEQ R5,D.XAWQ,R4,30$ ;; GET NEXT CCB FROM AWAITING ASSIGNMENT QUEUE
1011 002542 012703 100362 MOV #CE.ABO,R3 ;; GET ABORT ERROR CODE
1012 002546 CALL $XMCMP ;; POST TRANSMIT COMPLETE
1013 002552 000757 BR 20$ ;; LOOP TILL QUEUE IS EMPTY
1014
1015 002554 30$: $DEQ R5,D.RASQ,R4,40$ ;; GET NEXT CCB FROM ASSIGNED TO DMC QUEUE
1016 002604 CALL $RDBRT ;; RETURN BUFFER TO POOL
1017 002610 000761 BR 30$ ;; LOOP TILL QUEUE IS EMPTY
1018
1019 002612 40$: $DEQ R5,D.RAWQ,R4,50$ ;; GET NEXT CCB FROM AWAITING ASSIGNMENT QUEUE
1020 002642 CALL $RDBRT ;; RETURN BUFFER TO POOL
1021 002646 000761 BR 40$ ;; LOOP TILL QUEUE IS EMPTY
1022
1023 002650 50$: RESRG <R4> ;; RESTORE REGISTER
1024 002652 RETURN ;; RETURN
1025
1026
1027
1028 000001 .END
DMC MACRO M1110 27-DEC-79 09:13 PAGE 27-1
SYMBOL TABLE
A$$CHK= 000000 CTRL 001636R D.OVCT 177752 G E$RRTO= 000006 F$$LVL= 000001
A$$CPS= 000000 CTRLI = 000001 D.PFNC 000040 G E$RSEL= 000030 GET 002402R
A$$PRI= 000000 CTRLO 001102R D.PLEX 000046 G E$RSIN= 000004 G$$TPP= 000000
A$$TRP= 000000 C$$CKP= 000000 D.RAQC 000002 G E$RSRC= 000015 G$$TSS= 000000
BASEI = 000003 C$$ORE= 000400 D.RASQ 000010 G E$RTRN= 000026 G$$TTK= 000000
BASEIN 002102R C$$RSH= 177564 D.RAWQ 000004 G E$RUCL= 000001 G$$WRD= 000000
BIT00 = 000001 C.BID 000003 D.RBFC 000003 G E$RXTO= 000027 HD = 002000
BIT01 = 000002 C.BUF 000014 D.RCV 000056 G E$TASC= 000001 IEI = 000100
BIT02 = 000004 C.BUF1 000014 D.SEL0 177744 G E$TASX= 000002 IEO = 000100
BIT03 = 000010 C.BUF2 000024 D.SEL2 177772 G E$THDW= 000003 INIT 002402R
BIT04 = 000020 C.CNT 000020 D.STAT 000044 G E$TSFT= 000004 I$$RAR= 000000
BIT05 = 000040 C.CNT1 000020 D.TIME 000001 G E$TTOP= 000005 I$$RDN= 000000
BIT06 = 000100 C.CNT2 000030 D.TIMR 000000 G E$$XPR= 000000 KDP = 000034
BIT07 = 000200 C.FLG 000022 D.TLZ 000052 G FC.CCP= 000020 KDSAR0= 172360
BIT08 = 000400 C.FLG1 000022 D.XAQC 000014 G FC.CTL= 000006 KDSDR0= 172320
BIT09 = 001000 C.FLG2 000032 D.XASQ 000022 G FC.KCP= 000016 KDZ = 000036
BIT10 = 002000 C.FNC 000010 D.XAWQ 000016 G FC.KIL= 000004 KISAR0= 172340
BIT11 = 004000 C.LIN 000006 D.XBFC 000015 G FC.RCE= 000002 KISAR5= 172352
BIT12 = 010000 C.LNK 000000 D.XMT 000054 G FC.RCP= 000014 KISAR6= 172354
BIT13 = 020000 C.MOD 000011 ENABL 002402R FC.TIM= 000010 KISAR7= 172356
BIT14 = 040000 C.NSP 000004 ERRTB 000000R FC.XCP= 000012 KISDR0= 172300
BIT15 = 100000 C.RSV 000002 ERRTBL= 000010 FC.XME= 000000 KISDR6= 172314
CB.CCB= 000002 C.STA 000007 ERTBL 000164R FE.CAL= 000040 KISDR7= 172316
CB.RDB= 000004 C.STS 000012 EXIT 002402R FE.DRV= 000010 KL = 000040
CE.ABO= 100362 DA = 000010 E$DDAT= 000003 FE.EXP= 000200 K$$CNT= 177546
CE.DIS= 100366 DISABL 002276R E$DDEV= 000005 FE.EXT= 000001 K$$CSR= 177546
CE.ERR= 100370 DL = 000004 E$DLPC= 000013 FE.EXV= 000004 K$$LDC= 000000
CE.MOP= 100372 DLA = 000020 E$DMCD= 000012 FE.LSI= 000400 K$$TPS= 000074
CE.NTE= 100361 DLV = 000004 E$DNOD= 000011 FE.MUP= 000002 LD$LP = 000000
CE.RTE= 100376 DMC = 000014 E$DOSI= 000010 FE.MXT= 040000 LGDAT = 000012
CE.SRC= 100364 DMCITB= 000132R E$DREC= 000007 FE.NLG= 100000 LOGGIT 001160R
CE.TMO= 100374 DMCOTB= 000016 G E$DREG= 000001 FE.PKT= 000100 L$$ASG= 000000
CF.EOM= 000004 DP = 000000 E$DRSN= 000006 FE.PLA= 000020 L$$DRV= 000000
CF.HDR= 000020 DQ = 000006 E$DTHR= 000015 FS.AST= 000000 L$$P11= 000001
CF.LB = 100000 DTE = 000024 E$DTIM= 000002 FS.CIB= 002000 L$$11R= 000000
CF.SOM= 000010 DU = 000002 E$DTPC= 000014 FS.CRA= 001000 MC = 040000
CF.SYN= 000040 DUP = 000012 E$DTXT= 000016 FS.DIS= 013000 MEBTAB 000234R
CF.TRN= 000100 DUV = 000002 E$DUPT= 000004 FS.DVC= 001000 MOP = 000400
CLRQS 002420R DV = 000026 E$RABO= 000017 FS.ENB= 012000 MPAR = 172100
CMODE = 140000 DZ = 000030 E$RCRC= 000023 FS.GET= 006000 MPCSR = 177746
CNTDSP 000102R D$$BUG= 177514 E$RDSC= 000005 FS.INI= 000000 M$$CRB= 000124
CS.ABO= 000100 D$$ISK= 000000 E$RFRM= 000024 FS.KIL= 000000 M$$CRX= 000000
CS.BUF= 000200 D$$L11= 000001 E$RHFE= 000016 FS.LTM= 001000 M$$FCS= 000000
CS.DCR= 000400 D$$YNC= 000000 E$RLIN= 000003 FS.MNT= 004000 M$$MGE= 000000
CS.DEV= 000002 D$$YNM= 000000 E$RMOP= 000014 FS.MSN= 014000 M$$OVR= 000000
CS.DIS= 000040 D.CFNC 000036 G E$RMTL= 000013 FS.RNG= 011000 NFLTER= 000003
CS.ENB= 000020 D.ERRS 000034 G E$RNAK= 000032 FS.RTN= 001000 NFTER 001324R
CS.EOF= 000001 D.IVCT 177724 G E$RNXM= 000002 FS.SET= 005000 N$$LDV= 000001
CS.ERR= 100000 D.LBIA 000030 G E$ROVR= 000012 FS.STM= 000000 N$$MOV= 000010
CS.HFE= 002000 D.LEN = 000144 G E$RPEC= 000022 FS.STP= 002000 N$$SYS= 000001
CS.LST= 040000 D.LINE 000026 G E$RPEM= 000021 FS.STR= 001000 N$$USR= 000001
CS.MTL= 004000 D.LOGG 000066 G E$RPET= 000020 FS.TRM= 003000 ORUN = 000004
CS.RNG= 000010 D.LREC 000060 G E$RPRC= 000025 FS.XKL= 002000 PDID = 000050R
CS.ROV= 000004 D.LVA 000032 G E$RPWF= 000007 FS.XOF= 010000 PDST 000042R
CS.RSN= 010000 D.OFFI= 000030 G E$RPWR= 000010 FS.XON= 007000 PDT1 000046R
CS.SUC= 000001 D.OFFO= 000002 G E$RRET= 000031 FTLER 001320R PDT2 000050R
CS.TMO= 020000 D.OFFS= 000054 G E$RRTE= 000011 FTLFL = 000770 PIRQ = 177772
DMC MACRO M1110 27-DEC-79 09:13 PAGE 27-2
SYMBOL TABLE
PLIN = 000046R P$$WRD= 000000 SCND = 004000 T$$KMG= 000000 XMT = 000000
PLNG 000052R QCTRL 001642R SET 002402R T$$MIN= 000000 XMTENB 001562R
PMODE = 030000 Q$$OPT= 000010 SETBUF 000730R UBMPR = 170200 XMTOUT 000426R
PNAM 000054R RCV = 000004 SETDMC 000522R UDSAR0= 177660 X$$DBT= 000000
PRCER 001256R RCVBFW 001610R SISDR0= 172200 UDSDR0= 177620 $ASCMP= ****** GX
PROC = 001000 RCVDSP 000076R SR0 = 177572 UISAR0= 177640 $CMLOG= ****** GX
PROCD 000320R RCVENB 001604R SR3 = 172516 UISAR4= 177650 $CMQIN= ****** GX
PRSN 000044R RCVOUT 000326R START 001672R UISAR5= 177652 $CNV18= ****** GX
PR0 = 000000 RDYI = 000200 STDIS = 000002 UISAR6= 177654 $CTCMP= ****** GX
PR1 = 000040 RDYO = 000200 STMC = 000200 UISAR7= 177656 $DMCTB 000064RG
PR4 = 000200 RECVIN 000274R STOP 002210R UISDR0= 177600 $INTSX= ****** GX
PR5 = 000240 REDSP 001442R STRMOP 001664R UISDR4= 177610 $RCCMP= ****** GX
PR6 = 000300 RING 002410R STSTP = 000001 UISDR5= 177612 $RDBGT= ****** GX
PR7 = 000340 RQI = 000040 SWR = 177570 UISDR6= 177614 $RDBQP= ****** GX
PS = 177776 RUN = 100000 S$$WRG= 000000 UISDR7= 177616 $RDBRT= ****** GX
PSTA 000062R R$$DER= 000000 S$$YSZ= 007600 V$$CTR= 001000 $RDBWT= ****** GX
PTAB 000060R R$$K11= 000001 TIMRST 001524R WAITL 002040R $XMCMP= ****** GX
PTYP 000056R R$$SND= 000000 TMOUT 001330R WAITS 002032R $$DMC 000240RG
P$$P45= 000000 R$$11M= 000000 TPS = 177564 XMITIN 000302R ..OFF.= 177724
. ABS. 177776 000
002654 001
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 9617 WORDS ( 38 PAGES)
DYNAMIC MEMORY: 11116 WORDS ( 42 PAGES)
ELAPSED TIME: 00:01:05
DMC,[131,34]DMC/CR=[130,10]NETLIB/ML,RSXMC4/PA:1,[131,10]DMC
DMC CREATED BY MACRO ON 27-DEC-79 AT 09:14 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
BASEI = 000003 #4-107 24-897
BASEIN 002102 R 22-835 #24-891 25-949
BIT00 = 000001 #3-74 4-106 4-107 4-112 5-144 22-844
BIT01 = 000002 #3-75 4-107 4-112 5-145 17-673
BIT02 = 000004 #3-76 4-108 4-110 5-146
BIT03 = 000010 #3-77 4-113 5-147
BIT04 = 000020 #3-78 4-113 5-148
BIT05 = 000040 #3-79 4-103 4-113
BIT06 = 000100 #3-80 4-101 4-102 4-113 5-149
BIT07 = 000200 #3-81 4-99 4-100 4-113 5-150
BIT08 = 000400 #3-82 4-113 4-117 5-151
BIT09 = 001000 #3-83 4-111
BIT10 = 002000 #3-84 4-115
BIT11 = 004000 #3-85 4-116
BIT12 = 010000 #3-86
BIT13 = 020000 #3-87
BIT14 = 040000 #3-88 4-97
BIT15 = 100000 #3-89 4-96
CE.ABO = 100362 22-864 27-1006 27-1011
CE.DIS = 100366 8-259 8-262
CE.ERR = 100370 8-257 8-258 8-261
CE.MOP = 100372 8-256
CE.RTE = 100376 8-253
CE.SRC = 100364 8-260
CE.TMO = 100374 8-254 17-677
CLRQS 002420 R 25-934 #27-998
CNTDSP 000102 R #6-203 21-805
CS.LST = 040000 13-456 13-509 20-780 21-814
CS.SUC = 000001 12-398 12-408 22-861 25-958 26-982
CTRL 001636 R 6-185 17-701 #21-805
CTRLI = 000001 #4-106 22-840
CTRLO 001102 R 7-240 7-244 #14-554
C.BUF 000014 13-512 13-513
C.CNT 000020 *12-395 *12-396 13-517
C.LIN 000006 *13-457
C.MOD 000011 17-700
C.STS 000012 *13-456 *13-509 *20-780 *21-814
DISABL 002276 R 6-215 #25-941
DMC = 000014 5-158
DMCITB = 000132 R #7-224 7-238 9-314
DMCOTB = 000016 G #7-238
D.CFNC 000036 G #5-132 17-696 *17-699 17-702 25-919 25-941 *25-953
D.ERRS 000034 G #5-132 17-663 *17-679 *17-685 18-722
D.IVCT 177724 G #5-132 5-132
D.LBIA 000030 G #5-132 24-901
D.LEN = 000144 G #5-132
D.LINE 000026 G #5-132 13-451 13-457 15-598 17-680 27-999
D.LOGG 000066 G #5-132 15-593
D.LREC 000060 G #5-132
D.LVA 000032 G #5-132 24-902
D.OFFI = 000030 G #5-132
D.OFFO = 000002 G #5-132
DMC CREATED BY MACRO ON 27-DEC-79 AT 09:14 PAGE 2
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
D.OFFS = 000054 G #5-132
D.OVCT 177752 G #5-132
D.PFNC 000040 G #5-132 17-698 *17-698 *17-698 17-698 *17-698 21-814 *21-814
D.PLEX 000046 G #5-132 22-844 22-855
D.RAQC 000002 G #5-132 *12-394 *13-453 *20-781 *22-857 *27-1003
D.RASQ 000010 G #5-132 12-393 *12-393 *12-393 12-393 *12-393 13-449 27-1015 *27-1015
*27-1015 27-1015 *27-1015
D.RAWQ 000004 G #5-132 10-340 13-449 13-451 *13-453 13-457 13-461 20-780 *20-780
27-1019 *27-1019 *27-1019 27-1019 *27-1019
D.RBFC 000003 G #5-132 *22-858 27-1003
D.RCV 000056 G #5-132 12-400 *12-402
D.SEL0 177744 G #5-132 19-750 22-831 25-948 25-951 26-981
D.SEL2 177772 G #5-132 17-672 25-956
D.STAT 000044 G #5-132 *13-499 *13-524 16-620 *16-629 17-665 17-667 *17-669 18-718
*22-830 25-923 25-925 *25-930 *25-933 25-945 *25-947 *25-957
D.TIME 000001 G #5-132 18-726
D.TIMR 000000 G #5-132
D.TLZ 000052 G #5-132
D.XAQC 000014 G #5-132 *12-406 13-461 *27-1004
D.XASQ 000022 G #5-132 12-405 *12-405 *12-405 12-405 *12-405 18-720 27-1005 *27-1005
*27-1005 27-1005 *27-1005
D.XAWQ 000016 G #5-132 10-343 19-748 27-1010 *27-1010 *27-1010 27-1010 *27-1010
D.XBFC 000015 G #5-132 27-1004
D.XMT 000054 G #5-132 12-410 *12-412
ENABL 002402 R 6-214 #26-981
ERRTB 000000 R #5-143 5-152 5-158
ERRTBL = 000010 5-143 #5-152
ERTBL 000164 R #8-253 14-571
EXIT 002402 R #26-968
E$DREG = 000001 15-603
E$RDSC = 000005 5-149
E$RMOP = 000014 5-147
E$RMTL = 000013 5-148
E$RNXM = 000002 5-151
E$ROVR = 000012 5-146
E$RRTE = 000011 5-144
E$RRTO = 000006 5-145
E$RSRC = 000015 5-150
E$THDW = 000003 5-158
FTLER 001320 R 8-256 8-257 8-258 8-260 8-261 #16-635
FTLFL = 000770 #4-113 17-683
GET 002402 R #26-974
HD = 002000 #4-115 22-822 22-846
IEI = 000100 #4-101 10-344 11-368 13-493 13-495
IEO = 000100 #4-102 24-896
INIT 002402 R #26-967
I$$AS = ****** 6-162
LGDAT = 000012 #5-157 5-158
LOGGIT 001160 R 14-556 #15-590 17-675
MC = 040000 #4-97 16-622 24-891 26-981
MEBTAB 000234 R #8-268 13-519 24-908
MOP = 000400 #4-117 22-822
DMC CREATED BY MACRO ON 27-DEC-79 AT 09:14 PAGE 3
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
M$$MGE = 000000 5-132 5-132 5-132 5-132
NFLTER = 000003 #4-112
NFTER 001324 R 8-253 8-254 8-259 #16-641
ORUN = 000004 #4-110
PDID = 000050 R #5-160
PDST 000042 R #5-158 *15-593 15-599
PDT1 000046 R #5-158 5-159
PDT2 000050 R #5-158 5-160
PLIN = 000046 R #5-159 *15-598
PLNG 000052 R #5-158
PNAM 000054 R #5-158
PRCER 001256 R 8-262 #16-619
PROC = 001000 #4-111 15-590
PROCD 000320 R 7-227 7-228 7-231 #11-368
PRSN 000044 R #5-158 *15-597
PSTA 000062 R #5-158
PTAB 000060 R #5-158
PTYP 000056 R #5-158
QCTRL 001642 R #21-814 25-921 25-943
RCV = 000004 #4-108 13-458
RCVBFW 001610 R 6-198 #20-780
RCVDSP 000076 R #6-196 20-771
RCVENB 001604 R 6-183 #20-771
RCVOUT 000326 R 7-243 #12-393
RDYI = 000200 #4-99 23-877 23-879
RDYO = 000200 #4-100 12-414 13-483 14-562
RECVIN 000274 R 7-229 #10-340
REDSP 001442 R 16-623 17-666 #17-696 25-928
RING 002410 R 6-213 #26-982
RQI = 000040 #4-103 11-368 13-458 13-466 13-467 13-521 22-840 22-848 23-877
23-881 24-897 24-910
RUN = 100000 #4-96 24-895
R$$11D = ****** 6-162
SCND = 004000 #4-116 22-822 22-846
SET 002402 R #26-975
SETBUF 000730 R 10-346 #13-504
SETDMC 000522 R 8-255 #13-441 17-670 19-751 22-859
START 001672 R 6-205 #22-829
STDIS = 000002 #4-123 17-665 25-945 25-947 25-957
STMC = 000200 #4-124 16-629 18-718 25-925
STOP 002210 R 6-206 #25-919
STRMOP 001664 R 6-208 #22-822
STSTP = 000001 #4-122 16-620 17-665 18-718 25-923 25-930 25-933
TIMRST 001524 R 13-525 #18-718
TMOUT 001330 R 6-186 #17-663
WAITL 002040 R 22-841 22-849 #23-875 24-898 24-911
WAITS 002032 R 13-479 13-490 #23-872
XMITIN 000302 R 7-225 #10-343
XMT = 000000 #4-105 13-466
XMTENB 001562 R 6-182 #19-747
XMTOUT 000426 R 7-239 #12-405
X$$BUG = ****** 9-303 14-558
DMC CREATED BY MACRO ON 27-DEC-79 AT 09:14 PAGE 4
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
$ASCMP = ****** GX 17-681
$CMLOG = ****** GX 15-600
$CMQIN = ****** GX 19-749
$CNV18 = ****** GX 13-514 24-903
$CTCMP = ****** GX 22-866 25-959 26-983
$DMCTB 000064 RG #6-181
$INTSX = ****** GX 9-298
$RCCMP = ****** GX 12-399
$RDBGT = ****** GX 13-447
$RDBQP = ****** GX 27-1000
$RDBRT = ****** GX 6-197 27-1016 27-1020
$RDBWT = ****** GX 13-452
$XMCMP = ****** GX 12-409 27-1007 27-1012
$$DMC 000240 RG #9-297
..OFF. = 177724 #5-132 5-132 5-132
DMC CREATED BY MACRO ON 27-DEC-79 AT 09:14 PAGE 5
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
CALL 9-314 12-399 12-409 13-447 13-452 13-479 13-490 13-514 13-525 14-556
14-573 15-600 15-610 16-619 16-635 17-681 17-701 19-749 22-835 22-841
22-849 22-859 24-898 24-903 24-911 25-927 25-934 25-949 27-1000 27-1007
27-1012 27-1016 27-1020
CALLR #10-346 #17-670 #19-751 #20-771 #21-805 #22-866 #25-921 #25-928 #25-943 #25-959
#26-983
CCBDF$ #3-65 #3-67
CMLDF$ #3-65 #5-158
DEVDF #3-65 #5-137
DMCDF$ #3-65 5-132
EVLDF$ #3-65 5-138
HWDDF$ #3-65 #3-68
RESRG #3-66 9-315 12-413 13-497 13-520 13-528 14-574 22-860 24-905 24-907
24-909 27-1023
RETURN 9-316 11-369 13-501 13-529 14-575 15-613 16-626 16-630 17-687 17-704
18-727 21-815 23-887 24-912 25-954 27-1024
SAVRG #3-66 9-299 12-397 12-407 13-441 13-504 13-510 14-564 22-854 24-900
27-998
TMPDF$ #5-132 #5-132
$DEQ #3-66 #12-393 #12-405 #13-507 #17-698 #27-1005 #27-1010 #27-1015 #27-1019
$ENQ #3-66 #13-456 #13-509 #20-780 #21-814
$INTSX #3-64 #9-298
.BIN #5-132
.CNB #5-132
.CNW #5-132
.CORE #5-132
.CSR #5-132 5-132 5-132
.DVCHA #5-132 #5-132
.INT #5-132 #5-132 #5-132 #5-132
.INT1 #5-132
.INT2 #5-132
.INT3 #5-132
.LFLHD #5-132
.LIBR #5-132
.LINKS #5-132
.LSTHD #5-132 5-132 5-132 5-132 5-132 5-132
.LTAB #5-132
.MPLHD #5-132
.POOL #5-132
.PRI #5-132 #5-132 #5-132
.SCOM #5-132
.SECSR #5-132
.SLNB #5-132
.SLNW #5-132
.STNB #5-132
.STNW #5-132
.UNB #5-132
.UNW #5-132
.VFY #5-132