Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/mcb/nxnic.list
There are no other files named nxnic.list in the archive.
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33
TABLE OF CONTENTS
5- 75 NXNIC - DISPATCH NICE FUNCTION
7- 141 CVLTST - GET DEVICE TYPE NUMBER FOR LINE
9- 219 FNDLIN - FIND INFORMATION ON LINE
10- 247 FNDNOD - FIND NODE INFORMATION
11- 306 GET* - GET DATA FROM THE ARGUMENT BUFFER
12- 374 PUT* - MOVE DATA INTO OUTPUT BUFFER
13- 460 PUTNOD - COMPRESS AND INSERT A NODE NAME
14- 488 $PUTCT - INSERT COUNTERS INTO OUTPUT BUFFER
15- 533 TIME - GET THE CURRENT TIME
16- 571 RDLCOU - DISPLAY LINE COUNTS
17- 602 RDLNAM - GET KNOWN LINE IDENTIFIERS
19- 662 RDLSTA - DISPLAY LINE STATE
20- 738 RDMEM - EXAMINE MEMORY
22- 828 RDNCOU - SHOW NODE COUNTERS
23- 869 RDNNAM - GET KNOWN NODE NAMES
24- 907 RDNSTA - DISPLAY NODE STATE
25- 992 STMEM - DEPOSIT MEMORY
26- 1037 STNHOS - SET HOST FOR LOCAL NODE
27- 1068 STNPWD - SET PASSWORD
28- 1106 ZRLCOU - ZERO LINE COUNTERS
29- 1136 STLMNT ;BH05
30- 1193 ZRNCOU - ZERO NODE COUNTERS
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 3
1 .TITLE NXNIC - NICE PRIVLEGED SERVICES
2 .IDENT /X01.12/
3 ;
4 ; COPYRIGHT (C) 1977
5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 01754
6 ;
7 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
8 ; AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE
9 ; AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS
10 ; SOFTWARE OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED
11 ; OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO TITLE TO
12 ; AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
13 ;
14 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
15 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY
16 ; DIGITAL EQUIPMENT CORPORATION.
17 ;
18 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
19 ; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
20 ;
21 ; VERSION X01.01
22 ;
23 ; AUTHOR:
24 ; A.D. PECKHAM 28-JUL-78
25 ;
26 ; MODIFIED BY:
27 ;
28 ; 1.03 28-AUG-78 ALAN D. PECKHAM
29 ; FIXED TEST FOR INTERCEPT NODE
30 ; 1.05 27-NOV-78 BUREN W. HOFFMAN
31 ; ADDED CAPABILITY TO ALLOW NXNIC TO ENABLE LOGGING IN
32 ; DEVICE DRIVERS, UPON RECEIPT OF INSTRUCTION TO DO SO
33 ; FROM NICE. THIS CAPABILITY WILL BE EXTENDED TO ALLOW
34 ; REMOVAL OF ALL DEVICE-DEPENDENT STUFF FROM NXNIC, INTO
35 ; NEW DEVICE-SPECIFIC MODULES.
36 ; 1.06 21-DEC-78 ALAN D. PECKHAM
37 ; MOVE THE REST OF THE DEVICE DEPENDENT STUFF OUT, AND COVER
38 ; OURSELVES ON REQUESTS ABOUT UNREASONABLE DEVICES.
39 ; 1.07 8-JAN-79 ALAN D. PECKHAM
40 ; ADD CODE TO READ LOGGING STATE
41 ; 1.08 24-JAN-79 ALAN D. PECKHAM
42 ; FIX STATE MIXUP ON SETTING LOGGING STATE
43 ; 1.09 30-JAN-79 ALAN D. PECKHAM
44 ; ADD CODE TO SET LOGGING STATE FOR DLC ALSO
45 ; 1.10 1-FEB-79 ALAN D. PECKHAM
46 ; FIX MOV/MOVB MIXUP IN RDLSTA
47 ; 1.11 30-AUG-79 ALAN D. PECKHAM
48 ; REMOVE SUPPORT FOR LP, CR.
49 ; FIX DVTBL TO PROVIDE "OPTION NOT SUPPORTED" DISPATCH TABLE ADDRESS.
50 ; SET ROUTINES TO BALK ON MISSING DATA BASES.
51 ; 1.12 31-AUG-79 ALAN D. PECKHAM
52 ; RDLNAM SHOULD NOT QUIT IF IT DOESN'T RECOGNIZE A LINE.
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 4
54 ;
55 ; EXTERNAL MACRO DEFINITIONS:
56 ;
57 .MCALL CCBDF$,PDVDF$,SLTDF$,NSDDB$,HWDDF$,DLXDF$
58 .MCALL UCBDF$,HDRDF$,NSPVR$,NICDF,DLXDF,CALLR,MAP,DVTMDF ;BH05
59 000000 CCBDF$ ; DEFINE THE CCB OFFSETS
60 000000 PDVDF$ ; DEFINE THE PDV OFFSETS
61 000000 SLTDF$ ; DEFINE THE SLT OFFSETS
62 000000 NSDDB$ ; BRING IN DDB DEFINITIONS
63 000000 NSPVR$ ; DEFINE VERSION NUMBERS
64 000000 HWDDF$ ; DEFINE HARDWARE DEFINITIONS
65 000000 UCBDF$ ; DEFINE UCB OFFSETS
66 000000 HDRDF$ ; DEFINE HEADER OFFSETS
67 000000 DLXDF$ ; DEFINE OUR OWN STUFF
68
69 000000 NICDF ; NICE SYMBOLS
70 000000 DLXDF ; DLX NICE SERVICE SYMBOLS
71
72 000000 .PSECT
73 000000 LINBLK: .BLKW 8. ; PARAMETER BLOCK.
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 5
NXNIC - DISPATCH NICE FUNCTION
75 .SBTTL NXNIC - DISPATCH NICE FUNCTION
76 ;+
77 ; **-NXNIC-GET NICE REQUEST FUNCTION AND DISPATCH TO SERVICE ROUTINE
78 ;
79 ; INPUTS:
80 ;
81 ; R3 = ADDRESS OF I/O PACKET
82 ;
83 ; OUTPUTS TO SERVICE ROUTINE:
84 ;
85 ; R3 = ADDRESS OF I/O PACKET
86 ;
87 ; POSSIBLE ERRORS:
88 ;
89 ; IE.ONP OPTION NOT SUPPORTED
90 ; IE.MOD LINE NOT PRESENT
91 ; IE.NSF NODE NOT PRESENT
92 ; IE.PRI MUST BE A PRIVLEGED TASK
93 ; IE.SPC ILLEGAL BUFFER
94 ; IE.NBK NO STATISTICS BLOCK FOR NODE
95 ; IE.BDV NO DEVICE TYPE CODE FOR INTERNAL DEVICE
96 ;-
97
98 000020 016301 000000G NXNIC:: MOV I.TCB(R3),R1 ; GET TCB ADDRESS
99 000024 032761 000000G 000000G BIT #T3.PRV,T.ST3(R1) ; AND MAKE SURE HE'S PRIVLEGED
100 000032 001415 BEQ 10$ ; REPRIMAND HIM IF NOT.
101 000034 CALL TIME ; GET THE CURRENT TIME.
102 000040 CALL GETINI ; RESET GET ROUTINES
103 000044 CALL PUTINI ; AND PUT ROUTINES.
104 000050 016300 000006G MOV I.PRM+6(R3),R0 ; GET NICE FUNCTION REQUEST
105 000054 022700 000056 CMP #FCMAX,R0
106 000060 101406 BLOS 20$
107 000062 CALLR @30$(R0)
108
109 000066 012700 000000C 10$: MOV #IE.PRI&377,R0 ; PRIVLEGED VIOLATION
110 000072 CALLR RQALT
111 000076 20$: CALLR IEONP ; OPTION NOT SUPPORTED
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 6
NXNIC - DISPATCH NICE FUNCTION
113 ;+
114 ; THE REQUEST DISPATCH TABLE
115 ;-
116
117 000102 002654' 30$: .WORD RDNNAM ; READ NODE NAMES
118 000104 003004' .WORD RDNSTA ; READ NODE STATE
119 000106 002612' .WORD RDNCOU ; READ NODE COUNTERS
120 000110 004016' .WORD ZRNCOU ; ZERO NODE COUNTERS
121 000112 000000G .WORD IEONP ;STNSTA ; SET LOCAL NODE STATE
122 000114 001626' .WORD RDLNAM ; READ LINE IDENTIFIERS
123 000116 002034' .WORD RDLSTA ; READ LINE STATE
124 000120 001532' .WORD RDLCOU ; READ LINE COUNTERS
125 000122 003550' .WORD ZRLCOU ; ZERO LINE COUNTERS
126 000124 000000G .WORD IEONP ;STLSTA ; SET LINE STATE
127 000126 003364' .WORD STNHOS ; SET HOST NODE NAME
128 000130 000000G .WORD IEONP ;STLHOS ; SET HOST NODE FOR LINE
129 000132 003456' .WORD STXPWD ; SET TRANSMIT PASSWORD
130 000134 003450' .WORD STRPWD ; SET RECEIVE PASSWORD
131 000136 000000G .WORD IEONP ;STNOPR ; SET OPERATOR LOG STATE FOR LOCAL NODE
132 000140 000000G .WORD IEONP ;STNMNT ; SET MAINTENANCE LOG STATE FOR LOCAL NODE
133 000142 000000G .WORD IEONP ;STLOPR ; SET OPERATOR LOG STATE FOR LINE
134 000144 003642' .WORD STLMNT ; SET MAINTENANCE LOG STATE FOR LINE ;BH05N
135 000146 000000G .WORD IEONP ; (UNUSED)
136 000150 003270' .WORD STMEM ; DEPOSIT MEMORY
137 000152 002332' .WORD RDMEM ; EXAMINE MEMORY
138
139 000056 FCMAX=.-20$
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 7
CVLTST - GET DEVICE TYPE NUMBER FOR LINE
141 .SBTTL CVLTST - GET DEVICE TYPE NUMBER FOR LINE
142 ;+
143 ; **CVLTST-GET THE NICE STANDARD DEVICE TYPE NUMBER FOR A SYSTEM LINE DEVICE
144 ;
145 ; INPUTS:
146 ; R0 = ADDRESS OF SYSTEM LINE TABLE ENTRY
147 ;
148 ; OUTPUTS:
149 ; R0 = DEVICE TYPE NUMBER OR ERROR CODE
150 ; CARRY SET IF ERROR
151 ;
152 ; REGISTERS MODIFIED: R0
153 ;-
154 .MCALL CVLMDF
155 000154 CVLMDF ; GET THE TABLE OF DEVICES
156
157 000154 010146 CVLTST: MOV R1,-(SP) ; GET ROOM TO MOVE
158 000156 116000 000002 MOVB L.DDM(R0),R0 ; DDM PROCESS INDEX
159 000162 066700 000000G ADD $PDVTA,R0 ; TO GET INTO PDV TABLES
160 000166 011000 MOV (R0),R0 ; THIS IS THE TABLE
161 000170 016001 000006 MOV Z.NAM(R0),R1 ; AND THIS IS THE NAME.
162 000174 012700 000000' MOV #CONTAB,R0 ; NOW FOR THE TABLE
163 000200 022700 000120' 10$: CMP #CONTAB+ENDIX,R0 ; END OF TABLE ALREADY ?
164 000204 101407 BLOS 40$ ; IF NOT,
165 000206 022001 CMP (R0)+,R1 ; THEN CHECK THE NAME.
166 000210 001373 BNE 10$ ; DON'T I KNOW YOU FROM SOMEWHERE ?
167 000212 162700 000002' SUB #CONTAB+2,R0 ; AH, YES !
168 000216 000241 CLC
169 000220 012601 30$: MOV (SP)+,R1 ; BACK WITH OLD FRIENDS.
170 000222 RETURN
171 000224 012700 000000G 40$: MOV #IE.BDV,R0 ; BAD DEVICE
172 000230 000261 SEC
173 000232 000772 BR 30$ ; GET BACK R1.
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 8
CVLTST - GET DEVICE TYPE NUMBER FOR LINE
175 ;+
176 ; GET A SERVICE DISPATCH TABLE ADDRESS FOR A GIVEN PROCESS ID
177 ;
178 ; INPUTS:
179 ; R1 - PROCESS INDEX
180 ;
181 ; OUTPUTS:
182 ; R1 - SERVICE DISPATCH TABLE ADDRESS
183 ;
184 ; REGISTERS MODIFIED: R2,R1
185 ;-
186
187 000000 .PSECT $$NAM0,D,GBL
188 000000 DVNAM: ; DEVICE NAME TABLE
189 000000 .PSECT $$NAM2,D,GBL
190 000000 000000 .WORD 0 ; TABLE TERMINATOR
191 000000 .PSECT $$DSP0,D,GBL
192 000000 DVDSP: ; DISPATCH TABLE ADDRESSES
193 000234 .PSECT
194 000234' $$$ =.
195 000234 000314' 000314' 000314' .WORD $NXNOP,$NXNOP,$NXNOP,$NXNOP
000242 000314'
196 000000 .PSECT $$DSP2,D,GBL
197 000000 000234' .WORD $$$
198
199 000244 .PSECT
200 000244 042701 177600 DVTBL: BIC #^C177,R1 ; MAKE SURE IT IS AN INDEX
201 000250 066701 000000G ADD $PDVTA,R1 ; ADD PDV VECTOR ADDRESS
202 000254 011101 MOV (R1),R1 ; GET DESCRIPTOR
203 000256 016101 000006 MOV Z.NAM(R1),R1 ; TO GET ITS NAME.
204 000262 012702 000000' MOV #DVNAM,R2 ; NOW TO THE TABLE
205 000266 005712 10$: TST (R2) ; END OF TABLE ?
206 000270 001405 BEQ 80$ ; IF NOT,
207 000272 022201 CMP (R2)+,R1 ; CHECK THE NAME
208 000274 001374 BNE 10$ ; NO MATCH - CHECK THE REST.
209 000276 016201 000000C MOV DVDSP-DVNAM-2(R2),R1 ; GOT IT !
210 000302 RETURN
211 000304 000261 80$: SEC ; NOT RECOGNIZED -
212 000306 016201 000000C MOV DVDSP-DVNAM(R2),R1 ; PASS DEFAULT DISPATCH TABLE.
213 000312 RETURN
214
215 000314 012700 000000G $NXNOP::MOV #IE.ONP,R0 ; OPTION NOT SUPPORTED
216 000320 000261 SEC ; FLAG THE PROBLEM
217 000322 RETURN ; THAT'S ALL FOLKS
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 9
FNDLIN - FIND INFORMATION ON LINE
219 .SBTTL FNDLIN - FIND INFORMATION ON LINE
220 ;+
221 ; **-FNDLIN-GIVEN THE LINE IDENTIFIER POINTED TO BY R2, FIND THE LINE
222 ; IN THE SYSTEM TABLES AND FILL IN THE LINE PARAMETER BLOCK
223 ;
224 ; INPUTS:
225 ; R3 = I/O PACKET ADDRESS
226 ; ARGUMENT BUFFER = 4 BYTE LINE ID
227 ;
228 ; OUTPUTS:
229 ; R5 = POINTS TO LINE PARAMETER BLOCK
230 ;
231 ; REGISTERS MODIFIED: R5,R2,R1,R0
232 ;-
233
234 000324 012705 000000' FNDLIN: MOV #LINBLK,R5 ; GET LINE PARAMETER BLOCK
235 000330 010501 MOV R5,R1 ; AND COPY ADDRESS
236 000332 CALL GET1 ; GET DEVICE TYPE
237 000336 103414 BCS 90$ ; LOSER
238 000340 016021 000000' MOV CONTAB(R0),(R1)+ ; AND STORE THE PROCESS NAME.
239 000344 012700 000003 MOV #3,R0
240 000350 CALL GETN ; GET CONTROLLER, UNIT, AND STATION.
241 000354 103405 BCS 90$
242 000356 CALL FNDLA ; FILL IN THE INFORMATION.
243 000362 103002 BCC 90$ ; IF NOT FOUND
244 000364 012700 000000C MOV #IE.MOD&377,R0 ; THEN SAY SO.
245 000370 90$: RETURN
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 10
FNDNOD - FIND NODE INFORMATION
247 .SBTTL FNDNOD - FIND NODE INFORMATION
248 ;+
249 ; **-FNDNOD-GIVEN THE NODE NAME POINTED TO BY R2, FIND THE NODE
250 ; IN THE NSP TABLES AND FILL IN THE NODE PARAMETER BLOCK
251 ;
252 ; INPUTS:
253 ; R3 = I/O PACKET ADDRESS
254 ; ARGUMENT BUFFER = NODE NAME (I-6)
255 ;
256 ; OUTPUTS:
257 ; R5 = POINTS TO NODE PARAMETER BLOCK
258 ;
259 ; REGISTERS MODIFIED: R5,R2,R1,R0
260 ;-
261
262 000000 .PSECT BYTE,D
263 000000 NODNAM: .BLKB 7
264
265 000372 .PSECT
266 000372 012701 000000' FNDNOD: MOV #NODNAM,R1 ; GET OUR NODE NAME BUFFER
267 000376 012700 000007 MOV #7,R0 ; LENGTH OF BUFFER
268 000402 CALL GETI ; AND COPY THE NODE NAME.
269 000406 103470 BCS 90$
270 000410 010446 MOV R4,-(SP) ; GET SOME ROOM TO WORK
271 000412 010346 MOV R3,-(SP)
272 000414 CALL NSPDAT ; GET NSP'S DATA BASE
273 000420 016504 000034 MOV N$NOD+2(R5),R4 ; THE NODE NAME TABLE
274 000424 016503 000032 MOV N$NOD(R5),R3 ; AND NUMBER OF NODES
275 000430 032714 070000 10$: BIT #DF$FRE,(R4) ; IGNORE NODE ENTRY
276 000434 001444 BEQ 70$ ; IF NOT IN USE.
277 000436 012702 000000' MOV #NODNAM,R2 ; GET OUR NODE NAME BUFFER
278 000442 010401 MOV R4,R1 ; COPY THE ENTRY ADDRESS
279 000444 062701 000005 ADD #D$LNG,R1 ; TO GET TO THE NAME
280 000450 112200 MOVB (R2)+,R0 ; GET THE LENGTH
281 000452 122100 CMPB (R1)+,R0 ; AND COMPARE.
282 000454 001034 BNE 70$ ; IF OKAY, THEN
283 000456 122221 20$: CMPB (R2)+,(R1)+ ; CHECK THE REST.
284 000460 001032 BNE 70$
285 000462 SOB R0,20$ ; IF A MATCH,
286 000466 010467 177306 MOV R4,NNOD+LINBLK ; SAVE THE ENTRY ADDRESS
287 000472 005067 177304 CLR NNUM+LINBLK ; ASSUME NO NODE NUMBER
288 000476 005067 177302 CLR NPWD+LINBLK ; PASSWORD
289 000502 005067 177300 CLR NSTA+LINBLK ; OR STATISTICS.
290 000506 032714 040000 BIT #DF$LCL,(R4) ; IF LOCAL
291 000512 001411 BEQ 30$ ; THEN
292 000514 016767 000000G 177260 MOV $NSPNM,NNUM+LINBLK ; INSERT THE LOCAL NODE NUMBER
293 000522 016567 000040 177254 MOV N$VER+2(R5),NPWD+LINBLK ; THE PASSWORD VERIFICATION BLOCK
294 000530 016567 000044 177250 MOV N$STS+2(R5),NSTA+LINBLK ; AND THE STATISTICS BLOCK.
295 000536 012705 000000' 30$: MOV #LINBLK,R5 ; GET PARAMETER BLOCK
296 000542 000241 CLC ; MAKE SURE THE CARRY IS CLEAR
297 000544 000407 BR 80$ ; AND EXIT.
298 000546 062704 000014 70$: ADD #D$LEN,R4 ; GO ON TO NEXT NODE
299 000552 SOB R3,10$ ; AND CHECK THEM ALL.
300 000556 012700 000000C MOV #IE.NSF&377,R0 ; NODE NOT FOUND
301 000562 000261 SEC
302 000564 012603 80$: MOV (SP)+,R3
303 000566 012604 MOV (SP)+,R4
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 10-1
FNDNOD - FIND NODE INFORMATION
304 000570 90$: RETURN
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 11
GET* - GET DATA FROM THE ARGUMENT BUFFER
306 .SBTTL GET* - GET DATA FROM THE ARGUMENT BUFFER
307 ;+
308 ; **-GET1-GET BYTE INTO OUTPUT BUFFER
309 ; **-GETI-GET I-TYPE STRING FROM ARGUMENT BUFFER
310 ; **-GETN-GET STRING FROM ARGUMENT BUFFER
311 ;
312 ; INPUTS:
313 ; R3 = I/O PACKET ADDRESS
314 ; R1 = STRING POINTER
315 ; R0 = LENGTH OF STRING
316 ;
317 ; OUTPUTS:
318 ; R0 = BYTE EXTRACTED
319 ;
320 ; REGISTERS MODIFIED: APR6,R1,R0
321 ;-
322
323 000572 GETADR: .BLKW 1 ; CURRENT ADDRESS WITHIN BUFFER
324 000574 GETCNT: .BLKW 1 ; BYTES LEFT IN BUFFER
325 000576 GETLMT: .BLKW 1 ; LIMIT ON I-TYPE GET
326
327 000600 GET1: CALL GETSET ; GET UP AND TEST FOR EOF.
328 000604 103407 BCS GETRTN
329 000606 005367 177762 DEC GETCNT ; ACCOUNT FOR BYTE
330 000612 005000 CLR R0 ; AND PICK IT UP
331 000614 157700 177752 BISB @GETADR,R0 ; NO SIGN EXTEND.
332 000620 005267 177746 INC GETADR ; BUMP THE ADDRESS.
333 000624 GETRTN: RETURN
334
335 000626 GET2: CALL GET1 ; GET LOW BYTE
336 000632 010067 177740 MOV R0,GETLMT ; AND SAVE
337 000636 CALL GET1 ; NOW THE HIGH BYTE
338 000642 103770 BCS GETRTN ; AND IF THERE IS ONE
339 000644 000300 SWAB R0 ; MOVE IT UP
340 000646 056700 177724 BIS GETLMT,R0 ; AND STICK IN LOW BYTE.
341 000652 RETURN
342
343 000654 010067 177716 GETI: MOV R0,GETLMT ; SAVE LIMITING VALUE
344 000660 CALL GET1 ; GET CHARACTER COUNT
345 000664 103757 BCS GETRTN ; IF THERE IS ONE.
346 000666 026700 177704 CMP GETLMT,R0 ; IF OVER LIMIT
347 000672 103437 BLO GETEOF ; DECLARE BAD PARAMETERS.
348 000674 110021 MOVB R0,(R1)+ ; STORE COUNT
349 000676 001752 BEQ GETRTN ; AND QUIT IF ZERO.
350 000700 GETN: CALL GETSET ; GET UP AND TEST FOR EOF.
351 000704 103747 BCS GETRTN
352 000706 026700 177662 CMP GETCNT,R0 ; ENOUGH BYTES LEFT ?
353 000712 103427 BLO GETEOF ; IF SO,
354 000714 160067 177654 SUB R0,GETCNT ; ACCOUNT FOR THEM
355 000720 117721 177646 70$: MOVB @GETADR,(R1)+ ; AND COPY THEM OVER.
356 000724 005267 177642 INC GETADR
357 000730 SOB R0,70$
358 000734 RETURN
359
360 000736 016367 000002G 177626 GETINI: MOV I.PRM+2(R3),GETADR ; ADDRESS
361 000744 016367 000004G 177622 MOV I.PRM+4(R3),GETCNT ; AND LENGTH.
362 000752 RETURN
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 11-1
GET* - GET DATA FROM THE ARGUMENT BUFFER
363
364 000754 005767 177614 GETSET: TST GETCNT ; WHAT'S OUR STATUS ?
365 000760 003404 BLE GETEOF ; IF BYTES AVAILABLE
366 000762 MAP I.PRM(R3) ; THEN MAP TO BUFFER.
367 000770 RETURN
368
369 000772 005067 177576 GETEOF: CLR GETCNT ; MAKE SURE THE COUNT IS ZERO
370 000776 012700 000000C MOV #IE.BAD&377,R0 ; ALWAYS BAD PARAMETERS.
371 001002 000261 SEC
372 001004 RETURN
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 12
PUT* - MOVE DATA INTO OUTPUT BUFFER
374 .SBTTL PUT* - MOVE DATA INTO OUTPUT BUFFER
375 ;+
376 ; **-PUT1-MOVE BYTE INTO OUTPUT BUFFER
377 ; **-PUT2-MOVE WORD INTO OUTPUT BUFFER
378 ; **-PUTEX2-MOVE EXTENDABLE WORD INTO OUTPUT BUFFER
379 ; **-PUTI-MOVE I-TYPE STRING INTO OUTPUT BUFFER
380 ; **-PUTN-MOVE STRING INTO OUTPUT BUFFER
381 ;
382 ; INPUTS:
383 ; R3 = I/O PACKET ADDRESS
384 ; R1 = STRING ADDRESS
385 ; R0 = WORD TO INSERT OR LENGTH OF STRING
386 ;
387 ; NO OUTPUTS
388 ;
389 ; REGISTERS MODIFIED: APR6,R1,R0
390 ;-
391
392 001006 PUTAPR: .BLKW 1 ; APR BIAS INTO BUFFER
393 001010 PUTADR: .BLKW 1 ; OUTPUT BUFFER ADDRESS
394 001012 PUTCNT: .BLKW 1 ; BYTES LEFT IN BUFFER
395 001014 PUTBEG: .BLKW 1 ; BEGGINING ADDRESS OF BUFFER
396
397 001016 PUT2: CALL PUT1 ; MOVE IN LOW BYTE OF TIME
398 001022 103412 BCS PUTRTN ; IF WE CAN
399 001024 000300 SWAB R0 ; AND
400
401 001026 PUT1: CALL PUTSET ; SET UP AND CHECK FOR END OF BUFFER.
402 001032 103406 BCS PUTRTN
403 001034 005367 177752 DEC PUTCNT ; ACCOUNT FOR THE BYTE
404 001040 110077 177744 MOVB R0,@PUTADR ; INSERT IT
405 001044 005267 177740 INC PUTADR ; AND BUMP THE POINTER.
406 001050 PUTRTN: RETURN
407
408 001052 006300 PUTEX2: ASL R0 ; PUT SECOND 7 BITS IN UPPER BYTE
409 001054 022700 000377 CMP #377,R0 ; SET CARRY IF THERE IS A SECOND
410 001060 106000 RORB R0 ; AND SET OR CLEAR EXTENSION FLAG.
411 001062 100003 BPL 10$ ; IF TWO BYTES
412 001064 CALL PUTSET ; MAKE SURE COUNT IS CORRECT
413 001070 103767 BCS PUTRTN
414 001072 10$: CALL PUT1 ; STORE LOW BYTE
415 001076 000300 SWAB R0 ; AND IF THERE IS A SECOND
416 001100 001352 BNE PUT1 ; MOVE THAT IN AS WELL.
417 001102 RETURN
418
419 001104 112100 PUTI: MOVB (R1)+,R0 ; MOVE IN I-TYPE FIELD
420 001106 CALL PUT1 ; STORE THE CHARACTER COUNT
421 001112 103756 BCS PUTRTN ; IF WE CAN
422 001114 PUTN: CALL PUTSET ; MAKE SURE WE'RE SET UP
423 001120 103753 BCS PUTRTN ; AND
424 001122 026700 177664 CMP PUTCNT,R0 ; CHECK IF WE CAN HOLD OUR WATER.
425 001126 103445 BLO PUTEOF ; IF SO,
426 001130 160067 177656 SUB R0,PUTCNT ; ACCOUNT FOR THE CHARACTERS
427 001134 112177 177650 70$: MOVB (R1)+,@PUTADR ; MOVE BYTES OVER
428 001140 005267 177644 INC PUTADR
429 001144 SOB R0,70$ ; AS MANY AS SPECIFIED IN R0.
430 001150 RETURN
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 12-1
PUT* - MOVE DATA INTO OUTPUT BUFFER
431
432 001152 016301 000012G PUTINI: MOV I.PRM+12(R3),R1 ; LENGTH OF BUFFER
433 001156 100001 BPL 10$ ; AND IF ILLEGAL
434 001160 005001 CLR R1 ; THEN MAKE NULL.
435 001162 010167 177624 10$: MOV R1,PUTCNT ; STORE IT
436 001166 001415 BEQ 20$ ; AND IF THERE IS A BUFFER
437 001170 016300 000010G MOV I.PRM+10(R3),R0 ; GET ITS ADDRESS
438 001174 CALL $ACHKB ; ADDRESS CHECK, BYTE ALIGNED
439 001200 103426 BCS PUTACK ; IF ADDRESS OKAY,
440 001202 CALL $RELOC ; RELOCATE IT
441 001206 010167 177574 MOV R1,PUTAPR ; SAVE THE APR
442 001212 010267 177572 MOV R2,PUTADR ; THE ADDRESS
443 001216 010267 177572 MOV R2,PUTBEG ; SAVE THIS FOR LATER
444 001222 20$: RETURN
445
446 001224 005767 177562 PUTSET: TST PUTCNT
447 001230 003404 BLE PUTEOF
448 001232 MAP PUTAPR
449 001240 RETURN
450
451 001242 005067 177544 PUTEOF: CLR PUTCNT ; MAKE SURE THE COUNT IS ZERO
452 001246 012700 000000C MOV #IE.DAO&377,R0 ; RAN OVER END OF BUFFER.
453 001252 000261 SEC
454 001254 RETURN
455
456 001256 005167 177530 PUTACK: COM PUTCNT ; PROPAGATE THE PROBLEM
457 001262 012700 000000C MOV #IE.SPC&377,R0 ; ILLEGAL USER BUFFER
458 001266 RETURN ; CARRY IS SET BY "COM"
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 13
PUTNOD - COMPRESS AND INSERT A NODE NAME
460 .SBTTL PUTNOD - COMPRESS AND INSERT A NODE NAME
461 ;+
462 ; **-PUTNOD-FIND THE LENGTH OF THE GIVEN NODE NAME AND INSERT IT INTO
463 ; THE OUTPUT BUFFER AS AN I-TYPE FIELD.
464 ;
465 ; INPUTS:
466 ; R3 = I/O PACKET ADDRESS
467 ; R1 = ADDRESS OF 6 CHARACTER NODE NAME (PADDED WITH BLANKS)
468 ;
469 ; NO OUTPUTS
470 ;
471 ; REGISTERS MODIFIED: APR6,R1,R0
472 ;-
473
474
475 001270 010100 PUTNOD: MOV R1,R0 ; COPY NODE NAME POINTER
476 001272 062700 000006 ADD #6,R0 ; AND POINT TO END.
477 001276 122740 000040 10$: CMPB #' ,-(R0) ; FIND THE END OF THE NAME
478 001302 001005 BNE 20$ ; AND
479 001304 020100 CMP R1,R0 ; IF WE FALL OFF
480 001306 001373 BNE 10$ ; THEN
481 001310 005000 CLR R0 ; NAME IS NULL.
482 001312 CALLR PUT1 ; OTHERWISE
483 001316 005200 20$: INC R0 ; COMPUTE THE LENGTH
484 001320 160100 SUB R1,R0 ; AND
485 001322 CALL PUT1 ; INSERT IT
486 001326 CALLR PUTN ; ALONG WITH THE NAME.
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 14
$PUTCT - INSERT COUNTERS INTO OUTPUT BUFFER
488 .SBTTL $PUTCT - INSERT COUNTERS INTO OUTPUT BUFFER
489 ;+
490 ; **-$PUTCT-EXTRACT COUNTERS ACCORDING TO GIVEN TABLE AND INSERT INTO
491 ; OUTPUT BUFFER. THE TABLE IS COMPOSED OF BYTE PAIRS FOLLOWED BY A NEGATIVE
492 ; TERMINATING BYTE. THE FIRST BYTE OF THE PAIR IS THE COUNTER TYPE, WHILE
493 ; THE SECOND IS A DISPLACEMENT INTO THE LINE/NODE TABLE FOR THE COUNTER.
494 ; IF THE DISPLACEMENT IS POSITIVE, A WORD IS PICKED FROM THE TABLE, OTHERWISE
495 ; A BYTE IS EXTRACTED. A SPECIAL CASE IS MADE FOR THE TIME-LAST-ZEROED COUNTER
496 ; TO COMPUTE THE ELAPSED TIME BEFORE INSERTING INTO THE BUFFER.
497 ;
498 ; INPUTS:
499 ; R4 = BASE ADDRESS OF TABLE TO EXTRACT COUNTERS FROM
500 ; R3 = I/O PACKET ADDRESS
501 ; R1 = ADDRESS OF COUNTER EXTRACTION TABLE
502 ;
503 ; OUTPUTS:
504 ;
505 ; REGISTERS MODIFIED: APR6,R0
506 ;-
507
508 001332 112100 $PUTCT::MOVB (R1)+,R0 ; MOVE COUNTER TABLE INTO BUFFER.
509 001334 10$: CALL PUT1 ; INSERT COUNTER TYPE.
510 001340 112100 MOVB (R1)+,R0 ; IF DISPLACEMENT TO WORD
511 001342 100403 BMI 20$ ; THEN
512 001344 060400 ADD R4,R0 ; ADD BASE OF TABLE
513 001346 011000 MOV (R0),R0 ; AND GET WORD.
514 001350 000403 BR 30$ ; OTHERWISE GET BYTE:
515 001352 005400 20$: NEG R0 ; GET PROPER DISPLACEMENT
516 001354 060400 ADD R4,R0 ; ADD BASE OF TABLE
517 001356 111000 MOVB (R0),R0 ; AND PICK UP THE BYTE.
518 001360 105761 177776 30$: TSTB -2(R1) ; IF TIME COUNTER
519 001364 001011 BNE 50$ ; THEN
520 001366 010046 MOV R0,-(SP) ; SAVE HIS CLOCK
521 001370 016700 000030 MOV .CURTM,R0 ; GET CURRENT TIME
522 001374 162600 SUB (SP)+,R0 ; TO COMPUTE ELAPSED TIME.
523 001376 103003 BCC 40$ ; IF OVERFLOW
524 001400 062700 124300 ADD #<24.*60.*30.>,R0 ; ADD IN A DAY
525 001404 100401 BMI 50$ ; IF MI, OVERFLOW AGAIN - DON'T SHIFT
526 001406 006300 40$: ASL R0 ; CONVERT TIME INTO 1 SECOND INTERVALS
527 001410 50$: CALL PUT2 ; STORE THE COUNTER
528 001414 103402 BCS 90$
529 001416 112100 MOVB (R1)+,R0 ; IF MORE TO COME
530 001420 100345 BPL 10$ ; THEN PICK THEM UP ALSO.
531 001422 90$: RETURN
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 15
TIME - GET THE CURRENT TIME
533 .SBTTL TIME - GET THE CURRENT TIME
534 ;+
535 ; **-TIME-GET THE CURRENT TIME FOR ZERO FUNCTIONS
536 ;
537 ; NO INPUTS
538 ;
539 ; OUTPUTS:
540 ;
541 ; .CURTM = CURRENT TIME IN SECONDS PAST MIDNIGHT DIVIDED BY 2
542 ;
543 ; REGISTERS MODIFIED: R1,R0
544 ;-
545
546 001424 .CURTM::.BLKW 1 ; CURRENT TIME.
547
548 001426 016701 177772G TIME: MOV $TTNS-6,R1 ; GET CURRENT HOUR
549 001432 070127 000074 MUL #60.,R1 ; TURN INTO MINUTES SINCE MIDNIGHT
550 001436 066701 177774G ADD $TTNS-4,R1 ; ADD IN CURRENT MINUTES
551 001442 070127 000036 MUL #30.,R1 ; CONVERT TO 2 SECOND INTERVALS
552 001446 016700 177776G MOV $TTNS-2,R0 ; GET SECONDS
553 001452 006200 ASR R0 ; DIVIDE BY 2
554 001454 060001 ADD R0,R1 ; AND ADD IN FOR TOTAL
555 001456 010167 177742 MOV R1,.CURTM ; SET AS CURRENT TIME.
556 001462 RETURN
557
558 001464 016701 177320 BFSUC: MOV PUTADR,R1 ; GET CURRENT ADDRESS
559 001470 166701 177320 SUB PUTBEG,R1 ; TO COMPUTE LENGTH
560 001474 012700 000000C MOV #IS.SUC&377,R0 ; SUCCESS !
561 001500 CALLR RQDON ; AND FINISH OPERATION.
562
563 001504 012700 000000C ISSUC: MOV #IS.SUC&377,R0 ; RETURN CODE
564 001510 CALLR RQALT ; FINISH THE OPERATION.
565
566 001514 016705 000000G NSPDAT: MOV $PDVTA,R5 ; GET THE PDV VECTOR
567 001520 016505 000000G MOV PD$NSP(R5),R5 ; THE NSP PDV
568 001524 016505 000014 MOV Z.DAT(R5),R5 ; THE DATA BASE ADDRESS.
569 001530 RETURN
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 16
RDLCOU - DISPLAY LINE COUNTS
571 .SBTTL RDLCOU - DISPLAY LINE COUNTS
572 ;+
573 ; **-RDLCOU-DISPLAY THE LINE COUNTS
574 ;
575 ; MUMBLE, MUMBLE, MUMBLE....
576 ;
577 ; INPUTS:
578 ; R3 = I/O PACKET ADDRESS
579 ;
580 ; OUTPUTS:
581 ;
582 ; REGISTERS MODIFIED: R5,R4,R2,R1,R0
583 ;-
584
585 001532 RDLCOU: CALL FNDLIN ; FIND LINE ID IN SYSTEM TABLES
586 001536 103431 BCS 99$ ; IF CS, RETURN
587 001540 116501 000010 MOVB TSLN(R5),R1 ; GET LINE NUMBER
588 001544 070127 000014 MUL #L.LEN,R1 ; AS INDEX INTO $SLTTA
589 001550 066701 000000G ADD $SLTTA,R1 ; POINT TO ENTRY FOR LINE
590 001554 032711 040000 BIT #LF.RDY,(R1) ; IF NOT READY
591 001560 001416 BEQ 98$ ; THEN QUIT.
592 001562 016104 000010 MOV L.DLS(R1),R4 ; GET LINE TABLE VIRTURAL ADDRESS
593 001566 MAP L.DLM(R1) ; AND MAP TO IT.
594 001574 116501 000015 MOVB TDLC(R5),R1 ; GET THE DLC PROCESS INDEX
595 001600 CALL DVTBL ; THE SERVICE DISPATCH TABLE
596 001604 CALL @S.RCN(R1) ; AND EXECUTE THE REQUEST
597 001610 103404 80$: BCS 99$
598 001612 CALLR BFSUC ; SUCCESS
599 001616 012700 000000C 98$: MOV #IE.MOD&377,R0 ; LINE NOT LOADED.
600 001622 99$: CALLR RQALT ; OR FAILURE.
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 17
RDLNAM - GET KNOWN LINE IDENTIFIERS
602 .SBTTL RDLNAM - GET KNOWN LINE IDENTIFIERS
603 ;+
604 ; **-RDLNAM-GET THE NAMES OF THE LINES ON THIS NODE
605 ;
606 ; INPUTS:
607 ; R3 = I/O PACKET ADDRESS
608 ;
609 ; OUTPUTS:
610 ;
611 ; REGISTERS MODIFIED: R5,R4,R2,R1,R0
612 ;-
613
614 001626 016705 000000G RDLNAM: MOV $SLTTA,R5 ; GET SYSTEM LINE TABLE
615 001632 016704 000000G MOV $LLCTA,R4 ; AND REVERSE MAPPING TABLE.
616 001636 016746 000000G MOV $SLTNM,-(SP) ; AND NUMBER OF LINES.
617 001642 032715 020000 10$: BIT #LF.UNL,(R5) ; IF LINE
618 001646 001017 BNE 40$ ; UNLOADED
619 001650 032715 040000 BIT #LF.RDY,(R5) ; OR NOT READY
620 001654 001414 BEQ 40$ ; THEN BYPASS IT.
621 001656 011402 MOV (R4),R2 ; IF IT IS
622 001660 100404 BMI 20$ ; POINT-TO-POINT
623 001662 010402 MOV R4,R2 ; THEN JUST USE LLCTB ADDRESS
624 001664 CALL 60$ ; AND CHECK THE ENTRY OUT
625 001670 000406 BR 40$ ; OTHERWISE LINE IS MULTIPOINT.
626 001672 006302 20$: ASL R2 ; TURN INTO MAPPING TABLE ADDRESS.
627 001674 30$: CALL 60$ ; PROCESS THE STATION
628 001700 005722 TST (R2)+ ; ADVANCE THE POINTER
629 001702 005712 TST (R2) ; AND IF THERE ARE MORE
630 001704 100373 BPL 30$ ; THEN DO THEM ALSO.
631 001706 062705 000014 40$: ADD #L.LEN,R5 ; GO TO THE NEXT LINE
632 001712 005724 TST (R4)+ ; AND
633 001714 005316 DEC (SP) ; IF MORE TO GO
634 001716 001351 BNE 10$ ; THEN GO DO THEM.
635 001720 005726 TST (SP)+ ; TOSS OUR COUNT
636 001722 CALLR BFSUC ; EXIT WITH GRACE
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 18
RDLNAM - GET KNOWN LINE IDENTIFIERS
638 001726 010500 60$: MOV R5,R0 ; COPY LINE TABLE ADDRESS
639 001730 CALL CVLTST ; AND OBTAIN DEVICE TYPE.
640 001734 103436 BCS 90$ ; IGNORE IF WE DON'T RECOGNIZE IT.
641 001736 CALL PUT1 ; STORE IT FOR HIS EDIFICATION.
642 001742 116500 000012 MOVB L.CTL(R5),R0 ; THE CONTROLLER NUMBER
643 001746 CALL PUT1
644 001752 116500 000013 MOVB L.UNT(R5),R0 ; THE UNIT NUMBER ALSO
645 001756 CALL PUT1
646 001762 005000 CLR R0 ; ASSUME NOT MULTIPOINT
647 001764 032715 000020 BIT #LF.MTP,(R5) ; AND IF A CHECK
648 001770 001405 BEQ 80$ ; PROVES THIS INCORRECT
649 001772 011400 MOV (R4),R0 ; COMPUTE THE
650 001774 006300 ASL R0 ; LOGICAL STATION NUMBER
651 001776 005400 NEG R0 ; BY THE
652 002000 060200 ADD R2,R0 ; DISPLACEMENT INTO
653 002002 006200 ASR R0 ; THE STATION MAPPING TABLE.
654 002004 80$: CALL PUT1 ; INSERT THE STATION NUMBER
655 002010 116200 000001 MOVB 1(R2),R0 ; GET OWNER'S PDV INDEX
656 002014 066700 000000G ADD $PDVTA,R0 ; TO GET INTO PDV TABLES
657 002020 011000 MOV (R0),R0 ; THIS IS THE TABLE
658 002022 016000 000006 MOV Z.NAM(R0),R0 ; AND THIS IS THE NAME.
659 002026 CALLR PUT2 ; RETURN IT WITH THE REST.
660 002032 90$: RETURN
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 19
RDLSTA - DISPLAY LINE STATE
662 .SBTTL RDLSTA - DISPLAY LINE STATE
663 ;+
664 ; **-RDLSTA-DISPLAY STATE OF LINE
665 ;
666 ; LINE STATE IS DECLARED ON, OFF OR MAINT.
667 ;
668 ; INPUTS:
669 ; R3 = I/O PACKET ADDRESS
670 ;
671 ; OUTPUTS:
672 ; NICE MESSAGE BUILT FOR SHOW STATE LINE
673 ;
674 ; REGISTERS MODIFIED: R5,R4,R2,R1,R0
675 ;-
676
677 002034 RDLSTA: CALL FNDLIN ; FIND LINE IN SYSTEM DATA BASES
678 002040 103507 BCS 99$ ; IF CS, COULDN'T - ERROR
679 002042 012700 000004 MOV #ST$MAI,R0 ; ASSUME STATE = MAINTENANCE
680 002046 CALL RDLPLD ; IF NSP OWNS IT
681 002052 103410 BCS 10$ ; GET ITS LINE DATA BASE ADDRESS.
682 002054 012700 000000 MOV #ST$ON,R0 ; ASSUME "ON"
683 002060 132761 000001 000001 BITB #PF$UP,P$LST+1(R1) ; IS LINE UP ?
684 002066 001002 BNE 10$ ; IF NE, YES
685 002070 012700 000001 MOV #ST$OFF,R0 ; ELSE STATE = "OFF"
686 002074 10$: CALL PUT1 ; INSERT LINE STATE
687
688 002100 012700 000001 MOV #ST$OFF,R0 ; THE NEXT ITEM IS OFF.
689 002104 CALL PUT1 ; OPERATOR LOGGING STATE
690 002110 116501 000010 MOVB TSLN(R5),R1 ; GET SYSTEM LINE NUMBER
691 002114 070127 000014 MUL #L.LEN,R1 ; AS INDEX INTO
692 002120 066701 000000G ADD $SLTTA,R1 ; THE SYSTEM LINE TABLE
693 002124 032711 040000 BIT #LF.RDY,(R1) ; IF LINE IS READY
694 002130 001416 BEQ 20$ ; THEN
695 002132 016104 000004 MOV L.DDS(R1),R4 ; PICK UP THE DEVICE LINE TABLE.
696 002136 116501 000014 MOVB TDDM(R5),R1 ; GET THE DDM PROCESS INDEX
697 002142 CALL DVTBL ; THE SERVICE DISPATCH TABLE
698 002146 CALL @S.RLG(R1) ; TO GET THE LOGGING STATES.
699 002152 103405 BCS 20$ ; IF EXISTANT,
700 002154 005700 TST R0 ; CHECK STATE.
701 002156 001403 BEQ 20$
702 002160 012700 000000 MOV #ST$ON,R0 ; ON
703 002164 000402 BR 30$ ; OR
704 002166 012700 000001 20$: MOV #ST$OFF,R0 ; OFF.
705 002172 30$: CALL PUT1 ; MAINTENANCE LOGGING STATE
706
707 002176 CALL RDLPLD ; GET THE LINK DATA BASE AGAIN
708 002202 103420 BCS 40$ ; IF IT BELONGS TO NSP
709 002204 132761 000001 000001 BITB #PF$UP,P$LST+1(R1) ; STATE = UP ?
710 002212 001414 BEQ 40$ ; IF EQ, NO - NO REMOTE NAME
711 002214 122761 000005 000000 CMPB #PS$UP,P$LST(R1) ; HAVE WE NODE-INIT ?
712 002222 001010 BNE 40$ ; IF NE, NO - "REMOTE=NONE"
713 002224 016101 000010 MOV P$NOD(R1),R1 ; POINT TO NODE DESCRIPTOR
714 002230 001405 BEQ 40$ ; IF EQ, NONE
715 002232 062701 000005 ADD #D$LNG,R1 ; POINT TO NODE NAME
716 002236 CALL PUTI ; MOVE IT IN.
717 002242 000403 BR 50$ ; OTHERWISE
718 002244 005000 40$: CLR R0 ; NO REMOTE NODE NAME
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 19-1
RDLSTA - DISPLAY LINE STATE
719 002246 CALL PUT1
720 002252 103402 50$: BCS 99$
721 002254 CALLR BFSUC ; SUCCESS
722 002260 99$: CALLR RQALT ; OR FAILURE.
723 ;
724 ; GET NSP PHYSICAL LINE DATA BASE IF APPLICABLE
725 ;
726 002264 122765 000000G 000017 RDLPLD: CMPB #PD$NSP,TASN+1(R5) ; OWNED BY NSP ?
727 002272 001015 BNE 90$ ; IF NOT, RETURN ERROR.
728 002274 116501 000016 MOVB TASN(R5),R1 ; GET ASSIGNMENT
729 002300 070127 000014 MUL #P$LEN,R1 ; AND INDEX TO PLD
730 002304 016700 000000G MOV $PDVTA,R0 ; GET THE PDV VECTOR
731 002310 016000 000000G MOV PD$NSP(R0),R0 ; THE NSP PDV
732 002314 016000 000014 MOV Z.DAT(R0),R0 ; THE DATA BASE ADDRESS
733 002320 066001 000030 ADD N$PLD+2(R0),R1 ; POINT TO LINK DESCRIPTOR
734 002324 005727 TST (PC)+ ; CLEAR THE CARRY
735 002326 000261 90$: SEC ; OR SET IT.
736 002330 RETURN
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 20
RDMEM - EXAMINE MEMORY
738 .SBTTL RDMEM - EXAMINE MEMORY
739 ;+
740 ; **-RDMEM-READ A CONTIGUOUS BLOCK OF MEMORY
741 ;
742 ; INPUTS:
743 ; R3 = ADDRESS OF I/O PACKET
744 ;
745 ; NO OUTPUTS
746 ;
747 ; REGISTERS MODIFIED: R5,R4,R2,R0
748 ;-
749
750 002332 RDMEM: CALL COMEM ;CALL THE ADDRESS-CHECKER
751 ;AND IF ALL SET,
752 002336 10$: .IF DF M$$MGE
753 002336 MAP R2 ;IF IN PAGE 0
754 002342 001015 BNE 50$ ;AND
755 002344 022705 140004 CMP #140004+0,R5 ;REFERS TO THE NXM VECTOR
756 .IFF
757 CMP #4+0,R5
758 .IFTF
759 002350 001002 BNE 20$ ;THEN
760 002352 110100 MOVB R1,R0 ;GET THE LOW BYTE
761 002354 000406 BR 40$
762 002356 20$: .IFT
763 002356 022705 140005 CMP #140004+1,R5 ;OR
764 .IFF
765 CMP #4+1,R5
766 .ENDC
767 002362 001005 BNE 50$
768 002364 000301 SWAB R1
769 002366 110100 MOVB R1,R0 ;THE HIGH BYTE.
770 002370 000301 SWAB R1
771 002372 005205 40$: INC R5
772 002374 000401 BR 60$
773 002376 112500 50$: MOVB (R5)+,R0 ;MOVE BYTES FROM CORE
774 002400 60$: CALL PUT1 ;STUFF IT INTO THE BUFFER
775 002404 103403 BCS 80$
776 002406 SOB R4,10$ ;UNTIL ALL DONE.
777 002412 005000 CLR R0 ;INDICATE SUCCESS
778 002414 80$: RETURN ;LET THE CO-ROUTINE HANDLE STATUS.
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 21
RDMEM - EXAMINE MEMORY
780 002416 012601 COMEM: MOV (SP)+,R1 ;RETRIEVE RETURN ADDRESS
781 002420 CALL GET2 ;GET LOW MEMORY ADDRESS
782 002424 010005 MOV R0,R5
783 002426 CALL GET2 ;AND HIGH PART.
784 002432 103457 BCS 90$ ;IF SUCCESSFUL
785 002434 010004 MOV R0,R4 ;THEN
786 002436 012700 000000C MOV #IE.BLK&377,R0 ;MAKE THE BOUNDS CHECK
787 .IF DF M$$MGE
788 002442 022704 000003 CMP #3,R4 ;CHECK AGAINST UPPER ADDRESS BOUND
789 002446 103451 BLO 90$ ; ADDRESS TOO HIGH - IGNORE REQUEST
790 .IFF
791 BNE 90$ ;
792 .IFT
793 002450 010546 MOV R5,-(SP) ;SAVE BIAS INTO PAGE
794 000002 .REPT 2 ;TURN INTO BIAS
795 ASR R4 ;
796 ROR R5 ;
797 .ENDR ;BY
798 000004 .REPT 4 ;SHIFTING RIGHT
799 ROR R5 ;
800 .ENDR ;SIX PLACES.
801 002472 042705 170000 BIC #^C7777,R5 ;CLEAR OUT THE JUNK
802 002476 010502 MOV R5,R2 ;AND SAVE FOR MAPPING.
803 002500 012605 MOV (SP)+,R5 ;PICK UP OFFSET
804 002502 042705 177700 BIC #^C77,R5 ; IN PAGE
805 002506 062705 140000 ADD #140000,R5 ;SET UP VIRTUAL ADDRESS
806 .ENDC
807 002512 CALL GET1 ;NOW PICK UP THE LENGTH
808 002516 103425 BCS 90$ ;IF THERE...
809 002520 010004 MOV R0,R4 ;
810 002522 MFPS -(SP) ;SAVE CURRENT PRIORITY
811 002526 MTPS #340 ;GRAB THE SYSTEM
812 002534 010146 MOV R1,-(SP) ;SAVE CO-ROUTINE ADDRESS
813 002536 013701 000004 MOV @#4,R1 ;GET THE NXM ADDRESS
814 002542 012737 002576' 000004 MOV #100$,@#4 ;AND SET UP OUR OWN.
815 002550 CALL @(SP)+
816 002552 010137 000004 MOV R1,@#4 ;NXM TRAP ADDRESS
817 002556 MTPS (SP)+ ;AND PRIORITY.
818 002562 105700 TSTB R0 ;IF THERE IS A STATUS
819 002564 001002 BNE 90$ ;THEN POSSIBLE ERROR
820 002566 CALLR BFSUC ;OTHERWISE SUCCESS
821 002572 90$: CALLR RQALT ;ERROR...
822
823 002576 012700 000000C 100$: MOV #IE.BLK&377,R0 ;SET INVALID FUNCTION
824 002602 012716 002610' MOV #110$,(SP) ;SET TO QUIT
825 002606 000002 RTI ;AND RETURN.
826 002610 110$: RETURN
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 22
RDNCOU - SHOW NODE COUNTERS
828 .SBTTL RDNCOU - SHOW NODE COUNTERS
829 ;+
830 ; **-RDNCOU-SHOW NODE COUNTERS
831 ;
832 ; MOVES THE NSP STATISTICS COUNTERS INTO A DATA MESSAGE TO BE SENT TO THE
833 ; REQUESTING TASK.
834 ;
835 ; INPUTS:
836 ; R3 = ADDRESS OF I/O PACKET
837 ;
838 ; OUTPUTS:
839 ;
840 ; REGISTERS MODIFIED: R5,R4,R1,R0
841 ;-
842
843 000007 .PSECT BYTE,D
844 000007 000 000 RDTNOD: .BYTE NN$ZRO,S$SEC ; TIME LAST ZEROED
845 000011 001 002 .BYTE NN$UMS,S$UMS ; USER MESSAGES SENT
846 000013 002 004 .BYTE NN$UMR,S$UMR ; USER MESSAGES RECEIVED
847 000015 003 006 .BYTE NN$EXT,S$EMR ; EXTRANEOUS MESSAGES RECEIVED
848 000017 004 010 .BYTE NN$NKS,S$NKS ; NEGATIVE ACKNOWLEGEMENTS SENT
849 000021 005 012 .BYTE NN$FMT,S$FMT ; FORMAT ERRORS OTHER THAN ROUTING
850 000023 006 014 .BYTE NN$RES,S$RES ; RESOURCE ERRORS
851 000025 007 016 .BYTE NN$IZS,S$SNI ; SUCCESSFUL NEIGHBOR INITIALIZATIONS
852 000027 010 020 .BYTE NN$IZU,S$UNI ; UNSUCCESSFUL NEIGHBOR INITIALIZATIONS
853 000031 011 022 .BYTE NN$CAC,S$LNK ; CURRENTLY ACTIVE LOGICAL LINKS
854 000033 012 024 .BYTE NN$MAC,S$MLK ; MAXIMUM LINKS ACTIVE
855 000035 200 .BYTE 200
856
857 002612 .PSECT
858 002612 RDNCOU: CALL FNDNOD ; EXTRACT THE NODE
859 002616 103414 BCS 99$
860 002620 016504 000006 MOV NSTA(R5),R4 ; GET THE STATISTICS BLOCK ADDRESS
861 002624 001407 BEQ 98$ ; IF THERE ARE ANY
862 002626 012701 000007' MOV #RDTNOD,R1 ; SET UP DISPLACEMENT TABLE
863 002632 CALL $PUTCT ; AND MOVE COUNTERS INTO OUTPUT BUFFER.
864 002636 103404 BCS 99$
865 002640 CALLR BFSUC ; RETURN SUCCESS WITH BUFFER LENGTH
866 002644 012700 000000C 98$: MOV #IE.NBK&377,R0 ; NO STATISTICS BLOCK
867 002650 99$: CALLR RQALT ; RETURN ERROR
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 23
RDNNAM - GET KNOWN NODE NAMES
869 .SBTTL RDNNAM - GET KNOWN NODE NAMES
870 ;+
871 ; **-RDNNAM-RETURN THE NAMES OF ALL NODES KNOWN BY THIS NODE
872 ;
873 ; INPUTS:
874 ; R3 = I/O PACKET ADDRESS
875 ;
876 ; OUTPUTS:
877 ;
878 ; REGISTERS MODIFIED: R5,R4,R2,R1,R0
879 ;-
880
881 002654 RDNNAM: CALL NSPDAT ; GET NSP DATA BASE ADDRESS
882 002660 016504 000034 MOV N$NOD+2(R5),R4 ; GET NODE DATA BASE
883 002664 016502 000032 MOV N$NOD(R5),R2 ; AND NUMBER OF NODES (MUST BE AT LEAST ONE).
884 002670 032714 070000 10$: BIT #DF$FRE,(R4) ; IS THIS ENTRY IN USE ?
885 002674 001433 BEQ 70$ ; IF SO,
886 002676 112700 000002 MOVB #N$XADJ,R0 ; ASSUME ADJACENT
887 002702 032714 020000 BIT #DF$ADJ,(R4) ; GOOD GUESS ?
888 002706 001407 BEQ 20$ ; IF SO,
889 002710 026465 000002 000006 CMP D$CHN(R4),N$ICF(R5) ; IT MIGHT BE THE INTERCEPT NODE. ;AP0001
890 002716 001012 BNE 40$ ; LEAVE AS ADJACENT
891 002720 012700 000003 MOV #N$XINT,R0 ; OR INDICATE AS INTERCEPT.
892 002724 000407 BR 40$
893 002726 112700 000004 20$: MOVB #N$XRMT,R0 ; TRY FOR REMOTE
894 002732 032714 010000 BIT #DF$REM,(R4) ; HOW ABOUT THIS ?
895 002736 001002 BNE 40$ ; UMMM...
896 002740 112700 000001 MOVB #N$XLCL,R0 ; MUST BE LOCAL.
897 002744 40$: CALL PUT1 ; STORE THE NODE TYPE.
898 002750 010401 MOV R4,R1 ; COPY NODE ENTRY ADDRESS
899 002752 062701 000005 ADD #D$LNG,R1 ; TO GET TO NODE NAME
900 002756 CALL PUTI ; AND STORE IN OUTPUT BUFFER
901 002762 103406 BCS 90$
902 002764 062704 000014 70$: ADD #D$LEN,R4 ; GO ON TO NEXT
903 002770 SOB R2,10$ ; IF THERE IS ONE.
904 002774 CALLR BFSUC ; AND DECLARE THE OPERATION A SUCCESS.
905 003000 90$: CALLR RQALT ; RETURN ERROR CODE
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 24
RDNSTA - DISPLAY NODE STATE
907 .SBTTL RDNSTA - DISPLAY NODE STATE
908 ;+
909 ; **-RDNSTA-DISPLAY NODE STATE
910 ;
911 ; FORMATS THE NICE MESSAGE FOR THE SHOW STATE COMMAND.
912 ;
913 ; INPUTS:
914 ; R3 = I/O PACKET ADDRESS
915 ;
916 ; OUTPUTS:
917 ; MESSAGE FORMATED
918 ;
919 ; REGISTERS MODIFIED: R5,R4,R1,R0
920 ;-
921 ;
922 ; COMM AND ROUTING VERSIONS
923 ;
924 000036 .PSECT BYTE,D
925 000036 003 VERMSG: .BYTE RT$VER ; ROUTING VERSION NUMBER
926 000037 001 .BYTE RT$ECO ; ROUTING ECO
927 000040 000 .BYTE RT$REV ; REVISION NUMBER
928 000041 003 .BYTE CM$VER ; COMM VERSION
929 000042 001 .BYTE CM$ECO ; COMM ECO
930 000043 000 .BYTE CM$REV ; REVISION NUMBER
931 000044 000 000 000 PWDMSG: .BYTE 0,0,0,0 ; WHAT CAN WE SAY
000047 000
932 000050 000 000 000 .BYTE 0,0,0,0 ; WHEN THERE'S NO PASSWORD ?
000053 000
933
934 003004 .PSECT
935 003004 RDNSTA: CALL FNDNOD ; FIND NODE DATA BASE
936 003010 103525 BCS 99$ ; IF CS, ERROR
937 003012 016504 000000 MOV NNOD(R5),R4 ; GET NODE NAME DESCRIPTOR
938 003016 032714 040000 BIT #DF$LCL,(R4) ; IF NODE IS NOT LOCAL
939 003022 001062 BNE 60$ ; THEN
940 ;
941 ; REMOTE NODE
942 ;
943 003024 016500 000002 MOV NNUM(R5),R0 ; GET NODE NUMBER
944 003030 CALL PUTEX2 ; AND INSERT
945 003034 012700 000001 MOV #ST$OFF,R0 ; ASSUME NODE IS OFF.
946 003040 016401 000002 MOV D$CHN(R4),R1 ; IF THERE IS A CHANNEL
947 003044 001412 BEQ 10$ ; AND
948 003046 122761 000005 000000 CMPB #PS$UP,P$LST(R1) ; IT IS UP
949 003054 001006 BNE 10$
950 003056 132761 000001 000001 BITB #PF$UP,P$LST+1(R1) ; THEN
951 003064 001402 BEQ 10$
952 003066 012700 000000 MOV #ST$ON,R0 ; THE NODE IS UP.
953 003072 10$: CALL PUT1 ; MOVE IN THE STATE BYTE.
954 003076 016501 000004 MOV NPWD(R5),R1 ; IF NO PASSWORD BLOCK
955 003102 001403 BEQ 20$ ; THEN SUBSTITUTE NULLS
956 003104 132711 100000 BITB #VF$RCV,(R1) ; OTHERWISE CHECK IF VALID
957 003110 001002 BNE 30$ ; IF NOT,
958 003112 012701 000042' 20$: MOV #PWDMSG-V$RCV,R1 ; USE NULLS ALSO.
959 003116 062701 000002 30$: ADD #V$RCV,R1 ; UP TO THE RECEIVE PASSWORD
960 003122 012700 000010 MOV #8.,R0 ; OF 8 CHARACTERS IN LENGTH
961 003126 CALL PUTN ; STUFF THEM IN.
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 24-1
RDNSTA - DISPLAY NODE STATE
962 003132 016501 000004 MOV NPWD(R5),R1 ; IF NO PASSWORD BLOCK
963 003136 001403 BEQ 40$ ; THEN SUBSTITUTE NULLS
964 003140 132711 040000 BITB #VF$XMT,(R1) ; OTHERWISE CHECK IF VALID
965 003144 001002 BNE 50$ ; IF NOT,
966 003146 012701 000032' 40$: MOV #PWDMSG-V$XMT,R1 ; USE NULLS ALSO.
967 003152 062701 000012 50$: ADD #V$XMT,R1 ; UP TO THE TRANSMIT PASSWORD
968 003156 012700 000010 MOV #8.,R0 ; OF 8 CHARACTERS IN LENGTH
969 003162 CALL PUTN ; STUFF THEM IN.
970 003166 000433 BR 80$ ; THAT IS IT.
971 ;
972 ; LOCAL NODE
973 ;
974 003170 012700 000000 60$: MOV #ST$ON,R0 ; NODE IS ALWAYS ON
975 003174 CALL PUT1 ; NODE STATE
976 003200 012700 000001 MOV #ST$OFF,R0 ; LOGGING STATES ARE OFF
977 003204 CALL PUT1 ; OPERATOR LOGGING STATE
978 003210 CALL PUT1 ; MAINTENANCE LOGGING STATE
979 003214 012701 000000G MOV #$HOST,R1 ; GET HOST NAME ADDRESS
980 003220 CALL PUTNOD ; AND STORE IT.
981 003224 012701 000036' MOV #VERMSG,R1 ; POINT TO CANNED PART OF MESSAGE
982 003230 012700 000006 MOV #6,R0 ; GET LENGTH OF MESSAGE
983 003234 CALL PUTN ; MOVE MESSAGE INTO BUFFER
984 003240 012701 000000G MOV #$NODID,R1 ; POINT TO NODE ID DESCRIPTOR
985 003244 012100 MOV (R1)+,R0 ; GET STRING LENGTH AND POINT TO STRING
986 003246 CALL PUT1 ; SET STRING LENGTH IN MESSAGE
987 003252 CALL PUTN ; MOVE NODE ID INTO BUFFER
988 003256 103402 80$: BCS 99$
989 003260 CALLR BFSUC ; FINISH WITH GRACE
990 003264 99$: CALLR RQALT ; OR WITH SHAME.
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 25
STMEM - DEPOSIT MEMORY
992 .SBTTL STMEM - DEPOSIT MEMORY
993 ;+
994 ; **-STMEM-STORE A CONTIGUOUS BLOCK OF MEMORY
995 ;
996 ; INPUTS:
997 ; R3 = I/O PACKET ADDRESS
998 ;
999 ; OUTPUTS:
1000 ;
1001 ; REGISTERS MODIFIED:
1002 ;-
1003
1004 003270 STMEM: CALL COMEM ;CALL THE ADDRESS-CHECKER
1005 ;AND IF ALL SET,
1006 003274 10$: CALL GET1 ;MOVE BYTES
1007 003300 103430 BCS 80$
1008 .IF DF M$$MGE
1009 003302 MAP R2 ;IF IN PAGE 0
1010 003306 001020 BNE 40$ ;AND
1011 003310 022705 140005 CMP #140004+1,R5 ;REFERS TO THE NXM VECTOR
1012 .IFF
1013 CMP #4+1,R5
1014 .IFTF
1015 003314 103415 BLO 40$ ;THEN
1016 003316 001005 BNE 20$
1017 003320 000301 SWAB R1
1018 003322 105001 CLRB R1
1019 003324 150001 BISB R0,R1 ;STORE LOW BYTE
1020 003326 000301 SWAB R1
1021 003330 000405 BR 30$
1022 003332 20$: .IFT
1023 003332 022705 140004 CMP #140004+0,R5 ;OR
1024 .IFF
1025 CMP #4+0,R5
1026 .ENDC
1027 003336 001004 BNE 40$
1028 003340 105001 CLRB R1
1029 003342 150001 BISB R0,R1 ;HIGH BYTE
1030 003344 005205 30$: INC R5 ;UPDATE CORE POINTER.
1031 003346 000401 BR 60$
1032 003350 110025 40$: MOVB R0,(R5)+ ; FROM BUFFER TO CORE
1033 003352 60$: SOB R4,10$ ;UNTIL ALL DONE.
1034 003356 012700 000000C MOV #IS.SUC&377,R0 ;GET A POSITIVE NUMBER
1035 003362 80$: RETURN
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 26
STNHOS - SET HOST FOR LOCAL NODE
1037 .SBTTL STNHOS - SET HOST FOR LOCAL NODE
1038 ;+
1039 ; **-STNHOS-SET DEFAULT HOST NODE FOR THIS NODE
1040 ;
1041 ; INPUTS:
1042 ; R3 = I/O PACKET ADDRESS
1043 ;
1044 ; OUTPUTS:
1045 ;
1046 ; REGISTERS MODIFIED: R1,R0
1047 ;-
1048
1049 003364 STNHOS: CALL GET1 ; GET NODE NAME LENGTH
1050 .IF DF D$$BUG
1051 003370 022700 000006 CMP #6,R0 ; RANGE-CHECK THE LENGTH
1052 003374 103415 BLO 98$ ; IF OVER SIZE
1053 .IFTF
1054 003376 012701 000004G 10$: MOV #$HOST+4,R1 ; GET DEFAULT HOST NODE NAME
1055 003402 012711 020040 MOV #" ,(R1) ; AND CLEAR IT OUT.
1056 003406 011141 MOV (R1),-(R1)
1057 003410 011141 MOV (R1),-(R1)
1058 003412 005700 TST R0 ; IF NAME NOT NULL
1059 003414 001403 BEQ 20$ ; THEN
1060 003416 CALL GETN ; COPY THE NEW NODE NAME
1061 003422 103404 BCS 99$
1062 003424 20$: CALLR ISSUC ; SUCCESSFUL COMPLETION.
1063 .IFT
1064 003430 012700 000000C 98$: MOV #IE.BAD&377,R0 ; BAD PARAMETERS
1065 .ENDC
1066 003434 99$: CALLR RQALT ; OR ERROR.
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 27
STNPWD - SET PASSWORD
1068 .SBTTL STNPWD - SET PASSWORD
1069 ;+
1070 ; **-STNPWD-SET PASSWORD FOR THIS NODE
1071 ;
1072 ; INPUTS:
1073 ; R3 = I/O PACKET ADDRESS
1074 ;
1075 ; OUTPUTS:
1076 ;
1077 ; REGISTERS MODIFIED: R5,R4,R2,R1,R0
1078 ;-
1079
1080 003440 000002 100000 RCVPWD: .WORD V$RCV,VF$RCV
1081 003444 000012 040000 XMTPWD: .WORD V$XMT,VF$XMT
1082
1083 003450 012704 003440' STRPWD: MOV #RCVPWD,R4 ; SET FOR RECEIVE PASSWORD
1084 003454 000402 BR STNPWD
1085
1086 003456 012704 003444' STXPWD: MOV #XMTPWD,R4 ; SET FOR TRANSMIT PASSWORD
1087
1088 003462 STNPWD: CALL FNDNOD ; FIND OUT ABOUT THE NODE
1089 003466 103426 BCS 99$ ; (IF WE KNOW IT)
1090 003470 016505 000004 MOV NPWD(R5),R5 ; AND CHECK FOR VERIFICATION BLOCK
1091 003474 001421 BEQ 98$ ; (IF THERE IS ONE)
1092 003476 012402 MOV (R4)+,R2 ; GET OFFSET TO PASSWORD
1093 003500 060502 ADD R5,R2 ;
1094 003502 041465 000000 BIC (R4),V$FLG(R5) ; ASSUME PASSWORD IS BEING CLEARED
1095 003506 012701 000010 MOV #8.,R1 ; TRANSFER 8 BYTES
1096 003512 10$: CALL GET1 ; GET THE NEXT BYTE
1097 003516 110022 MOVB R0,(R2)+ ; AND STUFF INTO BLOCK.
1098 003520 001402 BEQ 20$ ; IF NON-ZERO
1099 003522 051465 000000 BIS (R4),V$FLG(R5) ; INDICATE THERE IS DATA THERE.
1100 003526 20$: SOB R1,10$ ;
1101 003532 103404 BCS 99$ ; CRY IF NOT ENOUGH DATA...
1102 003534 CALLR ISSUC ; SUCCESSFUL COMPLETION.
1103 003540 012700 000000C 98$: MOV #IE.NBK&377,R0 ; NO PASSWORD BLOCK
1104 003544 99$: CALLR RQALT ; OR ERROR.
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 28
ZRLCOU - ZERO LINE COUNTERS
1106 .SBTTL ZRLCOU - ZERO LINE COUNTERS
1107 ;+
1108 ; **-ZRLCOU-ZERO LINE COUNTERS
1109 ;
1110 ; ZEROES THE LINE COUNTERS FOR HE SPECIFIED LINE.
1111 ;
1112 ; INPUTS:
1113 ; R3 = I/O PACKET ADDRESS
1114 ;
1115 ; OUTPUTS:
1116 ;
1117 ; REGISTERS MODIFIED: R5,R4,R2,R1,R0
1118 ;-
1119
1120 003550 ZRLCOU: CALL FNDLIN ; FIND LINE ID IN SYSTEM TABLES
1121 003554 103430 BCS 40$ ; IF CS, RETURN
1122 003556 116501 000010 MOVB TSLN(R5),R1 ; GET LINE NUMBER
1123 003562 070127 000014 MUL #L.LEN,R1 ; AND INDEX TO
1124 003566 066701 000000G ADD $SLTTA,R1 ; ENTRY FOR LINE
1125 003572 032711 040000 BIT #LF.RDY,(R1) ; IF LINE READY
1126 003576 001415 BEQ 38$ ; THEN
1127 003600 016104 000010 MOV L.DLS(R1),R4 ; GET LINE TABLE VIRTURAL ADDRESS
1128 003604 MAP L.DLM(R1) ; AND MAP TO IT.
1129 003612 116501 000015 MOVB TDLC(R5),R1 ; GET THE DLC PROCESS INDEX
1130 003616 CALL DVTBL ; THE SERVICE DISPATCH TABLE
1131 003622 CALL @S.ZCN(R1) ; MAKE THE REQUEST
1132 003626 30$: CALLR ISSUC ; SUCCESSFUL COMPLETION
1133 003632 012700 000000C 38$: MOV #IE.MOD&377,R0 ; LINE NOT LOADED
1134 003636 40$: CALLR RQALT ; ERROR CONDITION
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 29
STLMNT ;BH05
1136 .SBTTL STLMNT ;BH05
1137 ;+
1138 ; **-STLMNT - SET/CLEAR LINE MAINTENANCE (EVENT) LOGGING
1139 ;
1140 ; THIS ROUTINE ENABLES/DISABLES EVENT LOGGING FOR THE
1141 ; SPECIFIED LINE.
1142 ;
1143 ; INPUTS:
1144 ; R3 = I/O PACKET ADDRESS
1145 ;
1146 ; OUTPUTS (ON CALL TO DEVICE-DEPENDENT MODULES):
1147 ; R0 = EVENT LOGGING DESTINATION
1148 ; * ZERO FOR DISABLING LOGGING
1149 ; * PDV INDEX OF DESTINATION IN HIGH
1150 ; BYTE, WITH LOW BYTE EQUAL ZERO.
1151 ; R1 = ZERO. THIS IS THE EVENT LOGGING
1152 ; ENABLE/DISABLE SUBFUNCTION.
1153 ; R2 = THE DEVICE TYPE CODE.
1154 ; R4 = THE DEVICE LINE TABLE ADDRESS.
1155 ;
1156 ; REGISTERS MODIFIED: R5,R4,R2,R1,R0
1157 ;-
1158
1159 003642 STLMNT: CALL FNDLIN ; FIND THE LINE ID IN SYS TABLES
1160 003646 103461 BCS 80$ ; OOPS !
1161 003650 116501 000010 MOVB TSLN(R5),R1 ; GET THE SYS LINE #
1162 003654 070127 000014 MUL #L.LEN,R1 ; AND INDEX TO
1163 003660 066701 000000G ADD $SLTTA,R1 ; SYSTEM LINE ENTRY.
1164 003664 032711 040000 BIT #LF.RDY,(R1) ; IF LINE READY
1165 003670 001446 BEQ 78$ ; THEN
1166 003672 016104 000004 MOV L.DDS(R1),R4 ; SET DEVICE LINE TABLE ADDR
1167 003676 CALL GET1 ; GET THE ON/OFF FLAG
1168 003702 103443 BCS 80$ ; ?
1169 003704 005700 TST R0 ; CHECK THE NEW STATE
1170 003706 001003 BNE 5$ ; IT IS ENABLE
1171 003710 012700 000000C MOV #<PD$NSP*400>,R0 ;SET DESTINATION TO NSP
1172 003714 000401 BR 10$ ; OR
1173 003716 005000 5$: CLR R0 ; NO DESTINATION.
1174 003720 010146 10$: MOV R1,-(SP) ; SAVE SLT ADDRESS
1175 003722 010046 MOV R0,-(SP) ; AND STATE.
1176 003724 116501 000014 MOVB TDDM(R5),R1 ; GET THE DDM PROCESS INDEX
1177 003730 CALL DVTBL ; THE SERVICE DISPATCH TABLE
1178 003734 CALL @S.SLG(R1) ; ATTEMPT THE OPERATION
1179 003740 012600 MOV (SP)+,R0 ; RESTORE STATE
1180 003742 012601 MOV (SP)+,R1 ; AND SLT ADDRESS.
1181 003744 103422 BCS 80$ ; WE LOSE
1182 003746 016104 000010 MOV L.DLS(R1),R4 ; GET DLC TABLE ADDRESS
1183 003752 MAP L.DLM(R1) ; AND MAP TO IT.
1184 003760 116501 000015 MOVB TDLC(R5),R1 ; GET DLC INDEX
1185 003764 126501 000014 CMPB TDDM(R5),R1 ; AND IF NOT THE SAME AS DDM
1186 003770 001404 BEQ 70$ ; THEN
1187 003772 CALL DVTBL ; GET THE SERVICE DISPATCH TABLE
1188 003776 CALL @S.SLG(R1) ; AND SERVICE THIS ALSO.
1189 004002 70$: CALLR ISSUC ; AWRIGHT
1190 004006 012700 000000C 78$: MOV #IE.MOD&377,R0 ; LINE NOT LOADED
1191 004012 80$: CALLR RQALT ; GIVE BUMMER RETURN
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 30
ZRNCOU - ZERO NODE COUNTERS
1193 .SBTTL ZRNCOU - ZERO NODE COUNTERS
1194 ;+
1195 ; **-ZRNCOU-ZERO NODE COUNTERS
1196 ;
1197 ; ZEROES THE NSP STATISTICS DESCRIPTORS, SETS S$SEC TO CURRENT TIME,
1198 ; AND RESETS THE HIGH WATER MARK IN S$MLK TO CURRENT VALUE OF S$LNK.
1199 ;
1200 ; INPUTS:
1201 ; R3 = I/O PACKET ADDRESS
1202 ; .CURTM = CURRENT TIME IN SECONDS/2 SINCE MIDNIGHT
1203 ;
1204 ; OUTPUTS:
1205 ; BLOCK ZEROED / RESET
1206 ;
1207 ; REGISTERS MODIFIED: R5,R4
1208 ;-
1209
1210 004016 ZRNCOU: CALL FNDNOD ; FIND NODE REFERRED TO.
1211 004022 103417 BCS 99$
1212 004024 016504 000006 MOV NSTA(R5),R4 ; GET STATISTICS BLOCK
1213 004030 001412 BEQ 98$ ; IF THERE IS ONE
1214 004032 016724 175366 MOV .CURTM,(R4)+ ; SET LAST ZEROED TIME TO NOW
1215 004036 012701 000010 MOV #8.,R1 ; 8. COUNTERS TO CLEAR
1216 004042 005024 10$: CLR (R4)+ ; CLEAR COUNTER
1217 004044 SOB R1,10$ ; DEC LOOP COUNT
1218 004050 012414 MOV (R4)+,(R4) ; SET LUT HIGH WATER MARK
1219 004052 CALLR ISSUC ; SUCCESSFUL COMPLETION
1220 004056 012700 000000C 98$: MOV #IE.NBK&377,R0 ; (NO STATISTICS FOR THIS NODE)
1221 004062 99$: CALLR RQALT ; OR ERROR.
1222
1223 000001 .END
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 30-1
SYMBOL TABLE
A$$CHK= 000000 C.FNC 000010 FC.RCP= 000014 H.CUIC 000010 K$$TPS= 000074
A$$CPS= 000000 C.LIN 000006 FC.TIM= 000010 H.DSW 000046 LD$LP = 000000
A$$PRI= 000000 C.LNK 000000 FC.XCP= 000012 H.DUIC 000012 LF.ACT= 100000
A$$TRP= 000000 C.MOD 000011 FC.XME= 000000 H.EFLM 000004 LF.BWT= 000007
BFSUC 001464R C.NSP 000004 FE.CAL= 000040 H.EFSV 000040 LF.DLO= 000040
CB.CCB= 000002 C.RSV 000002 FE.DRV= 000010 H.FCS 000050 LF.ENA= 002000
CB.RDB= 000004 C.STA 000007 FE.EXP= 000200 H.FORT 000052 LF.MDC= 000100
CE.ABO= 100362 C.STS 000012 FE.EXT= 000001 H.FPSA 000042 LF.MFL= 004000
CE.DIS= 100366 DF$ADJ= 020000 FE.EXV= 000004 H.FPVA 000034 LF.MTP= 000020
CE.ERR= 100370 DF$DWN= 001000 FE.LSI= 000400 H.GARD 000072 LF.RDY= 040000
CE.MOP= 100372 DF$FRE= 070000 FE.MUP= 000002 H.HDLN 000002 LF.REA= 010000
CE.NTE= 100361 DF$LCL= 040000 FE.MXT= 040000 H.IPC 000016 LF.TIM= 000010
CE.RTE= 100376 DF$LNK= 004000 FE.NLG= 100000 H.IPS 000014 LF.UNL= 020000
CE.SRC= 100364 DF$REM= 010000 FE.PKT= 000100 H.ISP 000020 LINBLK 000000R
CE.TMO= 100374 DF$RES= 002000 FE.PLA= 000020 H.LUN 000076 LI$KNO= 000000
CF.EOM= 000004 DF$TMP= 100000 FNDLA = ****** GX H.NLUN 000074 LI$STA= 000001
CF.HDR= 000020 DM$END= 000000 FNDLIN 000324R H.NML 000061 LI$STR= 000002
CF.LB = 100000 DM$MIM= 000002 FNDNOD 000372R H.ODVA 000022 LS$DUM= 000002
CF.SOM= 000010 DM$PXA= 000003 FS.AST= 000000 H.ODVL 000024 LS$LOA= 000000
CF.SYN= 000040 DM$SAD= 000001 FS.CIB= 002000 H.OVLY 000054 LS$LOO= 000001
CF.TRN= 000100 DVDSP 000000R 005 FS.CRA= 001000 H.PFVA 000032 LS$TRI= 000004
CMODE = 140000 DVNAM 000000R 003 FS.DIS= 013000 H.RCVA 000036 LS$TRQ= 000003
CM$ECO= 000001 DVTBL 000244R FS.DVC= 001000 H.RRVA 000062 L$$ASG= 000000
CM$REV= 000000 DV.CCL= 000002 FS.ENB= 012000 H.SPRI 000060 L$$DRV= 000000
CM$VER= 000003 DV.COM= 020000 FS.GET= 006000 H.TKVA 000026 L$$P11= 000001
COMEM 002416R DV.DIR= 000010 FS.INI= 000000 H.TKVL 000030 L$$11R= 000000
CONTAB 000000R 002 DV.F11= 040000 FS.KIL= 000000 H.VEXT 000056 L.CTL 000012
CS.ABO= 000100 DV.ISP= 002000 FS.LTM= 001000 H.WND 000044 L.DDM 000002
CS.BUF= 000200 DV.MNT= 100000 FS.MNT= 004000 IEONP = ****** GX L.DDS 000004
CS.DCR= 000400 DV.MXD= 000100 FS.MSN= 014000 IE.BAD= ****** GX L.DLC 000003
CS.DEV= 000002 DV.OSP= 004000 FS.RNG= 011000 IE.BDV= ****** GX L.DLM 000006
CS.DIS= 000040 DV.PSE= 010000 FS.RTN= 001000 IE.BLK= ****** GX L.DLS 000010
CS.ENB= 000020 DV.REC= 000001 FS.SET= 005000 IE.DAO= ****** GX L.FLG 000000
CS.EOF= 000001 DV.SDI= 000020 FS.STM= 000000 IE.MOD= ****** GX L.LEN = 000014
CS.ERR= 100000 DV.SQD= 000040 FS.STP= 002000 IE.NBK= ****** GX L.UNT 000013
CS.HFE= 002000 DV.SWL= 001000 FS.STR= 001000 IE.NSF= ****** GX MPAR = 172100
CS.LST= 040000 DV.TTY= 000004 FS.TRM= 003000 IE.ONP= ****** GX MPCSR = 177746
CS.MTL= 004000 DV.UMD= 000200 FS.XKL= 002000 IE.PRI= ****** GX M$$CRB= 000124
CS.RNG= 000010 D$CHN 000002 FS.XOF= 010000 IE.SPC= ****** GX M$$CRX= 000000
CS.ROV= 000004 D$FLG 000000 FS.XON= 007000 ISSUC 001504R M$$FCS= 000000
CS.RSN= 010000 D$LEN 000014 F$$LVL= 000001 IS.SUC= ****** GX M$$MGE= 000000
CS.SUC= 000001 D$LNG 000005 GETADR 000572R I$$RAR= 000000 M$$OVR= 000000
CS.TMO= 020000 D$NAM 000006 GETCNT 000574R I$$RDN= 000000 ND$BAD= 177777
CVLTST 000154R D$USE 000004 GETEOF 000772R I.PRM = ****** GX ND$LCC= 000000
C$$CKP= 000000 D$$BUG= 177514 GETI 000654R I.TCB = ****** GX ND$LCS= 000001
C$$ORE= 000400 D$$ISK= 000000 GETINI 000736R KDSAR0= 172360 ND$LNC= 000004
C$$RSH= 177564 D$$L11= 000001 GETLMT 000576R KDSDR0= 172320 ND$LNS= 000005
C.BID 000003 D$$YNC= 000000 GETN 000700R KISAR0= 172340 ND$RMC= 000002
C.BUF 000014 D$$YNM= 000000 GETRTN 000624R KISAR5= 172352 ND$RMS= 000003
C.BUF1 000014 ENDIX = 000120 GETSET 000754R KISAR6= 172354 ND$ZLC= 000000
C.BUF2 000024 E$$XPR= 000000 GET1 000600R KISAR7= 172356 ND$ZLN= 000002
C.CNT 000020 FCMAX = 000056 GET2 000626R KISDR0= 172300 ND$ZRM= 000001
C.CNT1 000020 FC.CCP= 000020 G$$TPP= 000000 KISDR6= 172314 NE$CON= 177762
C.CNT2 000030 FC.CTL= 000006 G$$TSS= 000000 KISDR7= 172316 NE$FIL= 177763
C.FLG 000022 FC.KCP= 000016 G$$TTK= 000000 K$$CNT= 177546 NE$FIO= 177756
C.FLG1 000022 FC.KIL= 000004 G$$WRD= 000000 K$$CSR= 177546 NE$FOR= 177776
C.FLG2 000032 FC.RCE= 000002 H.CSP 000000 K$$LDC= 000000 NE$FUN= 177777
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 30-2
SYMBOL TABLE
NE$LCO= 177766 NX$SNS= 000010 PR7 = 000340 RF.WTS= 000010 TSTA 000004
NE$LID= 177770 NX$XMT= 000030 PS = 177776 RQALT = ****** GX T$$KMG= 000000
NE$LPR= 177757 NX$ZLC= 000020 PS$NTI= 000003 RQDON = ****** GX T$$MIN= 000000
NE$LST= 177767 NX$ZNC= 000006 PS$OFF= 000000 RT$ECO= 000001 T.ST3 = ****** GX
NE$NCO= 177755 NX.NIC= 017050 PS$STR= 000001 RT$REV= 000000 T3.PRV= ****** GX
NE$NIC= 177753 N$ACQ 000000 PS$UP = 000005 RT$VER= 000003 UBMPR = 170200
NE$NOD= 177765 N$DPOS= 000014 PS$VER= 000004 R$$DER= 000000 UC.ALG= 000200
NE$NOR= 177754 N$DUMP= 000003 PS$WT = 000002 R$$K11= 000001 UC.ATT= 000010
NE$ORD= 177774 N$EXAM= 000015 PT$END= 000000 R$$SND= 000000 UC.KIL= 000004
NE$PAR= 177760 N$ICF 000006 PT$HOS= 000003 R$$11M= 000000 UC.LGH= 000003
NE$RES= 177761 N$LNI 000010 PT$NAM= 000001 SISDR0= 172200 UC.NPR= 000100
NE$SER= 177764 N$LNSR= 000016 PT$NUM= 000002 SR0 = 177572 UC.PWF= 000020
NE$STA= 177775 N$LOAD= 000002 PUTACK 001256R SR3 = 172516 UC.QUE= 000040
NL$BRC= 000001 N$LOGD= 000001 PUTADR 001010R STLMNT 003642R UDSAR0= 177660
NL$BTR= 000002 N$LOOP= 000005 PUTAPR 001006R STMEM 003270R UDSDR0= 177620
NL$RES= 000005 N$LVC 000022 PUTBEG 001014R STNHOS 003364R UISAR0= 177640
NL$RLE= 000004 N$NOD 000032 PUTCNT 001012R STNPWD 003462R UISAR4= 177650
NL$RTR= 000003 N$PLD 000026 PUTEOF 001242R STRPWD 003450R UISAR5= 177652
NL$TMO= 000006 N$RDIN= 000010 PUTEX2 001052R STXPWD 003456R UISAR6= 177654
NL$ZRO= 000000 N$STPR= 000007 PUTI 001104R ST$DIS= 000006 UISAR7= 177656
NNOD 000000 N$STS 000042 PUTINI 001152R ST$ENA= 000005 UISDR0= 177600
NNUM 000002 N$TCB 000004 PUTN 001114R ST$LOO= 000003 UISDR4= 177610
NN$CAC= 000011 N$TEST= 000006 PUTNOD 001270R ST$MAI= 000004 UISDR5= 177612
NN$CNI= 000013 N$TMP 000012 PUTRTN 001050R ST$OFF= 000001 UISDR6= 177614
NN$CNR= 000014 N$TRIG= 000004 PUTSET 001224R ST$ON = 000000 UISDR7= 177616
NN$EXT= 000003 N$VER 000036 PUT1 001026R ST$SHU= 000002 US.ABO= 000001
NN$FMT= 000005 N$XADJ= 000002 PUT2 001016R SWR = 177570 US.BSY= 000200
NN$IZS= 000007 N$XINT= 000003 PWDMSG 000044R 007 S$EMR 000006 US.CRW= 000004
NN$IZU= 000010 N$XLCL= 000001 P$CHN 000004 S$FMT 000012 US.DSB= 000010
NN$MAC= 000012 N$XRMT= 000004 P$CNT 000005 S$LEN 000040 US.ECH= 000002
NN$NKS= 000004 N$ZERO= 000011 P$FRQ 000012 S$LNK 000022 US.FOR= 000040
NN$RES= 000006 N$$LDV= 000001 P$FSP 000013 S$MLK 000024 US.FRK= 000002
NN$UMR= 000002 N$$MOV= 000010 P$LCD 000002 S$NKS 000010 US.LAB= 000004
NN$UMS= 000001 N$$SYS= 000001 P$LEN 000014 S$RES 000014 US.MDE= 000002
NN$ZRO= 000000 N$$USR= 000001 P$LST 000000 S$SEC 000000 US.MDM= 000020
NODNAM 000000R 007 N.MLEN= 000454 P$NOD 000010 S$SNI 000016 US.MNT= 000100
NPWD 000004 PD$NSP= ****** GX P$PFQ 000006 S$UMR 000004 US.OFL= 000001
NSPDAT 001514R PF$EIP= 000100 P$TIM 000003 S$UMS 000002 US.OUT= 000001
NSTA 000006 PF$ENB= 000200 P$$P45= 000000 S$UNI 000020 US.PUB= 000004
NS$SUC= 000001 PF$OFF= 000000 P$$WRD= 000000 S$$WRG= 000000 US.RED= 000002
NXNIC 000020RG PF$RLI= 000002 Q$$OPT= 000010 S$$YSZ= 007600 US.SHR= 000001
NX$DEP= 000046 PF$RRI= 000004 RCVPWD 003440R S.RCN 000004 US.UMD= 000010
NX$EXM= 000050 PF$RVE= 000001 RDLCOU 001532R S.RLG 000002 US.WCK= 000010
NX$RCV= 000032 PF$RVR= 000040 RDLNAM 001626R S.SLG 000000 U.ACP = 000032
NX$RLC= 000016 PF$SLI= 000002 RDLPLD 002264R S.ZCN 000006 U.ATT 000022
NX$RLN= 000012 PF$SRI= 000004 RDLSTA 002034R TASN 000016 U.BUF 000024
NX$RLS= 000014 PF$SRT= 000001 RDMEM 002332R TCTL 000002 U.CBF = 000032
NX$RNC= 000004 PF$STA= 000003 RDNCOU 002612R TDDM 000014 U.CLI 177772
NX$RNN= 000000 PF$SUB= 000010 RDNNAM 002654R TDLC 000015 U.CNT 000030
NX$RNS= 000002 PF$UP = 000001 RDNSTA 003004R TFLG 000006 U.CTL 000004
NX$SLH= 000026 PIRQ = 177772 RDTNOD 000007R 007 TIME 001426R U.CW1 000010
NX$SLM= 000042 PMODE = 030000 RF.CLN= 000000 TLIN 000003 U.CW2 000012
NX$SLO= 000040 PR0 = 000000 RF.CTL= 000003 TNAM 000000 U.CW3 000014
NX$SLS= 000022 PR1 = 000040 RF.TIM= 177400 TPDV 000007 U.CW4 000016
NX$SNH= 000024 PR4 = 000200 RF.TM0= 000400 TPS = 177564 U.DCB 000000
NX$SNM= 000036 PR5 = 000240 RF.WTD= 000020 TSLF 000012 U.LUIC 177774
NX$SNO= 000034 PR6 = 000300 RF.WTM= 000030 TSLN 000010 U.OWN 177776
NXNIC - NICE PRIVLEGED SERVICES MACRO M1110 13-OCT-79 10:33 PAGE 30-3
SYMBOL TABLE
U.RED 000002 U2.PRV= 000010 W.BLVR 000002 Z.FLG 000011 $TTNS = ****** GX
U.SCB 000020 U2.RMT= 020000 W.BNPD 000015 Z.LEN = 000014 $$$ = 000234R
U.STS 000005 U2.R04= 100000 W.BOFF 000012 Z.LLN 000010 $$$PAS= 000001
U.ST2 000007 U2.SLV= 000200 W.BPCB 000000 Z.MAP 000016 $$$0 = 000001
U.UIC = 000052 U2.VT5= 000002 W.BSIZ 000010 Z.NAM 000006 $$$10 = 000001
U.UNIT 000006 U2.7CH= 010000 XMTPWD 003444R Z.PCB 000012 $$$12 = 000001
U.VCB = 000034 VERMSG 000036R 007 X$$DBT= 000000 Z.SCH 000004 $$$14 = 000001
U2.AT.= 000020 VF$RCV= 100000 ZF.DDM= 000001 $ACHKB= ****** GX $$$2 = 000001
U2.CRT= 002000 VF$XMT= 040000 ZF.DLC= 000002 $HOST = ****** GX $$$20 = 000001
U2.DH1= 100000 V$FLG 000000 ZF.KMX= 000020 $LLCTA= ****** GX $$$24 = 000001
U2.DJ1= 040000 V$LEN 000022 ZF.LLC= 000004 $NODID= ****** GX $$$26 = 000001
U2.DZ1= 000100 V$RCV 000002 ZF.LMC= 000100 $NSPNM= ****** GX $$$30 = 000001
U2.ESC= 001000 V$XMT 000012 ZF.MFL= 000010 $NXNOP 000314RG $$$34 = 000001
U2.HLD= 000040 V$$CTR= 001000 ZF.MUX= 000040 $PDVTA= ****** GX $$$36 = 000001
U2.LOG= 000400 W.BATT 000006 ZF.TIM= 000200 $PUTCT 001332RG $$$4 = 000001
U2.LWC= 000001 W.BFPD 000014 ZRLCOU 003550R $RELOC= ****** GX $$$40 = 000001
U2.L3S= 000004 W.BHVR 000004 ZRNCOU 004016R $SLTNM= ****** GX $$$6 = 000001
U2.L8S= 010000 W.BLGH 000020 Z.DAT 000014 $SLTTA= ****** GX .CURTM 001424RG
U2.NEC= 004000 W.BLPD 000016 Z.DSP 000000
. ABS. 177776 000
004066 001
CVLDAT 000120 002
$$NAM0 000000 003
$$NAM2 000002 004
$$DSP0 000000 005
$$DSP2 000002 006
BYTE 000054 007
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 15289 WORDS ( 60 PAGES)
DYNAMIC MEMORY: 16396 WORDS ( 63 PAGES)
ELAPSED TIME: 00:01:23
NXNIC,[131,34]NXNIC/CR/-SP=[130,10]NETLIB/ML,RSXMC4/PA:1,[131,10]NXNIC
NXNIC CREATED BY MACRO ON 13-OCT-79 AT 10:33 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
BFSUC 001464 R #15-558 16-598 17-636 19-721 21-820 22-865 23-904 24-989
CM$ECO = 000001 #4-63 24-929
CM$REV = 000000 #4-63 24-930
CM$VER = 000003 #4-63 24-928
COMEM 002416 R 20-750 #21-780 25-1004
CONTAB 000000 R #7-155 7-155 7-155 7-155 7-155 7-155 7-155 7-155 7-155
7-155 7-155 7-155 7-155 7-155 7-155 7-155 7-162 7-163
7-167 9-238
CVLTST 000154 R #7-157 18-639
DF$ADJ = 020000 #4-62 4-62 23-887
DF$DWN = 001000 #4-62
DF$FRE = 070000 #4-62 10-275 23-884
DF$LCL = 040000 #4-62 4-62 10-290 24-938
DF$LNK = 004000 #4-62
DF$REM = 010000 #4-62 4-62 23-894
DF$RES = 002000 #4-62
DF$TMP = 100000 #4-62
DVDSP 000000 R #8-192 8-209 8-212
DVNAM 000000 R #8-188 8-204 8-209 8-212
DVTBL 000244 R #8-200 16-595 19-697 28-1130 29-1177 29-1187
D$CHN 000002 #4-62 23-889 24-946
D$FLG 000000 #4-62
D$LEN 000014 #4-62 10-298 23-902
D$LNG 000005 #4-62 10-279 19-715 23-899
D$NAM 000006 #4-62
D$USE 000004 #4-62
D$$BUG = 177514 26-1050
ENDIX = 000120 #7-155 7-163
FCMAX = 000056 5-105 #6-139
FNDLA = ****** GX 9-242
FNDLIN 000324 R #9-234 16-585 19-677 28-1120 29-1159
FNDNOD 000372 R #10-266 22-858 24-935 27-1088 30-1210
GETADR 000572 R #11-323 11-331 *11-332 11-355 *11-356 *11-360
GETCNT 000574 R #11-324 *11-329 11-352 *11-354 *11-361 11-364 *11-369
GETEOF 000772 R 11-347 11-353 11-365 #11-369
GETI 000654 R 10-268 #11-343
GETINI 000736 R 5-102 #11-360
GETLMT 000576 R #11-325 *11-336 11-340 *11-343 11-346
GETN 000700 R 9-240 #11-350 26-1060
GETRTN 000624 R 11-328 #11-333 11-338 11-345 11-349 11-351
GETSET 000754 R 11-327 11-350 #11-364
GET1 000600 R 9-236 #11-327 11-335 11-337 11-344 21-807 25-1006 26-1049 27-1096
29-1167
GET2 000626 R #11-335 21-781 21-783
IEONP = ****** GX 5-111 6-121 6-126 6-128 6-131 6-132 6-133 6-135
IE.BAD = ****** GX 11-370 26-1064
IE.BDV = ****** GX 7-171
IE.BLK = ****** GX 21-786 21-823
IE.DAO = ****** GX 12-452
IE.MOD = ****** GX 9-244 16-599 28-1133 29-1190
IE.NBK = ****** GX 22-866 27-1103 30-1220
IE.NSF = ****** GX 10-300
NXNIC CREATED BY MACRO ON 13-OCT-79 AT 10:33 PAGE 2
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
IE.ONP = ****** GX 8-215
IE.PRI = ****** GX 5-109
IE.SPC = ****** GX 12-457
ISSUC 001504 R #15-563 26-1062 27-1102 28-1132 29-1189 30-1219
IS.SUC = ****** GX 15-560 15-563 25-1034
I$$AS = ****** 4-60
I.PRM = ****** GX 5-104 11-360 11-361 11-366 12-432 12-437
I.TCB = ****** GX 5-98
KISAR6 = 172354 *11-366 *12-448 *16-593 *20-753 *25-1009 *28-1128 *29-1183
LF.ACT = 100000 #4-61
LF.BWT = 000007 #4-61
LF.DLO = 000040 #4-61
LF.ENA = 002000 #4-61
LF.MDC = 000100 #4-61
LF.MFL = 004000 #4-61
LF.MTP = 000020 #4-61 18-647
LF.RDY = 040000 #4-61 16-590 17-619 19-693 28-1125 29-1164
LF.REA = 010000 #4-61
LF.TIM = 000010 #4-61
LF.UNL = 020000 #4-61 17-617
LINBLK 000000 R #4-73 9-234 *10-286 *10-287 *10-288 *10-289 *10-292 *10-293 *10-294
10-295
L.CTL 000012 #4-61 18-642
L.DDM 000002 #4-61 7-158
L.DDS 000004 #4-61 19-695 29-1166
L.DLC 000003 #4-61
L.DLM 000006 #4-61 16-593 28-1128 29-1183
L.DLS 000010 #4-61 16-592 28-1127 29-1182
L.FLG 000000 #4-61
L.LEN = 000014 #4-61 16-588 17-631 19-691 28-1123 29-1162
L.UNT 000013 #4-61 18-644
M$$MGE = 000000 11-366 12-448 16-593 20-752 20-753 21-787 25-1008 25-1009 28-1128
29-1183
NNOD 000000 #4-67 *10-286 24-937
NNUM 000002 #4-67 *10-287 *10-292 24-943
NN$CAC = 000011 22-853
NN$EXT = 000003 22-847
NN$FMT = 000005 22-849
NN$IZS = 000007 22-851
NN$IZU = 000010 22-852
NN$MAC = 000012 22-854
NN$NKS = 000004 22-848
NN$RES = 000006 22-850
NN$UMR = 000002 22-846
NN$UMS = 000001 22-845
NN$ZRO = 000000 22-844
NODNAM 000000 R #10-263 10-266 10-277
NPWD 000004 #4-67 *10-288 *10-293 24-954 24-962 27-1090
NSPDAT 001514 R 10-272 #15-566 23-881
NSTA 000006 #4-67 *10-289 *10-294 22-860 30-1212
NXNIC 000020 RG #5-98
N$ACQ 000000 #4-62
NXNIC CREATED BY MACRO ON 13-OCT-79 AT 10:33 PAGE 3
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
N$ICF 000006 #4-62 23-889
N$LNI 000010 #4-62
N$LVC 000022 #4-62
N$NOD 000032 #4-62 10-273 10-274 23-882 23-883
N$PLD 000026 #4-62 19-733
N$STS 000042 #4-62 10-294
N$TCB 000004 #4-62
N$TMP 000012 #4-62
N$VER 000036 #4-62 10-293
N$XADJ = 000002 23-886
N$XINT = 000003 23-891
N$XLCL = 000001 23-896
N$XRMT = 000004 23-893
PD$NSP = ****** GX 15-567 19-726 19-731 29-1171
PF$EIP = 000100 #4-62
PF$ENB = 000200 #4-62
PF$OFF = 000000 #4-62
PF$RLI = 000002 #4-62
PF$RRI = 000004 #4-62
PF$RVE = 000001 #4-62
PF$RVR = 000040 #4-62
PF$SLI = 000002 #4-62
PF$SRI = 000004 #4-62
PF$SRT = 000001 #4-62
PF$STA = 000003 #4-62
PF$SUB = 000010 #4-62
PF$UP = 000001 #4-62 19-683 19-709 24-950
PS = 177776 21-810 21-811 21-817
PS$NTI = 000003 #4-62
PS$OFF = 000000 #4-62
PS$STR = 000001 #4-62
PS$UP = 000005 #4-62 19-711 24-948
PS$VER = 000004 #4-62
PS$WT = 000002 #4-62
PUTACK 001256 R 12-439 #12-456
PUTADR 001010 R #12-393 12-404 *12-405 12-427 *12-428 *12-442 15-558
PUTAPR 001006 R #12-392 *12-441 12-448
PUTBEG 001014 R #12-395 *12-443 15-559
PUTCNT 001012 R #12-394 *12-403 12-424 *12-426 *12-435 12-446 *12-451 *12-456
PUTEOF 001242 R 12-425 12-447 #12-451
PUTEX2 001052 R #12-408 24-944
PUTI 001104 R #12-419 19-716 23-900
PUTINI 001152 R 5-103 #12-432
PUTN 001114 R #12-422 13-486 24-961 24-969 24-983 24-987
PUTNOD 001270 R #13-475 24-980
PUTRTN 001050 R 12-398 12-402 #12-406 12-413 12-421 12-423
PUTSET 001224 R 12-401 12-412 12-422 #12-446
PUT1 001026 R 12-397 #12-401 12-414 12-416 12-420 13-482 13-485 14-509 18-641
18-643 18-645 18-654 19-686 19-689 19-705 19-719 20-774 23-897
24-953 24-975 24-977 24-978 24-986
PUT2 001016 R #12-397 14-527 18-659
PWDMSG 000044 R #24-931 24-958 24-966
NXNIC CREATED BY MACRO ON 13-OCT-79 AT 10:33 PAGE 4
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
P$CHN 000004 #4-62
P$CNT 000005 #4-62
P$FRQ 000012 #4-62
P$FSP 000013 #4-62
P$LCD 000002 #4-62
P$LEN 000014 #4-62 19-729
P$LST 000000 #4-62 19-683 19-709 19-711 24-948 24-950
P$NOD 000010 #4-62 19-713
P$PFQ 000006 #4-62
P$TIM 000003 #4-62
RCVPWD 003440 R #27-1080 27-1083
RDLCOU 001532 R 6-124 #16-585
RDLNAM 001626 R 6-122 #17-614
RDLPLD 002264 R 19-680 19-707 #19-726
RDLSTA 002034 R 6-123 #19-677
RDMEM 002332 R 6-137 #20-750
RDNCOU 002612 R 6-119 #22-858
RDNNAM 002654 R 6-117 #23-881
RDNSTA 003004 R 6-118 #24-935
RDTNOD 000007 R #22-844 22-862
RF.CLN = 000000 #4-62
RF.CTL = 000003 #4-62
RF.TIM = 177400 #4-62
RF.TM0 = 000400 #4-62
RF.WTD = 000020 #4-62
RF.WTM = 000030 #4-62
RF.WTS = 000010 #4-62
RQALT = ****** GX 5-110 15-564 16-600 19-722 21-821 22-867 23-905 24-990 26-1066
27-1104 28-1134 29-1191 30-1221
RQDON = ****** GX 15-561
RT$ECO = 000001 #4-63 24-926
RT$REV = 000000 #4-63 24-927
RT$VER = 000003 #4-63 24-925
R$$11D = ****** 4-60
R$$11M = 000000 4-60
R$$11S = ****** 4-60
STLMNT 003642 R 6-134 #29-1159
STMEM 003270 R 6-136 #25-1004
STNHOS 003364 R 6-127 #26-1049
STNPWD 003462 R 27-1084 #27-1088
STRPWD 003450 R 6-130 #27-1083
STXPWD 003456 R 6-129 #27-1086
ST$MAI = 000004 19-679
ST$OFF = 000001 19-685 19-688 19-704 24-945 24-976
ST$ON = 000000 19-682 19-702 24-952 24-974
S$EMR 000006 #4-62 22-847
S$FMT 000012 #4-62 22-849
S$LEN 000040 #4-62
S$LNK 000022 #4-62 22-853
S$MLK 000024 #4-62 22-854
S$NKS 000010 #4-62 22-848
S$RES 000014 #4-62 22-850
NXNIC CREATED BY MACRO ON 13-OCT-79 AT 10:33 PAGE 5
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
S$SEC 000000 #4-62 22-844
S$SNI 000016 #4-62 22-851
S$UMR 000004 #4-62 22-846
S$UMS 000002 #4-62 22-845
S$UNI 000020 #4-62 22-852
S.RCN 000004 #4-67 16-596
S.RLG 000002 #4-67 19-698
S.SLG 000000 #4-67 29-1178 29-1188
S.ZCN 000006 #4-67 28-1131
TASN 000016 #4-67 19-726 19-728
TCTL 000002 #4-67
TDDM 000014 #4-67 19-696 29-1176 29-1185
TDLC 000015 #4-67 16-594 28-1129 29-1184
TFLG 000006 #4-67
TIME 001426 R 5-101 #15-548
TLIN 000003 #4-67
TNAM 000000 #4-67
TPDV 000007 #4-67
TSLF 000012 #4-67
TSLN 000010 #4-67 16-587 19-690 28-1122 29-1161
TSTA 000004 #4-67
T.ST3 = ****** GX 5-99
T3.PRV = ****** GX 5-99
VERMSG 000036 R #24-925 24-981
VF$RCV = 100000 #4-62 24-956 27-1080
VF$XMT = 040000 #4-62 24-964 27-1081
V$FLG 000000 #4-62 *27-1094 *27-1099
V$LEN 000022 #4-62
V$RCV 000002 #4-62 24-958 24-959 27-1080
V$XMT 000012 #4-62 24-966 24-967 27-1081
XMTPWD 003444 R #27-1081 27-1086
X$$MCB = ****** 4-60 4-60
ZF.DDM = 000001 #4-60
ZF.DLC = 000002 #4-60
ZF.KMX = 000020 #4-60
ZF.LLC = 000004 #4-60
ZF.LMC = 000100 #4-60
ZF.MFL = 000010 #4-60
ZF.MUX = 000040 #4-60
ZF.TIM = 000200 #4-60
ZRLCOU 003550 R 6-125 #28-1120
ZRNCOU 004016 R 6-120 #30-1210
Z.DAT 000014 #4-60 15-568 19-732
Z.DSP 000000 #4-60 4-60
Z.FLG 000011 #4-60
Z.LEN = 000014 #4-60
Z.LLN 000010 #4-60
Z.MAP 000016 #4-60
Z.NAM 000006 #4-60 7-161 8-203 18-658
Z.PCB 000012 #4-60
Z.SCH 000004 #4-60
$ACHKB = ****** GX 12-438
NXNIC CREATED BY MACRO ON 13-OCT-79 AT 10:33 PAGE 6
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
$HOST = ****** GX 24-979 26-1054
$LLCTA = ****** GX 17-615
$NODID = ****** GX 24-984
$NSPNM = ****** GX 10-292
$NXNOP 000314 RG 8-195 8-195 8-195 8-195 #8-215
$PDVTA = ****** GX 7-159 8-201 15-566 18-656 19-730
$PUTCT 001332 RG #14-508 22-863
$RELOC = ****** GX 12-440
$SLTNM = ****** GX 17-616
$SLTTA = ****** GX 16-589 17-614 19-692 28-1124 29-1163
$TTNS = ****** GX 15-548 15-550 15-552
$$$ = 000234 R #8-194 8-197
$$$PAS = 000001 7-155 #7-155 7-155 7-155 7-155 7-155 7-155 7-155 7-155
7-155 7-155 7-155 7-155 7-155 7-155 7-155 7-155 7-155
$$$0 = 000001 7-155 #7-155
$$$10 = 000001 7-155 #7-155
$$$12 = 000001 7-155 #7-155
$$$14 = 000001 7-155 #7-155
$$$2 = 000001 7-155 #7-155 7-155
$$$20 = 000001 7-155 #7-155
$$$24 = 000001 7-155 #7-155
$$$26 = 000001 7-155 #7-155
$$$30 = 000001 7-155 #7-155
$$$34 = 000001 7-155 #7-155
$$$36 = 000001 7-155 #7-155
$$$4 = 000001 7-155 #7-155 7-155
$$$40 = 000001 7-155 #7-155
$$$6 = 000001 7-155 #7-155
.CURTM 001424 RG 14-521 #15-546 *15-555 30-1214
NXNIC CREATED BY MACRO ON 13-OCT-79 AT 10:33 PAGE 7
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
CALL 5-101 5-102 5-103 9-236 9-240 9-242 10-268 10-272 11-327 11-335
11-337 11-344 11-350 12-397 12-401 12-412 12-414 12-420 12-422 12-438
12-440 13-485 14-509 14-527 16-585 16-595 16-596 17-624 17-627 18-639
18-641 18-643 18-645 18-654 19-677 19-680 19-686 19-689 19-697 19-698
19-705 19-707 19-716 19-719 20-750 20-774 21-781 21-783 21-807 21-815
22-858 22-863 23-881 23-897 23-900 24-935 24-944 24-953 24-961 24-969
24-975 24-977 24-978 24-980 24-983 24-986 24-987 25-1004 25-1006 26-1049
26-1060 27-1088 27-1096 28-1120 28-1130 28-1131 29-1159 29-1167 29-1177 29-1178
29-1187 29-1188 30-1210
CALLR #4-58 #5-107 #5-110 #5-111 #13-482 #13-486 #15-561 #15-564 #16-598 #16-600
#17-636 #18-659 #19-721 #19-722 #21-820 #21-821 #22-865 #22-867 #23-904 #23-905
#24-989 #24-990 #26-1062 #26-1066 #27-1102 #27-1104 #28-1132 #28-1134 #29-1189 #29-1191
#30-1219 #30-1221
CCBDF$ #4-57 4-59
CVLMDF #7-154 7-155
DLXDF #4-58 4-70
DLXDF$ #4-57 #4-67
DVTMDF #4-58 #7-155 #7-155
HDRDF$ #4-58 4-66
HWDDF$ #4-57 #4-64 #11-366 #11-366 #12-448 #12-448 #16-593 #16-593 #20-753 #20-753
#25-1009 #25-1009 #28-1128 #28-1128 #29-1183 #29-1183
MAP #4-58 #11-366 #12-448 #16-593 #20-753 #25-1009 #28-1128 #29-1183
MFPS 21-810
MTPS 21-811 21-817
NICDF #4-58 #4-69
NSDDB$ #4-57 #4-62
NSPVR$ #4-58 #4-63
PDVDF$ #4-57 #4-60
PROCES #4-67
RETURN 7-170 8-210 8-213 8-217 9-245 10-304 11-333 11-341 11-358 11-362
11-367 11-372 12-406 12-417 12-430 12-444 12-449 12-454 12-458 14-531
15-556 15-569 18-660 19-736 20-778 21-826 25-1035
SLTDF$ #4-57 #4-61
SOB #10-285 #10-299 #11-357 #12-429 #20-776 #23-903 #25-1033 #27-1100 #30-1217
UCBDF$ #4-58 4-65
XXX #7-155 7-155 7-155 7-155 7-155 7-155 7-155 7-155 7-155 7-155
7-155 7-155 7-155 7-155 7-155 7-155 7-155