Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/mcb/dtr.list
There are no other files named dtr.list in the archive.
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53
TABLE OF CONTENTS
7- 183 DTRTMO SERVICE A TIMEOUT REQUEST
8- 217 RCVCON RECIEVE A CONNECT REQUEST
9- 276 CONTST - CONNECT TEST
10- 356 DATTST - DATA TEST
11- 440 DISTST - DISCONNECT TEST
12- 557 XMITST - INTERRUPT TEST
13- 587 RCVDAT RECEIVE DATA
15- 738 RCVINT RECIEVE AN INTERRUPT MESSAGE
16- 827 RCVDIS RECIEVE A DISCONNECT
17- 849 GETCHN GET CHANNEL CONTROL BLOCK
18- 881 BUFFER FILL AND TEST ROUTINES
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 3
1 .TITLE DTR - SYSTEM INTERFACE VERSION
2 .IDENT /002010/
3 .ENABL LC
4 .NLIST BEX
5 ;
6 ; COPYRIGHT (C) 1977, 1978, 1979
7 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
8 ;
9 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
10 ; SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE
11 ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR
12 ; ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE
13 ; MADE AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH
14 ; SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE
15 ; TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN
16 ; IN DEC.
17 ;
18 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
19 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
20 ; EQUIPMENT CORPORATION.
21 ;
22 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF
23 ; ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
24 ;
25 ;
26 ; 2.00 19-JUL-79 ALAN D. PECKHAM
27 ; REWORKED FOR RELIABILITY
28 ; 2.01 27-JUL-79 ALAN D. PECKHAM
29 ; BUG IN DATA TEST RESULTED IN NO CONNECT ACCEPT WHEN NO FLOW CONTROL
30 ;
31 ; RSX-11M/S NETWORK TEST RECEIVER (DECNET V2)
32 ;
33 ;
34 ; MACRO LIBRARY CALLS
35 ;
36 .MCALL HWDDF$,CCBDF$,TMPDF$,NSPDF$
37 .MCALL NCON$,NACC$,NREJ$,NDAT$,NINT$,NRTN$,NRTI$,NMOD$
38 .MCALL NDIS$,NABO$,NXON$,GTLLA$,GTULA$
39 .MCALL $MVTBF,$MVFBF,MAP,EVLDF$,CMLDF$
40 000000 HWDDF$ ; DEFINE HARDWARE SYMBOLS
41 000000 CCBDF$ ; DEFINE CCB OFFSETS
42 000000 TMPDF$ ; DEFINE THE TEMPLATE DIRECTIVES
43 000000 NSPDF$ ; DEFINE THE NSP SYMBOLS
44 000000 EVLDF$ ; DEFINE EVENT LOGGING SYMBOLS
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 4
46 ;
47 ; LOCAL MACRO DEFINITIONS
48 ;
49 ;
50 ; PUSH AND POP STACK
51 ;
52 .MACRO PUSH S
53 .IRP SS,<S>
54 MOV SS,-(SP)
55 .ENDR
56 .ENDM PUSH
57
58 .MACRO POP D
59 .IRP DD,<D>
60 MOV (SP)+,DD
61 .ENDR
62 .ENDM POP
63 ;
64 ; REJECT A CONNECT DUE TO INVALID CONNECT DATA
65 ;
66 .MACRO REJECT TXT,PRM
67 $$$DSP=0
68 .IRP SS,<PRM>
69 MOV SS,PARAM+$$$DSP
70 $$$DSP=$$$DSP+2
71 .ENDR
72 .IF NB <TXT>
73 MOV TXT,R1
74 .ENDC
75 JMP REJECT
76 .ENDM REJECT
77
78 .MACRO DISPLAY TXT,PRM
79 $$$DSP=0
80 .IRP SS,<PRM>
81 MOV SS,PARAM+$$$DSP
82 $$$DSP=$$$DSP+2
83 .ENDR
84 .IF NB <TXT>
85 MOV TXT,R1
86 .ENDC
87 JSR PC,PRINT
88 .ENDM DISPLAY
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 5
90 ;
91 ; DTR DATA BASE DEFINITION
92 ;
93 000000 .ASECT
94 000000 . =0
95 000000 CHNLST: .LFLHD ; LINKED LIST OF CHANNEL CONTROL BLOCKS.
96 000004 NXTULA: .BLKB 1 ; NEXT ULA TO ASSIGN.
97 .EVEN
98 ;
99 ; CHANNEL CONTROL BLOCK DEFINITION
100 ;
101 000000 . =0
102 000000 .BLKW 1 ; LINK TO NEXT BLOCK.
103 000002 ULA: .BLKB 0 ; THE ULA OF THIS CHANNEL.
104 000002 STATUS: .BLKW 1 ; STATUS FLAGS:
105 100000 ACTIVE = 100000 ; THIS CHANNEL IS ACTIVE.
106 040000 INIT = 040000 ; THIS BLOCK IS INITIALIZED.
107 020000 PROPT = 020000 ; PRINT OPTION IS ON.
108 010000 XOFF = 010000 ; CHANNEL IS XOFF-ED
109 004000 DIP = 004000 ; DISCONNECT PENDING.
110 002000 NIP = 002000 ; NAK IN PROGRESS
111 ; 000377 ; (THE ULA SITS HERE)
112
113 000004 LLA: .BLKB 1 ; CORRESPONDING LLA.
114 000005 TST: .BLKB 1 ; THE TEST TYPE.
115 000006 SBTST: .BLKB 1 ; THE TEST SUBTYPE.
116 000007 FLOTYP: .BLKB 1 ; FLOW CONTROL TYPE.
117 000010 FLOCNT: .BLKW 1 ; THE FLOW COUNT REQUESTED.
118 000012 NAKCNT: .BLKB 1 ; THE NAK COUNT REQUESTED.
119 000013 BPCCNT: .BLKB 1 ; THE BACK-PRESSURE COUNT REQUESTED.
120 000014 MSGSIZ: .BLKW 1 ; THE MESSAGE SIZE.
121 000016 NAKNR: .BLKB 1 ; MSGS TO RCV BEFORE NAKING.
122 000017 BPCNR: .BLKB 1 ; MSGS TO RCV BEFORE APLYING BACK-PRESSURE.
123 000020 SNDNR: .BLKW 2 ; NUMBER OF LAST SENT DATA MESSAGE.
124 000024 RCVNR: .BLKW 2 ; NUMBER OF LAST RECIEVED DATA MESSAGE.
125 000030 RCVCNT: .BLKW 2 ; NUMBER OF MESSAGES RECIEVED.
126 000034 PATTRN: .BLKW 2 ; CURRENT PATTERN INFORMATION.
127
128 000014 . =MSGSIZ
129 000014 DSCLNG: .BLKW 1 ; LENGTH OF DISCONNCT DATA.
130 000016 DSCDAT: .BLKB 16. ; DISCONNECT DATA.
131 .IIF LT <PATTRN+4-.>,.ERROR .;CONTROL BLOCK OVERLAY ERROR
132
133 000000 .PSECT DATA,D
134 ;
135 ; EVENT LOGGING
136 ;
137 000000 CMLDF$ DTR,E$TSFT,LNG=<2+80.>
000000 000000 PDST: .WORD 0 ; LOGGING DESTINATION
000002 000000 PRSN: .WORD 0 ; " REASON
000004 177777 PDT1: .WORD -1 ; FORMAT DEPENDENT ARG #1
000006 177777 PDT2: .WORD -1 ; " " " #2
000010 000122 PLNG: .WORD 2+80. ; BYTES OF COROUTINE-ADDED INFO
000012 016062 PNAM: .RAD50 /DTR/ ; PROCESS NAME
000014 000004 PTYP: .WORD E$TSFT ; EVENT TYPE CODE
000016 000000 PTAB: .WORD ; ERROR CODE MAPPING TABLE
000020 000000 PSTA: .WORD 0 ; STATE WORD FOR USE BY $CMLOG
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 5-1
138 .EVEN
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 6
140 ;
141 ; MCB DISPATCH TABLE
142 ;
143 000022 .PSECT DATA,D
144 000022 000023' $DTRTB::.WORD .+1 ; FC.XME
145 000024 000025' .WORD .+1 ; FC.RCE
146 000026 000027' .WORD .+1 ; FC.KIL
147 000030 000031' .WORD .+1 ; FC.CTL
148 000032 000000' .WORD DTRTMO ; FC.TMO
149 000034 000044' .WORD DTRXCP ; FC.XCP
150 000036 000074' .WORD DTRRCP ; FC.RCP
151 000040 000041' .WORD .+1 ; FC.KCP
152 000042 000106' .WORD DTRCCP ; FC.CCP
153
154 000044 000173 000050' DTRXCP: JMP @10$(R3) ; DISPATCH REQUEST
155 000050 000051' 10$: .WORD .+1 ; NT$CON
156 000052 003266' .WORD DONDAT ; NT$DAT
157 000054 003656' .WORD DONINT ; NT$INT
158 000056 000057' .WORD .+1
159 000060 002142' .WORD DONDIS ; NT$DIS
160 000062 000000G .WORD $CCBRT ; NT$MOD
161 000064 000065' .WORD .+1 ; NT$QRY
162 000066 000000G .WORD $CCBRT ; NT$XON
163 000070 000000G .WORD $CCBRT ; NT$XOF
164 000072 002142' .WORD DONABO ; NT$ABO
165
166 000074 000173 000100' DTRRCP: JMP @10$(R3) ; DISPATCH REQUEST
167 000100 000206' 10$: .WORD RCVCON ; NT$CON
168 000102 002376' .WORD RCVDAT ; NT$DAT
169 000104 003324' .WORD RCVINT ; NT$INT
170
171 000106 000173 000112' DTRCCP: JMP @10$(R3) ; DISPATCH REQUEST
172 000112 000113' 10$: .WORD .+1 ; FS.INI
173 000114 000115' .WORD .+1 ; FS.STR
174 000116 000117' .WORD .+1 ; FS.STP
175 000120 000121' .WORD .+1 ; FS.TRM
176 000122 003714' .WORD RCVDIS ; NT$DIS
177 000124 000125' .WORD .+1 ;
178 000126 000127' .WORD .+1 ;
179 000130 000000G .WORD $CCBRT ; NT$XON
180 000132 000000G .WORD $CCBRT ; NT$XOF
181 000134 002756' .WORD DONNAK ; NT$NAK
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 7
DTRTMO SERVICE A TIMEOUT REQUEST
183 .SBTTL DTRTMO SERVICE A TIMEOUT REQUEST
184 ;
185 ; USED TO COMPLETE A DISCONNECT
186 ;
187 000000 .PSECT CODE,I
188 000000 016505 000000 DTRTMO: MOV CHNLST(R5),R5 ; GET FIRST CHANNEL
189 000004 001477 BEQ 90$ ; IF THERE IS ONE.
190 000006 032765 100000 000002 10$: BIT #ACTIVE,STATUS(R5) ; IF NOT ACTIVE
191 000014 001471 BEQ 80$ ; THEN IGNORE THE CHANNEL.
192 000016 032765 010000 000002 BIT #XOFF,STATUS(R5) ; IF BACKPRESSURED
193 000024 001441 BEQ 30$ ; THEN
194 000026 105365 000017 DECB BPCNR(R5) ; COUNT THE SECONDS
195 000032 001036 BNE 30$ ; AND IF TIME TO XON
196 000034 CALL $CCBGT ; THEN TRY FOR A CCB.
197 000040 103003 BCC 20$ ; IF NONE AVAILABLE
198 000042 105265 000017 INCB BPCNR(R5) ; BUMP THE COUNT
199 000046 000430 BR 30$ ; AND TRY LATER.
200 000050 20$: NXON$ LLA(R5) ; RE-ENABLE THE CHANNEL
201 000076 042765 010000 000002 BIC #XOFF,STATUS(R5) ; MODIFY THE STATUS
202 000104 116500 000013 MOVB BPCCNT(R5),R0
203 000110 100005 BPL 25$
204 000112 012700 000144 MOV #100.,R0
205 000116 CALL $RND
206 000122 005200 INC R0
207 000124 110065 000017 25$: MOVB R0,BPCNR(R5) ; AND RESET THE COUNT.
208 000130 032765 004000 000002 30$: BIT #DIP,STATUS(R5) ; IF DISCONNECT IN PROGRESS
209 000136 001420 BEQ 80$ ; THEN
210 000140 016504 000014 MOV DSCLNG(R5),R4 ; GET DISCONNECT CCB
211 000144 NDIS$ LLA(R5) ; AND TRY IT AGAIN.
212 000172 042765 004000 000002 BIC #DIP,STATUS(R5)
213 000200 011505 80$: MOV (R5),R5 ; IF THERE IS ANOTHER CHANNEL
214 000202 001301 BNE 10$ ; THEN CHECK IT OUT.
215 000204 90$: RETURN
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 8
RCVCON RECIEVE A CONNECT REQUEST
217 .SBTTL RCVCON RECIEVE A CONNECT REQUEST
218 ;
219 ; RECEIVED A CONNECT REQUEST
220 ;
221 000000 .PSECT TEXT,D
222 000000 116 157 040 NOCCB: .ASCIZ \No room for new connection\
223 000033 122 145 163 NORSC: .ASCIZ \Resources not available\
224 000063 111 156 166 INVTST: .ASCIZ \Invalid test type: \<P$D>
225 000110 111 156 163 SHTDAT: .ASCIZ \Insufficient optional data on connect\
226
227 000206 .PSECT CODE,I
228 000206 010501 RCVCON: MOV R5,R1 ; SAVE DATA BASE ADDRESS
229 000210 062705 000000 ADD #CHNLST,R5 ; ADDRESS OF CONTROL BLOCK LIST.
230 000214 011505 10$: MOV (R5),R5 ; POINT TO NEXT ENTRY
231 000216 001453 BEQ 90$ ; IF THERE IS ONE
232 000220 032765 100000 000002 BIT #ACTIVE,STATUS(R5) ; ALREADY IN USE?
233 000226 001372 BNE 10$ ; IF SO, TRY NEXT.
234 000230 032765 040000 000002 BIT #INIT,STATUS(R5) ; IF NOT INITIALIZED
235 000236 001010 BNE 20$ ; THEN
236 000240 105261 000004 INCB NXTULA(R1) ; UPDATE THE ULA COUNT
237 000244 116165 000004 000002 MOVB NXTULA(R1),ULA(R5) ; AND ASSIGN THE NEXT ULA.
238 000252 052765 040000 000002 BIS #INIT,STATUS(R5) ; NOW INITIALIZED.
239 000260 20$: GTLLA$ LLA(R5)
240 000266 MAP C.BUF(R4) ; MAP TO CONNECT BLOCK
241 000274 016402 000016 MOV C.BUF+2(R4),R2 ; GET ADDRESS
242 000300 062702 000136 ADD #N.OPDL,R2 ; OF OPTIONAL DATA
243 000304 012203 MOV (R2)+,R3 ; AND LENGTH.
244 000306 CALL GETB ; GET THE TEST TYPE
245 000312 100005 BPL 30$ ; PRINT OPTION SPECIFIED?
246 000314 052765 020000 000002 BIS #PROPT,STATUS(R5) ; YES
247 000322 042701 177600 BIC #^C177,R1 ; MAKE TEST TYPE POS
248 000326 122701 000004 30$: CMPB #NRTST,R1 ; VALIDATE UPPER BOUND
249 000332 101411 BLOS 91$ ; IF OKAY,
250 000334 006301 ASL R1 ; MAKE A WORD OFFSET
251 000336 110165 000005 MOVB R1,TST(R5) ; SAVE IT
252 000342 000171 000372' JMP @TEST(R1) ; AND DISPATCH TO TEST.
253 000346 90$: REJECT #NOCCB
254 000356 91$: REJECT #INVTST,<R1>
255
256 000372 000446' TEST: .WORD CONTST ; CONNECT TEST
257 000374 000762' .WORD DATTST ; DATA TEST
258 000376 001502' .WORD DISTST ; DISCONNECT TEST
259 000400 002222' .WORD XMITST ; INTERRUPT TEST
260 000004 NRTST =.-TEST/2
261
262 000402 .PSECT CODE,I
263 000402 005303 GETB: DEC R3 ; IF MORE DATA
264 000404 002403 BLT 10$ ; THEN
265 000406 005001 CLR R1
266 000410 152201 BISB (R2)+,R1 ; GET THE NEXT BYTE.
267 000412 RETURN
268 000414 005726 10$: TST (SP)+
269 000416 REJECT #SHTDAT ; SAY DATA MISSING.
270
271 000426 RESOURCE: REJECT #NORSC ; SAY NO RESOURCES.
272
273 000436 REJECT: DISPLAY ; DISPLAY THE MESSAGE
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 8-1
RCVCON RECIEVE A CONNECT REQUEST
274 000442 000167 000060 JMP CONN0 ; AND DO A CONNECT REJECT.
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 9
CONTST - CONNECT TEST
276 .SBTTL CONTST - CONNECT TEST
277 ;
278 ; GET CONNECT SUBTYPE TEST
279 ;
280 000156 .PSECT TEXT,D
281 000156 111 156 166 INVCON: .ASCIZ \Invalid CONNECT test type: \<P$D>
282
283 000446 .PSECT CODE,I
284 000446 CONTST: CALL GETB ; GET THE CONNECT TYPE
285 000452 122701 000006 CMPB #NRCON,R1 ; VALIDATE UPPER BOUND
286 000456 101407 BLOS 90$ ; IF OKAY,
287 000460 006301 ASL R1 ; MAKE WORD OFFSET
288 000462 110165 000006 MOVB R1,SBTST(R5)
289 000466 016402 000016 MOV C.BUF+2(R4),R2 ; RE-POINT TO DATA
290 000472 000171 000512' JMP @CONTYP(R1) ; DO THE TEST
291 000476 90$: REJECT #INVCON,<R1> ; INVALID CONNECT TEST TYPE.
292
293 000512 CONTYP:
294 000512 000526' .WORD CONN0 ; REJECT WITH NO USER DATA
295 000514 000532' .WORD CONN1 ; ACCEPT WITH NO USER DATA
296 000516 000536' .WORD CONN2 ; REJECT WITH STANDARD USER DATA
297 000520 000544' .WORD CONN3 ; ACCEPT WITH STANDARD USER DATA
298 000522 000552' .WORD CONN4 ; REJECT WITH RECEIVED USER DATA
299 000524 000622' .WORD CONN5 ; ACCEPT WITH RECEIVED USER DATA
300 000006 NRCON =.-CONTYP/2
301
302 .ENABL LSB
303 ;
304 ; REJECT WITH NO USER DATA
305 ;
306 000526 005001 CONN0: CLR R1 ; NO OPTIONAL DATA
307 000530 000412 BR 10$ ; GO DO THE REJECT.
308 ;
309 ; ACCEPT WITH NO USER DATA
310 ;
311 000532 005001 CONN1: CLR R1 ; NO OPTIONAL DATA
312 000534 000434 BR 20$ ; GO DO THE ACCEPT.
313 ;
314 ; REJECT WITH STANDARD USER DATA
315 ;
316 000536 CONN2: CALL FILSTD ; INSERT STANDARD OPTIONAL DATA
317 000542 000405 BR 10$ ; ISSUE THE REJECT
318 ;
319 ; ACCEPT WITH STANDARD USER DATA
320 ;
321 000544 CONN3: CALL FILSTD ; INSERT STANDARD OPTIONAL DATA
322 000550 000426 BR 20$ ; DO THE ACCEPT
323 ;
324 ; CONNECT REJECT WITH RECEIVED USER DATA
325 ;
326 000552 CONN4: CALL FILRCV ; COPY RECIEVED DATA
327
328 000556 10$: NREJ$ R1
329 000620 RETURN
330 ;
331 ; CONNECT ACCEPT WITH RECEIVED USER DATA
332 ;
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 9-1
CONTST - CONNECT TEST
333 000622 CONN5: CALL FILRCV ; COPY RECIEVED DATA
334
335 000626 052765 100000 000002 20$: BIS #ACTIVE,STATUS(R5) ; INDICATE LINE ACTIVE
336 000634 NACC$ ULA(R5),#NT.MFL,R1
337 000712 RETURN
338
339 .DSABL LSB
340
341 000714 012701 004210' FILSTD: MOV #SDATA,R1 ; DATA GENERATION COROUTINE ADDR
342 000720 012703 000020 MOV #16.,R3 ; BUFFER LENGTH
343 000724 CALL FILBUF ; GET THE DATA
344 000730 012701 000020 MOV #16.,R1 ; DATA LENGTH
345 000734 RETURN
346
347 000736 010203 FILRCV: MOV R2,R3 ; COPY BUFFER ADDRESS
348 000740 062703 000136 ADD #N.OPDL,R3 ; AND POINT TO OPT DATA INFO
349 000744 012301 MOV (R3)+,R1 ; IF THERE IS DATA
350 000746 001404 BEQ 90$ ; THEN
351 000750 010100 MOV R1,R0
352 000752 112322 10$: MOVB (R3)+,(R2)+ ; COPY IT OVER.
353 000754 SOB R0,10$
354 000760 90$: RETURN
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 10
DATTST - DATA TEST
356 .SBTTL DATTST - DATA TEST
357 ;
358 ; GET TYPE OF DATA TEST
359 ; INPUTS:
360 ; R2=>ADDRESS OF NEXT BYTE OF CONNECT DATA
361 ; R3=>COUNT OF CONNECT DATA LEFT
362 ; R5=>LOGICAL LINK'S DATA BASE
363 ;
364 000213 .PSECT TEXT,D
365 000213 111 156 166 INVDAT: .ASCIZ \Invalid data test type: \<P$D>
366 000245 111 156 166 INVFLO: .ASCIZ \Invalid flow control request: \<P$D>
367 000305 111 156 166 INVCNT: .ASCIZ \Invalid flow count: \<P$D>
368 000333 111 156 166 INVNAK: .ASCIZ \Invalid NAK frequency: \<P$D>
369 000364 111 156 166 INVBPC: .ASCIZ \Invalid back-pressure frequency: \<P$D>
370 000427 111 156 166 INVBUF: .ASCIZ \Invalid message length: \<P$D>
371
372 000762 .PSECT CODE,I
373 000762 DATTST: CALL GETB ; TYPE OF DATA TEST FIELD
374 000766 122701 000004 CMPB #NRDAT,R1 ; VALIDATE UPPER BOUND
375 000772 101565 BLOS 91$ ; IF OKAY.
376 000774 006301 ASL R1 ; MAKE WORD OFFSET
377 000776 110165 000006 MOVB R1,SBTST(R5) ; SAVE FOR RECEIVE AST
378 001002 CALL GETB ; GET FLOW CONTROL
379 001006 022701 000002 CMP #2,R1 ; WITHIN RANGE ?
380 001012 103563 BLO 92$ ; IF NOT, COMPLAIN.
381 001014 006301 ASL R1 ; MAKE INTO INDEX
382 001016 110165 000007 MOVB R1,FLOTYP(R5) ; SAVE IT
383 001022 016164 001464' 000012 MOV 100$(R1),C.STS(R4) ; AND SET FLOW CONTROL.
384 001030 CALL GETB ; GET THE FLOW COUNT
385 001034 010165 000010 MOV R1,FLOCNT(R5) ; NUMBER OF BUFFERS FOR MSG FLOW CNTRL
386 001040 001556 BEQ 93$
387 001042 CALL GETB ; GET NAK FREQUENCY COUNT.
388 001046 110165 000012 MOVB R1,NAKCNT(R5)
389 001052 122701 000200 CMPB #128.,R1
390 001056 101007 BHI 40$
391 001060 001154 BNE 94$
392 001062 012700 000026 MOV #22.,R0
393 001066 CALL $RND
394 001072 005200 INC R0
395 001074 010001 MOV R0,R1
396 001076 110165 000016 40$: MOVB R1,NAKNR(R5)
397 001102 CALL GETB ; BACK PRESSURE?
398 001106 110165 000013 MOVB R1,BPCCNT(R5)
399 001112 122701 000200 CMPB #128.,R1
400 001116 101007 BHI 50$
401 001120 001142 BNE 95$
402 001122 012701 000144 MOV #100.,R1
403 001126 CALL $RND
404 001132 005200 INC R0
405 001134 010001 MOV R0,R1
406 001136 110165 000017 50$: MOVB R1,BPCNR(R5)
407 001142 CALL GETB
408 001146 110165 000014 MOVB R1,MSGSIZ+0(R5) ; PICK UP
409 001152 CALL GETB
410 001156 110165 000015 MOVB R1,MSGSIZ+1(R5) ; DTS MESSAGE SIZE
411 001162 116500 000006 MOVB SBTST(R5),R0 ; GET DATA TEST TYPE
412 001166 026065 001472' 000014 CMP 110$(R0),MSGSIZ(R5) ; AND VALIDATE MINIMUM MESSAGE LENGTH.
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 10-1
DATTST - DATA TEST
413 001174 101122 BHI 96$ ; REPRIMAND IF BAD.
414 001176 CALL DATINI ; INITIALIZE VARIABLES.
415 001202 005001 CLR R1 ; SET NO FLOW CCB.
416 001204 116500 000007 MOVB FLOTYP(R5),R0 ; IF FLOW CONTROL
417 001210 001406 BEQ 70$ ; THEN
418 001212 010403 MOV R4,R3 ; SAVE CONNECT CCB
419 001214 CALL $CCBGT ; AND TRY FOR A FLOW CCB.
420 001220 010401 MOV R4,R1 ; SAVE IF GOTTEN
421 001222 010304 MOV R3,R4 ; AND RESTORE CONNECT CCB.
422 001224 103515 BCS 97$ ; REJECT IF COULD NOT GET.
423 001226 052765 100000 000002 70$: BIS #ACTIVE,STATUS(R5) ; INDICATE LINK ACTIVE
424 001234 NACC$ ULA(R5),,#0
425 001304 010104 MOV R1,R4 ; GET FLOW CCB
426 001306 001416 BEQ 80$ ; IF THERE IS ONE
427 001310 NMOD$ LLA(R5),FLOCNT(R5) ; AND SET THE FLOW COUNT.
428 001344 80$: RETURN
429 001346 91$: REJECT #INVDAT,<R1> ; INVALID DATA TEST TYPE.
430 001362 92$: REJECT #INVFLO,<R1> ; INVALID FLOW CONTROL.
431 001376 93$: REJECT #INVCNT,<R1> ; INVALID FLOW COUNT.
432 001412 94$: REJECT #INVNAK,<R1> ; INVALID NAK FREQUENCY.
433 001426 95$: REJECT #INVBPC,<R1> ; INVALID BACK-PRESSURE.
434 001442 96$: REJECT #INVBUF,<MSGSIZ(R5)> ; INVALID MESSAGE SIZE.
435 001460 000167 176742 97$: JMP RESOURCE
436
437 001464 000000 000001 000002 100$: .WORD NT.NFL,NT.SFL,NT.MFL ; FLOW CONTROL FLAGS.
438 001472 000001 000004 000005 110$: .WORD 1,4,5,1 ; MINIMUM MESSAGE SIZES.
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 11
DISTST - DISCONNECT TEST
440 .SBTTL DISTST - DISCONNECT TEST
441 ;
442 ; GET DISCONNECT SUBTYPE TEST
443 ; INPUTS:
444 ; R2=>ADDRESS OF NEXT BYTE OF CONNECT DATA
445 ; R3=>COUNT OF CONNECT DATA LEFT
446 ; R5=>LOGICAL LINK'S DATA BASE
447 ;
448 000461 .PSECT TEXT,D
449 000461 111 156 166 INVDIS: .ASCIZ \Invalid disconnect test type: \<P$D>
450
451 001502 .PSECT CODE,I
452 001502 DISTST: CALL GETB ; DISCONNECT TYPE OF TEST
453 001506 122701 000005 CMPB #NRDIS,R1 ; VALIDATE UPPER BOUND
454 001512 101475 BLOS 91$ ; IF OKAY,
455 001514 006301 ASL R1 ; MAKE A WORD OFFSET
456 001516 110165 000006 MOVB R1,SBTST(R5) ; HOLD THIS FOR A BIT
457 001522 122701 000010 CMPB #<4*2>,R1 ; RCVD DATA TEST?
458 001526 101015 BHI 30$ ; NO ON BR
459 001530 016402 000016 MOV C.BUF+2(R4),R2
460 001534 062702 000136 ADD #N.OPDL,R2 ; POINT AT USER DATA
461 001540 012203 MOV (R2)+,R3 ; LENGTH OF DATA
462 001542 010365 000014 MOV R3,DSCLNG(R5) ; SAVE LENGTH
463 001546 012700 000016 MOV #DSCDAT,R0 ; POINT AT SAVE AREA
464 001552 060500 ADD R5,R0
465 001554 112220 20$: MOVB (R2)+,(R0)+ ; SAVE THE DATA
466 001556 SOB R3,20$ ; KEEP GOING?
467 001562 010403 30$: MOV R4,R3 ; SAVE CONNECT CCB
468 001564 CALL $LDBGT ; AND TRY FOR DISCONNECT CCB.
469 001570 010401 MOV R4,R1 ; COPY RETURNED CCB
470 001572 010304 MOV R3,R4 ; RESTORE ORIGINAL
471 001574 103452 BCS 92$ ; AND REJECT CONNECT IF NO HOPE.
472 001576 052765 100000 000002 BIS #ACTIVE,STATUS(R5) ; INDICATE LINK ACTIVE
473 001604 NACC$ ULA(R5),#NT.NFL,#0
474 001662 010104 MOV R1,R4 ; GET DISCONNECT CCB.
475 001664 MAP C.BUF(R4) ; MAP AND
476 001672 016402 000016 MOV C.BUF+2(R4),R2 ; POINT TO ITS BUFFER.
477 001676 116501 000006 MOVB SBTST(R5),R1 ; TYPE OF DISCONNECT TEST TO PERFORM
478 001702 000171 001726' JMP @DISTYP(R1) ; DO IT
479 001706 91$: REJECT #INVDIS,<R1> ; INVALID DISCONNECT TEST TYPE
480 001722 000167 176500 92$: JMP RESOURCE
481
482 001726 001740' DISTYP: .WORD DIS0 ; DISCONNECT WITH NO USER DATA
483 001730 001744' .WORD DIS1 ; ABORT WITH NO USER DATA
484 001732 001750' .WORD DIS2 ; DISCONNECT WITH STANDARD MESSAGE
485 001734 001756' .WORD DIS3 ; ABORT WITH STANDARD MESSAGE
486 001736 001764' .WORD DIS4 ; DSC WITH RECEIVED DATA
487 ;* .WORD DIS5 ; ABO WITH RECEIVED DATA
488 000005 NRDIS =.-DISTYP/2
489
490 .ENABL LSB
491 ;
492 ; DISCONNECT WITH NO USER DATA
493 ;
494 001740 005001 DIS0: CLR R1 ; NO DATA
495 001742 000412 BR 10$ ; DO THE DISCONNECT
496 ;
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 11-1
DISTST - DISCONNECT TEST
497 ; ABORT WITH NO USER DATA
498 ;
499 001744 005001 DIS1: CLR R1 ; NO DATA
500 001746 000430 BR 20$ ; DO THE ABORT
501 ;
502 ; DISCONNECT WITH STANDARD USER DATA
503 ;
504 001750 DIS2: CALL DSCSTD ; INIT AND FILL BUFFER
505 001754 000405 BR 10$
506 ;
507 ; ABORT WITH STANDARD USER DATA
508 ;
509 001756 DIS3: CALL DSCSTD ; INIT AND FILL BUFFER
510 001762 000422 BR 20$
511
512 ;
513 ; DISCONNECT WITH RECEIVED DATA
514 ;
515 001764 DIS4: CALL DSCRCV
516 001770 10$: NDIS$ LLA(R5),<,,R1>
517 002022 RETURN
518 ;
519 ; ABORT WITH RECEIVED DATA
520 ;
521 002024 DIS5: CALL DSCRCV
522 002030 20$: NABO$ ULA(R5)
523 002072 RETURN
524
525 .DSABL LSB
526
527 002074 012701 004210' DSCSTD: MOV #SDATA,R1 ; ADDRESS OF COROUTINE TO GEN DATA
528 002100 012703 000020 MOV #16.,R3 ; 16 BYTES WORTH
529 002104 CALL FILBUF ; DO IT!
530 002110 012701 000020 MOV #16.,R1 ; LENGTH OF STANDARD DATA
531 002114 RETURN
532
533 002116 012703 000014 DSCRCV: MOV #DSCLNG,R3 ; POINT AT RCVD DATA INFO
534 002122 060503 ADD R5,R3
535 002124 012301 MOV (R3)+,R1 ; LENGTH OF USER DATA TO TRANSFER.
536 002126 001404 BEQ 90$ ; IF THERE IS SOMETHING
537 002130 010100 MOV R1,R0 ; THEN SAVE LENGTH
538 002132 112322 25$: MOVB (R3)+,(R2)+ ; AND COPY IT IN.
539 002134 SOB R0,25$
540 002140 90$: RETURN
541
542 002142 DONABO:
543 002142 DONDIS: CALL GETCHN ; GET CHANNEL CONTROL BLOCK
544 002146 105764 000012 TSTB C.STS(R4) ; IF NOT SUCCESSFUL
545 002152 100006 BPL 10$ ; THEN
546 002154 010465 000014 MOV R4,DSCLNG(R5) ; SAVE THE CCB
547 002160 052765 004000 000002 BIS #DIP,STATUS(R5) ; AND INDICATE WE ARE WAITING.
548 002166 RETURN
549 002170 042765 100000 000002 10$: BIC #ACTIVE,STATUS(R5) ; AND CLEAR ACTIVE FLAG.
550 002176 132764 000002 000003 BITB #CB.CCB,C.BID(R4)
551 002204 001403 BEQ 70$
552 002206 CALL $CCBRT ; RETURN THE CCB AND LEAVE.
553 002212 RETURN
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 11-2
DISTST - DISCONNECT TEST
554 002214 70$: CALL $LDBRT
555 002220 RETURN
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 12
XMITST - INTERRUPT TEST
557 .SBTTL XMITST - INTERRUPT TEST
558 ;+
559 ; GET THE TYPE OF INTERRUPT TEST
560 ;
561 ; INPUTS:
562 ; R2=>ADDRESS OF NEXT BYTE OF CONNECT DATA
563 ; R3=>COUNT OF CONNECT DATA LEFT
564 ; R5=>LOGICAL LINK'S DATA BASE
565 ;-
566 000521 .PSECT TEXT,D
567 000521 111 156 166 INVXMI: .ASCIZ \Invalid interrupt test type: \<P$D>
568 000560 111 156 164 BADFLO: .ASCIZ \Interrupt flow count must be one\
569
570 002222 .PSECT CODE,I
571 002222 XMITST: CALL GETB ; TYPE OF INTERRUPT TEST
572 002226 122701 000004 CMPB #NRXMI,R1 ; VALIDATE UPPER BOUND
573 002232 101447 BLOS 91$
574 002234 006301 ASL R1 ; MAKE A WORD OFFSET
575 002236 110165 000006 MOVB R1,SBTST(R5) ; SAVE FOR AST
576 002242 105065 000007 CLRB FLOTYP(R5) ; NO FLOW CONTROL
577 002246 CALL GETB ; GET FLOW COUNT
578 002252 122701 000001 CMPB #1,R1 ; ONLY ALLOW FLOW OF 1
579 002256 001043 BNE 92$
580 002260 CALL DATINI ; INITIALIZE VARIABLES.
581 002264 052765 100000 000002 BIS #ACTIVE,STATUS(R5) ; DENOTE LINK IN USE
582 002272 NACC$ ULA(R5),#NT.NFL,#0
583 002350 RETURN
584 002352 91$: REJECT #INVXMI,<R1> ; INVALID INTERRUPT TEST TYPE.
585 002366 92$: REJECT #BADFLO ; INVALID FLOW COUNT.
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 13
RCVDAT RECEIVE DATA
587 .SBTTL RCVDAT RECEIVE DATA
588 ;+
589 ; THIS IS USED BY THE DATA TEST
590 ;-
591 002376 .PSECT CODE,I
592 002376 RCVDAT: CALL GETCHN ; GET CHANNEL CONTROL BLOCK.
593 002402 005001 CLR R1
594 002404 032765 002000 000002 BIT #NIP,STATUS(R5) ; IF NAK IN PROGRESS
595 002412 001120 BNE 80$ ; THEN RETURN THE BUFFER.
596 002414 012701 000001 MOV #NT.ACK,R1 ; ASSUME AN ACK
597 002420 122765 000002 000005 CMPB #<1*2>,TST(R5) ; IF NOT THE DATA TEST
598 002426 001112 BNE 80$ ; THEN IGNORE.
599 002430 116500 000012 MOVB NAKCNT(R5),R0
600 002434 001403 BEQ 10$
601 002436 105365 000016 DECB NAKNR(R5)
602 002442 001522 BEQ 90$
603 002444 062765 000001 000030 10$: ADD #1,RCVCNT(R5) ; NUMBER OF SEGMENTS (?) RECEIVED
604 002452 005565 000032 ADC RCVCNT+2(R5)
605 002456 MAP C.BUF(R4) ; MAP TO AND
606 002464 016402 000016 MOV C.BUF+2(R4),R2 ; POINT AT BUFFER
607 002470 116500 000006 MOVB SBTST(R5),R0 ; OFFSET TO TEST TYPE
608 002474 CALL @DATTYP(R0) ; DO THE TEST
609 002500 103026 BCC 20$ ; IF TEST FAILED
610 002502 010403 MOV R4,R3 ; SAVE CCB/BUFFER
611 002504 CALL $CCBGT ; AND GET A CCB
612 002510 103421 BCS 18$ ; IF WE CAN.
613 002512 NABO$ ULA(R5) ; ABORT THE LINK !!!
614 002554 010304 18$: MOV R3,R4
615 002556 012701 000001 20$: MOV #NT.ACK,R1 ; ACK THE SEGMENT.
616 002562 105765 000013 TSTB BPCCNT(R5) ; IF BACKPRESSURE ACTIVE
617 002566 001417 BEQ 40$ ; THEN
618 002570 105365 000017 DECB BPCNR(R5) ; CHECK IF TIME TO X-OFF.
619 002574 001014 BNE 40$ ; IF SO,
620 002576 052765 010000 000002 BIS #XOFF,STATUS(R5) ; DO BOOKEEPING
621 002604 052701 000004 BIS #NT.XOF,R1 ; AND LEAVE X-OFFED
622 002610 012700 000144 MOV #100.,R0 ; FOR A MAXIMUM OF 100. SECONDS.
623 002614 CALL $RND
624 002620 005200 INC R0
625 002622 110065 000017 MOVB R0,BPCNR(R5)
626 002626 116500 000007 40$: MOVB FLOTYP(R5),R0 ; GET FLOW TYPE
627 002632 001410 BEQ 80$ ; AND IF REQUIRED
628 002634 022700 000002 CMP #<1*2>,R0
629 002640 103003 BHIS 60$ ; THEN CHECK STATUS
630 002642 CALL EOMCHK ; FOR END OF MESSAGE.
631 002646 001002 BNE 80$ ; IF SO,
632 002650 052701 000420 60$: BIS #NT.MD1,R1 ; BUMP THE FLOW COUNT.
633 002654 80$: NRTN$ LLA(R5),R1
634 002706 RETURN
635
636 002710 052765 002000 000002 90$: BIS #NIP,STATUS(R5) ; DO BOOKEEPING
637 002716 012701 000002 MOV #NT.NAK,R1 ; AND SET TO NAK.
638 002722 105700 TSTB R0 ; IF A RANDOM NAK
639 002724 100005 BPL 96$ ; THEN
640 002726 012700 000026 MOV #22.,R0 ; PICK UP ANOTHER
641 002732 CALL $RND ; RANDOM NUMBER.
642 002736 005200 INC R0
643 002740 110065 000016 96$: MOVB R0,NAKNR(R5) ; NEXT VICTIM AFTER THIS MANY.
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 13-1
RCVDAT RECEIVE DATA
644 002744 000743 BR 80$
645
646 002746 DATTYP:
647 002746 002774' .WORD DAT0 ; DATA SINK
648 002750 003000' .WORD DAT1 ; SEQUENCE CHECK
649 002752 003002' .WORD DAT2 ; PATTERN AND SEQUENCE CHECK
650 002754 003102' .WORD DAT3 ; DATA ECHO
651 000004 NRDAT =.-DATTYP/2
652
653 002756 DONNAK: CALL GETCHN ; GET CHANNEL CONTROL BLOCK
654 002762 042765 002000 000002 BIC #NIP,STATUS(R5) ; CANCEL NAK STATUS
655 002770 CALLR $CCBRT ; AND RETURN THE CCB.
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 14
RCVDAT RECEIVE DATA
657 ;
658 ; PERFORM THE DATA TEST
659 ;
660 ; DAT0 - DATA SINK
661 ; DAT1 - SEQUENCE CHECK
662 ; DAT2 - SEQUENCE CHECK AND PATTERN CHECK
663 ; DAT3 - DATA ECHO
664 ;
665 ; INPUT:
666 ; R2=>MESSAGE IN LINK'S BUFFER SPACE
667 ; R5=>LOGICAL LINK'S DATA BASE
668 ;
669 .ENABL LSB
670 ;
671 ; IGNORE THE RECEIVED DATA
672 ;
673 002774 000241 DAT0: CLC ; WE PASS...
674 002776 RETURN ; EASY TEST
675
676 ;
677 ; SEQUENCE CHECK THE DATA
678 ;
679 003000 005000 DAT1: CLR R0 ; CLEAR A FLAG
680
681 ;
682 ; SEQUENCE CHECK AND PATTERN CHECK
683 ;
684 003002 DAT2: CALL BOMCHK ; IF NOT BEGINNING OF MESSAGE
685 003006 001003 BNE 20$ ; THEN SKIP SEQUENCE CHECK.
686 003010 CALL CHKNR ; OTHERWISE CHECK THE NUMBER.
687 003014 001030 BNE 80$
688 003016 005700 20$: TST R0 ; SEQUENCE CHECK ONLY?
689 003020 001425 BEQ 70$ ; YES ON BR
690 003022 016403 000020 MOV C.CNT(R4),R3 ; LENGTH OF BUFFER
691 003026 CALL BOMCHK ; IF BEGINNING OF MESSAGE
692 003032 001006 BNE 30$ ; THEN
693 003034 162703 000004 SUB #4,R3 ; CHECK ON DATA IN THIS BUFFER.
694 003040 003416 BLE 80$ ; THIS IS SCREWY...
695 003042 012701 004210' MOV #SDATA,R1 ; ADDRESS OF DATA GENERATOR COROUTINE
696 003046 000404 BR 40$
697 003050 016500 000034 30$: MOV PATTRN(R5),R0 ; GET LAST POINT WE WERE AT.
698 003054 016501 000036 MOV PATTRN+2(R5),R1
699 003060 40$: CALL TSTBUF ; DO THE DATA TEST
700 003064 010165 000036 MOV R1,PATTRN+2(R5) ; SAVE LAST POSITION.
701 003070 010065 000034 MOV R0,PATTRN(R5)
702 003074 70$: RETURN
703 003076 000261 80$: SEC ; NO MATCH...
704 003100 RETURN
705
706 ;
707 ; DATA ECHO TEST
708 ;
709
710 003102 010401 DAT3: MOV R4,R1 ; SAVE OLD CCB/LDB
711 003104 CALL $LDBGT ; AND GET OUR OWN.
712 003110 103464 BCS 90$ ; (IF WE CAN)
713 003112 016103 000020 MOV C.CNT(R1),R3 ; GET OLD LENGTH
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 14-1
RCVDAT RECEIVE DATA
714 003116 010364 000020 MOV R3,C.CNT(R4) ; STORE IT
715 003122 $MVTBF R4,C.BUF ; AND COPY BUFFER OVER.
716 003136 005064 000012 CLR C.STS(R4) ; CLEAR FLAG BITS
717 .IRP FLG,<BOM,MOM,EOM,SOL>
718 CMPB #NS.'FLG',C.STS(R1)
719 BNE .+10
720 BIS #NT.'FLG',C.STS(R4)
721 .ENDR
722 003232 NDAT$ LLA(R5)
723 003260 000241 CLC
724 003262 010104 90$: MOV R1,R4 ; RESTORE PREVIOUS CCB/LDB
725 003264 RETURN
726
727 .DSABL LSB
728
729 003266 DONDAT: CALL GETCHN ; GET CHANNEL CONTROL BLOCK
730 003272 016401 000012 MOV C.STS(R4),R1 ; SAVE STATUS
731 003276 CALL $LDBRT ; AND RETURN CCB/LDB.
732 003302 122701 000001 CMPB #NS.SUC,R1 ; IF SUCCESSFUL
733 003306 001005 BNE 90$ ; THEN
734 003310 062765 000001 000020 ADD #1,SNDNR(R5) ; UPDATE THE SEND COUNT.
735 003316 005565 000022 ADC SNDNR+2(R5)
736 003322 90$: RETURN
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 15
RCVINT RECIEVE AN INTERRUPT MESSAGE
738 .SBTTL RCVINT RECIEVE AN INTERRUPT MESSAGE
739 ;
740 ; RECEIVED AN INTERRUPT
741 ;
742 003324 .PSECT CODE,I
743 003324 RCVINT: CALL GETCHN ; GET CHANNEL CONTROL BLOCK.
744 003330 122765 000006 000005 CMPB #<3*2>,TST(R5) ; IF NOT THE INTERRUPT TEST
745 003336 001050 BNE 20$ ; THEN IGNORE.
746 003340 116465 000020 000014 MOVB C.CNT(R4),MSGSIZ(R5) ; SAVE XMI MSG LENGTH
747 003346 062765 000001 000030 ADD #1,RCVCNT(R5) ; INC NUMBER OF XMI'S RECIEVED
748 003354 005565 000032 ADC RCVCNT+2(R5)
749 003360 MAP C.BUF(R4) ; MAP AND
750 003366 016402 000016 MOV C.BUF+2(R4),R2 ; POINT TO BUFFER.
751 003372 116501 000006 MOVB SBTST(R5),R1 ; TYPE OF XMI TEST
752 003376 CALL @XMITYP(R1) ; DO THE TEST
753 003402 103026 BCC 20$ ; IF TEST FAILED
754 003404 010403 MOV R4,R3 ; SAVE CCB/BUFFER
755 003406 CALL $CCBGT ; AND GET A CCB
756 003412 103421 BCS 18$ ; IF WE CAN.
757 003414 NABO$ ULA(R5) ; ABORT THE LINK !!!
758 003456 010304 18$: MOV R3,R4
759 003460 20$: NRTI$ LLA(R5)
760 003506 RETURN
761
762 003510 003520' XMITYP: .WORD XMI0 ; DATA SINK
763 003512 003524' .WORD XMI1 ; SEQUENCE CHECK
764 003514 003526' .WORD XMI2 ; PATTERN CHECK AND SEQ CHECK
765 003516 003570' .WORD XMI3 ; DATA ECHO
766 000004 NRXMI =.-XMITYP/2
767
768 ;+
769 ; INTERRUPT TESTS
770 ; INPUTS:
771 ; R5=>LOGICAL LINK'S DATA BASE
772 ;
773 ; NOTICE: ALL CHECKING ASSUMES THAT THE MESSAGE IS TOTALLY CONTAINED
774 ; IN ONE BUFFER.
775 ;-
776 .ENABL LSB
777 ;
778 ; SINK TEST
779 ;
780 003520 000241 XMI0: CLC ; ALWAYS RIGHT !!!
781 003522 RETURN
782
783 ;
784 ; SEQUENCE CHECK
785 ;
786 003524 005001 XMI1: CLR R1 ; FLAG SO ONLY SEQ CHECK
787
788 ;
789 ; SEQUENCE AND PATTERN CHECK
790 ;
791 003526 XMI2: CALL CHKNR ; CHECK THE SEQUENCE NUMBER
792 003532 001014 BNE 90$
793 003534 005701 TST R1 ; PATTERN CHECK TOO?
794 003536 001411 BEQ 80$ ; YES IF NE
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 15-1
RCVINT RECIEVE AN INTERRUPT MESSAGE
795 003540 016403 000020 MOV C.CNT(R4),R3 ; INT MSG LENGTH
796 003544 162703 000004 SUB #4,R3 ; MINUS SEQ LENGTH
797 003550 003405 BLE 90$ ; JUST IN CASE
798 003552 012701 004210' MOV #SDATA,R1 ; COROUTINE ADDR
799 003556 CALL TSTBUF ; SEE IF MATCH
800 003562 80$: RETURN
801 003564 000261 90$: SEC ; NO MATCH...
802 003566 RETURN
803 ;
804 ; ECHO TEST
805 ;
806 003570 016403 000020 XMI3: MOV C.CNT(R4),R3 ; INT MSG LENGTH
807 003574 010401 MOV R4,R1
808 003576 CALL $LDBGT
809 003602 103423 BCS 60$
810 003604 010364 000020 MOV R3,C.CNT(R4)
811 003610 $MVTBF R4,C.BUF
812 003624 NINT$ LLA(R5)
813 003652 010104 60$: MOV R1,R4
814 003654 RETURN
815
816 .DSABL LSB
817
818 003656 DONINT: CALL GETCHN ; GET CHANNEL CONTROL BLOCK
819 003662 016401 000012 MOV C.STS(R4),R1 ; SAVE STATUS
820 003666 CALL $LDBRT ; AND RETURN CCB/LDB.
821 003672 122701 000001 CMPB #NS.SUC,R1 ; IF SUCCESSFUL
822 003676 001005 BNE 90$ ; THEN
823 003700 062765 000001 000020 ADD #1,SNDNR(R5) ; UPDATE THE SEND COUNT.
824 003706 005565 000022 ADC SNDNR+2(R5)
825 003712 90$: RETURN
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 16
RCVDIS RECIEVE A DISCONNECT
827 .SBTTL RCVDIS RECIEVE A DISCONNECT
828 ;
829 ; RECEIVED A DISCONNECT OR ABORT
830 ;
831 000621 .PSECT TEXT,D
832 000621 114 151 156 LNKABO: .ASCIZ \Link aborted\
833
834 003714 .PSECT CODE,I
835 003714 RCVDIS: CALL GETCHN ; GET CHANNEL CONTROL BLOCK
836 003720 010403 MOV R4,R3 ; AND SAVE THE DISCONNECT CCB.
837 003722 016404 000016 MOV C.BUF+2(R4),R4 ; IF THERE IS DATA
838 003726 001402 BEQ 10$ ; THEN
839 003730 CALL $CCBRT ; RETURN THE EXTRA CCB.
840 003734 010304 10$: MOV R3,R4 ; GET BACK CCB.
841 003736 122764 177777 000012 CMPB #NE.DIS,C.STS(R4) ; IF JUST DISCONNECT
842 003744 001022 BNE 20$ ; THEN
843 003746 NDIS$ LLA(R5),<#0,#0,#0> ; START DSCONNECT ON OUR END.
844 004010 RETURN
845 004012 20$: NABO$ ULA(R5) ; OTHERWISE ABORT.
846 004054 DISPLAY #LNKABO ; SAY LINK ABORTED.
847 004064 RETURN
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 17
GETCHN GET CHANNEL CONTROL BLOCK
849 .SBTTL GETCHN GET CHANNEL CONTROL BLOCK
850 ;+
851 ; INPUTS:
852 ; R5 - POINTER TO THE DTR DATA BASE
853 ; R4 - CCB
854 ;
855 ; OUTPUTS:
856 ; R5 - POINTER TO CHANNEL BLOCK
857 ;
858 ; REGISTERS MODIFIED: R5,R0
859 ;-
860 004066 .PSECT CODE,I
861 004066 GETCHN: GTULA$ R0
862 004074 062705 000000 ADD #CHNLST,R5
863 004100 011505 10$: MOV (R5),R5
864 004102 001777 BEQ .
865 004104 126500 000002 CMPB ULA(R5),R0
866 004110 001373 BNE 10$
867 004112 RETURN
868
869 ;
870 ; INITIALIZE THE CHANNEL CONTROL BLOCK FOR A DATA TEST
871 ;
872 004114 DATINI: PUSH <R2,R1> ; SAVE SOME REGISTERS
873 004120 012702 000020 MOV #SNDNR,R2 ; CLEAR WORDS FROM HERE
874 004124 060502 ADD R5,R2
875 004126 012701 000010 MOV #8.,R1 ; FOR 8. WORDS.
876 004132 005022 10$: CLR (R2)+
877 004134 SOB R1,10$
878 004140 POP <R1,R2> ; ALL DONE.
879 004144 RETURN
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 18
BUFFER FILL AND TEST ROUTINES
881 .SBTTL BUFFER FILL AND TEST ROUTINES
882 ;+
883 ; FILBUF - FILL THE BUFFER WITH DATA FROM COROUINE
884 ;
885 ; TSTBUF - TEST THE BUFFER FOR STANDARD DATA
886 ;
887 ; R3= BUFFER SIZE IN BYTES
888 ; R2 = BUFFER ADDRESS
889 ; R1 = DATA GENERATION COROUTINE ADDRESS
890 ;-
891
892 004146 TSTBUF: PUSH R1
893 004150 10$: CALL @(SP)+ ; GET NEXT DATA BYTE
894 004152 120022 CMPB R0,(R2)+ ; DO COMPARE
895 004154 001003 BNE 20$ ; INVALID CHAR ON BR
896 004156 SOB R3,10$ ; COUNT DOWN
897 004162 005727 TST (PC)+ ; CLEAR C FOR SUCCESS
898 004164 000261 20$: SEC ; INDICATE FAILURE
899 004166 POP R1 ; RESTORE THE STACK
900 004170 RETURN
901
902 004172 FILBUF: PUSH R1 ; SET UP COROUTINE CALL
903 004174 10$: CALL @(SP)+ ; GET NEXT CHAR
904 004176 110022 MOVB R0,(R2)+ ; STUFF IN BUFFER
905 004200 SOB R3,10$ ; COUNT DOWN
906 004204 POP R1 ; RESTORE STACK
907 004206 RETURN
908
909 ;
910 ; STANDARD DATA PATTERN GENERATION COROUTINE
911 ;
912
913 004210 112700 000101 SDATA: MOVB #'A,R0 ; START WITH LETTERS
914 004214 10$: CALL @(SP)+ ; CALL CALLER
915 004216 120027 000132 CMPB R0,#'Z ; END OF LETTERS?
916 004222 001003 BNE 20$ ; IF NO, TRY LETTERS
917 004224 112700 000060 MOVB #'0,R0 ; ELSE, SWITCH TO NUMBERS
918 004230 000771 BR 10$ ; KEEP GOING
919 004232 120027 000071 20$: CMPB R0,#'9 ; END OF NUMBERS?
920 004236 001764 BEQ SDATA ; IF YES START OVER
921 004240 105200 INCB R0 ; ELSE, INCREMENT DATA
922 004242 000764 BR 10$
923 004244 RETURN
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 19
BUFFER FILL AND TEST ROUTINES
925 004246 122764 000040 000012 BOMCHK: CMPB #NS.BOM,C.STS(R4)
926 004254 001403 BEQ 10$
927 004256 122764 000140 000012 CMPB #NS.SOL,C.STS(R4)
928 004264 10$: RETURN
929
930 004266 122764 000100 000012 EOMCHK: CMPB #NS.EOM,C.STS(R4)
931 004274 001403 BEQ 10$
932 004276 122764 000140 000012 CMPB #NS.SOL,C.STS(R4)
933 004304 10$: RETURN
934
935 004306 062765 000001 000024 CHKNR: ADD #1,RCVNR(R5) ; BUMP THE RECEIVE NUMBER
936 004314 005565 000026 ADC RCVNR+2(R5)
937 004320 126522 000024 CMPB RCVNR(R5),(R2)+ ; R2 POINTS AT LOW ORDER BYTE
938 004324 001010 BNE 10$
939 004326 126522 000025 CMPB RCVNR+1(R5),(R2)+
940 004332 001005 BNE 10$ ; DISCONNECT WITH NO USER DATA ON BR
941 004334 126522 000026 CMPB RCVNR+2(R5),(R2)+ ; HIGH ORDER WORD
942 004340 001002 BNE 10$ ; DISCONNECT
943 004342 126522 000027 CMPB RCVNR+3(R5),(R2)+
944 004346 10$: RETURN
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 20
BUFFER FILL AND TEST ROUTINES
946 ;
947 ; DISPLAY A MESSAGE OVER EVENT LOGGING IF REQUESTED
948 ;
949 000636 .PSECT TEXT,D
950 000636 074 104 124 HEADER: .ASCIZ \<DTR> \
951
952 004350 .PSECT CODE,I
953 004350 032765 020000 000002 PRINT: BIT #PROPT,STATUS(R5) ; IF PRINT OPTION SPECIFIED
954 004356 001440 BEQ 90$ ; THEN
955 004360 012767 000000C 000000' MOV #PD$NSP*400,PDST ; SET LOGGING TARGET
956 004366 PUSH <R2,R3>
957 004372 012700 000000' MOV #PDST,R0
958 004376 CALL $CMLOG
959 004402 103424 BCS 80$
960 004404 010200 MOV R2,R0 ; GET BUFFER ADDRESS
961 004406 112720 000016 MOVB #E$DTXT,(R0)+ ; SET TEXT DATA CODE
962 004412 105020 CLRB (R0)+ ; AND INIT TO ZERO.
963 004414 PUSH <R0,R1> ; SAVE BUFFER AND PATTERN ADDRESSES.
964 004420 012702 000636' MOV #HEADER,R2 ; INSERT HEADER.
965 004424 CALL EDIT
966 004430 012703 000140' MOV #PARAM,R3 ; NOW THE MESSAGE.
967 004434 POP R2
968 004436 CALL EDIT
969 004442 010002 MOV R0,R2 ; COPY THE CURRENT BUFFER POSITION
970 004444 POP R1 ; AND THE BEGINNING OF THE TEXT.
971 004446 160100 SUB R1,R0 ; FIGURE LENGTH OF TEXT
972 004450 110041 MOVB R0,-(R1) ; AND INSERT IN MESSAGE.
973 004452 CALL @(SP)+ ; FINISH UP LOGGING MESSAGE.
974 004454 80$: POP <R3,R2>
975 004460 90$: RETURN
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 21
BUFFER FILL AND TEST ROUTINES
977 000136 .PSECT DATA,D
978 000376 P$D = -2&377
979 000136 004506' .WORD EDDEC ; DECIMAL MAGNITUDE
980 000140 PARAM: .BLKW 5
981
982 004462 .PSECT CODE,I
983 004462 110120 EDI1: MOVB R1,(R0)+ ; STORE TEXT.
984 004464 112201 EDIT: MOVB (R2)+,R1 ; GET NEXT BYTE
985 004466 003375 BGT EDI1 ; AND STORE IF CHARACTER.
986 004470 001405 BEQ 90$ ; IF NOT END OF PATTERN
987 004472 PUSH R2 ; SAVE VALUABLE STUFF
988 004474 CALL @PARAM(R1) ; AND EXECUTE REQUESTED FUNCTION.
989 004500 POP R2
990 004502 000770 BR EDIT ; GO FOR MORE.
991 004504 90$: RETURN
992
993 004506 012301 EDDEC: MOV (R3)+,R1 ; WITH NEXT PARAMETER
994 004510 000167 000000G JMP $CBDMG ; AND DISPLAY AS DECIMAL MAGNITUDE.
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 22
BUFFER FILL AND TEST ROUTINES
996 ;+
997 ; GENERATE A RANDOM NUMBER BETWEEN 0 AND THE GIVEN NUMBER
998 ;
999 ; INPUT:
1000 ; R0 - UPPER LIMIT OF DISTRIBUTION TO GET NUMBER FROM
1001 ;
1002 ; OUTPUT:
1003 ; R0 - RANDOM NUMBER FROM UNIFORM DISTRIBUTION
1004 ;-
1005
1006 000152 .PSECT DATA,D
1007 000152 000000 031415 RNM: .WORD 0,31415
1008
1009 004514 .PSECT CODE,I
1010 004514 $RND:: PUSH <R4,R3,R2,R1>
1011 004524 010003 MOV R0,R3
1012 004526 003002 BGT 10$
1013 004530 005000 CLR R0
1014 004532 000446 BR 90$
1015 004534 012700 000152' 10$: MOV #RNM,R0
1016 004540 012001 MOV (R0)+,R1 ; PICK UP THE SEED.
1017 004542 011002 MOV (R0),R2
1018 004544 006302 ASL R2 ; MUL BY 200003=65539.
1019 004546 006101 ROL R1 ; (A PRIME NUMBER)
1020 004550 061002 ADD (R0),R2
1021 004552 005501 ADC R1
1022 004554 061001 ADD (R0),R1
1023 004556 064001 ADD -(R0),R1
1024 004560 042701 100000 BIC #100000,R1 ; MAKE IT POSITIVE
1025 004564 010120 MOV R1,(R0)+ ; AND SAVE IT
1026 004566 010210 MOV R2,(R0) ; AS THE NEW SEED.
1027 004570 006302 ASL R2
1028 004572 006101 ROL R1
1029 004574 005000 CLR R0
1030 004576 010246 MOV R2,-(SP) ; SAVE MULTIPLICAND.
1031 004600 010146 MOV R1,-(SP)
1032 004602 012704 000020 MOV #16.,R4
1033 004606 006303 20$: ASL R3
1034 004610 005304 DEC R4
1035 004612 103375 BCC 20$
1036 004614 001414 BEQ 80$
1037 004616 006302 30$: ASL R2 ; MULTIPLY BY 2.
1038 004620 006101 ROL R1
1039 004622 006100 ROL R0
1040 004624 006303 ASL R3 ; CHECK MULTIPLIER
1041 004626 103005 BCC 40$ ; DON'T ADD
1042 004630 066602 000002 ADD 2(SP),R2 ; ADD MULTIPLICAND
1043 004634 005501 ADC R1 ; TO RESULT.
1044 004636 061601 ADD (SP),R1
1045 004640 005500 ADC R0
1046 004642 40$: SOB R4,30$
1047 004646 022626 80$: CMP (SP)+,(SP)+
1048 004650 90$: POP <R1,R2,R3,R4> ; THIS IS RANDOM NUMBER.
1049 004660 RETURN
1050
1051 000001 .END
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 22-1
SYMBOL TABLE
ACTIVE= 100000 C.BUF1 000014 E$DMCD= 000012 FE.LSI= 000400 KISAR5= 172352
A$$CHK= 000000 C.BUF2 000024 E$DNOD= 000011 FE.MUP= 000002 KISAR6= 172354
A$$CPS= 000000 C.CNT 000020 E$DOSI= 000010 FE.MXT= 040000 KISAR7= 172356
A$$PRI= 000000 C.CNT1 000020 E$DREC= 000007 FE.NLG= 100000 KISDR0= 172300
A$$TRP= 000000 C.CNT2 000030 E$DREG= 000001 FE.PKT= 000100 KISDR6= 172314
BADFLO 000560R 004 C.FLG 000022 E$DRSN= 000006 FE.PLA= 000020 KISDR7= 172316
BOMCHK 004246R 003 C.FLG1 000022 E$DTHR= 000015 FILBUF 004172R 003 K$$CNT= 177546
BPCCNT 000013 C.FLG2 000032 E$DTIM= 000002 FILRCV 000736R 003 K$$CSR= 177546
BPCNR 000017 C.FNC 000010 E$DTPC= 000014 FILSTD 000714R 003 K$$LDC= 000000
CB.CCB= 000002 C.LIN 000006 E$DTXT= 000016 FLOCNT 000010 K$$TPS= 000074
CB.RDB= 000004 C.LNK 000000 E$DUPT= 000004 FLOTYP 000007 LD$LP = 000000
CE.ABO= 100362 C.MOD 000011 E$RABO= 000017 FS.AST= 000000 LLA 000004
CE.DIS= 100366 C.NSP 000004 E$RCRC= 000023 FS.CIB= 002000 LNKABO 000621R 004
CE.ERR= 100370 C.RSV 000002 E$RDSC= 000005 FS.CRA= 001000 L$$ASG= 000000
CE.MOP= 100372 C.STA 000007 E$RFRM= 000024 FS.DIS= 013000 L$$DRV= 000000
CE.NTE= 100361 C.STS 000012 E$RHFE= 000016 FS.DVC= 001000 L$$P11= 000001
CE.RTE= 100376 DATINI 004114R 003 E$RLIN= 000003 FS.ENB= 012000 L$$11R= 000000
CE.SRC= 100364 DATTST 000762R 003 E$RMOP= 000014 FS.GET= 006000 MPAR = 172100
CE.TMO= 100374 DATTYP 002746R 003 E$RMTL= 000013 FS.INI= 000000 MPCSR = 177746
CF.EOM= 000004 DAT0 002774R 003 E$RNAK= 000032 FS.KIL= 000000 MSGSIZ 000014
CF.HDR= 000020 DAT1 003000R 003 E$RNXM= 000002 FS.LTM= 001000 M$$CRB= 000124
CF.LB = 100000 DAT2 003002R 003 E$ROVR= 000012 FS.MNT= 004000 M$$CRX= 000000
CF.SOM= 000010 DAT3 003102R 003 E$RPEC= 000022 FS.MSN= 014000 M$$FCS= 000000
CF.SYN= 000040 DIP = 004000 E$RPEM= 000021 FS.RNG= 011000 M$$MGE= 000000
CF.TRN= 000100 DISTST 001502R 003 E$RPET= 000020 FS.RTN= 001000 M$$OVR= 000000
CHKNR 004306R 003 DISTYP 001726R 003 E$RPRC= 000025 FS.SET= 005000 NAKCNT 000012
CHNLST 000000 DIS0 001740R 003 E$RPWF= 000007 FS.STM= 000000 NAKNR 000016
CMODE = 140000 DIS1 001744R 003 E$RPWR= 000010 FS.STP= 002000 NC.FM0= 000000
CONN0 000526R 003 DIS2 001750R 003 E$RRET= 000031 FS.STR= 001000 NC.FM1= 000001
CONN1 000532R 003 DIS3 001756R 003 E$RRTE= 000011 FS.TRM= 003000 NC.FM2= 000002
CONN2 000536R 003 DIS4 001764R 003 E$RRTO= 000006 FS.XKL= 002000 NE.ABO= 177776
CONN3 000544R 003 DIS5 002024R 003 E$RSEL= 000030 FS.XOF= 010000 NE.ACT= 177771
CONN4 000552R 003 DONABO 002142R 003 E$RSIN= 000004 FS.XON= 007000 NE.CLS= 177767
CONN5 000622R 003 DONDAT 003266R 003 E$RSRC= 000015 F$$LVL= 000001 NE.DIS= 177777
CONTST 000446R 003 DONDIS 002142R 003 E$RTRN= 000026 GETB 000402R 003 NE.FMT= 177770
CONTYP 000512R 003 DONINT 003656R 003 E$RUCL= 000001 GETCHN 004066R 003 NE.NDT= 177766
CS.ABO= 000100 DONNAK 002756R 003 E$RXTO= 000027 G$$TPP= 000000 NE.NOD= 177774
CS.BUF= 000200 DSCDAT 000016 E$TASC= 000001 G$$TSS= 000000 NE.REJ= 177775
CS.DCR= 000400 DSCLNG 000014 E$TASX= 000002 G$$TTK= 000000 NE.RES= 177773
CS.DEV= 000002 DSCRCV 002116R 003 E$THDW= 000003 G$$WRD= 000000 NE.TIM= 177772
CS.DIS= 000040 DSCSTD 002074R 003 E$TSFT= 000004 HEADER 000636R 004 NIP = 002000
CS.ENB= 000020 DTRCCP 000106R 002 E$TTOP= 000005 INIT = 040000 NOCCB 000000R 004
CS.EOF= 000001 DTRRCP 000074R 002 E$$XPR= 000000 INVBPC 000364R 004 NORSC 000033R 004
CS.ERR= 100000 DTRTMO 000000R 003 FC.CCP= 000020 INVBUF 000427R 004 NP$RTR= 000003
CS.HFE= 002000 DTRXCP 000044R 002 FC.CTL= 000006 INVCNT 000305R 004 NRCON = 000006
CS.LST= 040000 D$$BUG= 177514 FC.KCP= 000016 INVCON 000156R 004 NRDAT = 000004
CS.MTL= 004000 D$$ISK= 000000 FC.KIL= 000004 INVDAT 000213R 004 NRDIS = 000005
CS.RNG= 000010 D$$L11= 000001 FC.RCE= 000002 INVDIS 000461R 004 NRTST = 000004
CS.ROV= 000004 D$$YNC= 000000 FC.RCP= 000014 INVFLO 000245R 004 NRXMI = 000004
CS.RSN= 010000 D$$YNM= 000000 FC.TIM= 000010 INVNAK 000333R 004 NS.BOM= 000040
CS.SUC= 000001 EDDEC 004506R 003 FC.XCP= 000012 INVTST 000063R 004 NS.EOM= 000100
CS.TMO= 020000 EDIT 004464R 003 FC.XME= 000000 INVXMI 000521R 004 NS.MFL= 000003
C$$CKP= 000000 EDI1 004462R 003 FE.CAL= 000040 I$$RAR= 000000 NS.MOM= 000000
C$$ORE= 000400 EOMCHK 004266R 003 FE.DRV= 000010 I$$RDN= 000000 NS.NFL= 000001
C$$RSH= 177564 E$DDAT= 000003 FE.EXP= 000200 KDSAR0= 172360 NS.SET= 000002
C.BID 000003 E$DDEV= 000005 FE.EXT= 000001 KDSDR0= 172320 NS.SFL= 000002
C.BUF 000014 E$DLPC= 000013 FE.EXV= 000004 KISAR0= 172340 NS.SOL= 000140
DTR - SYSTEM INTERFACE VERSION MACRO M1110 13-OCT-79 09:53 PAGE 22-2
SYMBOL TABLE
NS.SUC= 000001 NXTULA 000004 N.SEG 000006 RCVCON 000206R 003 UISAR4= 177650
NT$ABO= 000022 N$$DAT= 000030 N.SFMT 000034 RCVDAT 002376R 003 UISAR5= 177652
NT$ACC= 000002 N$$DIS= 000020 N.SGRP 000036 RCVDIS 003714R 003 UISAR6= 177654
NT$ADS= 000000 N$$INT= 000020 N.SOBJ 000035 RCVINT 003324R 003 UISAR7= 177656
NT$CON= 000000 N$$LDV= 000001 N.SUSR 000040 RCVNR 000024 UISDR0= 177600
NT$DAT= 000002 N$$MOV= 000010 PARAM 000140R 002 REJECT 000436R 003 UISDR4= 177610
NT$DIS= 000010 N$$OPT= 000020 PATTRN 000034 RESOUR 000426R 003 UISDR5= 177612
NT$INT= 000004 N$$OVR= 000042 PDST 000000R 002 RNM 000152R 002 UISDR6= 177614
NT$MOD= 000012 N$$SYS= 000001 PDT1 000004R 002 R$$DER= 000000 UISDR7= 177616
NT$NAK= 000022 N$$USR= 000001 PDT2 000006R 002 R$$K11= 000001 ULA 000002
NT$OFF= 000026 N.ACNT 000116 PD$NSP= ****** GX R$$SND= 000000 V$$CTR= 001000
NT$ON = 000002 N.ACTL 000114 PIRQ = 177772 R$$11M= 000000 XMITST 002222R 003
NT$QRY= 000014 N.DDL1 000012 PLNG 000010R 002 SBTST 000006 XMITYP 003510R 003
NT$REJ= 000004 N.DDL2 000016 PMODE = 030000 SDATA 004210R 003 XMI0 003520R 003
NT$RTI= 000010 N.DDS1 000014 PNAM 000012R 002 SHTDAT 000110R 004 XMI1 003524R 003
NT$RTN= 000000 N.DDS2 000020 PRINT 004350R 003 SISDR0= 172200 XMI2 003526R 003
NT$SNG= 000006 N.DFMT 000010 PROPT = 020000 SNDNR 000020 XMI3 003570R 003
NT$STP= 000004 N.DGRP 000012 PRSN 000002R 002 SR0 = 177572 XOFF = 010000
NT$XOF= 000020 N.DOBJ 000011 PR0 = 000000 SR3 = 172516 X$$DBT= 000000
NT$XON= 000016 N.DUSR 000014 PR1 = 000040 STATUS 000002 $CBDMG= ****** GX
NT.ACK= 000001 N.LGTH= 000160 PR4 = 000200 SWR = 177570 $CCBGT= ****** GX
NT.BOM= 000040 N.NODE 000000 PR5 = 000240 S$$WRG= 000000 $CCBRT= ****** GX
NT.EOM= 000100 N.OPDL 000136 PR6 = 000300 S$$YSZ= 007600 $CMLOG= ****** GX
NT.FCN= 037400 N.OPTD 000140 PR7 = 000340 TEST 000372R 003 $CMPDV= ****** GX
NT.MD1= 000420 N.PASL 000102 PS = 177776 TPS = 177564 $DTRTB 000022RG 002
NT.MFL= 000002 N.PASS 000104 PSTA 000020R 002 TST 000005 $LDBGT= ****** GX
NT.MOD= 000020 N.RQDL 000060 PTAB 000016R 002 TSTBUF 004146R 003 $LDBRT= ****** GX
NT.MOM= 000000 N.RQID 000062 PTYP 000014R 002 T$$KMG= 000000 $LLCRS= ****** GX
NT.NAK= 000002 N.RSRV= 000030 P$D = 000376 T$$MIN= 000000 $MVTBF= ****** GX
NT.NFL= 000000 N.SDL1 000036 P$$P45= 000000 UBMPR = 170200 $RND 004514RG 003
NT.SFL= 000001 N.SDL2 000042 P$$WRD= 000000 UDSAR0= 177660 $$NARG= 000004
NT.SOL= 000140 N.SDS1 000040 Q$$OPT= 000010 UDSDR0= 177620 $$TYPE= 000000
NT.XOF= 000004 N.SDS2 000056 RCVCNT 000030 UISAR0= 177640 $$$DSP= 000000
NT.XON= 000010
. ABS. 000160 000
000000 001
DATA 000156 002
CODE 004662 003
TEXT 000645 004
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 10621 WORDS ( 42 PAGES)
DYNAMIC MEMORY: 12172 WORDS ( 46 PAGES)
ELAPSED TIME: 00:01:38
DTR,[131,34]DTR/CR/-SP=[130,10]NETLIB/ML,RSXMC4/PA:1,[131,10]DTR
DTR CREATED BY MACRO ON 13-OCT-79 AT 09:53 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
ACTIVE = 100000 #5-105 7-190 8-232 9-335 10-423 11-472 11-549 12-581
BADFLO 000560 R #12-568 12-585
BOMCHK 004246 R 14-684 14-691 #19-925
BPCCNT 000013 #5-119 7-202 *10-398 13-616
BPCNR 000017 #5-122 *7-194 *7-198 *7-207 *10-406 *13-618 *13-625
CB.CCB = 000002 11-550
CHKNR 004306 R 14-686 15-791 #19-935
CHNLST 000000 #5-95 7-188 8-229 17-862
CONN0 000526 R 8-274 9-294 #9-306
CONN1 000532 R 9-295 #9-311
CONN2 000536 R 9-296 #9-316
CONN3 000544 R 9-297 #9-321
CONN4 000552 R 9-298 #9-326
CONN5 000622 R 9-299 #9-333
CONTST 000446 R 8-256 #9-284
CONTYP 000512 R 9-290 #9-293 9-300
C.BID 000003 11-550
C.BUF 000014 8-240 8-241 9-289 11-459 11-475 11-476 13-605 13-606 14-715
14-715 15-749 15-750 15-811 15-811 16-837
C.BUF1 000014 *16-843 *16-843
C.CNT 000020 14-690 14-713 *14-714 15-746 15-795 15-806 *15-810
C.CNT1 000020 *9-328 *9-336 *10-424 *11-473 *11-516 *12-582 *16-843
C.FNC 000010 *7-200 *7-211 *9-328 *9-336 *10-424 *10-427 *11-473 *11-516 *11-522
*12-582 *13-613 *13-633 *14-722 *15-757 *15-759 *15-812 *16-843 *16-845
C.LIN 000006 *7-200 *7-200 *7-211 *7-211 9-328 *9-328 *9-328 9-336 *9-336
*9-336 10-424 *10-424 *10-424 *10-427 *10-427 11-473 *11-473 *11-473
*11-516 *11-516 *11-522 12-582 *12-582 *12-582 *13-613 *13-633 *13-633
*14-722 *14-722 *15-757 *15-759 *15-759 *15-812 *15-812 *16-843 *16-843
*16-845 17-861
C.NSP 000004 8-239 9-328 *9-328 9-336 *9-336 *9-336 10-424 *10-424 *10-424
*10-427 11-473 *11-473 *11-473 *11-522 *11-522 *11-522 12-582 *12-582
*12-582 *13-613 *13-613 *13-613 *15-757 *15-757 *15-757 *16-845 *16-845
*16-845
C.STS 000012 *9-336 *10-383 *11-473 11-544 *12-582 *13-633 *14-716 14-721 *14-721
14-721 *14-721 14-721 *14-721 14-721 *14-721 14-730 15-819 16-841
19-925 19-927 19-930 19-932
DATINI 004114 R 10-414 12-580 #17-872
DATTST 000762 R 8-257 #10-373
DATTYP 002746 R 13-608 #13-646 13-651
DAT0 002774 R 13-647 #14-673
DAT1 003000 R 13-648 #14-679
DAT2 003002 R 13-649 #14-684
DAT3 003102 R 13-650 #14-710
DIP = 004000 #5-109 7-208 7-212 11-547
DISTST 001502 R 8-258 #11-452
DISTYP 001726 R 11-478 #11-482 11-488
DIS0 001740 R 11-482 #11-494
DIS1 001744 R 11-483 #11-499
DIS2 001750 R 11-484 #11-504
DIS3 001756 R 11-485 #11-509
DIS4 001764 R 11-486 #11-515
DIS5 002024 R #11-521
DTR CREATED BY MACRO ON 13-OCT-79 AT 09:53 PAGE 2
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
DONABO 002142 R 6-164 #11-542
DONDAT 003266 R 6-156 #14-729
DONDIS 002142 R 6-159 #11-543
DONINT 003656 R 6-157 #15-818
DONNAK 002756 R 6-181 #13-653
DSCDAT 000016 #5-130 11-463
DSCLNG 000014 #5-129 7-210 *11-462 11-533 *11-546
DSCRCV 002116 R 11-515 11-521 #11-533
DSCSTD 002074 R 11-504 11-509 #11-527
DTRCCP 000106 R 6-152 #6-171
DTRRCP 000074 R 6-150 #6-166
DTRTMO 000000 R 6-148 #7-188
DTRXCP 000044 R 6-149 #6-154
EDDEC 004506 R 21-979 #21-993
EDIT 004464 R 20-965 20-968 #21-984 21-990
EDI1 004462 R #21-983 21-985
EOMCHK 004266 R 13-630 #19-930
E$DTXT = 000016 20-961
E$TSFT = 000004 5-137
FC.RCE = 000002 9-328 9-336 10-424 11-473 12-582 13-633 15-759
FC.XME = 000000 7-200 7-211 10-427 11-516 11-522 13-613 14-722 15-757 15-812
16-843 16-845
FILBUF 004172 R 9-343 11-529 #18-902
FILRCV 000736 R 9-326 9-333 #9-347
FILSTD 000714 R 9-316 9-321 #9-341
FLOCNT 000010 #5-117 *10-385 10-427
FLOTYP 000007 #5-116 *10-382 10-416 *12-576 13-626
GETB 000402 R 8-244 #8-263 9-284 10-373 10-378 10-384 10-387 10-397 10-407
10-409 11-452 12-571 12-577
GETCHN 004066 R 11-543 13-592 13-653 14-729 15-743 15-818 16-835 #17-861
HEADER 000636 R #20-950 20-964
INIT = 040000 #5-106 8-234 8-238
INVBPC 000364 R #10-369 10-433
INVBUF 000427 R #10-370 10-434
INVCNT 000305 R #10-367 10-431
INVCON 000156 R #9-281 9-291
INVDAT 000213 R #10-365 10-429
INVDIS 000461 R #11-449 11-479
INVFLO 000245 R #10-366 10-430
INVNAK 000333 R #10-368 10-432
INVTST 000063 R #8-224 8-254
INVXMI 000521 R #12-567 12-584
KISAR6 = 172354 *8-240 *11-475 *13-605 *15-749
LLA 000004 #5-113 7-200 7-211 8-239 *8-239 10-427 11-516 13-633 14-722
15-759 15-812 16-843
LNKABO 000621 R #16-832 16-846
MSGSIZ 000014 #5-120 5-128 *10-408 *10-410 10-412 10-434 *15-746
M$$MGE = 000000 8-240 11-475 13-605 14-715 15-749 15-811
NAKCNT 000012 #5-118 *10-388 13-599
NAKNR 000016 #5-121 *10-396 *13-601 *13-643
NE.DIS = 177777 16-841
NIP = 002000 #5-110 13-594 13-636 13-654
DTR CREATED BY MACRO ON 13-OCT-79 AT 09:53 PAGE 3
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
NOCCB 000000 R #8-222 8-253
NORSC 000033 R #8-223 8-271
NRCON = 000006 9-285 #9-300
NRDAT = 000004 10-374 #13-651
NRDIS = 000005 11-453 #11-488
NRTST = 000004 8-248 #8-260
NRXMI = 000004 12-572 #15-766
NS.BOM = 000040 14-721 19-925
NS.EOM = 000100 14-721 19-930
NS.MOM = 000000 14-721
NS.SOL = 000140 14-721 19-927 19-932
NS.SUC = 000001 14-732 15-821
NT$ABO = 000022 11-522 13-613 15-757 16-845
NT$ACC = 000002 9-336 10-424 11-473 12-582
NT$DAT = 000002 14-722
NT$DIS = 000010 7-211 11-516 16-843
NT$INT = 000004 15-812
NT$MOD = 000012 10-427
NT$REJ = 000004 9-328
NT$RTI = 000010 15-759
NT$RTN = 000000 13-633
NT$XON = 000016 7-200
NT.ACK = 000001 13-596 13-615
NT.BOM = 000040 14-721
NT.EOM = 000100 14-721
NT.MD1 = 000420 13-632
NT.MFL = 000002 9-336 10-437
NT.MOM = 000000 14-721
NT.NAK = 000002 13-637
NT.NFL = 000000 10-437 11-473 12-582
NT.SFL = 000001 10-437
NT.SOL = 000140 14-721
NT.XOF = 000004 13-621
NXTULA 000004 #5-96 *8-236 8-237
N.OPDL 000136 8-242 9-348 11-460
PARAM 000140 R *8-254 *9-291 *10-429 *10-430 *10-431 *10-432 *10-433 *10-434 *11-479
*12-584 20-966 #21-980 21-988
PATTRN 000034 #5-126 5-131 14-697 14-698 *14-700 *14-701
PDST 000000 R #5-137 *20-955 20-957
PDT1 000004 R #5-137
PDT2 000006 R #5-137
PD$NSP = ****** GX 7-200 7-211 9-328 9-336 10-424 10-427 11-473 11-516 11-522
12-582 13-613 13-633 14-722 15-757 15-759 15-812 16-843 16-845
20-955
PLNG 000010 R #5-137
PNAM 000012 R #5-137
PRINT 004350 R 8-273 16-846 #20-953
PROPT = 020000 #5-107 8-246 20-953
PRSN 000002 R #5-137
PSTA 000020 R #5-137
PTAB 000016 R #5-137
PTYP 000014 R #5-137
DTR CREATED BY MACRO ON 13-OCT-79 AT 09:53 PAGE 4
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
P$D = 000376 8-224 9-281 10-365 10-366 10-367 10-368 10-369 10-370 11-449
12-567 #21-978
RCVCNT 000030 #5-125 *13-603 *13-604 *15-747 *15-748
RCVCON 000206 R 6-167 #8-228
RCVDAT 002376 R 6-168 #13-592
RCVDIS 003714 R 6-176 #16-835
RCVINT 003324 R 6-169 #15-743
RCVNR 000024 #5-124 *19-935 *19-936 19-937 19-939 19-941 19-943
REJECT 000436 R 8-253 8-254 8-269 8-271 #8-273 9-291 10-429 10-430 10-431
10-432 10-433 10-434 11-479 12-584 12-585
RESOUR 000426 R #8-271 10-435 11-480
RNM 000152 R #22-1007 22-1015
SBTST 000006 #5-115 *9-288 *10-377 10-411 *11-456 11-477 *12-575 13-607 15-751
SDATA 004210 R 9-341 11-527 14-695 15-798 #18-913 18-920
SHTDAT 000110 R #8-225 8-269
SNDNR 000020 #5-123 *14-734 *14-735 *15-823 *15-824 17-873
STATUS 000002 #5-104 7-190 7-192 *7-201 7-208 *7-212 8-232 8-234 *8-238
*8-246 *9-335 *10-423 *11-472 *11-547 *11-549 *12-581 13-594 *13-620
*13-636 *13-654 20-953
TEST 000372 R 8-252 #8-256 8-260
TST 000005 #5-114 *8-251 13-597 15-744
TSTBUF 004146 R 14-699 15-799 #18-892
ULA 000002 #5-103 *8-237 9-336 10-424 11-473 11-522 12-582 13-613 15-757
16-845 17-865
XMITST 002222 R 8-259 #12-571
XMITYP 003510 R 15-752 #15-762 15-766
XMI0 003520 R 15-762 #15-780
XMI1 003524 R 15-763 #15-786
XMI2 003526 R 15-764 #15-791
XMI3 003570 R 15-765 #15-806
XOFF = 010000 #5-108 7-192 7-201 13-620
$CBDMG = ****** GX 21-994
$CCBGT = ****** GX 7-196 10-419 13-611 15-755
$CCBRT = ****** GX 6-160 6-162 6-163 6-179 6-180 11-552 13-655 16-839
$CMLOG = ****** GX 20-958
$CMPDV = ****** GX 11-522 13-613 15-757 16-845
$DTRTB 000022 RG #6-144
$LDBGT = ****** GX 11-468 14-711 15-808
$LDBRT = ****** GX 11-554 14-731 15-820
$LLCRS = ****** GX 7-200 7-211 9-328 9-336 10-424 10-427 11-473 11-516 11-522
12-582 13-613 13-633 14-722 15-757 15-759 15-812 16-843 16-845
$MVTBF = ****** GX 14-715 15-811
$RND 004514 RG 7-205 10-393 10-403 13-623 13-641 #22-1010
$$NARG = 000004 #7-211 7-211 #11-516 11-516 11-516 #14-722 14-722 #15-812 15-812
#16-843 16-843 16-843
$$TYPE = 000000 #8-239 8-239 8-239 #17-861 17-861
$$$DSP = 000000 #8-253 #8-254 *8-254 *8-254 #8-254 #8-269 #8-271 #8-273 #9-291
*9-291 *9-291 #9-291 #10-429 *10-429 *10-429 #10-429 #10-430 *10-430
*10-430 #10-430 #10-431 *10-431 *10-431 #10-431 #10-432 *10-432 *10-432
#10-432 #10-433 *10-433 *10-433 #10-433 #10-434 *10-434 *10-434 #10-434
#11-479 *11-479 *11-479 #11-479 #12-584 *12-584 *12-584 #12-584 #12-585
#16-846
DTR CREATED BY MACRO ON 13-OCT-79 AT 09:53 PAGE 5
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
CALL 7-196 7-200 7-205 7-211 8-244 9-284 9-316 9-321 9-326 9-328
9-333 9-336 9-343 10-373 10-378 10-384 10-387 10-393 10-397 10-403
10-407 10-409 10-414 10-419 10-424 10-427 11-452 11-468 11-473 11-504
11-509 11-515 11-516 11-521 11-522 11-529 11-543 11-552 11-554 12-571
12-577 12-580 12-582 13-592 13-608 13-611 13-613 13-623 13-630 13-633
13-641 13-653 14-684 14-686 14-691 14-699 14-711 14-722 14-729 14-731
15-743 15-752 15-755 15-757 15-759 15-791 15-799 15-808 15-812 15-818
15-820 16-835 16-839 16-843 16-845 18-893 18-903 18-914 20-958 20-965
20-968 20-973 21-988
CALLR #13-655
CCBDF$ #3-36 3-41
CMLDF$ #3-39 #5-137
DISPLA #4-78 #8-273 #16-846
EVLDF$ #3-39 3-44
GTLLA$ #3-38 #8-239
GTULA$ #3-38 #17-861
HWDDF$ #3-36 #3-40 #8-240 #8-240 #11-475 #11-475 #13-605 #13-605 #15-749 #15-749
MAP #3-39 8-240 11-475 13-605 15-749
NABO$ #3-38 11-522 13-613 15-757 16-845
NACC$ #3-37 9-336 10-424 11-473 12-582
NCON$ #3-37
NDAT$ #3-37 14-722
NDIS$ #3-38 7-211 11-516 16-843
NINT$ #3-37 #15-812
NMOD$ #3-37 #10-427
NREJ$ #3-37 9-328
NRTI$ #3-37 15-759
NRTN$ #3-37 #13-633
NSPDF$ #3-36 #3-43
NXON$ #3-38 #7-200
POP #4-58 17-878 18-899 18-906 20-967 20-970 20-974 21-989 22-1048
PUSH #4-52 17-872 18-892 18-902 20-956 20-963 21-987 22-1010
REJECT #4-66 8-253 8-254 8-269 8-271 9-291 10-429 10-430 10-431 10-432
10-433 10-434 11-479 12-584 12-585
RETURN 7-215 8-267 9-329 9-337 9-345 9-354 10-428 11-517 11-523 11-531
11-540 11-548 11-553 11-555 12-583 13-634 14-674 14-702 14-704 14-725
14-736 15-760 15-781 15-800 15-802 15-814 15-825 16-844 16-847 17-867
17-879 18-900 18-907 18-923 19-928 19-933 19-944 20-975 21-991 22-1049
SOB #9-353 #11-466 #11-539 #17-877 #18-896 #18-905 #22-1046
TMPDF$ #3-36 #3-42
$MVFBF #3-39
$MVTBF #3-39 #14-715 #15-811
$$BUFD #7-211 #7-211 #9-328 #11-516 #11-516 #14-722 #14-722 #15-812 #15-812 #16-843
#16-843
$$GETB #8-239 8-239 #17-861 17-861
$$MOV #7-211 #9-328 9-328 #9-336 9-336 9-336 9-336 #10-424 10-424 10-424
10-424 #11-473 11-473 11-473 11-473 #11-516 11-516 11-516 11-516 #12-582
12-582 12-582 12-582 #13-633 13-633 #14-722 14-722 #15-812 #16-843 16-843
16-843 16-843
$$MOVB #7-200 7-200 #7-211 7-211 #9-336 9-336 #10-424 10-424 #10-427 10-427
10-427 #11-473 11-473 #11-516 11-516 #11-522 11-522 11-522 #12-582 12-582
#13-613 13-613 13-613 #13-633 13-633 #14-722 14-722 #15-757 15-757 15-757
DTR CREATED BY MACRO ON 13-OCT-79 AT 09:53 PAGE 6
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
#15-759 15-759 #15-812 15-812 #16-843 16-843 #16-845 16-845 16-845
$$QUE #7-200 7-200 #7-211 7-211 #9-328 9-328 #9-336 9-336 #10-424 10-424
#10-427 10-427 #11-473 11-473 #11-516 11-516 #11-522 11-522 #12-582 12-582
#13-613 13-613 #13-633 13-633 #14-722 14-722 #15-757 15-757 #15-759 15-759
#15-812 15-812 #16-843 16-843 #16-845 16-845
.BIN #3-42
.CNB #3-42
.CNW #3-42
.CORE #3-42
.CSR #3-42
.DVCHA #3-42
.INT #3-42
.INT1 #3-42
.INT2 #3-42
.INT3 #3-42
.LFLHD #3-42 #5-95
.LIBR #3-42
.LINKS #3-42
.LSTHD #3-42
.LTAB #3-42
.MPLHD #3-42
.POOL #3-42
.PRI #3-42
.SCOM #3-42
.SECSR #3-42
.SLNB #3-42
.SLNW #3-42
.STNB #3-42
.STNW #3-42
.UNB #3-42
.UNW #3-42
.VFY #3-42