Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/mcb/dte.list
There are no other files named dte.list in the archive.
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37
TABLE OF CONTENTS
5- 61 PARAMETERS
6- 69 MACROS
7- 101 GENERAL DEFINITIONS
8- 136 DTE20 REGISTER DEFINITIONS
9- 201 COMMUNICATIONS REGION DEFINITIONS
10- 264 DTE20 LINE TABLE DEFINITIONS
11- 288 PURE DATA
12- 329 $DTEIS -- DTE20 INTERRUPT SERVICE
13- 356 XMENA -- TRANSMIT REQUEST
14- 377 RCENA -- RECEIVE ENABLE
15- 396 KILL -- ABORT
16- 413 CNTRL/CTLCMP -- CONTROL SUBFUNCTION
17- 481 START -- START QUEUED PROTOCOL
18- 692 STOP -- STOP PROTOCOL
19- 770 ENABLE/DISABL -- ENABLE/DISABLE LINE
20- 781 TMOUT -- TIMER EXPIRED
21- 822 XMCMP -- TRANSMIT COMPLETE (INTERRUPT REQUEST)
22- 864 T10DON -- TO -10 DONE SERVICE
23- 910 T11DON -- TO -11 DONE SERVICE
24- 958 DORBEL -- TO -11 DOORBELL SERVICE
25- 993 STRTXQ -- START TRANSMIT QUEUE
26- 1053 STRTRQ -- START RECEIVE
27- 1157 DEPSTS -- DEPOSIT TO-HIM STATUS WORD
28- 1169 EXMHSG/EXMHSM/EXMMYG/EXMMYH/DEPMYG/DEPMYH -- DEPOSIT/EXAMINE COMM REGION
29- 1220 PRTEXM/PRTDEP -- PROTECTED EXAMINE/DEPOSIT
30- 1255 WTEXDP -- WAIT FOR EXAMINE/DEPOSIT
31- 1291 CNVADR/CMBYCT/UPDADR -- BUFFER ADDRESSING ROUTINES
32- 1386 XMRCKL/RCVKIL/GETRBF/GET1BF/QUERBF/RETRBF/XMTKIL -- BUFFER MANAGEMENT RO
33- 1465 ASYERR -- ASYNCHRONOUS ERROR PROCESSING
34- 1549 LOGGIT - EVENT LOGGING ;BH0004
35- 1583 END
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 4
2 .TITLE DTE -- DTE20 DDM/DLC DRIVER FOR MCB
3 .IDENT /V01.12/
4 ;
5 ; *** COPYRIGHT (C) 1976, 1977
6 ; *** DIGITAL EQUIPMENT CORPORATION, MAYNARD, MA 01754
7 ;
8 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A SINGLE
9 ; COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLUSION OF THE ABOVE
10 ; COPYRIGHT NOTICE. THIS SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT
11 ; BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON EXCEPT FOR
12 ; USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE TERMS.
13 ; TITLE TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN
14 ; DEC.
15 ;
16 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
17 ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
18 ; CORPORATION.
19 ;
20 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
21 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
22 ;
23 ;
24 ; MODULE: DTE -- DTE20 DDM/DLC DRIVER FOR MCB
25 ;
26 ; AUTHOR: TOM PORCHER
27 ;
28 ; DATE: 3 FEBRUARY 1977
29 ;
30 ; EDIT HISTORY:
31 ;
32 ; 1.01 23-MAY-78 LEE WEBBER
33 ; SUPPORT MOS MEMORY ON THE 2060 BY GOING INTO A PASSIVE STATE
34 ; WHEN THE VALID EXAMINE BIT GOES OFF. THE BIT WILL BE INSPECTED
35 ; ONLY ON THE RECEIPT OF A DOORBELL INTERRUPT; WHEN IT GOES ON
36 ; AGAIN, THE PRIMARY PROTOCOL WILL BE CONTINUED.
37 ; 1.02 17-NOV-78 BUREN W. HOFFMAN
38 ; MODIFICATIONS TO ACCOMODATE EVENT LOGGING.
39 ; 1.03 22-DEC-78 BUREN W. HOFFMAN
40 ; ADDED LINE COUNTERS TO DLT, AND ASSOC DTE CODE.
41 ; 1.04 12-JAN-79 BUREN W. HOFFMAN
42 ; MODIFIED TO USE NEW $CMLOG (V1.01).
43 ; 1.05 30-JAN-79 BUREN W. HOFFMAN
44 ; OMITTED ERROR CODE TABLE SEARCH - USE THE ONE IN $CMLOG.
45 ; 1.06 1-FEB-79 BUREN W. HOFFMAN
46 ; CHANGED TO GLOBAL INVOCATION OF LINE TABLE DEFINITION MACROS.
47 ; 1.07 2-FEB-79 BUREN W. HOFFMAN
48 ; ADDED ERROR RETURN DETECTION IN COROUTINE CALL TO $CMLOG. ALSO,
49 ; STARTED UTILIZING EVLDF$ MACRO FOR LOGGING SYMBOLS.
50 ; 1.10 12-FEB-79 BUREN W. HOFFMAN
51 ; REMOVED TIMEOUT COUNTER, BECAUSE IT IS USED ROUTINELY TO GET
52 ; OPERATIONS GOING (SYNCHRONIZATION), NOT AS AN ERROR INDICATION.
53 ; 1.11 19-FEB-79 BUREN W. HOFFMAN
54 ; FIXED LOGGING LENGTH TO SAY CORRECT NUMBER OF BYTES OF REGISTERS.
55 ; IT WAS SAYING 2 MORE THAN WERE ACTUALLY WRITTEN.
56 ; 1.12 21-FEB-79 BUREN W. HOFFMAN
57 ; CORRECTED ERR IN COR FILE WHICH CAUSED STUFF TO BE INSERTED WRONG.
58
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 4-1
59 ; *** END OF EDIT HISTORY ***
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 5
PARAMETERS
61 .SBTTL PARAMETERS
62 ;
63 ; *** PARAMETERS ***
64 ;
65 000000 X$$BUG= 0 ;DEBUG VERSION IF DEFINED
66 000000 D$$CHK= 0 ;DTE20 CONSISTENCY CHECKING . . .
67 000000 P$$CHK= 0 ;PROTOCOL CONSISTENCY CHECKING . . .
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 6
MACROS
69 .SBTTL MACROS
70 ;
71 ; MISCELANEOUS MCALL'S
72 ;
73 .MCALL CCBDF$,HWDDF$,DTEDF$,CMLDF$,EVLDF$,DEVDF,$INTXT,CALL,RETURN ;BH0007
74 000000 CCBDF$ ;**-1
75 000000 HWDDF$
76 ; ;**-1
77 ;
78 ; MACROS
79 ;
80 ;
81 ; "CALLR DEST" -- CALL DEST AND RETURN
82 ;
83 .MACRO CALLR,DEST
84 JMP DEST ;CALL DEST AND RETURN
85 .ENDM CALLR
86 ;
87 ; "CALLRB DEST" -- CALL DEST AND RETURN (IF BRANCH WILL DO)
88 ;
89 .MACRO CALLRB,DEST
90 BR DEST ;CALL DEST AND RETURN
91 .ENDM CALLRB
92 ;
93 ; "CALLRX DEST" -- CALL DEST AND RETURN (IF NOTHING WILL DO)
94 ;
95 .MACRO CALLRX,DEST
96 .IF DF PASS2
97 .IIF NE <.-DEST>,.ERROR <.-DEST> ; CALLRX DEST WHERE NOT VALID
98 .ENDC
99 .ENDM
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 7
GENERAL DEFINITIONS
101 .SBTTL GENERAL DEFINITIONS
102 ;
103 ; GENERAL BIT DEFINITIONS
104 ;
105 000001 BIT0= 000001
106 000002 BIT1= 000002
107 000004 BIT2= 000004
108 000010 BIT3= 000010
109 000020 BIT4= 000020
110 000040 BIT5= 000040
111 000100 BIT6= 000100
112 000200 BIT7= 000200
113 000400 BIT8= 000400
114 001000 BIT9= 001000
115 002000 BIT10= 002000
116 004000 BIT11= 004000
117 010000 BIT12= 010000
118 020000 BIT13= 020000
119 040000 BIT14= 040000
120 100000 BIT15= 100000
121 ;
122 ; STATUS RETURN CODES, RETURNED IN C.STS
123 ; *** TEMPORARY ***
124 ;
125 000001 CS.SUC= 1 ;SUCCESS
126 ;
127 ; -1.
128 177776 CS.HLT= -2. ;PROTOCOL HALTED
129 ; -3.
130 177774 CS.SRO= -4. ;START RECEIVED WHILE ONLINE
131 177773 CS.TDN= -5. ;-10 HALTED OR PROCESSOR DOWN
132 177772 CS.TRE= -6. ;TRANSFER DATA ERROR
133 177771 CS.DCK= -7. ;DTE20 CONSISTENCY CHECK
134 177770 CS.PCK= -8. ;PROTOCOL CONSISTENCY CHECK
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 8
DTE20 REGISTER DEFINITIONS
136 .SBTTL DTE20 REGISTER DEFINITIONS
137 ;
138 ; DTE20 REGISTER DEFINITIONS
139 ;
140 ;
141 ; THE FOLLOWING 12 REGISTERS ARE IN RAMS
142 ;
143 000000 DLYCNT= 0 ;DELAY COUNTER
144 100000 BUSA17= BIT15 ; UNIBUS ADDRESS BIT 17
145 040000 BUSA16= BIT14 ; UNIBUS ADDRESS BIT 16
146 037777 DLYMSK= 37777 ; DELAY COUNTER
147 000002 DEXWD3= 2 ;DEPOSIT/EXAMINE WORD 3
148 000004 DEXWD2= 4 ; . . 2
149 000006 DEXWD1= 6 ; . . 1
150 000010 TENAD1= 10 ;KL-10 MEMORY ADDRESS WORD 1:
151 160000 SPACE= BIT15!BIT14!BIT13 ; ADDRESS SPACE FOR UNPROTECTED EXAMINE/DEPOSIT
152 010000 DEP= BIT12 ; 0-- EXAMINE, 1-- DEPOSIT
153 004000 PRTOFF= BIT11 ; PROTECT OFF
154 000177 TENADM= 177 ; KL10 ADDRESS BITS 13-19
155 000012 TENAD2= 12 ;KL10 ADDRESS BITS 20-35 (WRITE STARTS EXAMINE/DEPOSIT)
156 000014 TO10BC= 14 ;TO -10 BYTE (WORD) COUNT:
157 007777 TO10CM= 7777 ; BYTE (WORD) COUNT (SET BY -10 "DATAO DTE,"
158 000016 TO11BC= 16 ;TO -11 BYTE (WORD) COUNT (WRITE STARTS TO -11 TRANSFER)
159 100000 TO11IB= BIT15 ; INTERRUPT BOTH -10 AND -11 WHEN DONE
160 020000 TO11BM= BIT13 ; TO -11 BYTE MODE
161 007777 TO11CM= 7777 ; BYTE (WORD) COUNT
162 000020 TO10AD= 20 ;TO -10 ADDRESS
163 000022 TO11AD= 22 ;TO -11 ADDRESS
164 000024 TO10DT= 24 ;TO -10 DATA WORD
165 000026 TO11DT= 26 ;TO -11 DATA WORD
166 ;
167 ; THE FOLLOWING 4 REGISTERS ARE IN FLIP-FLOPS AND MUST BE USED AS FOLLOWS:
168 ; READ (R) -- ANY BIT MAY BE READ AS DEFINED BELOW.
169 ; WRITE (W) -- WRITING A 0 HAS NO EFFECT,
170 ; WRITING A 1 HAS THE EFFECT DEFINED BELOW.
171 ; !!! EACH BIT HAS SEPERATE MEANINGS ON READ AND WRITE. !!!
172 ; !!! WRITING A 1 INTO UNDEFINED BITS WILL GIVE UNPREDICTABLE RESULTS. !!!
173 ; !!! THIS IMPLIES THAT "BIS", "BIC" AND ALL OTHER READ/MODIFY/WRITE !!!
174 ; !!! INSTRUCTIONS MUST NEVER BE USED TO REFERENCE THESE REGISTERS. !!!
175 ;
176 000030 DIAG1= 30 ;DIAGNOSTIC/CONTROL REGISTER 1
177 000032 DIAG2= 32 ;DIAGNOSTIC/CONTROL REGISTER 2:
178 000100 DRESET= BIT6 ; (W) DTE20 RESET
179 000034 CSTAT= 34 ;CONTROL/STATUS REGISTER:
180 100000 TO10DN= BIT15 ; (R) TO -10 TRANSFER DONE
181 040000 DON10C= BIT14 ; (W) CLEAR TO -10 DONE
182 020000 TO10ER= BIT13 ; (R) TO -10 TRANSFER ERROR
183 010000 ERR10C= BIT12 ; (W) CLEAR TO -10 TRANSFER ERROR
184 004000 TO11DB= BIT11 ; (R/W) TO -11 DOORBELL
185 002000 INT11C= BIT10 ; (W) CLEAR TO -11 DOORBELL
186 001000 MPE11= BIT9 ; (R/W) -11 MEMORY PARITY ERROR (W(1): CLEAR)
187 000400 TO10DB= BIT8 ; (R/W) TO -10 DOORBELL
188 000200 TO11DN= BIT7 ; (R) TO -11 TRANSFER DONE
189 000100 DON11C= BIT6 ; (W) CLEAR TO -11 DONE
190 000040 INTRON= BIT5 ; (W) ENABLE -11 INTERRUPTS
191 000020 BPARER= BIT4 ; (R/W) E-BUS PARITY ERROR (W(1): CLEAR)
192 000010 RM= BIT3 ; (R) RESTRICTED MODE
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 8-1
DTE20 REGISTER DEFINITIONS
193 000010 INTROF= BIT3 ; (W) DISABLE -11 INTERRUPTS
194 000004 DEXDON= BIT2 ; (R) EXAMINE/DEPOSIT DONE
195 000002 TO11ER= BIT1 ; (R) TO -11 TRANSFER ERROR
196 000001 INTSON= BIT0 ; (R) -11 INTERRUPTS ENABLED
197 000001 ERR11C= BIT0 ; (W) CLEAR TO -11 TRANSFER ERROR
198 000036 DIAG3= 36 ;DIAGNOSTIC/CONTROL REGISTER 3:
199 000001 TO10BM= BIT0 ; (W) TO -10 BYTE MODE
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 9
COMMUNICATIONS REGION DEFINITIONS
201 .SBTTL COMMUNICATIONS REGION DEFINITIONS
202 ;
203 ; COMMUNICATIONS REGION DEFINITIONS
204 ;
205 ; NOTE: THESE ARE -10 ADDRESS OFFSETS.
206 ;
207 000000 .ASECT
208 ;
209 ; HEADER WORD
210 ;
211 000000 .=0
212 000000 RELADR: .BLKB 3 ;RELATIVE ADDRESS OF THIS PROCESSORS GENERAL REGION
213 000003 PRCNUM: .BLKB 1 ;THIS PROCESSORS NUMBER
214 ;
215 ; GENERAL SECTION
216 ;
217 000000 .=0
218 000000 PIDENT= 0 ;PROCESSOR IDENTIFICATION WORD
219 000000 NAME: .BLKB 2 ;PROCESSOR SERIAL NUMBER
220 000002 NPRSIZ: .BLKB 1 ;(2-0) SIZE OF OWNERS REGION / 8
221 ;(7-3) NUMBER OF PROCESSORS (COMM + OWNING)
222 000003 PROVER: .BLKB 1 ;PROTOCOL VERSION NUMBER
223 000004 XVR: .BLKB 1 ;(2-0) COMM REGION VERSION
224 ;(3) 1: THIS IS A -10
225 000000 .=0
226 000001 CHNPNT= 1 ;POINTER WORD TO NEXT COMM REGION
227 000000 .=0
228 000005 KPALIV= 5 ;KEEP ALIVE COUNTER WORD
229 ;
230 ; "TO" SECTIONS
231 ;
232 000000 .=0
233 000000 FORPRO= 0 ;PROTOCOL IDENTIFICATION WORD
234 000000 TOPRCN: .BLKB 2 ;"TO" PROCESSOR NUMBER
235 000002 PTYPSZ: .BLKB 1 ;(2-0) SIZE OF THIS SECTION / 8
236 ;(7-3) PROTOCOL TYPE
237 000003 .BLKB 1 ;(UNUSED)
238 000004 XDTDTN: .BLKB 1 ;(1-0) DTE NUMBER
239 ;(2) 1: THIS IS A DTE LINK
240 ;(3) 1: THIS IS "TO" A -10
241 000000 .=0
242 000001 PROPNT= 1 ;POINTER WORD TO "TO" PROCESSOR'S GENERAL SECTION
243 000000 .=0
244 000002 STATUS= 2 ;PROTOCOL STATUS WORD
245 000000 QCOUNT: .BLKB 1 ;TO Q COUNT
246 000001 CPQCNT: .BLKB 1 ;OWNER'S COPY OF "TO" PROCESSOR'S TO-OWNER QCOUNT
247 000002 RCV: .BLKB 1 ;(0) 1: OWNER IS RECEIVING FROM "TO" PROCESSOR
248 000003 .BLKB 1 ;(UNUSED)
249 000004 LDINVX: .BLKB 1 ;(0) VALID EXAMINE-- 1: PROTOCOL IN OPERATION
250 ;(1) INIT-- 1: INITIALIZE SEQUENCE IN PROGRESS
251 ;(2) LOAD-- OWNER REQUESTING LOAD BY "TO" PROCESSOR
252 000000 .=0
253 000003 QSIZE= 3 ;Q SIZE WORD
254 000000 CSIZE: .BLKB 2 ;CURRENT TRANSFER SIZE
255 000002 PSIZE: .BLKB 2 ;TOTAL PACKET SIZE
256 000004 TMODE: .BLKB 1 ;(3-0) TRANSFER MODE
257 000000 .=0
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 9-1
COMMUNICATIONS REGION DEFINITIONS
258 000004 RELOAD= 4 ;OWNER'S COPY OF "TO" PROCESSOR'S RELOAD WORD
259 000000 .=0
260 000005 CPKPLV= 5 ;OWNER'S COPY OF "TO" PROCESSOR'S KPALIV
261 ;
262 000000 .PSECT
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 10
DTE20 LINE TABLE DEFINITIONS
264 .SBTTL DTE20 LINE TABLE DEFINITIONS
265 ;
266 ; DTE20 LINE TABLE DEFINITIONS
267 000000 DEVDF ;BH0002
268 000000 EVLDF$ ;BH0007
269 000000 DTEDF$ <:>,<=>,LST ;BH0006
;
; DTE LINE TABLE OFFSETS
;
000000 .ASECT
000000 .=0
000000 L.TIM:: .BLKB 1 ; COMM/EXEC TIMER
000001 L.UNT:: .BLKB 1 ; DTE20 NUMBER
.EVEN
; *** DO NOT CHANGE ORDER OF L.IVC THROUGH L.ICB ***
; (USED BY INTERRUPT SERVICE)
000002 L.IVC:: .INT $DTEIS ; INTERRUPT VECTOR CONTROL BLOCK
.EVEN
.IF DF M$$MGE
000002 .BLKW 7
.IFF
.BLKW 2
.ENDC
000020 L.ICB:: .BLKW 1 ; INTERRUPT CCB FOR DDM ==> DLC
000022 L.CST:: .BLKW 1 ; EXTERNAL PAGE ADDRESS OF CSTAT REGISTER
000024 L.STS:: .BLKW 1 ; LINE STATUS:
100000 LS.RUN==^O100000 ; RUNNING NORMAL PROTOCOL (MUST BE SIGN BIT)
040000 LS.INI==^O040000 ; LINE IS DOING AN INITIALIZE SEQUENCE
020000 LS.ICB==^O020000 ; LINE HAS AN INTERRUPT CCB
000026 L.SLN:: .BLKW 1 ; SYSTEM LINE NUMBER
000030 L.PSW:: .BLKW 1 ; PENDING STATUS WORD (FOR $ASCMP) OR ZERO
000032 L.LOG:: .BLKW 1 ; EVENT LOGGING DESTINATION
000034 L.PCQ:: .LSTHD ; PENDING CONTROL FUNCTION QUEUE
.EVEN
000034 .BLKW 2
000040 L.MPN:: .BLKB 1 ; MY PROTOCOL PROCESSOR #
000041 L.HPN:: .BLKB 1 ; HIS PROTOCOL PROCESSOR #
.EVEN
000042 L.EHG:: .BLKW 1 ; EXAMINE HIS GENERAL OFFSET
000044 L.EHM:: .BLKW 1 ; EXAMINE HIS TO-ME
000046 L.EMG:: .BLKW 1 ; EXAMINE MY GENERAL
; EXAMINE MY TO-HIM IS (L.EMG)+(L.DMH)
; DEPOSIT MY GENERAL IS ALWAYS 0
000050 L.DMH:: .BLKW 1 ; DEPOSIT MY TO-HIM
000052 L.HKA:: .BLKW 1 ; HIS KEEP-ALIVE
000054 L.MKA:: .BLKW 1 ; MY KEEP-ALIVE
; RECEIVE CONTROL BLOCK ** DO NOT CHANGE ORDER OF L.RST THRU L.RTM **
000056 L.RST:: .BLKW 3 ; TO-ME STATUS WORD
000064 L.RFQ:: .LSTHD ; FREE RECEIVE BUFFER QUEUE
.EVEN
000064 .BLKW 2
000070 L.RCB:: .BLKW 1 ; CCB ADDRESS OF CURRENT BUFFER
000072 L.RBA:: ; RECEIVE BUSS ADDRESS:
000072 .BLKW 1 ; BITS 17-16, STORED IN BITS 15-14
000074 L.RLA:: .BLKW 1 ; BITS 15-0
000076 L.RCT:: .BLKW 1 ; RECEIVE BYTE COUNT
000100 L.RBZ:: .BLKW 1 ; RECEIVE BUFFER SIZE
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 10-1
DTE20 LINE TABLE DEFINITIONS
000102 L.RQZ:: ; TO-ME QSIZE WORD:
000102 L.RCZ:: .BLKW 1 ; SIZE OF THIS TRANSFER
000104 L.RPZ:: .BLKW 1 ; SIZE OF THIS MESSAGE
000106 L.RTM:: .BLKW 1 ; TRANSFER MODE
; TRANSMIT CONTROL BLOCK ** DO NOT CHANGE THE ORDER OF L.XST THRU L.XTM **
000110 L.XST:: .BLKW 3 ; TO-HIM STATUS WORD
000116 L.XMQ:: .LSTHD ; TRANSMIT QUEUE
.EVEN
000116 .BLKW 2
000122 L.XCB:: .BLKW 1 ; CCB ADDRESS OF CURRENT TRANSMIT
000124 L.XBA:: ; TRANSMIT BUSS ADDRESS
000124 .BLKW 1 ; BITS 17-16, STORED IN BITS 15-14
000126 L.XLA:: .BLKW 1 ; BITS 15-0
000130 L.XQZ:: ; TO-HIM QSIZE WORD:
000130 L.XCT:: .BLKW 1 ; TRANSMIT BYTE COUNT
000132 L.XBZ:: .BLKW 1 ; TRANSMIT BUFFER SIZE
000134 L.XTM:: .BLKW 1 ; TRANSFER MODE
; LINE COUNTERS
000136 L.TLZ:: .BLKW 1 ; SECONDS SINCE LINE COUNTERS ZEROED
000140 L.RCV:: .BLKW 1 ; BLOCKS SUCCESSFULLY RECEIVED
000142 L.XMT:: .BLKW 1 ; " " TRANSMITTED
000144 L.TMO:: .BLKB 1 ; RECEIVE TIMEOUTS
000145 L.RES:: .BLKB 1 ; RESOURCE ALLOC ERRORS
000146 $DTELZ==. ; SIZE OF DTE20 LINE TABLE
000000 .PSECT
270 ;BH0004
271 ; THE EVENT-LOGGING MAP TO STANDARD LOGGING CODES ;BH0004
272 000000 177772 ERRTB: .WORD -ERRTBL ; ** THE TABLE LENGTH ;BH0005
273 000002 376 001 .BYTE CS.HLT,E$RUCL ; PROTOCOL HALTED ;BH0007
274 000004 374 015 .BYTE CS.SRO,E$RSRC ; START RECEIVED WHILE ONLINE ;BH0007
275 000006 373 020 .BYTE CS.TDN,E$RPET ; TEN HALTED ;BH0007
276 000010 372 026 .BYTE CS.TRE,E$RTRN ; DATA TRANSFER ERROR ;BH0007
277 000012 371 004 .BYTE CS.DCK,E$RSIN ; DTE CONSISTENCY CHECK ;BH0007
278 000014 370 025 .BYTE CS.PCK,E$RPRC ; PROTOCOL CONSISTENCY CHECK ;BH0007
279 000006 ERRTBL=<.-ERRTB-2>/2 ;BH0007
280 ; ;BH0004
281 ; DEFINE THE $CMLOG ARGUMENT BLOCK ;BH0004
282 ; ;BH0004
283 000042 LGDAT=34. ; HDR + 16.*REG = 17.WORDS = 34.BYTES ;BH0007
284 000016 CMLDF$ DTE,E$THDW,,DTE,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 000024 PDT2: .WORD DTE ; " " " #2
000026 000042 PLNG: .WORD LGDAT ; BYTES OF COROUTINE-ADDED INFO
000030 016045 PNAM: .RAD50 /DTE/ ; 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
285 000022' PLIN=PDT1 ; SYS LINE # ;BH0004
286 000024' PDID=PDT2 ; DEVICE ID ;BH0004
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 11
PURE DATA
288 .SBTTL PURE DATA
289 ;
290 ; DTE20 PROCESS DISPATCH TABLE
291 ;
292 000040 $DTETB::
293 000040 000150' .WORD XMENA ;TRANSMIT REQUEST
294 000042 000172' .WORD RCENA ;RECEIVE ENABLE
295 000044 000206' .WORD KILL ;KILL
296 000046 000222' .WORD CNTRL ;CONTROL SUBFUNCTION (SEE CTL, CTLDSP)
297 000050 001376' .WORD TMOUT ;TIMER EXPIRED
298 000052 001500' .WORD XMCMP ;TRANSMIT COMPLETE (INTERRUPT SERVICE REQUEST)
299 000054 000055' .WORD .+1 ;RECEIVE COMPLETE
300 000056 000057' .WORD .+1 ;CONTROL COMPLETE
301 000060 000061' .WORD .+1 ;KILL COMPLETE
302 ;
303 ;
304 ; KILL SUB-FUNCTION DISPATCH TABLE
305 ;
306 000062 KILDSP:
307 000062 003122' .WORD XMRCKL ;KILL RECEIVE AND TRANSMIT
308 000064 003126' .WORD RCVKIL ;KILL RECEIVE
309 000066 003254' .WORD XMTKIL ;KILL TRANSMIT
310 ;
311 ;
312 ; CONTROL SUB-FUNCTION DISPATCH TABLE
313 ;
314 000070 CTLDSP:
315 000070 000071' .WORD .+1 ;INITIALIZE
316 000072 000334' .WORD START ;START NORMAL PROTOCOL
317 000074 001152' .WORD STOP ;STOP ALL PROTOCOLS
318 000076 000077' .WORD .+1 ;TERMINATE
319 000100 000101' .WORD .+1 ;START MAINTENANCE PROTOCOL
320 000102 000103' .WORD .+1 ;SET CHARACTERISTICS
321 000104 000105' .WORD .+1 ;GET CHARACTERISTICS
322 000106 000107' .WORD .+1 ;XON
323 000110 000111' .WORD .+1 ;XOFF
324 000112 000113' .WORD .+1 ;RING ENABLE
325 000114 001370' .WORD ENABLE ;ENABLE LINE
326 000116 001370' .WORD DISABL ;DISABLE LINE
327 000120 000121' .WORD .+1 ;SENSE MODEM STATUS
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 12
$DTEIS -- DTE20 INTERRUPT SERVICE
329 .SBTTL $DTEIS -- DTE20 INTERRUPT SERVICE
330 ;
331 ; $DTEIS -- DTE20 INTERRUPT SERVICE
332 ;
333 ; CALLED FROM ".INT" IN DTE20 LINE TABLE FOR THIS DTE20.
334 ; ENTERED AT PRIORITY 7, WITH ONLY R5 SAVED.
335 ;
336 ; INPUTS:
337 ; R5 -- ADDRESS OF "L.ICB" WORD IN LINE TABLE FOR THIS DTE20
338 ;
339 ; REQUESTS DTE20 DLC PROCESS USING $DDXMP (TRANSMIT COMPLETE)
340 ;
341 ; OUTPUTS:
342 ; NONE
343 ;
344 000122 $DTEIS::
345 000122 010446 MOV R4,-(SP) ;;;SAVE R4
346 000124 011504 MOV (R5),R4 ;;;GET INTERRUPT CCB ADDRESS
347 000126 001405 BEQ 90$ ;;;ALREADY TAKEN-- WILL PROCESS WHEN DLC RUNS
348 000130 005015 CLR (R5) ;;;SAY WE'VE SENT CCB TO DLC
349 000132 010346 MOV R3,-(SP) ;;;SAVE R3 FROM $DDXMP
350 000134 CALL $DDXMP ;;;TELL DLC WE HAVE AN INTERRUPT
351 000140 012603 MOV (SP)+,R3 ;;;RESTORE R3
352 000142 90$:
353 000142 012604 MOV (SP)+,R4 ;;;RESTORE R4
354 000144 $INTXT ;;;RETURN TO INTERRUPTED PROGRAM FROM PR 7
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 13
XMENA -- TRANSMIT REQUEST
356 .SBTTL XMENA -- TRANSMIT REQUEST
357 ;
358 ; XMENA -- TRANSMIT REQUEST
359 ;
360 ; THIS ROUTINE IS CALLED BY A HIGHER LEVEL PROCESS TO TRANSMIT A
361 ; MESSAGE ACROSS THE DTE20.
362 ;
363 ; INPUTS:
364 ; R4 -- TRANSMIT BUFFER CCB ADDRESS
365 ; R5 -- DTE20 LINE TABLE ADDRESS
366 ;
367 ; OUTPUTS:
368 ; R0,R1,R2,R3,R4 DESTROYED
369 ;
370 000150 XMENA:
371 000150 012703 000116 MOV #L.XMQ,R3 ;POINT TO TRANSMIT QUEUE
372 000154 060503 ADD R5,R3 ; IN LINE TABLE
373 000156 CALL $CMQIN ;ADD THE TRANSMIT REQUEST TO THE QUEUE
374 000162 016501 000022 MOV L.CST(R5),R1 ;GET DTE20 CSTAT ADDRESS
375 000166 CALLR STRTXQ ;ATTEMPT TO START THE TRANSMIT QUEUE AND RETURN FROM XME
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 14
RCENA -- RECEIVE ENABLE
377 .SBTTL RCENA -- RECEIVE ENABLE
378 ;
379 ; RCENA -- RECEIVE ENABLE
380 ;
381 ; THIS ROUTINE IS CALLED WHEN A RECEIVE BUFFER BECOMES AVAILABLE
382 ; AFTER A PREVIOUS BUFFER REQUEST CALL TO $RDBWT. SEE GET1BF/QUERBF.
383 ;
384 ; INPUTS:
385 ; R4 -- RECEIVE BUFFER CCB ADDRESS
386 ; R5 -- LINE TABLE ADDRESS
387 ;
388 ; OUTPUTS:
389 ; R0,R1,R2,R3,R4 DESTROYED
390 ;
391 000172 RCENA:
392 000172 CALL QUERBF ;QUEUE THE RECEIVE BUFFER TO THE FREE LIST
393 000176 016501 000022 MOV L.CST(R5),R1 ;GET DTE20 CSTAT ADDRESS
394 000202 CALLR STRTRQ ;START RECEIVE, IF POSSIBLE AND RETURN FROM RCENA
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 15
KILL -- ABORT
396 .SBTTL KILL -- ABORT
397 ;
398 ; KILL -- ABORT
399 ;
400 ; INPUTS:
401 ; R3 -- KILL SUB-FUNCTION CODE
402 ; R4 -- REQUEST CCB ADDRESS
403 ; R5 -- LINE TABLE ADDRESS
404 ;
405 ; OUTPUTS:
406 ; R0,R1,R2,R3,R4 DESTROYED
407 ;
408 000206 KILL:
409 000206 CALL @KILDSP(R3) ;CALL PROPER KILL ROUTINE ACCORDING TO SUBFUNCTION CODE
410 000212 012703 000001 MOV #CS.SUC,R3 ;INDICATE SUCCESS TO HLP,
411 000216 CALLR $KLCMP ; AND RETURN FROM KILL
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 16
CNTRL/CTLCMP -- CONTROL SUBFUNCTION
413 .SBTTL CNTRL/CTLCMP -- CONTROL SUBFUNCTION
414 ;
415 ; CNTRL -- CONTROL SUBFUNTION
416 ;
417 ; THIS ROUTINE QUEUES THE CONTROL CCB TO THE PENDING QUEUE
418 ; AND ATTEMPTS TO PROCESS THE QUEUE.
419 ;
420 ; INPUTS:
421 ; R4 -- REQUEST CCB ADDRESS
422 ; R5 -- LINE TABLE ADDRESS
423 ;
424 ; OUTPUTS:
425 ; R0,R1,R2,R3,R4 DESTROYED
426 ;
427 000222 CNTRL:
428 000222 012703 000034 MOV #L.PCQ,R3 ;POINT TO PENDING CONTROL FUNCTION QUEUE
429 000226 060503 ADD R5,R3 ; IN LINE TABLE
430 000230 CALL $CMQIN ;INSERT THIS CONTROL CCB IN QUEUE
431 000234 CALLRX CTLCMP ;ATTEMPT TO PERFORM FUNCTION, AND RETURN FROM CNTRL
432 ;
433 ; CTLCMP -- COMPLETE PENDING CONTROL FUNCTION
434 ;
435 ; INPUTS:
436 ; R1 -- EXTERNAL PAGE ADDRESS OF CSTAT FOR THIS DTE20
437 ; R5 -- LINE TABLE ADDRESS FOR THIS DTE20
438 ;
439 ; DISPATCHES TO SUBFUNCTION ROUTINES AS PER "CTLDSP" TABLE.
440 ;
441 ; INPUTS TO CONTROL SUBROUTINES:
442 ; CC-C CLEAR
443 ; R1 -- EXTERNAL PAGE ADDRESS OF CSTAT FOR THIS DTE20
444 ; R3 -- SUBFUNCTION CODE (WORD INDEX)
445 ; R4 -- REQUEST CCB ADDRESS
446 ; R5 -- LINE TABLE ADDRESS
447 ;
448 ; OUTPUTS FROM CONTROL SUBROUTINES:
449 ; CC-C SET -- WILL COMPLETE LATER ASYNCHRONOUSLY
450 ; CC-C CLEAR -- FUNCTION COMPLETE, R3 = STATUS
451 ; R3 -- STATUS CODE FOR OPERATION (FOR C.STS)
452 ;
453 ; OUTPUTS:
454 ; R0,R1,R2,R3,R4 DESTROYED
455 ;
456 000234 CTLCMP:
457 000234 016503 000030 MOV L.PSW(R5),R3 ;GET PENDING ERROR STATUS WORD
458 000240 001407 BEQ 10$ ;NONE-- GO ON TO CONTROL FUNCTION
459 000242 016502 000026 MOV L.SLN(R5),R2 ;GET SYSTEM LINE NUMBER FOR $ASCMP
460 000246 CALL $ASCMP ;ATTEMPT TO TELL HLP OF STATUS
461 000252 103427 BCS 90$ ;DON'T ATTEMPT CONTROL FUNCTION UNTIL STATUS COMPLETES
462 000254 005065 000030 CLR L.PSW(R5) ;OK-- INDICATE NO PENDING STATUS
463 000260 10$:
464 000260 016504 000034 MOV L.PCQ(R5),R4 ;GET HEAD OF CONTROL FUNCTION QUEUE
465 000264 001422 BEQ 90$ ;NO CONTROL FUNCTIONS PENDING-- GO AWAY
466 000266 116403 000011 MOVB C.MOD(R4),R3 ;GET CONTROL SUB-FUNCTION CODE
467 000272 016501 000022 MOV L.CST(R5),R1 ;GET CSTAT ADDRESS OF THIS DTE20
468 000276 000241 CLC ;INSURE CC-C CLEAR
469 000300 CALL @CTLDSP(R3) ;CALL CONTROL SUB-FUNCTION ROUTINE
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 16-1
CNTRL/CTLCMP -- CONTROL SUBFUNCTION
470 000304 103412 BCS 90$ ;CANNOT COMPLETE-- TRY AGAIN LATER
471 000306 010346 MOV R3,-(SP) ;SAVE COMPLETION CODE
472 000310 012703 000034 MOV #L.PCQ,R3 ;POINT TO PENDING CONTROL QUEUE
473 000314 060503 ADD R5,R3 ; IN LINE TABLE
474 000316 CALL $CMQRM ;REMOVE THE CONTROL CCB JUST PROCESSED
475 000322 012603 MOV (SP)+,R3 ;RESTORE COMPLETION CODE
476 000324 103402 BCS 90$ ;QUEUE IS EMPTY ...?
477 000326 CALL $CTCMP ;INDICATE COMPLETION TO HLP
478 000332 90$:
479 000332 RETURN ;RETURN FROM CTLCMP
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 17
START -- START QUEUED PROTOCOL
481 .SBTTL START -- START QUEUED PROTOCOL
482 ;
483 ; START -- START QUEUED PROTOCOL
484 ;
485 ; ENABLES THE SELECTED DTE20 TO COMMUNICATE WITH TOPS-10/20
486 ; USING THE DTE20 QUEUED PROTOCOL.
487 ;
488 ; INPUTS:
489 ; R1 -- DTE20 CSTAT ADDRESS
490 ; R4 -- REQUEST CCB ADDRESS
491 ; R5 -- LINE TABLE ADDRESS
492 ;
493 ; OUTPUTS:
494 ; CC-C SET -- FUNCTION WILL COMPLETE LATER ASYNCHRONOUSLY
495 ; CC-C CLEAR -- FUNCTION COMPLETE, R3 = STATUS
496 ; R3 -- CS.SUC -- PROTOCOL STARTED
497 ;
498 000334 START:
499 000334 012703 000001 MOV #CS.SUC,R3 ;ASSUME RUNNING ALREADY
500 000340 005765 000024 TST L.STS(R5) ;NORMAL PROTOCOL RUNNING?
501 000344 100455 BMI 91$ ;YES-- TELL HIM
502 000346 032765 040000 000024 BIT #LS.INI,L.STS(R5) ;WE STARTED INIT?
503 000354 001402 BEQ 2$ ;NO-- LOOK FOR COMM REGION
504 000356 000167 000446 JMP 70$ ;YES-- CONTINUE IT
505 ;
506 ; SET UP INTERRUPT CCB AND ENABLE INTERRUPTS
507 ;
508 000362 2$:
509 000362 032765 020000 000024 BIT #LS.ICB,L.STS(R5) ;DO WE HAVE AN INTERRUPT CCB?
510 000370 001013 BNE 3$ ;YES-- GO ON
511 000372 CALL $CCBGT ;NO-- GET ONE
512 000376 103440 BCS 91$ ;CAN'T START WITHOUT ONE!
513 000400 016564 000026 000006 MOV L.SLN(R5),C.LIN(R4) ;SET OUR SLN INTO CCB
514 000406 010465 000020 MOV R4,L.ICB(R5) ;STORE ADDRESS OF CCB
515 000412 052765 020000 000024 BIS #LS.ICB,L.STS(R5) ;INDICATE CCB NOW EXISTS
516 000420 3$:
517 000420 012711 000040 MOV #INTRON,(R1) ;ENABLE DTE20 INTERRUPTS
518 ;
519 ; READ OUR PROCESSOR NUMBER AND REGION OFFSET
520 ;
521 000424 012703 000056 MOV #L.RST,R3 ;GET OUR SCRATCH EXAMINE WORD
522 000430 060503 ADD R5,R3 ; MAKE IT IN LINE TABLE
523 000432 005002 CLR R2 ;SET TO EXAMINE PROTECTED WORD 0
524 000434 CALL PRTEXM ; WHICH IS COMM HEADER WORD
525 000440 103417 BCS 91$ ;OOPS-- -10 PUNTED ON US!
526 ;
527 000442 116304 000003 MOVB PRCNUM(R3),R4 ;GET OUR PROCESSOR NUMBER
528 000446 042704 177760 BIC #^C<17>,R4 ;TRIM TO 0.-15.
529 000452 110465 000040 MOVB R4,L.MPN(R5) ;SAVE MY PROCESSOR #
530 ;
531 000456 005204 INC R4 ;COMPUTE OFFSET TO COMM REGION 0 (1 WORD FOR
532 ; EACH PROCESSOR HEADER WORD)
533 000460 011302 MOV (R3),R2 ;GET RELATIVE ADDRESS OF MY GENERAL REGION
534 000462 060402 ADD R4,R2 ;OFFSET BY COMM 0
535 000464 010265 000046 MOV R2,L.EMG(R5) ;THAT'S OUR GENERAL REGION OFFSET
536 ;
537 000470 005002 CLR R2 ;EXAMINE OUR PIDENT WORD
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 17-1
START -- START QUEUED PROTOCOL
538 000472 CALL EXMMYG ; IN OUR GENERAL REGION
539 000476 103002 BCC 5$ ;OK-- GO ON
540 000500 91$:
541 000500 000167 000410 JMP 90$ ;FAILED-- ABORT, -10 PROBABLY DOWN
542 ;
543 000504 5$:
544 000504 CALL 200$ ;COMPUTE 8-WORD BLOCK COUNT IN R2, PROC CNT IN R0
545 000510 010265 000050 MOV R2,L.DMH(R5) ;SET AS MY TO-HIM OFFSET
546 000514 010046 MOV R0,-(SP) ;SAVE CURRENT PROCESSOR COUNT
547 ;
548 ; LOOP THROUGH MY GENERAL REGION TO FIND THE TO-HIM REGION
549 ;
550 000516 10$:
551 000516 005002 CLR R2 ;LOOK AT FORPRO
552 000520 CALL EXMMYH ;LOOK AT A TO-HIM REGION FORPRO WORD
553 000524 103430 BCS 30$ ;FAILED-- GIVE UP
554 000526 016300 000002 MOV PTYPSZ(R3),R0 ;GET PROTOCOL TYPE, SIZE
555 000532 010002 MOV R0,R2 ;COPY THAT
556 000534 042700 177407 BIC #^C<37*BIT3>,R0 ;GET PROTOCOL TYPE *BIT3
557 000540 020027 000010 CMP R0,#1*BIT3 ;"NSP"?
558 000544 001012 BNE 20$ ;NO-- HE'S NOT OUR TYPE
559 000546 116300 000004 MOVB XDTDTN(R3),R0 ;GET "-10" BIT, "DTE" BIT, AND DTE #
560 000552 032700 000004 BIT #BIT2,R0 ;THIS A DTE LINK?
561 000556 001405 BEQ 20$ ;NO-- NOT TO US THEN
562 000560 042700 177774 BIC #^C<BIT1!BIT0>,R0 ;YES-- TRIM DTE # TO LOW TWO BITS
563 000564 120065 000001 CMPB R0,L.UNT(R5) ;THIS OUR DTE #?
564 000570 001410 BEQ 40$ ;YES-- PROCESS IT
565 ;
566 ; THIS TO-HIM BLOCK IS NOT FOR US-- MOVE TO NEXT ONE
567 ; R2 -- PTYPSZ BYTE OF FORPRO WORD
568 ;
569 000572 20$:
570 000572 CALL 210$ ;COMPUTE OFFSET IN R2
571 000576 060265 000050 ADD R2,L.DMH(R5) ;BUMP THE TO-HIM OFFSET
572 000602 005316 DEC (SP) ;IS THIS LAST ONE?
573 000604 003344 BGT 10$ ;NO-- BACK FOR ANOTHER
574 000606 30$:
575 000606 005726 TST (SP)+ ;YES-- REMOVE COUNT FROM STACK
576 000610 000540 BR 80$ ; AND RETURN
577 ;
578 ; WE HAVE FOUND MY TO-HIM BLOCK FOR THE PROCESSOR WITH WHICH WE WILL COMMUNICATE
579 ;
580 000612 40$:
581 000612 005726 TST (SP)+ ;REMOVE COUNT FROM STACK
582 000614 111365 000041 MOVB (R3),L.HPN(R5) ;REMEMBER HIS PROCESSOR NUMBER
583 ;
584 000620 012702 000001 MOV #PROPNT,R2 ;GET ADDRESS OF POINTER TO HIS GENERAL REGION
585 000624 CALL EXMMYH ; . .
586 000630 103531 BCS 90$ ;FAILED-- ABORT
587 000632 061304 ADD (R3),R4 ;COMPUTE HIS GENERAL REGION ADDRESS
588 000634 010465 000042 MOV R4,L.EHG(R5) ;STORE HIS GENERAL FOR LATER
589 000640 005002 CLR R2 ;GET HIS PIDENT WORD
590 000642 CALL EXMHSG ;FROM -10, PIDENT
591 000646 103522 BCS 90$ ;FAILED-- ABORT
592 000650 CALL 210$ ;GET # PROC IN R0, REGION SIZE IN R2
593 000654 060402 ADD R4,R2 ;OFFSET BY HIS GENERAL OFFSET
594 000656 010265 000044 MOV R2,L.EHM(R5) ;USE THAT AS HIS TO-ME ADDRESS
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 17-2
START -- START QUEUED PROTOCOL
595 000662 010004 MOV R0,R4 ;COPY # PROCESSORS
596 ;
597 ; FIND HIS TO-ME BLOCK
598 ;
599 000664 50$:
600 000664 005002 CLR R2 ;READ THE
601 000666 CALL EXMHSM ; FORPRO WORD FROM HIS TO-SOMEBODY REGION
602 000672 103510 BCS 90$ ;FAILED-- ABORT
603 000674 121365 000040 CMPB (R3),L.MPN(R5) ;THIS HIS TO-ME (WITH MY PROC #)?
604 000700 001405 BEQ 60$ ;YES-- PROCESS IT
605 ;
606 ; THIS IS A TO-SOMEBODY-ELSE REGION
607 ;
608 000702 060265 000044 ADD R2,L.EHM(R5) ;SKIP TO NEXT TO-SOMEBODY REGION
609 000706 005304 DEC R4 ;COUNT DOWN THIS REGION
610 000710 003365 BGT 50$ ;MORE STILL-- KEEP ON LOOKING
611 000712 000477 BR 80$ ; . .
612 ;
613 ; FOUND HIS TO-ME REGION
614 ;
615 000714 60$:
616 000714 012702 000002 MOV #STATUS,R2 ;POINT TO STATUS WORD NOW
617 000720 CALL EXMHSM ;READ HIS TO-ME STATUS
618 000724 103473 BCS 90$ ;OOPS
619 000726 032763 000001 000004 BIT #BIT0,LDINVX(R3) ;IS VALID EXAMINE SET?
620 000734 001466 BEQ 80$ ;NO-- TRY AGAIN LATER
621 ;
622 ; INITIALIZE PROTOCOL ON THIS LINK
623 ;
624 000736 052765 040000 000024 BIS #LS.INI,L.STS(R5) ;INDICATE PROTOCOL INIT STARTED
625 000744 052765 000001 000114 BIS #BIT0,LDINVX+L.XST(R5) ;SET VALID EXAMINE
626 000752 032765 000002 000062 BIT #BIT1,LDINVX+L.RST(R5) ;HE WANT US TO INIT?
627 000760 001004 BNE 65$ ;YES-- COMPLETE INIT SEQUENCE
628 000762 032765 000002 000114 BIT #BIT1,LDINVX+L.XST(R5) ;ARE WE INIT STATE?
629 000770 001417 BEQ 70$ ;NO-- JUST RESUME PROTOCOL
630 000772 65$:
631 000772 012761 000100 177776 MOV #DRESET,DIAG2-CSTAT(R1) ;RESET DTE-20 TRANSFERS NOW IN PROGRESS
632 001000 012711 000040 MOV #INTRON,(R1) ;RE-ENABLE INTERRUPTS
633 001004 052765 000002 000114 BIS #BIT1,LDINVX+L.XST(R5) ;SET TO-HIM INIT NOW
634 001012 005065 000110 CLR QCOUNT+L.XST(R5) ;CLEAR QCOUNT AND CPQCNT
635 001016 005065 000112 CLR RCV+L.XST(R5) ;CLEAR "RCV" AND FLAGS
636 001022 CALL DEPSTS ;DEPOSIT MY TO-HIM STATUS WORD
637 001026 103432 BCS 90$ ;OOPS-- TRY AGAIN LATER
638 ;
639 ; PROTOCOL INIT STARTED -- SEE IF COMPLETED YET
640 ;
641 001030 70$:
642 001030 032711 000400 BIT #TO10DB,(R1) ;IS DOORBELL STILL RINGING?
643 001034 001026 BNE 80$ ;YES-- DON'T DO ANYTHING YET
644 001036 042765 000002 000114 BIC #BIT1,LDINVX+L.XST(R5) ;CLEAR TO-HIM INIT
645 001044 CALL DEPSTS ;TELL HIM
646 001050 103421 BCS 90$ ;OOPS-- TRY ALL OVER AGAIN
647 001052 032765 000002 000062 BIT #BIT1,LDINVX+L.RST(R5) ;HE STILL INIT-ING?
648 001060 001014 BNE 80$ ;YES-- WE'RE NOT DONE YET
649 001062 042765 040000 000024 BIC #LS.INI,L.STS(R5) ;NO-- INIT COMPLETE -- INDICATE STATUS
650 001070 052765 100000 000024 BIS #LS.RUN,L.STS(R5) ;NOW RUNNING
651 .IF DF M$$MGE
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 17-3
START -- START QUEUED PROTOCOL
652 .IFF
653 CLR DLYCNT-CSTAT(R1) ;RESET DELAY COUNT AND BUSS ADDRESS BITS 17,16
654 .ENDC
655 001076 CALL GETRBF ;GET OUR ALLOCATION OF RECEIVE BUFFERS
656 001102 012703 000001 MOV #CS.SUC,R3 ;SAY START COMPLETE SUCCESSFULL
657 001106 000241 CLC ; AND ITS COMPLETE NOW
658 001110 000401 BR 90$ ; . .
659 ;
660 001112 80$:
661 001112 000261 SEC ;INDICATE COMPLETION LATER
662 001114 90$:
663 001114 RETURN ;RETURN FROM START
664 ;
665 ; 200$ -- COMPUTE 8-WORD BLOCK SIZE AND # PROCESSORS
666 ; (R3) -- PIDENT WORD
667 ; RETURN:
668 ; R0 -- # PROCESSORS
669 ; R2 -- # WORDS IN THIS REGION
670 ;
671 001116 200$:
672 001116 116300 000002 MOVB NPRSIZ(R3),R0 ;GET # PROCESSORS, SIZE OF GENERAL REGION
673 001122 010002 MOV R0,R2 ;COPY IT . . .
674 001124 006200 ASR R0 ;COMPUTE
675 001126 006200 ASR R0 ; # PROCESSORS
676 001130 006200 ASR R0 ; IN MY REGION
677 001132 042700 177740 BIC #^C<37>,R0 ;MAKE THAT 2.-16.
678 001136 CALLRX 210$ ;FINISH WORDS AND RETURN
679 ;
680 ; 210$ -- COMPUTE 8-WORD BLOCK SIZE
681 ; R2(2-0) -- # 8 WORD BLOCKS
682 ; RETURN:
683 ; R2 -- # WORDS
684 ;
685 001136 210$:
686 001136 042702 177770 BIC #^C<BIT2!BIT1!BIT0>,R2 ;TRIM TO # 8 WORD BLOCKS
687 001142 006302 ASL R2 ;COMPUTE ADDRESS OF NEXT REGION
688 001144 006302 ASL R2 ; . .
689 001146 006302 ASL R2 ; . .
690 001150 RETURN ;RETURN FROM 200$
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 18
STOP -- STOP PROTOCOL
692 .SBTTL STOP -- STOP PROTOCOL
693 ;
694 ; STOP -- STOP PROTOCOL
695 ;
696 ; STOPS PROTOCOL OPERATION ON A LINK
697 ;
698 ; INPUTS:
699 ; R1 -- DTE20 CSTAT ADDRESS
700 ; R4 -- REQUEST CCB ADDRESS
701 ; R5 -- LINE TABLE ADDRESS
702 ;
703 ; OUTPUTS:
704 ; CC-C SET -- FUNCTION WILL COMPLETE LATER ASYNCHRONOUSLY
705 ; CC-C CLEAR -- FUNCTION COMPLETE, R3 = STATUS
706 ; R3 -- CS.SUC -- STOP COMPLETE
707 ; R2,R0,R4 DESTROYED
708 ;
709 001152 STOP:
710 001152 CALL XMTKIL ;ABORT ALL UNSTARTED XMIT REQUESTS
711 001156 CALL RETRBF ;RETURN ALL RECEIVE BUFFERS
712 ;
713 001162 005765 000024 TST L.STS(R5) ;RUNNING NORMAL PROTOCOL?
714 001166 100436 BMI 40$ ;YES-- EXIT GRACEFULLY
715 ;
716 ; PROTOCOL HAS BEEN ABORTED-- CLEAN UP GOOD
717 ;
718 001170 012761 000100 177776 MOV #DRESET,DIAG2-CSTAT(R1) ;STOP ANY DTE20 TRANSFERS NOW INPROGRESS
719 ;
720 001176 012703 000070 MOV #L.RCB,R3 ;POINT TO RECEIVE CONTROL BLOCK, CCB ADDRESS
721 001202 060503 ADD R5,R3 ; IN LINE TABLE
722 001204 012304 MOV (R3)+,R4 ;(L.RCB) GET RECIEVE CCB ADDRESS
723 001206 022323 CMP (R3)+,(R3)+ ;(L.RBA) SKIP BUFFER ADDRESS
724 001210 005023 CLR (R3)+ ;(L.RCT) CLEAR RECIEVER ACTIVE
725 001212 005713 TST (R3) ;(L.RBZ) ACTIVE BUFFER?
726 001214 001402 BEQ 32$ ;NO-- GO ON
727 001216 CALL $RDBRT ;YES-- RETURN THE PARTIAL BUFFER
728 001222 32$:
729 001222 005023 CLR (R3)+ ;(L.RBZ) CLEAR BUFFER COUNT
730 001224 005013 CLR (R3) ;(L.RCZ) CLEAR QSIZE
731 001226 062703 000012 ADD #LDINVX+L.XST-L.RCZ,R3 ;POINT TO TRANSMIT TO-HIM STATUS
732 001232 012723 000002 MOV #BIT1,(R3)+ ;(LDINVX+L.XST) SET INIT BIT
733 001236 022323 CMP (R3)+,(R3)+ ;(L.XMQ) SKIP QUEUE HEAD
734 001240 012304 MOV (R3)+,R4 ;(L.XCB) GET ACTIVE TRANSMIT CCB ADDRESS
735 001242 022323 CMP (R3)+,(R3)+ ;(L.XBA) SKIP BUFFER ADDRESS
736 001244 005023 CLR (R3)+ ;(L.XCT) RESET BUFFER ACTIVE
737 001246 005713 TST (R3) ;(L.XBZ) BUFFER ACTIVE?
738 001250 001405 BEQ 40$ ;NO-- GO ON
739 001252 005013 CLR (R3) ;(L.XBZ) RESET BUFFER SIZE
740 001254 012703 000100 MOV #CS.ABO,R3 ;YES-- SAY ABORTED
741 001260 CALL $XMCMP ; TO HLP
742 001264 40$:
743 001264 005765 000100 TST L.RBZ(R5) ;RECEIVE LEFT TO DO?
744 001270 001035 BNE 80$ ;YES-- CAN'T STOP NOW
745 001272 005765 000132 TST L.XBZ(R5) ;XMIT TO DO?
746 001276 001032 BNE 80$ ;YES-- CAN'T STOP NO
747 ;
748 001300 042765 000001 000114 BIC #BIT0,LDINVX+L.XST(R5) ;CLEAR VALID EXAMINE
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 18-1
STOP -- STOP PROTOCOL
749 001306 CALL DEPSTS ; IN STATUS WORD
750 ;
751 001312 012711 000010 MOV #INTROF,(R1) ;DISABLE DTE20 INTERRUPTS
752 001316 042765 140000 000024 BIC #LS.RUN!LS.INI,L.STS(R5) ;NO LONGER RUNNING ANYTHING
753 ;
754 001324 032765 020000 000024 BIT #LS.ICB,L.STS(R5) ;INTERRUPT CCB STILL AROUND?
755 001332 001410 BEQ 70$ ;NO-- ALL CLEANED UP
756 001334 016504 000020 MOV L.ICB(R5),R4 ;YES-- GET IT
757 001340 001411 BEQ 80$ ;STILL IN PROCESS-- COME BACK LATER
758 001342 CALL $CCBRT ;RETURN INTERRUPT CCB TO POOL
759 001346 042765 020000 000024 BIC #LS.ICB,L.STS(R5) ;NOTE NO CCB NOW
760 001354 70$:
761 001354 012703 000001 MOV #CS.SUC,R3 ;INDICATE SUCCESSFUL COMPLETION
762 001360 000241 CLC ; . .
763 001362 000401 BR 90$ ;AND RETURN
764 ;
765 001364 80$:
766 001364 000261 SEC ;WILL COMPLETE LATER
767 001366 90$:
768 001366 RETURN ;RETURN FROM STOP
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 19
ENABLE/DISABL -- ENABLE/DISABLE LINE
770 .SBTTL ENABLE/DISABL -- ENABLE/DISABLE LINE
771 ;
772 ; ENABLE/DISABL -- ENABLE/DISABLE LINE
773 ;
774 ; THESE FUNCTIONS ARE NO-OPS
775 ;
776 001370 ENABLE:
777 001370 DISABL:
778 001370 012703 000001 MOV #CS.SUC,R3 ;SAY SUCCESS
779 001374 RETURN ;RETURN FROM ENABLE/DISABL
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 20
TMOUT -- TIMER EXPIRED
781 .SBTTL TMOUT -- TIMER EXPIRED
782 ;
783 ; TMOUT -- TIMER EXPIRED
784 ;
785 ; THIS ROUTINE IS CALLED BY THE COMM EXEC EVERY TIME THE LONG
786 ; TIMER EXPIRES. THIS TIMER IS THE FIRST BYTE OF THE LINE TABLE.
787 ; IT IS ALWAYS SET TO 1 SECOND.
788 ;
789 ; INPUTS:
790 ; R5 -- LINE TABLE ADDRESS
791 ;
792 001376 TMOUT:
793 001376 105215 INCB (R5) ;RESTART TIMER
794 ;
795 001400 016501 000022 MOV L.CST(R5),R1 ;GET DTE20 CSTAT ADDRESS
796 ;
797 ; MAKE SURE I/O IS IN PROGRESS IF POSSIBLE
798 ;
799 001404 016501 000022 MOV L.CST(R5),R1 ;IF THE DOORBELL ;LW0001
800 001410 032711 004000 BIT #TO11DB,(R1) ; HAS RUNG, ;LW0001
801 001414 001406 BEQ 10$ ; PROCESS THE ;LW0001
802 001416 CALL DORBEL ; MISSED INTERRUPT ;LW0001
803 001422 CALL STRTXQ ; START XMIT ;LW0001
804 001426 CALL STRTRQ ; AND RECEIVE ;LW0001
805 001432 10$: ;LW0001
806 ; ;**-3
807 ; UPDATE OUR KEEP-ALIVE COUNTER
808 ;
809 001432 032765 140000 000024 BIT #LS.RUN!LS.INI,L.STS(R5) ;RUNNING?
810 001440 001414 BEQ 20$ ;NO-- DON'T DO KEEP-ALIVE (NO COMM REGION!)
811 001442 032765 000001 000062 BIT #BIT0,LDINVX+L.RST(R5) ;IF VALID EXAMINE IF OFF, ;LW0001
812 001450 001412 BEQ 30$ ; DON'T DO KEEP-ALIVE EITHER ;LW0001
813 001452 012703 000054 MOV #L.MKA,R3 ;POINT TO OUR KEEP-ALIVE COUNT
814 001456 060503 ADD R5,R3 ; IN LINE TABLE
815 001460 005213 INC (R3) ;INCREMENT THE COUNT
816 001462 012702 000005 MOV #KPALIV,R2 ;SET ADDRESS OF KEEP-ALIVE IN GENERAL REGION
817 001466 CALL DEPMYG ;DEPOSIT NEW KEEP-ALIVE COUNT IN MY GENERAL REGION
818 001472 20$:
819 001472 CALLR CTLCMP ;ATTEMPT TO FINISH CONTROL FUNCTION AND RETURN FROM TMOU
820 001476 30$: RETURN ;LW0001
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 21
XMCMP -- TRANSMIT COMPLETE (INTERRUPT REQUEST)
822 .SBTTL XMCMP -- TRANSMIT COMPLETE (INTERRUPT REQUEST)
823 ;
824 ; XMCMP -- TRANSMIT COMPLETE (INTERRUPT REQUEST)
825 ;
826 ; THIS ROUTINE IS CALLED WHEN THE INTERRUPT SERVICE "$DTEIS"
827 ; DETECTS AN INTERRUPT AND REQUESTS THE DLC TO PROCESS IT.
828 ;
829 ; INPUTS:
830 ; R4 -- INTERRUPT CCB ADDRESS
831 ; R5 -- LINE TABLE ADDRESS FOR THIS DTE20
832 ;
833 ; DISPATCHES TO INTERRUPT CONDITION ROUTINES:
834 ; T10DON -- TO-10 DONE
835 ; T11DON -- TO-11 DONE
836 ; DORBEL -- TO-11 DOORBELL
837 ;
838 ; OUTPUTS:
839 ; NONE
840 ;
841 001500 XMCMP:
842 001500 010465 000020 MOV R4,L.ICB(R5) ;STORE INTERRUPT CCB ADDRESS BACK FOR INTERRUPT SERVICE
843 001504 016501 000022 MOV L.CST(R5),R1 ;GET DTE20 CSTAT ADDRESS
844 ;
845 ; CHECK FOR INTERRUPT CONDITIONS
846 ;
847 001510 032711 120000 BIT #TO10DN!TO10ER,(R1) ;TO-10 DONE OR ERROR?
848 001514 001402 BEQ 40$ ;NO
849 001516 CALL T10DON ;YES-- SERVICE IT
850 001522 40$:
851 001522 132711 000202 BITB #TO11DN!TO11ER,(R1) ;TO-11 DONE OR ERROR?
852 001526 001402 BEQ 50$ ;NO
853 001530 CALL T11DON ;YES-- SERVICE IT
854 001534 50$:
855 001534 032711 004000 BIT #TO11DB,(R1) ;TO-11 DOORBELL?
856 001540 001402 BEQ 60$ ;NO
857 001542 CALL DORBEL ;YES-- SERVICE IT
858 001546 60$:
859 001546 CALL STRTXQ ;START TRANSMISSION IF POSSIBLE
860 001552 CALL STRTRQ ; THEN RECEIVE
861 001556 CALLR CTLCMP ;CHECK FOR CONTROL FUNCTION COMPLETION
862 ; AND RETURN FROM XMCMP
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 22
T10DON -- TO -10 DONE SERVICE
864 .SBTTL T10DON -- TO -10 DONE SERVICE
865 ;
866 ; T10DON -- TO -10 DONE SERVICE
867 ;
868 ; INPUTS:
869 ; R1 -- ADDRESS OF CSTAT FOR THIS DTE20
870 ; R5 -- ADDRESS OF LINE TABLE FOR THIS DTE20
871 ; CC-N -- SET IF NORMAL TRANSFER TERMINATION
872 ; CLEAR IF ERROR TRANSFER TERMINATION
873 ;
874 ; OUTPUTS:
875 ; R0,R3,R2,R4 DESTROYED
876 ;
877 001562 T10DON:
878 001562 100404 BMI 20$ ;NO ERROR-- GO ON
879 001564 012703 177772 MOV #CS.TRE,R3 ;TRANSFER ERROR-- REPORT IT
880 001570 CALL ASYERR ; TO HLP AND STOP PROTOCOL
881 001574 20$:
882 .IF DF D$$CHK
883 001574 032761 007777 177760 BIT #TO10CM,TO10BC-CSTAT(R1) ;TO-10 COUNT RUN OUT?
884 001602 001013 BNE 28$ ;NO-- ERROR
885 .IFTF
886 001604 012711 050000 MOV #DON10C!ERR10C,(R1) ;CLEAR DONE AND ERROR FLAGS
887 001610 012703 000130 MOV #L.XCT,R3 ;POINT TO XMIT BLOCK
888 001614 060503 ADD R5,R3 ; IN LINE TABLE
889 001616 CALL UPDADR ;UPDATE BUS ADDRESS AND COUNT
890 .IFT
891 001622 026165 177764 000126 CMP TO10AD-CSTAT(R1),L.XLA(R5) ;FINAL ADDRESS MATCH?
892 001630 001405 BEQ 30$ ;YES-- GO ON
893 001632 28$:
894 001632 012703 177771 MOV #CS.DCK,R3 ;NO-- INDICATE FAILURE
895 001636 CALL ASYERR ; TO HLP
896 001642 000413 BR 90$ ;GO ON
897 ;
898 001644 30$:
899 001644 005713 TST (R3) ;THIS CCB BUFFER DONE?
900 .ENDC
901 001646 001011 BNE 90$ ;BUFFER NOT COMPLETE-- GO ON
902 001650 012703 000001 MOV #CS.SUC,R3 ;INDICATE SUCCESS
903 001654 CALL $XMCMP ; . .
904 001660 005265 000142 INC L.XMT(R5) ; COUNT THIS XMT SUCCESS ;BH0003
905 001664 001002 BNE 90$ ; ... ;BH0003
906 001666 005365 000142 DEC L.XMT(R5) ; DON'T ALLOW COUNTER WRAP ;BH0003
907 001672 90$:
908 001672 RETURN ;RETURN FROM T10DON
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 23
T11DON -- TO -11 DONE SERVICE
910 .SBTTL T11DON -- TO -11 DONE SERVICE
911 ;
912 ; T11DON -- TO -11 DONE SERVICE
913 ;
914 ; INPUTS:
915 ; R1 -- ADDRESS OF CSTAT FOR THIS DTE20
916 ; R5 -- ADDRESS OF LINE TABLE FOR THIS DTE20
917 ; CC-N -- SET IF NORMAL TRANSFER TERMINATION
918 ; CLEAR IF ERROR TRANSFER TERMINATION
919 ;
920 ; OUTPUTS:
921 ; R0,R3,R2,R4 DESTROYED
922 ;
923 001674 T11DON:
924 001674 100404 BMI 20$ ;NO ERRORS-- GO ON
925 001676 012703 177772 MOV #CS.TRE,R3 ;ERROR-- INDICATE THAT
926 001702 CALL ASYERR ; TO HLP AND STOP PROTOCOL
927 001706 20$:
928 .IF DF D$$CHK
929 001706 032761 007777 177762 BIT #TO11CM,TO11BC-CSTAT(R1) ;COUNT RUN OUT?
930 001714 001017 BNE 28$ ;NO-- ERROR
931 .IFTF
932 001716 012711 000101 MOV #DON11C!ERR11C,(R1) ;CLEAR DONE AND ERROR FLAGS
933 001722 012703 000076 MOV #L.RCT,R3 ;POINT TO RECEIVE BLOCK (COUNT WORD)
934 001726 060503 ADD R5,R3 ; IN LINE TABLE
935 001730 161365 000104 SUB (R3),L.RPZ(R5) ;COUNT DOWN MESSAGE SIZE
936 001734 161365 000102 SUB (R3),L.RCZ(R5) ; AND CURRENT TRANSFER SIZE
937 001740 CALL UPDADR ;UPDATE BUS ADDRESS AND BUFFER SIZE
938 .IFT
939 001744 026165 177766 000074 CMP TO11AD-CSTAT(R1),L.RLA(R5) ;ADDRESS MATCH EXPECTED VALUE?
940 001752 001405 BEQ 30$ ;YES-- GO ON
941 001754 28$:
942 001754 012703 177771 MOV #CS.DCK,R3 ;NO-- INDICATE ERROR
943 001760 CALL ASYERR ; TO HLP
944 001764 000413 BR 90$ ;GO ON
945 ;
946 001766 30$:
947 001766 005713 TST (R3) ;ANY MORE LEFT IN THIS CCB BUFFER?
948 .ENDC
949 001770 001011 BNE 90$ ;NOT DONE-- GO ON
950 001772 012703 000001 MOV #CS.SUC,R3 ;SAY SUCCESS
951 001776 CALL $RCCMP ; TO HLP
952 002002 005265 000140 INC L.RCV(R5) ; COUNT THIS RCV SUCCESS ;BH0003
953 002006 001002 BNE 90$ ; ... ;BH0003
954 002010 005365 000140 DEC L.RCV(R5) ; DON'T ALLOW COUNTER WRAP ;BH0003
955 002014 90$:
956 002014 RETURN ;RETURN FROM T11DON
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 24
DORBEL -- TO -11 DOORBELL SERVICE
958 .SBTTL DORBEL -- TO -11 DOORBELL SERVICE
959 ;
960 ; DORBEL -- TO -11 DOORBELL SERVICE
961 ;
962 ; INPUTS:
963 ; R1 -- ADDRESS OF CSTAT FOR THIS DTE20
964 ; R5 -- ADDRESS OF LINE TABLE FOR THIS DTE20
965 ;
966 ; OUTPUTS:
967 ; R0,R3,R2,R4 DESTROYED
968 ;
969 002016 DORBEL:
970 002016 012711 002000 MOV #INT11C,(R1) ;CLEAR RINGING DOORBELL
971 002022 032765 140000 000024 BIT #LS.RUN!LS.INI,L.STS(R5) ;RUNNING NORMAL PROTOCOL?
972 002030 001435 BEQ 90$ ;NO-- IGNORE THIS
973 002032 012702 000002 MOV #STATUS,R2 ;POINT TO STATUS WORD
974 002036 010503 MOV R5,R3 ;COPY LINE TABLE ADDRESS
975 002040 062703 000056 ADD #L.RST,R3 ;POINT TO RECEIVED STATUS WORD
976 002044 CALL EXMHSM ;READ HIS TO-ME STATUS
977 002050 103425 BCS 90$ ;GIVE UP IF WE CAN'T GET STATUS
978 ;
979 002052 012703 177776 MOV #CS.HLT,R3 ;ASSUME VALID EXAMINE HAS GONE AWAY
980 002056 032765 000001 000062 BIT #BIT0,LDINVX+L.RST(R5) ;VALID EXAMINE UP? ;LW0001
981 002064 001417 BEQ 90$ ;NOPE-- DON'T DO ANYTHING ;LW0001
982 002066 032765 040000 000024 BIT #LS.INI,L.STS(R5) ;WE DOING INIT ALREADY? ;**-2
983 002074 001013 BNE 90$ ;YES-- BITS ARE MANAGED BY "STT"
984 002076 032765 000006 000062 BIT #BIT1!BIT2,LDINVX+L.RST(R5) ;IS HE REQUESTING INIT?
985 002104 001407 BEQ 90$ ;NO-- ALL IS OK
986 002106 052765 000002 000114 BIS #BIT1,LDINVX+L.XST(R5) ;YES-- MAKE SURE WE DO
987 002114 012703 177774 MOV #CS.SRO,R3 ;SAY START WHILE ONLINE
988 002120 20$:
989 002120 CALL ASYERR ;INDICATE SUCH TO THE HLP AND STOP PROTOCOL
990 002124 90$:
991 002124 RETURN ;RETURN FROM DORBEL
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 25
STRTXQ -- START TRANSMIT QUEUE
993 .SBTTL STRTXQ -- START TRANSMIT QUEUE
994 ;
995 ; STRTXQ -- START TRANSMIT QUEUE
996 ;
997 ; THIS ROUTINE MAY BE CALLED WHENEVER IT COULD BE POSSIBLE TO START
998 ; ANOTHER TO -10 TRANSFER. A TRANSFER IS STARTED ONLY IF:
999 ; 1) NO OTHER TO -10 TRANSFER IS IN PROGRESS
1000 ; 2) THERE IS A BUFFER IN THE TRANSMIT QUEUE
1001 ; 3) THE TRANSMIT BUFFER IS IN THE SAME 32K BANK AS ANY RECEIVE
1002 ; CURRENTLY IN PROGRESS.
1003 ;
1004 ; INPUTS:
1005 ; R1 -- EXTERNAL PAGE ADDRESS OF DTE20 CSTAT REGISTER
1006 ; R5 -- LINE TABLE ADDRESS OF THIS DTE20
1007 ;
1008 ; OUTPUTS:
1009 ; R0,R2,R3,R4 DESTROYED
1010 ;
1011 002126 STRTXQ:
1012 002126 005765 000024 TST L.STS(R5) ;PROTOCOL RUNNING?
1013 002132 100045 BPL 90$ ;NO-- DON'T TRY ANYTHING
1014 002134 032765 000001 000062 BIT #BIT0,LDINVX+L.RST(R5) ;VALID EXAMINE UP? ;LW0001
1015 002142 001441 BEQ 90$ ;NOPE-- DON'T DO ANYTHING ;LW0001
1016 002144 005765 000130 TST L.XCT(R5) ;TRANSFER IN PROGRESS?
1017 002150 001036 BNE 90$ ;YES-- DON'T TRY TO START ANOTHER
1018 ;
1019 ; FIND BUFFER ADDRESS AND NEXT TRANSFER BYTE COUNT
1020 ;
1021 002152 012703 000124 MOV #L.XBA,R3 ;POINT TO XMIT BUFFER BLOCK
1022 002156 060503 ADD R5,R3 ; IN LINE TABLE
1023 002160 005765 000132 TST L.XBZ(R5) ;IS THERE ANYTHING LEFT TO THIS BUFFER?
1024 002164 001006 BNE 20$ ;YES-- USE IT
1025 002166 CALL CNVADR ;CONVERT BUS ADDRESS AND COUNT FROM CCB
1026 002172 103425 BCS 90$ ;QUEUE EMPTY-- RETURN NOW
1027 ;
1028 002174 016465 000020 000132 MOV C.CNT(R4),L.XBZ(R5) ;SET COUNT AS BUFFER SIZE
1029 002202 20$:
1030 .IF DF M$$MGE
1031 002202 012702 000072 MOV #L.RBA,R2 ;POINT TO RECEIVE BLOCK FOR ADDRESS CHECKING
1032 .IFTF
1033 002206 CALL CMBYCT ;GET NEXT TRANSFER BYTE COUNT
1034 .IFT
1035 002212 103415 BCS 90$ ;CANNOT TRANSFER-- GIVE UP
1036 .ENDC
1037 ;
1038 ; START TRANSFER BY TELLING -10 WE HAVE SOMETHING FOR HIM
1039 ;
1040 002214 012702 000003 MOV #QSIZE,R2 ;SET TO DEPOSIT QSIZE WORD
1041 002220 CALL DEPMYH ;STORE QSIZE WORD IN COMM REGION
1042 002224 014361 177764 MOV -(R3),TO10AD-CSTAT(R1) ;STORE LOW 16 BITS OF BUS ADDRESS
1043 002230 012761 000001 000002 MOV #TO10BM,DIAG3-CSTAT(R1) ;SET TO -10 BYTE MODE
1044 002236 105265 000111 INCB CPQCNT+L.XST(R5) ;BUMP QCOUNT TO -10
1045 ;*** NOTE THAT THIS DEVIATES FROM THE
1046 ;*** PROTOCOL SPECIFICATION IN THAT
1047 ;*** TO -10 TRANSFERS SWAP THE MEANINGS
1048 ;*** OF QCOUNT AND CPQCNT IN L.XST !!
1049 002242 CALL DEPSTS ;TELL -10 THAT WE HAVE SOMETHING FOR HIM
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 25-1
STRTXQ -- START TRANSMIT QUEUE
1050 002246 90$:
1051 002246 RETURN ;RETURN FROM STRTXQ
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 26
STRTRQ -- START RECEIVE
1053 .SBTTL STRTRQ -- START RECEIVE
1054 ;
1055 ; STRTRQ -- START RECEIVE QUEUE
1056 ;
1057 ; THIS ROUTINE IS CALLED WHENEVER A RECIEVE COULD BE STARTED.
1058 ; A RECIEVE IS STARTED ONLY IF:
1059 ; 1) THERE IS NO RECEIVE CURRENTLY IN PROGRESS
1060 ; 2) THERE IS A FREE RECEIVE BUFFER
1061 ; 3) THERE IS SOME DATA TO RECIEVE FROM THE -10
1062 ; 4) THE RECIEVE BUFFER IS IN THE SAME 32K BANK AS ANY TRANSMIT
1063 ; CURRENTLY IN PROGRESS.
1064 ;
1065 ; INPUTS:
1066 ; R1 -- EXTERNAL PAGE ADDRESS OF DTE20 CSTAT REGISTER
1067 ; R5 -- LINE TABLE ADDRESS OF THIS DTE20
1068 ;
1069 ; OUTPUTS:
1070 ; R0,R2,R3,R4 DESTROYED
1071 ;
1072 002250 STRTRQ:
1073 002250 005765 000024 TST L.STS(R5) ;PROTOCOL RUNNING?
1074 002254 100123 BPL 90$ ;NO-- DON'T TRY ANYTHING
1075 002256 032765 000001 000062 BIT #BIT0,LDINVX+L.RST(R5) ;VALID EXAMINE UP? ;LW0001
1076 002264 001517 BEQ 90$ ;NOPE-- DON'T DO ANYTHING ;LW0001
1077 002266 005765 000076 TST L.RCT(R5) ;TRANSFER IN PROGRESS?
1078 002272 001114 BNE 90$ ;YES-- CAN'T DO ANOTHER
1079 ;
1080 ; READ NEXT QSIZE FROM -10 IF NEEDED
1081 ;
1082 002274 012703 000102 MOV #L.RQZ,R3 ;POINT TO QSIZE WORD
1083 002300 060503 ADD R5,R3 ; IN LINE TABLE
1084 002302 005713 TST (R3) ;SOMETHING ALREADY THERE?
1085 002304 001033 BNE 30$ ;YES-- GO ON
1086 ;*** NOTE THAT THIS DEVIATES FROM THE
1087 ;*** PROTOCOL SPECIFICATION IN THAT
1088 ;*** TO -10 TRANSFERS SWAP THE MEANINGS
1089 ;*** OF QCOUNT AND CPQCNT IN L.XST !!
1090 002306 126565 000056 000110 CMPB QCOUNT+L.RST(R5),QCOUNT+L.XST(R5) ;IS THERE ANYTHING FOR US FROM -10?
1091 002314 001503 BEQ 90$ ;NO-- GIVE UP, NOTHING TO RECEIVE
1092 002316 105265 000110 INCB QCOUNT+L.XST(R5) ;BUMP OUR COPY OF QCOUNT
1093 .IF DF P$$CHK
1094 002322 126565 000056 000110 CMPB QCOUNT+L.RST(R5),QCOUNT+L.XST(R5) ;ONE THING?
1095 002330 001014 BNE 20$ ;NO-- QCOUNT IS IN ERROR
1096 .IFTF
1097 002332 012702 000003 MOV #QSIZE,R2 ;READ HIS TO-ME QSIZE
1098 002336 CALL EXMHSM ; FROM -10
1099 002342 103470 BCS 90$ ;OOPS-- ERROR ALREADY REPORTED
1100 .IFT
1101 002344 022313 CMP (R3)+,(R3) ;IS CSIZE LESS OR EQUAL TO PSIZE?
1102 002346 003005 BGT 20$ ;NO-- INVALID QSIZE
1103 002350 021367 000000G CMP (R3),$RDBSZ ;IS PSIZE LESS THAN OR EQUAL TO RECEIVE BUFFER SIZE?
1104 002354 003002 BGT 20$ ;NO-- TOO BIG PSIZE
1105 002356 005743 TST -(R3) ;IS CSIZE POSITIVE AND NON-ZERO?
1106 002360 003005 BGT 30$ ;YES-- QSIZE IS ALL OK
1107 002362 20$:
1108 002362 012703 177770 MOV #CS.PCK,R3 ;NO-- INDICATE PROTOCOL ERROR
1109 002366 CALL ASYERR ; TO HLP
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 26-1
STRTRQ -- START RECEIVE
1110 002372 000454 BR 90$ ;AND GIVE UP
1111 .ENDC
1112 ;
1113 ; FIND BUFFER ADDRESS AND COUNT FOR THE TRANSFER
1114 ;
1115 002374 30$:
1116 002374 062703 177770 ADD #L.RBA-L.RQZ,R3 ;POINT TO OUR RECEIVE BUFFER ADDRESS BLOCK
1117 002400 005765 000100 TST L.RBZ(R5) ;MORE BUFFER LEFT YET?
1118 002404 001013 BNE 40$ ;YES-- USE IT
1119 002406 CALL CNVADR ;CONVERT BUS ADDRESS FROM CCB
1120 002412 103444 BCS 90$ ;NO FREE BUFFERS-- GO AWAY FOR NOW
1121 ;
1122 002414 016565 000104 000100 MOV L.RPZ(R5),L.RBZ(R5) ;SET SIZE OF BUFFER
1123 002422 016564 000100 000020 MOV L.RBZ(R5),C.CNT(R4) ;ALSO IN CCB
1124 002430 CALL GET1BF ;GET ANOTHER RECEIVE BUFFER
1125 002434 40$:
1126 .IF DF M$$MGE
1127 002434 012702 000124 MOV #L.XBA,R2 ;POINT TO XMIT BUFFER ADDRESS BLOCK
1128 .IFTF
1129 002440 CALL CMBYCT ;GET NEXT BYTE COUNT
1130 .IFT
1131 002444 103427 BCS 90$ ;CANNOT TRANSFER-- GIVE UP
1132 .ENDC
1133 ;
1134 ; START DTE20 ON THIS TRANSFER
1135 ;
1136 002446 012700 100000 MOV #TO11IB,R0 ;ASSUME THE TRANSFER IS LESS (WILL COMPLEMENT TO11IB WIT
1137 002452 021365 000102 CMP (R3),L.RCZ(R5) ;IS THE BYTE COUNT MORE THAN -10 WILL GIVE US?
1138 002456 002403 BLT 50$ ;NO-- GO ON
1139 002460 005000 CLR R0 ;YES-- THIS IS LAST XFER, SO INTERRUPT BOTH -10 AND -11
1140 002462 016513 000102 MOV L.RCZ(R5),(R3) ;SET REMAINING BYTES AS COUNT
1141 002466 50$:
1142 002466 051300 BIS (R3),R0 ;GET +VE COUNT WITH THE COMPLEMENT OF DESIRED TO11IB
1143 002470 105765 000106 TSTB L.RTM(R5) ;WHAT'S THE TRANSFER MODE?
1144 002474 001404 BEQ 60$ ;BYTES-- COUNT IS OK
1145 002476 005200 INC R0 ;ROUND UP TO NEXT WORD
1146 002500 006200 ASR R0 ;DIVIDE BY TWO FOR WORD COUNT
1147 ;THIS WILL SIGN-EXTEND TO11IB, ALSO INTO ZSTOP WHICH WIL
1148 002502 052700 020000 BIS #TO11BM,R0 ;CLEAR BYTE MODE BIT (WITH NEG R0)
1149 002506 60$:
1150 002506 005400 NEG R0 ;NEGATE BYTE COUNT AND COMPLEMENT TO11IB, TO11BM
1151 002510 042700 050000 BIC #^C<TO11IB!TO11BM!TO11CM>,R0 ;CLEAR UNUSED BITS
1152 002514 014361 177766 MOV -(R3),TO11AD-CSTAT(R1) ;SET LOW ADDRESS BITS
1153 002520 010061 177762 MOV R0,TO11BC-CSTAT(R1) ;SET BYTE COUNT AND START TRANSFER
1154 002524 90$:
1155 002524 RETURN ;RETURN FROM STRTRQ
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 27
DEPSTS -- DEPOSIT TO-HIM STATUS WORD
1157 .SBTTL DEPSTS -- DEPOSIT TO-HIM STATUS WORD
1158 ;
1159 ; DEPSTS -- DEPOSIT MY TO-HIM STATUS WORD
1160 ;
1161 002526 DEPSTS:
1162 002526 012702 000002 MOV #STATUS,R2 ;SET TO STATUS WORD
1163 002532 010503 MOV R5,R3 ;COPY LINE TABLE ADDRESS
1164 002534 062703 000110 ADD #L.XST,R3 ;COMPUTE XMIT STS WORD ADDRESS
1165 002540 CALL DEPMYH ;DO IT TO MY TO-HIM REGION
1166 002544 012711 000400 MOV #TO10DB,(R1) ;RING THE -10 THAT STATUS CHANGED
1167 002550 RETURN ;RETURN FROM DEPSTS
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 28
EXMHSG/EXMHSM/EXMMYG/EXMMYH/DEPMYG/DEPMYH -- DEPOSIT/EXAMINE C
1169 .SBTTL EXMHSG/EXMHSM/EXMMYG/EXMMYH/DEPMYG/DEPMYH -- DEPOSIT/EXAMINE COMM REGION
1170 ;
1171 ; EXMHSG/EXMHSM/EXMMYG/EXMMYH/DEPMYG/DEPMYH -- DEPOSIT/EXAMINE COMM REGION
1172 ;
1173 ; INPUTS:
1174 ; R2 -- OFFSET WITHIN REGION
1175 ; R3 -- ADDRESS OF 3-WORD BLOCK TO EXAMINE/DEPOSIT
1176 ; R1 -- ADDRESS OF CSTAT FOR THIS DTE20
1177 ; R5 -- ADDRESS OF LINE TABLE FOR THIS DTE20
1178 ;
1179 ; OUTPUTS:
1180 ; CC-C SET -- EXAMINE/DEPOSIT FAILED
1181 ; R0,R2 DESTROYED
1182 ;
1183 ;
1184 ; EXMHSG -- EXAMINE HIS GENERAL REGION
1185 ;
1186 002552 EXMHSG:
1187 002552 066502 000042 ADD L.EHG(R5),R2 ;COMPUTE ACTUAL ADDRESS
1188 002556 CALLRB PRTEXM ;DO EXAMINE AND RETURN
1189 ;
1190 ; EXMHSM -- EXAMINE HIS TO-ME REGION
1191 ;
1192 002560 EXMHSM:
1193 002560 066502 000044 ADD L.EHM(R5),R2 ;COMPUTE ACTUAL ADDRESS
1194 002564 CALLRB PRTEXM ;EXAMINE IT
1195 ;
1196 ; EXMMYH -- EXAMINE MY TO-HIM REGION
1197 ;
1198 002566 EXMMYH:
1199 002566 066502 000050 ADD L.DMH(R5),R2 ;ADD OFFSET FROM GENERAL
1200 002572 CALLRX EXMMYG ; AND ACT LIKE GENERAL
1201 ;
1202 ; EXMMYG -- EXAMINE MY GENERAL REGION
1203 ;
1204 002572 EXMMYG:
1205 002572 066502 000046 ADD L.EMG(R5),R2 ;COMPUTE ACTUAL ADDRESS
1206 002576 CALLRB PRTEXM ;EXAMINE IT
1207 ;
1208 ; DEPMYH -- DEPOSIT MY TO-HIM REGION
1209 ;
1210 002600 DEPMYH:
1211 002600 066502 000050 ADD L.DMH(R5),R2 ;COMPUTE ACTUAL ADDRESS
1212 002604 CALLRX DEPMYG ;AND ACT LIKE GENERAL
1213 ;
1214 ; DEPMYG -- DEPOSIT MY GENERAL REGION
1215 ;
1216 002604 DEPMYG:
1217 ;MY GENERAL IS ALWAYS DEPOSIT OFFSET 0
1218 002604 CALLRB PRTDEP ;DO DEPOSIT
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 29
PRTEXM/PRTDEP -- PROTECTED EXAMINE/DEPOSIT
1220 .SBTTL PRTEXM/PRTDEP -- PROTECTED EXAMINE/DEPOSIT
1221 ;
1222 ; PRTEXM/PRTDEP -- PROTECTED EXAMINE/DEPOSIT
1223 ;
1224 ; INPUTS:
1225 ; R2 -- EXAMINE/DEPOSIT ADDRESS WITHIN PROTECTED SPACE
1226 ; R3 -- ADDRESS OF 3-WORD BLOCK TO EXAMINE/DEPOSIT
1227 ; R1 -- ADDRESS OF CSTAT FOR THIS DTE20
1228 ; R5 -- ADDRESS OF LINE TABLE FOR THIS DTE20
1229 ;
1230 ; OUTPUTS:
1231 ; CC-C SET -- EXAMINE/DEPOSIT FAILED
1232 ; R0 DESTROYED
1233 ;
1234 ;
1235 ; PRTEXM -- PROTECTED EXAMINE
1236 ;
1237 002606 PRTEXM:
1238 002606 005000 CLR R0 ;SET EXAMINE MODE
1239 002610 CALL WTEXDP ;WAIT FOR EXAMINE/DEPOSIT
1240 002614 016113 177746 MOV DEXWD3-CSTAT(R1),(R3) ;GET BITS 20-35
1241 002620 016163 177750 000002 MOV DEXWD2-CSTAT(R1),2(R3) ;GET BITS 4-19
1242 002626 016163 177752 000004 MOV DEXWD1-CSTAT(R1),4(R3) ;GET BITS 0-3
1243 002634 RETURN ;RETURN FROM PRTEXM, CC-C SET/CLEAR BY WTEXDP
1244 ;
1245 ; PRTDEP -- PROTECTED DEPOSIT
1246 ;
1247 002636 PRTDEP:
1248 002636 011361 177746 MOV (R3),DEXWD3-CSTAT(R1) ;SET BITS 20-35
1249 002642 016361 000002 177750 MOV 2(R3),DEXWD2-CSTAT(R1) ;SET BITS 4-19
1250 002650 016361 000004 177752 MOV 4(R3),DEXWD1-CSTAT(R1) ;SET BITS 0-3
1251 002656 012700 010000 MOV #DEP,R0 ;SET DEPOSIT MODE
1252 002662 CALLRX WTEXDP ;WAIT FOR EXAMINE/DEPOSIT AND
1253 ; RETURN FROM PRTDEP, CC-C SET/CLEAR BY WTEXDP
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 30
WTEXDP -- WAIT FOR EXAMINE/DEPOSIT
1255 .SBTTL WTEXDP -- WAIT FOR EXAMINE/DEPOSIT
1256 ;
1257 ; WTEXDP -- WAIT FOR EXAMINE/DEPOSIT
1258 ;
1259 ; INPUTS:
1260 ; R0 -- EXAMINE OR DEPOSIT MODE (FOR TENAD1)
1261 ; R2 -- EXAMINE/DEPOSIT ADDRESS (FOR TENAD2)
1262 ; R1 -- ADDRESS OF CSTAT FOR THIS DTE20
1263 ;
1264 ; OUTPUTS:
1265 ; CC-C SET -- EXAMINE/DEPOSIT FAILED
1266 ; R0 DESTROYED
1267 ;
1268 002662 WTEXDP:
1269 002662 010061 177754 MOV R0,TENAD1-CSTAT(R1) ;SET DEPOSIT MODE AND ADDRESS BITS 13-19
1270 002666 010261 177756 MOV R2,TENAD2-CSTAT(R1) ;SET ADDRESS BITS 20-35 AND START EXAMINE/DEPOSIT
1271 002672 012700 003000 MOV #3000,R0 ;SET TIMEOUT COUNT
1272 002676 10$:
1273 002676 032711 000004 BIT #DEXDON,(R1) ;EXAMINE/DEPOSIT DONE?
1274 002702 001003 BNE 20$ ;YES-- GO ON
1275 002704 SOB R0,10$ ;NO-- WAIT TILL DONE
1276 002710 000404 BR 80$ ;NOT DONE-- RETURN ERROR
1277 ;
1278 002712 20$:
1279 002712 000241 CLC ;ASSUME SUCCESS
1280 002714 032711 000020 BIT #BPARER,(R1) ;E-BUS PARITY ERROR?
1281 002720 001407 BEQ 90$ ;NO-- ALL OK
1282 002722 80$:
1283 002722 010346 MOV R3,-(SP) ;SAVE R3
1284 002724 012703 177773 MOV #CS.TDN,R3 ;SAY -10 DOWN
1285 002730 CALL ASYERR ;INDICATE ERROR TO HLP, STOP PROTOCOL
1286 002734 012603 MOV (SP)+,R3 ;RESTORE R3
1287 002736 000261 SEC ;INDICATE FAILURE
1288 002740 90$:
1289 002740 RETURN ;RETURN FROM WED, CC-C SET/CLEAR
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 31
CNVADR/CMBYCT/UPDADR -- BUFFER ADDRESSING ROUTINES
1291 .SBTTL CNVADR/CMBYCT/UPDADR -- BUFFER ADDRESSING ROUTINES
1292 ;
1293 ; CNVADR -- CONVERT BUFFER ADDRESS FROM CCB
1294 ;
1295 ; R3 -- POINTER TO BUFFER ADDRESS WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
1296 ;
1297 ; RETURNS:
1298 ; CC-C SET -- NO AVAILABLE BUFFERS
1299 ; R3 -- POINTER TO BUFFER ADDRESS WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
1300 ; R4 -- CCB ADDRESS
1301 ;
1302 002742 CNVADR:
1303 002742 062703 177772 ADD #L.RFQ-L.RBA,R3 ;POINT TO QUEUE LISTHEAD
1304 002746 CALL $CMQRM ;GET THE NEXT THING IN QUEUE
1305 002752 103421 BCS 90$ ;THAT'S IT-- END OF QUEUE
1306 002754 022323 CMP (R3)+,(R3)+ ;SKIP LISTHEAD
1307 002756 010423 MOV R4,(R3)+ ;STORE CCB ADDRESS NOW
1308 .IF DF M$$MGE
1309 002760 010346 MOV R3,-(SP) ;SAVE POINTER
1310 002762 016403 000014 MOV C.BUF+0(R4),R3 ;GET RELOCATION BIAS
1311 002766 016402 000016 MOV C.BUF+2(R4),R2 ; AND VIRTUAL ADDRESS
1312 002772 CALL $CNV18 ;CONVERT TO 18-BIT UNIBUS ADDRESS
1313 002776 010300 MOV R3,R0 ;COPY THE HIGH PART
1314 003000 012603 MOV (SP)+,R3 ;RESTORE POINTER
1315 003002 006200 ASR R0 ;PUT BITS 17-16
1316 003004 006000 ROR R0 ; FROM BITS 1-0
1317 003006 006000 ROR R0 ; INTO BITS 15-14 (THIS WILL LEAVE CARRY CLEAR)
1318 003010 010013 MOV R0,(R3) ;STORE HIGH ADDRESS BITS
1319 003012 010263 000002 MOV R2,2(R3) ; LOW ADDRESS BITS
1320 .IFF
1321 MOV C.BUF+2(R4),2(R3) ;STORE PHYSICAL BUSS ADDRESS
1322 .ENDC
1323 003016 90$:
1324 003016 RETURN ;RETURN FROM CNVADR
1325 ;
1326 ; CMBYCT -- COMPUTE NEXT TRANSFER BYTE COUNT
1327 ;
1328 ; R2 -- POINTER TO BUFFER ADDRESS WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
1329 ; FOR OPPOSITE TRANSFER DIRECTION (LINE TABLE OFFSET)
1330 ; (MAPPED SYSTEMS ONLY)
1331 ; R3 -- POINTER TO BUFFER ADDRESS WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
1332 ;
1333 ; RETURNS:
1334 ; CC-C SET -- TRANSFER CANNOT OCCUR NOW (MAPPED SYSTEMS ONLY)
1335 ; R3 -- POINTER TO TRANSFER COUNT WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
1336 ;
1337 003020 CMBYCT:
1338 .IF DF M$$MGE
1339 003020 060502 ADD R5,R2 ;OFFSET REVERSE ADDRESS IN LINE TABLE
1340 003022 005762 000004 TST L.XCT-L.XBA(R2) ;TRANSFER IN PROGRESS IN REVERSE DIRECTION?
1341 003026 001404 BEQ 20$ ;NO-- MUST BE OK
1342 003030 021213 CMP (R2),(R3) ;YES-- IS THIS TRANSFER TO SAME 32K BANK?
1343 003032 001402 BEQ 20$ ;YES-- OK
1344 003034 000261 SEC ;NO-- ERROR
1345 003036 000414 BR 90$ ;RETURN FAILURE
1346 ;
1347 003040 20$:
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 31-1
CNVADR/CMBYCT/UPDADR -- BUFFER ADDRESSING ROUTINES
1348 003040 012361 177744 MOV (R3)+,DLYCNT-CSTAT(R1) ;SET HIGH ADDRESS
1349 .IF DF D$$BUG
1350 003044 052761 000000 177744 BIS #0,DLYCNT-CSTAT(R1) ;SET DELAY COUNT
1351 .ENDC
1352 003052 012300 MOV (R3)+,R0 ;GET LOW ADDRESS
1353 003054 016313 000002 MOV 2(R3),(R3) ;USE REMAINING BYTE COUNT AS TRANSFER SIZE
1354 003060 061300 ADD (R3),R0 ;BUMP LOW ADDRESS BY COUNT
1355 003062 103002 BCC 90$ ;UNDER 32K-- GO ON (CC-C CLEAR)
1356 003064 160013 SUB R0,(R3) ;OOPS-- REDUCE COUNT BY AMOUNT OVER NEXT 32K BOUNDARY
1357 003066 000241 CLC ;CLEAR CC-C TO INDICATE SUCCESS
1358 003070 90$:
1359 .IFF
1360 ADD #L.RBZ-L.RBA,R3 ;POINT TO BUFFER SIZE WORD
1361 MOV (R3),-(R3) ;SET COUNT AS CURRENT BUFFER SIZE
1362 .ENDC
1363 003070 RETURN ;RETURN FROM CBC, CC-C SET/CLEAR
1364 ;
1365 ; UPDADR -- UPDATE BUFFER ADDRESS
1366 ;
1367 ; R3 -- POINTER TO TRANSFER COUNT WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
1368 ;
1369 ; RETURNS:
1370 ; CC-Z SET -- THIS BUFFER (TOP OF QUEUE) IS COMPLETE
1371 ; R3 -- POINTER TO BUFFER SIZE WORD OF TRANSMIT/RECEIVE CONTROL BLOCK
1372 ;
1373 003072 UPDADR:
1374 003072 011300 MOV (R3),R0 ;GET COUNT
1375 003074 060063 177776 ADD R0,L.RLA-L.RCT(R3) ;BUMP LOW ADDRESS
1376 .IF DF M$$MGE
1377 003100 103003 BCC 10$ ;OK-- GO ON
1378 003102 062763 040000 177774 ADD #BUSA16,L.RBA+0-L.RCT(R3) ;CARRY-- CARRY INTO THE HIGH PART
1379 003110 10$:
1380 .ENDC
1381 003110 005023 CLR (R3)+ ;CLEAR COUNT WORD
1382 003112 016304 177770 MOV L.RCB-L.RBZ(R3),R4 ;GET REQUEST CCB ADDRESS
1383 003116 160013 SUB R0,(R3) ;COUNT DOWN BUFFER SIZE
1384 003120 RETURN ;RETURN FROM UPDADR
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 32
XMRCKL/RCVKIL/GETRBF/GET1BF/QUERBF/RETRBF/XMTKIL -- BUFFER MAN
1386 .SBTTL XMRCKL/RCVKIL/GETRBF/GET1BF/QUERBF/RETRBF/XMTKIL -- BUFFER MANAGEMENT RO
1387 ;
1388 ; XMRCKL -- TRANSMIT AND RECEIVE KILL
1389 ;
1390 003122 XMRCKL:
1391 003122 CALL XMTKIL ;KILL TRANSMIT REQUESTS
1392 003126 CALLRX RCVKIL ;KILL RECEIVE REQUESTS, RETURN FROM XMRCKL
1393 ;
1394 ; RCVKIL -- RECEIVE KILL
1395 ;
1396 003126 RCVKIL:
1397 003126 CALLRX GETRBF ;JUST RE-GET OUR RECEIVE BUFFER ALLOCATION
1398 ;
1399 ; GETRBF -- GET TWO RECEIVE BUFFERS
1400 ;
1401 003126 GETRBF:
1402 003126 CALL RETRBF ;RETURN ALL OUR OLD ONES
1403 003132 CALL GET1BF ;GET ONE BUFFER
1404 003136 CALLRX GET1BF ; AND ANOTHER MAKES TWO, RETURN FROM GETRBF
1405 ;
1406 ; GET1BF -- GET ONE RECEIVE BUFFER
1407 ;
1408 003136 GET1BF:
1409 003136 CALL $RDBGT ;ATTEMPT TO GET ONE RECEIVE BUFFER
1410 003142 103011 BCC 20$ ;GOT ONE-- PUT IT IN FREE QUEUE
1411 003144 105265 000145 INCB L.RES(R5) ; COUNT THE RESOURCE ALLOC FAILURE ;BH0003
1412 003150 001002 BNE 10$ ; ... ;BH0003
1413 003152 105365 000145 DECB L.RES(R5) ; DON'T ALLOW COUNTER WRAP ;BH0003
1414 003156 10$: ;BH0003
1415 003156 016504 000026 MOV L.SLN(R5),R4 ;NONE FREE-- GET OUR SYSTEM LINE NUMBER
1416 003162 CALLR $RDBWT ;PUT IN A WAIT REQUEST AND RETURN FROM GETRBF
1417 ;
1418 003166 20$:
1419 003166 010346 MOV R3,-(SP) ;SAVE R3
1420 003170 CALL QUERBF ;PUT BUFFER IN QUEUE
1421 003174 012603 MOV (SP)+,R3 ;RESTORE R3
1422 003176 RETURN ;RETURN FROM GET1BF
1423 ;
1424 ; QUERBF -- QUEUE A RECEIVE BUFFER TO FREE QUEUE
1425 ; R4 -- RECEIVE BUFFER CCB
1426 ; R5 -- DTE20 LINE TABLE ADDRESS
1427 ;
1428 003200 QUERBF:
1429 003200 016564 000026 000006 MOV L.SLN(R5),C.LIN(R4) ;SET OUR SLN IN THE CCB
1430 003206 012703 000064 MOV #L.RFQ,R3 ;POINT TO RECEIVE FREE QUEUE
1431 003212 060503 ADD R5,R3 ; IN LINE TABLE
1432 003214 CALLR $CMQIN ;STORE IN FREE QUEUE AND RETURN FROM QUERBF
1433 ;
1434 ; RETRBF -- RETURN RECEIVE BUFFERS
1435 ;
1436 003220 RETRBF:
1437 003220 016504 000026 MOV L.SLN(R5),R4 ;GET OUR SLN
1438 003224 CALL $RDBQP ;PURGE ALL THE BUFFER WAIT REQUESTS
1439 003230 012703 000064 MOV #L.RFQ,R3 ;GET RECEIVE FREE QUEUE ADDRESS
1440 003234 060503 ADD R5,R3 ; IN LINE TABLE
1441 003236 10$:
1442 003236 CALL $CMQRM ;REMOVE A BUFFER FROM FREE QUEUE
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 32-1
XMRCKL/RCVKIL/GETRBF/GET1BF/QUERBF/RETRBF/XMTKIL -- BUFFER MAN
1443 003242 103403 BCS 90$ ;ALL DONE AT END
1444 003244 CALL $RDBRT ;RETURN THE BUFFER TO SYSTEM POOL
1445 003250 000772 BR 10$ ;LOOP FOR ALL BUFFERS IN FREE QUEUE
1446 ;
1447 003252 90$:
1448 003252 RETURN ;RETURN FROM RETRBF
1449 ;
1450 ; XMTKIL -- ABORT ALL TRANSMIT REQUESTS
1451 ;
1452 003254 XMTKIL:
1453 003254 10$:
1454 003254 012703 000116 MOV #L.XMQ,R3 ;POINT TO TRANSMIT QUEUE
1455 003260 060503 ADD R5,R3 ; IN LINE TABLE
1456 003262 CALL $CMQRM ;GET A XMIT BUFFER
1457 003266 103405 BCS 90$ ;NO MORE-- DONE
1458 003270 012703 000100 MOV #CS.ABO,R3 ;SAY ABORT
1459 003274 CALL $XMCMP ;TO TRANSMIT BUFFER
1460 003300 000765 BR 10$ ;BACK FOR ANOTHER
1461 ;
1462 003302 90$:
1463 003302 RETURN ;RETURN FROM XMTKIL
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 33
ASYERR -- ASYNCHRONOUS ERROR PROCESSING
1465 .SBTTL ASYERR -- ASYNCHRONOUS ERROR PROCESSING
1466 ;
1467 ; ASYERR -- ASYNCHRONOUS ERROR PROCESSING
1468 ;
1469 ; THIS ROUTINE IS CALLED ON ANY FATAL ERROR DURING PROTOCOL OPERATION.
1470 ; IF PROTOCOL WAS ACTIVE, IT CEASES CURRENT ACTIVITY AND SENDS THE
1471 ; INDICATED ERROR TO THE HIGHER LEVEL PROCESS.
1472 ;
1473 ; INPUTS:
1474 ; R1 -- ADDRESS OF CSTAT FOR THIS DTE20
1475 ; R3 -- ERROR STATUS (FOR C.STS)
1476 ; R5 -- LINE TABLE ADDRESS FOR THIS DTE20
1477 ;
1478 ; OUTPUTS:
1479 ; R3 DESTROYED
1480 ;
1481 003304 ASYERR:
1482 .IF DF D$$BUG
1483 003304 CALL SNPSHT ;TAKE A DTE SNAPSHOT IF ERROR
1484 .ENDC
1485 003310 010046 MOV R0,-(SP) ;SAVE R0
1486 003312 010246 MOV R2,-(SP) ; AND R2
1487 003314 CALL LOGGIT ;LOG THIS EVENT ;BH0004
1488 003320 005765 000024 TST L.STS(R5) ;PROTOCOL ACTIVE?
1489 003324 100011 BPL 10$ ;NO-- JUST GO ON
1490 003326 016502 000026 MOV L.SLN(R5),R2 ;YES-- GET OUR SLN FOR $ASCMP
1491 003332 010365 000030 MOV R3,L.PSW(R5) ;STORE STATUS WORD IN CASE OF $ASCMP FAILURE
1492 003336 CALL $ASCMP ;REPORT ERROR TO HLP
1493 003342 103402 BCS 10$ ;RESOURCE ERROR-- WE'LL TRY AGAIN LATER
1494 003344 005065 000030 CLR L.PSW(R5) ;INDICATE SUCCESSFULL STATUS
1495 003350 10$:
1496 003350 032765 000001 000114 BIT #BIT0,LDINVX+L.XST(R5) ;IS OUR VALID EXAMINE BIT UP?
1497 003356 001405 BEQ 20$ ;NO-- DON'T PLAY WITH -10
1498 003360 042765 000001 000114 BIC #BIT0,LDINVX+L.XST(R5) ;YES-- CLEAR VALID EXAMINE
1499 003366 CALL DEPSTS ; IN OUR STATUS WORD
1500 ;NOTE THAT THIS MAY CAUSE ANOTHER CALL
1501 ; TO ERR, BUT VALID EXAMINE WILL BE ZERO.
1502 003372 20$:
1503 003372 042765 140000 000024 BIC #LS.RUN!LS.INI,L.STS(R5) ;INDICATE NO LONGER RUNNING
1504 003400 012602 MOV (SP)+,R2 ;RESTORE R2
1505 003402 012600 MOV (SP)+,R0 ; AND R0
1506 003404 RETURN ;RETURN FROM ASYERR
1507 ;
1508 ;
1509 ; SNPSHT -- DTE20 SNAPSHOT FOR ERRORS
1510 ;
1511 ; THIS ROUTINE SAVES ALL THE DTE20 REGISTERS IN "SNPDAT" AND THEN
1512 ; BREAKS TO XDT USING THE "BPT" TRAP.
1513 ;
1514 ; INPUTS:
1515 ; R1 -- DTE20 CSTAT ADDRESS
1516 ;
1517 ; OUTPUTS:
1518 ; NONE
1519 ;
1520 .IF DF D$$BUG
1521 003406 PATCH::
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 33-1
ASYERR -- ASYNCHRONOUS ERROR PROCESSING
1522 000040 .REPT 40
1523 BR SNPSHT
1524 .ENDR
1525 003506 SNPSHT::
1526 003506 010246 MOV R2,-(SP) ;SAVE R2
1527 003510 010146 MOV R1,-(SP) ; AND R1
1528 003512 010046 MOV R0,-(SP) ; AND R0
1529 003514 162701 000034 SUB #CSTAT-DLYCNT,R1 ;POINT TO DLYCNT REGISTER
1530 003520 012702 003550' MOV #SNPDAT,R2 ;POINT TO SNAPSHOT AREA
1531 003524 012700 000020 MOV #<DIAG3-DLYCNT+2>/2,R0 ;GET COUNT OF WORDS IN DTE20
1532 003530 10$:
1533 003530 012122 MOV (R1)+,(R2)+ ;SAVE A REGISTER
1534 003532 SOB R0,10$ ;SAVE THEM ALL
1535 003536 012600 MOV (SP)+,R0 ;RESTORE R0
1536 003540 012601 MOV (SP)+,R1 ; AND R1
1537 003542 012602 MOV (SP)+,R2 ; AND R2
1538 ;
1539 003544 000240 NOP ;TRAP TO XDT
1540 ;
1541 003546 RETURN ;RETURN FROM SNPSHT
1542 ;
1543 ; SNAPSHOT AREA
1544 ;
1545 003550 SNPDAT::
1546 003550 .BLKB DIAG3+2-DLYCNT
1547 .ENDC
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 34
LOGGIT - EVENT LOGGING
1549 .SBTTL LOGGIT - EVENT LOGGING ;BH0004
1550 ;+ ;BH0004
1551 ; ** - LOGGIT ;BH0004
1552 ; ;BH0004
1553 ; INPUTS: ;BH0004
1554 ; R1 = ADDRESS OF CSTAT FOR THIS DTE ;BH0004
1555 ; R3 = ERROR STATUS ;BH0004
1556 ; R5 = LINE TABLE ADDRESS FOR THIS DTE ;BH0004
1557 ; ;BH0004
1558 ; OUTPUTS: ;BH0004
1559 ; R0 IS CLOBBERED - ALL ELSE PRESERVED. ;BH0004
1560 ;- ;BH0004
1561 000020 NREG=<DIAG3-DLYCNT+2>/2 ; NUMBER OF REGISTERS ;BH0004
1562 ;BH0004
1563 003610 016567 000032 174200 LOGGIT: MOV L.LOG(R5),PDST ; SET LOGGING DESTINATION ;BH0004
1564 003616 001427 BEQ 20$ ; WE AREN'T ENABLED ;BH0004
1565 003620 010146 MOV R1,-(SP) ; SAVE R1 ;BH0004
1566 003622 110367 174172 MOVB R3,PRSN ; PUT REASON INTO CMLOG ARG BLOCK ;BH0005
1567 003626 116567 000026 174166 MOVB L.SLN(R5),PLIN ; SYS LINE # ;BH0004
1568 003634 012700 000016' MOV #PDST,R0 ; POINT TO ARG BLOCK ;BH0004
1569 003640 CALL $CMLOG ; DO THE LOGGING >>>ENTER COROUTINE ;BH0004
1570 003644 103413 BCS 15$ ;>>>$CMLOG POINTS R2 AT MSG BUFFER ;BH0007
1571 003646 012722 MOV (PC)+,(R2)+ ;>>>SET CODE & LENGTH OF DATA ;BH0007
1572 003650 001 040 .BYTE E$DREG,NREG*2 ;>>>... ;BH0011
1573 003652 012746 000020 MOV #NREG,-(SP) ;>>>NUMBER OF REGISTERS ;BH0011
1574 003656 162701 000034 SUB #CSTAT,R1 ;>>>ADDR OF FIRST REG ;BH0004
1575 003662 012122 10$: MOV (R1)+,(R2)+ ;>>>PUT A REGISTER IN BUFFER ;BH0004
1576 003664 005316 DEC (SP) ;>>>DO EM ALL ;BH0004
1577 003666 001375 BNE 10$ ;>>>... ;BH0004
1578 003670 005726 TST (SP)+ ;>>>CLEAN UP THE STACK ;BH0004
1579 003672 CALL @(SP)+ ; FINISH UP THE LOGGING >>>EXIT COROUTINE ;BH0004
1580 003674 012601 15$: MOV (SP)+,R1 ; RESTORE R1 ;BH0007
1581 003676 20$: RETURN ;BH0004
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 35
END
1583 .SBTTL END
1584 003700 PASS2:
1585 000001 .END
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 35-1
SYMBOL TABLE
ASYERR 003304R CS.ERR= 100000 DON11C= 000100 E$RRET= 000031 FS.XON= 007000
A$$CHK= 000000 CS.HFE= 002000 DORBEL 002016R E$RRTE= 000011 F$$LVL= 000001
A$$CPS= 000000 CS.HLT= 177776 DP = 000000 E$RRTO= 000006 GETRBF 003126R
A$$PRI= 000000 CS.LST= 040000 DQ = 000006 E$RSEL= 000030 GET1BF 003136R
A$$TRP= 000000 CS.MTL= 004000 DRESET= 000100 E$RSIN= 000004 G$$TPP= 000000
BIT0 = 000001 CS.PCK= 177770 DTE = 000024 E$RSRC= 000015 G$$TSS= 000000
BIT1 = 000002 CS.RNG= 000010 DU = 000002 E$RTRN= 000026 G$$TTK= 000000
BIT10 = 002000 CS.ROV= 000004 DUP = 000012 E$RUCL= 000001 G$$WRD= 000000
BIT11 = 004000 CS.RSN= 010000 DUV = 000002 E$RXTO= 000027 INTROF= 000010
BIT12 = 010000 CS.SRO= 177774 DV = 000026 E$TASC= 000001 INTRON= 000040
BIT13 = 020000 CS.SUC= 000001 DZ = 000030 E$TASX= 000002 INTSON= 000001
BIT14 = 040000 CS.TDN= 177773 D$$BUG= 177514 E$THDW= 000003 INT11C= 002000
BIT15 = 100000 CS.TMO= 020000 D$$CHK= 000000 E$TSFT= 000004 I$$RAR= 000000
BIT2 = 000004 CS.TRE= 177772 D$$ISK= 000000 E$TTOP= 000005 I$$RDN= 000000
BIT3 = 000010 CTLCMP 000234R D$$L11= 000001 E$$XPR= 000000 KDP = 000034
BIT4 = 000020 CTLDSP 000070R D$$YNC= 000000 FC.CCP= 000020 KDSAR0= 172360
BIT5 = 000040 C$$CKP= 000000 D$$YNM= 000000 FC.CTL= 000006 KDSDR0= 172320
BIT6 = 000100 C$$ORE= 000400 ENABLE 001370R FC.KCP= 000016 KDZ = 000036
BIT7 = 000200 C$$RSH= 177564 ERRTB 000000R FC.KIL= 000004 KILDSP 000062R
BIT8 = 000400 C.BID 000003 ERRTBL= 000006 FC.RCE= 000002 KILL 000206R
BIT9 = 001000 C.BUF 000014 ERR10C= 010000 FC.RCP= 000014 KISAR0= 172340
BPARER= 000020 C.BUF1 000014 ERR11C= 000001 FC.TIM= 000010 KISAR5= 172352
BUSA16= 040000 C.BUF2 000024 EXMHSG 002552R FC.XCP= 000012 KISAR6= 172354
BUSA17= 100000 C.CNT 000020 EXMHSM 002560R FC.XME= 000000 KISAR7= 172356
CB.CCB= 000002 C.CNT1 000020 EXMMYG 002572R FE.CAL= 000040 KISDR0= 172300
CB.RDB= 000004 C.CNT2 000030 EXMMYH 002566R FE.DRV= 000010 KISDR6= 172314
CE.ABO= 100362 C.FLG 000022 E$DDAT= 000003 FE.EXP= 000200 KISDR7= 172316
CE.DIS= 100366 C.FLG1 000022 E$DDEV= 000005 FE.EXT= 000001 KL = 000040
CE.ERR= 100370 C.FLG2 000032 E$DLPC= 000013 FE.EXV= 000004 KPALIV= 000005
CE.MOP= 100372 C.FNC 000010 E$DMCD= 000012 FE.LSI= 000400 K$$CNT= 177546
CE.NTE= 100361 C.LIN 000006 E$DNOD= 000011 FE.MUP= 000002 K$$CSR= 177546
CE.RTE= 100376 C.LNK 000000 E$DOSI= 000010 FE.MXT= 040000 K$$LDC= 000000
CE.SRC= 100364 C.MOD 000011 E$DREC= 000007 FE.NLG= 100000 K$$TPS= 000074
CE.TMO= 100374 C.NSP 000004 E$DREG= 000001 FE.PKT= 000100 LDINVX 000004
CF.EOM= 000004 C.RSV 000002 E$DRSN= 000006 FE.PLA= 000020 LD$LP = 000000
CF.HDR= 000020 C.STA 000007 E$DTHR= 000015 FORPRO= 000000 LGDAT = 000042
CF.LB = 100000 C.STS 000012 E$DTIM= 000002 FS.AST= 000000 LOGGIT 003610R
CF.SOM= 000010 DA = 000010 E$DTPC= 000014 FS.CIB= 002000 LS.ICB= 020000 G
CF.SYN= 000040 DEP = 010000 E$DTXT= 000016 FS.CRA= 001000 LS.INI= 040000 G
CF.TRN= 000100 DEPMYG 002604R E$DUPT= 000004 FS.DIS= 013000 LS.RUN= 100000 G
CHNPNT= 000001 DEPMYH 002600R E$RABO= 000017 FS.DVC= 001000 L$$ASG= 000000
CMBYCT 003020R DEPSTS 002526R E$RCRC= 000023 FS.ENB= 012000 L$$DRV= 000000
CMODE = 140000 DEXDON= 000004 E$RDSC= 000005 FS.GET= 006000 L$$P11= 000001
CNTRL 000222R DEXWD1= 000006 E$RFRM= 000024 FS.INI= 000000 L$$11R= 000000
CNVADR 002742R DEXWD2= 000004 E$RHFE= 000016 FS.KIL= 000000 L.CST 000022 G
CPKPLV= 000005 DEXWD3= 000002 E$RLIN= 000003 FS.LTM= 001000 L.DMH 000050 G
CPQCNT 000001 DIAG1 = 000030 E$RMOP= 000014 FS.MNT= 004000 L.EHG 000042 G
CSIZE 000000 DIAG2 = 000032 E$RMTL= 000013 FS.MSN= 014000 L.EHM 000044 G
CSTAT = 000034 DIAG3 = 000036 E$RNAK= 000032 FS.RNG= 011000 L.EMG 000046 G
CS.ABO= 000100 DISABL 001370R E$RNXM= 000002 FS.RTN= 001000 L.HKA 000052 G
CS.BUF= 000200 DL = 000004 E$ROVR= 000012 FS.SET= 005000 L.HPN 000041 G
CS.DCK= 177771 DLA = 000020 E$RPEC= 000022 FS.STM= 000000 L.ICB 000020 G
CS.DCR= 000400 DLV = 000004 E$RPEM= 000021 FS.STP= 002000 L.IVC 000002 G
CS.DEV= 000002 DLYCNT= 000000 E$RPET= 000020 FS.STR= 001000 L.LOG 000032 G
CS.DIS= 000040 DLYMSK= 037777 E$RPRC= 000025 FS.TRM= 003000 L.MKA 000054 G
CS.ENB= 000020 DMC = 000014 E$RPWF= 000007 FS.XKL= 002000 L.MPN 000040 G
CS.EOF= 000001 DON10C= 040000 E$RPWR= 000010 FS.XOF= 010000 L.PCQ 000034 G
DTE -- DTE20 DDM/DLC DRIVER FOR MACRO M1110 13-OCT-79 08:37 PAGE 35-2
SYMBOL TABLE
L.PSW 000030 G M$$OVR= 000000 PTYP 000032R TENAD1= 000010 UISDR4= 177610
L.RBA 000072 G NAME 000000 PTYPSZ 000002 TENAD2= 000012 UISDR5= 177612
L.RBZ 000100 G NPRSIZ 000002 P$$CHK= 000000 TMODE 000004 UISDR6= 177614
L.RCB 000070 G NREG = 000020 P$$DDC= 000001 TMOUT 001376R UISDR7= 177616
L.RCT 000076 G N$$LDV= 000001 P$$P45= 000000 TOPRCN 000000 UPDADR 003072R
L.RCV 000140 G N$$MOV= 000010 P$$WRD= 000000 TO10AD= 000020 V$$CTR= 001000
L.RCZ 000102 G N$$SYS= 000001 QCOUNT 000000 TO10BC= 000014 WTEXDP 002662R
L.RES 000145 G N$$USR= 000001 QSIZE = 000003 TO10BM= 000001 XDTDTN 000004
L.RFQ 000064 G PASS2 003700R QUERBF 003200R TO10CM= 007777 XMCMP 001500R
L.RLA 000074 G PATCH 003406RG Q$$OPT= 000010 TO10DB= 000400 XMENA 000150R
L.RPZ 000104 G PDID = 000024R RCENA 000172R TO10DN= 100000 XMRCKL 003122R
L.RQZ 000102 G PDST 000016R RCV 000002 TO10DT= 000024 XMTKIL 003254R
L.RST 000056 G PDT1 000022R RCVKIL 003126R TO10ER= 020000 XVR 000004
L.RTM 000106 G PDT2 000024R RELADR 000000 TO11AD= 000022 X$$BUG= 000000
L.SLN 000026 G PIDENT= 000000 RELOAD= 000004 TO11BC= 000016 X$$DBT= 000000
L.STS 000024 G PIRQ = 177772 RETRBF 003220R TO11BM= 020000 $ASCMP= ****** GX
L.TIM 000000 G PLIN = 000022R RM = 000010 TO11CM= 007777 $CCBGT= ****** GX
L.TLZ 000136 G PLNG 000026R R$$DER= 000000 TO11DB= 004000 $CCBRT= ****** GX
L.TMO 000144 G PMODE = 030000 R$$K11= 000001 TO11DN= 000200 $CMLOG= ****** GX
L.UNT 000001 G PNAM 000030R R$$SND= 000000 TO11DT= 000026 $CMQIN= ****** GX
L.XBA 000124 G PRCNUM 000003 R$$11M= 000000 TO11ER= 000002 $CMQRM= ****** GX
L.XBZ 000132 G PROPNT= 000001 SISDR0= 172200 TO11IB= 100000 $CNV18= ****** GX
L.XCB 000122 G PROVER 000003 SNPDAT 003550RG TPS = 177564 $CTCMP= ****** GX
L.XCT 000130 G PRSN 000020R SNPSHT 003506RG T$$KMG= 000000 $DDXMP= ****** GX
L.XLA 000126 G PRTDEP 002636R SPACE = 160000 T$$MIN= 000000 $DTEIS 000122RG
L.XMQ 000116 G PRTEXM 002606R SR0 = 177572 T10DON 001562R $DTELZ= 000146 G
L.XMT 000142 G PRTOFF= 004000 SR3 = 172516 T11DON 001674R $DTETB 000040RG
L.XQZ 000130 G PR0 = 000000 START 000334R UBMPR = 170200 $INTX7= ****** GX
L.XST 000110 G PR1 = 000040 STATUS= 000002 UDSAR0= 177660 $KLCMP= ****** GX
L.XTM 000134 G PR4 = 000200 STOP 001152R UDSDR0= 177620 $RCCMP= ****** GX
MPAR = 172100 PR5 = 000240 STRTRQ 002250R UISAR0= 177640 $RDBGT= ****** GX
MPCSR = 177746 PR6 = 000300 STRTXQ 002126R UISAR4= 177650 $RDBQP= ****** GX
MPE11 = 001000 PR7 = 000340 SWR = 177570 UISAR5= 177652 $RDBRT= ****** GX
M$$CRB= 000124 PS = 177776 S$$WRG= 000000 UISAR6= 177654 $RDBSZ= ****** GX
M$$CRX= 000000 PSIZE 000002 S$$YSZ= 007600 UISAR7= 177656 $RDBWT= ****** GX
M$$FCS= 000000 PSTA 000036R TENADM= 000177 UISDR0= 177600 $XMCMP= ****** GX
M$$MGE= 000000 PTAB 000034R
. ABS. 000146 000
003700 001
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 9913 WORDS ( 39 PAGES)
DYNAMIC MEMORY: 11116 WORDS ( 42 PAGES)
ELAPSED TIME: 00:01:38
DTE,[131,34]DTE/CR/-SP=[130,10]NETLIB/ML,RSXTMP/PA:1,[131,10]DTE
DTE CREATED BY MACRO ON 13-OCT-79 AT 08:38 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
ASYERR 003304 R 22-880 22-895 23-926 23-943 24-989 26-1109 30-1285 #33-1481
BIT0 = 000001 #7-105 8-196 8-197 8-199 17-562 17-619 17-625 17-686 18-748
20-811 24-980 25-1014 26-1075 33-1496 33-1498
BIT1 = 000002 #7-106 8-195 17-562 17-626 17-628 17-633 17-644 17-647 17-686
18-732 24-984 24-986
BIT10 = 002000 #7-115 8-185
BIT11 = 004000 #7-116 8-153 8-184
BIT12 = 010000 #7-117 8-152 8-183
BIT13 = 020000 #7-118 8-151 8-160 8-182
BIT14 = 040000 #7-119 8-145 8-151 8-181
BIT15 = 100000 #7-120 8-144 8-151 8-159 8-180
BIT2 = 000004 #7-107 8-194 17-560 17-686 24-984
BIT3 = 000010 #7-108 8-192 8-193 17-556 17-557
BIT4 = 000020 #7-109 8-191
BIT5 = 000040 #7-110 8-190
BIT6 = 000100 #7-111 8-178 8-189
BIT7 = 000200 #7-112 8-188
BIT8 = 000400 #7-113 8-187
BIT9 = 001000 #7-114 8-186
BPARER = 000020 #8-191 30-1280
BUSA16 = 040000 #8-145 31-1378
BUSA17 = 100000 #8-144
CHNPNT = 000001 #9-226
CMBYCT 003020 R 25-1033 26-1129 #31-1337
CNTRL 000222 R 11-296 #16-427
CNVADR 002742 R 25-1025 26-1119 #31-1302
CPKPLV = 000005 #9-260
CPQCNT 000001 #9-246 *25-1044
CSIZE 000000 #9-254
CSTAT = 000034 #8-179 *17-631 *18-718 22-883 22-891 23-929 23-939 *25-1042 *25-1043
*26-1152 *26-1153 29-1240 29-1241 29-1242 *29-1248 *29-1249 *29-1250 *30-1269
*30-1270 *31-1348 *31-1350 33-1529 34-1574
CS.ABO = 000100 18-740 32-1458
CS.DCK = 177771 #7-133 10-277 22-894 23-942
CS.HLT = 177776 #7-128 10-273 24-979
CS.PCK = 177770 #7-134 10-278 26-1108
CS.SRO = 177774 #7-130 10-274 24-987
CS.SUC = 000001 #7-125 15-410 17-499 17-656 18-761 19-778 22-902 23-950
CS.TDN = 177773 #7-131 10-275 30-1284
CS.TRE = 177772 #7-132 10-276 22-879 23-925
CTLCMP 000234 R 16-431 #16-456 20-819 21-861
CTLDSP 000070 R #11-314 16-469
C.BUF 000014 31-1310 31-1311
C.CNT 000020 25-1028 *26-1123
C.LIN 000006 *17-513 *32-1429
C.MOD 000011 16-466
DEP = 010000 #8-152 29-1251
DEPMYG 002604 R 20-817 28-1212 #28-1216
DEPMYH 002600 R 25-1041 27-1165 #28-1210
DEPSTS 002526 R 17-636 17-645 18-749 25-1049 #27-1161 33-1499
DEXDON = 000004 #8-194 30-1273
DEXWD1 = 000006 #8-149 29-1242 *29-1250
DTE CREATED BY MACRO ON 13-OCT-79 AT 08:38 PAGE 2
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
DEXWD2 = 000004 #8-148 29-1241 *29-1249
DEXWD3 = 000002 #8-147 29-1240 *29-1248
DIAG1 = 000030 #8-176
DIAG2 = 000032 #8-177 *17-631 *18-718
DIAG3 = 000036 #8-198 *25-1043 33-1531 33-1546 34-1561
DISABL 001370 R 11-326 #19-777
DLYCNT = 000000 #8-143 *31-1348 *31-1350 33-1529 33-1531 33-1546 34-1561
DLYMSK = 037777 #8-146
DON10C = 040000 #8-181 22-886
DON11C = 000100 #8-189 23-932
DORBEL 002016 R 20-802 21-857 #24-969
DRESET = 000100 #8-178 17-631 18-718
DTE = 000024 10-284
D$$BUG = 177514 31-1349 33-1482 33-1520
D$$CHK = 000000 #5-66 22-882 23-928
ENABLE 001370 R 11-325 #19-776
ERRTB 000000 R #10-272 10-279 10-284
ERRTBL = 000006 10-272 #10-279
ERR10C = 010000 #8-183 22-886
ERR11C = 000001 #8-197 23-932
EXMHSG 002552 R 17-590 #28-1186
EXMHSM 002560 R 17-601 17-617 24-976 26-1098 #28-1192
EXMMYG 002572 R 17-538 28-1200 #28-1204
EXMMYH 002566 R 17-552 17-585 #28-1198
E$DREG = 000001 34-1572
E$RPET = 000020 10-275
E$RPRC = 000025 10-278
E$RSIN = 000004 10-277
E$RSRC = 000015 10-274
E$RTRN = 000026 10-276
E$RUCL = 000001 10-273
E$THDW = 000003 10-284
FORPRO = 000000 #9-233
GETRBF 003126 R 17-655 32-1397 #32-1401
GET1BF 003136 R 26-1124 32-1403 32-1404 #32-1408
INTROF = 000010 #8-193 18-751
INTRON = 000040 #8-190 17-517 17-632
INTSON = 000001 #8-196
INT11C = 002000 #8-185 24-970
KILDSP 000062 R #11-306 15-409
KILL 000206 R 11-295 #15-408
KPALIV = 000005 #9-228 20-816
LDINVX 000004 #9-249 17-619 *17-625 17-626 17-628 *17-633 *17-644 17-647 18-731
*18-748 20-811 24-980 24-984 *24-986 25-1014 26-1075 33-1496 *33-1498
LGDAT = 000042 #10-283 10-284
LOGGIT 003610 R 33-1487 #34-1563
LS.ICB = 020000 G #10-269 17-509 17-515 18-754 18-759
LS.INI = 040000 G #10-269 17-502 17-624 17-649 18-752 20-809 24-971 24-982 33-1503
LS.RUN = 100000 G #10-269 17-650 18-752 20-809 24-971 33-1503
L.CST 000022 G #10-269 13-374 14-393 16-467 20-795 20-799 21-843
L.DMH 000050 G #10-269 *17-545 *17-571 28-1199 28-1211
L.EHG 000042 G #10-269 *17-588 28-1187
DTE CREATED BY MACRO ON 13-OCT-79 AT 08:38 PAGE 3
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
L.EHM 000044 G #10-269 *17-594 *17-608 28-1193
L.EMG 000046 G #10-269 *17-535 28-1205
L.HKA 000052 G #10-269
L.HPN 000041 G #10-269 *17-582
L.ICB 000020 G #10-269 *17-514 18-756 *21-842
L.IVC 000002 G #10-269
L.LOG 000032 G #10-269 34-1563
L.MKA 000054 G #10-269 20-813
L.MPN 000040 G #10-269 *17-529 17-603
L.PCQ 000034 G #10-269 16-428 16-464 16-472
L.PSW 000030 G #10-269 16-457 *16-462 *33-1491 *33-1494
L.RBA 000072 G #10-269 25-1031 26-1116 31-1303 *31-1378
L.RBZ 000100 G #10-269 18-743 26-1117 *26-1122 26-1123 31-1382
L.RCB 000070 G #10-269 18-720 31-1382
L.RCT 000076 G #10-269 23-933 26-1077 *31-1375 *31-1378
L.RCV 000140 G #10-269 *23-952 *23-954
L.RCZ 000102 G #10-269 18-731 *23-936 26-1137 26-1140
L.RES 000145 G #10-269 *32-1411 *32-1413
L.RFQ 000064 G #10-269 31-1303 32-1430 32-1439
L.RLA 000074 G #10-269 23-939 *31-1375
L.RPZ 000104 G #10-269 *23-935 26-1122
L.RQZ 000102 G #10-269 26-1082 26-1116
L.RST 000056 G #10-269 17-521 17-626 17-647 20-811 24-975 24-980 24-984 25-1014
26-1075 26-1090 26-1094
L.RTM 000106 G #10-269 26-1143
L.SLN 000026 G #10-269 16-459 17-513 32-1415 32-1429 32-1437 33-1490 34-1567
L.STS 000024 G #10-269 17-500 17-502 17-509 *17-515 *17-624 *17-649 *17-650 18-713
*18-752 18-754 *18-759 20-809 24-971 24-982 25-1012 26-1073 33-1488
*33-1503
L.TIM 000000 G #10-269
L.TLZ 000136 G #10-269
L.TMO 000144 G #10-269
L.UNT 000001 G #10-269 17-563
L.XBA 000124 G #10-269 25-1021 26-1127 31-1340
L.XBZ 000132 G #10-269 18-745 25-1023 *25-1028
L.XCB 000122 G #10-269
L.XCT 000130 G #10-269 22-887 25-1016 31-1340
L.XLA 000126 G #10-269 22-891
L.XMQ 000116 G #10-269 13-371 32-1454
L.XMT 000142 G #10-269 *22-904 *22-906
L.XQZ 000130 G #10-269
L.XST 000110 G #10-269 *17-625 17-628 *17-633 *17-634 *17-635 *17-644 18-731 *18-748
*24-986 *25-1044 26-1090 *26-1092 26-1094 27-1164 33-1496 *33-1498
L.XTM 000134 G #10-269
MPE11 = 001000 #8-186
M$$MGE = 000000 10-269 17-651 25-1030 26-1126 31-1308 31-1338 31-1376
NAME 000000 #9-219
NPRSIZ 000002 #9-220 17-672
NREG = 000020 #34-1561 34-1572 34-1573
PASS2 003700 R 16-431 17-678 28-1200 28-1212 29-1252 32-1392 32-1397 32-1404 #35-1584
PATCH 003406 RG #33-1521
PDID = 000024 R #10-286
DTE CREATED BY MACRO ON 13-OCT-79 AT 08:38 PAGE 4
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
PDST 000016 R #10-284 *34-1563 34-1568
PDT1 000022 R #10-284 10-285
PDT2 000024 R #10-284 10-286
PIDENT = 000000 #9-218
PLIN = 000022 R #10-285 *34-1567
PLNG 000026 R #10-284
PNAM 000030 R #10-284
PRCNUM 000003 #9-213 17-527
PROPNT = 000001 #9-242 17-584
PROVER 000003 #9-222
PRSN 000020 R #10-284 *34-1566
PRTDEP 002636 R 28-1218 #29-1247
PRTEXM 002606 R 17-524 28-1188 28-1194 28-1206 #29-1237
PRTOFF = 004000 #8-153
PSIZE 000002 #9-255
PSTA 000036 R #10-284
PTAB 000034 R #10-284
PTYP 000032 R #10-284
PTYPSZ 000002 #9-235 17-554
P$$CHK = 000000 #5-67 26-1093
QCOUNT 000000 #9-245 *17-634 26-1090 26-1090 *26-1092 26-1094 26-1094
QSIZE = 000003 #9-253 25-1040 26-1097
QUERBF 003200 R 14-392 32-1420 #32-1428
RCENA 000172 R 11-294 #14-391
RCV 000002 #9-247 *17-635
RCVKIL 003126 R 11-308 32-1392 #32-1396
RELADR 000000 #9-212
RELOAD = 000004 #9-258
RETRBF 003220 R 18-711 32-1402 #32-1436
RM = 000010 #8-192
SNPDAT 003550 RG 33-1530 #33-1545
SNPSHT 003506 RG 33-1483 33-1524 33-1524 33-1524 33-1524 33-1524 33-1524 33-1524 33-1524
33-1524 33-1524 33-1524 33-1524 33-1524 33-1524 33-1524 33-1524 33-1524
33-1524 33-1524 33-1524 33-1524 33-1524 33-1524 33-1524 33-1524 33-1524
33-1524 33-1524 33-1524 33-1524 33-1524 33-1524 #33-1525
SPACE = 160000 #8-151
START 000334 R 11-316 #17-498
STATUS = 000002 #9-244 17-616 24-973 27-1162
STOP 001152 R 11-317 #18-709
STRTRQ 002250 R 14-394 20-804 21-860 #26-1072
STRTXQ 002126 R 13-375 20-803 21-859 #25-1011
TENADM = 000177 #8-154
TENAD1 = 000010 #8-150 *30-1269
TENAD2 = 000012 #8-155 *30-1270
TMODE 000004 #9-256
TMOUT 001376 R 11-297 #20-792
TOPRCN 000000 #9-234
TO10AD = 000020 #8-162 22-891 *25-1042
TO10BC = 000014 #8-156 22-883
TO10BM = 000001 #8-199 25-1043
TO10CM = 007777 #8-157 22-883
TO10DB = 000400 #8-187 17-642 27-1166
DTE CREATED BY MACRO ON 13-OCT-79 AT 08:38 PAGE 5
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
TO10DN = 100000 #8-180 21-847
TO10DT = 000024 #8-164
TO10ER = 020000 #8-182 21-847
TO11AD = 000022 #8-163 23-939 *26-1152
TO11BC = 000016 #8-158 23-929 *26-1153
TO11BM = 020000 #8-160 26-1148 26-1151
TO11CM = 007777 #8-161 23-929 26-1151
TO11DB = 004000 #8-184 20-800 21-855
TO11DN = 000200 #8-188 21-851
TO11DT = 000026 #8-165
TO11ER = 000002 #8-195 21-851
TO11IB = 100000 #8-159 26-1136 26-1151
T10DON 001562 R 21-849 #22-877
T11DON 001674 R 21-853 #23-923
UPDADR 003072 R 22-889 23-937 #31-1373
WTEXDP 002662 R 29-1239 29-1252 #30-1268
XDTDTN 000004 #9-238 17-559
XMCMP 001500 R 11-298 #21-841
XMENA 000150 R 11-293 #13-370
XMRCKL 003122 R 11-307 #32-1390
XMTKIL 003254 R 11-309 18-710 32-1391 #32-1452
XVR 000004 #9-223
X$$BUG = 000000 #5-65
$ASCMP = ****** GX 16-460 33-1492
$CCBGT = ****** GX 17-511
$CCBRT = ****** GX 18-758
$CMLOG = ****** GX 34-1569
$CMQIN = ****** GX 13-373 16-430 32-1432
$CMQRM = ****** GX 16-474 31-1304 32-1442 32-1456
$CNV18 = ****** GX 31-1312
$CTCMP = ****** GX 16-477
$DDXMP = ****** GX 12-350
$DTEIS 000122 RG #12-344
$DTELZ = 000146 G #10-269
$DTETB 000040 RG #11-292
$INTX7 = ****** GX 12-354
$KLCMP = ****** GX 15-411
$RCCMP = ****** GX 23-951
$RDBGT = ****** GX 32-1409
$RDBQP = ****** GX 32-1438
$RDBRT = ****** GX 18-727 32-1444
$RDBSZ = ****** GX 26-1103
$RDBWT = ****** GX 32-1416
$XMCMP = ****** GX 18-741 22-903 32-1459
DTE CREATED BY MACRO ON 13-OCT-79 AT 08:38 PAGE 6
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
CALL #6-73 12-350 13-373 14-392 15-409 16-430 16-460 16-469 16-474 16-477
17-511 17-524 17-538 17-544 17-552 17-570 17-585 17-590 17-592 17-601
17-617 17-636 17-645 17-655 18-710 18-711 18-727 18-741 18-749 18-758
20-802 20-803 20-804 20-817 21-849 21-853 21-857 21-859 21-860 22-880
22-889 22-895 22-903 23-926 23-937 23-943 23-951 24-976 24-989 25-1025
25-1033 25-1041 25-1049 26-1098 26-1109 26-1119 26-1124 26-1129 27-1165 29-1239
30-1285 31-1304 31-1312 32-1391 32-1402 32-1403 32-1409 32-1420 32-1438 32-1442
32-1444 32-1456 32-1459 33-1483 33-1487 33-1492 33-1499 34-1569 34-1579
CALLR #6-83 #12-354 #13-375 #14-394 #15-411 #20-819 #21-861 #32-1416 #32-1432
CALLRB #6-89 #28-1188 #28-1194 #28-1206 #28-1218
CALLRX #6-95 #16-431 #17-678 #28-1200 #28-1212 #29-1252 #32-1392 #32-1397 #32-1404
CCBDF$ #6-73 6-74
CMLDF$ #6-73 #10-284
DEVDF #6-73 #10-267
DTEDF$ #6-73 10-269
EVLDF$ #6-73 10-268
HWDDF$ #6-73 6-75
RETURN #6-73 #16-479 #17-663 #17-690 #18-768 #19-779 #20-820 #22-908 #23-956 #24-991
#25-1051 #26-1155 #27-1167 #29-1243 #30-1289 #31-1324 #31-1363 #31-1384 #32-1422 #32-1448
#32-1463 #33-1506 #33-1541 #34-1581
SOB #30-1275 #33-1534
TMPDF$ #10-269 #10-269
$INTXT #6-73 #12-354
.BIN #10-269
.CNB #10-269
.CNW #10-269
.CORE #10-269
.CSR #10-269
.DVCHA #10-269
.INT #10-269 10-269
.INT1 #10-269
.INT2 #10-269
.INT3 #10-269
.LFLHD #10-269
.LIBR #10-269
.LINKS #10-269
.LSTHD #10-269 #10-269 #10-269 #10-269
.LTAB #10-269
.MPLHD #10-269
.POOL #10-269
.PRI #10-269
.SCOM #10-269
.SECSR #10-269
.SLNB #10-269
.SLNW #10-269
.STNB #10-269
.STNW #10-269
.UNB #10-269
.UNW #10-269
.VFY #10-269