Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/mcb/nrd.list
There are no other files named nrd.list in the archive.
NRD MACRO M1110 13-OCT-79 09:51
TABLE OF CONTENTS
4- 52 NRD-DLC INTERFACE
5- 60 NRD INTERPROCESS COMMUNICATION CONVENTIONS
6- 104 INTERNAL MACROS
7- 129 DISPATCH TABLES
8- 280 MISCELLANEOUS GARBAGE
9- 299 NRDTIM - CCB REDISPATCHER
11- 369 NSPCON - CONNECT PROCESSOR
13- 472 TRANSMIT COMPLETE PROCESSOR
14- 506 NRDINT - INTERUPT MESSAGE SENT
15- 553 RECEIVE COMPLETE PROCESSORS
16- 607 CONTROL COMPLETE PROCESSOR
17- 623 CONTROL ENABLE PROCESSING
18- 645 CONTROL ENABLE,FS.GET FROM NRM
19- 673 NSPDAT - RECEIVE DATA FROM NSP
20- 766 NSPXOF - BACK-PRESSURE A LINE
20- 794 NSPXON - ENABLE BACK-PRESSURED LINE
21- 823 NSPDIS - DISCONNECT RECEIVED FOR A DATA PIPE
21- 899 NRDDIS - PIPE DISCONNECTED
22- 913 NURD UTILITIES
NRD MACRO M1110 13-OCT-79 09:51 PAGE 3
1 .TITLE NRD
2 .IDENT /006070/
3 ;
4 ; COPYRIGHT (C) 1977,1978,1979
5 ; DIGITAL EQUIPMENT CORPORATION
6 ;
7 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
8 ; SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE
9 ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR
10 ; ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE
11 ; MADE AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH
12 ; SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE
13 ; TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN
14 ; IN DEC.
15 ;
16 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
17 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
18 ; EQUIPMENT CORPORATION.
19 ;
20 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF
21 ; ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
22 ;
23 ;
24 ; NRD GENERIC DIALOG MANAGER
25 ;
26 ;
27 ; MODIFIED:
28 ;
29 ; 1.06 26-JAN-79 ALAN D. PECKHAM
30 ; MAKE INITIAL FLOW COUNT GLOBAL
31 ;
32 ; 6060 19-MAR-79 SCOTT G. ROBINSON
33 ; MAKE RESOURCE RECOVERY WORK AND
34 ; MODIFY CONTROL-START PROCESSING TO NOT REQUIRE AN
35 ; EXTRA CCB.
36 ;
37 ; 6070 19-MAR-79 SCOTT G. ROBINSON
38 ; MODIFY RESOURCE RECOVERY TO CLEAR RECOVERY BIT UPON
39 ; COMPLETION OF ROUTINE NRDTIM
40 ;
41 ; EXTERNAL MACROS
42 ;
43
44 .MCALL CCBDF$,NSPDF$,TTDF$,MAP,RETURN,$QLLC,$QDLC,NRDIN$
45 000000 CCBDF$ ;DEFINE CCB SYMBOLS
46 000000 NSPDF$ ;DEFINE NSP MACROS AND SYMBOLS
47 000000 TTDF$ ;DEFINE NRD CONTROL BLOCK SYMBOLS
48
49 .LIST MEB ;LET'S SEE SOME OF THAT HIDDEN CODE
50
NRD MACRO M1110 13-OCT-79 09:51 PAGE 4
NRD-DLC INTERFACE
52 .SBTTL NRD-DLC INTERFACE
53
54
55 .LIST ME
56 000000 NRDIN$
; CCB STATUS CODES : DLC ->NRD
100201 LS.ABO = 100201 ;ABORTING(COMPLIANCE WITH HIGHER (POWERS)
100202 LS.REJ = 100202 ;REJECTING MSG
100203 LS.CLO = 100203 ;DEVICE IS CLOSED,REJECTING
100204 LS.ILM = 100204 ;ILLEGAL NURD MSG
100205 LS.BOM = 100205 ;DLC IS ABORTING THE LINK DUE TO USER ERROR
; CCB STATUS CODES : NRD -> NRM
100377 NR.NDV = 100377 ;NOT A NURD DEVICE
57 .NLIST ME
58
NRD MACRO M1110 13-OCT-79 09:51 PAGE 5
NRD INTERPROCESS COMMUNICATION CONVENTIONS
60 .SBTTL NRD INTERPROCESS COMMUNICATION CONVENTIONS
61
62
63 ; DATA TO DLC FROM NRD
64 ;
65 ; NRD SENDS CCB OWNED BY NSP WITH FC.XME,NT$DAT DIRECTLY TO DLC.
66 ;
67 ;
68 ; DATA TO NRD FROM DLC
69 ;
70 ; DLC SENDS A CCB (OWNED BY DLC)TO NRD WITH FC.RCP,NT$DAT
71 ; AND A DATA BUFFER OWNED BY DLC.
72 ; NRD PASSES DLC'S CCB THRU TO NSP,SAVING C.BUF+2 IN C.BUF2+2, AND
73 ; MAPPING C.FNC TO FC.XME. NRD,UPON RETURN OF THE CCB FROM NSP, RESTORES
74 ; C.BUF+2 AND RETURNS IT TO DLC WITH FC.RCE,NT$DAT.
75 ;
76 ; NURD INTERFACE PROTOCOL
77 ;
78 ; USER INITIATED:
79 ;
80 ; FC.RCP,NT$DAT FC.XME,NT$DAT
81 ; USER/NSP ------------->NRD ------------->DLC (NON INTERRUPT)
82 ; <------------- NRD<------------- DLC
83 ; FC.RCE,NT$RTN FC.XCP,NT$DAT
84 ;
85 ;
86 ; FC.RCP,NT$INT FC.XME,NT$INT
87 ; USER/NSP ------------->NRD ------------->DLC (INTERRUPT)
88 ; <------------- NRD<------------- DLC
89 ; FC.RCE,NT$RTI FC.XCP,NT$INT DLC
90 ;
91 ;
92 ; DLC INITIATED:
93 ;
94 ; FC.XME,NT$DAT FC.RCP,NT$DAT
95 ; USER/NSP<------------- NRD<------------- DLC (NON INTERRUPT)
96 ; ------------->NRD ------------->DLC
97 ; FC.XCP,NT$DAT FC.RCE,NT$DAT
98 ;
99 ; FC.XME,NT$INT FC.RCP,NT$INT
100 ; USER/NSP<------------- NRD<------------- DLC (INTERRUPT)
101 ; ------------->NRD ------------->DLC
102 ; FC.XCP,NT$INT FC.RCE,NT$INT
NRD MACRO M1110 13-OCT-79 09:51 PAGE 6
INTERNAL MACROS
104 .SBTTL INTERNAL MACROS
105
106
107
108
109
110
111 .MACRO BADPIPE
112 BCC 9$
113 CRASH ;CRUFTY PIPE NUMBER
114 9$:
115
116 .ENDM BADPIPE
117
118 .MACRO BADTNM
119 BCC 9$
120 CRASH ;CRUFTY TERMINAL NUMBER
121 9$:
122 .ENDM BADTNM
123
124 .MACRO GTPCB$
125 GTULA$ R0
126 CALL $PCBPT
127 .ENDM GTPCB$
NRD MACRO M1110 13-OCT-79 09:51 PAGE 7
DISPATCH TABLES
129 .SBTTL DISPATCH TABLES
130
131
132 ;
133 ; CHANGEABLE DATA
134 ;
135
136 000000 000000G .FLOW:: .WORD F$LOW ;INITIAL FLOW COUNT.
137
138 000002 000000 .QUESW::.WORD 0 ; TIMER SWITCHES:
139 100000 QS.CVR == 100000 ; RECOVERY IN PROGRESS.
140 000400 QS.CCB == 000400 ; CCB PENDING.
141 ; 000377 ; PIPE BEING FLUSHED.
142
143 000004 000000 000004' .WTQUE::.WORD 0,.-2 ; RESOURCE WAIT QUEUE.
144 ;
145 ;
146 ;
147 ; PRIMARY DISPATCH TABLE
148 ;
149
150 000010 000011' $NRDTB::.WORD .+1 ;FC.XME TRANSMIT ENABLE
151 000012 000013' .WORD .+1 ;FC.RCE RECEIVE ENABLE
152 000014 000015' .WORD .+1 ;FC.KIL KILL ENABLE
153 000016 000034' .WORD NRDCTL ;FC.CTL CONTROL ENABLE(NRM)
154 000020 000326' .WORD NRDTIM ;FC.TIM TIMEOUT(NURD RSOURCE FAILURES)
155 000022 000114' .WORD NRDXCP ;FC.XCP TRANSMIT COMPLETE(NSP,DLC)
156 000024 000062' .WORD NRDRCP ;FC.RCP RECEIVE COMPLETE(NSP,DLC)
157 000026 000027' .WORD .+1 ;FC.KCP KILL COMPLETE
158 000030 000202' .WORD NRDCCP ;FC.CCP CONTROL COMPLETE(NSP,NRM,DLC)
159
160 000022 NR$RWT = .-$NRDTB
161 000032 000412' .WORD NRDRWC ;NR$RWT NRD RESOURCE WAIT COMPLETE
162
163
164
165 ;
166
167 ; DISPATCH FOR CONTROL ENABLE
168
169 000034 000173 000040' NRDCTL: JMP @1$(R3) ;DISPATCH AGAIN
170
171 000040 000041' 1$: .WORD .+1 ;FS.INI
172 000042 001572' .WORD CTLSTR ;FS.STR NRM START(OPEN) DEV
173 000044 001572' .WORD CTLSTP ;FS.STP NRM STOP (CLOSE) DEV
174 000046 000047' .WORD .+1 ;FS.TRM
175 000050 000051' .WORD .+1 ;
176 000052 000053' .WORD .+1 ;FS.SET
177 000054 001636' .WORD CTLGET ;FS.GET
178 000056 000057' .WORD .+1 ;NT$XON
179 000060 000061' .WORD .+1 ;NT$XOF
180
181
182 ; DISPATCH TABLE FOR RECEIVE COMPLETE
183 ;
184
185
NRD MACRO M1110 13-OCT-79 09:51 PAGE 7-1
DISPATCH TABLES
186 000062 005764 000006 NRDRCP: TST C.LIN(R4) ;CLEVERLY FIGURE OUT WHO SENT IT
187 000066 100005 BPL DLCRCP ;DLC IS POKING US
188
189 ; NSP DID IT
190
191 000070 000173 000074' NSPRCP: JMP @1$(R3)
192
193 000074 000544' 1$: .WORD NSPCON ;NT$CON NSP RECEIVE CONNECT
194 000076 001710' .WORD NSPDAT ;NT$DAT NSP RECEIVE DATA
195 000100 001710' .WORD NSPINT ;NT$INT NSP RECEIVE INTERRUPT
196
197 ; DLC IS GUILTY
198
199 000102 000173 000106' DLCRCP: JMP @1$(R3)
200
201 000106 000107' 1$: .WORD .+1
202 000110 001410' .WORD DLCDAT ;NT$DAT DLC DATA TO USER
203 000112 001410' .WORD DLCINT ;NT$INT DLC INTERRUPT TO USER(ALERT)
204
205
206
207
208 ;
209 ; DISPATCH TABLE FOR TRANSMIT COMPLETE
210 ;
211
212 000114 005764 000006 NRDXCP: TST C.LIN(R4) ;CONTROL COMPLETE - DETERMINE SENDER
213 000120 100414 BMI NSPXCP ;NSP DID IT
214
215 000122 000173 000126' DLCXCP: JMP @1$(R3) ;DLC SENT IT
216
217 000126 000127' 1$: .WORD .+1 ;NT$CON DLC CONNECT COMPLETE
218 000130 001066' .WORD DLCRTN ;NT$DAT DLC DATA TRANSMITTED
219 000132 001066' .WORD DLCRTI ;NT$INT DLC INTERRUPT TRANSMITTED
220 000134 000135' .WORD .+1 ;NT$SNG
221 000136 000137' .WORD .+1 ;NT$DIS DLC DISCONNECT COMPLETE
222 000140 000141' .WORD .+1 ;NT$MOD DLC FLOW CONTROL MODIFIED
223 000142 000143' .WORD .+1 ;NT$QRY DLC HERE ARE REMOTE REQUEST COUNTS
224 000144 000145' .WORD .+1 ;NT$XON DLC LINK ENABLED
225 000146 000147' .WORD .+1 ;NT$XOF DLC LINK DISABLED
226 000150 000151' .WORD .+1 ;NT$ABO DLC ABORT COMPLETE
227
228
229 000152 000173 000156' NSPXCP: JMP @10$(R3) ;DISPATCH TRANSMIT COMPLETE:
230
231 000156 000157' 10$: .WORD .+1 ;NT$CON NSP CONNECT COMPLETE
232 000160 001300' .WORD NSPRTN ;NT$DAT NSP DATA TRANSMITTED
233 000162 001206' .WORD NRDINT ;NT$INT NSP INTERRUPT TRANSMITTED
234 000164 000165' .WORD .+1 ;NT$SNG
235 000166 002732' .WORD NRDDIS ;NT$DIS NSP DISCONNECT COMPLETE
236 000170 000000G .WORD $CCBRT ;NT$MOD NSP FLOW CONTROL MODIFIED
237 000172 000173' .WORD .+1 ;NT$QRY NSP HERE ARE REMOTE REQUEST COUNTS
238 000174 000175' .WORD .+1 ;NT$XON NSP LINK ENABLED
239 000176 000177' .WORD .+1 ;NT$XOF NSP LINK DISABLED
240 000200 002732' .WORD NRDDIS ;NT$ABO NSP ABORT COMPLETE
241
242 ;
NRD MACRO M1110 13-OCT-79 09:51 PAGE 7-2
DISPATCH TABLES
243 ; DISPATCH TABLE FOR CONTROL COMPLETE
244 ;
245
246 000202 005764 000006 NRDCCP: TST C.LIN(R4) ;FIND WHO IS CALLING
247 000206 100413 BMI NSPCCP ;NSP DID IT
248
249 000210 000173 000214' DLCCCP: JMP @1$(R3) ;CONTROL COMPLETE DISPATCH
250
251 000214 000215' 1$: .WORD .+1 ;FS.AST ASYNCHRONOUS MSG
252 000216 001556' .WORD CCPSTR ;FS.STR DLC START COMPLETE
253 000220 001556' .WORD CCPSTP ;FS.STP DLC STOP COMPLETE
254 000222 000223' .WORD .+1 ;FS.TRM TERMINATE
255 000224 000225' .WORD .+1 ;NT$DIS RECEIVE DISCONNECT
256 000226 000227' .WORD .+1 ;FS.SET UNUSED
257 000230 000231' .WORD .+1 ;FS.GET UNUSED
258 000232 000233' .WORD .+1 ;NT$XON TURN FLOW ON
259 000234 000235' .WORD .+1 ;NT$XOF TURN FLOW OFF
260
261 000236 000173 000242' NSPCCP: JMP @1$(R3) ;NSP/NRM CCP DISPATCH
262
263 000242 000243' 1$: .WORD .+1 ;FS.INI UNUSED
264 000244 000245' .WORD .+1 ;FS.STR START COMPLETE
265 000246 000247' .WORD .+1 ;FS.STP STOP COMPLETE
266 000250 002576' .WORD NRMTRM ;FS.TRM NRM TERMINATE
267 000252 002404' .WORD NSPDIS ;NT$DIS NSP RECEIVE DISCONNECT
268 000254 000255' .WORD .+1 ;FS.SET UNUSED
269 000256 000257' .WORD .+1 ;FS.GET UNUSED
270 000260 002310' .WORD NSPXON ;NT$XON NSP TURN FLOW ON
271 000262 002236' .WORD NSPXOF ;NT$XOF NSP TURN FLOW OFF
272
273
274 ;
275 ; CRASH ROUTINE
276 ;
277
278 000264 000004 CRASH: IOT
NRD MACRO M1110 13-OCT-79 09:51 PAGE 8
MISCELLANEOUS GARBAGE
280 .SBTTL MISCELLANEOUS GARBAGE
281
282
283
284
285
286
287
288 ; NURD DEVICE TYPES (TERMINAL TYPES TO NRM)
289
290 000266 006 NDVTB: .BYTE TT.LE ;LP11
291 000267 007 .BYTE TT.LP ;LP20
292 000270 011 .BYTE TT.CD ;CD20
293 000271 010 .BYTE TT.CR ;CR11
294 000004 NDVTBL=.-NDVTB
295 .EVEN
296
297
NRD MACRO M1110 13-OCT-79 09:51 PAGE 9
NRDTIM - CCB REDISPATCHER
299 .SBTTL NRDTIM - CCB REDISPATCHER
300 ;+
301 ; QUEUE UP A CCB FOR A RESOURCE WAIT
302 ;
303 ; INPUTS:
304 ; R4 - CCB TO QUEUE UP
305 ; (SP) - RETRY ADDRESS
306 ;-
307
308 000272 012664 000030 NRDRWT: MOV (SP)+,C.CNT2(R4) ; SET THE RETURN ADDRESS
309 000276 112764 000022 000010 MOVB #NR$RWT,C.FNC(R4) ; AND FUNCTION CODE.
310
311 000304 012703 000002' NRDQUE: MOV #.QUESW,R3 ; POINT TO THE SWITCHES
312 000310 052723 000400 BIS #QS.CCB,(R3)+ ; IF NO RECOVERY IN PROGRESS
313 000314 100402 BMI 10$ ; THEN
314 000316 CALLR $CMQIN ; QUEUE TO THE REAR
000316 000167 000000G JMP $CMQIN
315 000322 10$: CALLR $CMQIF ; OTHERWISE TO THE FRONT.
000322 000167 000000G JMP $CMQIF
316
317 000326 012703 000002' NRDTIM: MOV #.QUESW,R3 ; POINT TO SWITCHES
318 000332 005713 TST (R3) ; IF NOTHING TO DO
319 000334 003425 BLE 90$ ; THEN QUIT.
320 000336 052713 100000 BIS #QS.CVR,(R3) ; OTHERWISE SET RECOVERY SWITCH
321 000342 042723 000400 20$: BIC #QS.CCB,(R3)+ ; RESET CCB PENDING SWITCH
322 000346 CALL $CMQRM ; AND SEE IF ANYTHING IS IN THE QUEUE.
000346 004767 000000G JSR PC,$CMQRM
323 000352 103413 BCS 80$ ; IF SO,
324 000354 116403 000011 MOVB C.MOD(R4),R3 ; PICK UP MODIFIER
325 000360 116400 000010 MOVB C.FNC(R4),R0 ; AND FUNCTION CODE
326 000364 CALL @$NRDTB(R0) ; AND RE-DISPATCH FUNCTION.
000364 004770 000010' JSR PC,@$NRDTB(R0)
327 000370 012703 000002' MOV #.QUESW,R3 ; POINT TO SWITCHES
328 000374 032713 000400 BIT #QS.CCB,(R3) ; IF NO RESOURCE ERROR,
329 000400 001760 BEQ 20$ ; THEN GO FOR MORE.
330 000402 042767 100000 177372 80$: BIC #QS.CVR,.QUESW ; RESET RECOVERY SWTCH
331 000410 90$: RETURN ; AND WAIT.
000410 000207 RTS PC
332
333 ;+
334 ; RESOURCE WAIT COMPLETE - DISPATCH THE CCB TO THE RETRY ROUTINE
335 ;-
336
337 000412 NRDRWC: GTPCB$ ; GET THE PCB AND
000412 005000 CLR R0
000414 156400 000006 BISB C.LIN(R4),R0
000420 004767 000000G JSR PC,$PCBPT
338 000424 000174 000030 JMP @C.CNT2(R4) ; DISPATCH TO RETRY ROUTINE.
NRD MACRO M1110 13-OCT-79 09:51 PAGE 10
NRDTIM - CCB REDISPATCHER
340 ;+
341 ; FLUSH THE RESOURCE WAIT QUEUE OF REQUESTS FOR THE PIPE SPECIFIED
342 ; IN ".QUESW".
343 ;-
344
345 000430 012703 000002' NRDFLS: MOV #.QUESW,R3 ; POINT TO THE SWITCHES
346 000434 052713 100000 BIS #QS.CVR,(R3) ; SIMULATE RESOURCE RECOVERY
347 000440 042723 000400 BIC #QS.CCB,(R3)+ ; AND CLEAR THE CCB INDICATOR.
348 000444 016346 000002 MOV 2(R3),-(SP) ; PUSH THE LIST HEAD
349 000450 011346 MOV (R3),-(SP) ; ONTO THE STACK
350 000452 005013 CLR (R3) ; AND CLEAR IT.
351 000454 010363 000002 MOV R3,2(R3)
352 000460 010603 10$: MOV SP,R3 ; GET STACK LISTHEAD
353 000462 CALL $CMQRM ; AND GET NEXT ITEM
000462 004767 000000G JSR PC,$CMQRM
354 000466 103421 BCS 30$ ; IF THERE IS ONE.
355 000470 012703 000002' MOV #.QUESW,R3 ; GET SWITCHES
356 000474 126413 000006 CMPB C.LIN(R4),(R3) ; IS THIS FOR THE RIGHT PIPE ?
357 000500 001405 BEQ 20$ ; IF NOT,
358 000502 052723 000400 BIS #QS.CCB,(R3)+ ; INDICATE QUEUE NOT CLEAR
359 000506 CALL $CMQIN ; AND RE-INSERT THE REQUEST.
000506 004767 000000G JSR PC,$CMQIN
360 000512 000762 BR 10$
361 000514 116403 000011 20$: MOVB C.MOD(R4),R3 ; PICK UP MODIFIER
362 000520 116400 000010 MOVB C.FNC(R4),R0 ; FUNCTION CODE
363 000524 CALL @$NRDTB(R0) ; AND DISPATCH.
000524 004770 000010' JSR PC,@$NRDTB(R0)
364 000530 000753 BR 10$ ; GO BACK FOR MORE.
365 000532 042767 100000 177242 30$: BIC #QS.CVR,.QUESW ; TURN OFF RECOVERY BIT
366 000540 022626 CMP (SP)+,(SP)+ ; CLEAR OFF STACK
367 000542 RETURN ; AND GO BACK.
000542 000207 RTS PC
NRD MACRO M1110 13-OCT-79 09:51 PAGE 11
NSPCON - CONNECT PROCESSOR
369 .SBTTL NSPCON - CONNECT PROCESSOR
370 ;
371 ; RECEIVE CONNECT
372 ;
373 ; INPUTS: R4 -> CONNECT CCB
374 ; CCB CONNECT BLOCK
375 ; -------------------- --------------------
376 ; ! ! ! TARGET ! N.NODE
377 ; = = ! NODE !
378 ; ! ! ! NAME !
379 ; !------------------! !------------------!
380 ;C.LIN ! NRD ! LLA ! ! TARGET SEGMENT ! N.SEG
381 ;C.STA ! PDV# ! ! ! SIZE !
382 ; !------------------! !------------------!
383 ;C.FNC ! NT.CON ! FC.RCP ! ! NRM/NRD ! 0 ! N.DFMT
384 ;C.MOD ! ! ! ! OBJ TYP ! ! N.DOBJ
385 ; !------------------! !------------------!
386 ; = = = =
387 ;C.BUF ! DOUBLEWORD ADDR ! ! SOURCE ! SOURCE ! N.SFMT
388 ; ! OF CONNECT BLOCK ! ! OBJ TYP ! FMT ! N.SOBJ
389 ; !------------------! !------------------!
390 ;C.CNT ! SIZE OF ! ! SOURCE ! N.SDSC
391 ; ! CONNECT BLOCK ! ! DESCRIPTOR !
392 ; !------------------! = =
393 ;C.FLG ! FLAGS ! ! !
394 ; !------------------! !------------------!
395 ; !REQSTR ID LEN = 2 ! N.RQDL
396 ; (SECOND DESCRIPTOR !------------------!
397 ; ONLY IF CONNECTING ! USER ID ! N.RQID
398 ; DATA PIPE TO NRD) !------------------!
399 ;
400 ; !------------------!
401 ;C.BUF2 ! DOUBLEWORD ADDR. !
402 ; ! OF OPTIONAL DATA !
403 ; ! BUFFER !
404 ; !------------------!
405 ;C.CNT2 ! LENGTH OF BUFFER !
406 ; !------------------!
407 ;
408 ;
409 ; OUTPUT: R4 -> CONNECT CCB
410 ;
411 ; CCB OPTIONAL DATA (NRD ACCEPT ONLY)
412 ; !------------------! !-------------------!
413 ; ! ! ! BULA !
414 ; = = !-------------------!
415 ; ! !
416 ; !------------------!
417 ;C.LIN ! PD$NSP ! ULA !
418 ;C.STA ! ! !
419 ; !------------------!
420 ;C.FNC ! NT.ACC ! FC.RCE !
421 ;C.MOD ! OR ! !
422 ; ! NT.REJ ! !
423 ; !------------------!
424 ; ! !
425 ; = =
NRD MACRO M1110 13-OCT-79 09:51 PAGE 11-1
NSPCON - CONNECT PROCESSOR
426 ; ! !
427 ; !------------------!
428 ;C.CNT ! LENGTH OF OPT. !
429 ; ! DATA = 0 OR 2 !
430 ; !------------------!
431 ;
432
NRD MACRO M1110 13-OCT-79 09:51 PAGE 12
NSPCON - CONNECT PROCESSOR
434 000544 NSPCON:
435 000544 010405 MOV R4,R5 ; SAVE CONNECT CCB
436 000546 CALL $CCBGT ; AND TRY FOR A FLOW CCB
000546 004767 000000G JSR PC,$CCBGT
437 000552 103003 BCC 10$ ; IF NOT RECIEVED
438 000554 010504 MOV R5,R4
439 000556 CALLR NRDQUE ; WAIT UNTIL WE CAN GET ONE.
000556 000167 177522 JMP NRDQUE
440 000562 010401 10$: MOV R4,R1 ; SAVE FLOW CCB ADDRESS
441 000564 010504 MOV R5,R4 ; AND RECOVER CONNECT CCB.
442 000566 MAP C.BUF(R4) ; MAP TO AND
000566 016467 000014 172354 MOV C.BUF(R4),KISAR6
443 000574 016402 000016 MOV C.BUF+2(R4),R2 ; GET ADDRESS OF CONNECT BLOCK.
444 000600 026227 000006 000003 CMP N.SEG(R2),#3. ; NO MINIMUM SEGMENT SIZE TO SPEAK OF
445 000606 002407 BLT 20$ ; BUT MUST BE ABLE TO HOLD HEADER.
446 000610 026227 000060 000002 CMP N.RQDL(R2),#2 ; IF USERID LENGTH
447 000616 001003 BNE 20$ ; NOT 2 BYTES LONG THEN REJECT.
448 000620 CALL $PCBGT ; GET A PCB
000620 004767 000000G JSR PC,$PCBGT
449 000624 103024 BCC 30$ ; IF THERE IS NOT ONE AVAILABLE
450 000626 20$: NREJ$ #0 ; REJECT THE CONNECTION
000626 016446 000004 MOV C.NSP(R4),-(SP)
000632 016464 000006 000004 MOV C.LIN(R4),C.NSP(R4)
000640 012664 000006 MOV (SP)+,C.LIN(R4)
000644 005064 000020 CLR C.CNT1(R4)
000650 012764 002002 000010 MOV #<NT$REJ*400!FC.RCE>,C.FNC(R4)
000656 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
000664 004767 000000G JSR PC,$LLCRS
451 000670 010104 MOV R1,R4 ; AND
452 000672 CALLR $CCBRT ; RETURN THE FLOW CCB.
000672 000167 000000G JMP $CCBRT
453
454 ;
455 ; GOT A PCB - FORMAT IT AND ACCEPT CONNECTION
456 ;
457
458 000676 016263 000062 000006 30$: MOV N.RQID(R2),P.USER(R3) ; SAVE USER ID IN PCB
459 000704 016263 000006 000022 MOV N.SEG(R2),P.SEG(R3) ;SEGMENT SIZE
460 000712 116463 000007 000021 MOVB C.STA(R4),P.SPI(R3) ; WE NOW OWN THIS PIPE
461 000720 GTLLA$ P.LLA(R3) ; ON THIS LLA
000720 116463 000004 000016 MOVB C.NSP(R4),P.LLA(R3)
462 000726 005063 000004 CLR P.CBTN(R3) ; CLEAR CURRENT BTN.
463 000732 052763 020022 000010 BIS #PS.CC!PS.DAT!PS.BP,P.STS(R3) ; MARK PCB AS "CONNECT COMPLETE"
464
465 000740 116312 000020 MOVB P.NUM(R3),(R2) ; MOVE BULA TO OPTIONAL DATA
466 000744 NACC$ (R2),#NT.SFL,#1 ; ACCEPT CONNECTION (USING BULA AS ULA)
000744 016446 000004 MOV C.NSP(R4),-(SP)
000750 016464 000006 000004 MOV C.LIN(R4),C.NSP(R4)
000756 012664 000006 MOV (SP)+,C.LIN(R4)
000762 111264 000004 MOVB (R2),C.NSP(R4)
000766 012764 000001 000012 MOV #NT.SFL,C.STS(R4)
000774 012764 000001 000020 MOV #1,C.CNT1(R4)
001002 012764 001002 000010 MOV #<NT$ACC*400!FC.RCE>,C.FNC(R4)
001010 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
001016 004767 000000G JSR PC,$LLCRS
467 001022 010104 MOV R1,R4 ; GET THE FLOW CCB
468 001024 005064 000016 CLR C.BUF+2(R4) ; INDICATE NO BUFFER.
NRD MACRO M1110 13-OCT-79 09:51 PAGE 12-1
NSPCON - CONNECT PROCESSOR
469 001030 NMOD$ P.LLA(R3),.FLOW ; SET FLOW COUNT.
001030 116364 000016 000006 MOVB P.LLA(R3),C.LIN(R4)
001036 116764 176736 000004 MOVB .FLOW,C.NSP(R4)
001044 012764 005000 000010 MOV #<NT$MOD*400!FC.XME>,C.FNC(R4)
001052 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
001060 004767 000000G JSR PC,$LLCRS
470 001064 RETURN
001064 000207 RTS PC
NRD MACRO M1110 13-OCT-79 09:51 PAGE 13
TRANSMIT COMPLETE PROCESSOR
472 .SBTTL TRANSMIT COMPLETE PROCESSOR
473 ;
474 ; TRANSMIT COMPLETE PROCESSOR
475 ;
476 ; FROM NSP: NT$DAT,NT$INT - RESOURCE RETURN
477 ; FROM DLC: NT$DAT,NT$INT - RESOURCE RETURN
478 ;
479 ; R4 -> A COMPLETED CCB
480 ;
481
482
483 001066 DLCRTI: ;DLC - INTERRUPT RESOURCE RETURN
484
485 001066 DLCRTN: ;DLC - DATA RESOURCE RETURN
486 001066 005000 CLR R0
487 001070 156400 000006 BISB C.LIN(R4),R0 ;GET TERMINAL NUMBER
488 001074 CALL $TCBPT ;GET R5/TCB
001074 004767 000000G JSR PC,$TCBPT
489 001100 BADTNM
001100 103001 BCC 9$
001102 000004 IOT
490 001104 016503 000006 MOV T.PCBD(R5),R3 ;GET R3/PCB
491 ; JMP NSPRET ;NOW RETURN THE CCB TO NSP
492 ;
493 ; NSPRET - ENTER HERE TO RETURN A CCB TO NSP
494 ;
495 ; R3 - PCB ADDRESS
496 ; R4 - CCB TO RETURN
497 ;
498 001110 122764 000004 000011 NSPRET: CMPB #NT$INT,C.MOD(R4) ;CHECK TYPE OF RETURN
499 001116 001417 BEQ 10$ ;INTERRUPT
500 001120 NRTN$ P.LLA(R3),#NT.MD1!NT.ACK ;DATA - ACK AND INCREMENT THE FLOW COUNT
001120 116364 000016 000006 MOVB P.LLA(R3),C.LIN(R4)
001126 012764 000421 000012 MOV #NT.MD1!NT.ACK,C.STS(R4)
001134 012764 000002 000010 MOV #<NT$RTN*400!FC.RCE>,C.FNC(R4)
001142 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
001150 004767 000000G JSR PC,$LLCRS
501 001154 RETURN
001154 000207 RTS PC
502
503 001156 10$: NRTI$ P.LLA(R3) ;RETURN THE INTERRUPT CCB
001156 116364 000016 000006 MOVB P.LLA(R3),C.LIN(R4)
001164 012764 004002 000010 MOV #<NT$RTI*400!FC.RCE>,C.FNC(R4)
001172 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
001200 004767 000000G JSR PC,$LLCRS
504 001204 RETURN
001204 000207 RTS PC
NRD MACRO M1110 13-OCT-79 09:51 PAGE 14
NRDINT - INTERUPT MESSAGE SENT
506 .SBTTL NRDINT - INTERUPT MESSAGE SENT
507 ;+
508 ; IT IS POSSIBLE THAT AN INTERRUPT MESSAGE MIGHT NOT BE SENT DUE TO THE
509 ; NSP RESTRICTION THAT ONLY ONE INTERRUPT MESSAGE MAY BE PENDING AT ANY
510 ; TIME. IF WE COME BACK WITH THE ERROR 'NE.TIM' QUEUE THE CCB UP TO
511 ; RE-ISSUE THE MESSAGE AFTER A CLOCK TICK.
512 ;
513 ; INPUT:
514 ; R4 - CCB W/FC.XCP INTERRUPT MESSAGE
515 ;-
516
517 001206 NRDINT: ;NSP IS RETURNING AN INTERRUPT MSG
518 001206 122764 177772 000012 CMPB #NE.TIM,C.STS(R4) ; IF NOT TOO MANY INTERRUPTS
519 001214 001031 BNE 90$ ; THEN RETURN THE BUFFER
520 001216 CALL NRDRWT ; OTHERWISE WAIT A SECOND
001216 004767 177050 JSR PC,NRDRWT
521 001222 GTULA$ R0 ; GET THE PIPE NUMBER
001222 005000 CLR R0
001224 156400 000006 BISB C.LIN(R4),R0
522 001230 CALL $PCBPT ; THE PCB ENTRY
001230 004767 000000G JSR PC,$PCBPT
523 001234 BADPIPE
001234 103001 BCC 9$
001236 000004 IOT
524 001240 032763 000002 000010 BIT #PS.CC,P.STS(R3);IS PIPE STILL VALID?
525 001246 001414 BEQ 90$ ;NO, SO RETURN CCB TO SERVER
526 ;YES, SO SEND INTERRUPT MESSAGE
527 001250 NINT$ P.LLA(R3) ; AND TRY TO RE-INTERRUPT.
001250 116364 000016 000006 MOVB P.LLA(R3),C.LIN(R4)
001256 012764 002000 000010 MOV #<NT$INT*400!FC.XME>,C.FNC(R4)
001264 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
001272 004767 000000G JSR PC,$LLCRS
528 001276 RETURN
001276 000207 RTS PC
529 001300 90$: ;FALL INTO NSPRTN
530
531
532
533 001300 NSPRTN: ;NSP IS RETURNING A DATA CCB
534 001300 005000 CLR R0
535 001302 156400 000006 BISB C.LIN(R4),R0 ;GET PIPE NUMBER
536 001306 CALL $PCBPT ;GET R3/PCB
001306 004767 000000G JSR PC,$PCBPT
537 001312 BADPIPE
001312 103001 BCC 9$
001314 000004 IOT
538 001316 016305 000002 MOV P.OPN(R3),R5 ;GET THE TCB
539 001322 CALL NRDDEV ;CHECK PROPRIETY
001322 004767 001432 JSR PC,NRDDEV
540 001326 103001 BCC 10$
541 001330 CRASH ;NSP IS SENDING COMPLETE TO WRONG SERVER
001330 000004 IOT
542 001332 016464 000026 000016 10$: MOV C.BUF2+2(R4),C.BUF+2(R4) ;UNMUNG BUF PTR
543 001340 112764 000002 000010 MOVB #FC.RCE,C.FNC(R4) ;MAP THE FCN CODE,LEAVE C.MOD AS IS
544 001346 116400 000011 MOVB C.MOD(R4),R0 ;SAVE THE MSG TYPE
545 001352 $QDLC ,T.NUM(R5) ;SHIP CCB BACK TO DLC
001352 116564 000016 000006 MOVB T.NUM(R5),C.LIN(R4)
NRD MACRO M1110 13-OCT-79 09:51 PAGE 14-1
NRDINT - INTERUPT MESSAGE SENT
001360 004767 000000G JSR PC,$LLCRQ
546 001364 122700 000004 CMPB #NT$INT,R0 ;CHECK MSG TYPE
547 001370 001406 BEQ 20$ ;INTERRUPT - JUST GO AWAY
548 001372 032763 000020 000010 BIT #PS.BP,P.STS(R3) ;DATA - IS LINE XOF'D?
549 001400 001002 BNE 20$
550 001402 000167 000732 JMP UNQUE ;IF NOT, GO CHECK BACKPRESSURE QUEUE
551 001406 20$: RETURN ;IF SO, JUST GO AWAY
001406 000207 RTS PC
NRD MACRO M1110 13-OCT-79 09:51 PAGE 15
RECEIVE COMPLETE PROCESSORS
553 .SBTTL RECEIVE COMPLETE PROCESSORS
554 ;
555 ; RECEIVE COMPLETE PROCESSOR
556 ;
557 ; FROM NSP: NT$CON - CONNECT REQ TO GET DATA PIPE
558 ; NT$DAT - INCOMING DATA
559 ; FROM DLC: NT$DAT - OUTGOING DATA
560 ; NT$INT - OUTGOING INTERRUPT MSG(ALERT)
561 ;
562 ; INPUTS: R4 -> CCB
563 ; R3 = SUBFUNCTION = C.MOD(R4)
564 ;
565 ; OUTPUTS: DEPENDENT ON SUB-FUNCTION
566 ;
567
568
569
570
571 ;
572 ; RECEIVE DATA FROM DLC
573 ;
574 ; R4/CCB
575 ;
576
577
578
579
580
581
582 001410 DLCINT: ;DLC IS SENDING AN INTERRUPT MSG
583
584 001410 DLCDAT: ;DLC IS SENDING A DATA MSG
585 001410 005000 CLR R0
586 001412 156400 000006 BISB C.LIN(R4),R0 ;GET THE TERMINAL NUMBER
587 001416 CALL $TCBPT ;GET R5/TCB
001416 004767 000000G JSR PC,$TCBPT
588 001422 BADTNM
001422 103001 BCC 9$
001424 000004 IOT
589 001426 016503 000006 MOV T.PCBD(R5),R3 ;GET THE PCB
590 001432 016464 000016 000026 MOV C.BUF+2(R4),C.BUF2+2(R4) ;HIDE BUF PTR FROM NSP
591
592 001440 122764 000004 000011 CMPB #NT$INT,C.MOD(R4) ;CHECK TYPE
593 001446 001427 BEQ 30$ ;INTERRUPT
594 001450 005763 000012 TST P.BPQ(R3) ;CHECK FOR WAITING LINE
595 001454 001004 BNE 10$ ;IF SO, JUST QUEUE
596 001456 032763 000020 000010 BIT #PS.BP,P.STS(R3) ;CHECK FOR CONSTIPATION
597 001464 001404 BEQ 20$
598 001466 062703 000012 10$: ADD #P.BPQ,R3 ;SET R3/BACKPRESSURE QUEUE
599 001472 CALLR $CMQIN ;STUFF THE CCB IN QUEUE
001472 000167 000000G JMP $CMQIN
600
601 001476 20$: NDAT$ P.LLA(R3) ;SEND DATA OFF TO NSP
001476 116364 000016 000006 MOVB P.LLA(R3),C.LIN(R4)
001504 012764 001000 000010 MOV #<NT$DAT*400!FC.XME>,C.FNC(R4)
001512 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
001520 004767 000000G JSR PC,$LLCRS
NRD MACRO M1110 13-OCT-79 09:51 PAGE 15-1
RECEIVE COMPLETE PROCESSORS
602 001524 RETURN
001524 000207 RTS PC
603
604 001526 30$: NINT$ P.LLA(R3) ;SEND INTERRUPT TO NSP
001526 116364 000016 000006 MOVB P.LLA(R3),C.LIN(R4)
001534 012764 002000 000010 MOV #<NT$INT*400!FC.XME>,C.FNC(R4)
001542 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
001550 004767 000000G JSR PC,$LLCRS
605 001554 RETURN
001554 000207 RTS PC
NRD MACRO M1110 13-OCT-79 09:51 PAGE 16
CONTROL COMPLETE PROCESSOR
607 .SBTTL CONTROL COMPLETE PROCESSOR
608
609 ;
610 ; CONTROL COMPLETE PROCESSOR
611 ;
612 ; INPUTS: R4 -> CCB
613 ;
614
615
616
617 001556 CCPSTP: ;DLC IS RETURNING STOP COMPLETE
618 001556 CCPSTR: ;DLC IS RETURNING START COMPLETE
619 ; JMP SNDNRM ;RETURN CCB TO NRM
620 001556 SNDNRM: $QLLC ,#PD$NRM ;DON'T MUNG ANYTHING, JUST SEND IT
001556 112764 000000G 000007 MOVB #PD$NRM,C.STA(R4)
001564 004767 000000G JSR PC,$LLCRS
621 001570 RETURN
001570 000207 RTS PC
NRD MACRO M1110 13-OCT-79 09:51 PAGE 17
CONTROL ENABLE PROCESSING
623 .SBTTL CONTROL ENABLE PROCESSING
624
625 ; NRM START AND STOP FUNCTIONS
626
627
628 001572 CTLSTP: ;NRM - STOP DEV(CLOSE)
629 001572 CTLSTR: ;NRM - START DEV(OPEN)
630
631 001572 005000 CLR R0
632 001574 156400 000006 BISB C.LIN(R4),R0 ;GET THE TERMINAL NUMBER
633 001600 CALL $TCBPT ;GET R5/TCB
001600 004767 000000G JSR PC,$TCBPT
634 001604 BADTNM
001604 103001 BCC 9$
001606 000004 IOT
635 001610 CALL NRDDEV ;MAKE SURE IT IS A NURD DEV
001610 004767 001144 JSR PC,NRDDEV
636 001614 103403 BCS 110$ ;LOSER
637 001616 $QDLC ;SEND START/STOP DOWN TO DLC
001616 004767 000000G JSR PC,$LLCRQ
638 001622 RETURN
001622 000207 RTS PC
639
640
641 001624 112764 000020 000010 110$: MOVB #FC.CCP,C.FNC(R4) ;RETURN CCB TO NRM WITH ERROR CODE
642 001632 000167 177720 JMP SNDNRM
643
NRD MACRO M1110 13-OCT-79 09:51 PAGE 18
CONTROL ENABLE,FS.GET FROM NRM
645 .SBTTL CONTROL ENABLE,FS.GET FROM NRM
646 ;
647 ; THIS SHOULD BE A 'FS.GET' FROM NRM REQUESTING THE INDEX OF THE LLC
648 ; WHICH IS TO BE SERVER FOR A SPECIFIED RESOURCE.
649 ;
650 ; INPUTS:
651 ; R4 - CONTROL CCB
652 ; C.LIN - TERMINAL NUMBER
653 ;
654 ; OUTPUTS:
655 ; IN CONTROL COMPLETE CCB:
656 ; C.STS - STATUS OF SERVER CHECK:
657 ; +1 - SERVER FOUND
658 ; -1 - NO SERVER AVAILABLE FOR SPECIFIED RESOURCE
659 ; @C.BUF2 - BYTE OF SERVER PROCESS INDEX
660 ;
661
662 001636 012764 000001 000012 CTLGET: MOV #1,C.STS(R4) ; ASSUME SUCCESS
663 001644 005000 CLR R0
664 001646 156400 000006 BISB C.LIN(R4),R0 ;GET THE TERMINAL NUMBER
665 001652 CALL $TCBPT ;GET R5/TCB
001652 004767 000000G JSR PC,$TCBPT
666 001656 BADTNM
001656 103001 BCC 9$
001660 000004 IOT
667 001662 CALL NRDDEV ;VERIFY NURD DEVICE
001662 004767 001072 JSR PC,NRDDEV
668 001666 103403 BCS 90$ ;C.STS ERROR CODE SET
669 001670 116774 000000G 000026 MOVB $CMPDV,@C.BUF2+2(R4) ; SET PROCESS INDEX = NRD
670 001676 012764 006020 000010 90$: MOV #<FC.CCP!FS.GET>,C.FNC(R4)
671 001704 000167 177646 JMP SNDNRM ;SEND BACK TO NRM
NRD MACRO M1110 13-OCT-79 09:51 PAGE 19
NSPDAT - RECEIVE DATA FROM NSP
673 .SBTTL NSPDAT - RECEIVE DATA FROM NSP
674 ;
675 ; DATA AND INTERRUPTS RECEIVED FROM NSP
676 ;
677 ; INPUTS: R4 -> DATA CCB
678 ; C.FNC = FC.RCP
679 ; C.MOD = NT.DAT OR NT$INT
680 ; C.LIN = ULA (PIPE#)
681 ; C.BUF -> DATA BUFFER
682 ; C.CNT = LENGTH OF BUFFER
683 ;
684 ; OUTPUTS: CCB SENT ON TO PROPER SERVER (LP11,LP20,CD20,CR11)
685 ;
686
687
688 ;
689 ; MAP ULA TO PCB ADDRESS
690 ;
691
692
693 001710 NSPINT: ;NSP INTERRUPT MSG TO NRD DEVICE
694
695 001710 NSPDAT: ;NSP DATA MSG TO NRD DEVICE
696 001710 005000 CLR R0 ;PICK UP
697 001712 156400 000006 BISB C.LIN(R4),R0 ; PIPE#
698 001716 CALL $PCBPT ;ADDRESS PCB
001716 004767 000000G JSR PC,$PCBPT
699 001722 BADPIPE
001722 103001 BCC 9$
001724 000004 IOT
700
701 001726 032763 000002 000010 BIT #PS.CC,P.STS(R3);LINK STILL VALID?
702 001734 001002 BNE 5$ ;YES, PROCESS DATA
703 001736 000167 177146 JMP NSPRET ;NO, RETURN CCB TO NSP
704 001742 5$:
705 ;
706 ; GET THE TCB AND ENTER PARANOID MODE
707 ;
708 001742 016305 000002 MOV P.OPN(R3),R5 ;1ST TCB ON LIST
709 001746 001423 BEQ INVBTN ;LOSER FORGOT TO HACK NRM
710 001750 032765 000004 000012 BIT #TS.OP,T.STS(R5) ;CHECK IF TERMINAL IS OPEN
711 001756 001417 BEQ INVBTN ;NOPE.
712 001760 026503 000006 CMP T.PCBD(R5),R3 ;DOES IT BELONG TO THIS PIPE ?
713 001764 001014 BNE INVBTN ;TOO BAD...
714 001766 CALL NRDDEV ;CHECK IF NURD DEVICE
001766 004767 000766 JSR PC,NRDDEV
715 001772 103411 BCS INVBTN ;NOT SO PRETTY GOO
716
717
718 001774 10$:
719 001774 116564 000016 000006 MOVB T.NUM(R5),C.LIN(R4) ;ADDRESS THE DLC PROCESS VIA TERMINAL NO.
720 002002 112764 000000 000010 MOVB #FC.XME,C.FNC(R4) ;MAP THE FCN CODE
721
722 002010 $QDLC ;SEND THE CCB TO THE DLC
002010 004767 000000G JSR PC,$LLCRQ
723 002014 RETURN
002014 000207 RTS PC
NRD MACRO M1110 13-OCT-79 09:51 PAGE 19-1
NSPDAT - RECEIVE DATA FROM NSP
724
725
726
727 ;+
728 ; INVALID BTN DETECTED - SEND AN INTERRUPT MESSAGE TO THE HOST.
729 ;
730 ; INPUTS:
731 ; R0 - PIPE NUMBER
732 ; R4 - NSP MESSAGE WITH INVALID BTN
733 ; R3 - PCB ON WHICH MESSAGE WAS RECEIVED
734 ;-
735
736 002016 010401 INVBTN: MOV R4,R1 ; SAVE NSP BUFFER
737 002020 CALL $CSBGT ; AND ASK FOR A RESPONSE BUFFER.
002020 004767 000000G JSR PC,$CSBGT
738 002024 103003 BCC 50$ ; IF NOT AVAILABLE
739 002026 010104 MOV R1,R4 ; GET DATA CCB
740 002030 CALLR NRDQUE ; AND REQUE FOR LATER.
002030 000167 176250 JMP NRDQUE
741 002034 010405 50$: MOV R4,R5 ; SAVE NEW CCB ADDRESS
742 002036 010104 MOV R1,R4 ; AND ACK
743 002040 122764 000004 000011 CMPB #NT$INT,C.MOD(R4) ;CHECK MSG TYPE
744 002046 001417 BEQ 55$ ;INTERRUPT
745 002050 NRTN$ P.LLA(R3),#NT.MD1!NT.ACK ; ACK AND INCREMENT THE FLOW COUNT
002050 116364 000016 000006 MOVB P.LLA(R3),C.LIN(R4)
002056 012764 000421 000012 MOV #NT.MD1!NT.ACK,C.STS(R4)
002064 012764 000002 000010 MOV #<NT$RTN*400!FC.RCE>,C.FNC(R4)
002072 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
002100 004767 000000G JSR PC,$LLCRS
746 002104 000413 BR 59$
747
748 002106 55$: NRTI$ P.LLA(R3) ;ACK THE INTERRUPT MSG
002106 116364 000016 000006 MOVB P.LLA(R3),C.LIN(R4)
002114 012764 004002 000010 MOV #<NT$RTI*400!FC.RCE>,C.FNC(R4)
002122 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
002130 004767 000000G JSR PC,$LLCRS
749
750 002134 59$:
751 002134 010504 MOV R5,R4 ;GET THE RESPONSE CCB READY
752
753 002136 70$: MAP C.BUF(R4) ; MAP TO THE BUFFER
002136 016467 000014 172354 MOV C.BUF(R4),KISAR6
754 002144 016402 000016 MOV C.BUF+2(R4),R2 ; GET ITS ADDRESS
755 002150 010264 000026 MOV R2,C.BUF2+2(R4) ; AND STORE FOR NSP.
756 002154 112722 000002 MOVB #2,(R2)+ ; SET A CONTROL PACKET
757 002160 110022 MOVB R0,(R2)+ ; USE THE BTN
758 002162 000300 SWAB R0 ; AS
759 002164 110022 MOVB R0,(R2)+ ; THEN HTN.
760 002166 112722 000001 MOVB #1,(R2)+ ; SET PACKET LENGTH = 1 AND
761 002172 112722 000005 MOVB #5,(R2)+ ; GIVE AN INVALID BTN ERROR CODE.
762 002176 166402 000016 SUB C.BUF+2(R4),R2 ; FIGURE LENGTH
763 002202 NINT$ P.LLA(R3),<,,R2> ; AND SEND THE DIP.
002202 116364 000016 000006 MOVB P.LLA(R3),C.LIN(R4)
002210 010264 000020 MOV R2,C.CNT1(R4)
002214 012764 002000 000010 MOV #<NT$INT*400!FC.XME>,C.FNC(R4)
002222 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
002230 004767 000000G JSR PC,$LLCRS
NRD MACRO M1110 13-OCT-79 09:51 PAGE 19-2
NSPDAT - RECEIVE DATA FROM NSP
764 002234 RETURN
002234 000207 RTS PC
NRD MACRO M1110 13-OCT-79 09:51 PAGE 20
NSPXOF - BACK-PRESSURE A LINE
766 .SBTTL NSPXOF - BACK-PRESSURE A LINE
767 ;+
768 ; WHEN THE OTHER END OF THE LINK IS TIRED OF US, EITHER THROUGH
769 ; FLOW CONTROL OR THE USE OF BACK-PRESSURE COMMANDS, WE WILL BE NOTIFIED
770 ; THROUGH THIS ENTRY TO STOP SENDING. WE SIMPLY SET THE BACK-PRESSURE BIT
771 ; IN THE PIPE STATUS WORD.
772 ;
773 ; INPUTS:
774 ; R4 - FREE CCB WITH PIPE NUMBER (ULA)
775 ;
776 ; NO OUTPUTS
777 ;-
778
779 002236 NSPXOF: GTULA$ R0 ; GET THE PIPE NUMBER
002236 005000 CLR R0
002240 156400 000006 BISB C.LIN(R4),R0
780 002244 CALL $PCBPT ; AND ASSOCIATED PCB.
002244 004767 000000G JSR PC,$PCBPT
781 002250 BADPIPE
002250 103001 BCC 9$
002252 000004 IOT
782 002254 052763 000020 000010 BIS #PS.BP,P.STS(R3) ; INDICATE BACK-PRESSURED.
783 ;SEND XOF ON TO DLC
784 002262 016305 000002 SNDLC: MOV P.OPN(R3),R5 ;GET R5/TCB
785 002266 001002 BNE 10$
786 002270 000167 000000G JMP $CCBRT ;LINK NOT FULLY OPENED YET - JUST FLUSH CCB
787
788 002274 116564 000016 000006 10$: MOVB T.NUM(R5),C.LIN(R4) ;READDRESS FOR DLC
789
790 002302 $QDLC
002302 004767 000000G JSR PC,$LLCRQ
791
792 002306 RETURN
002306 000207 RTS PC
793
794 .SBTTL NSPXON - ENABLE BACK-PRESSURED LINE
795 ;+
796 ; WHEN NSP IS READY TO ACCEPT DATA ON THE DATA LINK, NRD WILL BE
797 ; NOTIFIED THROUGH THIS ENTRY
798 ;
799 ; INPUTS:
800 ; R4 - FREE CCB WITH PIPE NUMBER (ULA)
801 ;-
802
803 002310 NSPXON: GTULA$ R0 ; GET THE PIPE NUMBER
002310 005000 CLR R0
002312 156400 000006 BISB C.LIN(R4),R0
804 002316 CALL $PCBPT ; AND ASSOCIATED PCB.
002316 004767 000000G JSR PC,$PCBPT
805 002322 BADPIPE
002322 103001 BCC 9$
002324 000004 IOT
806 002326 CALL SNDLC ;SEND XON DOWN TO DLC
002326 004767 177730 JSR PC,SNDLC
807 002332 042763 000020 000010 BIC #PS.BP,P.STS(R3) ; CLEAR BACK-PRESSURE FLAG
808
809
NRD MACRO M1110 13-OCT-79 09:51 PAGE 20-1
NSPXON - ENABLE BACK-PRESSURED LINE
810
811 002340 UNQUE: ;COME HERE TO ATTEMPT TO RIP OFF A HUNK
812 ;OF THE BACKPRESSURE QUEUE
813 ;R3/PCB PTR
814
815 002340 116301 000016 MOVB P.LLA(R3),R1 ; GET LLA
816 002344 062703 000012 ADD #P.BPQ,R3 ; AND POINT TO BACK-PRESSURE QUEUE.
817 002350 CALL $CMQRM ; SEE IF THERE ARE
002350 004767 000000G JSR PC,$CMQRM
818 002354 103412 BCS 90$ ; CCBS AWAITING TRANSMISSION.
819 002356 NDAT$ R1 ; IF SO, SEND IT
002356 110164 000006 MOVB R1,C.LIN(R4)
002362 012764 001000 000010 MOV #<NT$DAT*400!FC.XME>,C.FNC(R4)
002370 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
002376 004767 000000G JSR PC,$LLCRS
820
821 002402 90$: RETURN
002402 000207 RTS PC
NRD MACRO M1110 13-OCT-79 09:51 PAGE 21
NSPDIS - DISCONNECT RECEIVED FOR A DATA PIPE
823 .SBTTL NSPDIS - DISCONNECT RECEIVED FOR A DATA PIPE
824 ;
825 ; DISCONNECT RECEIVED - CLOSE DATA PIPE VIA NRM
826 ;
827 ; INPUTS: R4 -> CCB
828 ; C.LIN = ULA FOR DATA PIPE
829 ;
830 ; OUTPUTS: "TERMINATE" CONTROL FUNCTION SENT TO NRM
831 ;
832
833 002404 NSPDIS:
834 002404 016400 000016 MOV C.BUF+2(R4),R0 ; IF THERE IS OPTIONAL DATA
835 002410 001407 BEQ 10$ ; THEN
836 002412 010401 MOV R4,R1 ; SAVE THE DISCONNECT CCB
837 002414 010004 MOV R0,R4 ; AND
838 002416 CALL $CCBRT ; RELEASE THE DATA CCB.
002416 004767 000000G JSR PC,$CCBRT
839 002422 010104 MOV R1,R4
840 002424 005064 000016 CLR C.BUF+2(R4) ;INDICATE "NO BUFFER"
841
842 ;
843 ; SEND A "TERMINATE" SIGNAL TO THE NRM
844 ;
845
846 002430 005000 10$: CLR R0 ;GET THE PIPE NO.
847 002432 156400 000006 BISB C.LIN(R4),R0
848 002436 CALL $PCBPT ;GET R3/PCB
002436 004767 000000G JSR PC,$PCBPT
849 002442 BADPIPE
002442 103001 BCC 9$
002444 000004 IOT
850
851 002446 110067 175330 MOVB R0,.QUESW ;SETUP PIPE NUMBER FOR FLUSH
852 002452 042763 000002 000010 BIC #PS.CC,P.STS(R3) ;NO LONGER OPEN
853 002460 122764 177776 000012 CMPB #NE.ABO,C.STS(R4) ;CHECK FOR ABORT
854 002466 001003 BNE 20$ ;JUST A DISCONNECT
855 002470 052763 000010 000010 BIS #PS.ABO,P.STS(R3) ;SET THE ABORT STATUS ON PIPE
856
857 002476 016305 000002 20$: MOV P.OPN(R3),R5 ;GET R5/TCB
858 002502 001426 BEQ 50$ ;CONTROL PIPE HAS ALREADY BEEN FLUSHED
859 002504 CALL NRDDEV ;CHECK PROPRIETY
002504 004767 000250 JSR PC,NRDDEV
860 002510 103001 BCC 25$
861 002512 CRASH ;CRUFTYNESS
002512 000004 IOT
862
863 002514 010446 25$: MOV R4,-(SP) ; SAVE DISCONNECT CCB
864 002516 062703 000012 ADD #P.BPQ,R3 ; AND UNLOAD
865
866 002522 30$: CALL $CMQRM ; THE BACK-PRESSURE QUEUE
002522 004767 000000G JSR PC,$CMQRM
867 002526 103411 BCS 40$
868 ; RETURNING THEM TO THE SERVER.
869 002530 112764 000002 000010 MOVB #FC.RCE,C.FNC(R4) ;MAP FCN CODE AS RETURNEE
870 002536 $QDLC ,T.NUM(R5) ;AND SHIP IT BACK TO DLC
002536 116564 000016 000006 MOVB T.NUM(R5),C.LIN(R4)
002544 004767 000000G JSR PC,$LLCRQ
NRD MACRO M1110 13-OCT-79 09:51 PAGE 21-1
NSPDIS - DISCONNECT RECEIVED FOR A DATA PIPE
871 002550 000764 BR 30$
872 002552 162703 000012 40$: SUB #P.BPQ,R3 ; RESTORE PCB ADDRESS
873 002556 012604 MOV (SP)+,R4 ; AND OUR CCB.
874
875 002560 012764 003006 000010 50$: MOV #FS.TRM!FC.CTL,C.FNC(R4) ;SET THE FNC
876 002566 CALL SNDNRM ;SHIP OFF TO NRM
002566 004767 176764 JSR PC,SNDNRM
877 002572 000167 175632 JMP NRDFLS ;FLUSH RESOURCE WAIT Q
878
879
880
881 ;
882 ; NRM TERMINATE DONE - CONFIRM DISCONNECT OR ABORT
883 ;
884
885 002576 NRMTRM:
886 002576 005000 CLR R0
887 002600 156400 000006 BISB C.LIN(R4),R0 ;GET PIPE NUMBER
888 002604 CALL $PCBPT ;GET R3/PCB
002604 004767 000000G JSR PC,$PCBPT
889 002610 BADPIPE
002610 103001 BCC 9$
002612 000004 IOT
890 002614 032763 000010 000010 BIT #PS.ABO,P.STS(R3) ; IF ABORT REQUEST
891 002622 001425 BEQ 10$ ; THEN
892 002624 042763 000010 000010 BIC #PS.ABO,P.STS(R3) ; CLEAR THE CONDITION
893 002632 NABO$ P.NUM(R3) ; ABORT OUR SIDE OF THE LINK
002632 116364 000020 000004 MOVB P.NUM(R3),C.NSP(R4)
002640 116764 000000G 000005 MOVB $CMPDV,C.NSP+1(R4)
002646 052764 100000 000004 BIS #100000,C.NSP(R4)
002654 012764 011000 000010 MOV #<NT$ABO*400!FC.XME>,C.FNC(R4)
002662 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
002670 004767 000000G JSR PC,$LLCRS
894 002674 RETURN
002674 000207 RTS PC
895
896 002676 10$: NDIS$ P.LLA(R3),<,,#0> ; SEND DISCONNECT CONFIRM
002676 116364 000016 000006 MOVB P.LLA(R3),C.LIN(R4)
002704 005064 000020 CLR C.CNT1(R4)
002710 012764 004000 000010 MOV #<NT$DIS*400!FC.XME>,C.FNC(R4)
002716 112764 000200G 000007 MOVB #<200+PD$NSP>,C.LIN+1(R4)
002724 004767 000000G JSR PC,$LLCRS
897 002730 RETURN
002730 000207 RTS PC
898
899 .SBTTL NRDDIS - PIPE DISCONNECTED
900 ;+
901 ; LINK IS CLOSED - RETURN THE PIPE
902 ;
903 ; INPUTS:
904 ; R4 - DISCONNECT OR ABORT COMPLETE CCB
905 ;-
906
907 002732 NRDDIS: GTULA$ R0 ; GET THE PIPE NUMBER
002732 005000 CLR R0
002734 156400 000006 BISB C.LIN(R4),R0
908 002740 CALL $PCBPT ; THE PCB ADDRESS
NRD MACRO M1110 13-OCT-79 09:51 PAGE 21-2
NRDDIS - PIPE DISCONNECTED
002740 004767 000000G JSR PC,$PCBPT
909 002744 BADPIPE
002744 103001 BCC 9$
002746 000004 IOT
910 002750 CALL $PCBRT ; RETURN THE PCB
002750 004767 000000G JSR PC,$PCBRT
911 002754 CALLR $CCBRT ; AND THE DISCONNECT CCB.
002754 000167 000000G JMP $CCBRT
NRD MACRO M1110 13-OCT-79 09:51 PAGE 22
NURD UTILITIES
913 .SBTTL NURD UTILITIES
914
915
916 ; ASSORTED USEFUL FUNCTIONS
917
918
919
920
921 002760 NRDDEV: ;VERIFY TERMINAL IS NURD DEVICE TYPE
922 ;R5/TCB, LOOK UPTERMINAL TYPE
923 002760 005705 TST R5 ;CHECK FOR TCB GONE AWAY
924 002762 001415 BEQ 15$
925
926 002764 005000 CLR R0
927 002766 156500 000014 BISB T.TT(R5),R0 ;GET THE DEVICE TYPE
928
929 002772 012702 000004 MOV #NDVTBL,R2
930 002776 126200 000265' 10$: CMPB NDVTB-1(R2),R0 ;SEARCH THE LIST OF NURD DEVICES
931 003002 001407 BEQ 20$ ;SUC
932 003004 SOB R2,10$
003004 005302 DEC R2
003006 001373 BNE 10$
933 003010 012764 100377 000012 MOV #NR.NDV,C.STS(R4) ;NOT A NURD DEVICE
934
935 003016 000261 15$: SEC ;LOSE
936 003020 RETURN
003020 000207 RTS PC
937
938 003022 000241 20$: CLC ;CERTIFIED NURD DEVICE
939 003024 RETURN
003024 000207 RTS PC
940
NRD MACRO M1110 13-OCT-79 09:51 PAGE 23
NURD UTILITIES
942 000001 .END
NRD MACRO M1110 13-OCT-79 09:51 PAGE 23-1
SYMBOL TABLE
A$$CHK= 000000 C.LIN 000006 FS.STR= 001000 NE.RES= 177773 NT.ACK= 000001
A$$CPS= 000000 C.LNK 000000 FS.TRM= 003000 NE.TIM= 177772 NT.BOM= 000040
A$$PRI= 000000 C.MOD 000011 FS.XKL= 002000 NP$RTR= 000003 NT.EOM= 000100
A$$TRP= 000000 C.NSP 000004 FS.XOF= 010000 NRDCCP 000202R NT.FCN= 037400
CB.CCB= 000002 C.RSV 000002 FS.XON= 007000 NRDCTL 000034R NT.MD1= 000420
CB.RDB= 000004 C.STA 000007 F$LOW = ****** GX NRDDEV 002760R NT.MFL= 000002
CCPSTP 001556R C.STS 000012 F$$LVL= 000001 NRDDIS 002732R NT.MOD= 000020
CCPSTR 001556R DLCCCP 000210R G$$TPP= 000000 NRDFLS 000430R NT.MOM= 000000
CE.ABO= 100362 DLCDAT 001410R G$$TSS= 000000 NRDINT 001206R NT.NAK= 000002
CE.DIS= 100366 DLCINT 001410R G$$TTK= 000000 NRDQUE 000304R NT.NFL= 000000
CE.ERR= 100370 DLCRCP 000102R G$$WRD= 000000 NRDRCP 000062R NT.SFL= 000001
CE.MOP= 100372 DLCRTI 001066R INVBTN 002016R NRDRWC 000412R NT.SOL= 000140
CE.NTE= 100361 DLCRTN 001066R I$$RAR= 000000 NRDRWT 000272R NT.XOF= 000004
CE.RTE= 100376 DLCXCP 000122R I$$RDN= 000000 NRDTIM 000326R NT.XON= 000010
CE.SRC= 100364 D$$BUG= 177514 KDSAR0= 172360 NRDXCP 000114R N$$DAT= 000030
CE.TMO= 100374 D$$ISK= 000000 KDSDR0= 172320 NRMTRM 002576R N$$DIS= 000020
CF.EOM= 000004 D$$L11= 000001 KISAR0= 172340 NR$RWT= 000022 N$$INT= 000020
CF.HDR= 000020 D$$YNC= 000000 KISAR5= 172352 NR.NDV= 100377 N$$LDV= 000001
CF.LB = 100000 D$$YNM= 000000 KISAR6= 172354 NSPCCP 000236R N$$MOV= 000010
CF.SOM= 000010 E$$XPR= 000000 KISAR7= 172356 NSPCON 000544R N$$OPT= 000020
CF.SYN= 000040 FC.CCP= 000020 KISDR0= 172300 NSPDAT 001710R N$$OVR= 000042
CF.TRN= 000100 FC.CTL= 000006 KISDR6= 172314 NSPDIS 002404R N$$SYS= 000001
CMODE = 140000 FC.KCP= 000016 KISDR7= 172316 NSPINT 001710R N$$USR= 000001
CRASH 000264R FC.KIL= 000004 K$$CNT= 177546 NSPRCP 000070R N.ACNT 000116
CS.ABO= 000100 FC.RCE= 000002 K$$CSR= 177546 NSPRET 001110R N.ACTL 000114
CS.BUF= 000200 FC.RCP= 000014 K$$LDC= 000000 NSPRTN 001300R N.DDL1 000012
CS.DCR= 000400 FC.TIM= 000010 K$$TPS= 000074 NSPXCP 000152R N.DDL2 000016
CS.DEV= 000002 FC.XCP= 000012 LD$LP = 000000 NSPXOF 002236R N.DDS1 000014
CS.DIS= 000040 FC.XME= 000000 LS.ABO= 100201 NSPXON 002310R N.DDS2 000020
CS.ENB= 000020 FE.CAL= 000040 LS.BOM= 100205 NS.BOM= 000040 N.DFMT 000010
CS.EOF= 000001 FE.DRV= 000010 LS.CLO= 100203 NS.EOM= 000100 N.DGRP 000012
CS.ERR= 100000 FE.EXP= 000200 LS.ILM= 100204 NS.MFL= 000003 N.DOBJ 000011
CS.HFE= 002000 FE.EXT= 000001 LS.REJ= 100202 NS.MOM= 000000 N.DUSR 000014
CS.LST= 040000 FE.EXV= 000004 L$$ASG= 000000 NS.NFL= 000001 N.LGTH= 000160
CS.MTL= 004000 FE.LSI= 000400 L$$DRV= 000000 NS.SET= 000002 N.NODE 000000
CS.RNG= 000010 FE.MUP= 000002 L$$P11= 000001 NS.SFL= 000002 N.OPDL 000136
CS.ROV= 000004 FE.MXT= 040000 L$$11R= 000000 NS.SOL= 000140 N.OPTD 000140
CS.RSN= 010000 FE.NLG= 100000 MPAR = 172100 NS.SUC= 000001 N.PASL 000102
CS.SUC= 000001 FE.PKT= 000100 MPCSR = 177746 NT$ABO= 000022 N.PASS 000104
CS.TMO= 020000 FE.PLA= 000020 M$$CRB= 000124 NT$ACC= 000002 N.RQDL 000060
CTLGET 001636R FS.AST= 000000 M$$CRX= 000000 NT$ADS= 000000 N.RQID 000062
CTLSTP 001572R FS.CIB= 002000 M$$FCS= 000000 NT$CON= 000000 N.RSRV= 000030
CTLSTR 001572R FS.CRA= 001000 M$$MGE= 000000 NT$DAT= 000002 N.SDL1 000036
C$$CKP= 000000 FS.DIS= 013000 M$$OVR= 000000 NT$DIS= 000010 N.SDL2 000042
C$$ORE= 000400 FS.DVC= 001000 NC.FM0= 000000 NT$INT= 000004 N.SDS1 000040
C$$RSH= 177564 FS.ENB= 012000 NC.FM1= 000001 NT$MOD= 000012 N.SDS2 000056
C.BID 000003 FS.GET= 006000 NC.FM2= 000002 NT$NAK= 000022 N.SEG 000006
C.BUF 000014 FS.INI= 000000 NDVTB 000266R NT$OFF= 000026 N.SFMT 000034
C.BUF1 000014 FS.KIL= 000000 NDVTBL= 000004 NT$ON = 000002 N.SGRP 000036
C.BUF2 000024 FS.LTM= 001000 NE.ABO= 177776 NT$QRY= 000014 N.SOBJ 000035
C.CNT 000020 FS.MNT= 004000 NE.ACT= 177771 NT$REJ= 000004 N.SUSR 000040
C.CNT1 000020 FS.MSN= 014000 NE.CLS= 177767 NT$RTI= 000010 PCBLEN= 000024
C.CNT2 000030 FS.RNG= 011000 NE.DIS= 177777 NT$RTN= 000000 PD$NRM= ****** GX
C.FLG 000022 FS.RTN= 001000 NE.FMT= 177770 NT$SNG= 000006 PD$NSP= ****** GX
C.FLG1 000022 FS.SET= 005000 NE.NDT= 177766 NT$STP= 000004 PIRQ = 177772
C.FLG2 000032 FS.STM= 000000 NE.NOD= 177774 NT$XOF= 000020 PMODE = 030000
C.FNC 000010 FS.STP= 002000 NE.REJ= 177775 NT$XON= 000016 PR0 = 000000
NRD MACRO M1110 13-OCT-79 09:51 PAGE 23-2
SYMBOL TABLE
PR1 = 000040 P.SEG 000022 TS.HP = 000040 T.NAM 000022 UISDR6= 177614
PR4 = 000200 P.SPI 000021 TS.OP = 000004 T.NAML 000021 UISDR7= 177616
PR5 = 000240 P.STS 000010 TS.OPP= 000002 T.NUM 000016 UNQUE 002340R
PR6 = 000300 P.USER 000006 TS.OSP= 000400 T.OBJ 000020 V$$CTR= 001000
PR7 = 000340 QS.CCB= 000400 G TS.PWF= 002000 T.OLNK 000002 X$$DBT= 000000
PS = 177776 QS.CVR= 100000 G TS.RLP= 000010 T.PCBD 000006 $CCBGT= ****** GX
PS.ABO= 000010 Q$$OPT= 000010 TS.RS = 000020 T.PCBR 000004 $CCBRT= ****** GX
PS.BP = 000020 R$$DER= 000000 TS.SRP= 000200 T.RCNT 000032 $CMPDV= ****** GX
PS.CC = 000002 R$$K11= 000001 TS.STE= 001000 T.RID 000010 $CMQIF= ****** GX
PS.CI = 000001 R$$SND= 000000 TT.CD = 000011 T.SPI 000017 $CMQIN= ****** GX
PS.CTL= 010000 R$$11M= 000000 TT.CR = 000010 T.STS 000012 $CMQRM= ****** GX
PS.DAT= 020000 SISDR0= 172200 TT.DDC= 000005 T.TT 000014 $CSBGT= ****** GX
PS.DIP= 000004 SNDLC 002262R TT.LE = 000006 T.WCNT 000030 $LLCRQ= ****** GX
PS.IMP= 000100 SNDNRM 001556R TT.LP = 000007 UBMPR = 170200 $LLCRS= ****** GX
PS.NKP= 000040 SR0 = 177572 TT.L18= 000004 UDSAR0= 177660 $NRDTB 000010RG
P$$P45= 000000 SR3 = 172516 TT.L36= 000003 UDSDR0= 177620 $PCBGT= ****** GX
P$$WRD= 000000 SWR = 177570 TT.V52= 000002 UISAR0= 177640 $PCBPT= ****** GX
P.BPQ 000012 S$$WRG= 000000 TT.V62= 000001 UISAR4= 177650 $PCBRT= ****** GX
P.CBTN 000004 S$$YSZ= 007600 T$$KMG= 000000 UISAR5= 177652 $TCBPT= ****** GX
P.LLA 000016 TCBLEN= 000040 T$$MIN= 000000 UISAR6= 177654 $$NARG= 000004
P.NUM 000020 TF.DEA= 040000 T.DMRB 000034 UISAR7= 177656 $$TYPE= 000000
P.OPN 000002 TF.DIS= 020000 T.DMVA 000036 UISDR0= 177600 .FLOW 000000RG
P.REF 000004 TPS = 177564 T.FLG 000014 UISDR4= 177610 .QUESW 000002RG
P.RES 000002 TS.CLP= 000001 T.LNK 000000 UISDR5= 177612 .WTQUE 000004RG
P.RSV 000000
. ABS. 000160 000
003026 001
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 11188 WORDS ( 44 PAGES)
DYNAMIC MEMORY: 12172 WORDS ( 46 PAGES)
ELAPSED TIME: 00:01:13
NRD,[131,34]NRD/CR/-SP=[130,10]NETLIB/ML,RSXMC4/PA:1,[131,10]NRD
NRD CREATED BY MACRO ON 13-OCT-79 AT 09:52 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
CCPSTP 001556 R 7-253 #16-617
CCPSTR 001556 R 7-252 #16-618
CRASH 000264 R #7-278
CTLGET 001636 R 7-177 #18-662
CTLSTP 001572 R 7-173 #17-628
CTLSTR 001572 R 7-172 #17-629
C.BUF 000014 12-442 12-443 *12-468 *14-542 15-590 19-753 19-754 19-762 21-834
*21-840
C.BUF2 000024 14-542 *15-590 18-669 *19-755
C.CNT1 000020 *12-450 *12-466 *19-763 *21-896
C.CNT2 000030 *9-308 9-338
C.FNC 000010 *9-309 9-325 10-362 *12-450 *12-466 *12-469 *13-500 *13-503 *14-527
*14-543 *15-601 *15-604 *17-641 *18-670 *19-720 *19-745 *19-748 *19-763
*20-819 *21-869 *21-875 *21-893 *21-896
C.LIN 000006 7-186 7-212 7-246 9-337 10-356 12-450 *12-450 *12-450 12-466
*12-466 *12-466 *12-469 *12-469 13-487 *13-500 *13-500 *13-503 *13-503
14-521 *14-527 *14-527 14-535 *14-545 15-586 *15-601 *15-601 *15-604
*15-604 17-632 18-664 19-697 *19-719 *19-745 *19-745 *19-748 *19-748
*19-763 *19-763 20-779 *20-788 20-803 *20-819 *20-819 21-847 *21-870
21-887 *21-893 *21-896 *21-896 21-907
C.MOD 000011 9-324 10-361 13-498 14-544 15-592 19-743
C.NSP 000004 12-450 *12-450 12-461 12-466 *12-466 *12-466 *12-469 *21-893 *21-893
*21-893
C.STA 000007 12-460 *16-620
C.STS 000012 *12-466 *13-500 14-518 *18-662 *19-745 21-853 *22-933
DLCCCP 000210 R #7-249
DLCDAT 001410 R 7-202 #15-584
DLCINT 001410 R 7-203 #15-582
DLCRCP 000102 R 7-187 #7-199
DLCRTI 001066 R 7-219 #13-483
DLCRTN 001066 R 7-218 #13-485
DLCXCP 000122 R #7-215
FC.CCP = 000020 17-641 18-670
FC.CTL = 000006 21-875
FC.RCE = 000002 12-450 12-466 13-500 13-503 14-543 19-745 19-748 21-869
FC.XME = 000000 12-469 14-527 15-601 15-604 19-720 19-763 20-819 21-893 21-896
FS.GET = 006000 18-670
FS.TRM = 003000 21-875
F$LOW = ****** GX 7-136
INVBTN 002016 R 19-709 19-711 19-713 19-715 #19-736
KISAR6 = 172354 *12-442 *19-753
LS.ABO = 100201 #4-56
LS.BOM = 100205 #4-56
LS.CLO = 100203 #4-56
LS.ILM = 100204 #4-56
LS.REJ = 100202 #4-56
M$$MGE = 000000 12-442 19-753
NDVTB 000266 R #8-290 8-294 22-930
NDVTBL = 000004 #8-294 22-929
NE.ABO = 177776 21-853
NE.TIM = 177772 14-518
NRDCCP 000202 R 7-158 #7-246
NRD CREATED BY MACRO ON 13-OCT-79 AT 09:52 PAGE 2
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
NRDCTL 000034 R 7-153 #7-169
NRDDEV 002760 R 14-539 17-635 18-667 19-714 21-859 #22-921
NRDDIS 002732 R 7-235 7-240 #21-907
NRDFLS 000430 R #10-345 21-877
NRDINT 001206 R 7-233 #14-517
NRDQUE 000304 R #9-311 12-439 19-740
NRDRCP 000062 R 7-156 #7-186
NRDRWC 000412 R 7-161 #9-337
NRDRWT 000272 R #9-308 14-520
NRDTIM 000326 R 7-154 #9-317
NRDXCP 000114 R 7-155 #7-212
NRMTRM 002576 R 7-266 #21-885
NR$RWT = 000022 #7-160 9-309
NR.NDV = 100377 #4-56 22-933
NSPCCP 000236 R 7-247 #7-261
NSPCON 000544 R 7-193 #12-434
NSPDAT 001710 R 7-194 #19-695
NSPDIS 002404 R 7-267 #21-833
NSPINT 001710 R 7-195 #19-693
NSPRCP 000070 R #7-191
NSPRET 001110 R #13-498 19-703
NSPRTN 001300 R 7-232 #14-533
NSPXCP 000152 R 7-213 #7-229
NSPXOF 002236 R 7-271 #20-779
NSPXON 002310 R 7-270 #20-803
NT$ABO = 000022 21-893
NT$ACC = 000002 12-466
NT$DAT = 000002 15-601 20-819
NT$DIS = 000010 21-896
NT$INT = 000004 13-498 14-527 14-546 15-592 15-604 19-743 19-763
NT$MOD = 000012 12-469
NT$REJ = 000004 12-450
NT$RTI = 000010 13-503 19-748
NT$RTN = 000000 13-500 19-745
NT.ACK = 000001 13-500 19-745
NT.MD1 = 000420 13-500 19-745
NT.SFL = 000001 12-466
N.RQDL 000060 12-446
N.RQID 000062 12-458
N.SEG 000006 12-444 12-459
PCBLEN = 000024 #3-47
PD$NRM = ****** GX 16-620
PD$NSP = ****** GX 12-450 12-466 12-469 13-500 13-503 14-527 15-601 15-604 19-745
19-748 19-763 20-819 21-893 21-896
PS.ABO = 000010 #3-47 21-855 21-890 21-892
PS.BP = 000020 #3-47 12-463 14-548 15-596 20-782 20-807
PS.CC = 000002 #3-47 12-463 14-524 19-701 21-852
PS.CI = 000001 #3-47
PS.CTL = 010000 #3-47
PS.DAT = 020000 #3-47 12-463
PS.DIP = 000004 #3-47
PS.IMP = 000100 #3-47
NRD CREATED BY MACRO ON 13-OCT-79 AT 09:52 PAGE 3
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
PS.NKP = 000040 #3-47
P.BPQ 000012 #3-47 15-594 15-598 20-816 21-864 21-872
P.CBTN 000004 #3-47 *12-462
P.LLA 000016 #3-47 12-461 *12-461 12-469 13-500 13-503 14-527 15-601 15-604
19-745 19-748 19-763 20-815 21-896
P.NUM 000020 #3-47 12-465 21-893
P.OPN 000002 #3-47 14-538 19-708 20-784 21-857
P.REF 000004 #3-47
P.RES 000002 #3-47
P.RSV 000000 #3-47
P.SEG 000022 #3-47 *12-459
P.SPI 000021 #3-47 *12-460
P.STS 000010 #3-47 *12-463 14-524 14-548 15-596 19-701 *20-782 *20-807 *21-852
*21-855 21-890 *21-892
P.USER 000006 #3-47 *12-458
QS.CCB = 000400 G #7-140 9-312 9-321 9-328 10-347 10-358
QS.CVR = 100000 G #7-139 9-320 9-330 10-346 10-365
SNDLC 002262 R #20-784 20-806
SNDNRM 001556 R #16-620 17-642 18-671 21-876
TCBLEN = 000040 #3-47
TF.DEA = 040000 #3-47
TF.DIS = 020000 #3-47
TS.CLP = 000001 #3-47
TS.HP = 000040 #3-47
TS.OP = 000004 #3-47 19-710
TS.OPP = 000002 #3-47
TS.OSP = 000400 #3-47
TS.PWF = 002000 #3-47
TS.RLP = 000010 #3-47
TS.RS = 000020 #3-47
TS.SRP = 000200 #3-47
TS.STE = 001000 #3-47
TT.CD = 000011 #3-47 8-292
TT.CR = 000010 #3-47 8-293
TT.DDC = 000005 #3-47
TT.LE = 000006 #3-47 8-290
TT.LP = 000007 #3-47 8-291
TT.L18 = 000004 #3-47
TT.L36 = 000003 #3-47
TT.V52 = 000002 #3-47
TT.V62 = 000001 #3-47
T.DMRB 000034 #3-47
T.DMVA 000036 #3-47
T.FLG 000014 #3-47
T.LNK 000000 #3-47
T.NAM 000022 #3-47
T.NAML 000021 #3-47
T.NUM 000016 #3-47 14-545 19-719 20-788 21-870
T.OBJ 000020 #3-47
T.OLNK 000002 #3-47
T.PCBD 000006 #3-47 13-490 15-589 19-712
T.PCBR 000004 #3-47
NRD CREATED BY MACRO ON 13-OCT-79 AT 09:52 PAGE 4
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
T.RCNT 000032 #3-47
T.RID 000010 #3-47
T.SPI 000017 #3-47
T.STS 000012 #3-47 19-710
T.TT 000014 #3-47 22-927
T.WCNT 000030 #3-47
UNQUE 002340 R 14-550 #20-811
$CCBGT = ****** GX 12-436
$CCBRT = ****** GX 7-236 12-452 20-786 21-838 21-911
$CMPDV = ****** GX 18-669 21-893
$CMQIF = ****** GX 9-315
$CMQIN = ****** GX 9-314 10-359 15-599
$CMQRM = ****** GX 9-322 10-353 20-817 21-866
$CSBGT = ****** GX 19-737
$LLCRQ = ****** GX 14-545 17-637 19-722 20-790 21-870
$LLCRS = ****** GX 12-450 12-466 12-469 13-500 13-503 14-527 15-601 15-604 16-620
19-745 19-748 19-763 20-819 21-893 21-896
$NRDTB 000010 RG #7-150 7-160 9-326 10-363
$PCBGT = ****** GX 12-448
$PCBPT = ****** GX 9-337 14-522 14-536 19-698 20-780 20-804 21-848 21-888 21-908
$PCBRT = ****** GX 21-910
$TCBPT = ****** GX 13-488 15-587 17-633 18-665
$$NARG = 000004 #14-527 14-527 #15-601 15-601 #15-604 15-604 #19-763 19-763 19-763
#20-819 20-819 #21-896 21-896 21-896
$$TYPE = 000000 #9-337 9-337 #12-461 12-461 12-461 #14-521 14-521 #20-779 20-779
#20-803 20-803 #21-907 21-907
.FLOW 000000 RG #7-136 12-469
.QUESW 000002 RG #7-138 9-311 9-317 9-327 *9-330 10-345 10-355 *10-365 *21-851
.WTQUE 000004 RG #7-143
NRD CREATED BY MACRO ON 13-OCT-79 AT 09:52 PAGE 5
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
BADPIP #6-111 #14-523 #14-537 #19-699 #20-781 #20-805 #21-849 #21-889 #21-909
BADTNM #6-118 #13-489 #15-588 #17-634 #18-666
CALL 9-322 9-326 9-337 10-353 10-359 10-363 12-436 12-448 12-450 12-466
12-469 13-488 13-500 13-503 14-520 14-522 14-527 14-536 14-539 15-587
15-601 15-604 17-633 17-635 18-665 18-667 19-698 19-714 19-737 19-745
19-748 19-763 20-780 20-804 20-806 20-817 20-819 21-838 21-848 21-859
21-866 21-876 21-888 21-893 21-896 21-908 21-910
CALLR #9-314 #9-315 #12-439 #12-452 #15-599 #19-740 #21-911
CCBDF$ #3-44 3-45
CRASH #13-489 #14-523 #14-537 #14-541 #15-588 #17-634 #18-666 #19-699 #20-781 #20-805
#21-849 #21-861 #21-889 #21-909
GTLLA$ #12-461
GTPCB$ #6-124 #9-337
GTULA$ #9-337 #14-521 #20-779 #20-803 #21-907
HWDDF$ #12-442 12-442 #19-753 19-753
MAP #3-44 #12-442 #19-753
NABO$ #21-893
NACC$ 12-466
NDAT$ 15-601 20-819
NDIS$ 21-896
NINT$ #14-527 #15-604 #19-763
NMOD$ #12-469
NRDIN$ #3-44 #4-56
NREJ$ #12-450
NRTI$ 13-503 19-748
NRTN$ 13-500 19-745
NSPDF$ #3-44 3-46
RETURN #3-44 9-331 10-367 12-470 13-501 13-504 14-528 14-551 15-602 15-605
16-621 17-638 19-723 19-764 20-792 20-821 21-894 21-897 22-936 22-939
SOB #22-932
TTDF$ #3-44 3-47
$QDLC #3-44 #14-545 #17-637 #19-722 #20-790 #21-870
$QLLC #3-44 16-620
$$BUFD #12-450 #14-527 14-527 #15-601 15-601 #15-604 15-604 #19-763 19-763 #20-819
20-819 #21-896 21-896
$$GETB #9-337 #9-337 #12-461 #12-461 #14-521 #14-521 #20-779 #20-779 #20-803 #20-803
#21-907 #21-907
$$MOV #12-450 12-450 #12-466 12-466 12-466 12-466 #13-500 13-500 #14-527 #15-601
15-601 #15-604 #19-745 19-745 #19-763 19-763 19-763 19-763 #20-819 20-819
#21-896 21-896 21-896 21-896
$$MOVB #12-466 #12-466 #12-469 #12-469 #12-469 #13-500 #13-500 #13-503 #13-503 #14-527
#14-527 #15-601 #15-601 #15-604 #15-604 #19-745 #19-745 #19-748 #19-748 #19-763
#19-763 #20-819 #20-819 #21-893 #21-893 #21-893 #21-896 #21-896
$$QUE #12-450 12-450 #12-466 12-466 #12-469 12-469 #13-500 13-500 #13-503 13-503
#14-527 14-527 #15-601 15-601 #15-604 15-604 #19-745 19-745 #19-748 19-748
#19-763 19-763 #20-819 20-819 #21-893 21-893 #21-896 21-896