Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/monitor/nspsrv.list
There are no other files named nspsrv.list in the archive.
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 1
NSPSRV MAC 6-Apr-82 10:58
1 ; UPD ID= 569, SNARK:<5.MONITOR>P2-NSPSRV.MAC.22, 6-Apr-82 10:58:06 by GRANT
2 ;Undo more debugging code
3 ; UPD ID= 475, SNARK:<5.MONITOR>P2-NSPSRV.MAC.21, 12-Feb-82 15:24:08 by GRANT
4 ;TCO 5.1729 - NSPINT no longer loaded, remove calls to OUTSEG
5 ; UPD ID= 469, SNARK:<5.MONITOR>P2-NSPSRV.MAC.20, 9-Feb-82 08:30:27 by GRANT
6 ;TCO 5.1724 - Release all messages immediately when a link is aborted
7 ; UPD ID= 464, SNARK:<5.MONITOR>P2-NSPSRV.MAC.19, 7-Feb-82 20:35:04 by GRANT
8 ;TCO 5.1721 Make NODE JSYS function .NDGLN use 30-bit addressing
9 ; UPD ID= 372, SNARK:<5.MONITOR>P2-NSPSRV.MAC.18, 5-Jan-82 08:50:19 by GRANT
10 ;TCO 5.1649 - Add null message handling
11 ; UPD ID= 361, SNARK:<5.MONITOR>P2-NSPSRV.MAC.17, 13-Dec-81 10:48:16 by GRANT
12 ;TCO 5.1636 - use SEGSZ
13 ; UPD ID= 353, SNARK:<5.MONITOR>P2-NSPSRV.MAC.16, 10-Dec-81 10:28:01 by GRANT
14 ;Make CLZWDC just like it was in R4
15 ; UPD ID= 341, SNARK:<5.MONITOR>P2-NSPSRV.MAC.15, 4-Dec-81 08:59:22 by GRANT
16 ;TCO 5.1626 - In NODINI, make an extensible field for the node number.
17 ; UPD ID= 311, SNARK:<5.MONITOR>P2-NSPSRV.MAC.14, 6-Nov-81 10:16:04 by GRANT
18 ;TCO 5.1607 - In BLKULK, replace a JRST that was accidently removed
19 ; UPD ID= 302, SNARK:<5.MONITOR>P2-NSPSRV.MAC.13, 28-Oct-81 14:29:42 by GRANT
20 ;Turn off debugging mousetraps
21 ; UPD ID= 297, SNARK:<5.MONITOR>P2-NSPSRV.MAC.12, 28-Oct-81 10:20:32 by GRANT
22 ;TCO 5.1599 - Make NTMAN% give error return
23 ; UPD ID= 291, SNARK:<5.MONITOR>P2-NSPSRV.MAC.11, 22-Oct-81 16:10:51 by GRANT
24 ;TTREMS ends with RET instead of RETSKP
25 ; UPD ID= 289, SNARK:<5.MONITOR>P2-NSPSRV.MAC.10, 22-Oct-81 13:14:02 by GRANT
26 ;The label MCTYI2 should be TTREMS
27 ; UPD ID= 288, SNARK:<5.MONITOR>P2-NSPSRV.MAC.9, 22-Oct-81 12:17:10 by GRANT
28 ;Typo in UPD ID=278
29 ; UPD ID= 285, SNARK:<5.MONITOR>P2-NSPSRV.MAC.8, 21-Oct-81 17:36:08 by GRANT
30 ;TCO 5.1593 - Defensive code in RESEND to prevent looping caused by bad counter
31 ; UPD ID= 278, SNARK:<5.MONITOR>P2-NSPSRV.MAC.7, 21-Oct-81 13:08:58 by GRANT
32 ;TCO 5.1594 - Create TTGETS and TTREMS for TTYSRV to use
33 ; UPD ID= 272, SNARK:<5.MONITOR>P2-NSPSRV.MAC.6, 19-Oct-81 15:58:02 by GRANT
34 ;Typo in UPD ID=248 - line of code was duplicated
35 ; UPD ID= 253, SNARK:<5.MONITOR>NSPSRV.MAC.116, 8-Oct-81 16:24:42 by GRANT
36 ;TCO 5.1534 - make RDSTS reflect MO%WFC correctly
37 ; UPD ID= 251, SNARK:<5.MONITOR>NSPSRV.MAC.115, 7-Oct-81 14:32:02 by GRANT
38 ;More TCO 5.1561 - fix return from BLKULK
39 ; UPD ID= 250, SNARK:<5.MONITOR>NSPSRV.MAC.114, 7-Oct-81 11:53:04 by GRANT
40 ;RE: previous edit - ASUBR in CLRBLK should be CLRLLB
41 ; UPD ID= 248, SNARK:<5.MONITOR>NSPSRV.MAC.113, 7-Oct-81 11:16:26 by GRANT
42 ;TCO 5.1561 - Create new (recreate old) module
43 ;Fix failure return from CALL SNDLS in RDINT
44 ;Put CHKLLT in RJECT1
45 ;Obtain a new block of space for the remote descriptor in CLRBLK
46 ;Change TQNx and TMNx reflecting change in MACSYM
47 ; UPD ID= 1430, SNARK:<5.MONITOR>NSPSRV.MAC.62, 9-Jan-81 17:47:22 by MURPHY
48 ;MOVE STMXDF HERE FROM NSPINT
49 ; UPD ID= 1408, SNARK:<5.MONITOR>NSPSRV.MAC.61, 6-Jan-81 15:02:35 by MURPHY
50 ;MAKE CERTAIN CODE RESIDENT THAT MAY NOW BE CALLED FROM SKED
51 ; UPD ID= 1372, SNARK:<5.MONITOR>NSPSRV.MAC.60, 22-Dec-80 09:48:02 by GRANT
52 ;TCO 5.1218 - Change error message in OPNDFT
53 ; UPD ID= 1360, SNARK:<5.MONITOR>NSPSRV.MAC.59, 17-Dec-80 15:46:00 by MURPHY
54 ;CHKLLT INSTEAD OF CHKMCB
55 ; UPD ID= 1348, SNARK:<5.MONITOR>NSPSRV.MAC.58, 12-Dec-80 11:19:45 by MURPHY
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 1-1
NSPSRV MAC 6-Apr-82 10:58
56 ;CHKMCB AT LSIDON
57 ; UPD ID= 1318, SNARK:<5.MONITOR>NSPSRV.MAC.57, 26-Nov-80 07:17:11 by GRANT
58 ;TYPO IN PREVIOUS EDIT
59 ; UPD ID= 1316, SNARK:<5.MONITOR>NSPSRV.MAC.56, 25-Nov-80 16:58:23 by GRANT
60 ;New version of NTMAN% JSYS - NSP node counters and formatted data return
61 ; UPD ID= 1312, SNARK:<5.MONITOR>NSPSRV.MAC.55, 25-Nov-80 09:43:28 by GRANT
62 ;TCO 5.1202 - Verification of message flags subtype field
63 ; UPD ID= 1309, SNARK:<5.MONITOR>NSPSRV.MAC.54, 24-Nov-80 16:49:42 by MURPHY
64 ;Make abort close release LL block immediately
65 ;Certain subroutines need to be resident
66 ; UPD ID= 1299, SNARK:<5.MONITOR>NSPSRV.MAC.53, 19-Nov-80 16:59:45 by MURPHY
67 ;XON, XOFF OPTION FOR NVT
68 ; UPD ID= 1291, SNARK:<5.MONITOR>NSPSRV.MAC.52, 18-Nov-80 16:45:58 by MURPHY
69 ;NRT BUGS
70 ; UPD ID= 1283, SNARK:<5.MONITOR>NSPSRV.MAC.51, 18-Nov-80 14:04:39 by GRANT
71 ;TCO 5.1159 - more, don't shut off line if a Phase III transport msg appears,
72 ; just throw the message away
73 ; UPD ID= 1281, SNARK:<5.MONITOR>NSPSRV.MAC.50, 18-Nov-80 11:14:34 by GRANT
74 ;TCO 5.1159 - again, put test in a better place
75 ; UPD ID= 1274, SNARK:<5.MONITOR>NSPSRV.MAC.49, 14-Nov-80 17:52:09 by MURPHY
76 ;NRT BUGS
77 ; UPD ID= 1266, SNARK:<5.MONITOR>NSPSRV.MAC.48, 11-Nov-80 17:53:58 by MURPHY
78 ;NRT bug - MCBQC
79 ; UPD ID= 1225, SNARK:<5.MONITOR>NSPSRV.MAC.47, 3-Nov-80 16:29:36 by GRANT
80 ;TCO 5.1187 - Make segment size calculation in STRMSG
81 ; UPD ID= 1191, SNARK:<5.MONITOR>NSPSRV.MAC.46, 23-Oct-80 16:08:38 by GRANT
82 ;Fix GETBYM arguments in GTASC0
83 ; UPD ID= 1186, SNARK:<5.MONITOR>NSPSRV.MAC.45, 21-Oct-80 15:46:05 by GRANT
84 ;Add segment size check to DOSRVS and FILLIN
85 ; UPD ID= 1183, SNARK:<5.MONITOR>NSPSRV.MAC.44, 21-Oct-80 09:12:26 by GRANT
86 ;TCO 5.1177 - Rewrite DEDCOR to fix bug and become more efficient
87 ; UPD ID= 1178, SNARK:<5.MONITOR>NSPSRV.MAC.43, 20-Oct-80 17:12:20 by MURPHY
88 ;MAKE GETBYT OPEN CODE (GETBYM MACRO)
89 ; UPD ID= 1168, SNARK:<5.MONITOR>NSPSRV.MAC.42, 15-Oct-80 16:14:55 by GRANT
90 ;Add flow control threshold logic in SQI
91 ; UPD ID= 1150, SNARK:<5.MONITOR>NSPSRV.MAC.41, 10-Oct-80 16:19:28 by GRANT
92 ;More of previous edit
93 ; UPD ID= 1140, SNARK:<5.MONITOR>NSPSRV.MAC.40, 8-Oct-80 10:51:01 by GRANT
94 ;TCO 5.1169 - Make PRSNAM call PARNO1
95 ;<5.MONITOR>NSPSRV.MAC.39, 6-Oct-80 13:31:25, EDIT BY MURPHY
96 ;<5.MONITOR>NSPSRV.MAC.38, 6-Oct-80 11:43:48, EDIT BY MURPHY
97 ; UPD ID= 1124, SNARK:<5.MONITOR>NSPSRV.MAC.37, 5-Oct-80 15:02:30 by MURPHY
98 ;DITTO
99 ; UPD ID= 1119, SNARK:<5.MONITOR>NSPSRV.MAC.36, 3-Oct-80 12:21:08 by MURPHY
100 ;DITTO
101 ; UPD ID= 1111, SNARK:<5.MONITOR>NSPSRV.MAC.35, 3-Oct-80 01:00:34 by MURPHY
102 ;MAKE NSP NOTIFY TTYSRV UPON RECEIPT OF DATA AND ACKS
103 ; UPD ID= 1105, SNARK:<5.MONITOR>NSPSRV.MAC.34, 2-Oct-80 09:35:12 by MURPHY
104 ;DITTO
105 ; UPD ID= 1092, SNARK:<5.MONITOR>NSPSRV.MAC.33, 1-Oct-80 13:35:09 by MURPHY
106 ;FIX ACVAR
107 ; UPD ID= 1067, SNARK:<5.MONITOR>NSPSRV.MAC.32, 30-Sep-80 11:02:43 by GRANT
108 ;TCO 5.1160 - make NSPRTH BUGCHK more meaningful
109 ; UPD ID= 1065, SNARK:<5.MONITOR>NSPSRV.MAC.31, 30-Sep-80 10:46:39 by GRANT
110 ;TCO 5.1159 - must reject Phase III Transport init message
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 1-2
NSPSRV MAC 6-Apr-82 10:58
111 ; UPD ID= 1064, SNARK:<5.MONITOR>NSPSRV.MAC.30, 30-Sep-80 10:31:05 by GRANT
112 ;Fix sequential input again and init NMAPLK in NSPINI
113 ; UPD ID= 1061, SNARK:<5.MONITOR>NSPSRV.MAC.29, 30-Sep-80 10:16:15 by MURPHY
114 ;NVT bugs
115 ; UPD ID= 1059, SNARK:<5.MONITOR>NSPSRV.MAC.28, 26-Sep-80 13:30:48 by GRANT
116 ;Add NTMAN% JSYS
117 ; UPD ID= 1056, SNARK:<5.MONITOR>NSPSRV.MAC.27, 26-Sep-80 12:12:52 by MURPHY
118 ;Make BLKULK preserve T2; fix various NVT bugs
119 ; UPD ID= 1036, SNARK:<5.MONITOR>NSPSRV.MAC.26, 24-Sep-80 11:48:18 by GRANT
120 ;TCO 5.1153 - NETSQI must save T2 over the call to BLKULK
121 ; UPD ID= 1023, SNARK:<5.MONITOR>NSPSRV.MAC.25, 16-Sep-80 16:07:18 by GRANT
122 ;Change MONX01 to NSPX26 in NDSIC routine
123 ; UPD ID= 1019, SNARK:<5.MONITOR>NSPSRV.MAC.24, 16-Sep-80 15:34:14 by GRANT
124 ;TCO 5.1146 - Fix free space bug in MTRDIN
125 ; UPD ID= 1007, SNARK:<5.MONITOR>NSPSRV.MAC.23, 11-Sep-80 18:17:22 by GRANT
126 ;Change MONX01 to MONX06 in GETBLK routine
127 ; UPD ID= 943, SNARK:<5.MONITOR>NSPSRV.MAC.21, 20-Aug-80 20:09:04 by MURPHY
128 ;Merge FILNSP into NSPSRV
129 ; UPD ID= 920, SNARK:<5.MONITOR>NSPSRV.MAC.20, 19-Aug-80 15:17:32 by MURPHY
130 ;File open mode 1 for small segsiz
131 ; UPD ID= 902, SNARK:<5.MONITOR>NSPSRV.MAC.19, 14-Aug-80 22:54:49 by MURPHY
132 ;Locks again
133 ; UPD ID= 892, SNARK:<5.MONITOR>NSPSRV.MAC.18, 13-Aug-80 18:21:01 by MURPHY
134 ;Handle locks at scheduler level
135 ; UPD ID= 846, SNARK:<5.MONITOR>NSPSRV.MAC.17, 6-Aug-80 17:32:48 by MURPHY
136 ;ULOKLL again
137 ; UPD ID= 845, SNARK:<5.MONITOR>NSPSRV.MAC.16, 6-Aug-80 14:25:32 by MURPHY
138 ;BUGCHK at ULOKLL if lock not already locked; make few more routines resident
139 ; UPD ID= 820, SNARK:<5.MONITOR>NSPSRV.MAC.15, 1-Aug-80 13:21:31 by GRANT
140 ;TCO 5.1119 - Fix cause of "overly OKINT" BUGCHKs when DN20 gets reloaded
141 ; UPD ID= 790, SNARK:<5.MONITOR>NSPSRV.MAC.14, 23-Jul-80 20:13:13 by MURPHY
142 ;MORE OF THE SAME
143 ; UPD ID= 777, SNARK:<5.MONITOR>NSPSRV.MAC.13, 22-Jul-80 17:07:09 by MURPHY
144 ;MAKE A FEW ROUTINES GLOBAL
145 ; UPD ID= 753, SNARK:<5.MONITOR>NSPSRV.MAC.12, 11-Jul-80 17:05:41 by MURPHY
146 ;MAKE VARIOUS THINGS RESIDENT WITH VIEW TOWARD MAKING THEM RUN AT SKED LEVEL
147 ; UPD ID= 623, SNARK:<5.MONITOR>NSPSRV.MAC.11, 11-Jun-80 11:06:36 by GRANT
148 ;Wrong AC being loaded in PRUNE
149 ; UPD ID= 621, SNARK:<5.MONITOR>NSPSRV.MAC.10, 10-Jun-80 13:23:07 by MURPHY
150 ; UPD ID= 606, SNARK:<5.MONITOR>NSPSRV.MAC.9, 5-Jun-80 10:23:04 by GRANT
151 ;More of UPD ID= 330
152 ; UPD ID= 605, SNARK:<5.MONITOR>NSPSRV.MAC.8, 5-Jun-80 08:40:19 by ENGEL
153 ;MAKE ASCIIZ RESIDENT
154 ; UPD ID= 593, SNARK:<5.MONITOR>NSPSRV.MAC.7, 3-Jun-80 09:44:15 by ENGEL
155 ;MAKE NODINI RESIDENT
156 ; UPD ID= 590, SNARK:<5.MONITOR>NSPSRV.MAC.6, 3-Jun-80 09:03:33 by ENGEL
157 ;FIX ONEBYT
158 ; UPD ID= 588, SNARK:<5.MONITOR>NSPSRV.MAC.5, 2-Jun-80 17:24:28 by ENGEL
159 ;MAKE PORTIONS OF NODINI CODE RESIDENT
160 ; UPD ID= 502, SNARK:<5.MONITOR>NSPSRV.MAC.4, 1-May-80 15:02:52 by GRANT
161 ;TCO 5.1031 - Make CI processing distinguish between busy and non-existent
162 ; UPD ID= 477, SNARK:<5.MONITOR>NSPSRV.MAC.3, 24-Apr-80 16:52:51 by GRANT
163 ;In DEDMCB, use DCN instead of DTEN for valid port number test -
164 ;DTEN won't work on the 2020
165 ; UPD ID= 455, SNARK:<5.MONITOR>NSPSRV.MAC.2, 22-Apr-80 14:02:03 by MURPHY
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 1-3
NSPSRV MAC 6-Apr-82 10:58
166 ;FIX UP ENTRY SEQUENCE IN INFERIOR FORK
167 ; UPD ID= 351, SNARK:<4.1.MONITOR>NSPSRV.MAC.421, 25-Mar-80 08:58:26 by GRANT
168 ;Undo the previous edit
169 ; UPD ID= 339, SNARK:<4.1.MONITOR>NSPSRV.MAC.420, 17-Mar-80 18:11:26 by GRANT
170 ;At OUTRR7, don't include SEGNUM bytes in MSDTC count
171 ; UPD ID= 330, SNARK:<4.1.MONITOR>NSPSRV.MAC.419, 14-Mar-80 09:58:02 by GRANT
172 ;In STRSAV, reverse the search order of the DTEs when looking for the MCB
173 ; UPD ID= 226, SNARK:<4.1.MONITOR>NSPSRV.MAC.418, 25-Jan-80 13:30:56 by GRANT
174 ;TCO 4.2599 - DEDMCB should not clear the loopback word
175 ; UPD ID= 190, SNARK:<4.1.MONITOR>NSPSRV.MAC.417, 8-Jan-80 13:34:55 by GRANT
176 ;Fix DTE range check in DEDMCB
177 ; UPD ID= 124, SNARK:<4.1.MONITOR>NSPSRV.MAC.416, 10-Dec-79 15:40:10 by GRANT
178 ;Fix typeo in UPD ID=100 in MOVSEG
179 ; UPD ID= 114, SNARK:<4.1.MONITOR>NSPSRV.MAC.415, 8-Dec-79 13:09:40 by MILLER
180 ;FIX BUGS IN NETINP AND NETSQI.
181 ; UPD ID= 100, SNARK:<4.1.MONITOR>NSPSRV.MAC.413, 5-Dec-79 17:20:06 by MILLER
182 ;REPLACE MISSING CODE IN MOVSEG. FIX ANCIENT RACE BETWEEN MOVSEG AND
183 ; THE SCHEDULER
184 ; UPD ID= 85, SNARK:<4.1.MONITOR>NSPSRV.MAC.412, 3-Dec-79 15:06:50 by GRANT
185 ;TCO 4.2588 - Change CCMSG: and DCMSG: to be compatible with Phase III
186 ;<4.MONITOR>NSPSRV.MAC.411, 20-Nov-79 11:40:56, EDIT BY GRANT
187 ;Previous edit lines removed
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 2
NSPSRV MAC 6-Apr-82 10:58
188
189
190 ;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
191 ; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
192 ;
193 ;COPYRIGHT (C) 1976,1977,1978,1979 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
194
195 SEARCH NSPPAR,PROLOG,PROKL
196 TTITLE (NSPSRV,,< - Network Services Protocol Interface to TOPS20 >)^
197 ^
198
199 ;THIS MODULE CONTAINS THE CONTROL ROUTINES AND JSYS INTERFACES
200 ;FOR THE HOST-TO-HOST PROTOCOL OF DECNET KNOWN AS NSP.
201 ;NSP ALLOWS COMMUNICATION BETWEEN PROCESSES ON HOSTS BY MEANS
202 ;OF LOGICAL LINKS. A LOGICAL LINK IMPLIES AN "OBJECT" ON ONE
203 ;OF THE HOSTS AND A PROCESS ON ANOTHER HOST WISHING TO AVAIL ITSELF
204 ;OF THE OBJECT'S SERVICES, A PHYSICAL COMMUNICATIONS PATH BETWEEN
205 ;THE HOSTS WHICH IS ERROR-FREE( SEE DDCMP SPECIFICATION FOR THE
206 ;MAGIC BEHIND THIS ASSUMPTION), AND A TON OF LOGIC IN EACH OF
207 ;THE HOSTS AND IN THE INTERVENING MCB NODES (IF ANY) WHICH ROUTE
208 ;AND CONTROL THE FLOW OF THE DATA. THIS MODULE IS RESPONSIBLE
209 ;FOR COMMUNICATING WITH ADJACENT MCB NODES AND FOR MAINTAINING AND
210 ;ESTABLISHING LOGICAL LINKS ON DEMAND OF PROCESSES IN THIS TOPS20
211 ;HOST OR OF PROCESSES IN THE NETWORK.
212
213
214 ;THIS MODULE CONTROLS, ALLOCATES, AND DEALLOCATES ENTRIES
215 ;IN THE LOGICAL LINK TABLE. AN ENTRY IN THE LOGICAL LINK TABLE
216 ;CONTAINS INFORMATION NEEDED BY NSPSRV TO PROPERLY MANAGE
217 ;THE LINK. THE INFORMTION IS FALLS INTO ONE OF TWO CLASSES:
218 ;LOGICAL PARAMETERS AND PROCESS PARAMETERS. AMONG THE LOGICAL
219 ;LINK PARAMETERS ARE: CURRENT LINK STATE, BUFFER COUNTS, FLOW
220 ;CONTROL OPTIONS, AND SEGEMENT NUMBERS. AMONG THE PROCESS
221 ;PARAMETERS ARE: PI CHANNELS FOR VARIOUS EVENTS, OWNING FORK,
222 ;WINDOW PAGE BYTE COUNTS
223
224 ;THE LINK TABLE IS STORED AS A BINARY TREE. ENTRIES ARE LINKED IN
225 ;THE TREE IN ORDER BY LINK NUMBER, AND THE SEARCH ALGORTIHM INSURES
226 ;THAT A LINK CAN BE LOCATED IN LOG(2) OF THE NUMBER OF ENTRIES.
227
228 ;WITHIN THE LOGICAL LINK TABLE ARE ENTRIES WHICH REPRESENT
229 ;"LISTENING" OBJECTS. THESE ARE PROCESSES WHICH HAVE DECLARED THEIR
230 ;INTEREST IN PARTICIPATING IN A DIALOGUE, BUT NO NETWORK ENTITY HAS
231 ;ATTEMPTED AS YET TO CONNECT TO THE OBJECT. UPON RECEIPT OF A
232 ;CONNECT-INITIATE, THE LOGICAL LINK TABLE IS SEARCHED FOR A LISTENING
233 ;OBJECT WHICH COORESPONDS TO THE REQUIREMENTS OF THE CONNECTOR. THIS
234 ;SEARCH IS,UNFORTUNATELY, EXHAUSTIVE AND MAY REQUIRE A CONSIDERABLE
235 ;AMOUNT OF TIME.
236
237 ;MESSAGES ARE STORED IN MONITOR RESIDENT FREE SPACE. EACH MESSAGE
238 ;HAS A HEADER ON IT OF THE FORM:
239
240 ; POINTER TO NEXT MESSAGE IN THE CHAIN
241 ; DTE#, FLAGS, SEG #, LOGICAL LINK ADDRESS OF OWNING LINK
242 ; MESSAGE FLAGS, # OF DATA BYTES, TOTAL # OF BYTES
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 2-1
NSPSRV MAC 6-Apr-82 10:58
243 ; BYTE POINTER TO DATA BYTES (EXCLUDES NSP HEADER)
244
245 ;THIS MODULE ALSO CONTAINS ROUTINES FOR PARSING AND VERIFYING NETWORK
246 ;FILE SPECS. A FILE SPEC IS OF THE FORM:
247 ;DCN:HOST-OBJECT-DESCRIPTOR.TASKNAME;ATTRIBUTES
248 ; TO MAKE A CONNECTION, OR:
249 ;SRV:OBJECT-DESCRIPTOR.TASKNAME
250 ; TO DECLARE A SERVER
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 3
NSPSRV MAC 6-Apr-82 10:58
251
252 ;DEFINE LOCAL MACROS
253
254 DEFINE LLLOCK<
255 CALL LOKLL> ;;GO LOCK UP THE TREE
256
257 DEFINE LLLULK<
258 CALL ULOKLL> ;;GO UNLOCK THE TREE
259
260 DEFINE ATTENT (VALUE,BIN,COUNT,EXCLU)<
261 <BIN>B0+<COUNT>B17+EXCLU*1000+VALUE>
262
263 DEFSTR (NTATR,,35,9)
264 DEFSTR (NTATC,,17,6)
265 DEFSTR (NTATE,,26,9)
266 DEFSTR (NTATB,,0,1)
267
268 DEFAC (STS,P1)
269 DEFAC (JFN,P2)
270 DEFAC (DEV,P4)
271 DEFAC (F1,P5)
272
273 ;DEFINITIONS FOR FILE SPECS
274
275 000020 MAXDSC==^D16 ;MAX CHARACTERS IN DESCRIPTOR
276 000020 TSKMAX==^D16 ;MAX CHARACTERS IN A TASK NAME
277 000006 MAXHST==:6 ;MAX SIZE OF A HOST STRING
278
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 4
NSPSRV MAC 6-Apr-82 10:58
279
280 SUBTTL Device Dispatch Vectors for SRV: and DCN: Devices
281
282 ;FOR DEVICE SRV
283
284 SWAPCD
285
286 000000'02 400000 000105' SRVDTB::DTBDSP (NETDIR) ;DIRECTORY SET
287 000001'02 400000 000066' DTBDSP (SRNSET) ;NAME LOOKUP
288 000002'02 400000 000101' DTBDSP (EXTSET) ;EXTENSION LOOKUP
289 000003'02 400000 000111' DTBDSP (VERSET) ;VERSION LOOKUP
290 000004'02 400000 007127' DTBBAD (DESX9) ;NO PROTECTION
291 000005'02 400000 007127' DTBBAD (DESX9) ;NO ACCOUNT
292 000006'02 400000 007127' DTBBAD (DESX9) ;NO STATUS
293 000007'02 400000 002011' DTBDSP (SRCOPN) ;OPEN
294 000010'02 400000 003731' DTBDSP (NETSQI) ;INPUT
295 000011'02 400000 000563' DTBDSP (NETSQO) ;OUTPUT
296 000012'02 400000 003252' DTBDSP (NETCLZ) ;CLOSE
297 REPEAT 7,<
298 DTBBAD (DESX9)> ;ILLEGAL FUNCTIONS
299 000013'02 400000 007127'
300 000014'02 400000 007127'
301 000015'02 400000 007127'
302 000016'02 400000 007127'
303 000017'02 400000 007127'
304 000020'02 400000 007127'
305 000021'02 400000 007127'
306
307 000022'02 400000 000410' DTBDSP (NTMTOP) ;MTOPR
308 REPEAT 2,<DTBBAD (DESX9)> ;ILLEGAL FUNCTIONS
309 000023'02 400000 007127'
310 000024'02 400000 007127'
311
312 000025'02 400000 000576' DTBDSP (NETSQR) ;SOUTR
313 000026'02 000000000000# DTBDSP (RFTADN) ;NO TIME AND DATE
314 000027'02 000000000000# DTBDSP (RFTADN) ;NO TIME AND DATE
315 000030'02 400000 003426' DTBDSP (NETINP) ;SET FOR INPUT
316 000031'02 400000 003473' DTBDSP (NETOUP) ;SET FOR OUTPUT
317 000032'02 400000 007131' DTBBAD (GJFX49) ;NO ATTRIBUTES
318
319 ;FOR THE DCN DEVICE
320
321 000033'02 400000 000105' DCNDTB::DTBDSP (NETDIR) ;DIR SET
322 000034'02 400000 000075' DTBDSP (DCNSET) ;NAME LOOKUP
323 000035'02 400000 000101' DTBDSP (EXTSET) ;EXTENSION LOOKUP
324 000036'02 400000 000111' DTBDSP (VERSET) ;VERSION LOOKUP
325 REPEAT 3,<
326 DTBBAD (DESX9)> ;ILLEGAL FUNCTIONS
327 000037'02 400000 007127'
328 000040'02 400000 007127'
329 000041'02 400000 007127'
330
331 000042'02 400000 000332' DTBDSP (DCNOPN) ;OPEN
332 000043'02 400000 003731' DTBDSP (NETSQI) ;INPUT
333 000044'02 400000 000563' DTBDSP (NETSQO) ;OUTPUT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 4-1
NSPSRV MAC 6-Apr-82 10:58 Device Dispatch Vectors for SRV: and DCN: Devices
334 000045'02 400000 003252' DTBDSP (NETCLZ) ;CLOSE
335 REPEAT 7,<
336 DTBBAD (DESX9)> ;ILLEGAL FUNCTIONS
337 000046'02 400000 007127'
338 000047'02 400000 007127'
339 000050'02 400000 007127'
340 000051'02 400000 007127'
341 000052'02 400000 007127'
342 000053'02 400000 007127'
343 000054'02 400000 007127'
344
345 000055'02 400000 000410' DTBDSP (NTMTOP) ;MTOPR
346 REPEAT 2,<DTBBAD (DESX9)> ;ILLEGAL FUNCITONS
347 000056'02 400000 007127'
348 000057'02 400000 007127'
349
350 000060'02 400000 000576' DTBDSP (NETSQR) ;SOUTR
351 000061'02 000000000000# DTBDSP (RFTADN) ;NO TIME AND DATE
352 000062'02 000000000000# DTBDSP (SFTADN) ;NO TIME AND DATE
353 000063'02 400000 003426' DTBDSP (NETINP) ;SET FOR INPUT
354 000064'02 400000 003473' DTBDSP (NETOUP) ;SET FOR OUTPUT
355 000065'02 400000 001753' DTBDSP (NETATR) ;PARSE ATTRIBUTES
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 5
NSPSRV MAC 6-Apr-82 10:58 GTJFN Routines
356 SUBTTL GTJFN Routines
357
358 ;ROUTINES CALLED FROM GTJFN PROCESSING TO LOOK UP FILE NAMES
359
360 ;NAME LOOKUP FOR SRC DEVICE
361
362 000066'02 322 01 0 00 007136' SRNSET::JUMPE T1,[RETBAD (GJFX18,<OKINT>)] ;CANT'T STEP IT
363 CALL [ TRVAR <NTCNT,NTPNT,NTOBJ,NTDDSC,NTDSS>
364 CALL SRCNAM ;GO PARSE THE NAME
365 RETBAD() ;HAD AS ERROR
366 000067'02 260 17 0 00 007137' RETSKP] ;GOOD
367 000070'02 263 17 0 00 000000 RETBAD () ;FAILED
368 000071'02 602 14 0 00 020000 OKRET: TQNE <UNLKF> ;WANT TO UNLOCK?
369 000072'02 254 00 0 00 000000* JRST SK2RET ;NO. RETURN
370 000073'02 256 00 0 00 000000* OKINT ;YES. GO OKINT THEN
371 000074'02 254 00 0 00 000072* JRST SK2RET ;AND RETURN
372
373 ;ROUTINE TO DO NAME LOOKUP FOR DCN DEVICE
374
375 000075'02 322 01 0 00 007136' DCNSET::JUMPE T1,[RETBAD (GJFX18,<OKINT>)] ;CANT'T STEP IT
376 CALL [ TRVAR <NTCNT,NTPNT,NTOBJ,NTDSC,NTDSS,NTHST,NTHSC>
377 CALL DCNNAM ;GO PARSE NAME
378 RETBAD() ;SOME SORT OF ERROR
379 000076'02 260 17 0 00 007144' RETSKP] ;GOOD
380 000077'02 263 17 0 00 000000 RETBAD () ;SOME SORT OF FAILURE
381 000100'02 254 00 0 00 000071' JRST OKRET ;AND DONE
382
383 ;EXTENSION CHECKER
384
385 000101'02 322 01 0 00 007136' EXTSET::JUMPE T1,[RETBAD (GJFX18,<OKINT>)] ;CANT'T STEP IT
386 CALL [ TRVAR <NTCNT,NTPNT>
387 CALL NETEXT ;CHECK EXTENSION
388 RETBAD() ;SOME SORT OF ERROR
389 000102'02 260 17 0 00 007151' RETSKP] ;AND DONE
390 000103'02 263 17 0 00 000000 RETBAD () ;SOME SORT OF FAILURE
391 000104'02 254 00 0 00 000071' JRST OKRET ;AND DONE
392
393 ;ROUTINE TO LOOK UP DIRECTORY COMPONENT IN NETWORK FILE SPEC
394
395 000105'02 603 14 0 00 000001 NETDIR::TQNE <STEPF> ;WANT TO STEP?
396 000106'02 254 00 0 00 007156' RETBAD (GJFX17) ;YES. CAN'T DO IT
397 000107'02 350 00 0 00 000000* NOINT ;PREVENT INTS
398 000110'02 254 00 0 00 000074* JRST SK2RET ;AND SAY IT IS SET
399
400 ;VERSION LOOKUP
401
402 000111'02 607 14 0 00 000001 VERSET::TQNN <STEPF> ;TRYING TO STEP?
403 000112'02 254 00 0 00 000071' JRST OKRET ;NO. ALLOW IT THEN
404 000113'02 325 01 0 00 000071' JUMPGE T1,OKRET ;IF NOT STEPPING, OKAY
405 000114'02 254 00 0 00 007133' RETBAD (GJFX18,<OKINT>) ;ALL ELSE IS WRONG
406
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 6
NSPSRV MAC 6-Apr-82 10:58 GTJFN Routines
407 ;ROUTINE TO ASSIGN WINDOW PAGES TO A JFN.
408 ;ACCEPTS: NORMAL FILE SYSTEM REGISTER (JFN,ETC...)
409 ;RETURNS: +1 FAILED
410 ; +2 SUCCESS.
411
412 000115'02 402 00 0 11 000000* ASGWDW::SETZM FILWND(JFN)
413 000116'02 402 00 0 11 000000* SETZM FILBCT(JFN) ;AND CLEAR COUNTS
414 000117'02 607 10 0 00 200000 TQNN <READF> ;WANT READ ON THIS FILE?
415 000120'02 254 00 0 00 000127' JRST ASGWRT ;NO. TRY WRITE
416 000121'02 260 17 0 00 000000* CALL ASGPAG ;GET A JSB PAGE
417 000122'02 254 00 0 00 007160' RETBAD (MONX02) ;COULDN'T
418 000123'02 542 01 0 11 000115* HRRM T1,FILWND(JFN) ;SAVE WINDOW PAGE
419 000124'02 135 03 0 00 000000* LDB T3,PBYTSZ ;GET BYTE SIZE
420 000125'02 260 17 0 00 002446' CALL MAKINP ;GET A POINTER FOR INPUT
421 000126'02 202 01 0 11 000000* MOVEM T1,FILBFI(JFN) ;INIT INPUT POINTER
422 000127'02 607 10 0 00 100000 ASGWRT: TQNN <WRTF> ;WANT WRITE
423 000130'02 254 00 0 00 000000* RETSKP ;NO ALL DONE
424 000131'02 260 17 0 00 000121* CALL ASGPAG ;GET A PAGE FOR OUTPUT
425 JRST [ SKIPE T1,FILWND(JFN) ;FAILED. HAVE READ WINDOW?
426 CALL RELPAG ;RELEASE THE INPUT PAGE
427 SETZM FILWND(JFN) ;NOTE NO PAGE WAS ASSIGNED
428 SETZM FILBFI(JFN) ;PREVENT RELEASE OF FREE SPACE BY RLJFN
429 000132'02 254 00 0 00 007162' RETBAD (MONX02)] ;AND FAIL
430 000133'02 506 01 0 11 000123* HRLM T1,FILWND(JFN) ;STORE WINDOW
431 000134'02 254 00 0 00 000130* RETSKP ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 7
NSPSRV MAC 6-Apr-82 10:58 GTJFN Routines
432 ;ROUTINE TO COMPUTE NUMBER OF USEFUL BYTES IN A JSB STRING.
433 ;CALLED FROM ROUTINES THAT PROCESS NETWORK FILE NAMES.
434 ;ACCEPTS: T1/FREE BLOCK ADDRESS
435 ; TRVAR <NTCNT,NTPNT,.....>
436 ;RETURNS: +1 ALWAYS WITH COUNT IN NTCNT AND POINTER IN NTPNT
437
438 000135'02 550 03 0 01 000000 COMPUT: HRRZ T3,0(T1) ;GET COUNT OF WORDS IN BLOCK
439 000136'02 370 00 0 00 000003 SOS T3 ;DISCOUNT THE HEADER
440 000137'02 221 03 0 00 000005 IMULI T3,5 ;GET BYTE COUNT
441 000140'02 350 00 0 00 000003 AOS T3 ;ADD IN FINAL TERMINATOR
442 000141'02 505 01 0 00 000700 HRLI T1,(<POINT 7,0,35>) ;GET STRING POINTER TO THE BLOCK
443 000142'02 202 01 0 15 000002 MOVEM T1,NTPNT ;AND SAVE THE STARTING POINTER
444 000143'02 260 17 0 00 000146' CALL CMPLEN ;GET LENGTH OF STRING
445 000144'02 202 03 0 15 000001 MOVEM T3,NTCNT ;SAVE COUNT
446 000145'02 263 17 0 00 000000 RET ;DONE, RETURN
447
448
449 ;CMPLEN - ROUTINE TO COMPUTE LENGTH OF STRINGS
450 ;
451 ;ACCEPTS IN T1/ POINTER TO START OF STRING
452 ; T3/ MAX NUMBER OF BYTES IN STRING
453 ; CALL CMPLEN
454 ;RETURNS: +1 ALWAYS, WITH T3/ ACTUAL NUMBER OF BYTES IN STRING
455
456 000146'02 265 16 0 00 000000* CMPLEN::STKVAR <CPLCNT>
457 000147'02 000001 000001
458 000150'02 202 03 0 17 777776 MOVEM T3,CPLCNT ;STARTING COUNT
459 000151'02 200 02 0 00 007167' MOVE T2,[POINT 0,0,2] ;GET DUMMY POINTER
460 000152'02 400 04 0 00 000000 SETZ T4,
461 000153'02 104 00 0 00 000052 SIN ;FIND NUMBER OF USEFUL BYTES IN THE STRING
462 000154'02 322 03 0 00 000000* JUMPE T3,R ;IF NO NULLS, ALL SET
463 000155'02 274 03 0 17 777776 SUB T3,CPLCNT ;FOUND A NULL THEN. GET CHARACTERS SKIPPED
464 000156'02 213 00 0 00 000003 MOVNS T3 ;GET COUNT
465 000157'02 263 17 0 00 000000 RET ;AND DONE
466
467 ;ROUTINE TO SCAN NAME STRING FOR NETWORK PUNCTUATION CHARACTER AND
468 ;UPDATE COUNTS.
469 ;ACCEPTS: IN TRVAR'S
470 ; NTPNT CURRENT TEXT POINTER
471 ; NTCNT CURRENT BYTE COUNT
472
473 ;RETURNS:
474 ; NTPNT UPDATED POINTER
475 ; NTCNT UPDATED COUNT
476 ; T1/ ORIGINAL POINTER
477 ; T3/ NUMBER OF CHARCTERS FOUND BEFORE PUNCTUATION
478
479 000160'02 200 01 0 15 000002 NETDSH: MOVE T1,NTPNT ;GET BYTE POINTER
480 000161'02 200 02 0 00 007167' MOVE T2,[POINT 0,0,2] ;DUMMY
481 000162'02 200 03 0 15 000001 MOVE T3,NTCNT ;THE COUNT
482 000163'02 201 04 0 00 000055 MOVEI T4,"-" ;STOP ON THE END OF THE HOST FIELD
483 000164'02 104 00 0 00 000052 SIN ;GET IT
484 000165'02 250 01 0 15 000002 EXCH T1,NTPNT ;STORE NEW POINTER. GET OLD
485 000166'02 250 03 0 15 000001 EXCH T3,NTCNT ;STORE NEW COUNT. GET OLD COUNT
486 000167'02 274 03 0 15 000001 SUB T3,NTCNT ;GET BYTES TRANSPIRED
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 7-1
NSPSRV MAC 6-Apr-82 10:58 GTJFN Routines
487 000170'02 263 17 0 00 000000 RET ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 8
NSPSRV MAC 6-Apr-82 10:58 GTJFN Routines
488
489 ;ROUTINE TO PARSE THE NAME FIELD OF A SOURCE SPECIFICATION.
490 ;A NAME FIELD LOOKS LIKE:
491 ; OBJECT-DESCRIPTOR
492 ;OR
493 ; -
494 ;WHERE THE FORMER IS THE SYNTAX FOR A GENERIC OBJECT
495 ;AND THE LATTER IS THE SYNTAX FOR A TASK ONLY
496 ;ACCEPTS:
497 ; T1/ POINTER TO NAME BLOCK
498 ; TRVAR <NTCNT,NTPNT,NTOBJ,NTDSC,NTDSS>
499 ;RETURNS:
500 ; +1 SYNTAX OR SEMANTICS ERROR. CODE IN T1
501 ; +2 ACCEPTABLE NAME.
502
503 ; WITH TRVAR'S FILLED IN
504
505 000171'02 260 17 0 00 000135' SRCNAM::CALL COMPUT ;COMPUTE STRING COUNT
506 000172'02 476 00 0 15 000003 SETOM NTOBJ ;ASSUME NO OBJECT
507 000173'02 260 17 0 00 000160' CALL NETDSH ;GO FIND OBJECT NAME
508 000174'02 307 03 0 00 000001 CAIG T3,1 ;WAS IT NULL?
509 000175'02 254 00 0 00 000212' JRST SRCNOB ;YES. NO GENERIC OBJECT GIVEN
510 000176'02 135 04 0 15 000002 LDB T4,NTPNT ;GET TERMINATOR
511 000177'02 202 04 0 15 000003 MOVEM T4,NTOBJ ;SAVE IT
512 000200'02 400 04 0 00 000000 SETZ T4, ;GET A NULL
513 000201'02 137 04 0 15 000002 DPB T4,NTPNT ;TIE OFF OBJECT NAME
514 000202'02 260 17 0 00 001153' CALL OBJLOK ;GO LOOK UP THE OBJECT
515 000203'02 254 00 0 00 007170' RETBAD (DCNX3) ;NO SUCH OBJECT. COMPLAIN
516 000204'02 337 00 0 00 000001 SKIPG T1 ;A LEGAL OBJECT TYPE?
517 000205'02 254 00 0 00 007170' RETBAD (DCNX3) ;NO. COMPLAIN
518 000206'02 307 01 0 00 000000* CAIG T1,DECOBJ ;IS IT A DEC RESERVED OBJECT?
519 JRST [ MOVX T3,SC%WHL!SC%OPR ;YES. MUST BE PRIVILEGED THEN
520 TDNE T3,CAPENB ;IS IT ENABLED?
521 JRST .+1 ;YES. PROCEED
522 000207'02 254 00 0 00 007172' RETBAD (DCNX3)] ;NO. ERROR
523 000210'02 250 01 0 15 000003 EXCH T1,NTOBJ ;SAVE GENERIC OBJECT TYPE
524 000211'02 137 01 0 15 000002 DPB T1,NTPNT ;AND PUT BACK TERMINATOR
525 000212'02 402 00 0 15 000004 SRCNOB: SETZM NTDSC ;ASSUME NO DESCRIPTOR
526 000213'02 332 03 0 15 000001 SKIPE T3,NTCNT ;ANY BYTES LEFT IN STRING?
527 000214'02 307 03 0 00 000001 CAIG T3,1 ;YES. ENOUGH TO MAKE A DESCRIPTOR?
528 000215'02 254 00 0 00 000134* RETSKP ;NO ALL DONE THEN
529 000216'02 202 03 0 15 000004 MOVEM T3,NTDSC ;STORE COUNT OF DESCRIPTOR
530 000217'02 335 00 0 15 000003 SKIPGE NTOBJ ;HAVE AN OBJECT?
531 000220'02 254 00 0 00 007170' RETBAD (DCNX3) ;NO. ILLEGAL SPECIFICATION
532 000221'02 303 03 0 00 000020 CAILE T3,MAXDSC ;WITHIN RANGE?
533 000222'02 254 00 0 00 007176' RETBAD (DCNX12) ;NO.ILLEGAL DESCRIPTOR
534 000223'02 200 01 0 15 000002 MOVE T1,NTPNT ;GET POINTER
535 000224'02 202 01 0 15 000005 MOVEM T1,NTDSS ;SAVE BEGINNING OF DESCRIPTOR
536 000225'02 254 00 0 00 000215* RETSKP ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 9
NSPSRV MAC 6-Apr-82 10:58 GTJFN Routines
537
538 ;ROUTINE TO PARSE NAME FOR A CONNECT ATTEMPT.
539 ;AACEPTS: T1/ BLOCK ADDRESS OF NAME
540 ; TRVAR <NTCNT,NTPNT,NTOBJ,NTDSC,NTDSS,NTHST,NTHSC>
541 ;RETURNS:
542 ; +1 SYNTAX ERROR
543 ; +2 NAME IS GOOD. TRVAR'S FILLED IN
544
545 000226'02 260 17 0 00 000135' DCNNAM::CALL COMPUT ;FIND COUNT
546 000227'02 254 00 0 00 000230' CALLRET PRSNAM ;GO PARSE NAME FIELD
547
548
549
550 ;PRSNAM - ROUTINE TO DO THE PARSING OF THE NAME
551 ;
552 ;ACCEPTS: IN TRVAR'S
553 ; NTPNT CURRENT TEXT POINTER
554 ; NTCNT CURRENT BYTE COUNT
555 ; CALL PRSNAM
556 ;RETURNS: +1 FAILED, SYNTAX ERROR
557 ; +2 SUCCESS, WITH APPROPRIATE TRVARS FILLED IN
558
559 000230'02 260 17 0 00 000160' PRSNAM::CALL NETDSH ;GO PICK OFF HOST NAME
560 000231'02 336 00 0 15 000001 SKIPN NTCNT ;MORE IN THE STRING?
561 000232'02 254 00 0 00 007200' RETBAD (DCNX1) ;NO. SYNTAX ERROR THEN
562 000233'02 476 00 0 15 000007 SETOM NTHSC ;ASSUME LOCAL CONNECTION
563 000234'02 377 00 0 00 000003 SOSG T3 ;HAVE A REAL STRING?
564 000235'02 254 00 0 00 000247' JRST DCNOBJ ;NO. GO LOOK FOR OBJECT THEN
565 000236'02 303 03 0 00 000006 CAILE T3,MAXHST ;WITHIN BOUNDS?
566 000237'02 254 00 0 00 007202' RETBAD (COMX19) ;NO. STRING TOO LONG
567 000240'02 202 01 0 15 000006 MOVEM T1,NTHST ;SAVE POINTER TO HOST
568 000241'02 202 03 0 15 000007 MOVEM T3,NTHSC ;AND SAVE COUNT
569 000242'02 350 00 0 00 000001 AOS T1 ;POINT TO THE ACTUAL TEXT
570 000243'02 505 01 0 00 440700 HRLI T1,440700 ;MAKE A BYTE POINTER FOR PARSING
571 000244'02 200 02 0 00 000003 MOVE T2,T3 ;GET NODE NAME CHARACTER COUNT
572 000245'02 260 17 0 00 000000* CALL PARNO1 ;SEE IF VALID NODE NAME SYNTAX
573 000246'02 263 17 0 00 000000 RETBAD () ;INVALID NODE NAME - RETURN THE ERROR
574 000247'02 260 17 0 00 000160' DCNOBJ: CALL NETDSH ;GO FIND OBJECT
575 000250'02 307 03 0 00 000001 CAIG T3,1 ;HAVE A REAL STRING?
576 000251'02 254 00 0 00 007170' RETBAD (DCNX3) ;NO. INVALID OBJECT THEN
577 000252'02 135 04 0 15 000002 LDB T4,NTPNT ;GET BACK TERMINATOR
578 000253'02 202 04 0 15 000003 MOVEM T4,NTOBJ ;SAVE IT
579 000254'02 400 04 0 00 000000 SETZ T4, ;GET A NULL
580 000255'02 137 04 0 15 000002 DPB T4,NTPNT ;TIE OFF STRING
581 000256'02 260 17 0 00 001153' CALL OBJLOK ;GO LOOK UP THE OBJECT
582 000257'02 254 00 0 00 007170' RETBAD (DCNX3) ;NO SUCH
583 000260'02 250 01 0 15 000003 EXCH T1,NTOBJ ;SAVE OBJECT
584 000261'02 137 01 0 15 000002 DPB T1,NTPNT ;AND PUT BACK TERMINATOR
585 000262'02 254 00 0 00 000212' JRST SRCNOB ;FINISH UP ON DESCRIPTOR
586
587 ;ROUTINE TO PARSE EXTENSION. THIS FIELD WILL BE THE TASKNAME
588
589 000263'02 260 17 0 00 000135' NETEXT: CALL COMPUT ;GET COUNT
590 000264'02 200 01 0 15 000001 MOVE T1,NTCNT ;GET THE COMPUTED COUNT
591 000265'02 303 01 0 00 000020 CAILE T1,TSKMAX ;WITHING RANGE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 9-1
NSPSRV MAC 6-Apr-82 10:58 GTJFN Routines
592 000266'02 254 00 0 00 007176' RETBAD (DCNX12) ;NO. TOO LONG
593 000267'02 254 00 0 00 000225* RETSKP ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 10
NSPSRV MAC 6-Apr-82 10:58 Routines to open DCN: or SRV: links
594 SUBTTL Routines to open DCN: or SRV: links
595
596 ;COMMON ROUTINE FOR OPENF JSYS. THIS CODE IS CALLED BY BOTH SRCOPN
597 ;AND DCNOPN TO ASSIGN A LL BLOCK, ASSIGN A LL ADDRESS, AND FILL
598 ;IN COMMON VALUES.
599 ; RETURNS +1 FAILED. T1/ ERROR CODE
600 ; +2 SUCCESS T1/ LL BLOCK ADDRESS
601 ; AND LL TREE LOCKED
602
603 000270'02 634 04 0 00 000004 OPNDNC::TDZA T4,T4 ;NOTE OPENING DCN:
604 000271'02 476 00 0 00 000004 OPNSRC::SETOM T4 ;NOTE OPENING SRV:
605 000272'02 623 10 0 00 020000 TQZE <RNDF> ;WANT APPEND?
606 000273'02 661 10 0 00 100000 TQO <WRTF> ;YES. FORCE ON WRITE THEN
607 000274'02 607 10 0 00 300000 TQNN <READF,WRTF> ;WANT SOME FORM OF ACCESS?
608 000275'02 254 00 0 00 007204' RETBAD (OPNX14) ;NO. ILLEGAL OPEN
609 000276'02 135 02 0 00 000124* LDB T2,PBYTSZ ;LOOK AT REQUESTED BYTE SIZE
610 000277'02 302 02 0 00 000010 CAIE T2,10 ;BYTES?
611 000300'02 306 02 0 00 000007 CAIN T2,7 ;OR ASCII?
612 000301'02 254 00 0 00 000304' JRST BYTGUD ;YES. ACCEPTS IT
613 000302'02 302 02 0 00 000044 CAIE T2,44 ;-10 WORD MODE?
614 000303'02 254 00 0 00 007206' RETBAD (SFBSX2) ;NO. ILLEGAL BYTE SIZE
615 000304'02 550 01 0 11 000000* BYTGUD: HRRZ T1,FILNEN(JFN) ;GET ADDRESS OF STRING BLOCK
616 000305'02 271 01 0 00 000001 ADDI T1,1 ;GET ADDRESS OF STRING
617 000306'02 135 02 0 00 000276* LDB T2,PBYTSZ ;GET BYTESIZE OF OPENF
618 000307'02 332 00 0 00 000004 SKIPE T4 ;OPENING DCN: ?
619 JRST [ CALL OPNSWK ;NO, CALL WORK ROUTINE TO OPEN SRV:
620 RETBAD () ;FAILED, RETURN ERROR CODE
621 000310'02 254 00 0 00 007210' JRST SAVLLB ] ;GO SAVE LL BLOCK ADDRESS IN JFN BLOCK
622 000311'02 260 17 0 00 001366' CALL OPNDWK ;CALL WORK ROUTINE TO OPEN DCN:
623 000312'02 263 17 0 00 000000 RETBAD () ;FAILED, RETURN ERROR CODE
624
625
626 000313'02 202 01 0 11 000000* SAVLLB: MOVEM T1,FILLLB(JFN) ;SAVE BLOCK ADDRESS
627 000314'02 603 10 0 00 200000 TQNE <READF> ;WANT BI-DIRECTIONAL LINK?
628 000315'02 260 17 0 00 001331' CALL SETOPI ;SET INPUT FLAG FOR LOGICAL LINK
629 000316'02 603 10 0 00 100000 TQNE <WRTF> ;WANT WRITE?
630 000317'02 260 17 0 00 001334' CALL SETOPW ;SET OUTPUT FLAG FOR LOGICAL LINK
631 000320'02 260 17 0 00 000322' CALL STMXDF ;SET INPUT/OUTPUT MAX QUEUE DEFAULTS
632 000321'02 254 00 0 00 000267* RETSKP ;AND DONE
633
634 ;STMXDF - SET MAX INPUT/OUTPUT QUEUE DEFAULTS
635 ;
636 ;ACCEPTS: T1/ ADDRESS OF LOGICAL LINK BLOCK
637 ;
638 ;RETURNS: +1,ALWAYS
639 ;
640 ;DESTROYS T2
641
642 000322'02 201 02 0 00 000011 STMXDF::MOVEI T2,MAXSEG ;ASSUME READ ONLY
643 000323'02 135 16 0 00 007213' OPSTR <SKIPE>,LLOPW,(T1) ;OPEN FOR WRITE AS WELL?
644 000324'02 332 00 0 00 000016
645 000325'02 201 02 0 00 000010 MOVEI T2,MAXSG1 ;YES. USE A SMALLER NUMBER
646 000326'02 137 02 0 00 007214' STOR T2,LLMQI,(T1) ;SAVE THE INPUT QUEUE LENGTH (ALSO FLOW CONTROL)
647 000327'02 201 02 0 00 000010 MOVEI T2,MAXSGQ ;SET OUTPUT QUEUE LENGTH
648 000330'02 137 02 0 00 007215' STOR T2,LLMQO,(T1) ;SAVE IN LINK BLOCK
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 10-1
NSPSRV MAC 6-Apr-82 10:58 Routines to open DCN: or SRV: links
649 000331'02 263 17 0 00 000000 RET
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 11
NSPSRV MAC 6-Apr-82 10:58 Routines to open DCN: or SRV: links
650 ;ROUTINE CALLED FROM THE OPENF JSYS TO OPEN A DCN NETWORK CONNECTION
651
652 000332'02 265 16 0 00 000000* DCNOPN::TRVAR <NTCNT,NTPNT,NTOBJ,NTDSC,NTDSS,NTHST,NTHSC,NTCIB>
653 000333'02 000010 000010
654 000334'02 335 16 0 00 000000# GTOKM (.GODNA,,[RETERR ()]) ;ASK ACJ TO GIVE ITS BLESSING
655 000335'02 334 00 0 00 000000
656 000336'02 607 16 0 00 200000
657 000337'02 260 17 0 00 007225'
658 000340'02 334 00 0 00 000000
659 000341'02 254 00 0 00 007244'
660 000342'02 554 01 0 11 000304* HLRZ T1,FILNEN(JFN) ;GET NAME FOR THE CONNECTION
661 000343'02 260 17 0 00 000226' CALL DCNNAM ;GO PARSE THE NAME FIELD
662 000344'02 263 17 0 00 000000 RETBAD () ;FAILED
663 000345'02 260 17 0 00 000270' CALL OPNDNC ;GO DO COMMON SETUP
664 000346'02 263 17 0 00 000000 RETBAD () ;FAILED
665 000347'02 260 17 0 00 000115' CALL ASGWDW ;NOW SET UP WINDOWS
666 000350'02 254 00 0 00 007245' RETBAD (,<CALL CLENUP>) ;FAILED, RETURN ERROR
667 000351'02 200 01 0 11 000313* MOVE T1,FILLLB(JFN) ;GET ADDRESS OF LOGICAL LINK BLOCK
668 000352'02 504 02 0 15 000007 HRL T2,NTHSC ;GET COUNT OF HOST STRING BYTES
669 000353'02 540 02 0 15 000004 HRR T2,NTDSC ;GET COUNT OF DESCRIPTOR STRING BYTES
670 000354'02 200 03 0 15 000006 MOVE T3,NTHST ;GET ADDRESS OF BLOCK HOLDING HOST NAME STRING
671 000355'02 200 04 0 15 000005 MOVE T4,NTDSS ;GET POINTER TO DESCRIPTOR STRING
672 000356'02 260 17 0 00 002245' CALL STRSAV ;GO MOVE PERMANENT LL STRINGS
673 000357'02 254 00 0 00 007245' RETBAD (,<CALL CLENUP>) ;FAILED, RETURN ERROR
674 000360'02 200 01 0 11 000351* MOVE T1,FILLLB(JFN) ;GET LOGICAL LINK BLOCK ADDRESS
675 000361'02 550 02 0 11 000000* LOAD T2,FILATL,(JFN) ;GET POINTER TO ATTRIBUTE LIST
676 000362'02 504 03 0 15 000003 HRL T3,NTOBJ ;GET OBJECT
677 000363'02 540 03 0 15 000004 HRR T3,NTDSC ;GET DESCRIPTOR COUNT
678 000364'02 200 04 0 15 000005 MOVE T4,NTDSS ;GET DESCRIPTOR POINTER
679 000365'02 260 17 0 00 002115' CALL CRTLNK ;GO CREATE THE LOGICAL LINK
680 000366'02 254 00 0 00 007245' RETBAD (,<CALL CLENUP>) ;FAILED
681 000367'02 254 00 0 00 000321* RETSKP ;DONE, RETURN SUCCESS
682
683
684 ;CLENUP - ROUTINE TO CLEAN UP JFN BLOCK IF OPEN OF DCN: FAILS
685 ;
686 ;ACCEPTS IN JFN/ OFFSET TO JFN BLOCK
687 ; CALL CLENUP
688 ;RETURNS: +1 ALWAYS
689
690 000370'02 265 16 0 00 000146* CLENUP: STKVAR <CLNERR>
691 000371'02 000001 000001
692 000372'02 202 01 0 17 777776 MOVEM T1,CLNERR ;SAVE ERROR CODE
693 000373'02 370 00 0 00 000000* DECR DCCUR ;ONE LESS LINK ON FAILURE
694 000374'02 200 01 0 11 000360* MOVE T1,FILLLB(JFN) ;GET ADDRESS OF LOGICAL LINK BLOCK
695 000375'02 260 17 0 00 001531' CALL DELNOD ;FREE THE NODE
696 000376'02 554 01 0 11 000133* HLRZ T1,FILWND(JFN) ;GET WINDOW PAGE ADDRESS
697 000377'02 332 00 0 00 000001 SKIPE T1 ;ANY WINDOW PAGE ASSIGNED YET ?
698 000400'02 260 17 0 00 000000* CALL RELPAG ;YES, RELEASE IT
699 000401'02 550 01 0 11 000376* HRRZ T1,FILWND(JFN) ;GET OTHER WINDOW PAGE
700 000402'02 332 00 0 00 000001 SKIPE T1 ;ANY ASSIGNED ?
701 000403'02 260 17 0 00 000400* CALL RELPAG ;YES, RELEASE IT ALSO
702 000404'02 402 00 0 11 000126* SETZM FILBFI(JFN) ;PREVENT RELEASE OF SPACE BY RLJFN
703 000405'02 260 17 0 00 000000# CALL ULOKLL ;UNLOCK THE LL TREE
704 000406'02 200 01 0 17 777776 MOVE T1,CLNERR ;RESTORE ERROR CODE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 11-1
NSPSRV MAC 6-Apr-82 10:58 Routines to open DCN: or SRV: links
705 000407'02 263 17 0 00 000000 RET
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 12
NSPSRV MAC 6-Apr-82 10:58 MTOPR Routines
706 SUBTTL MTOPR Routines
707
708 000410'02 607 10 0 00 400000 NTMTOP: TQNN <OPNF> ;CHECK FOR OPENED
709 000411'02 254 00 0 00 007247' RETBAD (CLSX1) ;NO IT IS ILLEGAL
710 000412'02 260 17 0 00 003426' CALL NETINP ;SET UP FOR INPUT
711 000413'02 200 01 0 11 000374* MOVE T1,FILLLB(JFN) ;MUST LOCK UP BLOCK
712 000414'02 260 17 0 00 000000# CALL BLKLLK ;DO IT
713 JRST [ TQO BLKF ;CANNOT LOCK IT, INDICATE BLOCK NEEDED
714 000415'02 254 00 0 00 007251' RET ] ;RETURN AND TRY AGAIN LATER
715 000416'02 256 04 0 00 007253' XCTU [HRRZ T2,2] ;GET FUNCTION CODE
716 000417'02 205 03 0 00 777757 MOVSI T3,-NTMTCT ;SCAN TABLE FOR THE FUNCTION
717 000420'02 554 04 0 03 000427' NTMTO1: HLRZ T4,NTMTTB(T3) ;GET NEXT ENTRY
718 000421'02 306 02 0 04 000000 CAIN T2,0(T4) ;IS THIS IT?
719 JRST [ HRRZ T2,NTMTTB(T3) ;GET DISPATCH ADDRESS
720 000422'02 254 00 0 00 007254' JRST 0(T2)] ;AND GO DO IT
721 000423'02 253 03 0 00 000420' AOBJN T3,NTMTO1 ;DO ENTIRE TABLE
722 000424'02 200 01 0 11 000413* MOVE T1,FILLLB(JFN) ;GET LOGICAL LINK BLOCK ADDRESS
723 000425'02 260 17 0 00 000000# CALL BLKULK ;UNLOCK THE BLOCK
724 000426'02 254 00 0 00 007256' RETBAD (MTOX1) ;FAIL
725
726 000427'02 000024 000506' NTMTTB: .MOACN,,MTASGN ;SET CONNECT INTERRUPT
727 000430'02 000025 000527' .MORLS,,NTSTS ;READ LINK STATUS
728 000431'02 000026 002460' .MORHN,,NTRHN ;READ FOREIGN HOST NAME
729 000432'02 000027 002454' .MORTN,,NTRTN ;READ LINK TASK NAME
730 000433'02 000030 002546' .MORUS,,NTRUS ;READ USER STRING
731 000434'02 000031 002570' .MORPW,,NTRPW ;READ PASSWORD
732 000435'02 000032 002552' .MORAC,,NTRAC ;READ ACCOUNT STRING
733 000436'02 000033 002613' .MORDA,,NTRDA ;READ OPTIONAL DATA
734 000437'02 000035 002701' .MORIM,,MTRDIN ;READ INT MESSAGE
735 000440'02 000036 002765' .MOSIM,,MTSNIN ;SEND INT MESSAGE
736 000441'02 000037 003064' .MOROD,,NTRCOB ;READ OBJ-DESC OF CONNECT OBJECT
737 000442'02 000040 003133' .MOCLZ,,NTMTCZ ;CLOSE/REJECT A CONNECTION
738 000443'02 000041 003164' .MOCC,,NTACPT ;ACCEPT A CONNECTION
739 000444'02 000034 002534' .MORCN,,NTRCN ;READ CONNECT OBJECT NUMBER
740 000445'02 000042 003201' .MORSS,,MTGSS ;GET LINK SEGMENT SIZE
741 000446'02 000043 000450' .MOANT,,NTANT ;ATTACH NETWORK TERMINAL
742 000447'02 000044 000473' .MOSNH,,NTSNH ;SET NETWORK HOST FOR TERMINAL
743 000021 NTMTCT==.-NTMTTB ;LENGTH OF TABLE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 13
NSPSRV MAC 6-Apr-82 10:58 MTOPR Routines
744
745 ;ATTACH NETWORK TERMINAL TO JOB
746 ; JFN, etc. setup by .MTOPR entry code
747 ;returns with LL connected to terminal and JFN released
748 ; T2/ terminal line number assigned
749
750 000450'02 200 01 0 11 000424* NTANT: MOVE T1,FILLLB(JFN) ;GET LL BLOCK
751 000451'02 260 17 0 00 000000* CALL ASMCB ;ASSIGN "MCB" TERMINAL AND CONNECT TO LL
752 000452'02 263 17 0 00 000000 RETBAD()
753 000453'02 256 04 0 00 007260' UMOVEM T1,T2
754 000454'02 400 01 0 00 000000 SETZ T1,
755 000455'02 250 01 0 11 000450* EXCH T1,FILLLB(JFN) ;DISASSOCIATE JFN FROM LL
756 000456'02 563 00 0 01 000003 SETONE LLFRK,(T1) ;NO FORK
757 000457'02 513 00 0 01 000003 SETZRO <LLDRC,LLPII,LLPIC>,(T1) ;NO INTERRUPTS
758 000460'02 260 17 0 00 000000# CALL BLKULK ;UNLOCK LL
759 000461'02 554 01 0 11 000401* HLRZ T1,FILWND(JFN) ;GET OUTPUT WINDOW
760 000462'02 332 00 0 00 000001 SKIPE T1
761 000463'02 260 17 0 00 000403* CALL RELPAG ;RELEASE IT
762 000464'02 550 01 0 11 000461* HRRZ T1,FILWND(JFN) ;GET INPUT WINDOW
763 000465'02 332 00 0 00 000001 SKIPE T1
764 000466'02 260 17 0 00 000463* CALL RELPAG ;RELEASE IT
765 000467'02 402 00 0 11 000000* SETZM FILBFO(JFN)
766 000470'02 402 00 0 11 000404* SETZM FILBFI(JFN)
767 000471'02 260 17 0 00 000000* CALL RELJFN
768 000472'02 254 00 0 00 000367* RETSKP
769
770 ;SET NETWORK HOST
771 ; T1/ JFN of LL (JFN, STS, etc setup at .MTOPR entry)
772 ; T2/ ptr to arg block:
773 ; 0 - size in words (including this one)
774 ; 1 .SHTTY - terminal ident
775 ; 2 .SHESC - flags,,escape char
776 ; returns with line connected to LL, JFN unchanged
777
778 000473'02 265 16 0 00 000000* NTSNH: SAVEAC <Q1>
779 000474'02 256 04 0 00 007261' UMOVE Q1,T3 ;GET ARG PTR
780 000475'02 256 04 0 00 007262' UMOVE T1,.SHTTY(Q1)
781 CALL [ SAVEAC <JFN,STS,DEV> ;KEEP THESE FOR ORIGINAL JFN
782 000476'02 260 17 0 00 007273' CALLRET CHKTTM] ;GET LINE NUMBER IN T2
783 000477'02 263 17 0 00 000000 RETBAD()
784 000500'02 200 01 0 11 000455* MOVE T1,FILLLB(JFN)
785 000501'02 260 17 0 00 000000# CALL BLKULK ;UNLOCK LL
786 000502'02 256 04 0 00 007301' UMOVE T3,.SHESC(Q1) ;GET ESC CHAR AND FLAGS
787 000503'02 260 17 0 00 000000* CALL TTSETH
788 000504'02 263 17 0 00 000000 RETBAD()
789 000505'02 254 00 0 00 000472* RETSKP
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 14
NSPSRV MAC 6-Apr-82 10:58 MTOPR Routines
790
791 ;SET INTERRUPT CHANNEL NUMBERS
792
793 000506'02 265 16 0 00 000473* MTASGN: ACVAR <W1> ;GET A WORK REG
794 000507'02 256 04 0 00 007261' UMOVE W1,3 ;GET ARGUMENT
795 000510'02 135 02 0 00 007302' LOAD T2,MO%CDN,W1 ;GET CONNECT INTERRUPT
796 000511'02 260 17 0 00 002616' CALL MTSETC ;GO SET IT
797 000512'02 254 00 0 00 000523' JRST NTMERR ;BAD
798 000513'02 135 02 0 00 007303' LOAD T2,MO%INA,W1 ;GET INT CHANNEL
799 000514'02 260 17 0 00 002626' CALL MTSETI ;GO DO INT CHANNEL
800 000515'02 254 00 0 00 000523' JRST NTMERR ;BAD
801 000516'02 135 02 0 00 007304' LOAD T2,MO%DAV,W1 ;GET DATA CHANNEL
802 000517'02 260 17 0 00 002635' CALL MTSETD ;SET IT
803 000520'02 254 00 0 00 000523' JRST NTMERR ;BAD
804 000521'02 260 17 0 00 000000# CALL BLKULK ;FREE BLOCK
805 000522'02 254 00 0 00 000505* RETSKP ;AND DONE
806
807 ; HERE ON AN ERROR SETTING THE INTERRUPT CHANNELS
808
809 000523'02 250 01 0 11 000500* NTMERR: EXCH T1,FILLLB(JFN) ;SAVE ERROR CODE, GET LL BLOCK ADDRESS
810 000524'02 260 17 0 00 000000# CALL BLKULK ;UNLOCK THE BLOCK
811 000525'02 250 01 0 11 000523* EXCH T1,FILLLB(JFN) ;RESTORE LL BLOCK ADDRESS, GET ERROR CODE
812 000526'02 263 17 0 00 000000 RETBAD () ;FAIL
813
814 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 15
NSPSRV MAC 6-Apr-82 10:58 MTOPR Routines
815 ;READ LINK STATUS
816
817 000527'02 260 17 0 00 002504' NTSTS: CALL RDSTS ;GO GET THE STATUS
818 000530'02 256 04 0 00 007305' UMOVEM T3,3 ;RETURN RESULT
819 000531'02 260 17 0 00 000000# CALL BLKULK ;FREE BLOCK
820 000532'02 254 00 0 00 000522* RETSKP ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 16
NSPSRV MAC 6-Apr-82 10:58 MTOPR Routines
821
822 ;UNDO OUTPUT
823
824 000533'02 626 10 0 00 010000 NETUOU::TQZN <FILOUP> ;NOW DOING OUTPUT?
825 000534'02 263 17 0 00 000000 RET ;NO. ALL DONE
826 000535'02 200 01 0 11 000525* MOVE T1,FILLLB(JFN) ;GET LL BLOCK
827 000536'02 260 17 0 00 001337' CALL SKPFLO ;IS FLOW FROM THE FILE-SYSTEM ?
828 000537'02 263 17 0 00 000000 RET ;NO. DONE
829 000540'02 200 01 0 11 000000* MOVE T1,FILCNT(JFN) ;GET COUNT
830 000541'02 335 00 0 00 000001 SKIPGE T1
831 000542'02 402 00 0 00 000001 SETZM T1 ;ONLY ALLOW DOWN TO ZERO
832 000543'02 506 01 0 11 000116* HRLM T1,FILBCT(JFN) ;STORE NEW COUNT
833 000544'02 200 01 0 11 000000* MOVE T1,FILBYT(JFN) ;GET BYTE POINTER
834 000545'02 202 01 0 11 000467* MOVEM T1,FILBFO(JFN) ;SAVE IT
835 000546'02 263 17 0 00 000000 RET ;DONE
836
837 ;UNDO INPUT
838
839 000547'02 626 10 0 00 020000 NETUIN::TQZN <FILINP> ;NOW DOING INPUT?
840 000550'02 263 17 0 00 000000 RET ;NO. ALL DONE
841 000551'02 200 01 0 11 000535* MOVE T1,FILLLB(JFN) ;GET LL BLOCK
842 000552'02 260 17 0 00 001343' CALL SKPFLI ;IS FLOW TO THE FILE-SYSTEM ?
843 000553'02 263 17 0 00 000000 RET ;NO. ALL DONE
844 000554'02 200 01 0 11 000540* MOVE T1,FILCNT(JFN) ;GET COUNT
845 000555'02 335 00 0 00 000001 SKIPGE T1 ;VALID COUNT?
846 000556'02 402 00 0 00 000001 SETZM T1 ;ONLLY ALLOW DOWN TO ZERO
847 000557'02 542 01 0 11 000543* HRRM T1,FILBCT(JFN) ;SAVE IT
848 000560'02 200 01 0 11 000544* MOVE T1,FILBYT(JFN) ;GET BYTE POINTER
849 000561'02 202 01 0 11 000470* MOVEM T1,FILBFI(JFN) ;SAVE IT
850 000562'02 263 17 0 00 000000 RET ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 17
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's.
851 SUBTTL Sequential I/O JSYS's.
852
853 ;SEQUENTIAL OUTPUT.
854
855 000563'02 265 16 0 00 000000* NETSQO: ASUBR <NETCHR> ;SAVE THE CHARACTER
856 000564'02 200 01 0 11 000551* MOVE T1,FILLLB(JFN) ;GET LL BLOCK ADDRESS
857 000565'02 260 17 0 00 000000# CALL BLKLLK ;LOCK IT UP
858 JRST [ TQO <BLKF> ;CANNOT LOCK IT,
859 000566'02 254 00 0 00 007251' RETBAD() ] ; WAIT UNTIL LOCK IS FREE
860 000567'02 260 17 0 00 001357' CALL GETSTA ;GO GET CURRENT LOGICAL LINK STATE
861 000570'02 254 00 1 02 004247' JRST @SQOSTA-1(T2) ;AND DO PROPER THING
862
863 000571'02 375 00 0 11 000554* NETSQ1::SOSGE FILCNT(JFN) ;HAVE ANY CHARACTERS?
864 JRST [ CALL OUTRR ;AND SEND SOME MESSAGES
865 RETBAD() ;FAILED
866 CALL NETOUP ;SET UP FOR OUTPUT
867 MOVE T1,FILLLB(JFN) ;GET BACK LL BLOCK
868 000572'02 254 00 0 00 007306' JRST NETSQ1] ;AND TRY AGAIN
869 000573'02 200 02 0 15 000001 MOVE T2,NETCHR ;GET BYTE
870 000574'02 136 02 0 11 000560* IDPB T2,FILBYT(JFN) ;STASH BYTE
871 000575'02 254 00 0 00 000000# CALLRET BLKULK ;RELEASE BLOCK AND RETURN
872
873 ;FORCE OUT ALL BUFFERED CHARACTERS. CALLED FROM SOUTR
874
875 000576'02 200 01 0 11 000564* NETSQR: MOVE T1,FILLLB(JFN) ;GET LL BLOCK ADDRESS
876 000577'02 260 17 0 00 000000# CALL BLKLLK ;LOCK IT
877 JRST [ TQO <BLKF> ;CANNOT LOCK IT,
878 000600'02 254 00 0 00 007251' RETBAD() ] ; WAIT UNTIL LOCK IS FREE
879 000601'02 260 17 0 00 001357' CALL GETSTA ;GO GET CURRENT LOGICAL LINK STATE
880 000602'02 254 00 1 02 004260' JRST @SQOOTR-1(T2) ;DO WORK
881
882 000603'02 260 17 0 00 001361' NETSR1::CALL SETEOM ;NOTE THAT NEXT OUTPUT IS AN ENTIRE MESSAGE
883 000604'02 260 17 0 00 003505' CALL OUTRR ;DO THE WORK
884 000605'02 263 17 0 00 000000 RETBAD() ;FAILED
885 000606'02 200 01 0 11 000576* MOVE T1,FILLLB(JFN) ;GET BACK LL BLOCK
886 000607'02 260 17 0 00 000000# CALL BLKULK ;UNLOCK BLOCK
887 000610'02 254 00 0 00 000532* RETSKP ;AND RETURN GOOD
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 18
NSPSRV MAC 6-Apr-82 10:58 NSP Initialization
888 SUBTTL NSP Initialization
889
890
891 ;NAMINI INITIALIZES NODE NAME TO "TOPS20"
892
893 RESCD
894
895 000000'01 120 01 0 00 002147' NAMINI::DMOVE T1,[ASCIZ /TOPS20/] ;GET OUR DEFAULT NODE NAME
896 000001'01 124 01 0 00 000000* DMOVEM T1,OURNAM ;SET IT (ASSUME SETSPD HASN'T RUN YET!)
897 000002'01 201 01 0 00 000006 MOVEI T1,6 ;COUNT OF CHARS IN "OURNAM"
898 000003'01 202 01 0 00 000000* MOVEM T1,OURCNT ;STORE IT (OURNAM COPIED TO LLSR EVEN ON
899 ;NON-DECNET SYSTEMS, AND .SJLL,
900 ;.JILLO REFERENCE IT!)
901 000004'01 201 01 0 00 000000* MOVEI T1,NODNUM ;GET OUR DEFAULT NODE NUMBER
902 000005'01 202 01 0 00 000000* MOVEM T1,OURNUM ;SET IT
903 000006'01 263 17 0 00 000000 RET
904
905 ;ROUTINE TO INIT NETWORK DATA BASES,ETC.
906
907 SWAPCD ;SWAPPABLE
908
909 000611'02 476 00 0 00 000000* NSPINI::UNLOCK LLLLCK ;UNLOCK LOCK
910 000612'02 476 00 0 00 000000* UNLOCK OUTLOK ;INITIALIZE LOCK ON BACKGROUND TASK'S QUEUE
911 000613'02 476 00 0 00 000000* UNLOCK NODLOK ;INITIALIZE LOCK ON NODTBL
912 000614'02 476 00 0 00 000000* UNLOCK NMAPLK ;INIT LOCK ON NODE NAME MAPPING TABLE
913 000615'02 200 01 0 00 007313' MOVX T1,INIWAT ;GET TIME BEFORE BLOCKED OUTPUT RETRY
914 000616'02 202 01 0 00 000000* MOVEM T1,OUTIVL ;SAVE DEFAULT TIME INTERVAL
915 000617'02 260 17 0 00 001142' CALL OBJINI ;INIT OBJECT TABLE
916 000620'02 260 17 0 00 001073' CALL LLINIT ;AND INIT LL ADDRESS BIT TABLE
917 000621'02 201 01 0 00 000400 MOVEI T1,SEGSIZ ;GET DEFAULT SEGMENT SIZE
918 000622'02 202 01 0 00 000000* MOVEM T1,SEGSZ ;SET IT UP
919 000623'02 205 01 0 00 200000 MOVX T1,1B1 ;MAKE FORK HAVE ALL CAPS
920 000624'02 400 02 0 00 000000 SETZ T2,
921 000625'02 104 00 0 00 000152 CFORK ;GET A FORK
922 BUG (NSPFRK,<<T1,REASON>>)
923 ;BUG type: BUGHLT, SOFT
924 ;BUG message: NSPINI-CFORK FAILED
925 SALL
926 000626'02 256 00 0 00 007314'
927 000627'02 201 02 0 00 004430' MOVEI T2,TSKINI ;THE STARTING ADDRESS
928 000630'02 104 00 0 00 000312 MSFRK ;START IT
929 000631'02 205 02 0 00 200000 MOVX T2,FRKRUN ;SAY FORK IS RUNNING
930 000632'02 436 02 0 00 000000* IORM T2,MCBDTE ;SET FLAG
931 000633'02 260 17 0 00 000636' CALL ININOD ;INITIALIZE KNOWN NODE TABLE
932 BUG(NDINIT)
933 ;BUG type: BUGINF, SOFT
934 ;BUG message: NSP - Could not add first entry to node table
935 SALL
936 000634'02 256 00 0 00 007317'
937 000635'02 263 17 0 00 000000 RET ;DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 19
NSPSRV MAC 6-Apr-82 10:58 NSP Initialization
938 ; INITIALIZE TABLE OF KNOWN NODES
939
940 000636'02 350 00 0 00 000107* ININOD: NOINT ;DO NOT PERMIT INTERRUPTS WHILE ASSIGNING SPACE
941 000637'02 201 01 0 00 000026 MOVX T1,MAXNOD+2 ;NEED 1 WORD PER NODE PLUS FREE BLOCK HEADER
942 ; PLUS TBLUK HEADER
943 000640'02 260 17 0 00 000000* CALL ASGSWP ;ALLOCATE SOME SPACE FOR NODE TABLE
944 000641'02 254 00 0 00 007321' RETBAD (,<OKINT>) ;FAILED
945 000642'02 256 00 0 00 000073* OKINT ;PERMIT INTERRUPTS AGAIN
946 000643'02 271 01 0 00 000001 ADDI T1,1 ;POINT PAST FREE BLOCK HEADER
947 000644'02 202 01 0 00 000000* MOVEM T1,NODTBL ;SAVE ADDRESS OF NODE TABLE
948 000645'02 201 04 0 00 000024 MOVX T4,MAXNOD ;GET MAX NUMBER OF ENTRIES IN TABLE
949 000646'02 202 04 0 01 000000 MOVEM T4,(T1) ;INITIALIZE TBLUK HEADER
950 000647'02 201 01 0 00 000000* MOVEI T1,OURNAM ;GET POINTER TO OUR NODE NAME
951 000650'02 201 02 0 00 000000 MOVX T2,.NDSON ;STATE IS ON
952 000651'02 400 03 0 00 000000 SETZ T3, ;NO NEIGHBOR NODE
953 000652'02 260 17 0 00 000765' CALL ADDINT ;ADD US TO THE KNOWN NODES
954 000653'02 263 17 0 00 000000 RETBAD () ;FAIL
955 000654'02 254 00 0 00 000610* RETSKP ;DONE, RETURN SUCCESS
956
957
958
959
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 20
NSPSRV MAC 6-Apr-82 10:58 NSP Initialization
960 ;ADDNOD - ROUTINE TO ADD A NODE TO THE TABLE OF KNOWN NODES
961 ;
962 ;ACCEPTS IN T1/ ADDRESS OF ASCIZ NODE NAME
963 ; T2/ STATE OF NODE
964 ; T3/ POINTER TO NEARER NEIGHBOR NODE (FOR STATE OF "ON")
965 ; CALL ADDNOD
966 ;RETURNS: +1 FAILED
967 ; +2 SUCCESS, NODE ADDED IF NOT ALREADY IN TABLE
968
969 000655'02 265 16 0 00 000563* ADDNOD: ASUBR <ADNADR,ADNSTA,ADNABR,ADHLD>
970
971 ; SEE IF NODE IS TO BE ADDED OR REMOVED FROM KNOWN NODE TABLE
972
973 000656'02 550 03 0 15 000002 HRRZ T3,ADNSTA ;GET NODE STATE
974 000657'02 306 03 0 00 000001 CAIN T3,.NDSOF ;NODE OFF ?
975 JRST [ CALL REMNOD ;REMOVE NODE FROM TABLE OF KNOWN NODES
976 RET ;FAILURE - RETURN
977 000660'02 254 00 0 00 007323' JRST ADDTEL] ;NOTIFY INTERESTED USERS THAT TOPOLOGY CHANGED
978
979 ; CHECK TO SEE IF THE NODE IS ALREADY IN THE TABLE
980
981 000661'02 350 00 0 00 000636* NOINT ;DO NOT PERMINT INTERRUPTS WITH TABLE LOCKED
982 000662'02 352 00 0 00 000613* LOCK NODLOK ;LOCK THE TABLE
983 000663'02 265 16 0 00 000000*
984 000664'02 550 02 0 15 000001 HRRZ T2,ADNADR ;GET ADDRESS OF NODE NAME STRING
985 000665'02 505 02 0 00 440700 HRLI T2,(POINT 7,) ;FORM POINTER TO NODE NAME STRING
986 000666'02 200 01 0 00 000644* MOVE T1,NODTBL ;GET ADDRESS OF NODE TABLE
987 000667'02 104 00 0 00 000537 TBLUK ;SEE IF THE NODE IS IN THE TABLE OF KNOWN NODES
988 ERJMP [UNLOCK NODLOK ;UNLOCK THE TABLE
989 OKINT ;PERMIT INTERRUPTS AGAIN
990 000670'02 320 16 0 00 007326' RET] ;AND RETURN FAILURE
991 000671'02 607 02 0 00 040000 TXNN T2,TL%EXM ;ALREADY IN TABLE (EXACT MATCH) ?
992 000672'02 254 00 0 00 000711' JRST ADDIT ;NO - ADD THIS NODE NAME
993
994 ; NODE ALREADY EXISTS. CHECK THE NEIGHBOR
995
996 000673'02 202 01 0 15 000004 MOVEM T1,ADHLD ;YES - SAVE THE ENTRIES TABLE LOCATION
997 000674'02 200 01 0 15 000003 MOVE T1,ADNABR ;GET POINTER TO NEIGHBOR NAME
998 000675'02 322 01 0 00 000702' JUMPE T1,ADDND1 ;IF ZERO => NO NEIGHBOR
999 000676'02 260 17 0 00 001064' CALL NABROK ;CHECK FOR EXISTENCE OF NEIGHBOR
1000 JRST [ UNLOCK NODLOK ;NONEXISTANT NEIGHBOR - ERROR
1001 OKINT ;ALLOW INTERRUPTS
1002 000677'02 254 00 0 00 007326' RET] ;ERROR RETURN
1003 000700'02 200 02 0 15 000004 MOVE T2,ADHLD ;GET NODE ADDRESS
1004 000701'02 554 01 0 01 000000 HLRZ T1,(T1) ;GET ADDRESS OF NEIGHBOR NAME
1005 000702'02 542 01 0 02 000000 ADDND1: HRRM T1,(T2) ;ADD NEIGHBOR NAME TO NODE TABLE
1006
1007 ; SINCE NODE WAS ALREADY IN TABLE WE CAN FREE THE NAME STRINGS
1008
1009 000703'02 550 01 0 15 000001 HRRZ T1,ADNADR ;GET ADDRESS OF STRINGS
1010 000704'02 370 00 0 00 000001 SOS T1 ;POINT TO START OF BLOCK
1011 000705'02 260 17 0 00 000000* CALL RELMES ;FREE THE SPACE
1012 000706'02 476 00 0 00 000662* UNLOCK NODLOK ;UNLOCK THE NODE TABLE
1013 000707'02 256 00 0 00 000642* OKINT ;ALLOW INTERRUPTS
1014 000710'02 254 00 0 00 000654* RETSKP
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 20-1
NSPSRV MAC 6-Apr-82 10:58 NSP Initialization
1015
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 21
NSPSRV MAC 6-Apr-82 10:58 NSP Initialization
1016 ; ADD THE NODE TO THE TABLE OF KNOWN NODES
1017
1018 000711'02 200 01 0 15 000003 ADDIT: MOVE T1,ADNABR ;GET ADDRESS OF NEIGHBOR NAME STRING
1019 000712'02 322 01 0 00 000716' JUMPE T1,ADDIT1 ;IF ZERO => NO NEIGHBOR
1020 000713'02 260 17 0 00 001064' CALL NABROK ;CHECK FOR IT'S EXISTENCE
1021 JRST [ UNLOCK NODLOK ;UNLOCK THE NODE TABLE
1022 OKINT ;ALLOW INTERRUPTS
1023 000714'02 254 00 0 00 007326' RET]
1024 000715'02 554 01 0 01 000000 HLRZ T1,(T1) ;GET ADDRESS OF NEIGHBOR NAME
1025 000716'02 504 02 0 15 000001 ADDIT1: HRL T2,ADNADR ;GET ADDRESS OF NODE NAME STRING
1026 000717'02 540 02 0 00 000001 HRR T2,T1 ;GET NODES NEIGHBOR NAME
1027 000720'02 200 01 0 00 000666* MOVE T1,NODTBL ;GET ADDRESS OF NODE TABLE
1028 000721'02 104 00 0 00 000536 TBADD ;ADD THE NODE TO TABLE OF KNOWN NODES
1029 ERJMP [UNLOCK NODLOK ;UNLOCK THE TABLE
1030 OKINT ;PERMIT INTERRUPTS AGAIN
1031 000722'02 320 16 0 00 007326' RET] ;AND RETURN FAILURE
1032 000723'02 476 00 0 00 000706* UNLOCK NODLOK ;UNLOCK THE TABLE
1033 000724'02 256 00 0 00 000707* OKINT ;PERMIT INTERRUPTS AGAIN
1034
1035 ;HERE TO NOTIFY INTERESTED USERS THAT TOPOLGY HAS CHANGED
1036
1037 000725'02 202 05 0 15 000001 ADDTEL: MOVEM Q1,ADNADR ;SAVE Q1
1038 000726'02 201 05 0 00 000000* MOVEI Q1,NTCTAB ;START LOOKING AT TOP OF TABLE
1039 000727'02 336 00 0 05 000000 NTCIN1: SKIPN (Q1) ;IS THERE AN ENTRY?
1040 000730'02 254 00 0 00 000734' JRST NTCIN2 ;NO. KEEP LOOKING.
1041 000731'02 554 02 0 05 000000 LOAD T2,NTCFRK,(Q1) ;GET FORK NUMBER
1042 000732'02 550 01 0 05 000000 LOAD T1,NTCCHN,(Q1) ;GET THE CHANNEL NUMBER
1043 000733'02 260 17 0 00 000000* CALL PSIRQ ;INTERRUPT USER
1044 000734'02 302 05 0 00 000000# NTCIN2: CAIE Q1,NTCTAB+<NTCMAX-1> ;DID WE SEARCH WHOLE TABLE?
1045 000735'02 344 05 0 00 000727' AOJA Q1,NTCIN1 ;NO - CHECK NEXT ENTRY
1046 000736'02 200 05 0 15 000001 MOVE Q1,ADNADR ;RESTORE Q1
1047 000737'02 254 00 0 00 000710* RETSKP
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 22
NSPSRV MAC 6-Apr-82 10:58 NSP Initialization
1048 ;REMNOD - ROUTINE TO REMOVE A NODE FROM THE TABLE OF KNOWN NODES
1049 ;
1050 ;ACCEPTS IN T1/ POINTER TO ASCIZ NODE NAME
1051 ; CALL REMNOD
1052 ;RETURNS: +1 FAILED
1053 ; +2 SUCCESS
1054
1055 000740'02 265 16 0 00 000655* REMNOD: ASUBR <RMNNAM>
1056
1057 000741'02 350 00 0 00 000661* NOINT ;DO NOT PERMINT INTERRUPTS WITH TABLE LOCKED
1058 000742'02 352 00 0 00 000723* LOCK NODLOK ;LOCK THE TABLE
1059 000743'02 265 16 0 00 000663*
1060 000744'02 200 01 0 00 000720* MOVE T1,NODTBL ;GET ADR OF HEADER OF KNOWN NODE TABLE
1061 000745'02 200 02 0 15 000001 MOVE T2,RMNNAM ;GET NAME OF NODE
1062 000746'02 104 00 0 00 000537 TBLUK ;FIND THE NAME IN THE KNOWN NODE TABLE
1063 000747'02 320 16 0 00 000762' ERJMP REMNDX ;FAILED
1064 000750'02 607 02 0 00 040000 TXNN T2,TL%EXM ;IN TABLE (EXACT MATCH) ?
1065 000751'02 254 00 0 00 000762' JRST REMNDX ;NO - FAIL
1066 000752'02 260 17 0 00 001023' CALL NODDEL ;YES - DELETE NODE AND REST OF TREE
1067 000753'02 254 00 0 00 000762' JRST REMNDX ;ERROR - FAIL
1068 000754'02 200 01 0 15 000001 MOVE T1,RMNNAM ;FREE THE BUFFER
1069 000755'02 370 00 0 00 000001 SOS T1 ;BACK-UP TO HEADER WORD
1070 000756'02 260 17 0 00 000705* CALL RELMES
1071 000757'02 476 00 0 00 000742* UNLOCK NODLOK ;UNLOCK THE TABLE
1072 000760'02 256 00 0 00 000724* OKINT ;PERMIT INTERRUPTS AGAIN
1073 000761'02 254 00 0 00 000737* RETSKP ;DONE, RETURN SUCCESS
1074
1075
1076 ; HERE ON AN ERROR
1077
1078 000762'02 476 00 0 00 000757* REMNDX: UNLOCK NODLOK ;UNLOCK THE DATABASE
1079 000763'02 256 00 0 00 000760* OKINT ;PERMIT INTERRUPTS AGAIN
1080 000764'02 263 17 0 00 000000 RET ;FAIL
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 23
NSPSRV MAC 6-Apr-82 10:58 NSP Initialization
1081 ;ADDINT - ROUTINE TO ADD A NODE TO KNOWN NODE TABLE, NAME STRING ALREADY
1082 ; IN MONITOR.
1083 ;
1084 ;ACCEPTS IN T1/ POINTER TO NODE NAME STRING
1085 ; T2/ NODE STATE
1086 ; T3/ POINTER TO NEARER NEIGHBOR NODE (OR ZERO)
1087 ; CALL ADDINT
1088 ;RETURNS: +1 FAILED
1089 ; +2 SUCCESS
1090
1091 000765'02 265 16 0 00 000740* ADDINT: ASUBR <ADIPTR,ADISTA,ADINBR,ADIBLK>
1092
1093 ; COPY THE STRING INTO A FREE BLOCK
1094
1095 000766'02 350 00 0 00 000741* NOINT ;DO NOT PERMIT INTERRUPTS WHILE ASSIGNING SPACE
1096 000767'02 201 01 0 00 000006 MOVX T1,2*<<NODMAX+12>/5> ;ASSIGN SPACE FOR NODE NAMES
1097 000770'02 260 17 0 00 000640* CALL ASGSWP ;GET SOME SPACE
1098 000771'02 254 00 0 00 007321' RETBAD (,<OKINT>) ;FAILED
1099 000772'02 271 01 0 00 000001 ADDI T1,1 ;POINT TO WHERE STRING GOES
1100 000773'02 202 01 0 15 000004 MOVEM T1,ADIBLK ;SAVE DESTINATION ADDRESS OF STRING
1101 000774'02 200 02 0 15 000001 MOVE T2,ADIPTR ;GET SOURCE STRING ADDRESS
1102 000775'02 201 03 0 00 000006 MOVX T3,NODMAX ;MAX SIX CHARS
1103 000776'02 260 17 0 00 001260' CALL MOVSTR ;MOVE STRING INTO FREE BLOCK
1104 000777'02 200 01 0 15 000004 MOVE T1,ADIBLK ;NOW MOVE THE NEIGHBOR NAME
1105 001000'02 271 01 0 00 000003 ADDI T1,<NODMAX+12>/5 ;POINT TO SECOND SLOT
1106 001001'02 201 03 0 00 000006 MOVX T3,NODMAX ;MAXIMUM NODE NAME
1107 001002'02 332 02 0 15 000003 SKIPE T2,ADINBR ;COPY NEIGHBOR (IF THERE)
1108 001003'02 260 17 0 00 001260' CALL MOVSTR ;MOVE NEIGHBOR NAME
1109
1110 ; ADD NODE TO TABLE OF KNOWN NODES
1111
1112 001004'02 200 01 0 15 000004 MOVE T1,ADIBLK ;GET ADDRESS OF NODE NAME STRING
1113 001005'02 200 02 0 15 000002 MOVE T2,ADISTA ;GET NODE STATE
1114 001006'02 332 03 0 15 000003 SKIPE T3,ADINBR ;PASS T3=0 IF NO NEIGHBOR
1115 001007'02 201 03 0 01 000003 MOVEI T3,<<NODMAX+12>/5>(T1) ;POINT TO NEIGHBOR NAME
1116 001010'02 260 17 0 00 000655' CALL ADDNOD ;ADD NODE TO KNOWN NODE TABLE
1117 001011'02 254 00 0 00 001014' JRST ADIN10 ;FAILED, CLEAN UP
1118 001012'02 256 00 0 00 000763* OKINT ;PERMIT INTERRUPTS AGAIN
1119 001013'02 254 00 0 00 000761* RETSKP ;DONE, RETURN SUCCESS
1120
1121 ; HERE ON AN ERROR
1122
1123 001014'02 202 01 0 15 000002 ADIN10: MOVEM T1,ADISTA ;SAVE ERROR CODE
1124 001015'02 200 01 0 15 000004 MOVE T1,ADIBLK ;ADDRESS OF BLOCK
1125 001016'02 370 00 0 00 000001 SOS T1 ;POINT TO HEADER
1126 001017'02 260 17 0 00 000756* CALL RELMES ;RELEASE THE BLOCK
1127 001020'02 256 00 0 00 001012* OKINT ;PERMIT INTERRUPTS AGAIN
1128 001021'02 200 01 0 15 000002 MOVE T1,ADISTA ;RESTORE ERROR CODE
1129 001022'02 263 17 0 00 000000 RETBAD () ;FAIL
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 24
NSPSRV MAC 6-Apr-82 10:58 NSP Initialization
1130 ;NODDEL - ROUTINE TO DELETE A GIVEN ENTRY FROM THE NODE TABLE
1131
1132 ;ACCEPTS: T1/ ADDRESS OF ENTRY IN NODE TABLE (WITH NODTBL LOCKED)
1133
1134 ;RETURNS: +1,ALWAYS, ALL AC'S PRESERVED
1135
1136 ;*** N.B. *** THIS ROUTINE IS RECURSIVE. ***
1137
1138 ;NODTBL IS REALLY A TREE OF NODES. EACH NODE HAS THE ADDRESS OF A NEARER
1139 ;NEIGHBOR (I.E. NEARER TO US THAN IT). WHEN REMOVING A NODE WE MUST REMOVE
1140 ;ALL THE NODES THAT HAVE IT AS A NEIGHBOR. THINGS BECOME RECURSIVE BECAUSE
1141 ;WHEN WE REMOVE THE SECONDARY NODES THEY COULD ALSO BE NEIGHBORS TO OTHER
1142 ;NODES.
1143
1144 001023'02 265 16 0 00 000000* NODDEL: SAVET
1145 001024'02 265 16 0 00 000370* STKVAR <DELHLD>
1146 001025'02 000001 000001
1147 001026'02 200 03 0 01 000000 MOVE T3,(T1) ;GET ENTRY WE ARE DELETING
1148 001027'02 202 03 0 17 777776 MOVEM T3,DELHLD ;SAVE NODTBL POINTER
1149 001030'02 554 03 0 01 000000 HLRZ T3,(T1) ;GET ADDRESS OF NODE NAME
1150 001031'02 200 01 0 00 000744* MOVE T1,NODTBL ;GET ADDRESS OF NODE TABLE
1151 001032'02 200 04 0 00 001031* MOVE T4,NODTBL ;HOLD FOR LOOP DECISION
1152
1153 ; FIND ANY ENTRIES HAVING CURRENT NODE AS NEAREST NEIGHBOR
1154
1155 001033'02 350 00 0 00 000001 NODDL1: AOS T1 ;POINT TO NEXT ENTRY
1156 001034'02 550 02 0 01 000000 HRRZ T2,0(T1) ;GET THE NEIGHBOR ADDRESS
1157 001035'02 316 02 0 00 000003 CAMN T2,T3 ;IS THE CURRENT NODE THE NEIGHBOR
1158 JRST [ HLRZ T2,0(T1) ;YES - IS THIS A POINTING TO SELF CASE?
1159 CAMN T2,T3 ;???
1160 JRST .+1 ;YES - THEN DO NOTHING
1161 CALL NODDEL ;YES - REMOVE THAT NODE ***RECURSION***
1162 RETBAD ;ERROR - FAIL
1163 MOVE T1,NODTBL ;START AT TOP OF TABLE
1164 001036'02 254 00 0 00 007331' JRST NODDL1] ;SEARCH WHOLE TABLE AGAIN
1165 001037'02 554 02 0 04 000000 HLRZ T2,0(T4) ;GET CURRENT LENGTH OF TABLE
1166 001040'02 270 02 0 00 000004 ADD T2,T4 ;T2<= ADDRESS OF LAST ENTRY
1167 001041'02 311 02 0 00 000001 CAML T2,T1 ;ARE WE FINISHED
1168 001042'02 254 00 0 00 001033' JRST NODDL1 ;NO - KEEP LOOKING
1169 ;...
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 25
NSPSRV MAC 6-Apr-82 10:58 NSP Initialization
1170 ;...
1171
1172 ; HAVE CLEARED ALL ENTRIES DOWN THE TREE FROM HERE - DELETE THIS NODE
1173
1174 001043'02 544 01 0 04 000000 HLR T1,(T4) ;GET COUNT OF ENTRIES
1175 001044'02 200 02 0 17 777776 MOVE T2,DELHLD ;LOOKING FOR THIS ENTRY
1176 001045'02 350 00 0 00 000004 NODDL2: AOS T4 ;BUMP TO NEXT ENTRY
1177 001046'02 316 02 0 04 000000 CAMN T2,(T4) ;THE ONE WE WANT?
1178 001047'02 254 00 0 00 001053' JRST NODDL3 ;YES - DELETE IT
1179 001050'02 367 01 0 00 001045' SOJG T1,NODDL2 ;NO - KEEP LOOKING
1180 BUG (NDBDEL)
1181 ;BUG type: BUGCHK, SOFT
1182 ;BUG message: NSP - Error in deleting node name from table
1183 SALL
1184 001051'02 256 00 0 00 007340'
1185 001052'02 263 17 0 00 000000 RETBAD
1186 001053'02 200 02 0 00 000004 NODDL3: MOVE T2,T4 ;GET THE NODE TABLE ENTRY
1187 001054'02 554 04 0 02 000000 HLRZ T4,(T2) ;GET ADDRESS OF FREE BLOCK HOLDING STRINGS
1188 001055'02 200 01 0 00 001032* MOVE T1,NODTBL ;POINT TO NODE TABLE
1189 001056'02 104 00 0 00 000535 TBDEL ;DELETE THE ENTRY
1190 001057'02 320 16 0 00 007130' ERJMP [RETBAD] ;ERROR - HANDLE
1191 001060'02 200 01 0 00 000004 MOVE T1,T4 ;RELEASE THE STRING BLOCK
1192 001061'02 370 00 0 00 000001 SOS T1 ;POINT TO FIRST WORD OF FREE BLOCK
1193 001062'02 260 17 0 00 001017* CALL RELMES ;FREE IT
1194 001063'02 254 00 0 00 001013* RETSKP
1195
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 26
NSPSRV MAC 6-Apr-82 10:58 NSP Initialization
1196 ;NABROK - ROUTINE TO CHECK FOR EXISTENCE OF A NODE
1197
1198 ;ACCEPTS: T1/POINTER TO NODE STRING
1199
1200 ;RETURNS: +1,NODE DOES NOT EXIST
1201 ; +2,NODE EXISTS
1202 ; T1/ADDRESS OF NODTBL ENTRY
1203
1204 001064'02 200 02 0 00 000001 NABROK: MOVE T2,T1 ;MOVE POINTER TO NODE NAME
1205 001065'02 200 01 0 00 001055* MOVE T1,NODTBL ;POINT TO TABLE OF NODES
1206 001066'02 104 00 0 00 000537 TBLUK ;IS IT THERE
1207 001067'02 320 16 0 00 007130' ERJMP [RET] ;ERROR - RETURN
1208 001070'02 607 02 0 00 040000 TXNN T2,TL%EXM ;EXACT MATCH?
1209 001071'02 263 17 0 00 000000 RET ;NO - INDICATE NODE DOES NOT EXIST
1210 001072'02 254 00 0 00 001063* RETSKP ;YES - INDICATE EXISTENCE
1211
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 27
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1212 SUBTTL Routines to Manipulate Logical Link Blocks and Object Tables
1213
1214 RESCD ;CALLED ONLY IN PROCESS CONTEXT
1215
1216 ;ROUTINES USED TO LOCK AND UNLOCK LL TREE
1217
1218 000007'01 LOKLL::
1219 000007'01 336 00 0 00 000000* SKIPN INSKED ;SKED LEVEL?
1220 000010'01 350 00 0 00 000000* NOINT ;PREVENT INTS
1221 000011'01 352 00 0 00 000000* LOCK LLLLCK,<CALL LCKTST> ;LOCK UP THE TREE
1222 000012'01 260 17 0 00 000000*
1223 000013'01 263 17 0 00 000000 RET ;DONE
1224
1225 000014'01 335 00 0 00 000011* ULOKLL::SKIPGE LLLLCK ;NOW LOCKED?
1226 JRST [ BUG(LLLKBD) ;NO, CONFUSION
1227 ;BUG type: BUGCHK, SOFT
1228 ;BUG message: UNLOCK LL LOCK WHEN NOT LOCKED
1229 SALL
1230 000015'01 254 00 0 00 002153' RET]
1231 000016'01 476 00 0 00 000014* UNLOCK LLLLCK
1232 000017'01 336 00 0 00 000007* SKIPN INSKED
1233 000020'01 256 00 0 00 000000* OKINT
1234 000021'01 263 17 0 00 000000 RET
1235
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 28
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1236 ;ROUTINES TO LOCK AND UNLOCK INDIVIDUAL LL BLOCKS
1237
1238 ;LOCK A BLOCK.
1239 ; T1/ BLOCK ADDRESS
1240 ;RETURNS: +1 FAILED. BLOCK ROUTINE IN T1
1241 ; +2 SUCCESS
1242
1243 ;ENTRY POINT IF LLLLCK NOT LOCKED
1244
1245 000022'01 350 00 0 00 000010* BLKLLK::NOINT
1246 LOCK LLLLCK,<JRST [
1247 MOVEI T1,LLLCKT ;BUSY, RETURN TEST
1248 000023'01 352 00 0 00 000016* RET]>
1249 000024'01 254 00 0 00 002155'
1250 000025'01 260 17 0 00 000031' CALL BLKLOK
1251 000026'01 254 00 0 00 000014' CALLRET ULOKLL ;UNLOCK AND GIVE UP
1252 000027'01 260 17 0 00 000014' CALL ULOKLL
1253 000030'01 254 00 0 00 000000* RETSKP
1254
1255 ;ENTRY POINT IF LLLLCK ALREADY LOCKED
1256
1257 000031'01 265 16 0 00 000000* BLKLOK::SAVEAC <T4> ;PRESERVE TEMP AC
1258 ; SKIPGE LLLLCK ;*** TEMP - ENSURE OUTER LOCK ALREADY SET ***
1259 ; JSR BUGCHK
1260 ; SKIPE INSKED ;MAKE SURE ONLY PROPER SCHEDULER CONTEXT
1261 ; SKIPGE FORKX
1262 ; SKIPA
1263 ; JSR BUGCHK ;INSKED WITH FORKX NOT -1 CAUSES CONFUSION
1264 000032'01 200 16 0 01 000001 JE LLRCT,(T1),BLKLK0 ;IF FIRST LOCKER, NO CHECKS NEEDED
1265 000033'01 607 16 0 00 070000
1266 000034'01 254 00 0 00 000040'
1267 000035'01 550 04 0 01 000022 LOAD T4,LLRFK,(T1) ;GET PREVIOUS LOCKER'S ID
1268 000036'01 312 04 0 00 000000* CAME T4,FORKX ;WERE WE PREVIOUS LOCKER
1269 000037'01 254 00 0 00 000047' JRST BLKLK1 ;NO, FAIL RETURNING SCHED TEST
1270 000040'01 205 16 0 00 010000 BLKLK0: INCR LLRCT,(T1) ;OK TO LOCK (EITHER FIRST LOCKER OR LAST WAS US)
1271 000041'01 272 16 0 01 000001
1272 000042'01 200 04 0 00 000036* MOVE T4,FORKX ;GET OUR FORK ID
1273 000043'01 542 04 0 01 000022 STOR T4,LLRFK,(T1) ;STORE OUR ID AS LAST LOCKER
1274 000044'01 336 00 0 00 000017* SKIPN INSKED
1275 000045'01 350 00 0 00 000022* NOINT ;PREVENT INTERRUPT WHILE BLOCK LOCKED
1276 000046'01 254 00 0 00 000030* RETSKP ;DONE, BLOCK NOW LOCKED
1277
1278 ; HERE IF LOCK WILL NOT BE PERMITTED - RETURN A SCHEDULER TEST
1279
1280 000047'01 550 01 0 01 000002 BLKLK1: LOAD T1,LLLNK,(T1) ;GET LL ADDRESS
1281 000050'01 507 00 0 00 000001 HRLS T1 ;TO THE LH
1282 000051'01 541 01 0 00 000326' HRRI T1,CHKLOK ;THE TEST ROUTINE
1283 000052'01 263 17 0 00 000000 RET ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 29
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1284
1285 ;UNLOCK A BLOCK
1286 ; T1/ BLOCK ADDRESS
1287 ;RETURNS: +1 ALWAYS
1288
1289 000053'01 265 16 0 00 000000* BLKULK::SAVEAC <T2> ;BE TRANSPARENT
1290 000054'01 135 02 0 00 002157' LOAD T2,LLRCT,(T1) ;GET LOCK COUNT
1291 000055'01 302 02 0 00 000001 CAIE T2,1 ;OUTERMOST?
1292 JRST [ DECR LLRCT,(T1) ;NO, JUST DECREMENT
1293 000056'01 254 00 0 00 002160' JRST BLKUK1]
1294 000057'01 513 00 0 01 000022 SETZRO LLRFK,(T1) ;LOCK BECOMING CLEAR, CLEAR LAST FORK
1295 000060'01 205 16 0 00 070000 SETZRO LLRCT,(T1)
1296 000061'01 412 16 0 01 000001
1297 000062'01 336 00 0 00 000044* BLKUK1: SKIPN INSKED
1298 000063'01 256 00 0 00 000020* OKINT
1299 000064'01 263 17 0 00 000000 RET
1300
1301 ;SCHED TEST FOR ABOVE
1302
1303 000065'01 331 00 0 00 000023* LLLCKT: SKIPL LLLLCK
1304 000066'01 254 00 0 04 000000 JRST 0(T4) ;STILL BUSY
1305 000067'01 254 00 0 04 000001 JRST 1(T4) ;FREE
1306
1307 SWAPCD
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 30
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1308
1309 ;ROUTINE TO INIT LL ADDRESS BIT TABLE. CALLED AT SYSTEM STARTUP
1310
1311 001073'02 265 16 0 00 000506* LLINIT: ACVAR <W1> ;GET A WORK REGISTER
1312 001074'02 205 05 0 00 000000# MOVSI W1,-MAXLNK ; GET MAX LINK VALUE
1313 001075'02 350 00 0 00 000005 AOS W1 ;SKIP ENTRY 0
1314 001076'02 550 01 0 00 000005 LLINI1: HRRZ T1,W1 ;GET LINK ADDRESS
1315 001077'02 260 17 0 00 001272' CALL FRELNK ;FREE LINK #
1316 001100'02 253 05 0 00 001076' AOBJN W1,LLINI1 ;DO 'EM ALL
1317 001101'02 263 17 0 00 000000 RET ;AND DONE
1318
1319 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 31
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1320 ;LOKPIP - ROUTINE TO LOCK AN ATS DATA DATA OR CONTROL PIPE
1321 ;
1322 ;ACCEPTS IN T3/ ATS PIPE IDENTIFIER
1323 ; CALL LOKPIP
1324 ;RETURNS: +1 FAILED, SCHEDULER TEST IN T1
1325 ; +2 SUCCESS, PROCESS NOINT AND PIPE LOCKED
1326
1327 001102'02 265 16 0 00 000332* LOKPIP::TRVAR <LKPCOD,LKPLLB>
1328 001103'02 000002 000002
1329 001104'02 202 03 0 15 000001 MOVEM T3,LKPCOD ;SAVE ATS ID
1330
1331 ; GET THE ADDRESS OF THE LOGICAL LINK BLOCK
1332
1333 001105'02 260 17 0 00 000000# LLLOCK ;LOCK THE LOGICAL LINK TREE
1334 001106'02 201 01 0 00 001120' MOVEI T1,CHKPIP ;GET COROUTINE TO FIND ATS PIPE
1335 001107'02 476 00 0 00 000002 SETOM T2 ;ANY LINK
1336 001110'02 260 17 0 00 001176' CALL OBJSRC ;GO FIND BLOCK
1337 JRST [ LLLULK ;DOES NOT EXIST
1338 BUG(NSPPWA)
1339 ;BUG type: BUGCHK, HARD
1340 ;BUG message: LOKPIP - Pipe went away
1341 SALL
1342 001111'02 254 00 0 00 007344' RET ] ;UNLOCK THE TREE AND RETURN FAILURE
1343 001112'02 202 01 0 15 000002 MOVEM T1,LKPLLB ;SAVE LOGICAL LINK BLOCK ADDRESS
1344
1345 ; LOCK THE BLOCK
1346
1347 001113'02 200 01 0 15 000002 MOVE T1,LKPLLB ;GET LOGICAL LINK BLOCK ADDRESS
1348 001114'02 260 17 0 00 000000# CALL BLKLOK ;GO LOCK THE LOGICAL LINK BLOCK
1349 JRST [ LLLULK ;CANNOT LOCK IT NOW, UNLOCK THE TREE
1350 001115'02 254 00 0 00 007347' RET ] ;RETURN SCHED TEST
1351 001116'02 260 17 0 00 000000# LLLULK ;BLOCK IS NOW RESERVED. UNLOCK THE TREE
1352 001117'02 254 00 0 00 001072* RETSKP ;DONE, RETURN WITH PIPE LOCKED
1353
1354
1355
1356 ;CHKPIP - COROUTINE TO FIND ATS LINK BLOCK WITH GIVEN ATS DATA PIPE
1357 ;
1358 ;ACCEPTS IN TRVAR LKPCOD/ ATS ID FOR PIPE
1359 ; T1/ ADDRESS OF LINK BLOCK TO CHECK
1360 ; CALL CHKPIP
1361 ;RETURNS: +1 NOT DESIRED BLOCK
1362 ; +2 SUCCESS, FOUND BLOCK WITH REQUESTED ID
1363
1364 001120'02 265 16 0 00 001023* CHKPIP: SAVET ;PRESERVE TERMPORARY AC'S
1365 001121'02 200 16 0 01 000002 JE LLINT,(T1),R ;LOOK AT INTERNAL LINKS ONLY
1366 001122'02 607 16 0 00 004000
1367 001123'02 254 00 0 00 000154*
1368 001124'02 200 02 0 01 000033 LOAD T2,LLDRV,(T1) ;GET DRIVER CORRELATION CODE
1369 001125'02 312 02 0 15 000001 CAME T2,LKPCOD ;DESIRED ATS ID ?
1370 001126'02 263 17 0 00 000000 RET ;NO, RETURN FAILURE
1371 001127'02 254 00 0 00 001117* RETSKP ;YES, RETURN SUCCESS
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 32
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1372 ;ULKPIP - ROUTINE TO UNLOCK AN ATS DATA OR CONTROL PIPE
1373 ;
1374 ;ACCEPTS IN T3/ ATS PIPE IDENTIFIER
1375 ; CALL ULKPIP
1376 ;RETURNS: +1 ALWAYS, WITH PIPE UNLOCKED
1377
1378 001130'02 265 16 0 00 001102* ULKPIP::TRVAR <LKPCOD>
1379 001131'02 000001 000001
1380 001132'02 202 03 0 15 000001 MOVEM T3,LKPCOD ;SAVE ATS ID FOR COROUTINE
1381 001133'02 260 17 0 00 000000# LLLOCK ;LOCK THE LOGICAL LINK TREE
1382 001134'02 201 01 0 00 001120' MOVEI T1,CHKPIP ;GET COROUTINE ADDRESS
1383 001135'02 476 00 0 00 000002 SETOM T2 ;ANY LINK
1384 001136'02 260 17 0 00 001176' CALL OBJSRC ;GO FIND BLOCK
1385 JRST [ LLLULK ;DOES NOT EXIST
1386 BUG(NSPPHV)
1387 ;BUG type: BUGCHK, HARD
1388 ;BUG message: ULKPIP - Pipe has vanished
1389 SALL
1390 001137'02 254 00 0 00 007353' RET ] ;UNLOCK THE TREE AND RETURN FAILURE
1391 001140'02 260 17 0 00 000000# LLLULK ;UNLOCK THE TREE
1392 001141'02 254 00 0 00 000000# CALLRET BLKULK ;UNLOCK PIPE AND RETURN
1393
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 33
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1394 ;ROUTINE TO FIND INDEX INTO LOGICAL LINK TABLES.
1395 ;ACCEPTS: T1/ LOGICAL LINK
1396 ; T2/ FOREIGN LINK I.D. -1 FOR ANY
1397 ; T3/ HOST NAME STRING IF LLLKUH USED
1398 ;RETURNS: +1 FAILED. LINK NOT FOUND
1399 ; T1/ INSERT POINT FOR NEW ENTRY
1400 ; +2 SUCCESS. T1/ ADDRESS OF LINK ENTRY
1401 ; T2/ PREVIOUS NODE ADDRESS
1402 ;PRESERVES T4
1403
1404 RESCD ;NEEDS TO BE RESIDENT
1405
1406 000070'01 476 00 0 00 000003 LLLKUP::SETOM T3 ;NO HOST MATCH IF ENTERED HERE
1407 000071'01 265 16 0 00 000031* LLLKUH: SAVEAC <T4> ;PRESERVE AC
1408 000072'01 265 16 0 00 000000* STKVAR <LASTM,LNKID,LLHO> ;REMEMBER INSERT POINT
1409 000073'01 000003 000003
1410 000074'01 202 03 0 17 777774 MOVEM T3,LLHO ;SAVE HOST STRING POINTER
1411 000075'01 402 00 0 17 777776 SETZM LASTM ;NO INSERT FOUND YET
1412 000076'01 202 01 0 17 777775 MOVEM T1,LNKID ;SAVE DESIRED ADDRESS
1413 000077'01 200 01 0 00 000000* MOVE T1,LLHEAD ;GET HEAD OF TREE
1414 000100'01 322 01 0 00 000122' LLLKU1: JUMPE T1,LLFAIL ;NO THERE. ERGO, NOT FOUND
1415 000101'01 550 03 0 01 000002 LOAD T3,LLLNK,(T1) ;GET THE LINK I.D.
1416 000102'01 312 03 0 17 777775 CAME T3,LNKID ;IS THIS IT?
1417 JRST [ MOVEM T1,LASTM ;REMEMBER THIS AS INSERT POINT
1418 CAMG T3,LNKID ;NEED TO GO UP OR DOWN?
1419 JRST [ LOAD T1,LLUPL,(T1) ;GET UP POINTER
1420 JRST LLLKU1] ;AND GO SEE ABOUT IT
1421 LOAD T1,LLDWN,(T1) ;DOWN. GET DOWN POINTER
1422 000103'01 254 00 0 00 002167' JRST LLLKU1] ;AND GO SEE ABOUT IT
1423 000104'01 321 02 0 00 000110' JUMPL T2,LLLKU2 ;IF NO HOST CHECK, FOUND IT
1424 000105'01 135 16 0 00 002174' OPSTR <CAME T2,>,LLHLK,(T1) ;DOES THE HOST MATCH?
1425 000106'01 312 02 0 00 000016
1426 000107'01 254 00 0 00 002175' RETBAD (NSPX2) ;NO. GIVE ERROR
1427 000110'01 200 02 0 17 777776 LLLKU2: MOVE T2,LASTM ;RETURN PREVIOUS NODE
1428 000111'01 337 00 0 17 777774 SKIPG LLHO ;WANT HOST MATCH?
1429 000112'01 254 00 0 00 000046* RETSKP ;NO. ALL DONE THEN
1430 000113'01 200 02 0 01 000014 LOAD T2,LLHST,(T1) ;GET HOST STRING
1431 000114'01 250 01 0 17 777774 EXCH T1,LLHO ;SAVE LINK. GET SOURCE HOST NAME
1432 000115'01 260 17 0 00 000000* CALL CMPSTR ;DO COMPARE
1433 000116'01 254 00 0 00 002175' RETBAD (NSPX2) ;NO MATCH
1434 000117'01 200 01 0 17 777774 MOVE T1,LLHO ;A MATCH. GET LINK
1435 000120'01 200 02 0 17 777776 MOVE T2,LASTM ;GET PREVIOUS
1436 000121'01 254 00 0 00 000112* RETSKP ;AND DONE
1437
1438 ;COULDN'T FIND REQUIRED LINK. RETURN INSERT POINT
1439
1440 000122'01 200 01 0 17 777776 LLFAIL: MOVE T1,LASTM ;FOUND AN INSERT POINT?
1441 000123'01 263 17 0 00 000000 RET ;AND RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 34
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1442
1443 ;ALL OF THIS CODE IS UNSUITABLE FOR EXTENDED ADDRESSING. SINCE
1444 ;OBJECT NAMES CAN RESIDE IN SWAPPABLE FREE SPACE, OBJTBL
1445 ;NEEDS TO HAVE 36 BIT ADDRESSES POINTING TO THE STRINGS. ALSO,
1446 ;A REPLACEMENT FOR TBLUK IS NEEDED WHICH WILL DO LOOK UP, DELETE
1447 ;AND ADD ENTRIES TO SUCH AN "EXTENDED" TABLE. FOR THE TIME BEING,
1448 ;HOWEVER, THE CODE AS WRITTEN WILL SUFFICE.
1449
1450 ;ROUTINE TO INITIALIZE THE OBJECT TABLE FOR THE MONITOR.
1451
1452 SWAPCD
1453
1454 001142'02 200 01 0 00 007356' OBJINI: MOVE T1,[OBJPRO,,OBJTBL]
1455 001143'02 251 01 0 00 000000# BLT T1,OBJTBL+OBJENT ;INIT THE TABLE
1456 001144'02 263 17 0 00 000000 RET ;AND DONE
1457
1458 ;THIS TABLE SHOULD BE MOVED TO STG SOMEDAY*****************
1459 ;PROTOTYPE OBJECT TABLE
1460
1461 001145'02 000005 000000* OBJPRO: OBJENT,,OBJMAX
1462 001146'02 007357' 000003 [ASCIZ /ATS/],,3
1463 001147'02 007360' 000021 [ASCIZ /FAL/],,21
1464 001150'02 007361' 000023 [ASCIZ /NCU/],,23
1465 001151'02 007362' 000007 [ASCIZ /NRM/],,7
1466 001152'02 007363' 000000 [ASCIZ /TASK/],,0
1467 000005 OBJENT==.-OBJPRO-1 ;# OF ENTRIES
1468
1469 ;ROUTINE TO LOOK UP AN OBJECT NAME IN THE SYSTEM OBJECT TABLES
1470 ;ACCEPTS: T1/ POINTER TO TEST OBJECT NAME
1471 ;RETURNS: +1 NOT FOUND. NO SUCH OBJECT
1472 ; +2 OBJECT FOUND
1473 ; T1/ OBJECT NUMBER
1474
1475 001153'02 265 16 0 00 000765* OBJLOK::ASUBR <OBJPTR> ;SAVE POINTER
1476 001154'02 200 02 0 00 000001 MOVE T2,T1 ;COPY POINTER
1477 001155'02 200 01 0 00 007364' MOVE T1,[OBJTBL] ;GET THE OBJECT TABLE
1478 001156'02 104 00 0 00 000537 TBLUK ;LOOK UP THE OBJECT
1479 001157'02 607 02 0 00 040000 TXNN T2,TL%EXM ;FOUND IT?
1480 001160'02 254 00 0 00 001163' JRST OBJLO1 ;NO. GO CHECK FOR NUMBER
1481 001161'02 550 01 0 01 000000 HRRZ T1,0(T1) ;YES. GET OBJECT NUMBER
1482 001162'02 254 00 0 00 001127* RETSKP ;AND RETURN WITH IT
1483
1484 ;TBLUK DIDNT'T FIND IT. SEE IF IT IS NUMERIC
1485
1486 001163'02 400 01 0 00 000000 OBJLO1: SETZ T1, ;GET AN ACCUMULATOR
1487 001164'02 134 02 0 15 000001 OBJLO2: ILDB T2,OBJPTR ;GET NEXT BYTE
1488 001165'02 322 02 0 00 001162* JUMPE T2,RSKP ;IF AT THE END, GOOD NUMBER
1489 001166'02 301 02 0 00 000060 CAIL T2,"0" ;A VALID NUMBER
1490 001167'02 303 02 0 00 000071 CAILE T2,"9" ;STILL?
1491 001170'02 263 17 0 00 000000 RET ;NO. NOT A VALID NUMBER
1492 001171'02 221 01 0 00 000012 IMULI T1,^D10 ;YES. ADJUST ACCUMULATOR
1493 001172'02 271 01 0 02 777720 ADDI T1,-"0"(T2) ;AND ADD IN NEW QUANTITY
1494 001173'02 303 01 0 00 001145* CAILE T1,OBJMAX ;STILL VALID?
1495 001174'02 263 17 0 00 000000 RET ;NO. GIVE AN ERROR
1496 001175'02 254 00 0 00 001164' JRST OBJLO2 ;GO DO ALL OF IT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 35
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1497
1498 ;ROUTINE TO FIND A "LISTENING" OR ACTIVE OBJECT IN THE LOGICAL
1499 ;LINK TABLE. WILL ALSO DO SCAN OF ENTIRE TREE
1500 ;ACCEPTS:
1501 ; T1/ COUROUTINE ADDRESS TO CALL WHEN OBJECT IS FOUND
1502 ; T2/ 0 IF OBJECT MAY BE LISTENING OR ACTIVE
1503 ; 1 IF OBJECT MUST BE LISTENING ONLY
1504 ; -1 IF ANY LINK IS ACCEPTBLE
1505 ;RETURNS:
1506 ; +1 OBJECT NOT FOUND
1507 ; +2 OBJECT FOUND.
1508 ; T1/ POINTER INTO LINK TABLE FOR THIS OBJECT
1509 ; T2/ LINK I.D. OF THE OBJECT
1510
1511 ;THE COROUTINE IS CALLED TO CHECK IF THE OBJECT IS THE ONE
1512 ;WANTED. THE COROUTINES ARE CALLED WITH THE FOLLOWING ARGS:
1513 ; T1/ ADDRESS OF LOGICAL LINK ENTRY
1514 ; ALL OF THE P AND Q REGISTERS INTACT
1515 ;THE COROUTINES RETURN AS FOLLOWS:
1516 ; +1 DON'T WANT THIS OBJECT
1517 ; +2 THIS IS THE ONE
1518 ;THE COROUTINE MUST PRESERVE ALL TEMPORARY AC'S
1519
1520 001176'02 402 00 0 00 000000* OBJSRC::SETZM GUDOBJ ;INIT "GOOD OBJECT" FLAG
1521 001177'02 120 03 0 00 000001 DMOVE T3,T1 ;SAVE ARGS
1522 001200'02 336 01 0 00 000000* SKIPN T1,LLHEAD ;ANY LINKS?
1523 JRST [MOVEI T2,.DCX4 ;NO, SAY "DESTINATION PROCESS
1524 001201'02 254 00 0 00 007365' RET] ; DOES NOT EXIST"
1525 001202'02 261 17 0 00 007220' PUSH P,[0] ;PUT A "FENCE" ON THE STACK
1526 001203'02 261 17 0 00 000001 OBJSND: PUSH P,T1 ;SAVE THIS ONE
1527 001204'02 321 04 0 00 001210' JUMPL T4,OBJSN2 ;IF ANY MATCH, GO HANDLE THIS ONE
1528 001205'02 200 16 0 01 000002 JE LLFOB,(T1),OBJSNO ;IF NOT OBJECT, CAN'T BE A MATCH
1529 001206'02 607 16 0 00 000001
1530 001207'02 254 00 0 00 001214'
1531 001210'02 322 03 0 00 001223' OBJSN2: JUMPE T3,OBJSFD ;IF NO COROUTINE, DONE
1532 001211'02 260 17 0 03 000000 CALL 0(T3) ;CALL THE COROUTINE
1533 001212'02 334 00 0 00 000000 SKIPA ;NOT THE ONE
1534 001213'02 254 00 0 00 001223' JRST OBJSFD ;FOUND IT
1535 001214'02 135 01 0 00 007367' OBJSNO: LOAD T1,LLUPL,(T1) ;NOT THE ONE. GET THE UP POINTER
1536 001215'02 326 01 0 00 001203' JUMPN T1,OBJSND ;HAVE ONE. GO LOOK AT IT
1537 001216'02 262 17 0 00 000001 OBJSN1: POP P,T1 ;NOT FOUND. GET PREVIOUS ONE
1538 JUMPE T1,[MOVEI T2,.DCX4 ;NO MORE, SAY "DESTINATION PROCESS
1539 SKIPE GUDOBJ ; DOES NOT EXIST"
1540 MOVEI T2,.DCX33 ;OR "TOO MANY CONNECTIONS"
1541 001217'02 322 01 0 00 007370' RET]
1542 001220'02 135 01 0 00 007374' LOAD T1,LLDWN,(T1) ;GET DOWN SIDE
1543 001221'02 326 01 0 00 001203' JUMPN T1,OBJSND ;IF HAVE ONE, GO LOOK AT IT
1544 001222'02 254 00 0 00 001216' JRST OBJSN1 ;IF NOT, KEEP POPING
1545
1546 ;FOUND THE OBJECT
1547
1548 001223'02 476 00 0 00 001176* OBJSFD: SETOM GUDOBJ ;FOUND THE RIGHT SERVER
1549 JUMPG T4,[LOAD T2,LLSTA,(T1) ;GET LL STATE
1550 CAIE T2,LLSLIS ;IS IT LISTENING?
1551 JRST OBJSNO ;NO, TRY AGAIN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 35-1
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1552 001224'02 327 04 0 00 007376' JRST .+1] ;YES, EVERYTHING OK
1553 001225'02 262 17 0 00 000002 POP P,T2 ;MUST CLEAN UP THE STACK
1554 001226'02 326 02 0 00 001225' JUMPN T2,.-1 ;KEEP CLEANING
1555 001227'02 550 02 0 01 000002 LOAD T2,LLLNK,(T1) ;GET LOGICAL LINK I.D.
1556 001230'02 254 00 0 00 001165* RETSKP ;DONE. RETURN GOOD
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 36
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1557
1558 ;ROUTINE TO GET A UNIQUE TASK NAME.
1559 ;ACCEPTS: T1/ LL POINTER
1560 ; LL TREE MUST BE LOCKED
1561 ;RETURNS: +1 ALWAYS
1562 ; LLTSK FILLED IN WITH NAME
1563 ;PRESERVES T1
1564
1565 001231'02 265 16 0 00 001130* GETTSK: TRVAR <LLADDR,TSKBLK>
1566 001232'02 000002 000002
1567 001233'02 202 01 0 15 000001 MOVEM T1,LLADDR ;SAVE LL BLOCK ADDRESS
1568 001234'02 201 01 0 00 000003 MOVEI T1,3 ;NEED A BLOCK OF THIS SIZE
1569 001235'02 260 17 0 00 001300' CALL GETBLK ;GO GET A BLOCK
1570 001236'02 263 17 0 00 000000 RET ;NO MORE SPACE
1571 001237'02 202 01 0 15 000002 MOVEM T1,TSKBLK ;SAVE ADDRESS
1572 001240'02 505 01 0 00 440700 GETTS1: HRLI T1,(<POINT 7,>) ;MAKE A BYTE POINTER
1573 001241'02 350 02 0 00 000000* AOS T2,LASTSK ;GET A NUMBER FOR THE TASK NAME
1574 001242'02 201 03 0 00 000010 MOVEI T3,10 ;CONVERT OCTAL
1575 001243'02 104 00 0 00 000224 NOUT ;MOVE NUMBER
1576 001244'02 255 00 0 00 000000 JFCL ;WILL WORK
1577 001245'02 415 01 0 00 001253' XMOVEI T1,TSKLOK ;MAKE SURE IS UNIQUE
1578 001246'02 476 00 0 00 000002 SETOM T2 ;ANY LINK
1579 001247'02 260 17 0 00 001176' CALL OBJSRC ;GO LOOK FOR A MATCH
1580 JRST [ MOVE T1,LLADDR
1581 MOVE T2,TSKBLK ;GET BLOCK ADDRESS
1582 STOR T2,LLTSK,(T1)
1583 001250'02 254 00 0 00 007403' RETSKP] ;AND DONE
1584 001251'02 200 01 0 15 000002 MOVE T1,TSKBLK ;FOUND IT
1585 001252'02 254 00 0 00 001240' JRST GETTS1 ;TRY AGAIN
1586
1587 ;COROUTINE TO CHECK FOR TASK MATCH
1588
1589 001253'02 265 16 0 00 001120* TSKLOK: SAVET ;SAVE ALL TEMPS
1590 001254'02 135 02 0 00 007402' LOAD T2,LLTSK,(T1) ;GET THIS ONE'S ADDRESS
1591 001255'02 322 02 0 00 001123* JUMPE T2,R ;IF NONE, CAN'T BE IT
1592 001256'02 200 01 0 15 000002 MOVE T1,TSKBLK ;GET BLOCK ADDRESS
1593 001257'02 254 00 0 00 000000* CALLRET CMPSTR ;GO DO THE COMPARE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 37
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1594
1595 ;COLLECTION OF UTILITIES
1596
1597 ;MOVE ONE STRING TO ANOTHER.
1598 ;ACCEPTS: T1/ DEST STRING BLOCK
1599 ; T2/ SOURCE STRIGN BLOCK
1600 ; T3/ COUNT OR -1
1601 ;RETURNS: +1 ALWAYS.
1602 ;ALL REGISTERS PRESERVED
1603
1604 001260'02 265 16 0 00 001253* MOVSTR::SAVET ;SAVE ALL TEMPS
1605 001261'02 265 16 0 00 000000* ACVAR <W1,W2> ;GET SOME WORK REGS
1606 001262'02 200 05 0 00 007407' MOVE W1,[POINT 7,0(T1)]
1607 001263'02 200 06 0 00 007410' MOVE W2,[POINT 7,0(T2)] ;SET UP ARGS
1608 001264'02 134 04 0 00 000006 MOVST0: ILDB T4,W2 ;GET NEXT BYTE
1609 001265'02 136 04 0 00 000005 IDPB T4,W1 ;STASH IT
1610 001266'02 322 04 0 00 001255* JUMPE T4,R ;IF NULL, ALL DONE
1611 001267'02 321 03 0 00 001264' JUMPL T3,MOVST0 ;IF NO COUNT, KEEP GOING
1612 001270'02 367 03 0 00 001264' SOJG T3,MOVST0 ;MORE IN THE COUNT?
1613 001271'02 263 17 0 00 000000 RET ;NO. ALL DONE
1614
1615 ENDAV. ;END ACVAR
1616
1617 ;ROUTINE TO "FREE" A LL ADDRESS.
1618 ;ACCEPTS: T1/ LL ADDRESS TO FREE
1619 ;RETURNS: +1 ALWAYS
1620
1621 001272'02 405 01 0 00 000000* FRELNK: ANDI T1,MAXLNK ;ISOLATE LOCAL INDEX
1622 001273'02 231 01 0 00 000044 IDIVI T1,44 ;COMPUTE WORD AND OFFSET
1623 001274'02 270 01 0 00 007411' ADD T1,[LLBITS] ;GET BIT TABLE OFFSET
1624 001275'02 200 02 0 02 000000* MOVE T2,BITS(T2) ;GET A BIT
1625 001276'02 436 02 0 01 000000 IORM T2,0(T1) ;TURN OF THE BIT
1626 001277'02 263 17 0 00 000000 RET ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 38
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1627
1628 ;ROUTINES TO GET AND RETURN SWAPPABLE FREE SPACE
1629
1630 ;ROUTINE TO GET A BLOCK FROM THE LL STRING SPACE POOL
1631 ;ACCEPTS: T1/ SIZE TO GET
1632 ;RETURNS: +1 FAILED. T1/ERROR CODE
1633 ; +2 SUCCESS T1/ BLOCK ADDRESS
1634
1635 001300'02 201 02 0 01 000001 GETBLK: MOVEI T2,1(T1) ;ACCOUNT FOR HEADER
1636 001301'02 270 02 0 00 000000* ADD T2,BLKASG ;COMPUTE AMOUNT THIS WOULD MAKE
1637 001302'02 303 02 0 00 000000* CAILE T2,MAXBLK ;WITHIN BOUNDS?
1638 001303'02 254 00 0 00 007412' RETBAD (MONX06) ;NO. INSUFFICIENT RESOURCES - NO SWAPPABLE FREE SPACE
1639 001304'02 350 00 0 00 000001 AOS T1 ;GET SPACE +1
1640 001305'02 260 17 0 00 000770* CALL ASGSWP ;GET SOME SPACE
1641 001306'02 263 17 0 00 000000 RETBAD ;FAILED. GIVE IT UP
1642 001307'02 550 02 0 01 000000 HRRZ T2,0(T1) ;GET COUNT ASSIGNED
1643 001310'02 272 02 0 00 001301* ADDM T2,BLKASG ;ACCOUNT FOR IT
1644 001311'02 350 00 0 00 000001 AOS T1 ;POINT TO FIRST USEFUL BLOCK
1645 001312'02 254 00 0 00 001230* RETSKP ;AND GOOD
1646
1647 ;ROUTINE TO RETURN A STRING BLOCK
1648 ;ACCEPTS: T1/ ADDRESS OF FIRST DATA LOCATION (HEADER+1)
1649 ;RETURNS: +1 ALWAYS
1650
1651 001313'02 370 00 0 00 000001 RELBLK: SOS T1 ;POINT TO HEADER
1652 001314'02 550 02 0 01 000000 HRRZ T2,0(T1) ;GET WORDS IN THIS BLOCK
1653 001315'02 250 02 0 00 001310* EXCH T2,BLKASG
1654 001316'02 276 02 0 00 001315* SUBM T2,BLKASG ;COMPUTE NEW COUNT
1655 001317'02 550 02 0 01 000000 HRRZ T2,0(T1) ;GET SIZE OF THE BLOCK AGAIN
1656 001320'02 254 00 0 00 000000* CALLRET RELSWP ;RELEASE THE BLOCK
1657
1658 ;ROUTINE TO GET A RESIDENT FREE SPACE BLOCK
1659 ;ACCEPTS: T1/ SIZE REQUIRED
1660
1661 RESCD
1662
1663 000124'01 505 01 0 00 000000* GETRES::HRLI T1,.RESP3 ;IN PROCESS CONTEXT
1664 000125'01 332 00 0 00 000062* SKIPE INSKED ;SKED CONTEXT?
1665 000126'01 505 01 0 00 000000* HRLI T1,.RESP2 ;YES, NO PAGE FAULTS PLEASE
1666 000127'01 200 02 0 00 002177' MOVE T2,[RS%SE0!.RESNP] ;FROM THE NETWORK
1667 000130'01 260 17 0 00 000000* CALL ASGRES ;GET SOME SPACE
1668 000131'01 263 17 0 00 000000 RETBAD() ;COULDN'T
1669 000132'01 254 00 0 00 000121* RETSKP ;GOT IT
1670
1671 SWAPCD
1672
1673 ;ROUTINE TO MOVE A STRING FROM JSB FREE SPACE TO SWAPPABLE FREE SPACE.
1674 ;ACCEPTS: T1/ DESTINATION BLOCK ADDRESS
1675 ; T2/ SP TO JSB FREE SPACE
1676 ; T3/ COUNT
1677 ;CLOBBERS ALL TEMPS
1678
1679 001321'02 265 16 0 00 001024* MOVST1::STKVAR <MVSPTR>
1680 001322'02 000001 000001
1681 001323'02 200 04 0 00 007407' MOVE T4,[POINT 7,0(T1)] ;FORM STRING POINTER
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 38-1
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate Logical Link Blocks and Object Tables
1682 001324'02 202 04 0 17 777776 MOVEM T4,MVSPTR ;SAVE POINTER
1683 001325'02 134 04 0 00 000002 MOVST2: ILDB T4,T2 ;GET A BYTE
1684 001326'02 136 04 0 17 777776 IDPB T4,MVSPTR ;STORE IT
1685 001327'02 367 03 0 00 001325' SOJG T3,MOVST2 ;DO ALL BYTES
1686 001330'02 263 17 0 00 000000 RET ;DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 39
NSPSRV MAC 6-Apr-82 10:58 Logical Link Creation
1687 SUBTTL Logical Link Creation
1688
1689 ; ROUTINES TO SET INPUT/OUTPUT FLAGS IN LOGICAL LINK BLOCKS
1690 ;
1691 ;ACCEPTS IN T1/ LOGICAL LINK BLOCK ADDRESS
1692 ; CALL SETOPI/SETOPW
1693 ;RETURNS: +1 ALWAYS
1694
1695 001331'02 205 16 0 00 000400 SETOPI::SETONE LLOPI,(T1) ;SET INPUT FLAG
1696 001332'02 436 16 0 01 000002
1697 001333'02 263 17 0 00 000000 RET ;DONE, RETURN
1698
1699
1700 001334'02 205 16 0 00 000200 SETOPW::SETONE LLOPW,(T1) ;SET OUTPUT FLAG
1701 001335'02 436 16 0 01 000002
1702 001336'02 263 17 0 00 000000 RET ;DONE, RETURN
1703
1704
1705 ; ROUTINES TO TEST THE DIRECTION OF I/O
1706 ;
1707 ;ACCEPTS IN T1/ LOGICAL LINK BLOCK ADDRESS
1708
1709 001337'02 200 16 0 01 000010 SKPFLO::JE LLFLO,(T1),R ;NON-SKIP IF FLOW NOT FROM FILE-SYSTEM
1710 001340'02 607 16 0 00 020000
1711 001341'02 254 00 0 00 001266*
1712 001342'02 254 00 0 00 001312* RETSKP ;SKIP IF FLOW IS FROM THE FILE-SYSTEM
1713
1714
1715 001343'02 200 16 0 01 000010 SKPFLI::JE LLFLI,(T1),R ;NON-SKIP IF FLOW NOT TO THE FILE-SYSTEM
1716 001344'02 607 16 0 00 040000
1717 001345'02 254 00 0 00 001341*
1718 001346'02 254 00 0 00 001342* RETSKP ;SKIP if FLOW IS TO THE FILE-SYSTEM
1719
1720
1721 ; ROUTINES TO SET/CLEAR DIRECTION-OF-FLOW BITS
1722
1723 001347'02 205 16 0 00 020000 CLRFLO::SETZRO LLFLO,(T1) ;SWITCH FLOW TO BE "TO THE NETWORK"
1724 001350'02 412 16 0 01 000010
1725 001351'02 263 17 0 00 000000 RET ;DONE, RETURN
1726
1727 001352'02 205 16 0 00 020000 SETFLO::SETONE LLFLO,(T1) ;SWITCH FLOW TO BE "FROM FILE-SYSTEM"
1728 001353'02 436 16 0 01 000010
1729 001354'02 263 17 0 00 000000 RET ;DONE, RETURN
1730
1731
1732 ;GETBSZ - ROUTINE TO OBTAIN THE BYTE SIZE FOR A LOGICAL LINK
1733 ;
1734 ;ACCEPTS IN T1/ LOGICAL LINK BLOCK ADDRESS
1735 ; CALL GETBSZ
1736 ;RETURNS: +1 ALWAYS, WITH T3/ BYTE SIZE
1737 ;
1738 ; PRESERVES LOGICAL LINK BLOCK ADDRESS IN T1
1739
1740 001355'02 135 03 0 00 007414' GETBSZ::LOAD T3,LLBSZ,(T1) ;GET BYTE SIZE
1741 001356'02 263 17 0 00 000000 RET ;DONE, RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 39-1
NSPSRV MAC 6-Apr-82 10:58 Logical Link Creation
1742
1743
1744 ;GETSTA - ROUTINE TO RETURN CURRENT STATE OF A LOGICAL LINK
1745 ;
1746 ;ACCEPTS IN T1/ LOGICAL LINK BLOCK ADDRESS
1747 ; CALL GETSTA
1748 ;RETURNS: +1 ALWAYS, WITH T2/ LINK STATE
1749 ;
1750 ; PRESERVES LOGICAL LINK BLOCK ADDRESS IN T1
1751
1752 001357'02 135 02 0 00 007375' GETSTA::LOAD T2,LLSTA,(T1) ;GET CURRENT STATE
1753 001360'02 263 17 0 00 000000 RET
1754
1755
1756
1757 ;SETEOM - ROUTINE TO SET "END-OF-MESSAGE-NEEDED" FLAG FOR A LOGICAL LINK
1758 ;
1759 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
1760 ; CALL SETEOM
1761 ;RETURNS: +1 ALWAYS
1762
1763 001361'02 205 16 0 00 000002 SETEOM::SETONE LLFEM,(T1) ;SAY SHOULD GET EOM ON OUTPUT
1764 001362'02 436 16 0 01 000002
1765 001363'02 263 17 0 00 000000 RET ;DONE, RETURN
1766
1767
1768 ;GETMXS - ROUTINE TO GET MAX SEGMENT SIZE
1769 ;
1770 ;ACCEPTS IN T1/ LOGICAL LINK BLOCK ADDRESS
1771
1772
1773 001364'02 135 04 0 00 007415' GETMXS::LOAD T4,LLSWG,(T1) ;GET MAX SEG SIZE
1774 001365'02 263 17 0 00 000000 RET ;DONE, RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 40
NSPSRV MAC 6-Apr-82 10:58 Logical Link Creation
1775 ;WORK ROUTINES TO OPEN DCN: OR SRV:
1776 ;
1777 ; OPNDWK - OPEN A FILESYSTEM DCN: LINK
1778 ; OPNSWK - OPEN A FILESYSTEM SRV: LINK
1779 ; OPNIWK - OPEN AN INTERNAL LINK
1780 ;
1781 ;ACCEPTS IN T1/ ADDRESS OF TASK STRING
1782 ; T2/ BYTE SIZE OF OPEN
1783 ; CALL OPNSWK/OPNDWK
1784 ;RETURNS: +1 FAILED, ERROR CODE IN T1
1785 ; +2 SUCCESS, WITH T1/ ADDRESS OF LOGICAL LINK BLOCK
1786
1787 001366'02 201 03 0 00 000033 OPNDWK::MOVEI T3,LKSIZE ;BASIC LL BLOCK SIZE
1788 001367'02 254 00 0 00 001374' JRST OPNWRK ;CALL WORK ROUTINE
1789 001370'02 201 03 0 00 000041 OPNSWK::MOVEI T3,LKSIZE+LKOBJS ;BASIC SIZE PLUS WORDS NEEDED FOR SRV: LINKS
1790 001371'02 254 00 0 00 001374' JRST OPNWRK ;CALL WORK ROUTINE
1791 001372'02 201 03 0 00 000044 OPNIWK::MOVEI T3,LKSIZE+LKISIZ ;BASIC SIZE PLUS WORDS NEEDED FOR INTERNAL LINKS
1792 001373'02 254 00 0 00 001374' JRST OPNWRK ;GO DO THE OPEN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 41
NSPSRV MAC 6-Apr-82 10:58 Logical Link Creation
1793 ;OPNWRK - WORK ROUTINE TO OPEN A LOGICAL LINK
1794 ;
1795 ;ACCEPTS IN T1/ ADDRESS OF TASK STRING
1796 ; T2/ BYTE SIZE OF OPEN
1797 ; T3/ SIZE OF LOGICAL LINK BLOCK NEEDED
1798 ; CALL OPNWRK
1799 ;RETURNS: +1 FAILED, ERROR CODE IN T1
1800 ; +2 SUCCESS, WITH T1/ ADDRESS OF LOGICAL LINK BLOCK
1801
1802 001374'02 265 16 0 00 001231* OPNWRK: TRVAR <SAVBLK,SAVERR,SAVSTR,SAVBSZ>
1803 001375'02 000004 000004
1804 ; NOTE: TRVAR IS NEEDED HERE INSTEAD OF STKVAR
1805 ; BECAUSE COROUTINES ACCESS THE VARIABLES.
1806 001376'02 202 01 0 15 000003 MOVEM T1,SAVSTR ;SAVE STRING BLOCK ADDRESS
1807 001377'02 202 02 0 15 000004 MOVEM T2,SAVBSZ ;SAVE BYTE SIZE
1808 001400'02 205 02 0 00 200000 MOVX T2,FRKRUN ;SEE IF NETWORK IS INTIALIZED
1809 001401'02 616 02 0 00 000632* TDNN T2,MCBDTE ;IS IT?
1810 001402'02 254 00 0 00 007416' RETBAD (DCNX11) ;NO. ILLEGAL TO USE IT THEN
1811 001403'02 200 01 0 00 000003 MOVE T1,T3 ;COPY # OF ADDITIONAL WORDS NEEDED FOR LL BLOCK
1812 001404'02 505 01 0 00 000000* HRLI T1,.RESP3 ;IN PROCESS CONTEXT
1813 001405'02 201 02 0 00 000000* MOVEI T2,.RESNP ;FROM THE NETWORK POOL
1814 001406'02 260 17 0 00 000000* CALL ASGRES ;GET A LL BLOCK
1815 001407'02 263 17 0 00 000000 RET ;COULDN'T. MUST FAIL
1816 001410'02 202 01 0 15 000001 MOVEM T1,SAVBLK
1817 001411'02 201 01 0 00 000005 MOVEI T1,OPTSIZ ;SIZE OF OPTDATA BLOCK
1818 001412'02 260 17 0 00 001300' CALL GETBLK ;GET A BLOCK OF PROPER SIZE
1819 001413'02 254 00 0 00 001503' JRST RLBLK ;COULDN'T. FREE BLOCK
1820 001414'02 200 02 0 15 000001 MOVE T2,SAVBLK ;GET BACK BLOCK ADDRESS
1821 001415'02 137 01 0 00 007420' STOR T1,LLOPT,(T2) ;SAVE BLOCK ADDRESS
1822 001416'02 200 01 0 00 000002 MOVE T1,T2 ;GET LL BLOCK ADDRESS
1823 001417'02 260 17 0 00 000000# LLLOCK ;LOCK UP THE TREE
1824 001420'02 260 17 0 00 001710' CALL MAKLNK ;GET LL ADDRESS AND INSERT ENTRY
1825 JRST [ MOVEM T1,SAVERR ;SAVE ERROR CODE
1826 LLLULK
1827 MOVE T1,SAVBLK ;GET BLOCK
1828 LOAD T1,LLOPT,(T1)
1829 CALL RELBLK ;FREE UP OPT BLOCK
1830 001421'02 254 00 0 00 007422' JRST RLBLK1] ;AND GET RID OF LL BLOCK
1831 001422'02 260 17 0 00 000000# LLLULK ;RELEASE LOCK
1832 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 42
NSPSRV MAC 6-Apr-82 10:58 Logical Link Creation
1833
1834 ;OPEN CONTINUED. CHECK QUOTA TO SEE IF CAN MAKE THIS LINK
1835
1836 001423'02 350 00 0 00 000373* INCR DCCUR ;INCREMENT COUNT
1837 001424'02 550 02 0 00 001423* LOAD T2,DCCUR ;GET IT
1838 001425'02 554 04 0 00 001424* LOAD T4,DCMAX ;GET MAX COUNT ALLOWED
1839 001426'02 313 02 0 00 000004 CAMLE T2,T4 ;NO. ALLOWED TO MAKE ANOTHER LINK?
1840 JRST [ MOVE T3,CAPENB ;NO, SEE IF CAPS
1841 TXNE T3,SC%WHL!SC%OPR
1842 JRST .+1 ;OK
1843 MOVEI T1,DCNX5 ;NO. GIVE ERROR
1844 001427'02 254 00 0 00 007430' JRST OPNFAI] ;AND GO FAIL
1845 001430'02 200 02 0 15 000001 MOVE T2,SAVBLK ;GET LL BLOCK ADDRESS
1846 001431'02 201 03 0 02 000025 MOVEI T3,LLHNM1(T2) ;GET PLACE TO PUT REMOTE HOST NAME STRING
1847 001432'02 202 03 0 02 000014 STOR T3,LLHST,(T2) ;SET IT
1848 001433'02 201 01 0 00 000005 MOVEI T1,<MAXDSC+4>/4 ;A BLOCK FOR REMOTE DESCRIPTOR
1849 001434'02 260 17 0 00 001300' CALL GETBLK ;GET ONE
1850 001435'02 254 00 0 00 001454' JRST OPNFAI ;COULDN'T
1851 001436'02 200 02 0 15 000001 MOVE T2,SAVBLK ;GET LL BLOCK
1852 001437'02 137 01 0 00 007435' STOR T1,LLFDS,(T2) ;SAVE BLOCK
1853 001440'02 200 01 0 15 000003 MOVE T1,SAVSTR ;GET POINTER TO EXTENSION BLOCK
1854 001441'02 322 01 0 00 001510' JUMPE T1,OPNDFT ;NONE. GO DEFAULT TASK NAME
1855 001442'02 135 02 0 00 007436' LDB T2,[POINT 7,(T1),6] ;GET FIRST BYTE
1856 001443'02 322 02 0 00 001510' JUMPE T2,OPNDFT ;IF NULL EXTENSION. GO DEFAULT TASK NAME
1857 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 43
NSPSRV MAC 6-Apr-82 10:58 Logical Link Creation
1858
1859 ;USER SPECIFIED EXTENSION. CHECK FOR DUPLICATE
1860
1861 001444'02 505 01 0 00 440700 HRLI T1,(POINT 7,) ;FORM POINTER TO THE STRING
1862 001445'02 201 03 0 00 000047 MOVX T3,MAXLC ;GET MAX SIZE OF EXTENSION
1863 001446'02 260 17 0 00 000146' CALL CMPLEN ;COMPUTE ACTUAL NUMBER OF BYTES IN STRING
1864 001447'02 231 03 0 00 000005 IDIVI T3,5 ;COMPUTE NUMBER OF WORDS IN STRING
1865 001450'02 332 00 0 00 000004 SKIPE T4 ;AND ROUND RESULT UP
1866 001451'02 271 03 0 00 000001 ADDI T3,1 ; IF NEEDED
1867 001452'02 200 01 0 00 000003 MOVE T1,T3 ;COPY SIZE OF STRING
1868 001453'02 260 17 0 00 001300' CALL GETBLK ;GET A BLOCK TO HOLD IT
1869 OPNFAI: JRST [ LLLOCK ;LOCK UP TREE
1870 EXCH T1,SAVBLK ;GET BLOCK ADDRESS
1871 CALL DELNOD ;RELEASE LL BLOCK
1872 LLLULK ;RELEASE LOCK
1873 MOVE T1,SAVBLK ;GET ERROR CODE
1874 DECR DCCUR ;DISCOUNT THIS LINK
1875 001454'02 254 00 0 00 007437' RET] ;DONE
1876 001455'02 202 01 0 15 000002 MOVEM T1,SAVERR ;SAVE BLOCK ADDRESS
1877 001456'02 200 02 0 15 000003 MOVE T2,SAVSTR ;GET STRING BLOCK
1878 001457'02 476 00 0 00 000003 SETOM T3 ;NO COUNT
1879 001460'02 260 17 0 00 001260' CALL MOVSTR ;MOVE THE STRING
1880 001461'02 201 01 0 00 001516' MOVEI T1,TSKCHK ;COROUTINE ADDRESS
1881 001462'02 476 00 0 00 000002 SETOM T2 ;SEARCH ALL LOGICAL LINKS
1882 001463'02 260 17 0 00 000000# LLLOCK ;LOCK UP THE TREE
1883 001464'02 260 17 0 00 001176' CALL OBJSRC ;DO IT
1884 001465'02 334 00 0 00 000000 SKIPA ;NOT FOUND. CAN USE IT
1885 JRST [ MOVE T1,SAVERR ;GET TASK NAME BLOCK
1886 CALL RELBLK ;RELEASE IT
1887 MOVE T1,SAVBLK ;GET LL BLOCK ADDRESS
1888 CALL DELNOD ;RELEASE THE BLOCK
1889 LLLULK ;FREE THE TREE LOCK
1890 MOVEI T1,DCNX4 ;ILLEGAL TASK NAME
1891 DECR DCCUR ;DISCOUNT THIS LINK
1892 001466'02 254 00 0 00 007446' RET] ;AND DONE
1893 001467'02 200 02 0 15 000002 MOVE T2,SAVERR ;GET TASK BLOCK
1894 001470'02 200 01 0 15 000001 MOVE T1,SAVBLK ;GET LL BLOCK ADDRESS
1895 001471'02 137 02 0 00 007402' STOR T2,LLTSK,(T1) ;STORE BLOCK ADDRESS
1896 001472'02 205 16 0 00 400000 OPNEXT: SETONE LLBOM,(T1) ;NEXT OUTPUT WILL BE BOM
1897 001473'02 436 16 0 01 000010
1898 001474'02 200 03 0 15 000004 MOVE T3,SAVBSZ ;GET BYTE SIZE
1899 001475'02 137 03 0 00 007414' STOR T3,LLBSZ,(T1) ;SAVE BYTE SIZE IN LOGICAL LINK BLOCK
1900 001476'02 302 03 0 00 000044 CAIE T3,44 ;WORD MODE?
1901 001477'02 254 00 0 00 001502' JRST OPENX1 ;NO. GO ON
1902 001500'02 205 16 0 00 000010 SETONE LLFDI,(T1) ;YES. REMEMBER THIS
1903 001501'02 436 16 0 01 000002
1904 001502'02 254 00 0 00 001346* OPENX1: RETSKP ;DONE, RETURN SUCCESS WITH T1/ LL BLOCK ADDRESS
1905
1906
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 44
NSPSRV MAC 6-Apr-82 10:58 Logical Link Creation
1907
1908 ;ROUTINE TO GET RID OF LL BLOCK AFTER ERROR
1909
1910 001503'02 202 01 0 15 000002 RLBLK: MOVEM T1,SAVERR ;SAVE ERROR
1911 001504'02 200 01 0 15 000001 RLBLK1: MOVE T1,SAVBLK ;GET BLOCK ADDRESS
1912 001505'02 260 17 0 00 000000* CALL RELRES ;FREE IT
1913 001506'02 200 01 0 15 000002 MOVE T1,SAVERR ;GET ERROR
1914 001507'02 263 17 0 00 000000 RET ;AND DONE
1915
1916 ;ROUTINE TO GET DEFAULT TASK NAME FOR A LINK
1917
1918 001510'02 260 17 0 00 000000# OPNDFT: LLLOCK ;LOCK UP THE TREE
1919 001511'02 200 01 0 15 000001 MOVE T1,SAVBLK ;GET BLOCK ADDRESS
1920 001512'02 260 17 0 00 001231' CALL GETTSK ;GO GET A NAME
1921 JRST [ MOVE T1,SAVBLK ;FAILED
1922 CALL DELNOD ;SO RELEASE LL BLOCK
1923 LLLULK ;FREE TREE LOCK
1924 MOVEI T1,MONX06 ;"NO MORE SWAPPABLE FREE SPACE"
1925 001513'02 254 00 0 00 007456' RET] ;DONE
1926 001514'02 200 01 0 15 000001 MOVE T1,SAVBLK ;GET BACK LL BLOCK ADDRESS
1927 001515'02 254 00 0 00 001472' JRST OPNEXT ;AND DONE
1928
1929 ;COROUTINE OF OPEN CODE TO CHECK VALIDITY OF A USER-SUPPLIED
1930 ;TASK NAME
1931
1932 001516'02 265 16 0 00 001260* TSKCHK: SAVET ;SAVE TEMPS
1933 001517'02 554 02 0 01 000003 LOAD T2,LLFRK,(T1) ;SEE IF THE SAME FORK
1934 001520'02 554 02 0 02 000000* HLRZ T2,FKJOB(T2) ;GET FORK'S JOB NUMBER
1935 001521'02 200 04 0 00 000000* MOVE T4,FORKX ;GET THIS FORK'S NUMBER
1936 001522'02 554 04 0 04 001520* HLRZ T4,FKJOB(T4) ;GET THIS FORK'S JOB NUMBER
1937 001523'02 316 02 0 00 000004 CAMN T2,T4 ;IS IT?
1938 001524'02 263 17 0 00 000000 RET ;YES. NO NEED TO CHECK ANYMORE
1939 001525'02 135 02 0 00 007402' LOAD T2,LLTSK,(T1) ;GET THIS ONE'S ADDRESS
1940 001526'02 322 02 0 00 001345* JUMPE T2,R ;IF NONE, CAN'T BE IT
1941 001527'02 200 01 0 15 000002 MOVE T1,SAVERR ;GET TASK BLOCK ADDRESS
1942 001530'02 254 00 0 00 001257* CALLRET CMPSTR ;GO DO THE COMPARE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 45
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate the Logical Link Tree
1943 SUBTTL Routines to Manipulate the Logical Link Tree
1944
1945 ;DELETE NODE FROM LL TREE
1946 ; T1/ BLOCK ADDRESS
1947
1948 001531'02 265 16 0 00 001153* DELNOD::ASUBR <SAVBLK> ;SAVE BLOCK ADDRESS
1949 001532'02 550 01 0 01 000002 LOAD T1,LLLNK,(T1) ;GET ITS ADDRESS
1950 001533'02 476 00 0 00 000002 SETOM T2 ;ANY MATCH
1951 001534'02 260 17 0 00 000000# CALL LLLKUP ;GO LOOK IT UP
1952 001535'02 263 17 0 00 000000 RET ;NOT THERE (THIS IS LEGITIMATE FOR A LOCAL LINK)
1953 JUMPE T2,[SETZM LLHEAD ;IF THE HEAD. CLEAR HEADER
1954 001536'02 322 02 0 00 007463' JRST DELNO1] ;AND PROCEED
1955 001537'02 135 03 0 00 007465' LOAD T3,LLUPL,(T2) ;SEE IF THIS IS UP OR DOWN
1956 001540'02 265 16 0 00 000000* NOSKD1
1957 001541'02 7 004 20 0 00 001002 CHNOFF DLSCHN ;TURN OFF INTERRUPTS
1958 001542'02 316 03 0 00 000001 CAMN T3,T1
1959 JRST [ SETZRO LLUPL,(T2) ;UP
1960 001543'02 254 00 0 00 007466' JRST DELINS] ;GO DO INSERTS
1961 001544'02 525 16 0 00 007777 SETZRO LLDWN,(T2) ;DOWN
1962 001545'02 412 16 0 02 000001
1963 001546'02 7 004 20 0 00 002002 DELINS: CHNON DLSCHN
1964 001547'02 265 16 0 00 000000* OKSKD1
1965 001550'02 550 01 0 01 000002 DELNO1: LOAD T1,LLLNK,(T1) ;GET ADDRESS
1966 001551'02 260 17 0 00 001272' CALL FRELNK ;RELEASE THE LINK #
1967 001552'02 200 01 0 15 000001 MOVE T1,SAVBLK ;GET BACK LL BLOCK ADDRESS
1968 001553'02 135 02 0 00 007367' LOAD T2,LLUPL,(T1) ;DOES THIS HAVE AN UP POINTER?
1969 001554'02 322 02 0 00 001560' JUMPE T2,DELDWN ;NO
1970 001555'02 200 01 0 00 000002 MOVE T1,T2 ;YES.
1971 001556'02 260 17 0 00 001735' CALL ADDLNK ;GO PUT IT IN
1972 001557'02 200 01 0 15 000001 MOVE T1,SAVBLK ;GET BACK ADDRESS
1973 001560'02 135 02 0 00 007374' DELDWN: LOAD T2,LLDWN,(T1) ;SEE IF IT HAS A DOWN
1974 001561'02 322 02 0 00 001565' JUMPE T2,DELDNE ;AND GO RELEASE BLOCKS
1975 001562'02 200 01 0 00 000002 MOVE T1,T2 ;GET ADDRESS
1976 001563'02 260 17 0 00 001735' CALL ADDLNK
1977 001564'02 200 01 0 15 000001 MOVE T1,SAVBLK ;GET BACK BLOCK ADDRESS
1978 001565'02 135 16 0 00 007421' DELDNE: OPSTR <SKIPE T2,>,LLOPT,(T1) ;HAVE AN OPTDATA STRING?
1979 001566'02 332 02 0 00 000016
1980 001567'02 260 17 0 00 001614' CALL DELREL ;YES. GET RID OF IT
1981 001570'02 135 16 0 00 007402' OPSTR <SKIPE T2,>,LLTSK,(T1) ;HAVE A TASK NAME?
1982 001571'02 332 02 0 00 000016
1983 001572'02 260 17 0 00 001614' CALL DELREL ;YES. GET RID OF IT
1984 001573'02 135 16 0 00 007471' OPSTR <SKIPE T2,>,LLFDS,(T1) ;HAVE A DESCRIPTOR STRING?
1985 001574'02 332 02 0 00 000016
1986 001575'02 260 17 0 00 001614' CALL DELREL ;YES. GET RID OF IT
1987 001576'02 200 16 0 01 000002 JE LLFOB,(T1),DELBLK ;AN OBJECT?
1988 001577'02 607 16 0 00 000001
1989 001600'02 254 00 0 00 001612'
1990 001601'02 332 02 0 01 000034 OPSTR <SKIPE T2,>,LLDSC,(T1) ;YES. HAVE A DESCRIPTOR STRING?
1991 001602'02 260 17 0 00 001614' CALL DELREL ;YES. GET RID OF IT
1992 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 46
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate the Logical Link Tree
1993 ; ..
1994
1995 001603'02 332 02 0 01 000035 OPSTR <SKIPE T2,>,LLUSR,(T1) ;HAVE A USER STRING?
1996 001604'02 260 17 0 00 001614' CALL DELREL ;YES. GET RID OF IT
1997 001605'02 332 02 0 01 000036 OPSTR <SKIPE T2,>,LLACT,(T1) ;HAVE AN ACCOUNT STRING?
1998 001606'02 260 17 0 00 001614' CALL DELREL ;YES. GET RID OF IT
1999 001607'02 135 16 0 00 007472' OPSTR <SKIPE T2,>,LLPSW,(T1) ;HAVE A PASSWORD STRING?
2000 001610'02 332 02 0 00 000016
2001 001611'02 260 17 0 00 001614' CALL DELREL ;YES. GET RID OF IT
2002 001612'02 260 17 0 00 001622' DELBLK: CALL REMQUE ;REMOVE BLOCK FROM OUTQUE OF NEEDED
2003 001613'02 254 00 0 00 001505* CALLRET RELRES ;FREE BLOCK AND RETURN
2004
2005 001614'02 265 16 0 00 001516* DELREL: SAVET
2006 001615'02 350 00 0 00 000766* NOINT ;PREVENT INTERRUPTS WHILE DEASSIGNING SPACE
2007 001616'02 200 01 0 00 000002 MOVE T1,T2 ;GET BLOCK ADDRESS
2008 001617'02 260 17 0 00 001313' CALL RELBLK ;FREE BLOCK
2009 001620'02 256 00 0 00 001020* OKINT ;PREMIT INTERRUPTS AGAIN
2010 001621'02 263 17 0 00 000000 RET ;RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 47
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate the Logical Link Tree
2011 ;REMQUE - ROUTINE TO REMOVE A LINK FROM OUTQUE
2012 ;
2013 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
2014 ; CALL REMQUE
2015 ;RETURNS: +1 ALWAYS, WITH LINK REMOVED IF QUEUED
2016
2017 001622'02 200 16 0 01 000002 REMQUE: JE LLQUE,(T1),R ;NOTHING TO DO IF THIS LINK WAS NOT QUEUED
2018 001623'02 325 16 0 00 001526*
2019
2020 ; INITIALIZATION
2021
2022 001624'02 352 00 0 00 000612* LOCK OUTLOK ;LOCK THE QUEUE
2023 001625'02 265 16 0 00 000743*
2024 001626'02 201 04 0 00 000000 MOVEI T4,0 ;INITIALIZE CURRENT QUEUE ITEM
2025 001627'02 550 03 0 00 000000* HRRZ T3,OUTQUE ;GET ITEM AT HEAD OF QUEUE
2026
2027 ; SEARCH THE QUEUE FOR THE DESIRED LINK
2028
2029 001630'02 316 03 0 00 000001 RMQ010: CAMN T3,T1 ;FOUND DESIRED ITEM ?
2030 001631'02 254 00 0 00 001637' JRST RMQ020 ;YES, GO REMOVE IT FROM THE QUEUE
2031 001632'02 200 04 0 00 000003 MOVE T4,T3 ;NO, SAVE CURRENT ITEM AS PREVIOUS ITEM
2032 001633'02 200 03 0 03 000040 LOAD T3,LLOUT,(T3) ;MAKE NEXT ITEM CURRENT ITEM
2033 001634'02 326 03 0 00 001630' JUMPN T3,RMQ010 ;AND GO CHECK NEW CURRENT ITEM
2034 BUG(NSPLNQ)
2035 ;BUG type: BUGCHK, SOFT
2036 ;BUG message: REMQUE - Link not queued
2037 SALL
2038 001635'02 256 00 0 00 007473'
2039 001636'02 263 17 0 00 000000 RET ;SHOULD NEVER HAPPEN
2040
2041 ; HERE WITH THE DESIRED LINK ADDRESS IN T3, PREVIOUS ITEM IN T4
2042
2043 001637'02 554 02 0 00 001627* RMQ020: HLRZ T2,OUTQUE ;GET POINTER TO TAIL OF QUEUE
2044 001640'02 316 02 0 00 000003 CAMN T2,T3 ;REMOVING TAIL OF QUEUE ?
2045 001641'02 506 04 0 00 001637* HRLM T4,OUTQUE ;YES, SAVE POINTER TO NEW TAIL OF QUEUE
2046 001642'02 200 02 0 03 000040 LOAD T2,LLOUT,(T3) ;GET POINTER TO NEXT BLOCK
2047 001643'02 336 00 0 00 000002 SKIPN T2 ;REMOVING HEAD OF QUEUE ?
2048 JRST [ HRRM T2,OUTQUE ;YES, SAVE NEXT BLOCK AS NEW HEAD
2049 001644'02 254 00 0 00 007475' JRST RMQ030 ] ;AND CLEAN UP
2050 001645'02 202 02 0 04 000040 STOR T2,LLOUT,(T4) ;STORE NEXT BLOCK IN PREVIOUS
2051
2052 ; HERE WITH ITEM REMOVED FROM QUEUE
2053
2054 001646'02 205 16 0 00 400000 RMQ030: SETZRO LLQUE,(T1) ;CLEAR "LINK ON OUTQUE" FLAG
2055 001647'02 412 16 0 01 000002
2056 001650'02 476 00 0 00 001624* UNLOCK OUTLOK ;UNLOCK THE QUEUE
2057 001651'02 263 17 0 00 000000 RET ;DONE, RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 48
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate the Logical Link Tree
2058 ;ROUTINE TO RESET AN LL BLOCK SO THAT IT CAN REVERT TO
2059 ;THE LISTENING STATE. USED WHEN A SERVER REJECTS A CONNECTION.
2060
2061 001652'02 265 16 0 00 001531* CLRBLK: ASUBR <CLRLLB> ;LL BLOCK ADDRESS
2062 001653'02 260 17 0 00 000000# CALL FLUSH ;FIRST GET RID OF MESSAGES
2063 001654'02 200 16 0 00 007477' SETZRO LLFNM,(T1) ;CLEAR CONNECTOR
2064 001655'02 412 16 0 01 000004
2065 001656'02 201 16 0 00 177777 SETZRO LLHLK,(T1)
2066 001657'02 412 16 0 01 000004
2067 001660'02 205 16 0 00 770000 SETZRO LLUCT,(T1) ;NO OPTDATA
2068 001661'02 412 16 0 01 000013
2069 001662'02 200 02 0 01 000014 LOAD T2,LLHST,(T1)
2070 001663'02 402 00 0 02 000000 SETZM 0(T2) ;NO REMOTE HOST NAME
2071 001664'02 201 01 0 00 000005 MOVEI T1,<MAXDSC+4>/4 ;MAX CHARS IN DESCRIPTOR
2072 001665'02 260 17 0 00 001300' CALL GETBLK ;GET SWAPPABLE FREE SPACE BLOCK
2073 001666'02 263 17 0 00 000000 RETBAD () ;COULDN'T
2074 001667'02 200 02 0 00 000001 MOVE T2,T1 ;POSITION THE ADDRESS
2075 001670'02 200 01 0 15 000001 MOVE T1,CLRLLB ;RETRIEVE THE LL BLOCK ADDRESS
2076 001671'02 137 02 0 00 007471' STOR T2,LLFDS,(T1) ;PUT BLOCK ADDRESS IN LL BLOCK
2077 001672'02 201 16 0 00 177777 SETZRO LLRSN,(T1) ;NO DISCONNECT REASON
2078 001673'02 412 16 0 01 000020
2079 001674'02 200 16 0 01 000002 JE LLFOB,(T1),R ;IN CASE CALLED FOR NON-OBJECT
2080 001675'02 607 16 0 00 000001
2081 001676'02 254 00 0 00 001623*
2082 001677'02 402 00 0 01 000040 SETZM LLUSGP(T1) ;NO GROUP,USER
2083 001700'02 513 00 0 01 000033 SETZRO LLSOB,(T1) ;NO OBJECT #
2084 001701'02 200 02 0 01 000035 LOAD T2,LLUSR,(T1) ;GET USER BLOCK
2085 001702'02 402 00 0 02 000000 SETZM 0(T2) ;NO USER
2086 001703'02 200 02 0 01 000036 LOAD T2,LLACT,(T1) ;GET ACCOUNT BLOCK
2087 001704'02 402 00 0 02 000000 SETZM 0(T2) ;NONE
2088 001705'02 205 16 0 00 770000 SETZRO LLPCT,(T1) ;NO PASSWORD DATA
2089 001706'02 412 16 0 01 000037
2090 001707'02 263 17 0 00 000000 RET ;AND DONE
2091
2092 ENDAS.
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 49
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate the Logical Link Tree
2093
2094 ;ROUTINE TO GET A LL ADDRSS AND INSERT A NODE IN THE TREE
2095 ;MUST BE CALLED WITH LL LOCK LOCKED.
2096 ;ACCEPTS: T1/ BLOCK ADDRESS
2097 ;RETURNS: +1 SOME SORT OF FAILURE (SHOULDN'T HAPPEN)
2098 ; +2 INSERTED.
2099
2100 001710'02 265 16 0 00 001652* MAKLNK: ASUBR <SAVADR> ;SAVE BLOCK ADDRESS
2101 001711'02 205 01 0 00 000000# MOVSI T1,-LLBIT ;# OF WORDS IN BIT TABLE
2102 001712'02 200 02 0 00 007500' MOVE T2,[LLBITS] ;THE TABLE ITSELF
2103 001713'02 336 03 0 02 000000 MAKLN1: SKIPN T3,0(T2) ;HAVE SOME BITS?
2104 JRST [ AOS T2 ;NO. NEXT WORD THEN
2105 AOBJN T1,MAKLN1 ;SEE IF ANY MORE
2106 MOVEI T1,DCNX5 ;NO MORE LINKS
2107 001714'02 254 00 0 00 007501' RET] ;AND DONE
2108 001715'02 243 03 0 00 001716' JFFO T3,.+1 ;COMNPUTE LEADING ZEROES
2109 001716'02 200 03 0 04 001275* MOVE T3,BITS(T4) ;GET THE BIT
2110 001717'02 412 03 0 02 000000 ANDCAM T3,0(T2) ;TURN IT OFF
2111 001720'02 553 00 0 00 000001 HRRZS T1 ;GET # OF FULL WORDS SKIPPED
2112 001721'02 221 01 0 00 000044 IMULI T1,44 ;COMPUTE SKIPPED BITS
2113 001722'02 271 01 0 04 000000 ADDI T1,0(T4) ;THE INDEX
2114 001723'02 550 02 0 00 000000* HRRZ T2,TODCLK ;GET THE CURRENT CLOCK
2115 001724'02 242 02 0 00 000000* LSH T2,MAXEXP ;ZERO RIGHT-HAND BITS
2116 001725'02 405 02 0 00 177777 ANDI T2,177777 ;GET A 16 BIT QUANTITY
2117 001726'02 271 02 0 01 000000 ADDI T2,0(T1) ;FORM LL ADDRESS
2118 001727'02 200 01 0 15 000001 MOVE T1,SAVADR ;GET BACK BLOCK ADDRESS
2119 001730'02 542 02 0 01 000002 STOR T2,LLLNK,(T1) ;PUT IN THE ADDRESS
2120 001731'02 200 02 0 00 001521* MOVE T2,FORKX ;PUT IN FORK OWNER
2121 001732'02 506 02 0 01 000003 STOR T2,LLFRK,(T1) ;TO THE BLOCK
2122 001733'02 260 17 0 00 001735' CALL ADDLNK ;AND GO ADD IN THE LINK
2123 001734'02 254 00 0 00 001502* RETSKP ;DONE
2124
2125 ;ROUTINE TO ADD A BLOCK TO THE LL TREE
2126 ;ACCEPTS: T1/BLOCK TO ADD
2127 ;RETURNS: +1 ALWAYS.
2128 ;MUST BE CALLED WITH TREE LOCKED
2129
2130 001735'02 265 16 0 00 001710* ADDLNK: ASUBR <SAVBLK> ;SAVE BLOCK ADDRESS
2131 001736'02 550 01 0 01 000002 LOAD T1,LLLNK,(T1) ;GET LINK I.D.
2132 001737'02 474 02 0 00 000000 SETO T2, ;NO HOST CHECK
2133 001740'02 260 17 0 00 000000# CALL LLLKUP ;GO GET INSERT POINT
2134 001741'02 334 00 0 00 000000 SKIPA ;GOOD
2135 BUG (ADDONF)
2136 ;BUG type: BUGHLT, SOFT
2137 ;BUG message: ADDOBJ-LLLKUP FAILED
2138 SALL
2139 001742'02 256 00 0 00 007505'
2140 001743'02 200 02 0 15 000001 MOVE T2,SAVBLK ;GET BACK LL BLOCK
2141 JUMPE T1,[MOVEM T2,LLHEAD ;FIRST ONE
2142 001744'02 322 01 0 00 007507' RET] ;AND DONE
2143 001745'02 550 03 0 02 000002 LOAD T3,LLLNK,(T2) ;GET THIS LINK I.D.
2144 001746'02 550 04 0 01 000002 LOAD T4,LLLNK,(T1) ;GET INSERT I.D.
2145 001747'02 311 03 0 00 000004 CAML T3,T4
2146 JRST [ STOR T2,LLUPL,(T1)
2147 001750'02 254 00 0 00 007511' RET] ;DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 49-1
NSPSRV MAC 6-Apr-82 10:58 Routines to Manipulate the Logical Link Tree
2148 001751'02 137 02 0 00 007374' STOR T2,LLDWN,(T1) ;NEW LINK
2149 001752'02 263 17 0 00 000000 RET ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 50
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2150 SUBTTL More Link Creation Routines
2151
2152 ;ROUTINE CALLED FROM GTJFN TO VERIFY AN ATTRIBUTE
2153 ;ACCEPTS: T1/ BLOCK ADDRESS
2154 ; T2/ ATTRIBUTE VALUE
2155 ;RETURNS: +1 INVALID. ERROR CODE IN T1
2156 ; +2 GOOD ATTRIBUTE
2157
2158 001753'02 265 16 0 00 001073* NETATR::ACVAR <W1> ;GET A WORK REG
2159 001754'02 205 03 0 00 777772 MOVSI T3,-MAXNTA ;# OF ATTRIBUTES IN TABLE
2160 001755'02 135 16 0 00 007513' NETAT2: OPSTR <CAME T2,>,NTATR,ATTRTB(T3) ;IS THIS IT?
2161 001756'02 312 02 0 00 000016
2162 JRST [ AOBJN T3,NETAT2 ;DO ALL OF THEM
2163 001757'02 254 00 0 00 007514' RETBAD (GJFX49)] ;COULDN'T FIND IT
2164 001760'02 135 05 0 00 007516' LOAD W1,NTATB,ATTRTB(T3) ;FOUND IT. GET BINARY BIT
2165 001761'02 135 02 0 00 007517' LOAD T2,NTATC,ATTRTB(T3) ;GET MAX COUNT
2166 001762'02 332 00 0 00 000005 SKIPE W1 ;BINARY?
2167 001763'02 221 02 0 00 000003 IMULI T2,3 ;YES. ADJUST COUNT
2168 001764'02 505 01 0 00 010700 HRLI T1,(<POINT 7,0,34>) ;FORM A BYTE POINTER
2169 001765'02 134 04 0 00 000001 CNTLOP: ILDB T4,T1 ;GET NEXT BYTE
2170 001766'02 322 04 0 00 001776' JUMPE T4,NETAT1 ;IF NULL, DONE
2171 001767'02 361 02 0 00 007522' SOJL T2,[RETBAD (GJFX50)] ;ATTRIBUTE TOO LONG
2172 001770'02 322 05 0 00 001765' JUMPE W1,CNTLOP ;IF NOT BINARY, GO GET MORE
2173 001771'02 301 04 0 00 000060 CAIL T4,"0" ;IS BINARY. CHECK RANGE
2174 001772'02 303 04 0 00 000067 CAILE T4,"7" ;""
2175 001773'02 334 00 0 00 000000 SKIPA
2176 001774'02 254 00 0 00 001765' JRST CNTLOP ;GOOD RANGE
2177 001775'02 254 00 0 00 007520' RETBAD (GJFX50) ;INVALID
2178 001776'02 135 02 0 00 007523' NETAT1: LOAD T2,NTATE,ATTRTB(T3) ;GET EXCLUSION PARTNER
2179 001777'02 332 00 0 00 000002 SKIPE T2 ;HAVE ONE?
2180 002000'02 260 17 0 00 002427' CALL FNDATR ;YES. GO LOOK FOR IT
2181 002001'02 254 00 0 00 001734* RETSKP ;NOT THERE. ERGO, GOOD ARG
2182 002002'02 254 00 0 00 007524' RETBAD (GJFX45) ;CONFLICT
2183
2184 ENDAV. ;END ACVAR
2185
2186 ;THE ATTRIBUTE TABLE
2187
2188 002003'02 000000000000# ATTRTB: ATTENT (.PFUDT,0,^D16,0)
2189 002004'02 000000000000# ATTENT (.PFPWD,0,^D8,.PFBPW)
2190 002005'02 000000000000# ATTENT (.PFBPW,1,^D8,.PFPWD)
2191 002006'02 000000000000# ATTENT (.PFACN,0,^D16,0)
2192 002007'02 000000000000# ATTENT (.PFOPT,0,^D16,.PFBOP)
2193 002010'02 000000000000# ATTENT (.PFBOP,1,^D16,.PFOPT)
2194 000006 MAXNTA==.-ATTRTB
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 51
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2195
2196
2197 ;ROUTINES TO OPEN NETWORK CONNECTION. CALLED FROM OPENF JSYS
2198
2199 ;OPEN SRC JFN
2200
2201 002011'02 265 16 0 00 001753* SRCOPN::ACVAR <W1> ;GET A WORK REG
2202 002012'02 265 16 0 00 001374* TRVAR <NTCNT,NTPNT,NTOBJ,NTDSC,NTDSS>
2203 002013'02 000005 000005
2204 002014'02 554 01 0 11 000342* HLRZ T1,FILNEN(JFN) ;GET NAME FOR THE CONNECTION
2205 002015'02 260 17 0 00 000171' CALL SRCNAM ;PARSE NETWORK NAME
2206 002016'02 263 17 0 00 000000 RETBAD() ;ERROR
2207 002017'02 260 17 0 00 000271' CALL OPNSRC ;GO DO COMMON OPEN SETUP
2208 002020'02 263 17 0 00 000000 RETBAD() ;FAILED
2209 002021'02 200 05 0 00 000001 MOVE W1,T1 ;SAVE LL BLOCK
2210 002022'02 337 02 0 15 000003 SKIPG T2,NTOBJ ;GET OBJECT TYPE
2211 002023'02 254 00 0 00 002025' JRST NOOOBJ ;NONE GIVEN
2212 002024'02 506 02 0 05 000033 STOR T2,LLNAM,(W1) ;SAVE OBJECT
2213 002025'02 336 01 0 15 000004 NOOOBJ: SKIPN T1,NTDSC ;HAVE A DESCRIPTOR?
2214 002026'02 254 00 0 00 002050' JRST NODESC ;NO. GO ON
2215 002027'02 271 01 0 00 000004 ADDI T1,4
2216 002030'02 231 01 0 00 000005 IDIVI T1,5 ;COMPUTE WORDS NEEDED
2217 002031'02 260 17 0 00 001300' CALL GETBLK ;GET ONE
2218 002032'02 263 17 0 00 000000 RETBAD () ;FAILED, RETURN ERROR CODE
2219 002033'02 202 01 0 05 000034 STOR T1,LLDSC,(W1) ;SAVE POINTER
2220 002034'02 200 02 0 15 000005 MOVE T2,NTDSS ;GET STRING POINTER
2221 002035'02 200 03 0 15 000004 MOVE T3,NTDSC ;GET COUNT
2222 002036'02 260 17 0 00 001321' CALL MOVST1 ;MOVE THW STRING
2223 002037'02 201 01 0 00 002071' MOVEI T1,OPNUNQ ;MUST VERIFY UNIQUENESS OF NAME
2224 002040'02 402 00 0 00 000002 SETZM T2 ;NEED TO CHECK OBJECTS ONLY
2225 002041'02 260 17 0 00 001176' CALL OBJSRC ;DO IT
2226 002042'02 254 00 0 00 002050' JRST NODESC ;NOT FOUND. CAN HAVE IT
2227 002043'02 554 02 0 01 000003 LOAD T2,LLFRK,(T1) ;FOUND ONE. WHICH JOB?
2228 002044'02 554 02 0 02 001522* HLRZ T2,FKJOB(T2) ;""
2229 002045'02 201 01 0 00 602024 MOVEI T1,DCNX9 ;DUPICATE NAME ERROR
2230 002046'02 312 02 0 00 000000* CAME T2,JOBNO ;THIS JOB?
2231 002047'02 254 00 0 00 002103' JRST SRCFAL ;NO. CAN'T HAVE IT
2232 002050'02 260 17 0 00 002111' NODESC: CALL GTSBLK ;GET A BLOCK FOR USER NAME
2233 002051'02 254 00 0 00 002103' JRST SRCFAL ;NONE
2234 002052'02 202 01 0 05 000035 STOR T1,LLUSR,(W1) ;SAVE IT
2235 002053'02 260 17 0 00 002111' CALL GTSBLK ;GET A BLOCK FOR THE ACCOUNT
2236 002054'02 254 00 0 00 002103' JRST SRCFAL ;NONE
2237 002055'02 202 01 0 05 000036 STOR T1,LLACT,(W1) ;SAVE IT
2238 002056'02 260 17 0 00 002111' CALL GTSBLK ;GET A BLOCK FOR THE PASSWORD
2239 002057'02 254 00 0 00 002103' JRST SRCFAL ;NONE
2240 002060'02 137 01 0 00 007526' STOR T1,LLPSW,(W1) ;SAVE IT
2241 002061'02 260 17 0 00 000115' CALL ASGWDW ;GO GET WINDOW PAGES
2242 002062'02 254 00 0 00 002103' JRST SRCFAL ;FAILED
2243 002063'02 201 01 0 00 000001 MOVEI T1,LLSLIS ;GET INITIAL STATE
2244 002064'02 137 01 0 00 007527' STOR T1,LLSTA,(W1) ;SET UP THIS LISTENER
2245 002065'02 205 16 0 00 000001 SETONE LLFOB,(W1) ;SAY THIS IS AN OBJECT
2246 002066'02 436 16 0 05 000002
2247 002067'02 260 17 0 00 000000# LLLULK ;FREE LOCK
2248 002070'02 254 00 0 00 002001* RETSKP ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 52
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2249
2250 ;COROUTINE OF SRCOPN TO CHECK FOR UNIQUE NAME
2251
2252 002071'02 265 16 0 00 001614* OPNUNQ: SAVET ;SAVE TEMPS
2253 002072'02 554 02 0 01 000033 LOAD T2,LLNAM,(T1) ;GET OBJECT NUMBER
2254 002073'02 554 16 0 05 000033 OPSTR <CAME T2,>,LLNAM,(W1) ;SAME AS OURS?
2255 002074'02 312 02 0 00 000016
2256 002075'02 263 17 0 00 000000 RET ;NO. NO CONFLICT THEN
2257 002076'02 200 01 0 01 000034 LOAD T1,LLDSC,(T1) ;GET ITS DESCRIPTOR
2258 002077'02 200 02 0 05 000034 LOAD T2,LLDSC,(W1) ;GET OURS
2259 002100'02 260 17 0 00 001530* CALL CMPSTR ;SEE IF A MATCH
2260 002101'02 263 17 0 00 000000 RET ;NO.
2261 002102'02 254 00 0 00 002070* RETSKP ;YES. COULD BE A PROBLEM
2262
2263 ;OPEN FAILURE ROUTINE. CLEAN UP FROM ATTEMPT
2264
2265 002103'02 370 00 0 00 001425* SRCFAL: DECR DCCUR ;ONE LESS LINK ON FAILURE
2266 002104'02 250 01 0 00 000005 EXCH T1,W1 ;GET BLOCK ADDRESS
2267 002105'02 260 17 0 00 001531' CALL DELNOD ;FREE THE NODE
2268 002106'02 260 17 0 00 000000# LLLULK ;UNLOCK THE TREE
2269 002107'02 200 01 0 00 000005 MOVE T1,W1 ;GET ERROR CODE
2270 002110'02 263 17 0 00 000000 RET ;AND FAIL
2271
2272 ;LOCAL ROUTINE TO GET A STRING BLOCK FOR SRCOPN.
2273
2274 002111'02 201 01 0 00 000005 GTSBLK: MOVEI T1,OPTSIZ ;THE PROPER SIZE
2275 002112'02 260 17 0 00 001300' CALL GETBLK ;GET ONE
2276 002113'02 263 17 0 00 000000 RET ;FAILED
2277 002114'02 254 00 0 00 002102* RETSKP ;GOT IT
2278
2279 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 53
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2280 ;CRTLNK - ROUTINE TO CREATE A LOGICAL LINK
2281 ;
2282 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
2283 ; T2/ ADDRESS OF ATRIBUTE LIST
2284 ; T3/ OBJECT,,COUNT OF BYTES IN DESCRIPTOR
2285 ; T4/ POINTER TO DESCRIPTOR STRING
2286 ; TRVARS -- NTCNT,NTPNT,NTOBJ,NTDSC,NTDSS,NTHST,NTHSC
2287 ;
2288 ; CALL CRTLNK
2289 ;RETURNS: +1 FAILED, ERROR CODE IN T1
2290 ; +2 SUCCESS
2291
2292 002115'02 265 16 0 00 000000* CRTLNK::ACVAR <W1,W2,W3> ;GET A WORK REGISTER
2293 002116'02 265 16 0 00 001321* STKVAR <CRLATR,CRLCIB,CRLCNT,CRLOBJ,CRLHST,CRLHSC,CRLDSS,CRLDSC>
2294 002117'02 000010 000010
2295
2296 ; SAVE INPUT ARGUMENTS
2297
2298 002120'02 200 05 0 00 000001 MOVE W1,T1 ;SAVE LL BLOCK ADDRESS
2299 002121'02 202 02 0 17 777776 MOVEM T2,CRLATR ;SAVE ATTRIBUTE LIST POINTER
2300 002122'02 556 03 0 17 777773 HLRZM T3,CRLOBJ ;SAVE OBJECT
2301 002123'02 572 03 0 17 777767 HRREM T3,CRLDSC ;SAVE COUNT OF BYTES IN DESCRIPTOR
2302 002124'02 202 04 0 17 777770 MOVEM T4,CRLDSS ;SAVE DESCRIPTOR POINTER
2303
2304 002125'02 200 01 0 17 777773 MOVE T1,CRLOBJ ;GET OBJECT
2305 002126'02 137 01 0 00 007530' STOR T1,LLFNM,(W1) ;SAVE IT
2306 002127'02 337 03 0 17 777767 SKIPG T3,CRLDSC ;ANY DESCRIPTOR GIVEN
2307 002130'02 254 00 0 00 002134' JRST DSCNUL ;NO, SKIP MOVING STRING
2308 002131'02 135 01 0 00 007531' LOAD T1,LLFDS,(W1) ;GET DESCRIPTOR BLOCK
2309 002132'02 200 02 0 17 777770 MOVE T2,CRLDSS ;GET JSB STRING POINTER
2310 002133'02 260 17 0 00 001321' CALL MOVST1 ;AND MOVE IT
2311
2312 ;ALL STRINGS ARE MOVED. MUST GENERATE CONNECT-INITIATE MESSAGE
2313
2314 002134'02 201 01 0 00 000046 DSCNUL: MOVEI T1,CONLEN+MSHDR+RTHLEN ;GET A BLOCK FOR THE CI
2315 002135'02 260 17 0 00 000000# CALL GETRES ;GET A RESIDENT BLOCK
2316 002136'02 263 17 0 00 000000 RETBAD () ;FAILED, RETURN ERROR
2317 002137'02 202 01 0 17 777775 MOVEM T1,CRLCIB ;SAVE BLOCK ADDRESS
2318 002140'02 505 01 0 00 441000 HRLI T1,(<POINT 8,>) ;MAKE A BYTE POINTER
2319 002141'02 271 01 0 00 000007 ADDI T1,MSHDR ;RESERVE HEADER
2320 002142'02 202 01 0 05 000016 MOVEM T1,LLBPTR(W1) ;SAVE IN LL BLOCK
2321 002143'02 402 00 0 05 000017 SETZM LLBPCT(W1) ;ZERO COUNT
2322 002144'02 200 01 0 00 000005 MOVE T1,W1 ;LL BLOCK ADDRESS
2323 002145'02 201 02 0 00 000030 MOVEI T2,CNMRFL+CNMCI ;MESSAGE FLAGS
2324 002146'02 260 17 0 00 000000# CALL RTHDCI ;PUT ON ROUTING HEADER AND FLAGS
2325 002147'02 260 17 0 00 002335' CALL DOSRVS ;INSERT LL ADDRESSES AND STANDARD SERVICES
2326 ;..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 54
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2327
2328 ; ..
2329
2330 ;NOW BUILD OBJECT ADDRESSING FIELDS
2331
2332 002150'02 337 00 0 17 777767 SKIPG CRLDSC ;HAVE A COUNT FOR DESCRIPTOR
2333 JRST [ MOVEI T2,OBJZRO ;GET OBJECT TYPE ZERO INDICATOR
2334 CALL ONEBYT
2335 MOVE T2,CRLOBJ ;GET OBJECT TYPE
2336 CALL ONEBYT
2337 LOAD T1,LLFDS,(W1) ;GET DESCRIPTOR STRING
2338 SETZRO LLFDS,(W1) ;CLEAR LOCATION
2339 CALL RELBLK ;RELEASE UNUSED BLOCK
2340 MOVE T1,W1 ;RESTORE LL BLOCK ADDRESS
2341 002151'02 254 00 0 00 007532' JRST DSCDON] ;DONE WITH THIS
2342 002152'02 201 02 0 00 000001 MOVEI T2,OBJONE ;GET OBJECT TYPE 1
2343 002153'02 260 17 0 00 000000# CALL ONEBYT ;STORE HEADER
2344 002154'02 200 02 0 17 777773 MOVE T2,CRLOBJ ;GET OBJECT NUMBER
2345 002155'02 260 17 0 00 000000# CALL ONEBYT ;PUT IT IN
2346 002156'02 135 03 0 00 007471' LOAD T3,LLFDS,(T1) ;GET DESCRIPTOR STRING
2347 002157'02 260 17 0 00 000000# CALL ASCIIZ ;PUT IT IN
2348
2349 ;MESSAGE BUILT. INSERT SENDER'S NAME AND USER DATA
2350
2351 002160'02 201 02 0 00 000001 DSCDON: MOVEI T2,OBJONE ;SENDER IS A TASK
2352 002161'02 260 17 0 00 000000# CALL ONEBYT
2353 002162'02 201 02 0 00 000000 MOVEI T2,OBJTSK ;THE I.D. FOR TASK
2354 002163'02 260 17 0 00 000000# CALL ONEBYT
2355 002164'02 135 03 0 00 007402' LOAD T3,LLTSK,(T1) ;GET POINTER TO TASK NAME
2356 002165'02 260 17 0 00 000000# CALL ASCIIZ ;AND INSERT IT
2357
2358 ;NOW CHECK FOR AND INSERT ANY OPTIONAL DATA
2359
2360 002166'02 200 01 0 00 000005 MOVE T1,W1 ;GET LOGICAL LINK BLOCK ADDRESS
2361 002167'02 200 02 0 17 777776 MOVE T2,CRLATR ;GET ADDRESS OF ATTRIBUTE LIST
2362 002170'02 260 17 0 00 002177' CALL INSATR ;GO INSERT ATTRIBUTES IN MESSAGE
2363
2364 002171'02 201 02 0 00 000002 MOVEI T2,LLSCIS ;GET NEW STATE
2365 002172'02 137 02 0 00 007375' STOR T2,LLSTA,(T1) ;STORE NEW STATE
2366 002173'02 260 17 0 00 000000# LLLULK ;RELEASE TREE NOW
2367 002174'02 200 02 0 17 777775 MOVE T2,CRLCIB ;GET BLOCK ADDRESS
2368 002175'02 260 17 0 00 000000# CALL SNDCTL ;SEND MESSAGE TO THE NETWORK
2369 002176'02 254 00 0 00 002114* RETSKP ;AND DONE FOR NOW
2370
2371 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 55
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2372 ;INSATR - ROUTINE TO INSERT ATTRIBUTE VALUES INTO THE CI MESSAGE
2373 ;
2374 ;ACCEPTS IN T1/ LOGICAL LINK BLOCK ADDRESS
2375 ; T2/ ADDRESS OF ATTRIBUTE TABLE
2376 ; CALL INSATR
2377 ;RETURNS: +1 ALWAYS
2378
2379 002177'02 265 16 0 00 002116* INSATR: STKVAR <INALLB,INAATR,INAPNT,INACNT>
2380 002200'02 000004 000004
2381 002201'02 202 01 0 17 777776 MOVEM T1,INALLB ;SAVE LOGICAL LINK ADDRESS
2382 002202'02 202 02 0 17 777775 MOVEM T2,INAATR ;SAVE ATTRIBUTE LIST ADDRESS
2383
2384 002203'02 200 01 0 17 777776 MOVE T1,INALLB ;GET LOGICAL LINK BLOCK ADDRESS
2385 002204'02 400 02 0 00 000000 SETZ T2, ;DEFAULT MENU BYTE
2386 002205'02 260 17 0 00 000000# CALL ONEBYT ;PUT IT IN
2387 002206'02 200 03 0 01 000016 MOVE T3,LLBPTR(T1) ;GET POINTER TO MENU
2388 002207'02 202 03 0 17 777774 MOVEM T3,INAPNT ;SAVE IT
2389 002210'02 201 02 0 00 000001 MOVEI T2,1 ;ASSUME WILL BE PRESENT
2390 002211'02 202 02 0 17 777773 MOVEM T2,INACNT ;SET IT
2391 002212'02 201 02 0 00 000000* MOVEI T2,.PFUDT ;SEE IF USER I.D. GIVEN
2392 002213'02 200 03 0 17 777775 MOVE T3,INAATR ;GET ATTRIBUTE LIST ADDRESS
2393 002214'02 260 17 0 00 002431' CALL GETATR ;IS IT?
2394 JRST [ SETZM T2 ;NOT THERE.
2395 CALL ONEBYT ;SAY IS NULL
2396 002215'02 254 00 0 00 007544' JRST DOSPW1] ;AND GO ON TO PASSWORD
2397 002216'02 260 17 0 00 000000# CALL ASCIIZ ;PUT IN THE DATA
2398 002217'02 201 02 0 00 000000* DOSPW1: MOVEI T2,.PFPWD ;SEE IF A PASSWORD IS GIVEN
2399 002220'02 200 03 0 17 777775 MOVE T3,INAATR ;GET ATTRIBUTE LIST ADDRESS
2400 002221'02 260 17 0 00 002431' CALL GETATR ;IS IT?
2401 JRST [ MOVEI T2,.PFBPW ;NO. SEE ABOUT ALTERNATE FORM
2402 MOVE T3,INAATR ;GET ATTRIBUTE LIST ADDRESS
2403 CALL GETATR ;IS IT?
2404 JRST [ SETZ T2, ;NO.
2405 CALL ONEBYT ;INSERT A PLACEHOLDER
2406 JRST DOACT] ;AND GO ON
2407 MOVEI T4,BININ ;YES. INSERT BINARY VALUE
2408 002222'02 254 00 0 00 007552' JRST DOPSWD]
2409 002223'02 201 04 0 00 000000# MOVEI T4,ASCIIZ ;YES. INSERT ASCII FORM
2410 002224'02 260 17 0 04 000000 DOPSWD: CALL 0(T4) ;PUT IT IN
2411 002225'02 201 02 0 00 000000* DOACT: MOVEI T2,.PFACN ;SEE IF AN ACCOUNT
2412 002226'02 200 03 0 17 777775 MOVE T3,INAATR ;GET ATTRIBUTE LIST ADDRESS
2413 002227'02 260 17 0 00 002431' CALL GETATR ;IS IT?
2414 002230'02 201 03 0 00 007220' MOVEI T3,[0] ;NO. PUT IN NULL STRING
2415 002231'02 260 17 0 00 000000# CALL ASCIIZ ;YES. PUT IT IN
2416 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 56
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2417 ; ..
2418
2419 002232'02 201 02 0 00 000000* MOVEI T2,.PFOPT ;HAVE OPTIONAL USER DATA?
2420 002233'02 200 03 0 17 777775 MOVE T3,INAATR ;GET ATTRIBUTE LIST ADDRESS
2421 002234'02 260 17 0 00 002431' CALL GETATR ;IS IT?
2422 JRST [ MOVEI T2,.PFBOP ;NO. TRY OTHER FORM
2423 MOVE T3,INAATR ;GET ATTRIBUTE LIST ADDRESS
2424 CALL GETATR ;IS IT?
2425 JRST INMENU ;NO USER DATA
2426 MOVEI T4,BININ ;FOUND IT
2427 002235'02 254 00 0 00 007560' JRST DOOPT] ;PUT IT IN
2428 002236'02 201 04 0 00 000000# MOVEI T4,ASCIIZ ;FOUND ASCII FORM
2429 002237'02 201 02 0 00 000002 DOOPT: MOVEI T2,2 ;SAY FOUND OPTDATA
2430 002240'02 436 02 0 17 777773 IORM T2,INACNT ;TO THE MENU
2431 002241'02 260 17 0 04 000000 CALL 0(T4) ;INSERT IT
2432 002242'02 200 02 0 17 777773 INMENU: MOVE T2,INACNT ;GET FINAL MENU
2433 002243'02 137 02 0 17 777774 DPB T2,INAPNT ;PUT IT IN THE MESSAGE
2434 002244'02 263 17 0 00 000000 RET ;DONE, RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 57
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2435 ;STRSAV - ROUTINE TO SAVE NAME STRINGS ON LINK CREATION
2436 ;
2437 ;ACCEPTS IN TRVARS: NTHST, NTHSC, NTDSS, NTDSC, NTOBJ
2438 ; T1/ ADDRESS OF LL BLOCK
2439 ; T2/ COUNT OF HOST STRING BYTES,,COUNT OF DESCRIPTOR STRING BYTES
2440 ; T3/ POINTER TO HOST NAME STRING
2441 ; T4/ POINTER TO DESCRIPTOR STRING
2442 ; CALL STRSAV
2443 ;RETURNS: +1 FAILED, ERROR CODE IN T1
2444 ; +2 SUCCESS, STRINGS SAVED
2445
2446 002245'02 265 16 0 00 002115* STRSAV::ACVAR <W1,W2,W3>
2447 002246'02 265 16 0 00 002177* STKVAR <SSVHST,SSVHSC,SSVDSC,SSVDSS>
2448 002247'02 000004 000004
2449 002250'02 576 02 0 17 777775 HLREM T2,SSVHSC ;SAVE HOST STRING BYTE COUNT
2450 002251'02 572 02 0 17 777774 HRREM T2,SSVDSC ;SAVE DESCRIPTOR BYTE COUNT
2451 002252'02 202 03 0 17 777776 MOVEM T3,SSVHST ;SAVE HOST NAME STRING POINTER
2452 002253'02 202 04 0 17 777773 MOVEM T4,SSVDSS ;SAVE DESCRIPTOR STRING POINTER
2453 002254'02 200 05 0 00 000001 MOVE W1,T1 ;SAVE LL BLOCK ADDRESS
2454 002255'02 337 03 0 17 777775 SKIPG T3,SSVHSC ;HAVE A HOST NAME?
2455 JRST [ SETONE LLLOC,(W1) ;NOTE THIS IS A LOCAL LINK
2456 SKIPL W2,NSPLPB ;GET PORT FOR LOOPBACK
2457 RETSKP ;NOT ACTIVE
2458 MOVE T2,[POINT 7,OURNAM] ;POINT TO OUR NAME
2459 MOVE T3,OURCNT ;LENGTH OF OUR NAME
2460 002256'02 254 00 0 00 007567' JRST DCNOP8 ] ;USE LOOPBACK PORT FOR LINK
2461 002257'02 312 03 0 00 000000* CAME T3,OURCNT ;SAME COUNT AS OUR NAME?
2462 002260'02 254 00 0 00 002272' JRST DCNOP0 ;NO. CAN'T BE US THEN
2463 002261'02 200 01 0 17 777776 MOVE T1,SSVHST ;GET BLOCK POINTER
2464 002262'02 200 02 0 00 007566' MOVE T2,[POINT 7,OURNAM] ;GET POINTER TO OUR NAME
2465 002263'02 260 17 0 00 002322' CALL COMPAR ;SEE IF THE SAME
2466 002264'02 254 00 0 00 002272' JRST DCNOP0 ;NO. SAVE IT THEN
2467 002265'02 205 16 0 00 200000 SETONE LLLOC,(W1) ;YES, NOTE LOCAL LINK
2468 002266'02 436 16 0 05 000002
2469 002267'02 331 06 0 00 000000* SKIPL W2,NSPLPB ;GET PORT FOR LOOPBACK
2470 002270'02 254 00 0 00 002176* RETSKP ;NONE SO JUST RETURN
2471 002271'02 254 00 0 00 002314' JRST DCNOP7 ;HAVE PORT TO USE
2472 002272'02 201 06 0 00 000000* DCNOP0: MOVEI W2,DCN ;GET NUMBER OF PORTS
2473 002273'02 476 00 0 00 000007 SETOM W3 ;WHERE TO REMEMBER MCB PORT
2474 002274'02 370 00 0 00 000006 DCNOP2: SOS W2 ;MAKE NEXT PORT NUMBER
2475 002275'02 335 02 0 06 001401* SKIPGE T2,MCBDTE(W2) ;IS PORT ACTIVE ?
2476 002276'02 603 02 0 00 100000 TXNE T2,NTSHUT ;IS PORT SHUTTING DOWN ?
2477 002277'02 254 00 0 00 002313' JRST DCNOP3 ;CAN'T USE THIS ONE
2478 002300'02 607 02 0 00 040000 TXNN T2,NOTMCB ;IS THIS AN MCB?
2479 002301'02 550 07 0 00 000006 HRRZ W3,W2 ;YES. REMEMBER PORT THEN
2480 002302'02 200 03 0 17 777775 MOVE T3,SSVHSC ;GET COUNT OF CHARS IN NAME
2481 002303'02 135 16 0 00 007576' OPSTR <CAME T3,>,NAMCN,MCBDTE(W2) ;SAME COUNT AS NODE NAME?
2482 002304'02 312 03 0 00 000016
2483 002305'02 254 00 0 00 002313' JRST DCNOP3 ;NO. THIS CAN'T BE IT THEN
2484 002306'02 201 02 0 06 000000* MOVEI T2,ITSNAM(W2) ;ALMOST ADR OF NEIGHBOR'S NAME
2485 002307'02 271 02 0 06 000000 ADDI T2,(W2) ;MAKE NEIGHBORS NAME
2486 002310'02 505 02 0 00 440700 HRLI T2,(POINT 7,) ;FORM POINTER TO NAME
2487 002311'02 200 01 0 17 777776 MOVE T1,SSVHST ;GET BLOCK POINTER AGAIN
2488 002312'02 260 17 0 00 002322' CALL COMPAR ;SEE IF THIS MATCHES
2489 DCNOP3: JRST [JUMPG W2,DCNOP2 ;DIDN'T MATCH, MORE TO CHECK?
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 57-1
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2490 SKIPGE W2,W3 ;NO, WAS THERE AN MCB?
2491 RETBAD (DCNX13) ;NO, "NODE NOT ACCESSIBLE"
2492 002313'02 254 00 0 00 007601' JRST .+1] ;YES, SEND CONNECT TO THE MCB
2493 002314'02 200 02 0 17 777776 DCNOP7: MOVE T2,SSVHST ;GET POINTER TO STRING TO BE MOVED
2494 002315'02 200 03 0 17 777775 MOVE T3,SSVHSC ;GET COUNT
2495 002316'02 137 06 0 00 007605' DCNOP8: STOR W2,LLPRT,(W1) ;SAVE PORT #
2496 002317'02 200 01 0 05 000014 LOAD T1,LLHST,(W1) ;GET ADDRESS OF HOST STRING
2497 002320'02 260 17 0 00 001321' CALL MOVST1 ;AND MOVE IT
2498 002321'02 254 00 0 00 002270* RETSKP ;DONE, ALL STRINGS SAVED. RETURN SUCCESS.
2499
2500 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 58
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2501 ;LOCAL ROUTINE FOR STRSAV TO COMPARE TWO STRINGS
2502 ;ACCEPTS: T1/ POINTER TO STRING 1
2503 ; T2/ POINTER TO STRING 2
2504 ; T3/ COUNT
2505 ;RETURNS: +1 NO MATCH
2506 ; +2 MATCH
2507
2508 002322'02 265 16 0 00 002245* COMPAR: ACVAR <W1,W2,W3> ;GET SOME REGS
2509 002323'02 200 05 0 00 000001 MOVE W1,T1 ;COPY POINTER TO FIRST STRING
2510 002324'02 200 06 0 00 000002 MOVE W2,T2 ;COPY POINTER TO SECOND STRING
2511 002325'02 200 07 0 00 000003 MOVE W3,T3 ;SAV COUNT
2512 002326'02 134 03 0 00 000005 CMPRLP: ILDB T3,W1 ;GET NEXT BYTE
2513 002327'02 134 04 0 00 000006 ILDB T4,W2 ;GET THIS ONE'S NEXT
2514 002330'02 312 03 0 00 000004 CAME T3,T4 ;MATCH?
2515 002331'02 263 17 0 00 000000 RET ;NO. NO MATCH THEN
2516 002332'02 373 00 0 00 000007 SOSLE W3 ;ANY MORE BYTES?
2517 002333'02 326 03 0 00 002326' JUMPN T3,CMPRLP ;DO ENTIRE STRING
2518 002334'02 254 00 0 00 002321* RETSKP ;A MATCH!!!!
2519
2520 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 59
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2521
2522 ;ROUTINE TO INSERT THE LL ADDRESSES IN A MESSAGE.
2523 ;ACCEPTS: T1/ LL BLOCK ADDRESS
2524
2525 RESCD
2526
2527 000133'01 634 02 0 00 000002 PUTLLR: TDZA T2,T2 ;SAY SEND 0 SOURCE IF IN CIR
2528 000134'01 476 00 0 00 000002 PUTLLA: SETOM T2 ;SAY ALWAYS SEND CURRENT SOURCE
2529 000135'01 265 16 0 00 000000* ACVAR <W1> ;GET A WORK REG
2530 000136'01 200 05 0 00 000002 MOVE W1,T2 ;SAVE ENTRY FLAG
2531 000137'01 135 02 0 00 002174' LOAD T2,LLHLK,(T1) ;GET DEST ADDRESS
2532 000140'01 260 17 0 00 000212' CALL TWOBYT ;PUT IT IN
2533 000141'01 550 02 0 01 000002 LOAD T2,LLLNK,(T1) ;GET SOURCE ADDRESS
2534 000142'01 326 05 0 00 000146' JUMPN W1,PUTLL1 ;IF NO REJECT CHECK, GO ON
2535 000143'01 135 05 0 00 002200' LOAD W1,LLSTA,(T1) ;GET LINK STATE
2536 000144'01 306 05 0 00 000003 CAIN W1,LLSCIR ;IS THIS A LINK REJECT THEN?
2537 000145'01 402 00 0 00 000002 SETZM T2 ;YES. SEND 0 SOURCE ADDRESS
2538 000146'01 254 00 0 00 000212' PUTLL1: CALLRET TWOBYT ;AND PUT IT IN
2539
2540
2541 ENDAV. ;END ACVAR
2542 SWAPCD
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 60
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2543
2544 ;ROUTINE TO INSERT CI/CC COMMON FIELDS
2545
2546 ; T1/ LL BLOCK
2547
2548 002335'02 265 16 0 00 002246* DOSRVS: STKVAR <MSGFLG>
2549 002336'02 000001 000001
2550 002337'02 202 02 0 17 777776 MOVEM T2,MSGFLG ;SAVE FLAGS
2551 002340'02 260 17 0 00 000000# CALL PUTLLA ;PUT IN LL ADDRESSES
2552 002341'02 201 02 0 00 000005 MOVEI T2,CISRVS+CIMSCT ;ASSUME SEG COUNTS
2553 002342'02 200 16 0 01 000010 TMNE LLIMS,(T1) ;WANT MESSAGE COUNTS?
2554 002343'02 603 16 0 00 010000
2555 002344'02 201 02 0 00 000011 MOVEI T2,CISRVS+CIMCNT ;YES
2556 002345'02 260 17 0 00 000000# CALL ONEBYT ;PUT IN SERVICES BYTE
2557 002346'02 201 02 0 00 000001 MOVEI T2,LNKPRI ;GET DEFAULT PRIORITY
2558 002347'02 260 17 0 00 000000# CALL ONEBYT
2559 002350'02 135 03 0 00 007606' LOAD T3,IOMODE ;GET FILE OPEN MODE
2560 002351'02 306 03 0 00 000001 CAIN T3,.GSSMB ;SMALL BUFFER MODE?
2561 002352'02 334 03 0 00 007607' SKIPA T3,[SMLSEG] ;YES, USE SMALL SEGSIZ
2562 002353'02 200 03 0 00 000622* MOVE T3,SEGSZ ;NO, USE NORMAL SEGMENT SIZE
2563 002354'02 200 02 0 17 777776 MOVE T2,MSGFLG ;GET MESSAGE TYPE
2564 002355'02 302 02 0 00 000030 CAIE T2,CIMMFL ;IS IT A CI?
2565 JRST [ LOAD T2,LLSWG,(T1) ;NO, A CC - GET CI'S SEG SIZE
2566 CAMLE T2,T3 ;LESS THAN OURS?
2567 MOVE T2,T3 ;NO, USE OURS
2568 TMNE LLLOC,(T1) ;LOCAL CONNECTION?
2569 JRST DOSRV1 ;YES, NO NEED TO CHECK FURTHER
2570 LOAD T4,LLPRT,(T1) ;GET PORT NUMBER
2571 CAMLE T2,NSPMAX(T4) ;LESS THAN PORT'S SEGSIZ?
2572 MOVE T2,NSPMAX(T4) ;NO, USE PORT'S
2573 002356'02 254 00 0 00 007611' JRST DOSRV1]
2574 002357'02 200 02 0 00 000003 MOVE T2,T3 ;USE SEGSIZE SELECTED ABOVE
2575 002360'02 137 02 0 00 007415' DOSRV1: STOR T2,LLSWG,(T1) ;PUT SEG SIZE IN LL BLOCK
2576 002361'02 200 16 0 01 000002 TMNE LLFDI,(T1) ;OPEN IN WORD MODE?
2577 002362'02 603 16 0 00 000010
2578 002363'02 201 02 0 00 000374 MOVEI T2,WSEGSZ ;YES. GET PROPER SEG SIZE
2579 JN LLINT,(T1),[ MOVEI T2,ISEGSZ ;IF INTERNAL LINK USE DIFFERENT
2580 002364'02 200 16 0 01 000002 JRST .+1 ] ; SEGMENT SIZE
2581 002365'02 603 16 0 00 004000
2582 002366'02 254 00 0 00 007623'
2583 002367'02 205 16 0 00 000010 SETZRO LLFDI,(T1) ;INIT THIS FLAG
2584 002370'02 412 16 0 01 000002
2585 002371'02 254 00 0 00 000000# CALLRET TWOBYT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 61
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2586
2587 ;ROUTINE TO BUILD A ROUTING HEADER.
2588 ;ACCEPTS: T1/ LL BLOCK ADDRESS
2589 ; T2/ PROPER MESSAGE FLAGS
2590
2591 RESCD
2592
2593 000147'01 265 16 0 00 000053* RTHDCI: SAVEAC <T2> ;PRESERVE THE FLAGS
2594 000150'01 265 16 0 00 000072* STKVAR <MSGFLG> ;TO SAVE THE FLAGS
2595 000151'01 000001 000001
2596 000152'01 202 02 0 17 777776 MOVEM T2,MSGFLG ;SAVE FLAGS
2597 000153'01 200 16 0 01 000002 JN LLLOC,(T1),RTHDC1 ;JUMP IF LOCAL
2598 000154'01 603 16 0 00 200000
2599 000155'01 254 00 0 00 000164'
2600 000156'01 201 02 0 00 000106 MOVEI T2,RTFLG ;ROUTING FLAGS ARE FIRST
2601 000157'01 260 17 0 00 000207' CALL ONEBYT ;PUT IN FLAGS
2602 000160'01 200 03 0 01 000014 LOAD T3,LLHST,(T1) ;GET HOST STRING POINTER
2603 000161'01 260 17 0 00 000166' CALL ASCIIZ ;GO PUT IN IMAGE ASCII FIELD
2604 000162'01 201 03 0 00 000001* MOVEI T3,OURNAM ;GET OUR NAME
2605 000163'01 260 17 0 00 000166' CALL ASCIIZ ;PUT IT IN
2606 000164'01 200 02 0 17 777776 RTHDC1: MOVE T2,MSGFLG ;GET MESSAGE FLAGS
2607 000165'01 254 00 0 00 000207' CALLRET ONEBYT ;AND PUT IT IN THE MESSAGE
2608
2609 ;ROUTINE TO INSERT IMAGE-ASCII FIELD INTO MESSAGE
2610 ; T2/ COUNT OF BYTES
2611 ;ACCEPTS: T3/ BLOCK ADDRESS
2612
2613 000166'01 205 02 0 00 200000 ASCIIZ: MOVX T2,1B1 ;ENTRY FOR ZERO TERMINATED STRING
2614 000167'01 265 16 0 00 000000* ASCIIC: ACVAR <W1,W2,W3> ;GET A REGISTER
2615 000170'01 200 05 0 00 002201' MOVE W1,[POINT 7,0(T3)] ;GET A BYTE POINTER
2616 000171'01 265 16 0 00 000150* STKVAR <ASCCNT> ;THE COUNT
2617 000172'01 000001 000001
2618 000173'01 202 02 0 17 777776 MOVEM T2,ASCCNT ;SAVE COUNT
2619 000174'01 403 02 0 00 000007 SETZB T2,W3 ;SET COUNT REGS
2620 000175'01 260 17 0 00 000207' CALL ONEBYT ;PUT IN ZERO COUNT
2621 000176'01 200 06 0 01 000016 MOVE W2,LLBPTR(T1) ;SAVE BYTE POINTER
2622 000177'01 375 00 0 17 777776 ASCIIL: SOSGE ASCCNT ;HAVE ANY MORE BYTES?
2623 000200'01 254 00 0 00 000203' JRST ASCIID ;NO. GO WRAP UP
2624 000201'01 134 02 0 00 000005 ILDB T2,W1 ;GET NEXT BYTE
2625 000202'01 327 02 0 00 000205' JUMPG T2,ASCII1 ;NO. IS THIS A NULL?
2626 000203'01 137 07 0 00 000006 ASCIID: DPB W3,W2 ;YES.
2627 000204'01 263 17 0 00 000000 RET ;ALL DONE
2628
2629 000205'01 260 17 0 00 000207' ASCII1: CALL ONEBYT ;STASH IT
2630 000206'01 344 07 0 00 000177' AOJA W3,ASCIIL ;AND DO ENTIRE STRING
2631
2632
2633 ENDAV. ;END ACVAR
2634 SWAPCD
2635
2636 ;MOVE A BINARY FIELD
2637
2638 002372'02 265 16 0 00 001261* MVBNRY: ACVAR <W1,W2> ;GET WORK REGS
2639 002373'02 200 05 0 00 007625' MOVE W1,[POINT 8,0(T3)] ;GET A POINTER
2640 002374'02 200 06 0 00 000002 MOVE W2,T2 ;SAVE COUNT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 61-1
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2641 002375'02 260 17 0 00 000000# MVBNR1: CALL ONEBYT ;PUT IN THE BYTE
2642 002376'02 361 06 0 00 001676* SOJL W2,R ;ANY MORE?
2643 002377'02 134 02 0 00 000005 ILDB T2,W1 ;GET NEXT BYTE
2644 002400'02 254 00 0 00 002375' JRST MVBNR1 ;GO STASH IT
2645
2646 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 62
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2647
2648 ;MORE ROUTINES
2649
2650 ;INSERT BINARY QUANTITY IN A MESSAGE
2651 ;ACCEPTS: 3/ BLOCK ADDRESS
2652
2653 002401'02 265 16 0 00 002322* BININ: ACVAR <W1,W2,W3> ;GET A WORK REG
2654 002402'02 403 02 0 00 000006 SETZB T2,W2
2655 002403'02 505 03 0 00 440700 HRLI T3,(<POINT 7,>) ;FORM A BYTE POINTER
2656 002404'02 260 17 0 00 000000# CALL ONEBYT ;PUT IN COUNT BYTE
2657 002405'02 200 07 0 01 000016 MOVE W3,LLBPTR(T1) ;SAVE POINTER
2658 002406'02 205 05 0 00 777775 BININ1: MOVSI W1,-3 ;DO 3 BYTES
2659 002407'02 400 02 0 00 000000 SETZ T2, ;AN ACCUMULATOR
2660 002410'02 260 17 0 00 002424' BININ2: CALL BINXT ;GET NEXT BYTE
2661 002411'02 254 00 0 00 002415' JRST BININ3 ;DONE
2662 002412'02 242 02 0 00 000003 LSH T2,3 ;ADJUST ACCUMULATOR
2663 002413'02 271 02 0 04 777720 ADDI T2,-"0"(T4) ;PUT IN NEXT BYTE
2664 002414'02 253 05 0 00 002410' AOBJN W1,BININ2 ;DO AN OCTET
2665 002415'02 606 05 0 00 777777 BININ3: TRNN W1,-1 ;FOUND ANY?
2666 002416'02 254 00 0 00 002422' JRST BININ4 ;NO. ALL DONE
2667 002417'02 260 17 0 00 000000# CALL ONEBYT ;YES. PUT IT IN
2668 002420'02 350 00 0 00 000006 AOS W2 ;ONE MORE IN
2669 002421'02 325 05 0 00 002406' JUMPGE W1,BININ1 ;IF MORE TO DO, DO THEM
2670 002422'02 137 06 0 00 000007 BININ4: DPB W2,W3 ;PUT IN FINAL COUNT
2671 002423'02 263 17 0 00 000000 RET ;AND DONE
2672
2673 002424'02 134 04 0 00 000003 BINXT: ILDB T4,T3 ;GET NEXT BYTE
2674 002425'02 322 04 0 00 002376* JUMPE T4,R ;IF THE NULL, ALL DONE
2675 002426'02 254 00 0 00 002334* RETSKP ;A VALID BYTE
2676
2677 ENDAV. ;END ACVAR
2678
2679 ;ROUTINES TO INSERT BYTES IN MESSAGE AND ACCOUNT FOR THEM
2680
2681 ;INSERT ONE BYTE. ACCEPTS: T2/ THE BYTE
2682 ; T1/ LL BLOCK ADDRESS
2683 ;PRESERVES ALL REGISTERS
2684
2685 RESCD
2686 000207'01 136 02 0 01 000016 ONEBYT: IDPB T2,LLBPTR(T1) ;STASH BYTE
2687 000210'01 350 00 0 01 000017 AOS LLBPCT(T1) ;ACCOUNT FOR IT
2688 000211'01 263 17 0 00 000000 RET ;DONE
2689
2690 ;ROUTINE TO INSERT TWO BYTES, EXTENDED OR NOT
2691 ;ACCEPTS: T1/ LL BLOCK ADDRESS
2692 ; T2/ THE BYTE
2693 ;MAY CLOBBER T2.
2694
2695 000212'01 260 17 0 00 000207' TWOBYT: CALL ONEBYT ;STORE LOW ORDER BYTE
2696 000213'01 241 02 0 00 777770 ROT T2,-^D8 ;GET HIGH ORDER BYTE
2697 000214'01 254 00 0 00 000207' CALLRET ONEBYT ;STORE IT
2698 SWAPCD
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 63
NSPSRV MAC 6-Apr-82 10:58 More Link Creation Routines
2699 ;ROUTINES TO FIND AND PARSE ARBITRARY ATTRIBUTES
2700
2701 ;FIND ATTRIBUTE:
2702 ;ACCEPTS: T2/ PREFIX VALUE
2703 ;RETURNS: +1/ NO SUCH PREFIX
2704 ; +2/ FOUND. T3=POINTER TO VALUE STRING
2705
2706 002427'02 550 03 0 11 000361* FNDATR: LOAD T3,FILATL,(JFN) ;GET LIST OF ATTRIBUTES
2707 002430'02 254 00 0 00 002431' CALLRET GETATR ;GO FIND ATTRIBUTE
2708
2709
2710 ;GETATR - ROUTINE TO FIND AN ATTRIBUTE
2711 ;
2712 ;ACCEPTS IN T2/ PREFIX VALUE
2713 ; T3/ ADDRESS OF ATTRIBUTE LIST
2714 ; CALL GETATR
2715 ;RETURNS: +1 FAILED, NO SUCH PREFIX
2716 ; +2 SUCCESS, WITH T3/ POINTER TO VALUE STRING
2717
2718 002431'02 322 03 0 00 002425* GETATR: JUMPE T3,R ;IF NO MORE, ALL DONE
2719 002432'02 135 16 0 00 007626' OPSTR <CAME T2,>,PRFXV,(T3) ;IS THIS THE ONE WE WANT
2720 002433'02 312 02 0 00 000016
2721 JRST [ LOAD T3,PRFXL,(T3) ;NO. GET NEXT
2722 002434'02 254 00 0 00 007627' JRST GETATR] ;AND LOOK AT IT
2723 002435'02 201 03 0 03 000001 MOVEI T3,1(T3) ;GET POINTER TO BLCOK
2724 002436'02 254 00 0 00 002426* RETSKP ;AND SAY WE FOUND IT
2725
2726
2727 ;ROUTINE TO MAKE PROPER BYTE POINTER AND RETURN MAX COUNT FOR A
2728 ;BUFFER.
2729 ;ACCEPTS: T1/ WINDOW ADDRESS
2730 ; T3/ BYTE SIZE
2731 ;RETURNS: +1
2732 ; T1/ BYTE POINTER
2733 ; T2/ COUNT
2734
2735 002437'02 200 04 0 00 000003 MAKPTR: MOVE T4,T3 ;SAVE IT
2736 002440'02 435 03 0 00 004400 IORI T3,4400 ;MAKE A BYTE POINTER
2737 002441'02 137 03 0 00 007631' DPB T3,[POINT 12,T1,11]
2738 002442'02 201 02 0 00 000044 MOVEI T2,44 ;BITS IN A WORD
2739 002443'02 231 02 0 04 000000 IDIVI T2,0(T4) ;COMPUTE BYTES IN A WORD
2740 002444'02 242 02 0 00 000011 LSH T2,PGSFT ;COMPUTE BYTES IN A PAGE
2741 002445'02 263 17 0 00 000000 RET ;AND DONE
2742
2743 ;SPECIAL ROUTINE TO MAKE AN INPUT POINTER FOR FLOW FROM NETWORK
2744
2745 002446'02 261 17 0 00 000003 MAKINP::PUSH P,T3 ;SAVE BYTE SIZE
2746 002447'02 260 17 0 00 002437' CALL MAKPTR ;GET A POINTER
2747 002450'02 262 17 0 00 000003 POP P,T3 ;GET BACK BYTE SIZE
2748 002451'02 306 03 0 00 000044 CAIN T3,44 ;WORD MODE?
2749 002452'02 553 00 0 00 000001 HRRZS T1 ;YES. GET ADDRESS ONLY
2750 002453'02 263 17 0 00 000000 RET ;DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 64
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
2751 SUBTTL MTOPR Utility Functions
2752
2753
2754 ;READ LINK TASK NAME
2755
2756 002454'02 135 02 0 00 007402' NTRTN:: LOAD T2,LLTSK,(T1) ;GET THE NAME
2757 002455'02 260 17 0 00 002467' NTCPY: CALL NTACPY ;DO THE WORK
2758 002456'02 260 17 0 00 000000# CALL BLKULK ;RELEASE LL BLOCK
2759 002457'02 254 00 0 00 002436* RETSKP ;AND DONE
2760
2761 ;READ FOREIGN HOST NAME
2762
2763 002460'02 260 17 0 00 002561' NTRHN:: CALL MTRDCK ;VERIFY LINK STATE
2764 JRST [ MOVEI T1,DCNX11 ;SAY NOT CONNECTED ANYMORE
2765 002461'02 254 00 0 00 007632' JRST SQOBAD] ;AND DONE
2766 002462'02 200 02 0 01 000014 LOAD T2,LLHST,(T1) ;YES. GET HOST STRING
2767 002463'02 200 16 0 01 000002 TMNE LLLOC,(T1) ;LOCAL?
2768 002464'02 603 16 0 00 200000
2769 002465'02 201 02 0 00 000647* MOVEI T2,OURNAM ;YES. USE LOCAL NAME THEN
2770 002466'02 254 00 0 00 002455' CALLRET NTCPY ;AND GO COPY TO USER
2771
2772 ;WORKER ROUTINE TO COPY AN ASCII STRING TO THE USER.
2773 ; T2/ ADDRESS OF STRING BLOCK
2774
2775 002467'02 256 04 0 00 007634' NTACPY: UMOVE T3,3 ;GET USER'S STRING POINTER
2776 002470'02 641 03 0 00 777777 TLC T3,-1
2777 002471'02 647 03 0 00 777777 TLCN T3,-1 ;WANT DEFAULT?
2778 002472'02 505 03 0 00 440700 HRLI T3,(<POINT 7,>) ;USE. DO IT
2779 002473'02 265 16 0 00 002011* ACVAR <W1> ;GET A WORK REG
2780 002474'02 200 05 0 00 007410' MOVE W1,[POINT 7,0(T2)] ;POINT TO SOURCE
2781 002475'02 134 04 0 00 000005 NTCPY1: ILDB T4,W1 ;GET A BYTE
2782 002476'02 322 04 0 00 002501' JUMPE T4,NTCPY2 ;IF NULL, ALL DONE
2783 002477'02 256 03 0 00 007635' XCTBU [IDPB T4,T3] ;STORE BYTE
2784 002500'02 254 00 0 00 002475' JRST NTCPY1 ;DO THEM ALL
2785 002501'02 256 04 0 00 007305' NTCPY2: UMOVEM T3,3 ;RETURN BYTE POINTER
2786 002502'02 256 03 0 00 007635' XCTBU [IDPB T4,T3] ;APPEND A NULL
2787 002503'02 263 17 0 00 000000 RET ;AND DONE
2788
2789 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 65
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
2790
2791 ;MTOPR FUNCTIONS CONTINUED...
2792
2793 ;RDSTS - GET LINK STATUS
2794 ;
2795 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK (ASSUMED LOCKED)
2796 ; CALL RDSTS
2797 ;RETURNS: +1 ALWAYS, WITH T3/ LINK STATUS
2798
2799 002504'02 135 03 0 00 007636' RDSTS:: LOAD T3,LLRSN,(T1) ;GET REASON IN CASE NOW DISCONNECTED
2800 002505'02 200 16 0 01 000002 TMNE LLFOB,(T1) ;IS THIS AN OBJECT?
2801 002506'02 603 16 0 00 000001
2802 002507'02 661 03 0 00 200000 TXO T3,MO%SRV ;YES
2803 002510'02 135 02 0 00 007375' LOAD T2,LLSTA,(T1) ;GET CURRENT STATE
2804 002511'02 306 02 0 00 000004 CAIN T2,LLSRUN ;RUNNING?
2805 002512'02 661 03 0 00 400000 TXO T3,MO%CON ;YES. ALL CONNECTED
2806 002513'02 306 02 0 00 000001 CAIN T2,LLSLIS ;LISTENING?
2807 002514'02 661 03 0 00 100000 TXO T3,MO%WFC ;YES. WAITING FOR INCOMING CONNECT
2808 002515'02 302 02 0 00 000002 CAIE T2,LLSCIS ;CI SENT?
2809 002516'02 306 02 0 00 000003 CAIN T2,LLSCIR ;OR CI RECEIVED?
2810 002517'02 661 03 0 00 040000 TXO T3,MO%WCC ;YES. WAITING FOR CONNECTION TO COMPLETE
2811 002520'02 302 02 0 00 000007 CAIE T2,LLSDIR ;DI RECEIVED?
2812 002521'02 306 02 0 00 000011 CAIN T2,LLSABT ;OR ABORTED?
2813 JRST [ TXO T3,MO%ABT ;YES. ASSUME ABORTED
2814 JE LLFDI,(T1),.+1
2815 TXC T3,MO%ABT!MO%SYN ;NO. SWITCH TO SYNCH DI
2816 002522'02 254 00 0 00 007637' JRST .+1] ;AND PROCEED
2817 002523'02 200 16 0 01 000002 TMNE LLFIM,(T1) ;HAVE WHOLE MESSAGE IN BUFFER?
2818 002524'02 603 16 0 00 000040
2819 002525'02 661 03 0 00 020000 TXO T3,MO%EOM ;YES
2820 002526'02 332 00 0 01 000006 SKIPE LLMSI(T1) ;HAVE ANY INTERRUPT MESSAGES?
2821 002527'02 661 03 0 00 002000 TXO T3,MO%INT ;YES. SAY SO
2822 JN LLLWC,(T1),[TXO T3,MO%LWC ;IF LINK WAS CONNECTED, SO NOTE
2823 002530'02 200 16 0 01 000001 JRST .+1] ;CONTINUE
2824 002531'02 603 16 0 00 100000
2825 002532'02 254 00 0 00 007645'
2826 002533'02 263 17 0 00 000000 RET ;DONE, RETURN
2827
2828 ;MTOPR FUNCTION TO RETURN OBJECT USED TO CONNECT TO THE SERVER
2829
2830 NTRCN:: JE LLFOB,(T1),[CALL BLKULK ;FREE BLOCK
2831 002534'02 200 16 0 01 000002 RETBAD (DESX9)] ;AND RETURN ERROR
2832 002535'02 607 16 0 00 000001
2833 002536'02 254 00 0 00 007647'
2834 002537'02 135 02 0 00 007375' LOAD T2,LLSTA,(T1) ;GET CURRENT STATE
2835 002540'02 306 02 0 00 000001 CAIN T2,LLSLIS ;LISTENING?
2836 JRST [ MOVEI T1,DCNX11 ;YES. NOT CONNECTED
2837 002541'02 254 00 0 00 007632' JRST SQOBAD] ;GO CLEAN UP AND GIVE ERROR
2838 002542'02 550 02 0 01 000033 LOAD T2,LLSOB,(T1) ;GET OBJECT USED TO CONNECT
2839 002543'02 256 04 0 00 007651' UMOVEM T2,3 ;RETURN TO USER
2840 002544'02 260 17 0 00 000000# MTDON: CALL BLKULK ;FREE BLOCK
2841 002545'02 254 00 0 00 002457* RETSKP ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 66
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
2842
2843 ;MORE MTOPR ROUTINES...
2844
2845 ;READ USER NAME
2846
2847 002546'02 260 17 0 00 002556' NTRUS:: CALL MTOBJ ;MAKE SURE IS RUNNING OBJECT
2848 002547'02 254 00 0 00 003677' JRST SQOBAD ;NOT
2849 002550'02 200 02 0 01 000035 LOAD T2,LLUSR,(T1) ;GET BLOCK ADDRESS
2850 002551'02 254 00 0 00 002455' CALLRET NTCPY ;GO DO IT
2851
2852 ;READ ACCOUNT STRING
2853
2854 002552'02 260 17 0 00 002556' NTRAC:: CALL MTOBJ ;MAKE SURE IS RUNNING OBJECT
2855 002553'02 254 00 0 00 003677' JRST SQOBAD ;NOT
2856 002554'02 200 02 0 01 000036 LOAD T2,LLACT,(T1) ;GET BLOCK
2857 002555'02 254 00 0 00 002455' CALLRET NTCPY ;AND GO DO IT
2858
2859 ;COMMON ROUTINE TO VERIFY OBJECT
2860
2861
2862 002556'02 200 16 0 01 000002 MTOBJ: JE LLFOB,(T1),MTOBJ1 ;MAKE SURE IS OBJECT
2863 002557'02 607 16 0 00 000001
2864 002560'02 254 00 0 00 002567'
2865 002561'02 135 02 0 00 007375' MTRDCK: LOAD T2,LLSTA,(T1) ;IT IS. GET CURRENT STATE
2866 002562'02 306 02 0 00 000003 CAIN T2,LLSCIR ;IN CIR STATE?
2867 002563'02 254 00 0 00 002545* RETSKP ;YES. IS GOOD THEN
2868 002564'02 135 02 0 00 007375' MTRNCK::LOAD T2,LLSTA,(T1) ;GET STATE
2869 002565'02 306 02 0 00 000004 CAIN T2,LLSRUN ;RUNNING?
2870 002566'02 254 00 0 00 002563* RETSKP ;YES.
2871 002567'02 254 00 0 00 007416' MTOBJ1: RETBAD (DCNX11) ;NOT A RUNNING OBJECT
2872
2873 ;READ PASSWORD
2874
2875 002570'02 260 17 0 00 002556' NTRPW:: CALL MTOBJ ;MAKE SURE IS RUNNING OBJECT
2876 002571'02 254 00 0 00 003677' JRST SQOBAD ;NOT
2877 002572'02 135 02 0 00 007472' LOAD T2,LLPSW,(T1) ;GET BLOCK ADDRESS
2878 002573'02 135 03 0 00 007652' LOAD T3,LLPCT,(T1) ;AND THE COUNT
2879 002574'02 256 04 0 00 007653' NTCPYB: UMOVEM T3,4 ;RETURN COUNT
2880 002575'02 265 16 0 00 002372* ACVAR <W1,W2> ;GET WORK REGS
2881 002576'02 200 06 0 00 000003 MOVE W2,T3 ;SAVE COUNT
2882 002577'02 200 05 0 00 007654' MOVE W1,[POINT 8,0(T2)] ;GET POINTER TO DATA
2883 002600'02 256 04 0 00 007634' UMOVE T3,3 ;GET USER SP
2884 002601'02 641 03 0 00 777777 TLC T3,-1
2885 002602'02 647 03 0 00 777777 TLCN T3,-1
2886 002603'02 505 03 0 00 440700 HRLI T3,(<POINT 7,>) ;FORM DEFAULT
2887 002604'02 254 00 0 00 002607' JRST NTCP11 ;GO MAKE SURE IS AT LEAST ONE
2888 002605'02 134 04 0 00 000005 NTCP1: ILDB T4,W1 ;GET NEXT BYTE
2889 002606'02 256 03 0 00 007635' XCTBU [IDPB T4,T3] ;STORE IT
2890 002607'02 365 06 0 00 002605' NTCP11: SOJGE W2,NTCP1 ;AND DO THEM ALL
2891 002610'02 256 04 0 00 007305' UMOVEM T3,3 ;RETURN BYTE POINTER
2892 002611'02 260 17 0 00 000000# NTMTGD: CALL BLKULK ;FREE THE BLOCK
2893 002612'02 254 00 0 00 002566* RETSKP ;AND DONE
2894
2895 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 67
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
2896
2897 ;READ OPT DATA
2898
2899 002613'02 135 02 0 00 007421' NTRDA:: LOAD T2,LLOPT,(T1) ;GET OPTIONAL DATA BLOCK
2900 002614'02 135 03 0 00 007655' LOAD T3,LLUCT,(T1) ;GET COUNT
2901 002615'02 254 00 0 00 002574' CALLRET NTCPYB ;AND GO DO IT
2902
2903 ;SET CONNECT DONE INTERRUPT CHANNEL
2904
2905 002616'02 260 17 0 00 002646' MTSETC::CALL CHKCHL ;VERIFY CHANNEL
2906 002617'02 263 17 0 00 000000 RET ;BAD
2907 002620'02 321 02 0 00 002612* JUMPL T2,RSKP ;IF NO CHANGE, DONE
2908 002621'02 137 02 0 00 007656' STOR T2,LLPIC,(T1) ;SAVE CHANNEL
2909 002622'02 135 03 0 00 007375' LOAD T3,LLSTA,(T1) ;GET STATE OF LINK
2910 002623'02 301 03 0 00 000003 CAIL T3,LLSCIR ;NEED INTERRUPT NOW?
2911 002624'02 260 17 0 00 005300' CALL CONINT ;YES. GIVE IT
2912 002625'02 254 00 0 00 002620* RETSKP ;AND DONE
2913
2914 ;SET INTERRUPT MESSAGE CHANNEL
2915
2916 002626'02 260 17 0 00 002646' MTSETI::CALL CHKCHL ;CHECK CHANNEL
2917 002627'02 263 17 0 00 000000 RET ;BAD
2918 002630'02 321 02 0 00 002625* JUMPL T2,RSKP ;IF NO CHANGE, ALL DONE
2919 002631'02 137 02 0 00 007657' STOR T2,LLPII,(T1) ;SAVE CHANNEL
2920 002632'02 332 00 0 01 000006 SKIPE LLMSI(T1) ;HAVE ANY INT MESSAGES
2921 002633'02 260 17 0 00 002662' CALL INTINT ;YES. DO INTERRUPT NOW THEN
2922 002634'02 254 00 0 00 002630* RETSKP ;AND DONE
2923
2924 ;SET DATA ARRIVED INT CHANNEL
2925
2926 002635'02 260 17 0 00 002646' MTSETD::CALL CHKCHL ;VERIFY CHANNEL
2927 002636'02 263 17 0 00 000000 RET
2928 002637'02 321 02 0 00 002634* JUMPL T2,RSKP ;IF NO CHANGE, RETURN
2929 002640'02 137 02 0 00 007660' STOR T2,LLDRC,(T1) ;SAVE CHANNEL
2930 002641'02 200 16 0 01 000020 TMNN LLDRW,(T1) ;HAVE ANY MESSAGES ON RAW Q?
2931 002642'02 607 16 0 00 007400
2932 002643'02 332 00 0 01 000012 SKIPE LLOMSG(T1) ;NO. ANY ORDERED MESSAGES?
2933 002644'02 260 17 0 00 000000# CALL DATINR ;YES. GIVE INT THEN
2934 002645'02 254 00 0 00 002637* RETSKP ;DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 68
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
2935
2936 ;ROUTINE TO VERIFY CHANNEL #
2937 ; T2/ CHANNEL
2938 ;RETURNS: +1 BAD CHANNEL
2939 ; +2 VALID CHANNEL
2940
2941 002646'02 306 02 0 00 000776 CHKCHL: CAIN T2,.MOCIA ;CLEAR?
2942 JRST [ SETZM T2 ;IF SO. UNSETTING
2943 002647'02 254 00 0 00 007661' RETSKP] ;SO, RETURN A ZERO
2944 002650'02 306 02 0 00 000777 CAIN T2,.MONCI ;NO CHANGE?
2945 JRST [ SETOM T2 ;YES
2946 002651'02 254 00 0 00 007663' RETSKP] ;SO SAY SO
2947 002652'02 301 02 0 00 000044 CAIL T2,44 ;WITHIN RANGE?
2948 002653'02 254 00 0 00 002661' JRST CHKILL ;NO
2949 002654'02 303 02 0 00 000005 CAILE T2,5 ;WITHIN RANGE 0-5?
2950 002655'02 301 02 0 00 000027 CAIL T2,^D23 ;OR WITHIN RANGE 23-35
2951 002656'02 354 00 0 00 000002 AOSA T2 ;YES. A GOOD CHANNEL
2952 002657'02 254 00 0 00 002661' JRST CHKILL ;NO. ILLEGAL
2953 002660'02 254 00 0 00 002645* RETSKP ;RETURN GOOD VALUE
2954 002661'02 254 00 0 00 007665' CHKILL: RETBAD (ARGX13) ;INVALID CHANNEL
2955
2956 ;COMMON ROUTINE TO GENERATE INTERRUPT RECEIVED INTERRUPT
2957
2958 002662'02 265 16 0 00 002071* INTINT: SAVET ;SAVE REGS
2959 002663'02 260 17 0 00 002672' CALL TELINT ;GO NOTIFY DRIVER IF THIS IS AN INTERNAL LINK
2960 002664'02 554 02 0 01 000003 LOAD T2,LLFRK,(T1) ;GET FORK TO INT
2961 002665'02 135 16 0 00 007657' OPSTR <SKIPN T1,>,LLPII,(T1) ;HAVE AN INT CHANNEL?
2962 002666'02 336 01 0 00 000016
2963 002667'02 263 17 0 00 000000 RET ;NO
2964 002670'02 370 00 0 00 000001 SOS T1 ;YES
2965 002671'02 254 00 0 00 000733* CALLRET PSIRQ ;GO DO THE INTERRUPT
2966
2967
2968
2969 ;TELINT - ROUTINE TO NOTIFY THE DRIVER WHEN AN INTERRUPT MSG IS RECEIVED
2970 ; FOR AN INTERNAL LOGICAL LINK
2971 ;
2972 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
2973 ; CALL TELINT
2974 ;RETURNS: +1 ALWAYS, WITH DRIVER NOTIFIED
2975
2976 002672'02 200 16 0 01 000002 TELINT: JE LLINT,(T1),R ;IF NOT AN INTERNAL LINK, THEN DONE
2977 002673'02 607 16 0 00 004000
2978 002674'02 254 00 0 00 002431*
2979 002675'02 265 16 0 00 002662* SAVET ;PRESERVE TEMPORARY AC'S
2980 002676'02 200 04 0 01 000034 LOAD T4,LLVEC,(T1) ;GET DRIVER VECTOR ADDRESS
2981 002677'02 200 01 0 01 000033 LOAD T1,LLDRV,(T1) ;GET DRIVER CORRELATION CODE
2982 002700'02 254 00 1 04 000005 CALLRET @.NSINT(T4) ;NOTIFY DRIVER AND RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 69
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
2983 ;MORE MTORP FUNCTIONS...
2984
2985 ;RECEIVE INTERRUPT MESSAGE
2986
2987 MTRDIN::MOVE T2,[IFIW![ XCTBUU [IDPB T2,3] ;ROUTINE TO RETURN BYTE
2988 002701'02 200 02 0 00 007672' RET ]] ; AND DONE
2989 002702'02 256 04 0 00 007634' UMOVE T3,3 ;GET USER'S DESTINATION POINTER
2990 002703'02 260 17 0 00 002721' CALL RDINT ;GO READ AN INTERRUPT MESSAGE
2991 JRST [ JUMPE T2,SQOBAD ;FAILED, RETURN ERROR
2992 002704'02 254 00 0 00 007673' JRST ULKRET ] ; OR BLOCK IF NEEDED
2993 002705'02 256 04 0 00 007653' UMOVEM T3,4 ;RETURN BYTE POINTER
2994 002706'02 256 04 0 00 007675' UMOVEM T4,3 ;RETURN COUNT TO USER
2995 002707'02 261 17 0 00 000002 PUSH P,T2 ;STASH MESSAGE ADDRESS
2996 002710'02 260 17 0 00 000000# CALL BLKULK ;DONE WITH BLOCK
2997 002711'02 262 17 0 00 000001 POP P,T1 ;RETRIEVE MESSAGE ADDRESS
2998 002712'02 260 17 0 00 001613* CALL RELRES ;RELEASE MESSAGE
2999 002713'02 254 00 0 00 002660* RETSKP ;AND DONE
3000
3001
3002
3003
3004 ;ULKRET - ROUTINE TO UNLOCK LOGICAL LINK BLOCK AND GIVE BLOCK-NEEDED RETURN
3005 ;
3006 ;ACCEPTS IN JFN/ ADDRESS OF JFN BLOCK
3007 ; JRST ULKRET
3008 ;RETURNS TO CALLER WITH BLKF SET
3009
3010 002714'02 661 10 0 00 000040 ULKRET: TQO <BLKF> ;NOTE BLOCK IS NEEDED
3011 002715'02 250 01 0 11 000606* EXCH T1,FILLLB(JFN) ;SAVE ERROR. GET BLOCK ADDRESS
3012 002716'02 260 17 0 00 000000# CALL BLKULK ;FREE BLOCK
3013 002717'02 250 01 0 11 002715* EXCH T1,FILLLB(JFN) ;GET BACK ERROR
3014 002720'02 263 17 0 00 000000 RETBAD () ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 70
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
3015 ;RDINT - ROUTINE TO READ AN INTERRUPT MESSAGE
3016 ;
3017 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
3018 ; T2/ ADDRESS OF ROUTINE TO STORE BYTES
3019 ; (SHOULD ASSUME BYTE POINTER IS IN T3)
3020 ; T3/ DESTINATION BYTE POINTER
3021 ; CALL RDINT
3022 ;RETURNS: +1 FAILED, T2/ 0 => DO NOT BLOCK, T2/ -1 => BLOCK
3023 ; +2 SUCCESS, INTERRUPT MESSAGE DELIVERED, WITH
3024 ; T2/ ADDRESS OF MESSAGE
3025 ; T3/ UPDATED COUNT
3026 ; T4/ UPDATED POINTER
3027
3028 002721'02 265 16 0 00 002473* RDINT:: ACVAR <W1>
3029 002722'02 265 16 0 00 002335* STKVAR <RDICNT,RDIPTR,RDIRTN>
3030 002723'02 000003 000003
3031 002724'02 202 01 0 00 000005 MOVEM T1,W1 ;SAVE LL BLOCK ADDRESS
3032 002725'02 202 02 0 17 777774 MOVEM T2,RDIRTN ;SAVE ROUTINE TO STORE BYTES
3033 002726'02 202 03 0 17 777775 MOVEM T3,RDIPTR ;SAVE DESTINATION BYTE POINTER
3034 002727'02 260 17 0 00 002564' RDINT1: CALL MTRNCK ;CHECK STATE
3035 002730'02 254 00 0 00 002762' JRST RDINX ;FAIL, NOT IN RUN STATE
3036 002731'02 336 02 0 01 000006 SKIPN T2,LLMSI(T1) ;HAVE AN INT MESSAGE?
3037 JRST [ MOVX T1,DCNX15 ;NO INTERRUPT MESSAGE AVAILABLE
3038 002732'02 254 00 0 00 007676' JRST RDINX ] ;RETURN ERROR
3039 002733'02 201 02 0 00 000001 MOVEI T2,1 ;ASK FOR ONE MORE
3040 002734'02 201 03 0 00 000001 MOVEI T3,MSLSI ; INTERRUPT MESSAGE
3041 002735'02 260 17 0 00 000000# CALL SNDLS ;SEND MESSAGE
3042 JRST [ MDISMS ;CAN'T, WAIT A BIT
3043 MOVE T1,W1 ;RETRIEVE THE LL BLOCK ADDRESS
3044 002736'02 254 00 0 00 007700' JRST RDINT1] ;TRY IT AGAIN
3045 002737'02 200 02 0 01 000006 MOVE T2,LLMSI(T1) ;GET BACK MESSAGE
3046 002740'02 135 04 0 00 007703' LOAD T4,MSDTC,(T2) ;GET COUNT
3047 002741'02 202 04 0 17 777776 MOVEM T4,RDICNT ;SAVE COUNT
3048 002742'02 202 04 0 00 000005 MOVEM T4,W1 ;AND SAVE AS LOOP VARIABLE
3049 002743'02 200 03 0 17 777775 MOVE T3,RDIPTR ;GET DESTINATION POINTER SUPPLIED
3050 002744'02 641 03 0 00 777777 TLC T3,-1
3051 002745'02 647 03 0 00 777777 TLCN T3,-1
3052 002746'02 505 03 0 00 440700 HRLI T3,(<POINT 7,>) ;GET DEFAULT
3053 002747'02 202 03 0 17 777775 MOVEM T3,RDIPTR ;SAVE POINTER
3054 002750'02 200 04 0 02 000003 MOVE T4,MSBPTR(T2) ;GET POINTER TO MESSAGE DATA
3055 002751'02 254 00 0 00 002754' JRST MTRDI2 ;GO MOVE DATA
3056
3057 002752'02 134 02 0 00 000004 MTRDI1: ILDB T2,T4 ;GET NEXT BYTE
3058 002753'02 260 17 1 17 777774 CALL @RDIRTN ;STORE A BYTE
3059 002754'02 365 05 0 00 002752' MTRDI2: SOJGE W1,MTRDI1 ;DO THEM ALL
3060 002755'02 200 02 0 01 000006 MOVE T2,LLMSI(T1) ;GET BACK MESSAGE
3061 002756'02 402 00 0 01 000006 SETZM LLMSI(T1) ;NONE NOW
3062 002757'02 200 03 0 17 777776 MOVE T3,RDICNT ;RESTORE COUNT
3063 002760'02 200 04 0 17 777775 MOVE T4,RDIPTR ;RESTORE POINTER
3064 002761'02 254 00 0 00 002713* RETSKP ;DONE, RETURN SUCCESS
3065
3066 ; HERE ON AN ERROR
3067
3068 002762'02 634 02 0 00 000002 RDINX: TDZA T2,T2 ;NOTE BLOCK NOT WANTED
3069 002763'02 476 00 0 00 000002 RDINB: SETOM T2 ;BLOCK NEEDED
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 70-1
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
3070 002764'02 263 17 0 00 000000 RET ;FAIL
3071
3072 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 71
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
3073
3074 ;MORE MTOPR'S.... SEND INTERRUPT MESSAGE
3075
3076 002765'02 256 04 0 00 007704' MTSNIN::UMOVE T4,4 ;GET COUNT
3077 002766'02 256 04 0 00 007634' UMOVE T3,3 ;GET BP
3078 002767'02 256 04 0 00 007704' UMOVE T4,4 ;GET COUNT
3079 MOVE T2,[IFIW![ XCTBUU [ILDB T2,3]
3080 002770'02 200 02 0 00 007710' RET]] ;ROUTINE TO GET BYTES
3081 002771'02 260 17 0 00 002777' CALL SNINT ;SEND THE INTERRUPT MESSAGE
3082 002772'02 254 00 0 00 003677' JRST SQOBAD ;FAILED, RETURN ERROR
3083 002773'02 256 04 0 00 007305' UMOVEM T3,3 ;STORE UPDATED BYTE POINTER
3084 002774'02 200 01 0 11 002717* MOVE T1,FILLLB(JFN) ;GET BACK BLOCK ADDRESS
3085 002775'02 260 17 0 00 000000# CALL BLKULK ;UNLOCK THE LOGICAL LINK BLOCK
3086 002776'02 254 00 0 00 002761* RETSKP ;DONE, RETURN SUCCESS
3087
3088
3089 ;SNINT - ROUTINE TO SEND AN INTERRUPT MESSAGE
3090 ;
3091 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
3092 ; T2/ ADDRESS OF ROUTINE TO GET BYTES
3093 ; (PLACES BYTE IN T2, ASSUMES PTR IN T3)
3094 ; T3/ BYTE POINTER FOR GETTING BYTES
3095 ; T4/ COUNT OF BYTES TO SEND
3096 ; CALL SNINT
3097 ;RETURNS: +1 FAILED, ERROR CODE IN T1
3098 ; +2 SUCCESS, WITH T3/ UPDATED BYTE POINTER
3099
3100 002777'02 265 16 0 00 002721* SNINT:: ACVAR <W1> ;CAN SEND IT
3101 003000'02 265 16 0 00 002722* STKVAR <SIMLLB,SIMRTN,SIMPTR,SIMCNT>
3102 003001'02 000004 000004
3103 003002'02 202 02 0 17 777775 MOVEM T2,SIMRTN ;SAVE ROUTINE ADDRESS
3104 003003'02 202 03 0 17 777774 MOVEM T3,SIMPTR ;SAVE POINTER FOR GETTING BYTES
3105 003004'02 202 04 0 17 777773 MOVEM T4,SIMCNT ;SAVE COUNT OF BYTES TO SEND
3106 003005'02 260 17 0 00 002564' CALL MTRNCK ;MAKE SURE IS RUNNING
3107 003006'02 263 17 0 00 000000 RET ;NOT IN RUN STATE, FAIL
3108 003007'02 200 04 0 17 777773 MOVE T4,SIMCNT ;GET COUNT
3109 003010'02 303 04 0 00 000020 CAILE T4,MAXDSC ;WITHIN RANGE?
3110 JRST [ MOVEI T1,DCNX12 ;ARG TOO LARGE
3111 003011'02 254 00 0 00 007176' RET ] ;RETURN ERROR
3112 JE LLMIC,(T1),[ MOVEI T1,DCNX14 ;ANY QUOTA?
3113 003012'02 200 16 0 01 000015 RET ] ;NO, FAIL
3114 003013'02 607 16 0 00 770000
3115 003014'02 254 00 0 00 007711'
3116 003015'02 201 01 0 00 000021 MOVEI T1,INTLEN+MSHDR ;LENGTH
3117 003016'02 260 17 0 00 000000# CALL GETRES ;GET SOME SPACE
3118 003017'02 263 17 0 00 000000 RET ;NO SPACE, FAIL
3119 003020'02 200 05 0 00 000001 MOVE W1,T1 ;SAVE BLOCK ADDRESS
3120 003021'02 201 02 0 01 000007 MOVEI T2,MSHDR(T1) ;GET TO DATA PART
3121 003022'02 505 02 0 00 441000 HRLI T2,(<POINT 8,>)
3122 003023'02 200 01 0 11 002774* MOVE T1,FILLLB(JFN) ;GET LL BLOCK
3123 003024'02 202 02 0 01 000016 MOVEM T2,LLBPTR(T1) ;THE POINTER
3124 003025'02 402 00 0 01 000017 SETZM LLBPCT(T1) ;INIT COUNT
3125 003026'02 201 02 0 00 000060 MOVEI T2,DATMFL+DATFLI+DATINT ;FLAGS
3126 003027'02 137 02 0 00 007713' STOR T2,MSMFL,(W1) ;SAVE IN MESSAGE
3127 003030'02 260 17 0 00 000000# CALL RTHDCI ;PUT ON ROUTE HEADER AND FLAGS
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 71-1
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
3128 003031'02 260 17 0 00 000000# CALL PUTLLA ;PUT IN LL ADDRESSES
3129 003032'02 135 02 0 00 007714' LOAD T2,LLISN,(T1) ;GET SEG #
3130 003033'02 350 00 0 00 000002 AOS T2 ;NEXT ONE
3131 003034'02 405 02 0 00 007777 ANDI T2,7777 ;MOD 4096
3132 003035'02 137 02 0 00 007715' STOR T2,MSSEG,(W1) ;SAVE IN MESSAGE
3133 003036'02 137 02 0 00 007714' STOR T2,LLISN,(T1) ;LAST SEG SENT
3134 003037'02 260 17 0 00 000000# CALL TWOBYT ;PUT IN DATA PART
3135 003040'02 205 16 0 00 770000 DECR LLMIC,(T1) ;ONE LESS PIECE OF QUOTA
3136 003041'02 272 16 0 01 000015
3137 003042'02 200 04 0 17 777773 MOVE T4,SIMCNT ;GET COUNT
3138 003043'02 200 03 0 17 777774 MOVE T3,SIMPTR ;GET POINTER
3139 003044'02 641 03 0 00 777777 TLC T3,-1
3140 003045'02 647 03 0 00 777777 TLCN T3,-1
3141 003046'02 505 03 0 00 440700 HRLI T3,(<POINT 7,>) ;FORM DEFAULT
3142 003047'02 202 03 0 17 777774 MOVEM T3,SIMPTR ;SAVE UPDATED POINTER
3143 003050'02 254 00 0 00 003053' JRST MSTSN2 ;GO SEND THEM
3144 003051'02 260 17 1 17 777775 MSTSN1: CALL @SIMRTN ;GET NEXT BYTE
3145 003052'02 260 17 0 00 000000# CALL ONEBYT ;STORE IN MESSAGE
3146 003053'02 365 04 0 00 003051' MSTSN2: SOJGE T4,MSTSN1 ;DO THEM ALL
3147 003054'02 550 02 0 01 000002 LOAD T2,LLLNK,(T1) ;GET LINK ADDRESS
3148 003055'02 137 02 0 00 007716' STOR T2,MSLLA,(W1) ;SAVE IN MESSAGE
3149 003056'02 201 02 0 00 000001 MOVEI T2,MSLSI ;GET TYPE OF THIS MESSAGE
3150 003057'02 137 02 0 00 007717' STOR T2,MSTOM,(W1) ;SAVE IN MESSAGE
3151 003060'02 200 02 0 00 000005 MOVE T2,W1 ;GET MESSAGE
3152 003061'02 260 17 0 00 000000# CALL SNDSEG ;SEND IT
3153 003062'02 200 03 0 17 777774 MOVE T3,SIMPTR ;RETURN UPDATED POINTER
3154 003063'02 254 00 0 00 002776* RETSKP ;DONE, RETURN SUCCESS
3155
3156 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 72
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
3157
3158 ;MTOPR ROUTINE TO RETURN OBJECT-DESCRIPTOR.
3159 ;RETURNS OBJECT-DESCRIPTOR IN STRING POINTED TO BY USER AC3
3160 ;RETURNS USER,GROUP CODE IN AC4 (OR A ZERO IN AC4 IF NONE).
3161
3162 003064'02 200 16 0 01 000002 NTRCOB::JE LLFOB,(T1),NTRCB1 ;MAKE SURE IT IS AN OBJECT
3163 003065'02 607 16 0 00 000001
3164 003066'02 254 00 0 00 003073'
3165 003067'02 135 02 0 00 007375' LOAD T2,LLSTA,(T1) ;GET STATE
3166 003070'02 302 02 0 00 000003 CAIE T2,LLSCIR ;RECIEVED A CI?
3167 003071'02 306 02 0 00 000004 CAIN T2,LLSRUN ;OR RUNNING?
3168 003072'02 334 00 0 00 000000 SKIPA ;YES
3169 NTRCB1: JRST [ CALL BLKULK ;NO. UNLOCK BLOCK
3170 003073'02 254 00 0 00 007720' JRST MTOBJ1] ;AND DONE
3171 003074'02 200 02 0 01 000040 MOVE T2,LLUSGP(T1) ;GET USER,GROUP
3172 003075'02 256 04 0 00 007722' UMOVEM T2,4 ;RETURN IT
3173 003076'02 135 02 0 00 007723' LOAD T2,LLFNM,(T1) ;GET OBJ NUMBER USED IN CI
3174 003077'02 200 03 0 00 007724' MOVE T3,[-OBJENT,,OBJPRO+1] ;SET UP FOR SEARCH
3175 003100'02 550 04 0 03 000000 NTRCB2: HRRZ T4,0(T3) ;GET OBJECT NUMBER
3176 003101'02 306 04 0 02 000000 CAIN T4,0(T2) ;THIS THE ONE?
3177 JRST [ HLRZ T2,0(T3) ;YES. GET POINTER TO NAME
3178 003102'02 254 00 0 00 007725' JRST NTRCB3] ;AND PROCEED
3179 003103'02 253 03 0 00 003100' AOBJN T3,NTRCB2 ;NO. LOOK AT NEXT
3180 003104'02 265 16 0 00 003000* STKVAR <NTRCBN> ;NOT FOUND
3181 003105'02 000001 000001
3182 003106'02 201 03 0 00 000012 MOVEI T3,12 ;CONVERT OBJECT NUMBER TO TEXT
3183 003107'02 561 01 0 17 777776 HRROI T1,NTRCBN
3184 003110'02 104 00 0 00 000224 NOUT
3185 003111'02 255 00 0 00 000000 JFCL
3186 003112'02 200 01 0 11 003023* MOVE T1,FILLLB(JFN) ;GET BACK LL BLOCK
3187 003113'02 201 02 0 17 777776 MOVEI T2,NTRCBN ;GET POINTER TO NUMBER
3188 003114'02 260 17 0 00 002467' NTRCB3: CALL NTACPY ;PUT OBJECT STRING IN USER SPACE
3189 003115'02 135 03 0 00 007471' LOAD T3,LLFDS,(T1) ;GET DESCRIPTOR
3190 003116'02 336 00 0 03 000000 SKIPN 0(T3) ;HAVE ONE?
3191 003117'02 254 00 0 00 002544' JRST MTDON ;NO. ALL DONE THEN
3192 003120'02 201 02 0 00 007727' MOVEI T2,[ASCIZ /-/] ;YES. PUT IN PUNCTUATION
3193 003121'02 260 17 0 00 002467' CALL NTACPY
3194 003122'02 135 02 0 00 007471' LOAD T2,LLFDS,(T1) ;GET BACK DESCRIPTOR STRING
3195 003123'02 254 00 0 00 002455' CALLRET NTCPY ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 73
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
3196
3197 ;MTOPR FUNCTION TO REFUSE A CONNECTION
3198 ;*************** NOTE *******************
3199 ;THIS CODE HAS A RACE IN THAT THE LINK IS IMMEDIATELY CONVERTED
3200 ;INTO A "LISTENER". THEREFORE, WHEN THE DC ARRIVES, THERE
3201 ;IS POTENTIAL CONFUSION OVER THE OWNER. THE
3202 ;PROBABILITY OF FAILURE IS <1/(HOSTS*2**16)> WHERE,
3203 ;"HOSTS" = # OF HOSTS ON THE NET.
3204
3205 003124'02 260 17 0 00 003206' NTRJCT: CALL NTRFCI ;SEND DI
3206 003125'02 254 00 0 00 003677' JRST SQOBAD ;NEED TO BLOCK
3207 003126'02 260 17 0 00 000000# CALL FLUSH ;KILL OF BUFFERS (IF ANY)
3208 003127'02 260 17 0 00 001652' CALL CLRBLK ;RESET LL BLOCK
3209 003130'02 201 02 0 00 000001 MOVEI T2,LLSLIS ;GET NEW STATE
3210 003131'02 137 02 0 00 007375' STOR T2,LLSTA,(T1) ;SET IT BACK TO LISTENING
3211 003132'02 254 00 0 00 002611' CALLRET NTMTGD ;AND DONE
3212
3213 ;MTOPR FUNCTION TO CLOSE A CONNECTION
3214
3215 003133'02 135 02 0 00 007375' NTMTCZ::LOAD T2,LLSTA,(T1) ;GET CURRENT STATE
3216 003134'02 306 02 0 00 000003 CAIN T2,LLSCIR ;REALLY REJECTING A CONNECTION?
3217 003135'02 254 00 0 00 003124' CALLRET NTRJCT ;YES. GO DO IT
3218 003136'02 306 02 0 00 000006 CAIN T2,LLSDIQ ;DI QUEUED?
3219 003137'02 254 00 0 00 003155' JRST NTMCZ0 ;YES. GO ON THEN
3220 003140'02 302 02 0 00 000004 CAIE T2,LLSRUN ;NOW CONNECTED?
3221 003141'02 254 00 0 00 003073' JRST NTRCB1 ;NO. CAN'T DISCONNECT THEN
3222 003142'02 256 04 0 00 007730' UMOVE T2,2 ;GET REASON,,.MOCLZ
3223 003143'02 557 00 0 00 000002 HLRZS T2 ;GET TYPE OF CLOSE
3224 003144'02 332 00 0 00 000002 SKIPE T2 ;SYNCHRONOUS DISCONNECT?
3225 JRST [ CALL FLUSH ;NO, ABORT CLOSE. CLEAN OUT MESSAGES
3226 003145'02 254 00 0 00 007731' JRST NTMCZ0] ;AND SEND THE MESSAGE
3227 003146'02 200 16 0 01 000023 JE LLQOU,(T1),NTMCZ0 ;IF QUEUER EMPTY, GO ON.
3228 003147'02 606 16 0 00 000377
3229 003150'02 254 00 0 00 003155'
3230 003151'02 260 17 0 00 000000# CALL MOVSEG ;PICK UP ACKS
3231 003152'02 254 00 0 00 003546' JRST OUTWAT ;NEED TO BLOCK
3232 003153'02 201 02 0 00 000000# MOVEI T2,CHKEMP ;WAIT FOR ALL ACKS
3233 003154'02 254 00 0 00 003546' JRST OUTWAT ; AND GO DO IT
3234
3235 ;READY TO SEND THE MESSAGE
3236
3237 003155'02 201 02 0 00 000006 NTMCZ0: MOVEI T2,LLSDIQ ;SET STATE
3238 003156'02 137 02 0 00 007375' STOR T2,LLSTA,(T1) ;""
3239 003157'02 260 17 0 00 003206' CALL NTRFCI ;SEND DI
3240 003160'02 254 00 0 00 003677' JRST SQOBAD ;MUST WAIT
3241 003161'02 201 02 0 00 000005 MOVEI T2,LLSDIS ;NEW STATE
3242 003162'02 137 02 0 00 007375' STOR T2,LLSTA,(T1) ;STORE IT
3243 003163'02 254 00 0 00 002611' CALLRET NTMTGD ;AND DONE
3244
3245 ;ROUTINE TO ACCEPT A CONNECTION
3246
3247 003164'02 265 16 0 00 003104* NTACPT::STKVAR <<OPTDAT,4>>
3248 003165'02 000004 000004
3249 003166'02 135 02 0 00 007375' LOAD T2,LLSTA,(T1) ;GET STATE
3250 003167'02 302 02 0 00 000003 CAIE T2,LLSCIR ;PROPER STATE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 73-1
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
3251 003170'02 254 00 0 00 003073' JRST NTRCB1 ;NO. ERROR
3252 003171'02 201 03 0 17 777773 MOVEI T3,OPTDAT ;MOVE OPTDATA IF ANY
3253 003172'02 256 04 0 00 007733' UMOVE T2,4 ;GET COUNT
3254 003173'02 256 04 0 00 007734' UMOVE T4,3 ;GET USER'S POINTER
3255 003174'02 260 17 0 00 003223' CALL NTMVOP ;GET OPTDATA ARG
3256 003175'02 254 00 0 00 003677' JRST SQOBAD ;TOO LONG
3257 003176'02 260 17 0 00 003707' CALL CNFCOM ;GO CONFIRM IT
3258 003177'02 254 00 0 00 003677' JRST SQOBAD ;NEED TO WAIT
3259 003200'02 254 00 0 00 002611' CALLRET NTMTGD ;DONE
3260
3261 ;MTOPR TO RETURN MAX SEGMENT SIZE FOR THE LINK
3262
3263 003201'02 260 17 0 00 002564' MTGSS:: CALL MTRNCK ;MUST BE RUNNING
3264 003202'02 254 00 0 00 003677' JRST SQOBAD ;NOT
3265 003203'02 135 02 0 00 007415' LOAD T2,LLSWG,(T1) ;GET MAX SEG SIZE
3266 003204'02 256 04 0 00 007651' UMOVEM T2,3 ;RETURN TO USER
3267 003205'02 254 00 0 00 002611' CALLRET NTMTGD ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 74
NSPSRV MAC 6-Apr-82 10:58 MTOPR Utility Functions
3268
3269 ;COMMON ROUTINE USED TO SET UP FOR CALL TO SNDDI TO DISCONNECT
3270 ;OR REFUSE A CONNECTION.
3271
3272 003206'02 265 16 0 00 003164* NTRFCI: STKVAR <<OPTDAT,4>> ;GET SOME SPACE TO HOLD USER DATA
3273 003207'02 000004 000004
3274 003210'02 201 03 0 17 777773 MOVEI T3,OPTDAT ;WHERE TO MOVE OPTDATA TO
3275 003211'02 256 04 0 00 007733' UMOVE T2,4 ;GET COUNT
3276 003212'02 256 04 0 00 007734' UMOVE T4,3 ;GET USER'S POINTER
3277 003213'02 260 17 0 00 003223' CALL NTMVOP ;DO IT
3278 003214'02 263 17 0 00 000000 RETBAD() ;TOO LONG
3279 003215'02 256 04 0 00 007735' XCTU [HLRZ T2,2] ;GET REASON
3280 003216'02 201 04 0 00 000070 MOVEI T4,CNMRFL+CNMDI ;GET PROPER FLAGS
3281 003217'02 260 17 0 00 003374' CALL SNDDI ;SEND THE DI
3282 JRST [ TQO <BLKF> ;SCHED TEST ALREADY IN T1, NOTE BLOCK NEEDED
3283 003220'02 254 00 0 00 007251' RET ] ;COME BACK AGAIN LATER
3284 003221'02 260 17 0 00 000000# CALL SNDCTL ;SEND THE MESSAGE
3285 003222'02 254 00 0 00 003063* RETSKP ;AND DONE
3286
3287 ;ROUTINE TO COPY OPTDATA TO A BUFFER AND RETURN PROPER OPTDATA
3288 ;ARG
3289 ; T2/ INPUT BYTE COUNT
3290 ; T3/ BUFFER ADDRESS
3291 ; T4/ INPUT POINTER
3292 ;RETURNS: +1 TOO LONG
3293 ; +2 DONE
3294
3295 003223'02 265 16 0 00 002401* NTMVOP::ACVAR <W1,W2,W3>
3296 003224'02 265 16 0 00 003206* STKVAR <NMVCNT,NMVPTR>
3297 003225'02 000002 000002
3298 003226'02 641 04 0 00 777777 TLC T4,-1 ;CHECK FOR SPECIAL POINTER
3299 003227'02 647 04 0 00 777777 TLCN T4,-1 ;IS IT?
3300 003230'02 505 04 0 00 440700 HRLI T4,(<POINT 7,>) ;YES. CONVERT IT THEN
3301 003231'02 202 04 0 17 777775 MOVEM T4,NMVPTR ;SAVE POINTER TO INPUT
3302 003232'02 202 02 0 17 777776 MOVEM T2,NMVCNT ;SAVE COUNT OF BYTES
3303 003233'02 200 07 0 00 000003 MOVE W3,T3 ;SAVE BUFFER ADDRESS
3304 003234'02 402 00 0 00 000003 SETZM T3 ;ASSUME NO DATA
3305 003235'02 200 04 0 17 777776 MOVE T4,NMVCNT ;GET COUNT
3306 003236'02 322 04 0 00 003222* JUMPE T4,RSKP ;IF NONE, NO ARG
3307 003237'02 331 00 0 00 000004 SKIPL T4 ;COUNT MUST BE POSITIVE
3308 003240'02 303 04 0 00 000020 CAILE T4,MAXDSC ;WITHING LIMITS
3309 003241'02 254 00 0 00 007176' RETBAD (DCNX12) ;NO. TOO LONG
3310 003242'02 137 04 0 00 007736' STOR T4,CNTFLD,W3 ;BUILD RETURN ARG
3311 003243'02 200 06 0 00 007737' MOVE W2,[POINT 8,0(W3)] ;GET POINTER TO SOURCE
3312 003244'02 200 03 0 17 777775 MOVE T3,NMVPTR ;GET USER'S POINTER
3313 003245'02 256 03 0 00 007740' NTMVO1: XCTBU [ILDB W1,T3] ;GET BYTE
3314 003246'02 136 05 0 00 000006 IDPB W1,W2 ;STASH IT
3315 003247'02 367 04 0 00 003245' SOJG T4,NTMVO1 ;COPY THEM ALL
3316 003250'02 200 03 0 00 000007 MOVE T3,W3 ;GET ARG
3317 003251'02 254 00 0 00 003236* RETSKP ;AND DONE
3318
3319 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 75
NSPSRV MAC 6-Apr-82 10:58 Routines to CLose a Logical Link
3320 SUBTTL Routines to CLose a Logical Link
3321
3322
3323 003252'02 265 16 0 00 002575* NETCLZ::ACVAR <W1,W2> ;GET SOME WORK REGISTERS
3324 003253'02 200 06 0 00 000001 MOVE W2,T1 ;SAVE ENTRY FLAGS
3325 003254'02 260 17 0 00 000533' CALL NETUOU ;UNDO OUTPUT
3326 003255'02 200 01 0 11 003112* NETCL1: MOVE T1,FILLLB(JFN) ;GET LL BLOCK ADDRESS
3327 003256'02 260 17 0 00 000000# CALL BLKLLK ;LOCK THE BLOCK
3328 JRST [ TXNN W2,CZ%ABT ;ABORT?
3329 JRST WATBLK ;NO. CONVENTIONAL WAIT THEN
3330 MDISMS ;YES. WAIT HERE
3331 003257'02 254 00 0 00 007741' JRST NETCL1] ;AND TRY AGAIN
3332 003260'02 260 17 0 00 000000# CALL MOVSEG ;PICK UP LATENT ACKS
3333 003261'02 200 01 0 11 003255* MOVE T1,FILLLB(JFN) ;GET BACK LL BLOCK ADDRESS
3334 003262'02 135 02 0 00 007375' LOAD T2,LLSTA,(T1) ;GET CURRENT STATE
3335 003263'02 254 00 1 02 004335' JRST @CLZSTA-1(T2) ;GO DO PROPER THING
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 76
NSPSRV MAC 6-Apr-82 10:58 Routines to CLose a Logical Link
3336
3337 ;STATE ROUTINES OF NETCLZ
3338 ;LINK IN RUN STATE
3339
3340 003264'02 603 06 0 00 004000 CLZRUN: TXNE W2,CZ%ABT ;WANT ABORT?
3341 CLZDI: JRST [ MOVEI T2,.DCX9 ;YES. SAY USER ABORT
3342 003265'02 254 00 0 00 007745' JRST CLZEMP] ;AND GO SEND DI,ETC...
3343 003266'02 135 03 0 00 007414' LOAD T3,LLBSZ,(T1) ;GET BYTE SIZE
3344 003267'02 260 17 0 00 002437' CALL MAKPTR ;COMPUTE MAX BYTES IN BUFFER
3345 003270'02 200 01 0 11 003261* MOVE T1,FILLLB(JFN) ;GET BACK POINTER
3346 003271'02 554 03 0 11 000557* HLRZ T3,FILBCT(JFN) ;SEE IF ANY BYTES
3347 003272'02 275 02 0 03 000000 SUBI T2,0(T3) ;COMPUTE BYTES TO BE SENT
3348 003273'02 200 16 0 01 000010 TMNE LLFLO,(T1) ; FLOW NOW TO F/S?
3349 003274'02 603 16 0 00 020000
3350 003275'02 332 00 0 00 000002 SKIPE T2 ;YES. ANY BYTES?
3351 003276'02 334 00 0 00 000000 SKIPA ;HAVE DATA TO SEND
3352 003277'02 254 00 0 00 003305' JRST CLZCMS ;ALL DATA SENT. WAIT FOR ACKS
3353 003300'02 205 16 0 00 000002 SETONE LLFEM,(T1) ;SAY EOM IN THIS BUFFER
3354 003301'02 436 16 0 01 000002
3355 003302'02 260 17 0 00 003505' CALL OUTRR ;GO FORCE OUT DATA
3356 003303'02 263 17 0 00 000000 RETBAD() ;COULDN'T. WAIT A WHILE
3357 003304'02 200 01 0 11 003270* MOVE T1,FILLLB(JFN) ;RESTORE LL BLOCK ADDRESS
3358
3359 ;ALL DATA OUT. WAIT FOR ACKS
3360
3361 003305'02 400 02 0 00 000000 CLZCMS: SETZ T2, ;SYNCHRONOUS DI
3362 003306'02 200 16 0 01 000023 JE LLQOU,(T1),CLZEMP ;IF ALL ACK'ED, READY TO GO
3363 003307'02 606 16 0 00 000377
3364 003310'02 254 00 0 00 003313'
3365 003311'02 201 02 0 00 000000# MOVEI T2,CHKEMP ;WAIT FOR EMPTY
3366 003312'02 254 00 0 00 003546' JRST OUTWAT ;AND ARRANGE FOR THE WAIT
3367
3368 003313'02 137 02 0 00 007636' CLZEMP: STOR T2,LLRSN,(T1) ;SAVE REASON CODE
3369 003314'02 402 00 0 00 000002 CLZDIQ: SETZM T2 ;ASSUME SYNCHRONOUS CLOSE
3370 003315'02 603 06 0 00 004000 TXNE W2,CZ%ABT ;ABORT CLOSE ?
3371 003316'02 476 00 0 00 000002 SETOM T2 ;YES, NOTE SO
3372 003317'02 402 00 0 00 000003 SETZM T3 ;NO OPTIONAL DATA
3373 003320'02 260 17 0 00 003353' CALL CLZSDI ;GO SEND DI FOR CLOSE
3374 JRST [ TXNE W2,CZ%ABT ;ABORT?
3375 JRST CLZABT ;YES. GO RELEASE BLOCK THEN
3376 TQO <BLKF> ;COULD NOT SEND DI, MUST TRY AGAIN LATER
3377 003321'02 254 00 0 00 007747' JRST SQOBAD ] ;BLOCK AND TRY AGAIN
3378 003322'02 603 06 0 00 004000 CLZWDC: TXNE W2,CZ%ABT ;ABORT CLOSE?
3379 JRST [ SETONE LLSDE,(T1) ;YES. DISSOCIATE PROCESS AND LINK
3380 CALL FLUSH ;GET RID OF ALL MESSAGES
3381 CALL BLKULK ;UNLOCK THE LL BLOCK
3382 003323'02 254 00 0 00 007753' JRST CLZDN1] ;AND GO FINISH UP
3383 003324'02 201 02 0 00 000000# MOVEI T2,CHKDCR ;WAIT FOR DC TO COME BACK
3384 003325'02 254 00 0 00 003546' JRST OUTWAT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 77
NSPSRV MAC 6-Apr-82 10:58 Routines to CLose a Logical Link
3385
3386 ;MORE CLOSE ROUTINES
3387 ;DC HAS ARRIVED. FIND OUT IF IT WHAT WE WANTED
3388
3389 003326'02 CLZDIR: ;CLOSE IN DI RECEIVED STATE
3390 003326'02 135 02 0 00 007636' CLZABT: LOAD T2,LLRSN,(T1) ;GET REASON
3391 003327'02 332 00 0 00 000002 SKIPE T2 ;NON-SPECIAL ERROR?
3392 003330'02 306 02 0 00 000052 CAIN T2,.DCX42 ;OR REPLY TO DI?
3393 003331'02 254 00 0 00 003334' JRST CLZDON ;YES. GOOD CODE
3394 003332'02 607 06 0 00 004000 TXNN W2,CZ%ABT ;NOT. ARE WE ABORTING?
3395 JRST [ CALL BLKULK ;NO. SYNCH DI DIDN'T WORK
3396 003333'02 254 00 0 00 007760' RETBAD (DCNX11)] ;SAY SO
3397 003334'02 260 17 0 00 000000# CLZDON: CALL FLUSH ;CLEAN UP Q'S
3398 003335'02 260 17 0 00 000000# LLLOCK ;LOCK THE TREE
3399 003336'02 260 17 0 00 001531' CALL DELNOD ;GET RID OF NODE
3400 003337'02 260 17 0 00 000000# LLLULK
3401 003340'02 256 00 0 00 001620* OKINT ;MATCH BLKLOK THAT IS NEVER MATCHED
3402 003341'02 370 00 0 00 002103* CLZDN1: DECR DCCUR ;GIVING BACK A LINK
3403 003342'02 554 01 0 11 000464* HLRZ T1,FILWND(JFN) ;GET OUTPUT WINDOW
3404 003343'02 332 00 0 00 000001 SKIPE T1
3405 003344'02 260 17 0 00 000466* CALL RELPAG ;RELEASE IT
3406 003345'02 550 01 0 11 003342* HRRZ T1,FILWND(JFN) ;GET INPUT WINDOW
3407 003346'02 332 00 0 00 000001 SKIPE T1
3408 003347'02 260 17 0 00 003344* CALL RELPAG ;RELEASE IT
3409 003350'02 402 00 0 11 000545* SETZM FILBFO(JFN)
3410 003351'02 402 00 0 11 000561* SETZM FILBFI(JFN)
3411 003352'02 254 00 0 00 003251* RETSKP ;AND DONE
3412
3413 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 78
NSPSRV MAC 6-Apr-82 10:58 Routines to CLose a Logical Link
3414 ;CLZSDI - ROUTINE TO SEND A DI FOR A CLOSE
3415 ;
3416 ;ACCEPTS IN T1/ LOGICAL LINK BLOCK ADDRESS
3417 ; T2/ 0 IF SYNCHRONOUS CLOSE, -1 IF ABORT
3418 ; T3/ COUNT OF BYTES IN OPTIONAL DATA (0 IF NONE)
3419 ; T4/ ADDRESS OF OPTIONAL DATA BUFFER
3420 ; CALL CLZSDI
3421 ;RETURNS: +1 FAILED, COULD NOT SEND DI
3422 ; +2 SUCCESS, WITH DI SEND
3423
3424 003353'02 265 16 0 00 001735* CLZSDI::ASUBR <CDILLB,CDIFLG,CDICNT,CDIBUF>
3425 003354'02 265 16 0 00 003224* STKVAR <<CDIOPT,4>>
3426 003355'02 000004 000004
3427
3428 003356'02 200 01 0 15 000001 MOVE T1,CDILLB ;GET LOGICAL LINK BLOCK ADDRESS
3429 003357'02 201 02 0 00 000006 MOVEI T2,LLSDIQ ;DI IS NOW QUEUED
3430 003360'02 137 02 0 00 007375' STOR T2,LLSTA,(T1) ;MARK STATE CHANGE
3431 003361'02 402 00 0 00 000003 SETZM T3 ;START BY ASSUMING NO OPTIONAL DATA
3432 003362'02 332 00 0 15 000003 SKIPE CDICNT ;ANY OPTIONAL DATA ?
3433 JRST [ MOVEI T3,CDIOPT ;YES, GET DESTINATION BUFFER ADDRESS
3434 MOVE T2,CDICNT ;GET NUMBER OF BYTES IN OPTIONAL DATA
3435 MOVE T4,CDIBUF ;GET SOURCE BUFFER ADDRESS
3436 HRLI T4,(POINT 8,) ;AND FORM A POINTER TO OPTIONAL DATA
3437 CALL NTMVOP ;CHECK OPTIONAL DATA, SETUP T3 WITH COUNT
3438 RETBAD () ;FAILED, RETURN ERROR TO USER
3439 003363'02 254 00 0 00 007762' JRST .+1] ;T3 SET UP, CONTINUE WITH SETUP FOR DI MESSAGE
3440 003364'02 135 02 0 00 007636' LOAD T2,LLRSN,(T1) ;GET OUR REASON
3441 003365'02 201 04 0 00 000070 MOVEI T4,CNMRFL+CNMDI ;IS A DI
3442 003366'02 260 17 0 00 003374' CALL SNDDI ;GO SEND DI
3443 JRST [ SKIPN CDIFLG ;ABORT ?
3444 RETBAD () ;NO. BLOCK THEN
3445 TQZ <BLKF> ;YES. UNDO BLOCK
3446 BUG (CLZDIN)
3447 ;BUG type: BUGINF, SOFT
3448 ;BUG message: CLZSDI - Could not send DI
3449 SALL
3450 MOVE T1,CDILLB ;GET BACK LOGICAL LINK BLOCK ADDRESS
3451 003367'02 254 00 0 00 007773' RETBAD ()] ;AND DONE
3452 003370'02 260 17 0 00 000000# CALL SNDCTL ;SEND THE MESSAGE
3453 003371'02 201 02 0 00 000005 CLZDQ1: MOVEI T2,LLSDIS ;SAY DI IS SENT
3454 003372'02 137 02 0 00 007375' STOR T2,LLSTA,(T1)
3455 003373'02 254 00 0 00 003352* RETSKP ;DONE, RETURN SUCCESS
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 79
NSPSRV MAC 6-Apr-82 10:58 Routines to CLose a Logical Link
3456 ;ROUTINE TO SEND A DI OR A DC
3457
3458 ;ACCEPTS: T1/ LL BLOCK ADDRESS
3459 ; T2/ REASON
3460 ; T3/ <COUNT>B5+PTR TO USER DATA
3461 ; T4/ FLAGS
3462 ;RETURNS: +1/ COULDN'T. TEST ROUTINE IN T1
3463 ; +2/ ALL SENT
3464
3465 003374'02 265 16 0 00 003353* SNDDI: ASUBR <LLBLK,DISRSN,DIUDAT,DIFLGS>
3466 003375'02 265 16 0 00 003354* STKVAR <LLMSGB>
3467 003376'02 000001 000001
3468 003377'02 201 01 0 00 000021 MOVX T1,DILEN+MSHDR ;GET A BLOCK FOR THE DI
3469 003400'02 260 17 0 00 000000# CALL GETRES ;GET IT
3470 003401'02 254 00 0 00 000000# JRST TIMWAT ;FAILED
3471 003402'02 202 01 0 17 777776 MOVEM T1,LLMSGB ;SAVE BLOCK ADDRESS
3472 003403'02 201 02 0 01 000007 MOVEI T2,MSHDR(T1) ;GET TO START OF DATA PORTION
3473 003404'02 505 02 0 00 441000 HRLI T2,(<POINT 8,>)
3474 003405'02 200 01 0 15 000001 MOVE T1,LLBLK ;GET BACK LL BLOCK ADDRESS
3475 003406'02 202 02 0 01 000016 MOVEM T2,LLBPTR(T1) ;SAVE POINTER
3476 003407'02 402 00 0 01 000017 SETZM LLBPCT(T1) ;INIT COUNT
3477 003410'02 200 02 0 15 000004 MOVE T2,DIFLGS ;GET FLAGS
3478 003411'02 260 17 0 00 000000# CALL RTHDCI ;PUT ON ROUTING HEADER AND FLAGS
3479 003412'02 260 17 0 00 000000# CALL PUTLLR ;PUT IN LL ADDRESSES
3480 003413'02 200 02 0 15 000002 MOVE T2,DISRSN ;GET REASON
3481 003414'02 260 17 0 00 000000# CALL TWOBYT ;PUT IT IN
3482 003415'02 200 03 0 15 000004 MOVE T3,DIFLGS ;SEE IF DI OR DC
3483 003416'02 306 03 0 00 000110 CAIN T3,CNMRFL+CNMDC ;DC?
3484 003417'02 254 00 0 00 003424' JRST SNDDI1 ;YES. NO OPTDATA THEN
3485 003420'02 200 03 0 15 000003 MOVE T3,DIUDAT ;GET USER DATA
3486 003421'02 135 02 0 00 010001' LOAD T2,CNTFLD,T3 ;YES. GET COUNT
3487 003422'02 621 03 0 00 770000 SETZRO CNTFLD,T3 ;CLEAR THOSE BITS
3488 003423'02 260 17 0 00 002372' CALL MVBNRY ;PUT IN THE DATA
3489 003424'02 200 02 0 17 777776 SNDDI1: MOVE T2,LLMSGB ;GET BACK BLOCK ADDRESS
3490 003425'02 254 00 0 00 003373* RETSKP ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 80
NSPSRV MAC 6-Apr-82 10:58 Routines to CLose a Logical Link
3491
3492 ;ROUTINES CALLED FROM FILE SYSTEM TO SWITCH THE SENSE OF THE
3493 ;JFN. FIRST, ROUTINE TO SWITCH JFN TO INPUT SENSE
3494
3495 003426'02 260 17 0 00 000533' NETINP::CALL NETUOU ;GO UNDO OUTPUT IF NECESSARY
3496 003427'02 260 17 0 00 000547' CALL NETUIN ;UNDO INPUT
3497 003430'02 200 01 0 11 003304* MOVE T1,FILLLB(JFN) ;GET LL BLOCK
3498 003431'02 260 17 0 00 000000# CALL BLKLLK ;LOCK IT UP
3499 JRST [ MDISMS ;WAIT FOR LOCK
3500 003432'02 254 00 0 00 010002' JRST NETINP] ;AND TRY AGAIN
3501 003433'02 660 10 0 00 020000 TQO <FILINP> ;NOW WILL SWITCH TO INPUT
3502 003434'02 135 03 0 00 007375' LOAD T3,LLSTA,(T1) ;GET STATE
3503 003435'02 306 03 0 00 000005 CAIN T3,LLSDIS ;DID USER TERMINATE LINK ?
3504 JRST [ CALL BLKULK ;YES, UNLOCK LOGICAL LINK BLOCK
3505 SETZM T1 ;NOTE NO MORE INPUT AVAILABLE
3506 003436'02 254 00 0 00 010004' RET ] ;AND DONE
3507 003437'02 302 03 0 00 000004 CAIE T3,LLSRUN ;RUNNING?
3508 003440'02 306 03 0 00 000007 CAIN T3,LLSDIR ;OR STILL AVAILBALE FOR INPUT?
3509 003441'02 334 00 0 00 000000 SKIPA ;YES
3510 003442'02 254 00 0 00 003452' JRST NETIN2 ;NO. GO ON
3511 003443'02 550 03 0 11 003271* HRRZ T3,FILBCT(JFN) ;GET COUNT OF BYTES
3512 003444'02 200 16 0 01 000010 TMNE LLFLI,(T1) ;IS FLOW FROM NETWORK?
3513 003445'02 603 16 0 00 040000
3514 003446'02 336 00 0 00 000003 SKIPN T3 ;NO. NEED BYTES?
3515 003447'02 260 17 0 00 003773' CALL NETSET ;YES. GO GET SOME BYTES
3516 003450'02 200 01 0 11 003430* MOVE T1,FILLLB(JFN) ;GET BACK LL BLOCK ADDRESS
3517 003451'02 621 10 0 00 000040 TQZ <BLKF> ;IGNORE BLOCKING IF SET
3518 003452'02 260 17 0 00 000000# NETIN2: CALL BLKULK ;FREE LOCK
3519 003453'02 200 02 0 11 003351* MOVE T2,FILBFI(JFN) ;GET INPUT BYTE POINTER
3520 003454'02 550 01 0 11 003443* HRRZ T1,FILBCT(JFN) ;GET COUNT
3521 003455'02 200 03 0 11 003450* MOVE T3,FILLLB(JFN) ;GET LL BLOCK
3522 003456'02 200 16 0 03 000010 TMNE LLFLI,(T3) ;IS INPUT FLOW TO THE F/S?
3523 003457'02 603 16 0 00 040000
3524 003460'02 332 00 0 03 000006 SKIPE LLMSI(T3) ;YES. FREE OF INT MESSAGES
3525 CALL [ SETZB T1,FILLEN(JFN) ;NO. NO BYTES THEN
3526 TQZ <FILINP> ;AND SAY NO GOOD DATA IN JFN BLOCK
3527 003461'02 260 17 0 00 010007' RET] ;DONE
3528 003462'02 202 01 0 11 000571* NETSCM: MOVEM T1,FILCNT(JFN) ;TO THE JFN
3529 003463'02 202 02 0 11 000574* MOVEM T2,FILBYT(JFN) ;STORE NEW POINTER
3530 003464'02 402 00 0 11 000000* SETZM FILBYN(JFN) ;ZERO BYTE NUMBER
3531 003465'02 322 01 0 00 002674* JUMPE T1,R ;IF NO COUNT, RETURN NOW
3532 003466'02 200 16 0 03 000002 TMNN LLFIM,(T3) ;EOM IN THE INPUT BUFFER?
3533 003467'02 607 16 0 00 000040
3534 003470'02 350 00 0 00 000001 AOS T1 ;NO. MAKE SINR COME BACK THEN
3535 003471'02 202 01 0 11 000000* MOVEM T1,FILLEN(JFN) ;AND MAKE COUNT THE LENGTH
3536 003472'02 263 17 0 00 000000 RET ;DONE
3537
3538 ;ROUTINE TO SET UP FOR OUTPUT
3539
3540 003473'02 260 17 0 00 000547' NETOUP::CALL NETUIN ;UNDO INPUT IF NECESSARY
3541 003474'02 662 10 0 00 010000 TQOE <FILOUP> ;NOW DOING OUTPUT?
3542 003475'02 263 17 0 00 000000 RET ;YES. ALL DONE
3543 003476'02 200 02 0 11 003350* MOVE T2,FILBFO(JFN) ;GET POINTER
3544 003477'02 554 01 0 11 003454* HLRZ T1,FILBCT(JFN) ;GET COUNT
3545 003500'02 200 03 0 11 003455* MOVE T3,FILLLB(JFN) ;GET LL BLOCK
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 80-1
NSPSRV MAC 6-Apr-82 10:58 Routines to CLose a Logical Link
3546 003501'02 200 16 0 03 000010 TMNN LLFLO,(T3) ;IS OUTPUT FLOW FROM THE F/S?
3547 003502'02 607 16 0 00 020000
3548 003503'02 402 00 0 00 000001 SETZM T1 ;NO.
3549 003504'02 254 00 0 00 003462' JRST NETSCM ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 81
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3550 SUBTTL Sequential I/O JSYS's
3551
3552 ;WORKER ROUTINE TO FORCE OUT ALL DATA.
3553
3554 003505'02 265 16 0 00 003375* OUTRR:: STKVAR <MSIZE,MBLOCK,MLODR>
3555 003506'02 000003 000003
3556 003507'02 260 17 0 00 000000# CALL MOVSEG ;PICK UP ACKS,ETC...
3557 003510'02 254 00 0 00 003546' JRST OUTWAT ;ERROR OCCURRED
3558 003511'02 260 17 0 00 000533' CALL NETUOU ;UNDO OUTPUT
3559 003512'02 200 01 0 11 003500* MOVE T1,FILLLB(JFN) ;GET LL BLOCK
3560 003513'02 260 17 0 00 001337' CALL SKPFLO ;IS FLOW FROM THE FILE-SYSTEM
3561 003514'02 254 00 0 00 003535' JRST OUTR0E ;NO. ALL SET TO GO THEN
3562
3563 ;FLOW IS FROM THE FILE SYSTEM. COMPUTE BYTES NOW IN OUTPUT BUFFER
3564 ;AND SWITCH FLOW TO THE NETWORK
3565
3566 003515'02 260 17 0 00 001347' CALL CLRFLO ;SWITCH FLOW TO THE NETWORK
3567 003516'02 260 17 0 00 001355' CALL GETBSZ ;GET BYTE SIZE FOR THIS LINK
3568 003517'02 554 01 0 11 003345* HLRZ T1,FILWND(JFN) ;GET WINDOW ADDRESS
3569 003520'02 260 17 0 00 002437' CALL MAKPTR ;GET MAX BYTES IN BUFFER
3570 003521'02 202 01 0 11 003476* MOVEM T1,FILBFO(JFN) ;PUT IN STARTING BYTE POINTER
3571 003522'02 554 03 0 11 003477* HLRZ T3,FILBCT(JFN) ;GET REMAINING COUNT
3572 003523'02 275 02 0 03 000000 SUBI T2,0(T3) ;COMPUTE BYTES IN THE BUFFER
3573 003524'02 200 01 0 11 003512* MOVE T1,FILLLB(JFN) ;get logical link block address
3574 003525'02 260 17 0 00 001355' CALL GETBSZ ;GO GET BYTE SIZE FOR THIS LINK
3575 003526'02 306 03 0 00 000044 CAIN T3,44 ;WORD MODE?
3576 JRST [ IMULI T2,44 ;YES. COMPUTE TOTAL BITS
3577 ADDI T2,7 ;ROUND UP
3578 LSH T2,-3 ;AND NOW COMPUTE FULL BYTES
3579 003527'02 254 00 0 00 010012' JRST .+1] ;AND CONTINUE
3580 003530'02 200 01 0 11 003524* MOVE T1,FILLLB(JFN) ;GET LL BLOCK ADDRESS
3581 003531'02 200 16 0 01 000002 TMNN LLFEM,(T1) ;EOM?
3582 003532'02 607 16 0 00 000002
3583 003533'02 322 02 0 00 003425* JUMPE T2,RSKP ;NO, DONE
3584 003534'02 506 02 0 11 003522* HRLM T2,FILBCT(JFN) ;STORE COUNT TO SEND
3585 003535'02 200 01 0 11 003530* OUTR0E: MOVE T1,FILLLB(JFN) ;GET LL BLOCK ADDRESS
3586 003536'02 200 16 0 01 000002 TMNN LLFEM,(T1) ;EOM?
3587 003537'02 607 16 0 00 000002
3588 003540'02 254 00 0 00 003542' JRST OUTR00 ;NO, GO BACK FOR MORE
3589 003541'02 254 00 0 00 003545' JRST OUTRR3 ;YES, CONTINUE OUTPUT PROCESSING
3590 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 82
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3591
3592 ;OUTRR CONTINUED.... TRY TO MAKE A MESSAGE
3593
3594 003542'02 200 01 0 11 003535* OUTR00: MOVE T1,FILLLB(JFN) ;GET BACK LL BLOCK ADDRESS
3595 003543'02 554 02 0 11 003534* OUTRR1: HLRZ T2,FILBCT(JFN) ;SEE IF ANY MORE BYTES
3596 JUMPE T2,[CALL SETFLO ;NONE - SWITCH FLOW TO FILE-SYSTEM
3597 CALL GETBSZ ;GET BYTE SIZE
3598 HLRZ T1,FILWND(JFN) ;GET BUFFER PAGE
3599 CALL MAKPTR ;MAKE OUTPUT POINTER
3600 MOVEM T1,FILBFO(JFN) ;SET UP NEW POINTER
3601 HRLM T2,FILBCT(JFN) ;AND COUNT
3602 003544'02 322 02 0 00 010016' RETSKP] ;AND DONE
3603 003545'02 260 17 0 00 000000# OUTRR3: CALL SNDCHK ;GO SEE IF ANOTHER SEGMENT CAN BE SENT
3604 003546'02 OUTWAT: JRST [ TQNE <ERRF> ;ERROR?
3605 JRST SQOBAD ;YES. GO AWAY
3606 CALL MAKTST ;MAKE A STANDARD TEST WORD
3607 TQO <BLKF> ;REQUEST BLOCK
3608 003546'02 254 00 0 00 010025' CALLRET SQOBAD] ;AND FINISH UP
3609
3610 ;CAN SEND SOME DATA
3611
3612 003547'02 554 03 0 11 003543* OUTRR2: HLRZ T3,FILBCT(JFN) ;GET # OF BYTES REMAINING
3613 003550'02 260 17 0 00 001364' CALL GETMXS ;GO GET MAX SEGMENT SIZE
3614 003551'02 303 03 0 04 000000 CAILE T3,0(T4) ;CAN WE SEND IT ALL?
3615 003552'02 201 03 0 04 000000 MOVEI T3,0(T4) ;NO. SO SEND MAX AMOUNT
3616 003553'02 202 03 0 17 777776 MOVEM T3,MSIZE ;SAVE # OF BYTES TO SEND
3617 003554'02 201 01 0 03 000067 MOVEI T1,<<MSHDR+DTMLEN>*4+3>(T3) ;COMPUTE BYTES REQUIRED
3618 003555'02 242 01 0 00 777776 LSH T1,-2 ;CONVERT TO WORDS
3619 003556'02 260 17 0 00 000000# CALL GETRES ;GET ONE
3620 JRST [ CALL GENWAT ;GET A WAIT
3621 003557'02 254 00 0 00 010032' CALLRET SQOBAD] ;AND DONE
3622 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 83
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3623
3624 ;OUTRR CONTINUED... ADJUST COUNTS IN JFN BLOCK
3625
3626 003560'02 202 01 0 17 777775 MOVEM T1,MBLOCK ;SAVE BLOCK ADDRESS
3627 003561'02 201 02 0 01 000007 MOVEI T2,MSHDR(T1) ;GET BEGINNING OF DATA STORAGE
3628 003562'02 505 02 0 00 441000 HRLI T2,(<POINT 8,>) ;FORM BYTE POINTER
3629 003563'02 200 01 0 11 003542* MOVE T1,FILLLB(JFN) ;GET BACK LL BLOCK
3630 003564'02 202 02 0 01 000016 MOVEM T2,LLBPTR(T1) ;SAVE WORK POINTER
3631 003565'02 402 00 0 01 000017 SETZM LLBPCT(T1) ;INIT COUNT
3632 003566'02 200 03 0 17 777776 MOVE T3,MSIZE ;GET # OF BYTES TO GO
3633 003567'02 554 02 0 11 003547* HLRZ T2,FILBCT(JFN) ;GET # NOW IN BUFFER
3634 003570'02 275 02 0 03 000000 SUBI T2,0(T3) ;COMPUTE # LEFT
3635 003571'02 506 02 0 11 003567* HRLM T2,FILBCT(JFN) ;SAVE FOR NEXT ROUND
3636 003572'02 260 17 0 00 000000# CALL MAKFLG ;GO MAKE FLAGS FOR THIS MESSAGE
3637 003573'02 200 03 0 17 777775 MOVE T3,MBLOCK ;GET MESSAGE BLOCK ADDRESS
3638 003574'02 200 04 0 17 777776 MOVE T4,MSIZE ;GET MESSAGE COUNT
3639 003575'02 260 17 0 00 000000# CALL MAKMSG ;GO ASSEMBLE NON-DATA PARTS OF MESSAGE
3640 003576'02 135 02 0 00 007414' LOAD T2,LLBSZ,(T1) ;GET BYTE SIZE
3641 003577'02 306 02 0 00 000044 CAIN T2,44 ;WORD MODE?
3642 003600'02 254 00 0 00 003617' JRST OUTWRD ;YES. GO DO IT
3643 003601'02 200 02 0 01 000016 OUTRR5: MOVE T2,LLBPTR(T1) ;GET DESTINATION
3644 003602'02 200 01 0 11 003521* MOVE T1,FILBFO(JFN) ;GET SOURCE
3645 003603'02 200 03 0 00 000004 MOVE T3,T4 ;COUNT
3646 003604'02 260 17 0 00 000000* CALL NETMOV ;MOVE THE BYTES
3647 003605'02 202 01 0 11 003602* MOVEM T1,FILBFO(JFN) ;UPDATE SOURCE POINTER
3648 003606'02 200 01 0 11 003563* MOVE T1,FILLLB(JFN) ;RESTORE LL BLOCK POINTER
3649 003607'02 200 02 0 17 777775 OUTRR7: MOVE T2,MBLOCK ;GET BACK BLOCK
3650 003610'02 201 03 0 00 000002 MOVEI T3,MSDAT ;GET TYPE OF THIS MESSAGE
3651 003611'02 137 03 0 00 010034' STOR T3,MSTOM,(T2) ;TO THE MESSAGE
3652 003612'02 200 04 0 17 777776 MOVE T4,MSIZE ;GET NO. OF DATA BYTES
3653 003613'02 271 04 0 00 000002 ADDI T4,2 ;INCLUDE SEGNUM BYTES IN THE COUNT
3654 003614'02 137 04 0 00 007703' STOR T4,MSDTC,(T2); ;PUT NO. OF DATA BYTES IN THE MESSAGE
3655 003615'02 260 17 0 00 000000# CALL SNDSEG ;GO SEND A SEGMENT. ROUTINE
3656 ;PLUGS IN LL ADDRESS AND MESSAGE SIZE
3657 003616'02 254 00 0 00 003542' JRST OUTR00 ;AND TRY FOR ANOTHER SEGMENT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 84
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3658
3659 ;CODE TO MOVE 36 BIT BYTES INTO A NETWORK MESSAGE.
3660
3661 003617'02 202 12 0 17 777774 OUTWRD: MOVEM P3,MLODR ;SAVE A WORK REG
3662 003620'02 305 04 0 00 000011 OUTWR0: CAIGE T4,11 ;HAVE AT LEAST 2 MORE WORDS?
3663 JRST [ MOVE T2,@FILBFO(JFN) ;NO. GET LAST WORD
3664 AOS FILBFO(JFN)
3665 SETZ T3, ;TO GEN NULLS
3666 MOVEI P3,5 ;5 MORE BYTES TO MOVE
3667 003621'02 254 00 0 00 010035' JRST OUTWR1] ;GO DO IT
3668 003622'02 120 02 1 11 003605* DMOVE T2,@FILBFO(JFN) ;GET TWO MORE WORDS
3669 003623'02 201 12 0 00 000002 MOVEI P3,2 ;THE INCREMENTER
3670 003624'02 272 12 0 11 003622* ADDM P3,FILBFO(JFN)
3671 003625'02 201 12 0 00 000011 MOVEI P3,11 ;MOVE 9 BYTES
3672 003626'02 275 04 0 00 000011 OUTWR1: SUBI T4,11 ;TAKE SOME BYTES
3673 003627'02 245 02 0 00 000010 OUTWR2: ROTC T2,10 ;GET NEXT BYTE RIGHT JUSTIFIED
3674 003630'02 136 03 0 01 000016 IDPB T3,LLBPTR(T1) ;STORE IT
3675 003631'02 367 12 0 00 003627' SOJG P3,OUTWR2 ;DO ALL BYTES
3676 003632'02 327 04 0 00 003620' JUMPG T4,OUTWR0 ;GO DO MORE DATA
3677 003633'02 200 12 0 17 777774 MOVE P3,MLODR ;RESTORE REG
3678 003634'02 254 00 0 00 003607' JRST OUTRR7 ;AND CONTINUE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 85
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3679
3680 ;MAKMSG - ROUTINE TO ASSEMBLE THE NON-DATA PORTIONS OF A MESSAGE
3681 ;
3682 ;ACCEPTS IN T1/ LOGICAL LINK BLOCK ADDRESS
3683 ; T2/ MESSAGE FLAGS BYTE
3684 ; T3/ MESSAGE BLOCK ADDRESS
3685 ; T4/ MESSAGE SIZE
3686 ; CALL MAKMSG
3687 ;RETURNS: +1 ALWAYS, WITH NON-DATA PORTIONS OF MESSAGE ASSEMBLED
3688 ;
3689 ; PRESERVES LOGICAL LINK BLOCK ADDRESS IN T1
3690
3691 RESCD
3692
3693 000215'01 265 16 0 00 000171* MAKMSG::STKVAR <MBLOCK>
3694 000216'01 000001 000001
3695 000217'01 202 03 0 17 777776 MOVEM T3,MBLOCK ;LOCAL STORAGE FOR LL BLOCK ADDRESS
3696 000220'01 137 02 0 00 002202' STOR T2,MSMFL,(T3) ;SAVE MESSAGE FLAGS
3697 000221'01 260 17 0 00 000147' CALL RTHDCI ;PUT ON ROUTE HEADER AND FLAGS
3698 000222'01 260 17 0 00 000134' CALL PUTLLA ;PUT IN LL ADDRESSES
3699 000223'01 200 03 0 17 777776 MOVE T3,MBLOCK ;GET ADDRESS OF MESSAGE BLOCK
3700 000224'01 200 02 0 01 000016 MOVE T2,LLBPTR(T1) ;GET CURRENT BYTE POINTER
3701 000225'01 202 02 0 03 000003 MOVEM T2,MSBPTR(T3) ;SAVE IN MESSAGE BLOCK
3702 000226'01 135 02 0 00 002203' LOAD T2,LLDSN,(T1) ;GET SEG NUMBER
3703 000227'01 350 00 0 00 000002 AOS T2 ;NEXT ONE
3704 000230'01 137 02 0 00 002203' STOR T2,LLDSN,(T1) ;PUT IT BACK
3705 000231'01 405 02 0 00 007777 ANDI T2,7777 ;ONLY 12 BITS
3706 000232'01 137 02 0 00 002204' STOR T2,MSSEG,(T3) ;SAVE SEG # IN DATA BLOCK
3707 000233'01 260 17 0 00 000212' CALL TWOBYT ;PUT IN SEGNUM
3708 000234'01 272 04 0 01 000017 ADDM T4,LLBPCT(T1) ;AND COUNT UP MESSAGE SIZE
3709 000235'01 263 17 0 00 000000 RET ;DONE, RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 86
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3710 ;MAKFLG - ROUTINE TO MAKE THE FLAGS BYTE FOR A MESSAGE
3711 ;
3712 ;ACCEPTS IN T1/ LOGICAL LINK BLOCK ADDRESS
3713 ; T2/ NUMBER OF BYTES LEFT TO SEND IN SUBSEQUENT MESSAGES
3714 ; CALL MAKFLG
3715 ;RETURNS: +1 ALWAYS, WITH T2/ MESSAGE FLAGS BYTE
3716 ;
3717 ; PRESERVES LOGICAL LINK BLOCK ADDRESS IN T1
3718
3719 000236'01 201 04 0 00 000000 MAKFLG::MOVEI T4,DATMFL ;GET BASIC MESSAGE FLAGS
3720 000237'01 135 03 0 00 002205' LOAD T3,LLMFC,(T1) ;GET TYPE OF FLOW CONTROL ON THIS LINK
3721 JN LLBOM,(T1),[
3722 SETZRO LLBOM,(T1) ;IS THIS START OF MESSAGE?
3723 TXO T4,DATBOM ;YES. SET BOM THEN
3724 000240'01 200 16 0 01 000010 JRST MKFL10] ;KEEP BOM
3725 000241'01 321 16 0 00 002206'
3726 000242'01 200 16 0 01 000002 MKFL10: TMNE LLFEM,(T1) ;WANT EOM?
3727 000243'01 603 16 0 00 000002
3728 000244'01 332 00 0 00 000002 SKIPE T2 ;IS THIS LAST SEGMENT OF MESSAGE?
3729 JRST [ CAIN T3,2 ;MESSAGE FLOW CONTROL?
3730 JRST MKFL30 ;YES. SKIP FLOW ADJUSTMENT
3731 000245'01 254 00 0 00 002212' JRST MKFL20] ;NO. ADJUST FLOW COUNTER
3732 000246'01 205 16 0 00 000002 SETZRO LLFEM,(T1) ;YES. TURN OFF EOM
3733 000247'01 412 16 0 01 000002
3734 000250'01 205 16 0 00 400000 SETONE LLBOM,(T1) ;AND NEXT ONE IS BOM
3735 000251'01 436 16 0 01 000010
3736 000252'01 660 04 0 00 000100 TXO T4,DATEOM ;AND SET EOM
3737
3738 000253'01 322 03 0 00 000256' MKFL20: JUMPE T3,MKFL30 ;IF NO FLOW CONTROL, SKIP ADJUSTMENT
3739 000254'01 561 16 0 00 777400 DECR LLMSM,(T1) ;ADJUST FLOW CONTROL
3740 000255'01 272 16 0 01 000007
3741 000256'01 200 02 0 00 000004 MKFL30: MOVE T2,T4 ;COPY MESSAGE FLAGS
3742 000257'01 263 17 0 00 000000 RET
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 87
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3743 ;SNDCHK - ROUTINE TO SEE IF ANOTHER SEGMENT CAN BE SENT ON A LOGICAL LINK
3744 ;
3745 ;ACCEPTS IN T1/ LOGICAL LINK BLOCK ADDRESS
3746 ; CALL SNDCHK
3747 ;RETURNS: +1 FAILED, WITH T2/ ADDRESS OF SCHEDULER TEST ROUTINE
3748 ; +2 SUCCESS, ANOTHER SEGMENT CAN BE SENT
3749 ;
3750
3751 SNDCHK::JN LLBRP,(T1),[MOVEI T2,CHKBRP ;IF FLOW CONTROL OFF, WAIT
3752 000260'01 200 16 0 01 000007 NSBP01: RET] ;FAIL
3753 000261'01 321 16 0 00 002215'
3754
3755 JN LLQUN,(T1),[
3756 NSBP02: MOVEI T2,CHKSWD ;IF ANY NAK'ED SEGS
3757 000262'01 200 16 0 01 000023 RET ] ;FAIL
3758 000263'01 602 16 0 00 377000
3759 000264'01 254 00 0 00 002217'
3760 000265'01 135 02 0 00 002221' LOAD T2,LLQOU,(T1) ;GET SEGS NOW IN THE QUEUER
3761 000266'01 135 03 0 00 002222' LOAD T3,LLMQO,(T1) ;GET MAX OUTPUT QUEUE LENGTH
3762 000267'01 313 02 0 00 000003 NSBP10: CAMLE T2,T3 ;CAN WE PUT ANOTHER ONE IN?
3763 JRST [ MOVEI T2,CHKQTA ;WAIT FOR QUEUER COUNT TO COME DOWN
3764 000270'01 254 00 0 00 002223' NSBP03: RET ] ;FAIL
3765 000271'01 135 03 0 00 002205' LOAD T3,LLMFC,(T1) ;GET TYPE OF FLOW CONTROL
3766 000272'01 336 00 0 00 000003 SKIPN T3 ;IF NO FLOW CONTROL, ALL SET
3767 000273'01 254 00 0 00 000132* NSBP04: RETSKP ;NO FLOW CONTROL
3768 000274'01 135 04 0 00 002225' LOAD T4,LLMSM,(T1) ;GET CURRENT FLOW COUNT
3769 JUMPE T4,[
3770 NSBP05: MOVEI T2,CHKSCT ;WAIT FOR SOME COUNT TO APPEAR
3771 000275'01 322 04 0 00 002226' RET ] ;FAIL
3772 000276'01 302 03 0 00 000002 CAIE T3,2 ;MESSAGE FLOW CONTROL?
3773 000277'01 606 04 0 00 000200 TRNN T4,200 ;NO. SEGMENT. IS COUNT POSITIVE?
3774 000300'01 254 00 0 00 000273* NSBP06: RETSKP ;YES, CAN SEND A SEGMENT NOW.
3775 000301'01 201 02 0 00 000352' NSBP07: MOVEI T2,CHKSCP ;WAIT FOR COUNT TO GO POSITIVE
3776 000302'01 263 17 0 00 000000 RET ;RETURN SCHED TEST
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 88
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3777
3778 ;ROUTINE TO MAKE A STANDARD TEST WORD
3779
3780 000303'01 550 01 0 01 000002 MAKTST::LOAD T1,LLLNK,(T1) ;GET LL BLOCK ADDRESS
3781 000304'01 507 00 0 00 000001 HRLS T1 ;TO THE LH
3782 000305'01 541 01 0 02 000000 HRRI T1,0(T2) ;TEST ROUTINE
3783 000306'01 263 17 0 00 000000 RET ;DONE
3784
3785 ;ROUTINE TO ARRANGE FOR A TIMED WAIT OF 1/2 SEC. THIS IS USED
3786 ;WHEN FREE SPACE IS EXHAUSTED.
3787
3788 000307'01 661 10 0 00 000040 GENWAT: TQO <BLKF> ;NEED TO BLOCK
3789 000310'01 200 02 0 00 000000* TIMWAT::MOVE T2,TODCLK ;GET NOW
3790 000311'01 405 02 0 00 377777 ANDI T2,377777
3791 000312'01 271 02 0 00 000764 ADDI T2,^D500 ;WAIT 1/2 SEC FOR FREE SPACE
3792 000313'01 205 01 0 02 000000 MOVSI T1,0(T2) ;TIME TO THE LH
3793 000314'01 541 01 0 00 000000* HRRI T1,BLOCKM ;WAIT THIS LONG
3794 000315'01 263 17 0 00 000000 RET ;AND GO BLOCK
3795
3796 SWAPCD
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 89
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3797
3798 ;ROUTINES OF NETSQO GOTTEN TO BY STATE TRANSITION TABLE
3799
3800 ;SET UP BLOCK UNTIL LINK IS CONNECTED
3801
3802 003635'02 201 02 0 00 000000# SQOLIS: MOVEI T2,CHKCON ;WAIT UNTIL CONNECTED
3803 003636'02 254 00 0 00 003546' JRST OUTWAT ;AND GO ARRANGE FOR THE BLOCK
3804
3805 ;IMPLICIT CONFIRM
3806
3807 003637'02 402 00 0 00 000003 SQOCNF: SETZM T3 ;NO OPTDATA
3808 003640'02 260 17 0 00 003707' CALL CNFCOM ;GO CONFORM CONNECTION
3809 003641'02 254 00 0 00 003677' JRST SQOBAD ;FAILED
3810 003642'02 254 00 0 00 000571' JRST NETSQ1 ;AND COMPLETE OUTPUT REQUEST
3811
3812 ;LINK HAS BEEN CLOSED BY PROCESS OR NSP. GIVE ERROR
3813
3814 003643'02 334 01 0 00 010042' SQOABT: SKIPA T1,[DCNX11] ;NSP ABORT
3815 003644'02 201 01 0 00 602025 SQODIS: MOVEI T1,DCNX8 ;ILLEGAL USER OPERATION
3816 003645'02 661 10 0 00 000400 TQO <ERRF> ;SAY HAVE AN ERROR
3817 003646'02 254 00 0 00 003677' JRST SQOBAD ;DONE
3818
3819 ;FOREIGN HOST HAS DISCONNECTED
3820
3821 003647'02 661 10 0 00 000400 SQODIR: TQO <ERRF> ;USER ERROR
3822 003650'02 201 01 0 00 602026 MOVEI T1,DCNX11 ;GIVE ERROR
3823 003651'02 254 00 0 00 003677' JRST SQOBAD ;AND DONE
3824 003652'02 661 10 0 00 001000 SQOEOF: TQO <EOFF> ;NO. SAY EOF
3825 003653'02 254 00 0 00 003677' JRST SQOBAD ;DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 90
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3826
3827 ;ROUTINE TO BUILD BASIC CC MESSAGE
3828 ; T1/ LL BLOCK ADDRESS
3829 ; T3/ <COUNT>B5+OPTDATA STRING
3830 ;RETURNS +1 NO FREE SPACE. NEED TO BLOCK
3831 ; +2 READY. T2/ BLOCK ADDRESS
3832
3833 003654'02 265 16 0 00 003374* SNDCC: ASUBR <SAVLL,SAVBLK,SAVOPT>
3834 003655'02 201 01 0 00 000022 MOVEI T1,MSHDR+CCLEN ;GET ENOUGH SPACE
3835 003656'02 260 17 0 00 000000# CALL GETRES ;GET IT
3836 003657'02 263 17 0 00 000000 RET ;FAILED. WAIT FOR A WHILE
3837 003660'02 202 01 0 15 000002 MOVEM T1,SAVBLK
3838 003661'02 201 02 0 01 000007 MOVEI T2,MSHDR(T1) ;GET START OF DATA
3839 003662'02 505 02 0 00 441000 HRLI T2,(<POINT 8,>)
3840 003663'02 200 01 0 15 000001 MOVE T1,SAVLL ;GET BACK LL BLOCK
3841 003664'02 202 02 0 01 000016 MOVEM T2,LLBPTR(T1)
3842 003665'02 402 00 0 01 000017 SETZM LLBPCT(T1)
3843 003666'02 201 02 0 00 000050 MOVEI T2,CNMRFL+CNMCF ;GET CC FLAGS
3844 003667'02 260 17 0 00 000000# CALL RTHDCI ;PUT IN ROUTE HEADER AND FLAGS
3845 003670'02 260 17 0 00 002335' CALL DOSRVS ;PUT IN LL ADDRESSES AND STANDARD SERVICES
3846 003671'02 200 03 0 15 000003 MOVE T3,SAVOPT ;GET OPTDATA ARG
3847 003672'02 135 02 0 00 010001' LOAD T2,CNTFLD,T3 ;GET COUNT
3848 003673'02 621 03 0 00 770000 SETZRO CNTFLD,T3 ;CLEAR OUT COUNT BITS
3849 003674'02 260 17 0 00 002372' CALL MVBNRY ;PUT IN THE DATA
3850 003675'02 200 02 0 15 000002 MOVE T2,SAVBLK ;GET BLOCK
3851 003676'02 254 00 0 00 003533* RETSKP ;AND DONE
3852
3853 ;COMMON ERROR RETURN
3854
3855 003677'02 250 01 0 11 003606* SQOBAD: EXCH T1,FILLLB(JFN) ;SAVE ERROR. GET BLOCK ADDRESS
3856 003700'02 260 17 0 00 000000# CALL BLKULK ;FREE BLOCK
3857 003701'02 250 01 0 11 003677* EXCH T1,FILLLB(JFN) ;GET BACK ERROR
3858 003702'02 263 17 0 00 000000 RETBAD ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 91
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3859
3860
3861 ;IMPLICIT CONFIRM FROM SOUTR
3862
3863 003703'02 402 00 0 00 000003 SQOCN2: SETZM T3 ;NO OPTDATA
3864 003704'02 260 17 0 00 003707' CALL CNFCOM ;GO CONFIRM IT
3865 003705'02 254 00 0 00 003677' JRST SQOBAD ;FAILED
3866 003706'02 254 00 0 00 000603' JRST NETSR1 ;AND GO ON
3867
3868 ;ROUTINE TO DO IMPLICIT CONFIRM
3869
3870 003707'02 265 16 0 00 003505* CNFCOM: STKVAR <CNFLNK>
3871 003710'02 000001 000001
3872 003711'02 202 01 0 17 777776 MOVEM T1,CNFLNK ;SAVE LINK BLOCK ADDRESS
3873 003712'02 200 16 0 01 000002 JN LLTRN,(T1),SQOCN1 ;IF ONLY NEED LS, GO DO IT
3874 003713'02 603 16 0 00 000020
3875 003714'02 254 00 0 00 003720'
3876 003715'02 260 17 0 00 003654' CALL SNDCC ;GO BUILD CONNECT CONFIRM
3877 003716'02 254 00 0 00 000000# JRST GENWAT ;BLOCK UNTIL FREE SPACE
3878 003717'02 260 17 0 00 000000# CALL SNDCTL ;SEND CONTROL MESSAGE
3879 003720'02 260 17 0 00 006306' SQOCN1: CALL TURNON ;TRY TO SEND IT
3880 JRST [ EXCH T1,CNFLNK ;SAVE SCHED TEST, GET LINK BLOCK ADR
3881 SETONE LLTRN,(T1) ;SAY STILL NEED LS
3882 MOVE T1,CNFLNK ;RESTORE SCHED TEST
3883 003721'02 254 00 0 00 010043' JRST GENWAT] ;AND GO WAIT AWHILE
3884 003722'02 205 16 0 00 000020 SETZRO LLTRN,(T1) ;DON'T NEED LS ANYMORE
3885 003723'02 412 16 0 01 000002
3886 003724'02 201 02 0 00 000004 MOVEI T2,LLSRUN ;NOW IN RUN STATE
3887 003725'02 137 02 0 00 007375' STOR T2,LLSTA,(T1) ;SAY SO
3888 003726'02 201 02 0 00 000001 MOVEI T2,1 ;INITIAL LS/INT REQ COUNT
3889 003727'02 137 02 0 00 010050' STOR T2,LLMIC,(T1) ;STORE IT
3890 003730'02 254 00 0 00 003676* RETSKP ;DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 92
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3891
3892 ;COLLECTION OF SCHEDULER TEST ROUTINES USED BY NETSQO AND OTHERS
3893
3894 RESCD ;MUST ALL BE RESIDENT
3895 ;BLOCK UNTIL CONNECTED
3896
3897 000316'01 476 00 0 00 000002 CHKCON: SETOM T2 ;ANY MATCH
3898 000317'01 260 17 0 00 000070' CALL LLLKUP ;GO FIND LL BLOCK
3899 000320'01 254 00 0 04 000001 JRST 1(4) ;THIS SHOULDN'T HAPPEN
3900 000321'01 135 02 0 00 002200' LOAD T2,LLSTA,(T1) ;GET CURRENT STATE
3901 000322'01 302 02 0 00 000001 CAIE T2,LLSLIS ;LISTENING?
3902 000323'01 306 02 0 00 000002 CAIN T2,LLSCIS ;OR CI SENT?
3903 000324'01 254 00 0 04 000000 JRST 0(4) ;YES. NOT CONNECTED THEN
3904 000325'01 254 00 0 04 000001 JRST 1(4) ;NO. CONNECTED
3905
3906 ;WAIT UNTIL BLOCK LOCK IS FREE
3907
3908 000326'01 476 00 0 00 000002 CHKLOK: SETOM T2 ;ANY MATCH
3909 000327'01 260 17 0 00 000070' CALL LLLKUP ;FIND LL BLOCK
3910 000330'01 254 00 0 04 000001 JRST 1(4) ;CAN'T HAPPEN
3911 000331'01 200 16 0 01 000001 JN LLRCT,(T1),0(4) ;IF STILL NON-ZERO, MUST WAIT
3912 000332'01 603 16 0 00 070000
3913 000333'01 254 00 0 04 000000
3914 000334'01 254 00 0 04 000001 JRST 1(4) ;IS FREE
3915
3916 ;WAIT UNITL QUEUER WILL TAKE SOME MORE MESSAGES
3917
3918 000335'01 260 17 0 00 000370' CHKQTA: CALL CHKSET ;GET LL BLOCK, MAKE SURE STILL RUNNING
3919 000336'01 254 00 0 04 000001 JRST 1(4) ;SOMETHING WRONG WITH LINK
3920 000337'01 135 02 0 00 002221' LOAD T2,LLQOU,(T1) ;GET QUEUER COUNT
3921 000340'01 135 03 0 00 002222' LOAD T3,LLMQO,(T1) ;GET MAX QUEUE LENGTH
3922 000341'01 313 02 0 00 000003 CAMLE T2,T3 ;CAN TAKE SOME MORE?
3923 000342'01 254 00 0 04 000000 JRST 0(4) ;NO. WAIT SOME MORE
3924 000343'01 254 00 0 04 000001 JRST 1(4) ;YES.
3925
3926 ;WAIT UNTIL SOME ACKS COME IN
3927
3928 000344'01 260 17 0 00 000370' CHKSCT: CALL CHKSET ;VERIFY LINK STATE
3929 000345'01 254 00 0 04 000001 JRST 1(4) ;LINK CHANGED STATED
3930 000346'01 200 16 0 01 000007 JN LLMSM,(T1),1(4) ;IF SOME ACKS, WAKE UP
3931 000347'01 602 16 0 00 177400
3932 000350'01 254 00 0 04 000001
3933 000351'01 254 00 0 04 000000 JRST 0(4) ;STILL NO ACKS. WAIT SOME MORE
3934
3935 ;WAIT UNTIL SEG ACK COUNT IS POSITIVE
3936
3937 000352'01 260 17 0 00 000370' CHKSCP: CALL CHKSET ;VERIFY LINK STATE
3938 000353'01 254 00 0 04 000001 JRST 1(4) ;LINK CHANGED STATE
3939 000354'01 135 02 0 00 002225' LOAD T2,LLMSM,(T1) ;GET SEG COUNT
3940 000355'01 602 02 0 00 000177 TRNE T2,177 ;IS IT ZERO?
3941 000356'01 602 02 0 00 000200 TRNE T2,200 ;NO. IS IT NEGATIVE?
3942 000357'01 254 00 0 04 000000 JRST 0(4) ;YES. MUST WAIT SOME MORE
3943 000360'01 254 00 0 04 000001 JRST 1(4) ;NO. CAN SEND SOME MORE DATA
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 93
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3944
3945 ;ROUTINE TO WAIT FOR MESSAGES TO ARRIVE
3946
3947 000361'01 260 17 0 00 000370' CHKRAW: CALL CHKSET ;FORCE WAKE?
3948 000362'01 254 00 0 04 000001 JRST 1(4) ;YES.
3949 000363'01 200 16 0 01 000010 TMNN LLFLI,(T1) ;ANYTHING IN FILE SYSTEM BUFFER?
3950 000364'01 607 16 0 00 040000
3951 000365'01 332 00 0 01 000012 SKIPE LLOMSG(T1) ;ANYTHING ON ORDERED Q?
3952 000366'01 254 00 0 04 000001 JRST 1(4) ;YES. WAKE UP THEN
3953 000367'01 254 00 0 04 000000 JRST 0(4) ;NOTHING TO DO YET
3954
3955 ;COMMON ROUTINE TO FIND LL BLOCK AND VERIFY THAT LL IS RUNNING
3956
3957 000370'01 476 00 0 00 000002 CHKSET: SETOM T2 ;ANY LINK
3958 000371'01 260 17 0 00 000070' CALL LLLKUP ;GO FIND BLOCK
3959 000372'01 263 17 0 00 000000 RET ;NOT THERE. SOMETHING TERRIBLE HAPPENED
3960 000373'01 135 02 0 00 002200' LOAD T2,LLSTA,(T1) ;GET STATE
3961 000374'01 336 00 0 01 000005 SKIPN LLMSG(T1) ;MESSAGES ON QUEUE?
3962 000375'01 302 02 0 00 000004 CAIE T2,LLSRUN ;IS IT RUNNING?
3963 000376'01 263 17 0 00 000000 RET ;WAKE UP
3964 000377'01 254 00 0 00 000300* RETSKP ;YES. ALL FINE
3965
3966 ;CHECK IF RESENDS ARE ALL DONE
3967
3968 000400'01 260 17 0 00 000370' CHKSWD: CALL CHKSET ;GO VERIFY LINK STATE
3969 000401'01 254 00 0 04 000001 JRST 1(4) ;CHANGED. WAKE UP
3970 000402'01 200 16 0 01 000023 JE LLQUN,(T1),1(4) ;ALL NAK'ED SEGS NOW SENT?
3971 000403'01 606 16 0 00 377000
3972 000404'01 254 00 0 04 000001
3973 000405'01 254 00 0 04 000000 JRST 0(4) ;STILL RESENDS. WAIT
3974
3975 ;TESTS FOR CLOSF
3976
3977 000406'01 476 00 0 00 000002 CHKDCR::SETOM T2 ;ANY MATCH
3978 000407'01 260 17 0 00 000070' CALL LLLKUP ;FIND LL BLOCK
3979 000410'01 254 00 0 04 000001 JRST 1(4)
3980 000411'01 135 02 0 00 002200' LOAD T2,LLSTA,(T1) ;GET STATE
3981 000412'01 302 02 0 00 000011 CAIE T2,LLSABT ;DC RECEIVED?
3982 000413'01 254 00 0 04 000000 JRST 0(4) ;NO. KEEP WAITING
3983 000414'01 254 00 0 04 000001 JRST 1(4) ;YES. AWAKE
3984
3985 000415'01 260 17 0 00 000370' CHKEMP::CALL CHKSET ;MAKE SURE ALL IS SET
3986 000416'01 254 00 0 04 000001 JRST 1(4) ;NOT. A STATE CHANGE OCCURRED
3987 000417'01 200 16 0 01 000023 JE LLQOU,(T1),1(4) ;HAVE ALL ACKS ARRIVED?
3988 000420'01 606 16 0 00 000377
3989 000421'01 254 00 0 04 000001
3990 000422'01 254 00 0 04 000000 JRST 0(4) ;NO
3991
3992 ;WAIT FOR BACK-PRESSURE
3993
3994 000423'01 260 17 0 00 000370' CHKBRP: CALL CHKSET ;MAKE SURE ALL IS SET
3995 000424'01 254 00 0 04 000001 JRST 1(4) ;NO. AWAKE
3996 000425'01 200 16 0 01 000007 JE LLBRP,(T1),1(4) ;IF NOW ON, AWAKE
3997 000426'01 325 16 0 04 000001
3998 000427'01 254 00 0 04 000000 JRST 0(4) ;NO YET ON
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 94
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
3999
4000 ;ROUTINES FOR SEQUENTIAL INPUT
4001
4002 ;ROUTINE TO TAKE SEGMENTS OFF OF THE RAW DATA QUEUE AND
4003 ;PUT THEM ON THE ORDERED DATA QUEUE
4004
4005 000430'01 265 16 0 00 000167* MOVSEG::ACVAR <W1,W2,W3>
4006 000431'01 265 16 0 00 000215* STKVAR <MSGLLB>
4007 000432'01 000001 000001
4008 000433'01 202 01 0 17 777776 MOVEM T1,MSGLLB ;SAVE LOGICAL LINK BLOCK ADDRESS
4009 000434'01 200 16 0 01 000002 TMNE LLFNN,(T1) ;NEED A NACK?
4010 000435'01 603 16 0 00 001000
4011 000436'01 260 17 0 00 000502' CALL MOVNAK ;YES. SEND NACK
4012 000437'01 336 02 0 01 000005 MOVSE1: SKIPN T2,LLMSG(T1) ;HAVE ANY?
4013 000440'01 254 00 0 00 000377* RETSKP ;NO. MUST BE DONE THEN
4014 000441'01 265 16 0 00 000000* NOSKD1 ;PREVENT SCHEDULING
4015 000442'01 200 02 0 01 000005 MOVE T2,LLMSG(T1) ;GET HEADER AGAIN IN CASE IT CHANGED
4016 000443'01 550 03 0 02 000000 LOAD T3,MSLNK,(T2) ;GET LINK
4017 000444'01 202 03 0 01 000005 MOVEM T3,LLMSG(T1) ;NEW LINK
4018 000445'01 265 16 0 00 000000* OKSKD1 ;AND ALLOW SCHEDULING
4019 000446'01 135 03 0 00 002230' LOAD T3,MSMFL,(T2) ;GET FLAGS
4020 000447'01 602 03 0 00 000004 TXNE T3,ACKFLM ;IS IT AN ACK?
4021 JRST [ CALL MOVACK ;YES. GO DO THE ACK THEN
4022 RETBAD() ;ERROR OCCURRED
4023 000450'01 254 00 0 00 002231' JRST MOVSE1] ;AND DONE
4024 000451'01 205 16 0 00 777400 DECR LLDRW,(T1) ;ONE LESS DATA SEG ON Q
4025 000452'01 272 16 0 01 000020
4026 000453'01 201 03 0 00 000002 MOVEI T3,MSDAT ;IS A DATA SEGMENT
4027 000454'01 260 17 0 00 000562' CALL VERSEG ;GO VERIFY CORRECTNESS OF MESSAGE
4028 JRST [ MOVE W1,T3 ;SAVE FLAG FROM VERSEG
4029 DECR LLDMT,(T1) ;ONE LESS DATA SEGMENT
4030 MOVE T1,T2 ;GET SEGMENT ADDRESS
4031 CALL RELRES ;FREE IT UP
4032 MOVE T1,MSGLLB ;GET BACK LL BLOCK
4033 JUMPE W1,BADSEG ;IF PROTOCOL ERROR, GO SHUT LINK
4034 LOAD T2,LLIDN,(T1) ;GET LAST ACKED SEG
4035 MOVEI T3,MSDAT ;ON THE DATA CHANNEL
4036 CALL SNDACK ;ACK IT AGAIN
4037 NOP ; IGNORE ERROR
4038 MOVE T1,MSGLLB ;RESTORE ADDRESS
4039 000455'01 254 00 0 00 002235' JRST MOVSE1] ;AND PROCEED
4040 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 95
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4041
4042 ; ..
4043
4044 ;MESSAGE IS GOOD. PUT IT ON THE ORDERED QUEUE
4045
4046 000456'01 135 04 0 00 002252' LOAD T4,LLMQI,(T1) ;GET MAXIMUM INPUT QUEUE LENGTH
4047 000457'01 313 03 0 00 000004 CAMLE T3,T4 ;SEE IF REASONABLE TO KEEP IT?
4048 JRST [ DECR LLDMT,(T1) ;NO. REMOVE SEG
4049 JE LLIMS,(T1),BADSEG ;IF NOT MESSAGE CONTROL, ERROR
4050 MOVE T1,T2 ;NO. IS BEYOND QUOTA
4051 CALL RELRES ;FREE THE BLOCK
4052 MOVE T1,MSGLLB ;GET BACK LL BLOCK
4053 CALL MOVNAK ;AND SEND THE NACK
4054 000460'01 254 00 0 00 002253' JRST MOVSE1] ;DONE
4055 000461'01 336 03 0 01 000012 SKIPN T3,LLOMSG(T1) ;ANYTHING ON THE QUEUE?
4056 JRST [ MOVEM T2,LLOMSG(T1) ;NO. MAKE THIS THE QUEUE
4057 SETZRO MSLNK,(T2) ;TIE IT OFF
4058 000462'01 254 00 0 00 002265' JRST MOVSE1] ;AND DONE
4059 000463'01 400 05 0 00 000000 SETZ W1, ;AT THE TOP
4060 000464'01 135 06 0 00 002270' LOAD W2,MSSEG,(T2) ;GET SEG NUMBER
4061 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 96
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4062
4063 ;MOVSEG CONTINUED...
4064
4065 000465'01 135 04 0 00 002204' MOVSEL: LOAD T4,MSSEG,(T3) ;GET THIS ONE'S NUMBER
4066 000466'01 306 06 0 04 000000 CAIN W2,0(T4) ;SAME?
4067 JRST [ MOVE T1,T2 ;YES
4068 CALL RELRES ;THROW IT AWAY
4069 MOVE T1,MSGLLB ;GET LL BLOCK ADDRESS
4070 000467'01 254 00 0 00 002271' JRST MOVSE1] ;AND GO AGAIN
4071 000470'01 275 04 0 06 000000 SUBI T4,0(W2) ;COMPUTE THE DIFFERENCE
4072 000471'01 214 07 0 00 000004 MOVM W3,T4 ;GET MAGNITUDE OF DIFFERENCE
4073 000472'01 303 07 0 00 000036 CAILE W3,MAXDIF ;IS GREATER THAN MAX DIFFERENCE?
4074 000473'01 641 04 0 00 400000 TLC T4,(1B0) ;YES. FLIP SIGN THEN
4075 JUMPL T4,[MOVE W1,T3 ;IF LESS, INSERT AFTER
4076 LOAD T3,MSLNK,(T3) ;GET LINK
4077 JUMPN T3,MOVSEL ;AND GO LOOK SOME MORE
4078 000474'01 321 04 0 00 002275' JRST MOVSE2] ;AND GO INSERT IT
4079 JUMPE W1,[MOVE T4,LLOMSG(T1) ;GET OLD HEAD
4080 MOVEM T2,LLOMSG(T1) ;NEW HEAD
4081 STOR T4,MSLNK,(T2) ;AND FINISH LINK
4082 000475'01 322 05 0 00 002301' JRST MOVSE1] ;DONE
4083 000476'01 550 04 0 05 000000 MOVSE2: LOAD T4,MSLNK,(W1) ;GET OLD LINK
4084 000477'01 542 02 0 05 000000 STOR T2,MSLNK,(W1) ;INSERT IT
4085 000500'01 542 04 0 02 000000 STOR T4,MSLNK,(T2) ;FINISH UP
4086 000501'01 254 00 0 00 000437' JRST MOVSE1 ;AND DONE
4087
4088 ;ROUTINE TO SEND A NACK FOR THE LINK
4089
4090 000502'01 265 16 0 00 000431* MOVNAK: STKVAR <MVNLLB>
4091 000503'01 000001 000001
4092 000504'01 202 01 0 17 777776 MOVEM T1,MVNLLB ;SAVE LOGICAL LINK BLOCK ADDRESS
4093 000505'01 135 02 0 00 002234' LOAD T2,LLIDN,(T1) ;GET SEG NUMBER
4094 000506'01 660 02 0 00 010000 TXO T2,ACKBIT ;MAKE IT A NACK
4095 000507'01 201 03 0 00 000002 MOVEI T3,MSDAT ;ON THE DATA CHANNEL
4096 000510'01 260 17 0 00 001444' CALL SNDACK ;SEND THE NACK
4097 JRST [ MOVE T1,MVNLLB ;GET BACK LL BLOCK ADDRESS
4098 000511'01 254 00 0 00 002305' CALLRET DATINR] ;BUT MAKE IT RETRY SOON
4099 000512'01 205 16 0 00 001100 SETZRO <LLFNN,LLFNA>,(T1) ;CLEAR FLAGS
4100 000513'01 412 16 0 01 000002
4101 000514'01 263 17 0 00 000000 RET ;AND DONE
4102
4103 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 97
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4104
4105 ;LOCAL ROUTINE TO HANDLE AN ACK FOUND ON LLMSG QUEUE
4106 ; T1/ LL BLOCK ADDRESS
4107 ; T2/ MESSAGE BLOCK ADDRESS
4108
4109 000515'01 265 16 0 00 000000* MOVACK: TRVAR <MSGCNT,MSGBYP,MSGBLK,MSGLL>
4110 000516'01 000004 000004
4111 000517'01 202 01 0 15 000004 MOVEM T1,MSGLL ;SAVE LL BLOCK
4112 000520'01 202 02 0 15 000003 MOVEM T2,MSGBLK ;SAVE DATA BLOCK
4113 000521'01 135 03 0 00 002307' LOAD T3,MSDTC,(T2) ;GET DATA COUNT
4114 000522'01 202 03 0 15 000001 MOVEM T3,MSGCNT
4115 000523'01 200 03 0 02 000003 MOVE T3,MSBPTR(T2) ;GET POINTER TO DATA
4116 000524'01 202 03 0 15 000002 MOVEM T3,MSGBYP ;SET UP POINTER
4117 000525'01 135 02 0 00 002230' LOAD T2,MSMFL,(T2) ;GET FLAGS
4118 000526'01 260 17 0 00 000534' CALL ACKDO ;GO DO THA ACTUAL ACK
4119 000527'01 254 00 0 00 000544' JRST BADSEG ;BADLY FORMED SEGMENT ENCOUNTERED
4120 000530'01 200 01 0 15 000003 MOVE T1,MSGBLK ;GET BLOCK ADDRESS
4121 000531'01 260 17 0 00 000000* CALL RELRES ;FREE IT UP
4122 000532'01 200 01 0 15 000004 MOVE T1,MSGLL ;GET LL ADDRESS
4123 000533'01 254 00 0 00 000440* RETSKP ;AND DONE
4124
4125 ;WORKER ROUTINE TO DO ACK. CALLED FROM BOTH PROCESS CONTEXT AND FROM
4126 ;NSPTSK.
4127 ; T1/ LL BLOCK ADDRESS
4128 ; T2/ MESSAGE FLAGS
4129
4130 000534'01 200 04 0 00 000002 ACKDO: MOVE T4,T2 ;SAVE FLAGS
4131 000535'01 260 17 0 00 000706' CALL GETTWO ;GET ACKNUM
4132 000536'01 263 17 0 00 000000 RET ;BAD
4133 000537'01 201 03 0 00 000002 MOVEI T3,MSDAT ;IS A DATA ACK
4134 000540'01 602 04 0 00 000020 TRNE T4,ACKLSI ;ACKING DATA?
4135 000541'01 201 03 0 00 000001 MOVEI T3,MSLSI ;NO.
4136 000542'01 260 17 0 00 001172' CALL ACKCHN ;GO DO IT
4137 000543'01 254 00 0 00 000533* RETSKP ;AND DONE
4138
4139 ;A BADLY FORMED SEGMENT WAS ENCOUNTERED
4140
4141 000544'01 201 02 0 00 000006 BADSEG: MOVEI T2,LLSDIQ ;CHANGE LINK STATE
4142 000545'01 137 02 0 00 002200' STOR T2,LLSTA,(T1)
4143 000546'01 260 17 0 00 001404' CALL FLUSH ;RELEASE ALL PENDING MESSAGES
4144 000547'01 201 02 0 00 000050 MOVEI T2,.DCX40 ;DATA LOSE ERROR
4145 000550'01 137 02 0 00 002310' STOR T2,LLRSN,(T1) ;THE ABORT REASON
4146 000551'01 260 17 0 00 001157' CALL DATINR ;GIVE INT
4147 000552'01 402 00 0 00 000003 SETZM T3 ;NO USER DATA
4148 000553'01 201 04 0 00 000070 MOVEI T4,CNMRFL+CNMDI ;A DI
4149 000554'01 260 17 0 00 000000# CALL SNDDI ;GO SEND IT
4150 000555'01 254 00 0 00 000307' CALLRET GENWAT ;NO FREE SPACE
4151 000556'01 260 17 0 00 001001' CALL SNDCTL ;SEND CONTROL MESSAGE
4152 000557'01 201 02 0 00 000005 MOVEI T2,LLSDIS ;NEW STATE
4153 000560'01 137 02 0 00 002200' STOR T2,LLSTA,(T1)
4154 000561'01 254 00 0 00 000000# CALLRET SEGERR ;AND GIVE ERROR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 98
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4155
4156 ;ROUTINE TO VERIFY A SEGMENT
4157 ;ACCEPTS: T1/ LL BLOCK ADDRESS
4158 ; T2/ SEGMENT ADDRESS
4159 ; T3/ SEGMENT TYPE
4160 ;RETURNS: +1 BAD SEGMENT.
4161 ; T3=0 MEANS BADLY FORMED (PROTOCOL ERROR)
4162 ; T3=/0 MEANS OLD SEGMENT. NEEDS TO BE IGNORED
4163 ; +2 GOOD. T3/ "AGE"
4164
4165 000562'01 265 16 0 00 000515* VERSEG: TRVAR <MSGCNT,MSGBYP,MSGBLK,MSGSGT>
4166 000563'01 000004 000004
4167 000564'01 202 03 0 15 000004 MOVEM T3,MSGSGT ;SAVE SEGMENT TYPE
4168 000565'01 200 03 0 02 000003 MOVE T3,MSBPTR(T2) ;GET POINTER TO DATA
4169 000566'01 202 03 0 15 000002 MOVEM T3,MSGBYP ;TO THE POINTER
4170 000567'01 135 03 0 00 002307' LOAD T3,MSDTC,(T2) ;GET COUNT
4171 000570'01 202 03 0 15 000001 MOVEM T3,MSGCNT ;SAVE COUNT
4172 000571'01 202 02 0 15 000003 MOVEM T2,MSGBLK ;SAVE MESSAGE BLOCK
4173 000572'01 260 17 0 00 000706' CALL GETTWO ;GET ACKNUM
4174 000573'01 254 00 0 00 000615' JRST VERBDY ;BAD
4175 000574'01 626 02 0 00 100000 TRZN T2,ACKIND ;IS THIS AN ACKNUM?
4176 000575'01 254 00 0 00 000602' JRST GOTSEG
4177 000576'01 200 03 0 15 000004 MOVE T3,MSGSGT ;GET TYPE
4178 000577'01 260 17 0 00 001172' CALL ACKCHN ;AND GO HANDLE THE ACK
4179 000600'01 260 17 0 00 000706' CALL GETTWO ;GET SEGNUM
4180 000601'01 254 00 0 00 000615' JRST VERBDY ;BAD
4181 000602'01 200 03 0 00 000002 GOTSEG: MOVE T3,T2 ;SAVE SEGMENT #
4182 000603'01 200 02 0 15 000004 MOVE T2,MSGSGT ;GET TYPE
4183 XCT [ LOAD T4,LLIIN,(T1)
4184 000604'01 256 00 0 02 002311' LOAD T4,LLIDN,(T1)]-1(T2)
4185 000605'01 200 02 0 15 000003 MOVE T2,MSGBLK ;GET BLOCK
4186 000606'01 137 03 0 00 002270' STOR T3,MSSEG,(T2) ;SAVE SEGMENT #
4187 000607'01 275 03 0 04 000000 SUBI T3,0(T4) ;COMPUTE "AGE"
4188 000610'01 405 03 0 00 007777 ANDI T3,7777 ;MOD 4096
4189 000611'01 332 00 0 00 000003 SKIPE T3 ;IS IT CURRENT ONE?
4190 000612'01 303 03 0 00 000036 CAILE T3,MAXDIF ;NO. IS IT NEW?
4191 000613'01 344 03 0 00 000000* AOJA T3,R ;NO. IS OLD
4192 000614'01 254 00 0 00 000543* RETSKP ;YES. RETURN AGE IN T3
4193
4194 000615'01 200 02 0 15 000003 VERBDY: MOVE T2,MSGBLK ;GET BACK BLOCK ADDRESS
4195 000616'01 402 00 0 00 000003 SETZM T3 ;SAY PROTOCOL ERROR
4196 000617'01 263 17 0 00 000000 RET ;AND DONE
4197
4198 SWAPCD
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 99
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4199
4200 ;ROUTINE TO DO SEQUENTIAL INPUT.
4201
4202 003731'02 200 01 0 11 003701* NETSQI::MOVE T1,FILLLB(JFN) ;GET LL BLOCK ADDRESS
4203 003732'02 260 17 0 00 000000# CALL BLKLLK ;LOCK IT UP
4204 003733'02 254 00 0 00 003756' JRST WATBLK ;GO WAIT FOR THE LOCK
4205 003734'02 135 02 0 00 007375' LOAD T2,LLSTA,(T1) ;GET STATE
4206 003735'02 254 00 1 02 004271' JRST @SQISTA-1(T2) ;GO DO PROPER THING
4207
4208 003736'02 332 00 0 01 000006 SQI1: SKIPE LLMSI(T1) ;have pending interrupt message?
4209 JRST [ MOVEI T1,DCNX2 ;yes. illegal to do this input then
4210 TQO <ERRF> ;make it a file sys error
4211 003737'02 254 00 0 00 010051' JRST SQOBAD] ;and tell the process
4212 003740'02 371 00 0 11 003462* SOSL FILCNT(JFN) ;ANY MORE BYTES?
4213 JRST [ ILDB T2,FILBYT(JFN) ;YES. GET ONE
4214 AOS FILBYN(JFN) ;INDICATE WE TOOK ONE
4215 CALL BLKULK ;FREE THE BLOCK
4216 MOVE T1,T2 ;GET BYTE IN PROPER PLACE
4217 003741'02 254 00 0 00 010054' RET] ;AND DONE
4218 003742'02 200 16 0 01 000010 JE LLFLI,(T1),SQI11 ;IF FLOW FROM NETWORK...
4219 003743'02 607 16 0 00 040000
4220 003744'02 254 00 0 00 003747'
4221 003745'02 205 16 0 00 000040 SETZRO LLFIM,(T1) ;CLEAR FLAG
4222 003746'02 412 16 0 01 000002
4223 003747'02 260 17 0 00 000547' SQI11: CALL NETUIN ;UNDO INPUT
4224 003750'02 200 01 0 11 003731* MOVE T1,FILLLB(JFN) ;GET BACK LL BLOCK POINTER
4225 003751'02 260 17 0 00 003773' CALL NETSET ;GO TRY TO GET SOME BYTES
4226 JRST [ TQO <BLKF> ;REQUEST BLOCK
4227 003752'02 254 00 0 00 007751' CALLRET SQOBAD] ;AND FINISH UP
4228 003753'02 260 17 0 00 000000# CALL BLKULK ;FOUND SOME. FREE THE LOCK
4229 003754'02 260 17 0 00 003426' CALL NETINP ;SET UP FOR INPUT
4230 003755'02 254 00 0 00 003731' JRST NETSQI ;AND TRY AGAIN
4231
4232 ;ROUTINE TO SET BLKF AND RETURN
4233
4234 003756'02 661 10 0 00 000040 WATBLK: TQO <BLKF>
4235 003757'02 263 17 0 00 000000 RETBAD()
4236
4237 ;STATE TRANSITION ROUTINES FOR SEQUENTIAL INPUT
4238
4239 ;DI RECEIVED.
4240
4241 SQIDIR: JN LLFDI,(T1),[
4242 SKIPE FILCNT(JFN) ;SYNCHRONOUS?
4243 JRST SQI1 ;GO GET REMAINING BYTES
4244 CALL NETSET ;SEE IF ANY MORE
4245 JRST SQOEOF ;NO. GIVE EOF THEN
4246 003760'02 200 16 0 01 000002 JRST SQI1] ;YES. GO GET THEM
4247 003761'02 603 16 0 00 000010
4248 003762'02 254 00 0 00 010061'
4249 003763'02 260 17 0 00 000000# CALL FLUSH ;NO . GO FLUSH ALL QUEUES
4250 003764'02 661 10 0 00 000400 TQO <ERRF> ;AN ERROR
4251 003765'02 201 01 0 00 602026 MOVEI T1,DCNX11 ;ABORT ERROR
4252 003766'02 254 00 0 00 003677' JRST SQOBAD ;AND GIVE ERROR TO USER
4253
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 99-1
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4254 ;NEED IMPLICIT CONFIRM
4255
4256 003767'02 402 00 0 00 000003 SQICNF: SETZM T3 ;NO OPTDATA
4257 003770'02 260 17 0 00 003707' CALL CNFCOM ;GO DO CONFIRM
4258 003771'02 254 00 0 00 003677' JRST SQOBAD ;NEED TO BLOCK
4259 003772'02 254 00 0 00 003736' JRST SQI1 ;AND PROCEED
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 100
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4260
4261 ;ROUTINE TO SCAN INPUT QUEUES AND GET BYTES TO DELIVER TO PROGRAM
4262
4263 003773'02 265 16 0 00 003707* NETSET: STKVAR <SQICNT>
4264 003774'02 000001 000001
4265 003775'02 402 00 0 17 777776 SETZM SQICNT ;NONE YET
4266 003776'02 200 16 0 01 000010 TMNN LLFLI,(T1) ;IS FLOW FROM THE NETWORK?
4267 003777'02 607 16 0 00 040000
4268 004000'02 254 00 0 00 004013' JRST SQI22 ;YES. ALL SET TO GO THEN
4269 004001'02 205 16 0 00 000040 SETZRO LLFIM,(T1) ;NO LONGER EOM
4270 004002'02 412 16 0 01 000002
4271 004003'02 205 16 0 00 040000 SETZRO LLFLI,(T1) ;NO. SET FLOW FROM THE NETWORK
4272 004004'02 412 16 0 01 000010
4273 004005'02 135 03 0 00 007414' LOAD T3,LLBSZ,(T1) ;GET BYTE SIZE
4274 004006'02 550 01 0 11 003517* HRRZ T1,FILWND(JFN) ;GET WINDOW PAGE
4275 004007'02 260 17 0 00 002446' CALL MAKINP ;GO GET INPUT POINTER
4276 004010'02 202 01 0 11 003453* MOVEM T1,FILBFI(JFN) ;SAVE BYTE POINTER
4277 004011'02 402 00 0 17 777776 SETZM SQICNT ;SAVE CURRENT COUNT
4278 004012'02 200 01 0 11 003750* SQI23: MOVE T1,FILLLB(JFN) ;RESTORE LL BLOCK
4279 004013'02 260 17 0 00 000000# SQI22: CALL MOVSEG ;FIRST, PICK UP ACKS
4280 004014'02 263 17 0 00 000000 RETBAD() ;OOPS. AN ERROR
4281 004015'02 200 16 0 01 000002 JN LLFNA,(T1),SQISNA ;IF NEED ACK ONLY, GO DO IT
4282 004016'02 603 16 0 00 000100
4283 004017'02 254 00 0 00 004061'
4284 004020'02 135 02 0 00 010066' LOAD T2,LLLSC,(T1) ;GET NUMBER OF SEGS IN INPUT QUEUE
4285 004021'02 303 02 0 00 000003 CAILE T2,FLOHLD ;OVER THE THRESHOLD?
4286 004022'02 254 00 0 00 004070' JRST SQISN4 ;YES, GO SEND LS MESSAGE
4287 004023'02 200 01 0 11 004012* SQI2: MOVE T1,FILLLB(JFN) ;GET ADDRESS OF JFN BLOCK
4288 004024'02 200 02 0 11 004010* MOVE T2,FILBFI(JFN) ;GET BUFFER ADDRESS
4289 004025'02 201 03 0 00 004000 MOVEI T3,4000 ;MAX NUMBER OF BYTES IN JFN BUFFERS
4290 004026'02 260 17 0 00 004102' CALL MOVMSG ;GO REMOVE MESSAGES FROM QUEUE AND PUT IN BUFFER
4291 004027'02 263 17 0 00 000000 RETBAD () ;FAILED
4292 004030'02 202 01 0 11 004024* MOVEM T1,FILBFI(JFN) ;STORE NEW BUFFER POINTER
4293 004031'02 202 02 0 17 777776 MOVEM T2,SQICNT ;SAVE COUNT OF BYTES MOVED
4294 004032'02 200 01 0 11 004023* MOVE T1,FILLLB(JFN) ;RESTORE LOGICAL LINK BLOCK ADDRESS
4295 004033'02 332 00 0 00 000002 SKIPE T2 ;ANY BYTES IN SEGMENT?
4296 004034'02 254 00 0 00 004045' JRST SQIEMP ;YES, ONWARD
4297 004035'02 200 16 0 01 000002 TMNE LLFIM,(T1) ;NO, EOM?
4298 004036'02 603 16 0 00 000040
4299 004037'02 604 00 0 00 000000 IFNSK. ;YES, A NULL MESSAGE
4300 004040'02 254 00 0 00 004045'
4301 004041'02 205 16 0 00 000040 SETZRO LLFIM,(T1) ;TURN OFF EOM
4302 004042'02 412 16 0 01 000002
4303 004043'02 660 10 0 00 000020 TQO <NSPNUL> ;SET THE FILSTS WORD
4304 004044'02 254 00 0 00 004047' JRST SQIEM1 ;FINISH PROCESSING THE MESSAGE
4305 004045'02 ENDIF.
4306 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 101
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4307
4308 ;NETSQI CONTINUED....
4309 ;GOT ALL MESSAGES MOVED.
4310
4311 004045'02 337 00 0 17 777776 SQIEMP: SKIPG SQICNT ;GET ANY BYTES?
4312 004046'02 254 00 0 00 004076' JRST SQINOB ;NO. NOTHING TO DO
4313 004047'02 135 03 0 00 007414' SQIEM1: LOAD T3,LLBSZ,(T1) ;GET BYTE SIZE
4314 004050'02 550 01 0 11 004006* HRRZ T1,FILWND(JFN) ;GET WINDOW ADDRESS
4315 004051'02 260 17 0 00 002437' CALL MAKPTR ;MAKE A POINTER
4316 004052'02 202 01 0 11 004030* MOVEM T1,FILBFI(JFN) ;TO THE BLOCK
4317 004053'02 200 04 0 11 004032* MOVE T4,FILLLB(JFN)
4318 004054'02 135 03 0 00 010067' LOAD T3,LLBSZ,(T4) ;GET BYTE SIZE
4319 004055'02 200 02 0 17 777776 MOVE T2,SQICNT ;GET COUNT WE FOUND
4320 004056'02 306 03 0 00 000044 CAIN T3,44 ;WORD MODE?
4321 JRST [ IDIVI T2,11 ;YES. COMPUTE BYTES
4322 LSH T2,1 ;""
4323 JUMPE T3,.+1 ;AN ODD WORD ON THE END?
4324 004057'02 254 00 0 00 010070' AOJA T2,.+1] ;YES. COUNT IT
4325 004060'02 542 02 0 11 003571* HRRM T2,FILBCT(JFN) ;SAVE IT
4326 004061'02 200 01 0 11 004053* SQISNA: MOVE T1,FILLLB(JFN) ;GET ADDRESS OF LOGICAL LINK BLOCK
4327 004062'02 260 17 0 00 000000# CALL SQIACK ;SEND ANY ACK'S REQUIRED
4328 004063'02 254 00 0 00 004240' JRST CHKFRE ;FAILED, GO CHECK TYPE OF FAILURE
4329 004064'02 200 01 0 11 004061* SQISN2: MOVE T1,FILLLB(JFN) ;GET ADDRESS OF LOGICAL LINK BLOCK
4330 004065'02 135 02 0 00 010066' LOAD T2,LLLSC,(T1) ;GET NUMBER OF SEGS IN INPUT QUEUE
4331 004066'02 307 02 0 00 000003 CAIG T2,FLOHLD ;OVER THE THRESHOLD?
4332 004067'02 254 00 0 00 004073' JRST SQISN3 ;NO, DON'T SEND LS MESSAGE NOW
4333 004070'02 260 17 0 00 000000# SQISN4: CALL SQILS ;SEND LS IF NEEDED
4334 JRST [ MOVE T2,FILLLB(JFN) ;GET BACK LL BLOCK
4335 SKIPN LLMSG(T2) ;HAVE A MESSAGE NOW?
4336 JRST CHKFRE ;NO. MUST BLOCK THEN
4337 004071'02 254 00 0 00 010074' JRST SQI23] ;AND GO TRY AGAIN
4338 004072'02 200 01 0 11 004064* MOVE T1,FILLLB(JFN) ;RESTORE LOGICAL LINK BLOCK ADDRESS
4339 004073'02 205 16 0 00 040000 SQISN3: SETONE LLFLI,(T1) ;FLOW IS NOW TO F/S
4340 004074'02 436 16 0 01 000010
4341 004075'02 254 00 0 00 003730* RETSKP ;ALL DONE. WITH GOOD DATA
4342
4343 ;COULDN'T FIND ANY BYTES
4344
4345 004076'02 332 00 0 01 000005 SQINOB: SKIPE LLMSG(T1) ;HAVE ANY NOW?
4346 004077'02 254 00 0 00 004023' JRST SQI2 ;AND TRY AGAIN
4347 004100'02 201 02 0 00 000000# MOVEI T2,CHKRAW ;THE BLOCK ROUTINE
4348 004101'02 254 00 0 00 000000# CALLRET MAKTST ;GO ARRANGE FOR THE BLOCK
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 102
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4349 ;MOVMSG - ROUTINE TO REMOVE SEGMENTS FROM LLOMSG QUEUE AND PLACE INTO
4350 ; THE DESTINATION BUFFER.
4351 ;
4352 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
4353 ; T2/ BUFFER POINTER
4354 ; T3/ MAX # OF BYTES TO PUT INTO BUFFER
4355 ; CALL MOVMSG
4356 ;RETURNS: +1 FAILED
4357 ; +2 SUCCESS, WITH T1/ UPDATE BUFFER POINTER
4358 ; T2/ COUNT OF BYTES MOVED
4359 ; T3/ -1 IF SOME DATA WOULD NOT FIT IN BUFFER
4360 ;
4361 ; NOTE: TRVAR'S MSGCNT AND MSGBYP ARE USED BY ROUTINES TO EXTRACT FIELDS
4362 ; FROM MESSAGES (E.G. GETTWO).
4363
4364 004102'02 265 16 0 00 002012* MOVMSG: TRVAR <MSGCNT,MSGBYP>
4365 004103'02 000002 000002
4366 004104'02 265 16 0 00 003773* STKVAR <MVMLLB,MVMBFI,MVMCNT,MVMMAX,MVMFLG>
4367 004105'02 000005 000005
4368 004106'02 202 01 0 17 777776 MOVEM T1,MVMLLB ;SAVE LOGICAL LINK BLOCK ADDRESS
4369 004107'02 202 02 0 17 777775 MOVEM T2,MVMBFI ;SAVE BUFFER ADDRESS
4370 004110'02 202 03 0 17 777773 MOVEM T3,MVMMAX ;SAVE MAX # OF BYTES TO BE PUT INTO BUFFER
4371 004111'02 402 00 0 17 777774 SETZM MVMCNT ;INITIALIZE COUNT
4372 004112'02 402 00 0 17 777772 SETZM MVMFLG ;ASSUME ALL DATA WILL FIT
4373 004113'02 260 17 0 00 000000# MVM010: CALL MOVSEG ;NO INPUT. GET ANY SEGS
4374 004114'02 263 17 0 00 000000 RETBAD() ;ERROR
4375 004115'02 336 02 0 01 000012 SKIPN T2,LLOMSG(T1) ;GET TOPMOST SEGMENT
4376 004116'02 254 00 0 00 004207' JRST MVMX ;NONE
4377 004117'02 135 03 0 00 010100' LOAD T3,MSSEG,(T2) ;GET SEGMENT NUMBER
4378 004120'02 135 04 0 00 010101' LOAD T4,LLIDN,(T1) ;GET LAST ACKED DATA SEGMENT
4379 004121'02 350 00 0 00 000004 AOS T4 ;THE ONE WE EXPECT
4380 004122'02 405 04 0 00 007777 ANDI T4,SEGMSK ;MOD 12
4381 004123'02 302 03 0 04 000000 CAIE T3,0(T4) ;IS THIS IT?
4382 004124'02 254 00 0 00 004207' JRST MVMX ;NO, NOT HERE YET
4383 004125'02 135 03 0 00 007703' LOAD T3,MSDTC,(T2) ;GET COUNT OF BYTES
4384 004126'02 202 03 0 15 000001 MOVEM T3,MSGCNT ;STASH IT
4385 004127'02 200 03 0 02 000003 MOVE T3,MSBPTR(T2) ;GET POINTER TO DATA
4386 004130'02 202 03 0 15 000002 MOVEM T3,MSGBYP ;SET UP POINTER
4387 004131'02 260 17 0 00 000000# CALL GETTWO ;GET NEXT FIELD
4388 004132'02 255 00 0 00 000000 JFCL
4389 004133'02 602 02 0 00 100000 TXNE T2,ACKIND ;IS THIS ACKNUM?
4390 004134'02 260 17 0 00 000000# CALL GETTWO ;YES. SO SKIP SEGNUM NOW
4391 004135'02 255 00 0 00 000000 JFCL
4392 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 103
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4393 ;NOW POSITIONED TO DATA PORTION OF SEGMENT. MOVE DATA INTO
4394 ;DESTINATION BUFFER
4395
4396 004136'02 200 04 0 15 000001 MOVE T4,MSGCNT ;GET REMAINING COUNT
4397 004137'02 270 04 0 17 777774 ADD T4,MVMCNT ;COMPUTE BYTES TO BE IN BUFFER
4398 004140'02 313 04 0 17 777773 CAMLE T4,MVMMAX ;WILL THEY FIT?
4399 JRST [ SETOM T3 ;NOTE NOT ALL DATA WOULD FIT
4400 004141'02 254 00 0 00 010102' JRST MVMY] ;EXIT
4401 004142'02 202 04 0 17 777774 MOVEM T4,MVMCNT ;YES. UPDATE COUNT
4402 004143'02 200 02 0 01 000012 MOVE T2,LLOMSG(T1) ;GET MESSAGE ADDRESS
4403 004144'02 135 02 0 00 010104' LOAD T2,MSMFL,(T2) ;GET FLAGS
4404 004145'02 606 02 0 00 000100 TXNN T2,DATEOM ;IS THIS THE END-OF-MESSAGE?
4405 004146'02 254 00 0 00 004151' JRST SQI3 ;NO
4406 004147'02 205 16 0 00 000040 SETONE LLFIM,(T1) ;YES
4407 004150'02 436 16 0 01 000002
4408 004151'02 200 16 0 01 000010 SQI3: JE LLIMS,(T1),SQI4 ;JUMP IF NOT MESSAGE INTERFACE
4409 004152'02 607 16 0 00 010000
4410 004153'02 254 00 0 00 004156'
4411 004154'02 200 16 0 01 000002 TMNE LLFIM,(T1) ;SKIP IF NOT EOM
4412 004155'02 603 16 0 00 000040
4413 004156'02 201 16 0 00 200000 SQI4: INCR LLLSC,(T1) ;NEED ANOTHER BUFFER SENT
4414 004157'02 272 16 0 01 000020
4415 004160'02 200 04 0 15 000001 MOVE T4,MSGCNT ;GET BACK THE COUNT
4416 004161'02 135 02 0 00 007414' LOAD T2,LLBSZ,(T1) ;GET BYTE SIZE
4417 004162'02 306 02 0 00 000044 CAIN T2,44 ;WORD MODE?
4418 JRST [ CALL SQIWRD ;YES, GO MOVE WORDS THEN
4419 004163'02 254 00 0 00 010105' JRST SQIMV1 ] ;AND DONE
4420 004164'02 200 03 0 00 000004 SQIMOV: MOVE T3,T4 ;GET COUNT
4421 004165'02 200 01 0 15 000002 MOVE T1,MSGBYP ;GET SOURCE POINTER
4422 004166'02 200 02 0 17 777775 MOVE T2,MVMBFI ;GET DESTINATION
4423 004167'02 260 17 0 00 003604* CALL NETMOV ;MOVE THE BYTES
4424 004170'02 202 02 0 17 777775 MOVEM T2,MVMBFI ;UPDATE DESTINATION POINTER
4425 004171'02 200 01 0 17 777776 MOVE T1,MVMLLB ;RESTORE LL BLOCK POINTER
4426 004172'02 200 02 0 01 000012 SQIMV1: MOVE T2,LLOMSG(T1) ;GET EXPENDED MESSAGE
4427 004173'02 135 03 0 00 010100' LOAD T3,MSSEG,(T2) ;GET SEG #
4428 004174'02 137 03 0 00 010101' STOR T3,LLIDN,(T1) ;AND UPDATE LL BLOCK
4429 004175'02 550 03 0 02 000000 LOAD T3,MSLNK,(T2) ;GET NEXT
4430 004176'02 202 03 0 01 000012 MOVEM T3,LLOMSG(T1) ;NEW HEAD
4431 004177'02 200 01 0 00 000002 MOVE T1,T2 ;MESSAGE BLOCK
4432 004200'02 260 17 0 00 002712* CALL RELRES ;FREE IT
4433 004201'02 200 01 0 17 777776 MOVE T1,MVMLLB ;GET BACK LL ADDRESS
4434 004202'02 205 16 0 00 777770 DECR LLDMT,(T1) ;ONE LESS DATA MESSAGE
4435 004203'02 272 16 0 01 000020
4436 004204'02 200 16 0 01 000002 JE LLFIM,(T1),MVM010 ;HAVE EOM?
4437 004205'02 607 16 0 00 000040
4438 004206'02 254 00 0 00 004113'
4439 004207'02 402 00 0 00 000003 MVMX: SETZM T3 ;NO PROBLEM FITTING ALL DATA IN BUFFER
4440 004210'02 200 01 0 17 777775 MVMY: MOVE T1,MVMBFI ;NO, GET UPDATED POINTER
4441 004211'02 200 02 0 17 777774 MOVE T2,MVMCNT ;AND COUNT
4442 004212'02 254 00 0 00 004075* RETSKP ;DONE, RETURN SUCCESS
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 104
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4443 ;ROUTINE TO MOVE WORDS FROM THE NETWORK TO AN INPUT BUFFER
4444
4445 004213'02 265 16 0 00 004104* SQIWRD: STKVAR <<MDPTR,2>>
4446 004214'02 000002 000002
4447 004215'02 124 05 0 17 777775 DMOVEM Q1,MDPTR ;SAVE WORK REGS
4448 004216'02 403 05 0 00 000006 SQIWR1: SETZB Q1,Q2 ;INIT WORDS
4449 004217'02 201 03 0 00 000011 MOVEI T3,11 ;GET MAX BYTE COUNT
4450 004220'02 305 04 0 00 000011 CAIGE T4,11 ;ENOUGH FOR FULL 2 WORDS?
4451 004221'02 200 03 0 00 000004 MOVE T3,T4 ;NO. GET WHAT IS LEFT THEN
4452 004222'02 275 04 0 00 000011 SUBI T4,11 ;TAKE SOME BYTES
4453 004223'02 246 05 0 00 000010 SQIWR2: LSHC Q1,10 ;SHIFT BYTES
4454 004224'02 134 02 0 15 000002 ILDB T2,MSGBYP ;GET NEXT BYTE FROM NET BUFFER
4455 004225'02 137 02 0 00 010107' DPB T2,[POINT 8,Q2,35] ;STASH IT
4456 004226'02 367 03 0 00 004223' SOJG T3,SQIWR2 ;DO THEM ALL
4457 JUMPL T4,[LSHC Q1,-4 ;ALIGN ODD WORD
4458 MOVEM Q2,@FILBFI(JFN) ;STORE ODD WORD
4459 AOS FILBFI(JFN) ;MOVE TO NEXT WORD
4460 004227'02 321 04 0 00 010110' JRST SQIWR3] ;AND DONE
4461 004230'02 124 05 1 11 004052* DMOVEM Q1,@FILBFI(JFN) ;STORE BOTH WORDS
4462 004231'02 201 05 0 00 000002 MOVEI Q1,2 ;INCREMENTER
4463 004232'02 272 05 0 11 004230* ADDM Q1,FILBFI(JFN)
4464 004233'02 327 04 0 00 004216' JUMPG T4,SQIWR1 ;DO MORE
4465 004234'02 120 05 0 17 777775 SQIWR3: DMOVE Q1,MDPTR ;RESTORE REGS
4466 004235'02 263 17 0 00 000000 RET ;ALL DONE
4467
4468 ;ERROR ROUTINE FOR BADLY FORMED SEGMENT ENCOUNTERED
4469
4470 004236'02 661 10 0 00 000400 SEGERR: TQO <ERRF> ;SET FILE SYSTEM ERROR
4471 004237'02 254 00 0 00 007416' RETBAD (DCNX11) ;AND RETURN WITH ERROR INDICATOR
4472
4473 ;ROUTINE TO ANALYZE FAILURE TO SEND ACK OR LS MESSAGE. IF IT IS
4474 ;A FREE SPACE FAILURE, THEN A DATA INT IS ISSUED TO INSURE THE PROCESS
4475 ;TRIES AGAIN SOON
4476
4477 004240'02 661 10 0 00 000040 CHKFRE: TQO <BLKF> ;NOTE BLOCK NEEDED
4478 004241'02 550 03 0 00 000001 HRRZ T3,T1 ;GET TEST ROUTINE
4479 004242'02 302 03 0 00 000000* CAIE T3,BLOCKM ;A FREE SPACE FAILURE?
4480 004243'02 263 17 0 00 000000 RET ;NO. DONE THEN
4481 004244'02 250 01 0 11 004072* EXCH T1,FILLLB(JFN) ;YES. GET LL BLOCK
4482 004245'02 260 17 0 00 000000# CALL DATINR ;REQEUST DATA INT
4483 004246'02 250 01 0 11 004244* EXCH T1,FILLLB(JFN) ;RESTORE TEST ROUTINE
4484 004247'02 263 17 0 00 000000 RET ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 105
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4485 ;SQILS - ROUTINE TO SEND ANY LS MESSAGES NEEDED AFTER INPUT HAS BEEN PROCESSED
4486 ;
4487 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
4488 ; CALL SQILS
4489 ;RETURNS: +1 FAILED TO SEND LS
4490 ; +2 SUCCESS
4491
4492 RESCD
4493
4494 000620'01 265 16 0 00 000502* SQILS:: STKVAR <SQLLLB>
4495 000621'01 000001 000001
4496 000622'01 202 01 0 17 777776 MOVEM T1,SQLLLB ;SAVE BLOCK ADDRESS
4497 000623'01 135 02 0 00 002314' LOAD T2,LLLSC,(T1) ;GET SEGS TO REQUEST
4498 000624'01 322 02 0 00 000614* JUMPE T2,RSKP ;IF NONE, JUMP OFF
4499 000625'01 201 03 0 00 000002 MOVEI T3,MSDAT ;ON THE DATA CHANNEL
4500 000626'01 205 16 0 00 000004 SETONE LLLSA,(T1) ;TELL SCHED TRYING FOR LS SEND
4501 000627'01 436 16 0 01 000020
4502 000630'01 260 17 0 00 001632' CALL SNDLS ;SEND MESSAGE
4503 000631'01 263 17 0 00 000000 RET ;FAILED, RETURN FAILURE
4504 000632'01 200 01 0 17 777776 MOVE T1,SQLLLB ;RESTORE LINK BLOCK ADDRESS
4505 000633'01 200 16 0 00 002315' SETZRO <LLLSC,LLLSA>,(T1) ;CLEAR ALL LS INDICATORS
4506 000634'01 412 16 0 01 000020
4507 000635'01 254 00 0 00 000624* RETSKP ;DONE, RETURN SUCCESS
4508
4509
4510
4511 ;SQIACK - ROUTINE TO SEND ANY ACK'S NEEDED AFTER INPUT HAS BEEN PROCESSED
4512 ;
4513 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
4514 ; CALL SQIACK
4515 ;RETURNS: +1 FAILED, COULD NOT SEND THE ACK
4516 ; +2 SUCCESS
4517
4518 000636'01 265 16 0 00 000620* SQIACK::STKVAR <SQALLB>
4519 000637'01 000001 000001
4520 000640'01 202 01 0 17 777776 MOVEM T1,SQALLB ;SAVE ADDRESS OF LOGICAL LINK BLOCK
4521 000641'01 135 02 0 00 002234' LOAD T2,LLIDN,(T1) ;GET SEG # TO ACK
4522 000642'01 201 03 0 00 000002 MOVEI T3,MSDAT ;ON THE DATA CHANNEL
4523 000643'01 200 16 0 01 000002 TMNE LLFNN,(T1) ;NEED A NACK?
4524 000644'01 603 16 0 00 001000
4525 000645'01 660 02 0 00 010000 NSBP08: TXO T2,ACKBIT ;YES.
4526 000646'01 260 17 0 00 001444' CALL SNDACK ;SEND IT
4527 JRST [ MOVE T2,SQALLB ;FAILED, GET ADDRESS OF LOGICAL LINK BLOCK
4528 SETONE LLFNA,(T2) ;SAY NEED TO DO IT AGAIN
4529 000647'01 254 00 0 00 002316' RET ] ;RETURN FAILURE
4530 000650'01 205 16 0 00 001100 SETZRO <LLFNA,LLFNN>,(T1) ;CLEAR ACK FLAGS
4531 000651'01 412 16 0 01 000002
4532 000652'01 254 00 0 00 000635* RETSKP ;DONE, RETURN SUCCESS
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 106
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4533
4534 ;NOW DEFINE STATE TRANSITION TABLES
4535
4536 ;FOR SEQUENTIAL OUTPUT
4537
4538 SWAPCD ;ALL OF THESE ARE SWAPPABLE
4539
4540 004250'02 400000 003635' SQOSTA::IFIW!SQOLIS ;LISTENING - BLOCK UNTIL CONNECTED
4541 004251'02 400000 003635' IFIW!SQOLIS ;CIS - SAME HERE
4542 004252'02 400000 003637' IFIW!SQOCNF ;CIR - GO CONFIRM CIR
4543 004253'02 400000 000571' IFIW!NETSQ1 ;RUN - ALL SET TO GO
4544 004254'02 400000 003644' IFIW!SQODIS ;DIS - LINK IS CLOSED. GIVE ERROR
4545 004255'02 400000 003644' IFIW!SQODIS ;DIQ - SAME HERE
4546 004256'02 400000 003647' IFIW!SQODIR ;DIR - SEE IF ABORT OR CLOSE
4547 004257'02 600 00 0 00 000000 NOP ;CCS - NOT POSSIBLE IN PHASE II
4548 004260'02 400000 003643' IFIW!SQOABT ;ABORTED -
4549
4550 ;FOR SOUTR CALL
4551
4552 004261'02 400000 003635' SQOOTR::IFIW!SQOLIS ;LISTENING - BLOCK UNTIL CONNECTED
4553 004262'02 400000 003635' IFIW!SQOLIS ;CIS - BLOCK UNTIL CONNECTED
4554 004263'02 400000 003703' IFIW!SQOCN2 ;CIR - GO CONFIRM
4555 004264'02 400000 000603' IFIW!NETSR1 ;RUN - NORMAL STUFF
4556 004265'02 400000 003644' IFIW!SQODIS ;DIS - LINK IS CLOSED
4557 004266'02 400000 003644' IFIW!SQODIS ;DIQ - ""
4558 004267'02 400000 003647' IFIW!SQODIR ;DIR -
4559 004270'02 600 00 0 00 000000 NOP ;CCS - NOT POSSIBLE IN PHASE II
4560 004271'02 400000 003643' IFIW!SQOABT ;ABORTED -
4561
4562 ;FOR SEQUENTIAL INPUT
4563
4564 004272'02 400000 003635' SQISTA: IFIW!SQOLIS ;LISTENING - WAIT FOR CONNECT
4565 004273'02 400000 003635' IFIW!SQOLIS ;CIS - WAIT FOR CONNECT
4566 004274'02 400000 003767' IFIW!SQICNF ;CIR - CONFIRM CONNECTION
4567 004275'02 400000 003736' IFIW!SQI1 ;RUN - ALL SET
4568 004276'02 400000 003644' IFIW!SQODIS ;DIS - GIVE ERROR
4569 004277'02 400000 003644' IFIW!SQODIS ;DIQ - GIVE ERROR
4570 004300'02 400000 003760' IFIW!SQIDIR ;DIR -
4571 004301'02 600 00 0 00 000000 NOP ;CCS - NOT POSSIBLE IN PHASE II
4572 004302'02 400000 003643' IFIW!SQOABT ;ABORTED -
4573
4574 ;TABLE FOR CC RECEIVED
4575
4576 004303'02 400000 005432' CCREC: IFIW!CCJECT ;LISTENING - CAN'T CONFIRM A LISTENER
4577 004304'02 400000 005402' IFIW!CCGUD ;CIS - GOOD CC
4578 004305'02 400000 005435' IFIW!CCDON ;CIR - IGNORE IT
4579 004306'02 400000 005435' IFIW!CCDON ;RUN - IGNORE IT
4580 004307'02 400000 005435' IFIW!CCDON ;DIS - IGNORE IT
4581 004310'02 400000 005435' IFIW!CCDON ;DIQ - IGNORE IT
4582 004311'02 400000 005435' IFIW!CCDON ;DIR - IGNORE IT
4583 004312'02 600 00 0 00 000000 NOP ;CCS - NOT POSSIBLE IN PHASE II
4584 004313'02 400000 005432' IFIW!CCJECT ;ABORTED -
4585
4586 ;TABLE FOR DI RECEIVED
4587
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 106-1
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4588 004314'02 400000 005432' DIREC: IFIW!CCJECT ;LISTENING - ILLEGAL ADDRESS
4589 004315'02 400000 005606' IFIW!CONREJ ;CIS - CONNECT BEING REJECTED
4590 004316'02 400000 005435' IFIW!CCDON ;CIR - IGNORE
4591 004317'02 400000 005617' IFIW!DIMSG2 ;RUN - CLOSING DOWN THE LINK
4592 004320'02 400000 005610' IFIW!DIABT ;DIS - ABORT IT
4593 004321'02 400000 005610' IFIW!DIABT ;DIQ - ABORT IT
4594 004322'02 400000 005610' IFIW!DIABT ;DIR - ABORT IT
4595 004323'02 600 00 0 00 000000 NOP ;CCS - NOT POSSIBLE IN PHASE II
4596 004324'02 400000 005623' IFIW!DCDCS ;ABORTED - SEND DC AND IGNORE IT
4597
4598 ;TABLE FOR DC RECEIVED
4599
4600 004325'02 400000 005435' DCREC: IFIW!CCDON ;LISTENING - IGNORE FOR LISTENER
4601 004326'02 400000 005725' IFIW!CHKIDL ;CIS - CHECK FOR VALID DC
4602 004327'02 400000 005435' IFIW!CCDON ;CIR - IGNORE
4603 004330'02 400000 005735' IFIW!DCRUN ;RUN - SHUTTING DOWN
4604 004331'02 400000 005730' IFIW!DCABT ;DIS - VALID REPLY TO DI SENT
4605 004332'02 400000 005730' IFIW!DCABT ;DIQ - ABORT THE LINK
4606 004333'02 400000 005730' IFIW!DCABT ;DIR - ABORT THE LINK
4607 004334'02 600 00 0 00 000000 NOP ;CCS - NOT POSSIBLE IN PHASE II
4608 004335'02 400000 005435' IFIW!CCDON ;ABORTED - IGNORE IT
4609
4610 ;CLOSF
4611
4612 004336'02 400000 003334' CLZSTA: IFIW!CLZDON ;LISTENING - JUST GET RID OF A LISTENER
4613 004337'02 400000 003334' IFIW!CLZDON ;CIS - SAME FOR CIS
4614 004340'02 400000 003265' IFIW!CLZDI ;CIR - NEED TO REFUSE CONNECTION
4615 004341'02 400000 003264' IFIW!CLZRUN ;RUN - NORMAL STATE
4616 004342'02 400000 003322' IFIW!CLZWDC ;DIS - WAIT FOR DC
4617 004343'02 400000 003314' IFIW!CLZDIQ ;DIQ -
4618 004344'02 400000 003326' IFIW!CLZDIR ;DIR -
4619 004345'02 600 00 0 00 000000 NOP ;CCS - NOT POSSIBLE IN PHASE II
4620 004346'02 400000 003326' IFIW!CLZABT ;ABORTED -
4621
4622 ;ACK RECEIVED
4623
4624 004347'02 400000 005432' ACKSTA: IFIW!CCJECT ;LISTENING -
4625 004350'02 400000 005527' IFIW!ACKCIS ;CIS -
4626 004351'02 400000 005435' IFIW!CCDON ;CIR -
4627 004352'02 400000 005545' IFIW!ACKRUN ;RUN -
4628 004353'02 400000 005435' IFIW!CCDON ;DIS -
4629 004354'02 400000 005435' IFIW!CCDON ;DIQ -
4630 004355'02 400000 005435' IFIW!CCDON ;DIR -
4631 004356'02 600 00 0 00 000000 NOP ;CCS - NOT POSSIBLE IN PHASE II
4632 004357'02 400000 005435' IFIW!CCDON ;ABORTED -
4633
4634 ;DATA,INT OR LS MESSAGE
4635
4636 004360'02 400000 005432' DATSTA: IFIW!CCJECT ;LISTENING - ERROR
4637 004361'02 400000 005435' IFIW!CCDON ;CIS - IGNORE
4638 004362'02 400000 005435' IFIW!CCDON ;CIR - IGNORE
4639 004363'02 400000 005765' IFIW!DATRUN ;RUN - GOOD MESSAGE
4640 REPEAT 3,<
4641 IFIW!CCDON> ;DIS,DIQ,DIR - IGNORE
4642 004364'02 400000 005435'
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 106-2
NSPSRV MAC 6-Apr-82 10:58 Sequential I/O JSYS's
4643 004365'02 400000 005435'
4644 004366'02 400000 005435'
4645 004367'02 600 00 0 00 000000 NOP ;CCS - NOT POSSIBLE IN PHASE II
4646 004370'02 400000 005435' IFIW!CCDON ;ABORTED
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 107
NSPSRV MAC 6-Apr-82 10:58 NSP Error Code to TOPS20 Error Code Translation
4647 SUBTTL NSP Error Code to TOPS20 Error Code Translation
4648
4649 ;NSPERR - ROUTINE TO CONVERT AN NSP ERROR CODE INTO A TOPS20 ERROR CODE
4650 ;
4651 ;ACCEPTS IN T1/ NSP ERROR CODE
4652 ; CALL NSPERR
4653 ;RETURNS: +1 FAILED, NO SUCH NSP ERROR CODE
4654 ; +2 SUCCESS, WITH T1/ TOPS20 ERROR CODE
4655
4656 004371'02 205 04 0 00 777751 NSPERR::MOVSI T4,-ERRLEN ;SET UP TO LOOP THRU ERROR TABLE
4657
4658 004372'02 554 02 0 04 004401' NSPER1: HLRZ T2,ERRTAB(T4) ;GET AN NSP ERROR CODE
4659 004373'02 316 02 0 00 000001 CAMN T2,T1 ;FOUND NSP ERROR CODE TO BE TRANSLATED ?
4660 004374'02 254 00 0 00 004377' JRST NSPER2 ;YES, GO GET CORRESPONDING TOPS20 CODE
4661 004375'02 253 04 0 00 004372' AOBJN T4,NSPER1 ;NO, LOOP OVER ENTIRE TABLE
4662 004376'02 254 00 0 00 010114' RETBAD (MONX03) ;NO SUCH NSP ERROR CODE, RETURN FAILURE
4663
4664 ; HERE HAVING FOUND THE NSP ERROR CODE
4665
4666 004377'02 550 01 0 04 004401' NSPER2: HRRZ T1,ERRTAB(T4) ;GET CORRESPONDING TOPS20 ERROR CODE
4667 004400'02 254 00 0 00 004212* RETSKP ;DONE, RETURN SUCCESS
4668
4669
4670
4671 ; TABLE OF NSP/TOPS20 ERROR CODE CORRESPONDENCE
4672
4673 004401'02 000000 602353 ERRTAB: .DCX0,,NSPX00
4674 004402'02 000001 602354 .DCX1,,NSPX01
4675 004403'02 000002 602355 .DCX2,,NSPX02
4676 004404'02 000003 602356 .DCX3,,NSPX03
4677 004405'02 000004 602357 .DCX4,,NSPX04
4678 004406'02 000005 602360 .DCX5,,NSPX05
4679 004407'02 000006 602361 .DCX6,,NSPX06
4680 004410'02 000007 602362 .DCX7,,NSPX07
4681 004411'02 000010 602363 .DCX8,,NSPX08
4682 004412'02 000011 602364 .DCX9,,NSPX09
4683 004413'02 000030 602365 .DCX24,,NSPX10
4684 004414'02 000040 602366 .DCX32,,NSPX11
4685 004415'02 000041 602367 .DCX33,,NSPX12
4686 004416'02 000042 602370 .DCX34,,NSPX13
4687 004417'02 000043 602371 .DCX35,,NSPX14
4688 004420'02 000044 602372 .DCX36,,NSPX15
4689 004421'02 000045 602373 .DCX37,,NSPX16
4690 004422'02 000046 602374 .DCX38,,NSPX17
4691 004423'02 000047 602375 .DCX39,,NSPX18
4692 004424'02 000050 602376 .DCX40,,NSPX19
4693 004425'02 000051 602377 .DCX41,,NSPX20
4694 004426'02 000052 602400 .DCX42,,NSPX21
4695 004427'02 000053 602401 .DCX43,,NSPX22
4696 000027 ERRLEN==.-ERRTAB
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 108
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - Main Dispatching Loop
4697 SUBTTL NSP Background Task - Main Dispatching Loop
4698
4699
4700 ;THIS CODE IS THE REQUEST QUEUER AND THE BACKGROUND NSP
4701 ;TASK. THE QUEUER IS RESPONSIBLE FOR "ROUTING" ALL MESSAGES
4702 ;TO EITHER THE NETWORK (VIA THE DTE OR WHATEVER ELSE CONNECTS
4703 ;US TO THE NETWORK) OR TO ANOTHER LOGICAL LINK ON THE SAME HOST.
4704 ;ALSO, IT IS RESPONSIBLE FOR RETRANSMITTING ANY NACK'ED MESSAGES.
4705
4706 ;THE BACKGORUND PROCESS RUNS AS A FORK OF JOB 0 AND IS RESPONSIBLE
4707 ;FOR PARSING ALL CONTROL MESSAGE, COMPLETING ALL CONNECTS, PROCESSING
4708 ;ACK AND LINK SERVICE MESSAGES, ACTING AS A SERVICE OF NETSQI FOR
4709 ;ACTING ON ACKS THAT ARE PIGGY-BACKED ONTO DATA SEGMENTS, AND FOR
4710 ;GENERATING PROCESS INTERRUPTS. ALSO, THIS PROCESS WILL EVOLVE OVER
4711 ;TIME TO HANDLE ALL ROUTING STRATEGIES.
4712
4713 SWAPCD ;ALL OF THIS CODE IS SWAPPABLE
4714
4715 004430'02 205 01 0 00 010000 TSKINI: MOVX T1,UMODF
4716 004431'02 202 01 0 00 000000* MOVEM T1,FFL ;ESTABLISH USUAL JSYS CONTEXT
4717 004432'02 402 00 0 00 000000* SETZM FPC ;SET PC
4718 004433'02 265 16 0 00 000000* MCENTR ;GET INTO MONITOR CONTEXT
4719 004434'02 260 17 0 00 000000* SE1ENT ;MAKE IT RUN IN PROPER SECTION
4720 TRVAR <MSGCNT,MSGBYP,MSGSRC,MSGDST,MSGBLK,MSGLLB,MSGOBJ,<MSGDDC,5>,<MSGHSN,2>,MSGW1,
4721 004435'02 265 16 0 00 004102* MSGW2,MSGSOB,<MSGSDC,5>,<MSGDML,LKSIZE>,MSGLCL>
4722 004436'02 000062 000062
4723 004437'02 201 01 0 00 000000* MOVEI T1,MAXQ ;DON'T ALLOW THIS FORK TO BE "COMPUTE-BOUND"
4724 004440'02 202 01 0 00 000000* MOVEM T1,JOBBIT ;BY PREVENTING MAXQ SCHEDULING BEHAVIOR
4725
4726 ;TOP OF LOOP
4727
4728 004441'02 332 00 0 00 000000* NSPTSK: SKIPE MSGQ ;ANYTHING ON THE QUEUE?
4729 JRST [ CALL DOMSGQ ;YES, DO ONE
4730 004442'02 254 00 0 00 010116' JRST NSPTSK] ;TRY AGAIN UNTIL DONE
4731 004443'02 332 00 0 00 000000* SKIPE KDPFLG ;DOES KMC11 WANT SERVICE
4732 004444'02 260 17 0 00 000000* CALL KDPTSK ;YES SO CHECK IT
4733 004445'02 260 17 0 00 000000# CALL OUTCHK ;TIME TO SEND PREVOUSLY BLOCKED OUTPUT ?
4734 004446'02 260 17 0 00 006340' CALL OUTSND ;YES, GO SEND REMAINING OUTPUT
4735 004447'02 600 00 0 00 000000 NOP ;NOOP FOR PERFORMANCE ANALYSIS
4736 004450'02 260 17 0 00 000000* CALL DOATSQ ;HANDLE THE ATS QUEUES IF THERE ARE ANY
4737 004451'02 260 17 0 00 004460' CALL MCBCQ ;CHECK ANY MCB LINKS TO CLEAN UP
4738 004452'02 332 00 0 00 000000* SKIPE NSPMCB ;ANY DEAD MCB'S TO CLEAN UP?
4739 004453'02 260 17 0 00 004763' CALL MCBDED ;YES - GO CLEAN THEM UP
4740 004454'02 201 01 0 00 000000# MOVEI T1,NSPTST ;REST UNTIL WORK TO DO
4741 004455'02 201 02 0 00 002734 HDISMS (^D1500) ;WAIT, BUT STAY IN BALSET
4742 004456'02 265 16 0 00 000000*
4743 004457'02 254 00 0 00 004441' JRST NSPTSK ;AND TRY AGAIN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 109
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - Main Dispatching Loop
4744 ;SEE IF ANY LL BLOCKS LEFT BY TTY TO CLOSE AND CLEAN UP
4745
4746 004460'02 261 17 0 00 000011 MCBCQ: SAVEAC <JFN,STS,DEV>
4747 004461'02 261 17 0 00 000010
4748 004462'02 261 17 0 00 000013
4749 004463'02 415 16 0 00 007264'
4750 004464'02 261 17 0 00 000016
4751 004465'02 265 16 0 00 004213* STKVAR <MCBCLL>
4752 004466'02 000001 000001
4753 004467'02 336 00 0 00 000000* MCBCQ2: SKIPN ULLCZQ ;ANYTHING ON THE QUEUE?
4754 004470'02 263 17 0 00 000000 RET ;NO
4755 004471'02 350 00 0 00 001615* NOINT
4756 004472'02 265 16 0 00 001540* NOSKED
4757 004473'02 200 01 0 00 004467* MOVE T1,ULLCZQ ;UNQUEUE ONE
4758 004474'02 135 02 0 00 010120' LOAD T2,LLTTY,(T1)
4759 004475'02 202 02 0 00 004473* MOVEM T2,ULLCZQ
4760 004476'02 265 16 0 00 001547* OKSKED
4761 004477'02 202 01 0 17 777776 MOVEM T1,MCBCLL
4762 004500'02 201 02 0 00 000000# MOVEI T2,MLJFN+1
4763 004501'02 260 17 0 00 000000* CALL ASGJFR ;ASSIGN DUMMY JFN BLOCK
4764 JRST [ MOVE T1,MCBCLL ;CAN'T NOW, PUT LL BACK ON QUEUE
4765 NOSKED
4766 MOVE T2,ULLCZQ
4767 STOR T2,LLTTY,(T1)
4768 MOVEM T1,ULLCZQ
4769 OKSKED
4770 OKINT
4771 004502'02 254 00 0 00 010121' RET]
4772 004503'02 201 11 0 01 000000# MOVEI JFN,-JFN0+1(T1) ;SETUP JFN, OFFSET SO FILXXX REFERENCES WORK
4773 004504'02 250 01 0 17 777776 EXCH T1,MCBCLL ;SAVE ACTUAL BLOCK, GET LL
4774 004505'02 202 01 0 11 004246* MOVEM T1,FILLLB(JFN) ;PUT LL IN JFN BLOCK
4775 004506'02 400 10 0 00 000000 SETZ STS, ;FAKE STATUS BITS
4776 004507'02 201 13 0 00 000033' MOVEI DEV,DCNDTB ;DITTO DEV
4777 004510'02 402 00 0 11 004050* SETZM FILWND(JFN) ;NO WINDOWS
4778 004511'02 205 01 0 00 004000 MCBCQ1: MOVX T1,CZ%ABT ;ABORT CLOSE
4779 004512'02 260 17 0 00 003252' CALL NETCLZ
4780 004513'02 600 00 0 00 000000 NOP ;ASSUME SUCCESS
4781 004514'02 201 01 0 00 000000* MOVEI T1,JSBFRE
4782 004515'02 200 02 0 17 777776 MOVE T2,MCBCLL ;DUMMY BLOCK
4783 004516'02 260 17 0 00 000000* CALL RELFRE ;RELEASE IT
4784 004517'02 256 00 0 00 003340* OKINT
4785 004520'02 254 00 0 00 004467' JRST MCBCQ2
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 110
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - Main Dispatching Loop
4786
4787 ;TEST ROUTINE FOR NSPTSK
4788
4789 RESCD
4790
4791 000653'01 260 17 0 00 000000* NSPTST: CALL CKATSQ ;CHECK THE ATS QUEUES
4792 000654'01 254 00 0 04 000001 JRST 1(T4) ;NEED TO DO SOMETHING
4793 000655'01 332 00 0 00 000000* SKIPE KDPFLG ;DOES KMC11 WANT SERVICE
4794 000656'01 254 00 0 04 000001 JRST 1(4) ;YES
4795 000657'01 260 17 0 00 000670' CALL OUTCHK ;CHECK "RETRY BLOCKED OUTPUT" TIMER
4796 000660'01 254 00 0 04 000001 JRST 1(4) ;YES, WAKE UP
4797 000661'01 332 00 0 00 000000* SKIPE MSGQ ;ANY MESSAGES TO DO?
4798 000662'01 254 00 0 04 000001 JRST 1(4) ;YES, WAKE UP
4799 000663'01 332 00 0 00 000000* SKIPE NSPMCB ;ANY DEAD LINES TO CLEAN UP?
4800 000664'01 254 00 0 04 000001 JRST 1(4) ;YES, WAKE UP
4801 000665'01 332 00 0 00 000000* SKIPE ULLCZQ ;LL'S TO CLEAN UP?
4802 000666'01 254 00 0 04 000001 JRST 1(T4) ;YES
4803 000667'01 254 00 0 04 000000 JRST 0(4) ;NO, WAIT SOME MORE
4804
4805 ;OUTCHK - ROUTINE TO DETERMINE IF PREVIOUSLY BLOCKED OUTPUT SHOULD BE
4806 ; RETRIED.
4807 ;
4808 ;CALL: CALL OUTCHK
4809 ;RETURNS: +1 TIME TO CHECK THE "OUTPUT REMAINING" QUEUE
4810 ; +2 NOT TIME TO RETRY YET
4811
4812 000670'01 336 00 0 00 000000* OUTCHK: SKIPN OUTTIM ;ANY TIMER SET ?
4813 000671'01 254 00 0 00 000652* RETSKP ;NO
4814 000672'01 265 16 0 00 000000* SAVET
4815 000673'01 200 01 0 00 000670* MOVE T1,OUTTIM ;GET NEXT TIME TO WAKE UP
4816 000674'01 317 01 0 00 000310* CAMG T1,TODCLK ;TIMER EXPIRE ?
4817 000675'01 263 17 0 00 000000 RET ;YES, INDICATE SO
4818 000676'01 254 00 0 00 000671* RETSKP ;NO, NOTE NOT TIME YET
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 111
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
4819 SUBTTL NSP Background Task - MSGQ Processing
4820
4821 SWAPCD
4822
4823 004521'02 265 16 0 00 004472* DOMSGQ: NOSKD1 ;GET SET TO PULL A MESSAGE OFF
4824 004522'02 7 004 20 0 00 001002 CHNOFF DLSCHN ;TURN OFF DTE
4825 004523'02 550 01 0 00 004441* HRRZ T1,MSGQ ;GET TOP MOST ENTRY
4826 004524'02 550 02 0 01 000000 LOAD T2,MSLNK,(T1) ;GET LINK
4827 004525'02 542 02 0 00 004523* HRRM T2,MSGQ ;STASH IT
4828 004526'02 336 00 0 00 000002 SKIPN T2 ;WAS A MESSAGE THERE?
4829 004527'02 402 00 0 00 004525* SETZM MSGQ ;NO. CLEAR ENTIRE HEADER
4830 004530'02 7 004 20 0 00 002002 CHNON DLSCHN ;TURN ON DTE
4831 004531'02 265 16 0 00 004476* OKSKD1 ;AND ALLOW SCHEDULING
4832 004532'02 402 00 0 15 000062 SETZM MSGLCL ;ASSUME LOCAL IN TRVAR
4833 004533'02 200 16 0 01 000001 TMNN MSLCL,(T1) ;DID IT COME FROM DRIVER?
4834 004534'02 607 16 0 00 040000
4835 JRST [SKIPL T3,NSPLPB ;YES, IS THERE A LOOPBACK LINE RUNNING?
4836 JRST DOMSG1 ;NO
4837 HRRZS T3 ;GET RID OF LOOPBACK FLAGS
4838 LOAD T4,MSPRT,(T1);GET PORT OF MESSAGE
4839 CAME T3,T4 ;IS IT THE LOOPER?
4840 JRST DOMSG1 ;NO
4841 SETONE MSLCL,(T1) ;YES, SAY LOCAL IN THE MESSAGE BLOCK
4842 004535'02 254 00 0 00 010132' JRST .+1]
4843 004536'02 476 00 0 15 000062 SETOM MSGLCL ;SAY LOCAL IN TRVAR
4844 004537'02 202 01 0 15 000005 DOMSG1: MOVEM T1,MSGBLK ;SAVE BLOCK ADDRESS
4845 004540'02 135 02 0 00 010143' LOAD T2,MSCNT,(T1) ;GET BYTE COUNT OF THE MESSAGE
4846 004541'02 202 02 0 15 000001 MOVEM T2,MSGCNT ;SAVE IT
4847 004542'02 271 01 0 00 000007 ADDI T1,MSHDR ;GET TO START OF DATA
4848 004543'02 505 01 0 00 441000 HRLI T1,(<POINT 8,>) ;FORM BYTE POINTER
4849 004544'02 202 01 0 15 000002 MOVEM T1,MSGBYP ;AND SET UP BYTE POINTER
4850 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 112
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
4851
4852 ;MESSAGE ALL SET UP. GET MESSAGE FLAGS
4853
4854 ;HAVE A MESSAGE. SEE WHAT IT IS
4855
4856 004545'02 402 00 0 15 000015 SETZM MSGHSN ;ASSUME NO HOST NAME
4857 004546'02 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,BADMSG) ;GET BYTE. IF BADLY FORMED, REJECT MSG
4858 004547'02 254 00 0 00 005242'
4859 004550'02 134 02 0 15 000002
4860 004551'02 602 02 0 00 000001 TRNE T2,1 ;IS THIS A PHASE III TRANSPORT MSG?
4861 004552'02 254 00 0 00 005242' JRST BADMSG ;YES, IGNORE IT
4862 004553'02 606 02 0 00 000002 TRNN T2,2 ;IS THIS A ROUTING HEADER?
4863 004554'02 254 00 0 00 004571' JRST DOMSG ;NO. GO HANDLE MESSAGE THEN
4864 004555'02 602 02 0 00 000100 TRNE T2,100 ;MUST BE ASCII NAME
4865 004556'02 602 02 0 00 000060 TRNE T2,60 ;VALID ROUTING HEADER?
4866 004557'02 254 00 0 00 004613' JRST INVHDR ;NO.
4867 004560'02 260 17 0 00 000000# CALL SKPFLD ;SKIP OUR NAME
4868 004561'02 254 00 0 00 005242' JRST BADMSG ;BADLY FORMED
4869 004562'02 201 03 0 15 000015 MOVEI T3,MSGHSN
4870 004563'02 201 04 0 00 000006 MOVEI T4,MAXHST
4871 004564'02 260 17 0 00 000000# CALL GTASCI ;AND GET ASCII FIELD
4872 004565'02 254 00 0 00 005242' JRST BADMSG ;BADLY FORMED MESSAGE
4873 004566'02 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,BADMSG) ;BADLY FORMED
4874 004567'02 254 00 0 00 005242'
4875 004570'02 134 02 0 15 000002
4876 004571'02 200 03 0 15 000005 DOMSG: MOVE T3,MSGBLK ;GET MESSAGE BLOCK
4877 004572'02 137 02 0 00 010144' STOR T2,MSMFL,(T3) ;SAVE FLAGS
4878 004573'02 135 04 0 00 010145' LDB T4,[POINT 3,T2,31] ;EXTRACT SUBTYPE
4879 004574'02 135 03 0 00 010146' LDB T3,[POINT 2,T2,33] ;EXTRACT TYPE OF MESSAGE
4880 004575'02 254 00 1 03 004576' JRST @MSGTYP(T3) ;GO DO MESSAGE
4881
4882 004576'02 400000 005744' MSGTYP: IFIW!DATMSG ;DATA MESSAGE
4883 004577'02 400000 005503' IFIW!ACKMSG ;AN ACK MESSAGE
4884 004600'02 400000 004602' IFIW!CTLMSG ;A CONTROL MESSAGE
4885 004601'02 400000 005242' IFIW!BADMSG ;BADLY FORMED MESSAGE
4886
4887 004602'02 254 00 1 04 004603' CTLMSG: JRST @.+1(T4) ;GET TO PROPER TYPE OF MESSAGE
4888 004603'02 400000 005242' IFIW!CIDON ;A NOOP. IGNORE IT
4889 004604'02 400000 005054' IFIW!CIMSG ;CONNECT-INITIATE
4890 004605'02 400000 005357' IFIW!CCMSG ;CONNECT-CONFIRM
4891 004606'02 400000 005560' IFIW!DIMSG ;DI MESSAGE
4892 004607'02 400000 005706' IFIW!DCMSG ;DC MESSAGE
4893 004610'02 400000 004620' IFIW!STRMSG ;A STARTUP MESSAGE
4894 004611'02 400000 005242' IFIW!BADMSG ;BADLY FORMED MESSAGE
4895 004612'02 400000 005242' IFIW!BADMSG ;BADLY FORMED MESSAGE
4896
4897 ;RECEIVED A MESSAGE WITH AN INVALID ROUTING HEADER.
4898
4899 004613'02 200 01 0 15 000005 INVHDR: MOVE T1,MSGBLK ;GET MESSAGE
4900 004614'02 135 01 0 00 010131' LOAD T1,MSPRT,(T1) ;GET PORT I.D.
4901 BUG (NSPRTH,<<T1,LINE>,<T2,BADBYT>>)
4902 ;BUG type: BUGCHK, SOFT
4903 ;BUG message: NSPTSK- INVALID ROUTING HEADER
4904 SALL
4905 004615'02 256 00 0 00 010147'
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 112-1
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
4906 004616'02 260 17 0 00 004744' CALL PROOFF ;TURN OFF THE INT THAT DID IT
4907 004617'02 254 00 0 00 005242' JRST CIDON ;AND GIVE UP
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 113
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
4908
4909 ;GOT A STARTUP MESSAGE
4910
4911 ;GOT A STARTUP MESSAGE
4912
4913 004620'02 402 00 0 00 000006 STRMSG: SETZM Q2 ;INITIALIZE "VERIFICATION REQUESTED" FLAG
4914 004621'02 200 02 0 15 000005 MOVE T2,MSGBLK ;POINT TO MSG BLOCK AGAIN
4915 004622'02 135 05 0 00 010153' LOAD Q1,MSPRT,(T2) ;GET PORT MESSAGE CAME FROM
4916 004623'02 200 16 0 05 002275* JN INIRCV,MCBDTE(Q1),BADSTR ;IF ALREADY RUNNING, ERROR
4917 004624'02 321 16 0 00 004741'
4918 004625'02 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,BADSTR) ;GET STARUP TYPE
4919 004626'02 254 00 0 00 004741'
4920 004627'02 134 02 0 15 000002
4921 004630'02 302 02 0 00 000001 CAIE T2,STRTYP ;THE EXPECTED ONE?
4922 004631'02 254 00 0 00 004741' JRST BADSTR ;NO
4923 004632'02 260 17 0 00 000000# CALL GETEXT ;GET NODE NUMBER
4924 004633'02 254 00 0 00 004741' JRST BADSTR
4925 004634'02 202 02 0 05 000000* MOVEM T2,ITSNUM(Q1) ;SAVE NODE NUMBER
4926 004635'02 201 03 0 05 000000 MOVEI T3,(Q1) ;GET PORT
4927 004636'02 271 03 0 05 002306* ADDI T3,ITSNAM(Q1) ;POINT TO NAME FOR NEIGHBOR(2 WDS / PORT)
4928 004637'02 201 04 0 00 000006 MOVEI T4,MAXHST
4929 004640'02 260 17 0 00 000000# CALL GTASCI ;GET IT
4930 004641'02 254 00 0 00 004741' JRST BADSTR ;BAD
4931 004642'02 137 02 0 00 010154' STOR T2,NAMCN,MCBDTE(Q1) ;STORE COUNT OF BYTES IN NAME
4932 004643'02 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,BADSTR) ;GET SUPPORTED FUNCTIONS
4933 004644'02 254 00 0 00 004741'
4934 004645'02 134 02 0 15 000002
4935 004646'02 640 02 0 00 000006 TRC T2,OURNED
4936 004647'02 205 01 0 00 040000 MOVX T1,NOTMCB ;NEIGHBOR IS NOT AN MCB
4937 004650'02 412 01 0 05 004623* ANDCAM T1,MCBDTE(Q1) ;ASSUME NEIGHBOR IS AN MCB
4938 004651'02 602 02 0 00 000006 TRNE T2,OURNED ;DOES IT SUPPORT ALL REQUIRED FUNCTIONS?
4939 004652'02 436 01 0 05 004650* IORM T1,MCBDTE(Q1) ;REMEMBER NOT AN MCB
4940 004653'02 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,BADSTR) ;GET ITS REQUIRED FUNCS
4941 004654'02 254 00 0 00 004741'
4942 004655'02 134 02 0 15 000002
4943 004656'02 602 02 0 00 000001 TXNE T2,VERIF ;WANT SECURITY MESSAGE?
4944 004657'02 476 00 0 00 000006 SETOM Q2 ;NOTE VERIFICATION REQUESTED
4945 004660'02 260 17 0 00 000000# CALL GETTWO ;GET MAX BLOCK SIZE
4946 004661'02 254 00 0 00 004741' JRST BADSTR ;BAD
4947 004662'02 202 02 0 15 000017 MOVEM T2,MSGW1 ;SAVE IT
4948 004663'02 260 17 0 00 000000# CALL GETTWO ;GET NSP MAX
4949 004664'02 254 00 0 00 004741' JRST BADSTR
4950 004665'02 313 02 0 15 000017 CAMLE T2,MSGW1 ;VALID?
4951 004666'02 254 00 0 00 004741' JRST BADSTR ;NO
4952 004667'02 275 02 0 00 000030 SUBI T2,NSPOVR ;YES. ACCOUNT FOR NSP OVERHEAD BYTES
4953 004670'02 202 02 0 05 000000* MOVEM T2,NSPMAX(Q1) ;SET UP NSPMAX (MAX USER BYTES IN A SEGMENT)
4954 004671'02 201 04 0 00 000010 MOVEI T4,10 ;BYTES TO IGNORE
4955 004672'02 375 00 0 15 000001 STRMS1: GETBYM (MSGCNT,MSGBYP,BADSTR) ;GET A BYTE
4956 004673'02 254 00 0 00 004741'
4957 004674'02 134 02 0 15 000002
4958 004675'02 367 04 0 00 004672' SOJG T4,STRMS1 ;SKIP BYTES
4959 004676'02 200 03 0 00 000005 MOVE T3,Q1 ;GET PORT
4960 004677'02 221 03 0 00 000011 IMULI T3,^D9 ;ITSID IS 9 WORDS/PORT
4961 004700'02 271 03 0 00 000000* ADDI T3,ITSID ;WHERE TO PUT IS ID
4962 004701'02 201 04 0 00 000044 MOVEI T4,^D36
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 113-1
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
4963 004702'02 260 17 0 00 000000# CALL GTASCI ;GET IT
4964 004703'02 254 00 0 00 004741' JRST BADSTR
4965 004704'02 542 05 0 05 004652* HRRM Q1,MCBDTE(Q1) ;SAVE PORT WE INITED ON
4966 004705'02 135 01 0 00 010155' LOAD T1,NAMCN,MCBDTE(Q1) ;GET LENGTH OF ITS NAME
4967 004706'02 312 01 0 00 002257* CAME T1,OURCNT ;SAME LENGTH AS OURS ?
4968 004707'02 254 00 0 00 004723' JRST STRMS6 ;NAMES ARE NOT THE SAME
4969 004710'02 201 01 0 05 000000 MOVEI T1,(Q1) ;COPY PORT NUMBER
4970 004711'02 271 01 0 05 004636* ADDI T1,ITSNAM(Q1) ;POINT TO PORTS NAME
4971 004712'02 201 02 0 00 002465* MOVEI T2,OURNAM ;POINT TO OUR NAME
4972 004713'02 260 17 0 00 002100* CALL CMPSTR ;SEE IF SAME NAME
4973 004714'02 254 00 0 00 004723' JRST STRMS6 ;NAMES ARE NOT THE SAME
4974 004715'02 332 01 0 00 002267* SKIPE T1,NSPLPB ;GET PORT FOR LOOPBACK
4975 004716'02 302 05 0 01 000000 CAIE Q1,(T1) ;IS THIS PORT INTENDED FOR LOOPBACK ?
4976 004717'02 254 00 0 00 004741' JRST BADSTR ;NOT SUPPOSED TO BE IN LOOPBACK
4977 004720'02 205 16 0 00 400000 SETONE ND%LPR,NSPLPB ;LOOPBACK NOW RUNNING
4978 004721'02 436 16 0 00 004715*
4979 004722'02 254 00 0 00 004727' JRST STRMS7 ;WE ARE NOW IN LOOPBACK MODE
4980
4981 004723'02 336 01 0 00 004721* STRMS6: SKIPN T1,NSPLPB ;GET PORT FOR LOOPBACK
4982 004724'02 254 00 0 00 004727' JRST STRMS7 ;NO PORT SCHEDULED FOR LOOPBACK
4983 004725'02 306 05 0 01 000000 CAIN Q1,(T1) ;IS THIS PORT SCHEDULED FOR LOOPBACK ?
4984 004726'02 254 00 0 00 004741' JRST BADSTR ;FLUSH THE PORT
4985 004727'02 205 16 0 00 400000 STRMS7: SETONE INIRCV,MCBDTE(Q1) ;NOTE INIT MSG RECEIVED
4986 004730'02 436 16 0 05 004704*
4987 JUMPN Q2,[
4988 JE INISNT,MCBDTE(Q1),[
4989 SETONE REQVER,MCBDTE(Q1)
4990 JRST .+1]
4991 MOVE T1,Q1 ;VERIFICATION WANTED, GET PORT NUMBER
4992 CALL NODVER ;SEND VERIFICATION MESSAGE
4993 004731'02 326 06 0 00 010161' JRST .+1 ] ;DONE, CONTINUE
4994 004732'02 201 01 0 05 000000 MOVEI T1,(Q1) ;GET PORT
4995 004733'02 271 01 0 05 004711* ADDI T1,ITSNAM(Q1) ;POINT TO NAME FOR NEIGHBOR(2 WDS / PORT)
4996 004734'02 201 02 0 00 000000 MOVX T2,.NDSON ;STATE IS ON
4997 004735'02 400 03 0 00 000000 SETZ T3, ;NO NEIGHBOR NODE
4998 004736'02 260 17 0 00 000765' CALL ADDINT ;ADD NODE TO TABLE OF KNOWN NODES
4999 BUG(NSPSTR)
5000 ;BUG type: BUGINF, SOFT
5001 ;BUG message: STRMSG - Could not add node to known node table
5002 SALL
5003 004737'02 256 00 0 00 010167'
5004 004740'02 254 00 0 00 005242' JRST CIDON ;AND GO TO IT
5005
5006 004741'02 260 17 0 00 004744' BADSTR: CALL PROOFF ;TURN OFF FE
5007 BUG (ILLSTR,<<Q1,DTE>>)
5008 ;BUG type: BUGINF, SOFT
5009 ;BUG message: NSPTSK-ILLEGAL INIT MESSAGE
5010 SALL
5011 004742'02 256 00 0 00 010171'
5012 004743'02 254 00 0 00 005242' JRST BADMSG ;DON'T INIT
5013
5014
5015
5016
5017
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 113-2
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5018 ;ROUTINE USED BY STRMSG TO TURN OFF AN MCB IF NODE INIT
5019 ;FAILS
5020
5021 004744'02 200 01 0 15 000005 PROOFF: MOVE T1,MSGBLK ;GET MESSAGE
5022 004745'02 135 03 0 00 010131' LOAD T3,MSPRT,(T1) ;GET PORT I.D.
5023 004746'02 201 02 0 00 000003 MOVEI T2,T3 ;POINT TO ARG BLOCK
5024 004747'02 201 01 0 00 000005 MOVEI T1,.BTTPR ;TURN OFF PROTOCOL
5025 004750'02 104 00 0 00 000562 BOOT ;DO IT
5026 004751'02 320 16 0 00 004752' ERJMP .+1 ;?
5027 004752'02 263 17 0 00 000000 RET ;DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 114
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5028
5029 ;ROUTINE USED TO SHUT ALL LINKS TO AN MCB THAT HAS DIED.
5030 ;ACCEPTS: T1/ PORT NUMBER
5031
5032 004753'02 331 00 0 01 004730* DEDMCB::SKIPL MCBDTE(T1) ;WAS THAT OURS
5033 004754'02 263 17 0 00 000000 RET ;NO
5034 004755'02 331 00 0 00 000001 SKIPL T1 ;IS PORT NUMBER OUT OF RANGE
5035 004756'02 301 01 0 00 002272* CAIL T1,DCN
5036 JRST [ BUG (NSPBPN,<<T1,BADDTE>>)
5037 ;BUG type: BUGCHK, SOFT
5038 ;BUG message: BAD NSP PORT NUMBER
5039 SALL
5040 004757'02 254 00 0 00 010177' RET]
5041 004760'02 200 01 0 01 001716* MOVE T1,BITS(T1) ;GET THE PROPER BIT NUMBER
5042 004761'02 436 01 0 00 004452* IORM T1,NSPMCB ;AND SET IT. THIS WILL WAKE NSP BCKGRND TASK
5043 004762'02 263 17 0 00 000000 RET
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 115
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5044 ;ROUTINE TO CLOSE ALL LINKS ON ALL DEAD MCB'S
5045
5046 004763'02 265 16 0 00 004435* MCBDED: TRVAR <WAITER,DEDPRT,<DEDDUM,14>,MSGW1>
5047 004764'02 000017 000017
5048 004765'02 332 01 0 00 004761* MCBDE1: SKIPE T1,NSPMCB ;GET VECTOR OF DEAD MCB'S
5049 004766'02 243 01 0 00 004770' JFFO T1,GOTMCB ;IS THERE ANY MORE WORK
5050 004767'02 263 17 0 00 000000 RET ;NO - ALL DONE
5051 004770'02 200 01 0 02 004760* GOTMCB: MOVE T1,BITS(T2) ;CLEAR BIT WE'RE WORKING ON
5052 004771'02 412 01 0 00 004765* ANDCAM T1,NSPMCB ;AND SAVE
5053 004772'02 202 02 0 15 000002 MOVEM T2,DEDPRT ;SAVE PORT
5054 004773'02 205 16 0 00 430000 SETZRO <INISNT,INIRCV,REQVER>,MCBDTE(T2)
5055 004774'02 412 16 0 02 004753*
5056 004775'02 201 01 0 02 004733* MOVEI T1,ITSNAM(T2) ;FORM ADDRESS OF NODE NAME OF
5057 004776'02 270 01 0 15 000002 ADD T1,DEDPRT ; CRASHED DN20
5058 004777'02 505 01 0 00 440700 HRLI T1,(POINT 7,) ;FORM POINTER TO NAME
5059 005000'02 201 02 0 00 000001 MOVX T2,.NDSOF ;NODE STATE IS NOW OFF
5060 005001'02 400 03 0 00 000000 SETZ T3, ;SHOW NO NEIGHBOR NODE
5061 005002'02 260 17 0 00 000765' CALL ADDINT ;REMOVE NODE FROM KNOWN NODE TABLE
5062 005003'02 255 00 0 00 000000 JFCL ;FAILED, NOT IMPORTANT.
5063 005004'02 200 02 0 15 000002 MOVE T2,DEDPRT ;GET PORT NUMBER
5064 005005'02 402 00 0 02 004775* SETZM ITSNAM(T2) ;CLEAR NAME
5065 005006'02 402 00 0 02 000000# SETZM ITSNAM+1(T2) ; ENTRY
5066 005007'02 201 02 0 00 000047 MOVEI T2,.DCX39 ;GET ERROR
5067 005010'02 202 02 0 15 000017 MOVEM T2,MSGW1 ;SAVE REASON
5068 005011'02 260 17 0 00 000000# DEDMC1: LLLOCK ;LOCK TREE
5069 005012'02 200 01 0 00 010201' MOVE T1,[DEDCOR] ;COROUTINE
5070 005013'02 476 00 0 00 000002 SETOM T2 ;ALL LINKS
5071 005014'02 260 17 0 00 001176' CALL OBJSRC
5072 JRST [ LLLULK ;UNLOCK THE TREE
5073 005015'02 254 00 0 00 010202' JRST MCBDE1] ;SEE IF ANY MORE MCB'S
5074 005016'02 336 01 0 15 000001 SKIPN T1,WAITER ;IS WAIT TEST IS ZERO THEN WE AREN'T DONE
5075 005017'02 254 00 0 00 005011' JRST DEDMC1 ;YES - START AT TOP OF TREE AGAIN
5076 005020'02 265 16 0 00 000000* MDISMS ;NO - WAIT FOR LINK
5077 005021'02 254 00 0 00 005011' JRST DEDMC1 ;AND PROCEED
5078
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 116
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5079 ;COROUTINE TO DO THE WORK FOR MCBDED
5080
5081 005022'02 265 16 0 00 002675* DEDCOR: SAVET
5082 005023'02 135 02 0 00 007375' LOAD T2,LLSTA,(T1) ;GET THE LINK'S STATE
5083 005024'02 307 02 0 00 000001 CAIG T2,LLSLIS ;IS IT LISTENING?
5084 005025'02 263 17 0 00 000000 RET ;YES, NO CLEANUP NEEDED
5085 005026'02 200 16 0 01 000002 JN LLLOC,(T1),R ;IF LOCAL, NOTHING TO DO
5086 005027'02 603 16 0 00 200000
5087 005030'02 254 00 0 00 003465*
5088 005031'02 200 16 0 01 000000 JN LLDED,(T1),R ;IF ALREADY PROCESSED, NOTHING TO DO
5089 005032'02 321 16 0 00 005030*
5090 005033'02 135 02 0 00 007610' LOAD T2,LLPRT,(T1) ;GET THE LNK'S PORT NUMBER
5091 005034'02 312 02 0 15 000002 CAME T2,DEDPRT ;THE DEAD ONE?
5092 005035'02 263 17 0 00 000000 RET ;NO, ALL DONE
5093 005036'02 260 17 0 00 000000# CALL BLKLOK ;YES. LOCK THE LL BLOCK
5094 JRST [ LLLULK ;CAN'T. UNLOCK TREE
5095 MOVEM T1,WAITER ;STORE WAIT
5096 005037'02 254 00 0 00 010204' RETSKP] ;AND STOP NOW
5097 005040'02 260 17 0 00 000000# LLLULK ;UNLOCK THE TREE
5098 005041'02 135 02 0 00 007375' LOAD T2,LLSTA,(T1) ;GET STATE AGAIN
5099 005042'02 205 16 0 00 400000 SETONE LLDED,(T1) ;INDICATE THIS BLOCK PROCESSED FOR DEAD MCB
5100 005043'02 436 16 0 01 000000
5101 005044'02 307 02 0 00 000007 CAIG T2,LLSDIR ;NEED TO CHANGE STATE?
5102 XCT [ CALL RJECT ;YES. FOR CIS
5103 CALL RJECT1 ;FOR CIR
5104 CALL SHUTLK ;FOR RUNNING
5105 CALL RJECT1 ;FOR DI SENT
5106 CALL RJECT1 ;FOR QUEUED
5107 005045'02 256 00 0 02 010205' CALL RJECT1]-2(T2) ;AND, FINALLY, FOR DI REC
5108 005046'02 402 00 0 15 000001 SETZM WAITER ;FLAG INDICATES "CONTINUE AT TOP OF TREE"
5109 JN LLSDE,(T1),[ OKINT ;IF DISASSOCIATED
5110 CALL DELNOD ;RELEASE NODE
5111 005047'02 200 16 0 01 000002 RETSKP] ;NEED TO START AT TOP OF TREE
5112 005050'02 603 16 0 00 002000
5113 005051'02 254 00 0 00 010215'
5114 005052'02 260 17 0 00 000000# DEDMC2: CALL BLKULK ;RELEASE BLOCK AND RETURN
5115 005053'02 254 00 0 00 004400* RETSKP ;NEED TO START AT TOP OF TREE
5116
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 117
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5117
5118 ;ROUTINES TO HANDLE CONTROL MESSAGES
5119
5120 ;PROCESS A CONNECT-INITIATE
5121
5122 005054'02 260 17 0 00 000000# CIMSG: CALL GETLLA ;GET LL ADDRESSES
5123 005055'02 254 00 0 00 005242' JRST BADMSG ;BADLY FORMED
5124 005056'02 332 00 0 15 000004 SKIPE MSGDST ;IS DEST ADDR 0?
5125 JRST [ MOVEI T2,.DCX21 ;ILLEGAL DEST ADDR
5126 005057'02 254 00 0 00 010220' JRST CIDC] ;AND GO BOMB IT OUT
5127 005060'02 260 17 0 00 006317' CALL CIPSRV ;GO DO OTHER FIELDS
5128 JRST [ MOVEI T2,.DCX35
5129 005061'02 254 00 0 00 010222' JRST CIDC] ;AND BOMB IT OUT
5130 005062'02 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,INVPRC) ;GET FORMAT OF DEST OBJECT
5131 005063'02 254 00 0 00 005066'
5132 005064'02 134 02 0 15 000002
5133 005065'02 303 02 0 00 000002 CAILE T2,OBJTWO ;IS IT A FORMAT WE UNDERSTAND?
5134 INVPRC: JRST [ MOVEI T2,.DCX5
5135 005066'02 254 00 0 00 010224' JRST CIDC] ;AND ERROR
5136 005067'02 200 04 0 00 000002 MOVE T4,T2 ;SAVE OBJECT TYPE
5137 005070'02 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,INVPRC) ;GET OBJECT NUMBER
5138 005071'02 254 00 0 00 005066'
5139 005072'02 134 02 0 15 000002
5140 005073'02 202 02 0 15 000007 MOVEM T2,MSGOBJ ;SAVE OBJECT #
5141 005074'02 402 00 0 15 000010 SETZM MSGDDC ;ASSUME NO DESCRIPTOR
5142 005075'02 306 04 0 00 000000 CAIN T4,OBJZRO ;ANY MORE?
5143 005076'02 254 00 0 00 005105' JRST DSCNO ;NO
5144 005077'02 302 04 0 00 000001 CAIE T4,OBJONE ;A GROUP CODE INCLUDED?
5145 JRST [ CALL GETTWO ;YES. GET GOUP
5146 JRST INVPRC ;INVALID
5147 CALL GETTWO ;GET USER CODE
5148 JRST INVPRC ;INVALID
5149 005100'02 254 00 0 00 010226' JRST .+1] ;ALL READY TO GO
5150 005101'02 201 03 0 15 000010 MOVEI T3,MSGDDC ;DESCRIPTOR BLOCK
5151 005102'02 201 04 0 00 000020 MOVEI T4,MAXDSC
5152 005103'02 260 17 0 00 000000# CALL GTASCI ;MOVE DESCRIPTOR STRING
5153 005104'02 254 00 0 00 005066' JRST INVPRC
5154 005105'02 375 00 0 15 000001 DSCNO: GETBYM (MSGCNT,MSGBYP,INVPRC) ;GET SOURCE OBJECT TYPE
5155 005106'02 254 00 0 00 005066'
5156 005107'02 134 02 0 15 000002
5157 005110'02 303 02 0 00 000002 CAILE T2,OBJTWO ;VALID?
5158 005111'02 254 00 0 00 005066' JRST INVPRC
5159 005112'02 200 04 0 00 000002 MOVE T4,T2 ;SAVE IT
5160 005113'02 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,INVPRC) ;GET OBJECT #
5161 005114'02 254 00 0 00 005066'
5162 005115'02 134 02 0 15 000002
5163 005116'02 202 02 0 15 000021 MOVEM T2,MSGSOB ;SAVE SOURCE OBJECT #
5164 005117'02 402 00 0 15 000022 SETZM MSGSDC ;ASSUME NO DESCRIPTOR
5165 005120'02 402 00 0 15 000027 SETZM MSGDML ;ASSUME NO GROUP,USER
5166 005121'02 306 04 0 00 000002 CAIN T4,OBJTWO ;DOES IT INCLUDE A GROUP?
5167 JRST [ CALL GETTWO ;YES. GET GROUP
5168 JRST INVPRC ;BAD
5169 HRLM T2,MSGDML ;SAVE IT
5170 CALL GETTWO ;GET USER
5171 JRST INVPRC
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 117-1
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5172 HRRM T2,MSGDML ;SAVE IT
5173 005122'02 254 00 0 00 010233' JRST .+1] ;AND PROCEED
5174 005123'02 305 04 0 00 000001 CAIGE T4,OBJONE ;HAVE A DESCRIPTOR?
5175 005124'02 254 00 0 00 005131' JRST DSCNO1 ;NO. GO FIND MATCH
5176 005125'02 201 03 0 15 000022 MOVEI T3,MSGSDC ;MOVE DESCRIPTOR
5177 005126'02 201 04 0 00 000020 MOVEI T4,MAXDSC
5178 005127'02 260 17 0 00 000000# CALL GTASCI ;GET IT
5179 005130'02 254 00 0 00 005066' JRST INVPRC
5180 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 118
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5181
5182 ;CIMSG CONTINUED .....
5183
5184 005131'02 200 02 0 15 000005 DSCNO1: MOVE T2,MSGBLK ;POINT TO MSG BLOCK AGAIN
5185 005132'02 135 02 0 00 010153' LOAD T2,MSPRT,(T2) ;GET PORT MESSAGE CAME FROM
5186 005133'02 200 16 0 02 004774* TMNE NTSHUT,MCBDTE(T2) ;SHUTTING DOWN?
5187 005134'02 603 16 0 00 100000
5188 005135'02 332 00 0 15 000062 SKIPE MSGLCL ;YES. IS THIS A FOREIGN HOST?
5189 005136'02 254 00 0 00 005141' JRST DSCNO2 ;NO. ALLOW IT.
5190 005137'02 201 02 0 00 000003 MOVEI T2,.DCX3 ;"NODE SHUTTING DOWN"
5191 005140'02 254 00 0 00 005437' JRST CIDC ;AND REJECT THE CONNECT
5192 005141'02 201 01 0 00 005245' DSCNO2: MOVEI T1,CICOR ;COROUTINE ADDRESS
5193 005142'02 201 02 0 00 000001 MOVEI T2,1 ;LOOK FOR LISTENING OBJECT ONLY
5194 005143'02 260 17 0 00 000000# LLLOCK ;LOCK THE TREE
5195 005144'02 260 17 0 00 001176' CALL OBJSRC ;GO LOOK FOR IT
5196 JRST [ LLLULK ;RELEASE TREE
5197 005145'02 254 00 0 00 010242' JRST CIDC]
5198 005146'02 260 17 0 00 000000# CALL BLKLOK ;LOCK THE BLOCK
5199 JRST [ LLLULK ;COULDN'T.
5200 MDISMS ;WAIT HERE
5201 005147'02 254 00 0 00 010244' JRST DSCNO2] ;AND TRY AGAIN
5202 005150'02 260 17 0 00 000000# LLLULK ;AND FREE THE TREE
5203 005151'02 201 02 0 00 000003 MOVEI T2,LLSCIR ;HAVE A CONNECT-INITIATE
5204 005152'02 137 02 0 00 007375' STOR T2,LLSTA,(T1) ;NOTE STATE CHANGE
5205 005153'02 202 01 0 15 000006 MOVEM T1,MSGLLB ;SAVE BLOCK
5206 005154'02 200 02 0 15 000007 MOVE T2,MSGOBJ ;GET OBJECT USED IN CONNECT
5207 005155'02 542 02 0 01 000033 STOR T2,LLSOB,(T1) ;SAVE IT
5208 005156'02 200 02 0 15 000027 MOVE T2,MSGDML ;GET GROUP,USER
5209 005157'02 202 02 0 01 000040 MOVEM T2,LLUSGP(T1) ;SAVE IN LL BLOCK
5210 005160'02 332 00 0 15 000062 SKIPE MSGLCL ;LOCAL CONNECTION?
5211 JRST [SETONE LLLOC,(T1) ;YES, NOTE THIS IS A LOCAL LINK
5212 005161'02 254 00 0 00 010247' JRST HOSTNL] ;LEAVE NULL HOST NAME
5213 005162'02 201 02 0 15 000015 MOVEI T2,MSGHSN ;GET POINTER TO HOST NAME
5214 005163'02 200 01 0 01 000014 LOAD T1,LLHST,(T1) ;GET OUT HOST STRING
5215 005164'02 476 00 0 00 000003 SETOM T3 ;NO COUNT
5216 005165'02 260 17 0 00 001260' CALL MOVSTR ;MOVE THE STRING
5217 005166'02 200 01 0 15 000006 MOVE T1,MSGLLB ;GET BACK BLOCK ADDRESS
5218 005167'02 200 02 0 15 000005 MOVE T2,MSGBLK ;GET MESSAGE
5219 005170'02 135 02 0 00 010153' LOAD T2,MSPRT,(T2) ;GET PORT #
5220 005171'02 137 02 0 00 007610' STOR T2,LLPRT,(T1) ;SAVE IN LL BLOCK
5221 005172'02 260 17 0 00 005260' HOSTNL: CALL FILLIN ;GO FILL IN COMMON QUANTITIES
5222 005173'02 200 02 0 15 000021 MOVE T2,MSGSOB ;GET SOURCE OBJECT
5223 005174'02 137 02 0 00 007723' STOR T2,LLFNM,(T1) ;SAVE IT
5224 005175'02 135 01 0 00 007471' LOAD T1,LLFDS,(T1) ;GET DESCRIPTOR STRING
5225 005176'02 336 02 0 15 000022 SKIPN T2,MSGSDC ;HAVE A DESCRIPTOR?
5226 JRST [ CALL RELBLK ;FREE THE BLOCK
5227 MOVE T1,MSGLLB ;GET BACK LL BLOCK
5228 SETZRO LLFDS,(T1) ;CLEAR IT
5229 005177'02 254 00 0 00 010252' JRST DSCMOV]
5230 005200'02 476 00 0 00 000003 SETOM T3 ;UNTIL A NULL
5231 005201'02 201 02 0 15 000022 MOVEI T2,MSGSDC ;GET POINTER TO STRING
5232 005202'02 260 17 0 00 001260' CALL MOVSTR ;MOVE IT
5233 005203'02 200 01 0 15 000006 MOVE T1,MSGLLB ;GET BACK BLOCK ADDRESS
5234 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 119
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5235
5236 ;CIMSG CONTINUED. FOUND BLOCK. GET OPTIONAL ACCESS CONTROL STUFF
5237
5238 005204'02 375 00 0 15 000001 DSCMOV: GETBYM (MSGCNT,MSGBYP,NODATA) ;GET MENU BYTE
5239 005205'02 254 00 0 00 005237'
5240 005206'02 134 02 0 15 000002
5241 005207'02 202 02 0 15 000017 MOVEM T2,MSGW1 ;SAVE MENU
5242 005210'02 606 02 0 00 000001 TRNN T2,1 ;HAVE ACCESS CONTROL?
5243 005211'02 254 00 0 00 005227' JRST NOUSER ;NO. CHECK FOR OPDATA
5244 005212'02 200 03 0 01 000035 LOAD T3,LLUSR,(T1) ;WHERE TO PUT USER DATA
5245 005213'02 201 04 0 00 000020 MOVEI T4,MAXDSC
5246 005214'02 260 17 0 00 000000# CALL GTASCI ;GET IT
5247 005215'02 254 00 0 00 005455' JRST BADUDT ;BADLY FORMED
5248 005216'02 135 03 0 00 007472' LOAD T3,LLPSW,(T1) ;WHERE TO PUT PASSWORD
5249 005217'02 201 04 0 00 000010 MOVEI T4,^D8 ;MAX SIZE OF PASSWORD
5250 005220'02 260 17 0 00 000000# CALL GTBNRY ;GET OCTETS
5251 005221'02 254 00 0 00 005455' JRST BADUDT ;BADLY FORMED
5252 005222'02 137 02 0 00 007652' STOR T2,LLPCT,(T1) ;SAVE COUNT
5253 005223'02 200 03 0 01 000036 LOAD T3,LLACT,(T1) ;GET ACCOUNT DATA
5254 005224'02 201 04 0 00 000020 MOVEI T4,MAXDSC
5255 005225'02 260 17 0 00 000000# CALL GTASCI ;GET IT
5256 005226'02 254 00 0 00 005455' JRST BADUDT ;BADLY FORMED
5257 005227'02 200 02 0 15 000017 NOUSER: MOVE T2,MSGW1 ;GET BACK MENU
5258 005230'02 606 02 0 00 000002 TRNN T2,2 ;HAVE OPTDATA?
5259 005231'02 254 00 0 00 005237' JRST NODATA ;NO. ALL DONE
5260 005232'02 135 03 0 00 007421' LOAD T3,LLOPT,(T1) ;WHERE TO PUT IT
5261 005233'02 201 04 0 00 000020 MOVEI T4,MAXDSC
5262 005234'02 260 17 0 00 000000# CALL GTBNRY ;GET OCTETS
5263 005235'02 254 00 0 00 005455' JRST BADUDT ;BADLY FORMED
5264 005236'02 137 02 0 00 007655' STOR T2,LLUCT,(T1) ;SAVE COUNT
5265 005237'02 260 17 0 00 005331' NODATA: CALL INTTST ;GO SEE IF THIS IS CONNECTED TO AN INTERNAL LINK
5266 005240'02 260 17 0 00 005300' DSCMV1: CALL CONINT ;GIVE INTERRUPT
5267 005241'02 260 17 0 00 000000# CALL BLKULK ;RELEASE THE BLOCK
5268 005242'02 BADMSG: ;IGNORE THE MESSAGE
5269 005242'02 200 01 0 15 000005 CIDON: MOVE T1,MSGBLK ;GET BACK MESSAGE BLOCK
5270 005243'02 260 17 0 00 004200* CALL RELRES ;FREE THE BLOCK
5271 005244'02 263 17 0 00 000000 RET ;RETURN TO BACKGROUND TASK DISPATCHER
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 120
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5272 ;COROUTINE OF CIMSG TO FIND THE PROPER LISTENING OBJECT
5273
5274 005245'02 265 16 0 00 005022* CICOR: SAVET ;SAVE ALL TEMPS
5275 005246'02 336 02 0 15 000007 SKIPN T2,MSGOBJ ;WANT TASK NAME MATCH?
5276 JRST [ LOAD T2,LLTSK,(T1) ;YES. PICK UP STRING
5277 005247'02 254 00 0 00 010257' JRST CICOR1] ;AND GO TRY
5278 005250'02 554 16 0 01 000033 OPSTR <CAME T2,>,LLNAM,(T1) ;IS THIS THE CORRECT OBJECT?
5279 005251'02 312 02 0 00 000016
5280 005252'02 263 17 0 00 000000 RET ;NO.
5281 005253'02 200 02 0 01 000034 LOAD T2,LLDSC,(T1) ;YES. CHECK DESCRIPTOR STRINGS
5282 005254'02 201 01 0 15 000010 CICOR1: MOVEI T1,MSGDDC ;GET REQUESTED DESCRIPTOR
5283 005255'02 260 17 0 00 004713* CALL CMPSTR ;GO COMPARE STRINGS
5284 005256'02 263 17 0 00 000000 RET ;NOT THE ONE
5285 005257'02 254 00 0 00 005053* RETSKP ;FOUND IT!!!!
5286
5287 ;COMMON ROUTINE TO FETCH LL ADDRESSES FROM MESSAGES AND STORE IN
5288 ;PROPER TRVAR'S
5289
5290 RESCD ;USED BY INT LEVEL
5291 000677'01 260 17 0 00 000706' GETLLA: CALL GETTWO ;GET DEST LL
5292 000700'01 263 17 0 00 000000 RET ;BADLY FORMED
5293 000701'01 202 02 0 15 000004 MOVEM T2,MSGDST ;SAVE IT
5294 000702'01 260 17 0 00 000706' CALL GETTWO ;GET SOURCE
5295 000703'01 263 17 0 00 000000 RET ;BADLY FORMED
5296 000704'01 202 02 0 15 000003 MOVEM T2,MSGSRC
5297 000705'01 254 00 0 00 000676* RETSKP ;GO THEM
5298
5299 ;COMMON ROUTINE TO FILL IN LL BLOCK AFTER SUCCESSFUL CONNECTION
5300
5301 SWAPCD ;IS SWAPPABLE
5302 005260'02 200 02 0 15 000017 FILLIN: MOVE T2,MSGW1 ;GET FC OPTION
5303 005261'02 137 02 0 00 010261' STOR T2,LLMFC,(T1) ;STORE IT
5304 005262'02 200 02 0 15 000020 MOVE T2,MSGW2 ;GET SEGSIZE
5305 005263'02 200 03 0 15 000005 MOVE T3,MSGBLK ;GET MESSAGE ADDRESS
5306 005264'02 135 03 0 00 010144' LOAD T3,MSMFL,(T3) ;GET MESSAGE FLAGS
5307 005265'02 302 03 0 00 000030 CAIE T3,CIMMFL ;A CI?
5308 JRST [ LOAD T4,LLSWG,(T1) ;NO, A CC. GET SEGSIZ OF CI
5309 CAMLE T2,T4 ;OUR'S LESS?
5310 MOVE T2,T4 ;NO, USE SEGSIZ OF CI
5311 TMNE LLLOC,(T1) ;LOCAL CONNECTION?
5312 JRST FILLI2 ;YES, NO FURTHER CHECK NEEDED
5313 LOAD T4,LLPRT,(T1) ;GET PORT NUMBER
5314 CAMLE T2,NSPMAX(T4) ;OUR'S LESS THAN PORT'S?
5315 MOVE T2,NSPMAX(T4) ;NO, USE PORT'S SEGSIZ
5316 005266'02 254 00 0 00 010262' JRST FILLI2]
5317 005267'02 135 03 0 00 007414' FILLI2: LOAD T3,LLBSZ,(T1) ;GET BYTE SIZE
5318 005270'02 302 03 0 00 000044 CAIE T3,44 ;WORD MODE?
5319 005271'02 254 00 0 00 005274' JRST FILLI1 ;NO.
5320 005272'02 231 02 0 00 000011 IDIVI T2,11 ;YES. MAKE IT EVEN # OF WORDS THEN
5321 005273'02 221 02 0 00 000011 IMULI T2,11 ;""
5322 005274'02 137 02 0 00 007415' FILLI1: STOR T2,LLSWG,(T1) ;SAVE IT
5323 005275'02 200 02 0 15 000003 MOVE T2,MSGSRC ;GET FOREIGN LINK I.D.
5324 005276'02 137 02 0 00 010274' STOR T2,LLHLK,(T1) ;SAVE IT
5325 005277'02 263 17 0 00 000000 RET ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 121
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5326 ;COMMON ROUTINE TO GEN CONNECT INTERRUPT
5327
5328 005300'02 265 16 0 00 005245* CONINT: SAVET ;SAVE TEMPS
5329 005301'02 265 16 0 00 004465* STKVAR <CNTLLB,CNTSTS>
5330 005302'02 000002 000002
5331 005303'02 202 01 0 17 777776 MOVEM T1,CNTLLB ;SAVE LOGICAL LINK BLOCK ADDRESS
5332 005304'02 200 16 0 01 000002 JN LLINT,(T1),CONIN1 ;IF INTERNAL LINK GO NOTIFY DRIVER OF CONNECT
5333 005305'02 603 16 0 00 004000
5334 005306'02 254 00 0 00 005315'
5335 005307'02 554 02 0 01 000003 LOAD T2,LLFRK,(T1) ;GET OWNING FORK
5336 005310'02 135 16 0 00 007656' OPSTR <SKIPN T1,>,LLPIC,(T1) ;HAVE A CONNECT PI?
5337 005311'02 336 01 0 00 000016
5338 005312'02 263 17 0 00 000000 RET ;NONE TO DO
5339 005313'02 370 00 0 00 000001 SOS T1 ;GET PROPER CHANNEL
5340 005314'02 254 00 0 00 002671* CALLRET PSIRQ ;GEN INTERRUPT
5341
5342 ; HERE FOR INTERNAL LINKS
5343
5344 005315'02 260 17 0 00 002504' CONIN1: CALL RDSTS ;GO GET LINK STATUS
5345 005316'02 202 03 0 17 777775 MOVEM T3,CNTSTS ;SAVE STATUS
5346 005317'02 550 01 0 17 777775 HRRZ T1,CNTSTS ;GET NSP ERROR CODE
5347 005320'02 260 17 0 00 004371' CALL NSPERR ;CONVERT TO TOPS20 ERROR CODE
5348 005321'02 255 00 0 00 000000 JFCL ;USE TRANSLATION ROUTINE'S ERROR CODE
5349 005322'02 540 02 0 00 000001 HRR T2,T1 ;GET TOPS20 ERROR CODE
5350 005323'02 500 02 0 17 777775 HLL T2,CNTSTS ;GET STATUS FLAGS
5351 005324'02 200 01 0 17 777776 MOVE T1,CNTLLB ;RESTORE LOGICAL LINK BLOCK ADDRESS
5352 005325'02 200 04 0 01 000034 LOAD T4,LLVEC,(T1) ;GET ADDRESS OF DRIVER FUNCTION VECTOR
5353 005326'02 200 01 0 01 000033 LOAD T1,LLDRV,(T1) ;GET DRIVER CORRELATION CODE
5354 005327'02 260 17 1 04 000001 CALL @.NSCND(T4) ;NOTIFY DRIVER OF CONNECTION
5355 005330'02 263 17 0 00 000000 RET ;DONE, RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 122
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5356 ;INTTST - ROUTINE TO DETERMINE IF CONNECTED TO AN INTERNAL LINK
5357 ;
5358 ;ACCEPTS IN TRVARS MSGLCL/ LOCAL-FOREIGN FLAG
5359 ; MSGSRC/ LINK ID OF SOURCE OF CI MESSAGE
5360 ; MSGLLB/ LOGICAL LINK BLOCK ADDRESS OF DESTINATION LINK
5361 ; CALL INTTST
5362 ;RETURNS: +1 ALWAYS, WITH LLCIL SET IF CONNECTED TO AN INTERNAL LINK
5363
5364 005331'02 265 16 0 00 002777* INTTST: ACVAR <W1>
5365
5366 005332'02 265 16 0 00 005300* SAVET ;PRESERVE LOCAL AC'S
5367 005333'02 336 00 0 15 000062 SKIPN MSGLCL ;LOCAL CONNECTION ?
5368 005334'02 263 17 0 00 000000 RET ;NO, DONE
5369
5370 ; LOCK SOURCE LOGICAL LINK BLOCK AND SEE IF IT IS AN INTERNAL LINK
5371
5372 005335'02 260 17 0 00 000000# INTT10: LLLOCK ;LOCK LOGICAL LINK TREE
5373 005336'02 200 01 0 15 000003 MOVE T1,MSGSRC ;GET SOURCE LINK ID
5374 005337'02 476 00 0 00 000002 SETOM T2 ;NO SPECIAL CRITERIA
5375 005340'02 260 17 0 00 000000# CALL LLLKUP ;FIND THE LINK ADDRESS
5376 JRST [ LLLULK ;FAILED, UNLOCK THE TREE
5377 005341'02 254 00 0 00 010275' RET ] ;RETURN, LINK MUST HAVE DISAPPEARED
5378 005342'02 202 01 0 00 000005 MOVEM T1,W1 ;SAVE LOGICAL LINK BLOCK ADDRESS OF SOURCE
5379 005343'02 260 17 0 00 000000# CALL BLKLOK ;LOCK THE SOURCE LINK BLOCK
5380 JRST [ LLLULK ;CANNOT LOCK IT, UNLOCK THE TREE
5381 MDISMS ;WAIT UNTIL AVAILABLE
5382 005344'02 254 00 0 00 010277' JRST INTT10 ] ;GO TRY TO LOCK BLOCK AGAIN
5383 005345'02 260 17 0 00 000000# LLLULK ;UNLOCK LOGICAL LINK TREE
5384 005346'02 200 16 0 05 000002 JE LLINT,(W1),INTT20 ;IF SOURCE IS NOT AN INTERNAL LINK, WE ARE DONE
5385 005347'02 607 16 0 00 004000
5386 005350'02 254 00 0 00 005354'
5387 005351'02 200 04 0 15 000006 MOVE T4,MSGLLB ;GET LOGICAL LINK BLOCK ADDRESS OF DESTINATION
5388 005352'02 205 16 0 00 400000 SETONE LLCIL,(T4) ;NOTE CONNECTED TO AN INTERNAL LINK
5389 005353'02 436 16 0 04 000001
5390
5391 ; HERE WHEN DONE, UNLOCK BLOCK AND RETURN
5392
5393 005354'02 200 01 0 00 000005 INTT20: MOVE T1,W1 ;RESTORE LOGICAL LINK BLOCK ADDRESS
5394 005355'02 260 17 0 00 000000# CALL BLKULK ;UNLOCK THE BLOCK
5395 005356'02 263 17 0 00 000000 RET ;DONE, RETURN
5396
5397 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 123
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5398 ;PROCESS A CONNECT-CONFIRM
5399
5400 005357'02 260 17 0 00 000000# CCMSG: CALL GETLLA ;GET LINK ADDRESSES
5401 005360'02 254 00 0 00 005242' JRST BADMSG ;BADLY FORMED
5402 005361'02 402 00 0 15 000021 SETZM MSGSOB ;ASSUME WE LIKE SERVICES
5403 005362'02 260 17 0 00 006317' CALL CIPSRV ;GET SERVICES INFO
5404 005363'02 476 00 0 15 000021 SETOM MSGSOB ;DIDN'T LIKE IT. REMEMBER THIS
5405 005364'02 200 01 0 15 000004 CCMSG1: MOVE T1,MSGDST ;GET OUR ALLEGED NAME
5406 005365'02 476 00 0 00 000002 SETOM T2 ;ANY MATCH
5407 005366'02 260 17 0 00 000000# LLLOCK ;LOCK THE TREE
5408 005367'02 260 17 0 00 000000# CALL LLLKUP ;AND LOOK UP THE BLOCK
5409 JRST [ LLLULK ;FREE THE TREE
5410 MOVEI T2,.DCX41 ;NO MATCH
5411 005370'02 254 00 0 00 010302' JRST CIDC] ;GO DC THE LINK
5412 005371'02 202 01 0 15 000006 MOVEM T1,MSGLLB ;SAVE LINK BLOCK ADR
5413 005372'02 260 17 0 00 000000# CALL BLKLOK ;LOCK BLOCK LOCK
5414 JRST [ LLLULK ;FREE TREE LOCK
5415 MDISMS ;WAIT HERE A WHILE
5416 005373'02 254 00 0 00 010305' JRST CCMSG1] ;AND TRY AGAIN
5417 005374'02 260 17 0 00 000000# LLLULK ;FREE THE TREE
5418 005375'02 200 16 0 01 000002 JN LLFOB,(T1),CCJECT ;CAN'T BE AN OBJECT
5419 005376'02 603 16 0 00 000001
5420 005377'02 254 00 0 00 005432'
5421 005400'02 135 02 0 00 007375' LOAD T2,LLSTA,(T1) ;GET STATE
5422 005401'02 254 00 1 02 004302' JRST @CCREC-1(T2) ;GO DO RIGHT THING
5423
5424 ;EXPECTING A CC.
5425
5426 005402'02 336 00 0 15 000021 CCGUD: SKIPN MSGSOB ;DID WE LIKE SERVICES?
5427 005403'02 254 00 0 00 005411' JRST CCGUD1 ;YES
5428 005404'02 201 02 0 00 000011 MOVEI T2,LLSABT ;NEED TO CLOSE LINK
5429 005405'02 137 02 0 00 007375' STOR T2,LLSTA,(T1) ;SAY LINK IS DEAD
5430 005406'02 260 17 0 00 005300' CALL CONINT ;GET AN INTERRUPT
5431 005407'02 201 02 0 00 000043 MOVEI T2,.DCX35 ;SERVICES MISMATCH
5432 005410'02 254 00 0 00 005433' JRST CCJEC1 ;AND SEND A DC
5433 005411'02 337 00 0 15 000003 CCGUD1: SKIPG MSGSRC ;A VALID SOURCE I.D.?
5434 JRST [ SETZM MSGW1 ;NO.
5435 CALL RJECT ;SHUT DOWN LINK
5436 005412'02 254 00 0 00 010310' JRST CCDON] ;AND GIVE UP
5437 005413'02 260 17 0 00 005260' CALL FILLIN ;FILL IN NECESSARY INFORMATION
5438 005414'02 260 17 0 00 006306' CALL TURNON ;GO SEND INTIAL LS MESSAGE
5439 JRST [ EXCH T1,MSGLLB ;SAVE SCHED TEST, GET LINK BLOCK ADR
5440 CALL BLKULK ;FREE THIS BLOCK
5441 MOVE T1,MSGLLB ;RESTORE SCHED TEST
5442 CALL GENWAT ;WAIT HERE FOR A WHILE
5443 MDISMS ;UNTIL FREE SPACE IS AVAILABLE
5444 005415'02 254 00 0 00 010313' JRST CCMSG1] ;AND DO IT AGAIN
5445 005416'02 201 02 0 00 000004 MOVEI T2,LLSRUN ;NOW WE ARE RUNNING
5446 005417'02 137 02 0 00 007375' STOR T2,LLSTA,(T1) ;SAY SO
5447 005420'02 205 16 0 00 100000 SETONE LLLWC,(T1) ;NOTE THAT A GOOD CC WAS RECEIVED
5448 005421'02 436 16 0 01 000001
5449 005422'02 135 03 0 00 007421' LOAD T3,LLOPT,(T1) ;SEE IF ANY OPTDATA
5450 005423'02 201 04 0 00 000020 MOVEI T4,MAXDSC
5451 005424'02 260 17 0 00 000000# CALL GTBNRY
5452 JRST [ JUMPE T2,CCGUD2 ;IF NO OPTDATA, OK
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 123-1
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5453 005425'02 254 00 0 00 010321' JRST BADUDT] ;BAD MESSAGE
5454 005426'02 137 02 0 00 007655' STOR T2,LLUCT,(T1) ;YES. SAVE COUNT
5455 005427'02 201 02 0 00 000001 CCGUD2: MOVEI T2,1 ;INITIAL COUNT FOR LS/INT
5456 005430'02 137 02 0 00 010050' STOR T2,LLMIC,(T1) ;STASH IT
5457 005431'02 254 00 0 00 005240' JRST DSCMV1 ;AND GO INTERRUPT, ETC.
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 124
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5458
5459 ;CCMSG CONTINUED...
5460 ;DON'T LIKE IT
5461
5462 005432'02 201 02 0 00 000051 CCJECT: MOVEI T2,.DCX41 ;ILLEGAL DEST ADDRESS
5463 005433'02 260 17 0 00 000000# CCJEC1: CALL BLKULK ;FREE THE BLOCK
5464 005434'02 254 00 0 00 005437' JRST CIDC ;AND SEND DC
5465
5466 005435'02 260 17 0 00 000000# CCDON: CALL BLKULK ;FREE THE BLOCK
5467 005436'02 254 00 0 00 005242' JRST CIDON ;IGNORE THE MESSAGE
5468
5469 ;ROUTINES TO SEND DC'S FOR CONNECT ERRORS
5470
5471 005437'02 332 00 0 15 000062 CIDC: SKIPE MSGLCL ;IS IT LOCAL?
5472 JRST [SKIPL NSPLPB ;YES, IS THERE A RUNNING LOOPBACK LINE?
5473 JRST CIDCLC ;NO
5474 005440'02 254 00 0 00 010323' JRST .+1] ;YES
5475 005441'02 202 02 0 15 000017 MOVEM T2,MSGW1 ;SAVE CODE
5476 005442'02 201 01 0 15 000027 CIDCT: MOVEI T1,MSGDML ;USE DUMMY LINK BLOCK
5477 005443'02 201 03 0 00 000110 MOVEI T3,CNMRFL+CNMDC ;FLAGS
5478 005444'02 200 02 0 15 000017 MOVE T2,MSGW1 ;GET REASON
5479 005445'02 260 17 0 00 005464' CALL SNDDC ;BUILD THE DC MESSAGE
5480 JRST [ MDISMS ;WAIT A WHILE
5481 005446'02 254 00 0 00 010326' JRST CIDCT] ;AND TRY AGAIN
5482 005447'02 260 17 0 00 000000# CALL SNDCTL ;SEND IT
5483 005450'02 254 00 0 00 005242' JRST CIDON ;AND DONE
5484
5485 005451'02 200 01 0 15 000004 CIDCLC: MOVE T1,MSGDST
5486 005452'02 250 01 0 15 000003 EXCH T1,MSGSRC ;EXCHANGE SOURCE AND DEST
5487 005453'02 202 01 0 15 000004 MOVEM T1,MSGDST ;""
5488 005454'02 254 00 0 00 005712' JRST DCMSG4 ;AND GO DO DC
5489
5490 ;ROUTINE TO HANDLE ACCESS INFORMATION ERRORS
5491
5492 005455'02 260 17 0 00 005300' BADUDT: CALL CONINT ;INT PROCESS
5493 005456'02 201 02 0 00 000053 MOVEI T2,.DCX43 ;SAY BAD OPTDATA
5494 005457'02 137 02 0 00 007636' STOR T2,LLRSN,(T1) ;AND STASH IT
5495 005460'02 201 03 0 00 000011 MOVEI T3,LLSABT ;NEW STATE
5496 005461'02 137 03 0 00 007375' STOR T3,LLSTA,(T1)
5497 005462'02 260 17 0 00 000000# CALL BLKULK ;FREE BLOCK
5498 005463'02 254 00 0 00 005437' JRST CIDC ;AND SEND DC
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 125
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5499
5500 ;ROUTINE TO BUILD A DI OR DC MESSAGE FOR NSPTSK
5501 ;ACCEPTS: T1/ ADDRESS OF DUMMY LL BLOCK
5502 ; T2/ REASON
5503 ; T3/ FLAGS
5504 ;RETURNS: +1 FAILED. NEED TO BLOCK
5505 ; +2 ALL SENT
5506
5507 005464'02 332 04 0 15 000015 SNDDC: SKIPE T4,MSGHSN ;ANY HOST NAME ?
5508 005465'02 201 04 0 15 000015 MOVEI T4,MSGHSN ;YES, GET ADDRESS OF HOST NAME
5509 005466'02 202 04 0 01 000014 STOR T4,LLHST,(T1) ;STORE IT
5510 005467'02 200 04 0 15 000003 MOVE T4,MSGSRC ;GET SOURCE NAME
5511 005470'02 137 04 0 00 010274' STOR T4,LLHLK,(T1) ;SAVE AS REMOTE NAME
5512 005471'02 200 04 0 15 000004 MOVE T4,MSGDST ;GET OUR NAME
5513 005472'02 542 04 0 01 000002 STOR T4,LLLNK,(T1) ;SAVE IT
5514 005473'02 200 04 0 00 000003 MOVE T4,T3 ;MOVE FLAGS
5515 005474'02 200 03 0 15 000005 MOVE T3,MSGBLK ;GET MESSAGE
5516 005475'02 135 03 0 00 010330' LOAD T3,MSPRT,(T3) ;GET PORT
5517 005476'02 137 03 0 00 007610' STOR T3,LLPRT,(T1) ;SAVE IN LL BLOCK
5518 005477'02 402 00 0 00 000003 SETZM T3 ;NO USER DATA
5519 005500'02 260 17 0 00 003374' CALL SNDDI ;BUILD THE MESSAGE
5520 JRST [ TQO <BLKF> ;NOTE BLOCK NEEDED
5521 005501'02 254 00 0 00 007251' RET ] ;AND RETURN
5522 005502'02 254 00 0 00 005257* RETSKP ;DONE, RETURN SUCCESS
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 126
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5523 ;RECEIVED AN ACK
5524
5525 005503'02 301 04 0 00 000002 ACKMSG: CAIL T4,2 ;VALID SUBTYPE?
5526 005504'02 254 00 0 00 005242' JRST BADMSG ;NO, IGNORE IT
5527 005505'02 260 17 0 00 000000# CALL GETLLA ;GET LINK ADDRESSES
5528 005506'02 254 00 0 00 005242' JRST BADMSG ;BADLY FORMED
5529 005507'02 200 01 0 15 000005 MOVE T1,MSGBLK ;GET BLOCK ADDRESS
5530 005510'02 200 03 0 15 000002 MOVE T3,MSGBYP ;GET CURRENT POINTER
5531 005511'02 202 03 0 01 000003 MOVEM T3,MSBPTR(T1) ;SAVE POINTER
5532 005512'02 200 03 0 15 000001 MOVE T3,MSGCNT ;GET CURRENT COUNT
5533 005513'02 137 03 0 00 010331' STOR T3,MSDTC,(T1) ;SAVE IT
5534 005514'02 260 17 0 00 000000# ACKMS1: LLLOCK ;LOCK THE TREE
5535 005515'02 200 01 0 15 000004 MOVE T1,MSGDST ;GET OUR NAME
5536 005516'02 200 02 0 15 000003 MOVE T2,MSGSRC
5537 005517'02 260 17 0 00 000000# CALL LLLKUP ;LOOK UP THE NAME
5538 JRST [ LLLULK ;NOT FOUND
5539 MOVEI T2,.DCX41 ;INVALID ADDRESS
5540 005520'02 254 00 0 00 010332' JRST CIDC] ;SEND A DC TO SHUT OFF THIS NOISE
5541 005521'02 260 17 0 00 000000# CALL BLKLOK ;FOUND IT. LOCK IT
5542 JRST [ LLLULK ;CAN'T
5543 MDISMS ;WAIT A WHILE
5544 005522'02 254 00 0 00 010335' JRST ACKMS1] ;AND TRY AGAIN
5545 005523'02 260 17 0 00 000000# LLLULK
5546 005524'02 202 01 0 15 000006 MOVEM T1,MSGLLB ;SAVE LOGICAL LINK BLOCK ADDRESS
5547 005525'02 135 02 0 00 007375' LOAD T2,LLSTA,(T1) ;GET CURRENT STATE
5548 005526'02 254 00 1 02 004346' JRST @ACKSTA-1(T2) ;GO HANDLE IT
5549
5550 ;IN CIS STATE
5551
5552 005527'02 260 17 0 00 000000# ACKCIS: CALL GETTWO ;GET ACK VALUE
5553 005530'02 254 00 0 00 005542' JRST ACKINV ;NOT VALID
5554 005531'02 602 02 0 00 010000 TXNE T2,ACKBIT ;ACK OR NACK?
5555 005532'02 254 00 0 00 005435' JRST CCDON ;A NACK. IGNORE IT
5556 005533'02 326 02 0 00 005542' JUMPN T2,ACKINV ;AN ACK. MUST BE FOR SEG # 0
5557 005534'02 200 02 0 15 000005 MOVE T2,MSGBLK ;GET FLAGS
5558 005535'02 135 02 0 00 010104' LOAD T2,MSMFL,(T2) ;""
5559 005536'02 336 00 0 15 000003 SKIPN MSGSRC ;MUST NOT HAVE A SOURCE NAME YET
5560 005537'02 602 02 0 00 000020 TXNE T2,ACKLSI ;AND MUST BE FOR DATA SUBCHANNEL
5561 005540'02 254 00 0 00 005542' JRST ACKINV ;NOT
5562 005541'02 254 00 0 00 005435' JRST CCDON ;A VALID ACK. IGNORE IT HOWEVER
5563
5564 005542'02 201 02 0 00 000051 ACKINV: MOVEI T2,.DCX41 ;INVALID.
5565 005543'02 202 02 0 15 000017 MOVEM T2,MSGW1 ;SET UP ERROR CODE
5566 005544'02 254 00 0 00 005606' JRST CONREJ ;AND FAKE A CI REJECT
5567
5568 ;IN RUN STATE
5569
5570 005545'02 200 02 0 15 000005 ACKRUN: MOVE T2,MSGBLK ;GET MESSAGE
5571 005546'02 135 02 0 00 010104' LOAD T2,MSMFL,(T2) ;GET FLAGS
5572 005547'02 260 17 0 00 000000# CALL ACKDO ;GO DO THE ACTUAL ACK
5573 005550'02 254 00 0 00 006266' JRST ABTMSG ;BADLY FORMED MESSAGE
5574 JN LLINT,(T1),[
5575 CALL SQILS ;INTERNAL LINK, TRY LS SEND AGAIN
5576 MOVE T1,MSGLLB ;FAILED, RESTORE LINK BLOCK ADDRESS
5577 005551'02 200 16 0 01 000002 JRST CCDON]
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 126-1
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5578 005552'02 603 16 0 00 004000
5579 005553'02 254 00 0 00 010340'
5580 005554'02 200 16 0 01 000020 TMNE LLLSA,(T1) ;WANT TO RETRY A LS SEND?
5581 005555'02 603 16 0 00 000004
5582 005556'02 260 17 0 00 000000# CALL DATINR ;YES. MAKE PROCESS WAKE NOW THEN
5583 005557'02 254 00 0 00 005435' JRST CCDON ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 127
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5584 005560'02 260 17 0 00 000000# DIMSG: CALL GETLLA ;GET LINK ADDRESSES
5585 005561'02 254 00 0 00 005242' JRST BADMSG ;BAD MESSAGE
5586 005562'02 260 17 0 00 000000# CALL GETTWO ;GET REASON CODE
5587 005563'02 476 00 0 00 000002 SETOM T2 ;BADLY FORMED MESSAGE
5588 005564'02 202 02 0 15 000017 MOVEM T2,MSGW1 ;SAVE REASON CODE
5589 005565'02 200 01 0 15 000004 DIMSG1: MOVE T1,MSGDST ;GET OUR NAME
5590 005566'02 476 00 0 00 000002 SETOM T2 ;MATCH ANY LINK
5591 005567'02 201 03 0 15 000015 MOVEI T3,MSGHSN ;GET HOST NAME
5592 005570'02 260 17 0 00 000000# LLLOCK ;LOCK THE TREE
5593 005571'02 260 17 0 00 000000# CALL LLLKUP ;FIND THE LINK
5594 JRST [ LLLULK ;FREE THE TREE
5595 MOVEI T2,.DCX41 ;INVALID LINK I.D.
5596 005572'02 254 00 0 00 010343' JRST CIDC] ;AND SEND A DC
5597 005573'02 202 01 0 15 000006 MOVEM T1,MSGLLB ;SAVE BLOCK ADDRESS
5598 005574'02 260 17 0 00 000000# CALL BLKLOK ;LOCK THE BLOCK
5599 JRST [ LLLULK ;FREE THE TREE
5600 MDISMS ;WAIT HERE FOR A WHILE
5601 005575'02 254 00 0 00 010346' JRST DIMSG1] ;AND TRY AGAIN
5602 005576'02 260 17 0 00 000000# LLLULK ;FREE THE TREE
5603 005577'02 135 03 0 00 007421' LOAD T3,LLOPT,(T1) ;GET OPTDATA, IF ANY
5604 005600'02 201 04 0 00 000020 MOVEI T4,MAXDSC
5605 005601'02 260 17 0 00 000000# CALL GTBNRY ;GO GET IT
5606 005602'02 402 00 0 00 000002 SETZM T2 ;NONE THERE.
5607 005603'02 137 02 0 00 007655' STOR T2,LLUCT,(T1) ;SAVE COUNT OF DATA
5608 005604'02 135 02 0 00 007375' LOAD T2,LLSTA,(T1) ;GET CURRENT STATE
5609 005605'02 254 00 1 02 004313' JRST @DIREC-1(T2) ;GO DO STATE ACTION
5610
5611 ;DI RECIEVED WHEN IN CI SENT STATE
5612
5613 005606'02 260 17 0 00 005625' CONREJ: CALL RJECT ;SET STATE OF LINK
5614 005607'02 254 00 0 00 005622' JRST DIMSG3 ;SEND DC
5615
5616 ;HERE FOR DI RECEIVED WHEN IN NON-RUN STATE
5617
5618 005610'02 260 17 0 00 005655' DIABT: CALL CHKFRN ;SOURCE ADDR MUST MATCH
5619 005611'02 254 00 0 00 005432' JRST CCJECT ;DOESN'T
5620 JN LLSDE,(T1),[
5621 CALL RELLNK ;IF DISASSOCIATED
5622 MOVEI T2,.DCX9 ;SAY A USER ABORT
5623 005612'02 200 16 0 01 000002 JRST CIDC] ;AND SEND DC
5624 005613'02 603 16 0 00 002000
5625 005614'02 254 00 0 00 010351'
5626 005615'02 260 17 0 00 005632' CALL RJECT1 ;GO CHANGE LINK STATE
5627 005616'02 254 00 0 00 005622' JRST DIMSG3 ;SEND DC
5628
5629 ;DI OR DC RECIEVED IN RUN STATE
5630
5631 005617'02 260 17 0 00 005655' DIMSG2: CALL CHKFRN ;SOURCE ADDR MUST MATCH
5632 005620'02 254 00 0 00 005432' JRST CCJECT ;DOESN'T
5633 005621'02 260 17 0 00 005642' CALL SHUTLK ;SHUT DOWN LINK
5634 005622'02 336 02 0 15 000017 DIMSG3: SKIPN T2,MSGW1 ;HAVE A BAD REASON?
5635
5636 ;COMMON POINT FOR DI OR DC IN RUN STATE OR DC IN ABT STATE
5637
5638 005623'02 201 02 0 00 000052 DCDCS: MOVEI T2,.DCX42 ;NO. SAY REPLY TO DI THEN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 127-1
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5639 005624'02 254 00 0 00 005433' JRST CCJEC1 ;AND GO SEND DC
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 128
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5640
5641 ;ROUTINES TO CHANGE LINK STATE WHEN DI OR DC IS RECIEVED
5642
5643 ;FOR DI OR DC RECEIVED IN CIS STATE
5644
5645 005625'02 201 02 0 00 000011 RJECT: MOVEI T2,LLSABT ;CONNECTION IS ABORTED
5646 005626'02 137 02 0 00 007375' STOR T2,LLSTA,(T1) ;SAY SO
5647 005627'02 200 02 0 15 000017 MOVE T2,MSGW1 ;GET REASON CODE
5648 005630'02 137 02 0 00 007636' STOR T2,LLRSN,(T1) ;SAVE IN THE LL BLOCK
5649 005631'02 254 00 0 00 005300' CALLRET CONINT ;GIVE CONNECTION INTERRUPT
5650
5651 ;FOR DI OR DC RECIEVED IN NON-RUN STATE
5652
5653 005632'02 201 02 0 00 000011 RJECT1: MOVEI T2,LLSABT ;SAY LINK NOW ABORTED
5654 005633'02 137 02 0 00 007375' STOR T2,LLSTA,(T1)
5655 005634'02 200 02 0 15 000017 MOVE T2,MSGW1 ;GET REASON
5656 005635'02 137 02 0 00 007636' STOR T2,LLRSN,(T1) ;STORE IN BLOCK
5657 005636'02 260 17 0 00 000000# CALL FLUSH ;CLEAR OUT LINK'S QUEUES
5658 005637'02 260 17 0 00 000000* CALL CHKLLT ;CHECK FOR TTY ON THIS LINK
5659 005640'02 254 00 0 00 005661' CALLRET TELDIS ;NOTIFY DRIVER IF THIS IS AN INTERNAL LINK
5660
5661 ;FOR DI OR DC RECEIVED IN RUN STATE
5662
5663 005641'02 334 03 0 00 010354' SHTLK1: SKIPA T3,[LLSDIS] ;NEW STATE
5664 005642'02 201 03 0 00 000007 SHUTLK: MOVEI T3,LLSDIR ;NEW STATE
5665 005643'02 200 02 0 15 000017 MOVE T2,MSGW1 ;GET REASON
5666 005644'02 137 02 0 00 007636' STOR T2,LLRSN,(T1) ;SAVE IT
5667 005645'02 137 03 0 00 007375' STOR T3,LLSTA,(T1) ;SAVE NEW STATE
5668 005646'02 260 17 0 00 000000# CALL DATINR ;GIVE INT IF NECESSARY
5669 005647'02 332 00 0 15 000017 SKIPE MSGW1 ;SYNCHRONOUS DI?
5670 JRST [ SETZRO LLFDI,(T1) ;NO. CLEAR THIS JUST IN CASE
5671 CALL FLUSH ;AND CLEAN UP LINK
5672 005650'02 254 00 0 00 010355' JRST SHUT10] ;GO NOTIFY DRIVER IF INTERNAL LINK
5673 005651'02 205 16 0 00 000010 SETONE LLFDI,(T1) ;YES. SAY SO
5674 005652'02 436 16 0 01 000002
5675 005653'02 260 17 0 00 005637* SHUT10: CALL CHKLLT ;CHECK FOR TTY ON THIS LL
5676 005654'02 254 00 0 00 005661' CALLRET TELDIS ;NOTIFY DRIVER IF AN INTERNAL LINK
5677
5678
5679
5680 ;ROUTINE USED BY DIMSG TO VERIFY SOURCE ADDR
5681 ; T1/ LINK ADDRESS
5682 ;RETURNS: +1 NOT A MATCH
5683 ; +2 A MATCH
5684
5685 005655'02 135 02 0 00 010274' CHKFRN: LOAD T2,LLHLK,(T1) ;GET FOREIGN HOST I.D.
5686 005656'02 312 02 0 15 000003 CAME T2,MSGSRC ;IS THIS WHO SENT IT?
5687 005657'02 263 17 0 00 000000 RET ;NO
5688 005660'02 254 00 0 00 005502* RETSKP ;YES
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 129
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5689 ;TELDIS - ROUTINE TO NOTIFY A DRIVER OF A DISCONNECT ON AN INTERNAL LINK
5690 ;
5691 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
5692 ; CALL TELDIS
5693 ;RETURNS: +1 ALWAYS, WITH DRIVER NOTIFIED
5694
5695 005661'02 265 16 0 00 005332* TELDIS: SAVET
5696 005662'02 265 16 0 00 005301* STKVAR <TDSLLB,TDSSTS>
5697 005663'02 000002 000002
5698 005664'02 202 01 0 17 777776 MOVEM T1,TDSLLB ;SAVE LOGICAL LINK BLOCK ADDRESS
5699 005665'02 200 16 0 01 000002 JE LLINT,(T1),R ;DONE IF NOT AN INTERNAL LINK
5700 005666'02 607 16 0 00 004000
5701 005667'02 254 00 0 00 005032*
5702 005670'02 200 16 0 01 000002 JN LLSDE,(T1),R ;DONE IF LINK DISSOCIATED FROM PROCESS
5703 005671'02 603 16 0 00 002000
5704 005672'02 254 00 0 00 005667*
5705 005673'02 260 17 0 00 002504' CALL RDSTS ;GO GET LINK STATUS
5706 005674'02 202 03 0 17 777775 MOVEM T3,TDSSTS ;SAVE STATUS
5707 005675'02 550 01 0 17 777775 HRRZ T1,TDSSTS ;GET NSP ERROR CODE
5708 005676'02 260 17 0 00 004371' CALL NSPERR ;CONVERT TO TOPS20 ERROR CODE
5709 005677'02 255 00 0 00 000000 JFCL ;FAILED, USE ERROR CODE FROM TRANSLATION ROUTINE
5710 005700'02 540 02 0 00 000001 HRR T2,T1 ;GET TOPS20 ERROR CODE
5711 005701'02 500 02 0 17 777775 HLL T2,TDSSTS ;GET STATUS BITS
5712 005702'02 200 01 0 17 777776 MOVE T1,TDSLLB ;RESTORE LOGICAL LINK BLOCK ADDRESS
5713 005703'02 200 04 0 01 000034 LOAD T4,LLVEC,(T1) ;GET ADDRESS OF DRIVER FUNCTION VECTOR
5714 005704'02 200 01 0 01 000033 LOAD T1,LLDRV,(T1) ;GET DRIVER CORRELATION CODE
5715 005705'02 254 00 1 04 000007 CALLRET @.NSDIS(T4) ;NOTIFY DRIVER OF DISCONNECT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 130
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5716 ;RECEIVED A DC MESSAGE
5717
5718 005706'02 260 17 0 00 000000# DCMSG: CALL GETLLA ;GET LINK ADDRESSES
5719 005707'02 254 00 0 00 005242' JRST BADMSG ;BADLY FORMED
5720 005710'02 260 17 0 00 000000# CALL GETTWO ;GET REASON
5721 005711'02 476 00 0 00 000002 SETOM T2 ;NONE THERE
5722 005712'02 202 02 0 15 000017 DCMSG4: MOVEM T2,MSGW1 ;SAVE IT
5723 005713'02 200 01 0 15 000004 DCMSG1: MOVE T1,MSGDST ;GET OUR NAME
5724 005714'02 200 02 0 15 000003 MOVE T2,MSGSRC ;GET SOURCE ADDRESS
5725 005715'02 260 17 0 00 000000# LLLOCK ;LOCK THE TREE
5726 005716'02 260 17 0 00 000000# CALL LLLKUP ;FIND THE LINK
5727 JRST [ LLLULK ;FREE THE TREE
5728 005717'02 254 00 0 00 010361' JRST CIDON] ;IGNORE THE MESSAGE
5729 005720'02 260 17 0 00 000000# CALL BLKLOK ;LOCK THE BLOCK
5730 JRST [ LLLULK ;CAN'T. FREE TREE
5731 MDISMS ;WAIT HERE
5732 005721'02 254 00 0 00 010363' JRST DCMSG1] ;AND TRY AGAIN
5733 005722'02 260 17 0 00 000000# LLLULK ;FREE TREE
5734 005723'02 135 02 0 00 007375' LOAD T2,LLSTA,(T1) ;GET STATE
5735 005724'02 254 00 1 02 004324' JRST @DCREC-1(T2) ;AND GO DO RIGHT THING
5736
5737 005725'02 336 00 0 15 000003 CHKIDL: SKIPN MSGSRC ;SOURCE NODE FIELD MBZ, IS IT?
5738 005726'02 260 17 0 00 005625' CALL RJECT ;YES, GO SET PROPER LINK STATE
5739 005727'02 254 00 0 00 005435' JRST CCDON ;AND DONE
5740
5741 ;RECEIVED DC IN NON-RUN STATE
5742
5743 DCABT: JN LLSDE,(T1),[
5744 CALL RELLNK ;IF DISASSOCIATED
5745 005730'02 200 16 0 01 000002 JRST CIDON] ;JUST GIVE UP QUIETLY
5746 005731'02 603 16 0 00 002000
5747 005732'02 254 00 0 00 010366'
5748 005733'02 260 17 0 00 005632' CALL RJECT1 ;SET PROPER LINK STATE
5749 005734'02 254 00 0 00 005435' JRST CCDON ;AND DONE
5750
5751 ;DC RECEIVED IN RUN STATE
5752
5753 005735'02 336 02 0 15 000017 DCRUN: SKIPN T2,MSGW1 ;AN ABORT?
5754 005736'02 201 02 0 00 000011 MOVEI T2,.DCX9 ;NO. MAKE IT ONE THEN
5755 005737'02 202 02 0 15 000017 MOVEM T2,MSGW1
5756 005740'02 260 17 0 00 005642' CALL SHUTLK ;BEGIN LINK SHUT DOWN
5757 005741'02 254 00 0 00 005435' JRST CCDON ;AND DONE
5758
5759
5760
5761 ;UTILITY ROUTINE TO RELEASE A DISASSOCIATED NODE
5762
5763 005742'02 256 00 0 00 004517* RELLNK: OKINT ;DO THE OKINT TO MATCH THE LOCK
5764 005743'02 254 00 0 00 001531' CALLRET DELNOD ;FREE NODE AND RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 131
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5765
5766 ;DATA MESSAGE RECEIVED
5767
5768 005744'02 302 04 0 00 000005 DATMSG: CAIE T4,5 ;VALID
5769 005745'02 306 04 0 00 000007 CAIN T4,7 ; SUBTYPE?
5770 005746'02 254 00 0 00 005242' JRST BADMSG ;NO, IGNORE IT
5771 005747'02 202 04 0 15 000017 MOVEM T4,MSGW1 ;SAVE SUBTYPE
5772 005750'02 260 17 0 00 000000# CALL GETLLA ;GET LINK ADDRESSES
5773 005751'02 254 00 0 00 005242' JRST BADMSG ;BADLY FORMED
5774 005752'02 260 17 0 00 000000# DATMS1: LLLOCK ;LOCK TREE
5775 005753'02 200 01 0 15 000004 MOVE T1,MSGDST ;GET OUR NAME
5776 005754'02 200 02 0 15 000003 MOVE T2,MSGSRC ;GET REMOTE'S NAME
5777 005755'02 260 17 0 00 000000# CALL LLLKUP ;LOOK IT UP
5778 JRST [ LLLULK ;FREE TREE
5779 MOVEI T2,.DCX41 ;INVALID ADDRESS
5780 005756'02 254 00 0 00 010370' JRST CIDC] ;SEND A DC
5781 005757'02 260 17 0 00 000000# CALL BLKLOK ;LOCK UP THE BLOCK
5782 JRST [ LLLULK ;FREE TREE
5783 MDISMS ;WAIT FOR BLOCK
5784 005760'02 254 00 0 00 010373' JRST DATMS1] ;AND TRY AGAIN
5785 005761'02 260 17 0 00 000000# LLLULK ;HAVE THE BLOCK
5786 005762'02 202 01 0 15 000006 MOVEM T1,MSGLLB ;SAVE LL BLOCK
5787 005763'02 135 02 0 00 007375' LOAD T2,LLSTA,(T1) ;GET STATE
5788 005764'02 254 00 1 02 004357' JRST @DATSTA-1(T2) ;GO DO IT
5789
5790 005765'02 200 04 0 15 000017 DATRUN: MOVE T4,MSGW1 ;GET BACK SUBTYPE
5791 005766'02 602 04 0 00 000001 TXNE T4,1 ;DATA MESSAGE?
5792 005767'02 254 00 0 00 006004' JRST INTLS ;NO.
5793 005770'02 260 17 0 00 006300' CALL SETCNT ;SET COUNTS IN MESSAGE HEADER
5794 005771'02 200 02 0 15 000005 MOVE T2,MSGBLK ;GET MESSAGE BLOCK
5795 005772'02 260 17 0 00 000000# CALL ONRAWQ ;PUT IT ON THE Q
5796 005773'02 200 16 0 01 000002 DATDON: JN LLINT,(T1),INTRUN ;IF THIS IS AN INTERNAL LINK, GO ASSEMBLE DATA
5797 005774'02 603 16 0 00 004000
5798 005775'02 254 00 0 00 006000'
5799 005776'02 260 17 0 00 000000# CALL BLKULK ;NOT INTERNAL, FREE BLOCK
5800 005777'02 263 17 0 00 000000 RET ;RETURN TO BACKGROUND TASK DISPATCHER
5801
5802 ; HERE FOR INTERNAL LINKS - ASSEMBLE DATA INTO DRIVER'S BUFFER
5803
5804 006000'02 260 17 0 00 006107' INTRUN: CALL INTSET ;GO DO INPUT FOR INTERNAL LINK
5805 006001'02 255 00 0 00 000000 JFCL ;FAILED, IGNORE FAILURE FOR NOW
5806 006002'02 260 17 0 00 000000# CALL BLKULK ;UNLOCK THE LOGICAL LINK BLOCK
5807 006003'02 263 17 0 00 000000 RET ;AND RETURN TO BACKGROUND TASK'S DISPATCHER
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 132
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5808 ; NOT A DATA MESSAGE - MUST BE INTERRUPT OR LINK SERVICES MESSAGE
5809
5810 006004'02 260 17 0 00 000000# INTLS: CALL GETTWO ;GET ACK NUMBER
5811 006005'02 254 00 0 00 006266' JRST ABTMSG ;GO KILL LINK
5812 006006'02 622 02 0 00 100000 TXZE T2,ACKIND ;AN ACK?
5813 JRST [ MOVEI T3,MSLSI ;GET PROPER CHANNEL
5814 CALL ACKCHN ;DO ACK
5815 CALL GETTWO ;GET SEGNUM
5816 JRST ABTMSG ;BADLY FORMED
5817 006007'02 254 00 0 00 010376' JRST .+1]
5818 006010'02 200 03 0 15 000005 MOVE T3,MSGBLK ;GET BLOCK ADDRESS
5819 006011'02 137 02 0 00 010403' STOR T2,MSSEG,(T3) ;SAVE SEG #
5820 006012'02 135 03 0 00 010404' LOAD T3,LLIIN,(T1) ;GET EXPECTED NUMBER
5821 006013'02 350 00 0 00 000003 AOS T3
5822 006014'02 405 03 0 00 007777 ANDI T3,7777 ;COMPUTE IT
5823 006015'02 275 03 0 02 000000 SUBI T3,0(T2) ;COMPUTE DIFFERENCE
5824 006016'02 405 03 0 00 007777 ANDI T3,7777
5825 006017'02 322 03 0 00 006025' JUMPE T3,LSINT1 ;HAVE IT
5826 006020'02 303 03 0 00 000036 CAILE T3,MAXDIF ;OLD OR NEW?
5827 006021'02 254 00 0 00 006101' JRST LSIDON ;TOO NEW. IGNORE IT FOR NOW
5828 006022'02 260 17 0 00 000000# INTLS1: CALL ACKLI ;OLD SEG. GO REACK SUBCHANNEL
5829 JRST [ MDISMS ;NO FREE SPACE. WAIT AWHILE
5830 MOVE T1,MSGLLB ;RESTORE BLOCK ADDRESS
5831 006023'02 254 00 0 00 010405' JRST INTLS1] ;AND TRY AGAIN
5832 006024'02 254 00 0 00 006101' JRST LSIDON ;AND DONE
5833
5834 ;HAVE A GOOD INT OR LS MESSAGE
5835
5836 006025'02 137 02 0 00 010404' LSINT1: STOR T2,LLIIN,(T1) ;STORE SEG #
5837 006026'02 200 04 0 15 000017 MOVE T4,MSGW1 ;GET BACK SUBTYPE
5838 006027'02 606 04 0 00 000002 TRNN T4,2 ;INT OR LS MESSAGE?
5839 006030'02 254 00 0 00 006044' JRST LSMSG ;LS
5840 006031'02 332 00 0 01 000006 SKIPE LLMSI(T1) ;NOW HAVE AN INTERRUPT MESSAGE?
5841 006032'02 254 00 0 00 006266' JRST ABTMSG ;KILL LINK
5842 006033'02 260 17 0 00 006300' CALL SETCNT ;GO SET COUNTS IN BLOCK
5843 006034'02 200 02 0 15 000005 MOVE T2,MSGBLK ;GET BLOCK
5844 006035'02 513 00 0 02 000000 SETZRO MSLNK,(T2) ;CLEAR LINK WORD
5845 006036'02 202 02 0 01 000006 MOVEM T2,LLMSI(T1) ;STORE IT
5846 006037'02 260 17 0 00 002662' CALL INTINT ;GO INTERRUPT PROCESS
5847 006040'02 260 17 0 00 000000# CALL ACKLI ;GO ACK IT
5848 006041'02 255 00 0 00 000000 JFCL ;IGNORE BLOCK REQUEST
5849 006042'02 200 01 0 15 000006 MOVE T1,MSGLLB ;GET BACK LL BLOCK
5850 006043'02 254 00 0 00 005773' JRST DATDON ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 133
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5851
5852 ;HAVE A LS MESSAGE
5853
5854 006044'02 260 17 0 00 000000# LSMSG: CALL ACKLI ;ACK THE LS MESSAGE NOW
5855 JRST [ MDISMS ;WAIT HERE UNTIL CAN DO IT
5856 MOVE T1,MSGLLB ;GET BACK LL BLOCK
5857 006045'02 254 00 0 00 010410' JRST LSMSG] ;AND TRY AGAIN
5858 006046'02 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,ABTMSG) ;GET LSFLAGS BYTE
5859 006047'02 254 00 0 00 006266'
5860 006050'02 134 02 0 15 000002
5861 006051'02 606 02 0 00 000003 TXNN T2,3 ;CHANGING BACK-PRESSURE?
5862 006052'02 254 00 0 00 006057' JRST LSMSG1 ;NO
5863 006053'02 602 02 0 00 000001 TRNE T2,1 ;STOPPING?
5864 JRST [ SETONE LLBRP,(T1) ;YES. SAY SO
5865 006054'02 254 00 0 00 010413' JRST LSMSG1] ;AND PROCEED
5866 006055'02 205 16 0 00 400000 SETZRO LLBRP,(T1) ;NO. START IT UP
5867 006056'02 412 16 0 01 000007
5868 006057'02 200 03 0 00 000002 LSMSG1: MOVE T3,T2 ;SAVE FIELD
5869 006060'02 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,ABTMSG) ;GET NEXT
5870 006061'02 254 00 0 00 006266'
5871 006062'02 134 02 0 15 000002
5872 006063'02 602 03 0 00 000004 TXNE T3,4 ;DATA COUNTS?
5873 JRST [ OPSTR <ADD T2,>,LLMIC,(T1) ;NO. COMPUTE NEW VALUE
5874 TXNE T2,200 ;WITHIN RANGE?
5875 JRST ABTMSG ;NO
5876 STOR T2,LLMIC,(T1) ;YES. STORE IT
5877 006064'02 254 00 0 00 010416' JRST LSIDON] ;AND DONE
5878 006065'02 135 03 0 00 010261' LOAD T3,LLMFC,(T1) ;GET FLOW CONTROL TYPE
5879 006066'02 322 03 0 00 006100' JUMPE T3,LSIDN1 ;IF NONE, GO ON
5880 006067'02 602 02 0 00 000200 TRNE T2,200 ;IS THE COUNT NEGATIVE?
5881 006070'02 302 03 0 00 000002 CAIE T3,2 ;YES. IS FLOW CONTROL MESSAGE TYPE?
5882 006071'02 334 00 0 00 000000 SKIPA ;NO. IS GOOD THEN
5883 006072'02 254 00 0 00 006266' JRST ABTMSG ;YES. LINK ERROR
5884 006073'02 135 16 0 00 010424' OPSTR <ADD T2,>,LLMSM,(T1) ;ADD IN THE NUMBER
5885 006074'02 270 02 0 00 000016
5886 006075'02 137 02 0 00 010424' STOR T2,LLMSM,(T1) ;SAVE NEW VALUE
5887 006076'02 606 02 0 00 000200 TXNN T2,200 ;IS THE COUNT NEGATIVE?
5888 JUMPN T2,[MOVEI T2,CHKSCT ;NO. HAVE SOME COUNT MORE
5889 PUSH P,T1 ;SAVE LL BLOCK
5890 LOAD T1,LLFRK,(T1) ;GET FORK NUMBER
5891 CALL NETWKF ;WAKE UP THE PROCESS
5892 POP P,T1 ;GET BACK LL BLOCK
5893 006077'02 326 02 0 00 010425' JRST .+1] ;AND PROCEED
5894 006100'02 260 17 0 00 000000# LSIDN1: CALL RESEND ;SEE IF CAN RESEND ANYTHING
5895 006101'02 260 17 0 00 005653* LSIDON: CALL CHKLLT ;CHECK FOR TTY ON THIS LL
5896 JN LLINT,(T1),[
5897 CALL INTOUT ;IF INTERNAL LINK SEND ANY OUTPUT STILL LEFT
5898 JFCL ;IGNORE FAILURE HERE
5899 006102'02 200 16 0 01 000002 JRST .+1] ;CONTINUE
5900 006103'02 603 16 0 00 004000
5901 006104'02 254 00 0 00 010433'
5902 006105'02 260 17 0 00 000000# CALL BLKULK ;FREE THE BLOCK
5903 006106'02 254 00 0 00 005242' JRST CIDON ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 134
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5904 ;INTSET - ROUTINE TO DO INPUT ON INTERNAL LINKS
5905 ;
5906 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
5907 ; CALL INTSET
5908 ;RETURNS: +1 FAILED
5909 ; +2 SUCCESS
5910
5911 006107'02 265 16 0 00 005661* INTSET::SAVET
5912 006110'02 265 16 0 00 005662* STKVAR <INSLLB,INSCNT,INSFLG>
5913 006111'02 000003 000003
5914 006112'02 202 01 0 17 777776 MOVEM T1,INSLLB ;SAVE LOGICAL LINK BLOCK ADDRESS
5915 006113'02 402 00 0 17 777774 SETZM INSFLG ;INITIALIZE "ALL DATA FIT IN BUFFER" FLAG
5916
5917 ; SET UP INPUT BUFFER IF NOT ALREADY SET UP, AND PUT SEGMENTS ON ORDERED QUEUE
5918
5919 006114'02 200 01 0 17 777776 INS010: MOVE T1,INSLLB ;GET LOGICAL LINK BLOCK ADDRESS
5920 006115'02 205 16 0 00 000040 SETZRO LLFIM,(T1) ;START BY ASSUMING NOT END OF MESSAGE
5921 006116'02 412 16 0 01 000002
5922 006117'02 260 17 0 00 000000# CALL MOVSEG ;PLACE SEGMENTS ON ORDERED MESSAGE QUEUE
5923 006120'02 263 17 0 00 000000 RET ;FAILED, RETURN ERROR
5924 006121'02 200 01 0 17 777776 MOVE T1,INSLLB ;RESTORE LOGICAL LINK BLOCK
5925 006122'02 336 00 0 01 000012 SKIPN LLOMSG(T1) ;ANY MESSAGES TO PROCESS ?
5926 006123'02 254 00 0 00 005660* RETSKP ;NO, DONE.
5927 006124'02 200 01 0 17 777776 MOVE T1,INSLLB ;GET LOGICAL LINK BLOCK ADDRESS
5928 006125'02 260 17 0 00 006243' CALL SETIBF ;SET UP BUFFER IF REQUIRED
5929 006126'02 254 00 0 00 006123* RETSKP ;FAILED, WAIT FOR BUFFER FROM DRIVER
5930
5931 ; IF TRUNCATING CURRENT NSP MESSAGE, DISCARD THIS SEGMENT
5932
5933 006127'02 200 01 0 17 777776 MOVE T1,INSLLB ;GET ADDRESS OF LOGICAL LINK BLOCK
5934 JN LLTRM,(T1),[
5935 CALL TRNMSG ;GO DISCARD THIS SEGMENT
5936 RET ;FAILED
5937 006130'02 200 16 0 01 000037 JRST INS030] ;GO SEND ANY ACK'S OR LS MESSAGES NEEDED
5938 006131'02 603 16 0 00 100000
5939 006132'02 254 00 0 00 010436'
5940
5941 ; COPY DATA IN RECEIVED SEGMENTS INTO DRIVER'S BUFFER
5942
5943 006133'02 200 01 0 17 777776 MOVE T1,INSLLB ;GET LOGICAL LINK BLOCK ADDRESS
5944 006134'02 200 02 0 01 000042 LOAD T2,LLBPI,(T1) ;GET CURRENT BUFFER POINTER
5945 006135'02 550 03 0 01 000043 LOAD T3,LLICT,(T1) ;GET MAX NUMBER OF CHARACTERS IN INPUT BUFFER
5946 006136'02 260 17 0 00 004102' CALL MOVMSG ;GO COPY DATA INTO DRIVER'S BUFFER
5947 006137'02 263 17 0 00 000000 RET ;FAILED, RETURN ERROR
5948 006140'02 200 04 0 17 777776 MOVE T4,INSLLB ;RESTORE LOGICAL LINK BLOCK ADDRESS
5949 006141'02 202 02 0 17 777775 MOVEM T2,INSCNT ;SAVE NUMBER OF BYTES THAT WERE INPUT
5950 006142'02 202 03 0 17 777774 MOVEM T3,INSFLG ;SAVE FLAG NOTING WHETHER ALL DATA FIT IN BUFFER
5951 006143'02 202 01 0 04 000042 STOR T1,LLBPI,(T4) ;STORE NEW BUFFER POINTER
5952 006144'02 337 00 0 17 777775 SKIPG INSCNT ;ANY BYTES INPUT ?
5953 006145'02 254 00 0 00 006151' JRST INS020 ;NO, DO NOT UPDATE COUNT
5954 006146'02 550 03 0 04 000043 LOAD T3,LLICT,(T4) ;GET PREVIOUS COUNT
5955 006147'02 274 03 0 00 000002 SUB T3,T2 ;COMPUTE NUMBER OF BYTES LEFT IN BUFFER
5956 006150'02 542 03 0 04 000043 STOR T3,LLICT,(T4) ;UPDATE NUMBER OF BYTES REMAINING
5957 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 135
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5958 ; ..
5959
5960 ; IF SEGMENT DID NOT FIT IN BUFFER, SEE IF DRIVER WANTED TO TRUNCATE
5961
5962 006151'02 200 02 0 17 777774 INS020: MOVE T2,INSFLG ;GET FLAG INDICATING IF ALL DATA FIT IN BUFFER
5963 006152'02 316 02 0 00 010441' CAMN T2,[-1] ;DID LAST SEGMENT FIT IN THE BUFFER ?
5964 JRST [ JE LLTRC,(T4),.+1 ;NO. JUST CONTINUE IF NOT TRUNCATING MESSAGES
5965 SETONE LLTRM,(T4) ;REMAINDER OF THIS MESSAGE NOT NEEDED
5966 006153'02 254 00 0 00 010442' JRST .+1] ;AND CONTINUE
5967
5968 ; CALL DRIVER IF EITHER BUFFER WAS FILLED OR A COMPLETE MESSAGE WAS RECEIVED
5969
5970 006154'02 200 01 0 17 777776 MOVE T1,INSLLB ;GET ADDRESS OF LOGICAL LINK BLOCK
5971 006155'02 200 02 0 17 777775 MOVE T2,INSCNT ;GET NUMBER OF BYTES INPUT
5972 006156'02 200 03 0 17 777774 MOVE T3,INSFLG ;GET FLAG NOTING IF ALL DATA FIT IN BUFFER
5973 006157'02 260 17 0 00 006171' CALL TELDAT ;NOTIFY DRIVER THAT DATA HAS ARRIVED
5974
5975 ; IF NO BYTES WERE INPUT, ALL DONE. RETURN TO DISPATCHER
5976
5977 006160'02 336 00 0 17 777775 SKIPN INSCNT ;WERE ANY BYTES INPUT ?
5978 006161'02 254 00 0 00 006126* RETSKP ;NO, ALL DONE THEN
5979
5980 ; SEND ANY ACK MESSAGES OR LINK SERVICES MESSAGES NEEDED
5981
5982 006162'02 200 01 0 17 777776 INS030: MOVE T1,INSLLB ;GET ADDRESS OF LOGICAL LINK BLOCK
5983 006163'02 260 17 0 00 000000# CALL SQIACK ;SEND ANY ACK'S NEEDED
5984 006164'02 263 17 0 00 000000 RET ;FAILED, RETURN ERROR
5985 006165'02 200 01 0 17 777776 MOVE T1,INSLLB ;GET ADDRESS OF LOGICAL LINK BLOCK AGAIN
5986 006166'02 260 17 0 00 000000# CALL SQILS ;SEND ANY LINK SERVICES MESSAGES NEEDED
5987 006167'02 255 00 0 00 000000 JFCL ;IGNORE FAILURE, ACK'S WILL CAUSE RETRY
5988 006170'02 254 00 0 00 006114' JRST INS010 ;GO SEE IF THERE ARE MORE MESSAGES TO PROCESS
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 136
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
5989 ;TELDAT - ROUTINE TO ADVISE THE DRIVER IF A COMPLETE MESSAGE HAS ARRIVED
5990 ;
5991 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
5992 ; T2/ NUMBER OF BYTES INPUT, -1 IF NOT ENOUGH ROOM IN BUFFER
5993 ; CALL TELDAT
5994 ;RETURNS: +1 ALWAYS, WITH DRIVER NOTIFIED IF NEEDED
5995
5996 006171'02 265 16 0 00 006110* TELDAT: STKVAR <TLDLLB,TLDCNT,TLDFLG>
5997 006172'02 000003 000003
5998 006173'02 202 01 0 17 777776 MOVEM T1,TLDLLB ;SAVE LOGICAL LINK BLOCK ADDRESS
5999 006174'02 202 02 0 17 777775 MOVEM T2,TLDCNT ;SAVE COUNT OF BYTES INPUT
6000 006175'02 202 03 0 17 777774 MOVEM T3,TLDFLG ;SAVE FLAG NOTING IF ALL DATA FIT IN BUFFER
6001
6002 ; DETERMINE IF DRIVER MUST BE NOTIFIED
6003
6004 006176'02 200 04 0 17 777776 MOVE T4,TLDLLB ;GET LOGICAL LINK BLOCK ADDRESS
6005 006177'02 550 03 0 04 000043 LOAD T3,LLICT,(T4) ;GET # OF BYTES LEFT IN BUFFER
6006 006200'02 322 03 0 00 006204' JUMPE T3,TLDT10 ;IF NONE, BETTER TELL DRIVER !
6007 006201'02 200 02 0 17 777774 MOVE T2,TLDFLG ;GET FLAG
6008 006202'02 312 02 0 00 010441' CAME T2,[-1] ;INSUFFICIENT ROOM IN BUFFER FOR THIS MSG ?
6009 JRST [ JE LLFIM,(T1),R ;NO, RETURN UNLESS A COMPLETE MESSAGE RECEIVED
6010 006203'02 254 00 0 00 010447' JRST TLDT10 ] ;...
6011
6012 ; COMPUTE NUMBER OF BYTES IN BUFFER AND NOTIFY DRIVER OF DATA ARRIVAL
6013
6014 006204'02 200 04 0 01 000034 TLDT10: LOAD T4,LLVEC,(T1) ;GET ADDRESS OF DRIVER FUNCTION VECTOR
6015 006205'02 554 03 0 01 000043 LOAD T3,LLIIC,(T1) ;YES, GET INITIAL COUNT OF BYTES IN BUFFER
6016 006206'02 550 02 0 01 000043 LOAD T2,LLICT,(T1) ;GET CURRENT COUNT OF BYTES LEFT FOR INPUT
6017 006207'02 274 03 0 00 000002 SUB T3,T2 ;COMPUTE NUMBER OF BYTES ALREADY INPUT
6018 JN LLFIM,(T1),[TXO T3,NS%MSG ;BUFFER BEING RETURNED BECAUSE EOM SEEN
6019 006210'02 200 16 0 01 000002 JRST .+1] ;...
6020 006211'02 603 16 0 00 000040
6021 006212'02 254 00 0 00 010453'
6022 006213'02 200 02 0 01 000041 LOAD T2,LLBFI,(T1) ;GET ADDRESS OF DRIVER'S BUFFER
6023 006214'02 200 01 0 01 000033 LOAD T1,LLDRV,(T1) ;GET DRIVER CORRELATION CODE
6024 006215'02 260 17 1 04 000003 CALL @.NSDAT(T4) ;ADVISE DRIVER THAT INPUT HAS ARRIVED
6025 006216'02 200 04 0 17 777776 MOVE T4,TLDLLB ;RESTORE LOGICAL LINK BLOCK ADDRESS
6026 JUMPN T1,[JN LLFIM,(T4),.+1 ;ONLY SET TRUNCATE IF NOT FULL MSG
6027 SETONE LLTRM,(T4) ;NOTE TRUNCATION IF DRIVER REQUESTED IT
6028 006217'02 326 01 0 00 010455' JRST .+1] ;...
6029
6030 ; UPDATE APPROPRIATE COUNTS AND RETURN
6031
6032 006220'02 200 01 0 17 777776 MOVE T1,TLDLLB ;RESTORE LOGICAL LINK BLOCK ADDRESS
6033 006221'02 402 00 0 01 000043 SETZRO <LLICT,LLIIC>,(T1) ;CLEAR BYTE COUNTS
6034 006222'02 402 00 0 01 000041 SETZRO LLBFI,(T1) ;NOTE WE NO LONGER HAVE AN INPUT BUFFER
6035 006223'02 263 17 0 00 000000 RET ;DONE, RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 137
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6036 ;TRNMSG - ROUTINE TO DISCARD A SEGMENT BECAUSE MESSAGE IS BEING TRUNCATED
6037 ;
6038 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
6039 ; CALL TRNMSG
6040 ;RETURNS: +1 FAILED
6041 ; +2 SUCCESS, SEGMENT THROWN AWAY
6042
6043 006224'02 265 16 0 00 006171* TRNMSG: STKVAR <TMSLLB>
6044 006225'02 000001 000001
6045 006226'02 202 01 0 17 777776 MOVEM T1,TMSLLB ;SAVE LOGICAL LINK BLOCK ADDRESS
6046
6047 006227'02 200 01 0 17 777776 TRNM10: MOVE T1,TMSLLB ;GET LOGICAL LINK BLOCK ADDRESS
6048 006230'02 200 02 0 00 007167' MOVE T2,[POINT 0,0,2] ;GET NUL POINTER (THROW BYTES AWAY)
6049 006231'02 525 03 0 00 377777 MOVX T3,.INFIN ;NO LIMIT ON NUMBER TO DISCARD
6050 006232'02 260 17 0 00 004102' CALL MOVMSG ;DISCARD THE DATA
6051 006233'02 263 17 0 00 000000 RET ;FAILED
6052 006234'02 200 01 0 17 777776 MOVE T1,TMSLLB ;RESTORE LOGICAL LINK BLOCK ADDRESS
6053 006235'02 200 16 0 01 000002 JE LLFIM,(T1),RSKP ;IF STILL DON'T HAVE ENTIRE MESSAGE THEN DONE
6054 006236'02 607 16 0 00 000040
6055 006237'02 254 00 0 00 006161*
6056 006240'02 205 16 0 00 100000 SETZRO LLTRM,(T1) ;MESSAGE ENTIRELY DISCARDED, STOP TRUNCATING
6057 006241'02 412 16 0 01 000037
6058 006242'02 254 00 0 00 006237* RETSKP ;DONE, RETURN SUCCESS
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 138
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6059 ;SETIBF - ROUTINE TO SET UP AN INPUT BUFFER FOR AN INTERNAL LINK
6060 ;
6061 ;ACCEPTS IN T1/ LOGICAL LINK BLOCK ADDRESS (LINK ASSUMED LOCKED)
6062 ; CALL SETIBF
6063 ;RETURNS: +1 FAILED, COULD NOT SET UP BUFFER NOW
6064 ; +2 SUCCESS, WITH BUFFER INFO STORED IN LINK BLOCK
6065
6066 006243'02 332 00 0 01 000041 SETIBF: JN LLBFI,(T1),RSKP ;IF ALREADY HAVE A BUFFER THEN DONE
6067 006244'02 254 00 0 00 006242*
6068 006245'02 200 16 0 01 000037 JN LLDRB,(T1),R ;FAIL IFDRIVER ALREADY REFUSED TO PROVIDE BFR
6069 006246'02 603 16 0 00 040000
6070 006247'02 254 00 0 00 005672*
6071 006250'02 265 16 0 00 003654* ASUBR <SBFLLB>
6072 006251'02 200 04 0 01 000034 LOAD T4,LLVEC,(T1) ;GET DRIVER FUNCTION VECTOR ADDRESS
6073 006252'02 200 01 0 01 000033 LOAD T1,LLDRV,(T1) ;GET DRIVER CORRELATION CODE FOR THIS LINK
6074 006253'02 260 17 1 04 000002 CALL @.NSBFR(T4) ;REQUEST DRIVER TO SUPPLY A BUFFER
6075 JRST [ MOVE T1,SBFLLB ;RESTORE LOGICAL LINK BLOCK ADDRESS
6076 SETONE LLDRB,(T1) ;NOTE THAT DRIVER REFUSED TO PROVIDE BUFFER
6077 006254'02 254 00 0 00 010463' RET ] ;AND DONE
6078 006255'02 200 04 0 15 000001 MOVE T4,SBFLLB ;RESTORE LOGICAL LINK BLOCK ADDRESS
6079 006256'02 202 01 0 04 000041 STOR T1,LLBFI,(T4) ;STORE BUFFER ADDRESS
6080 006257'02 542 02 0 04 000043 STOR T2,LLICT,(T4) ;STORE COUNT OF BYTES CURRENTLY LEFT IN BUFFER
6081 006260'02 506 02 0 04 000043 STOR T2,LLIIC,(T4) ;ALSO STORE AS INITIAL COUNT OF BYTES IN BUFFER
6082 006261'02 505 01 0 00 441000 HRLI T1,(POINT 8,) ;FORM POINTER TO FIRST BYTE IN THIS BUFFER
6083 006262'02 202 01 0 04 000042 STOR T1,LLBPI,(T4) ;SAVE AS POINTER TO NEXT BYTE TO BE INPUT
6084 006263'02 603 02 0 00 400000 TXNE T2,NS%TRN ;DRIVER WANT MESSAGES TRUNCATED IF TOO LONG ?
6085 JRST [ SETONE LLTRC,(T4) ;YES, NOTE TRUNCATION DESIRED
6086 006264'02 254 00 0 00 010467' JRST .+1 ] ;AND CONTINUE
6087 006265'02 254 00 0 00 006244* RETSKP ;DONE, RETURN WITH BUFFER INFO IN LINK BLOCK
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 139
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6088 ;ROUTINES USED BY DATMSG.....
6089
6090 ;KILL OFF LINK AFTER PROTOCOL ERROR.
6091
6092 006266'02 201 02 0 00 000050 ABTMSG: MOVEI T2,.DCX40 ;DATA LOSS
6093 006267'02 202 02 0 15 000017 MOVEM T2,MSGW1 ;SAVE CODE
6094 006270'02 260 17 0 00 005641' CALL SHTLK1 ;SHUT IT OFF
6095 006271'02 202 01 0 15 000006 MOVEM T1,MSGLLB ;SAVE LL BLOCK
6096 006272'02 201 04 0 00 000070 MOVEI T4,CNMRFL+CNMDI ;SEND A DI
6097 006273'02 402 00 0 00 000003 SETZM T3 ;NO OPTDATA
6098 006274'02 260 17 0 00 003374' CALL SNDDI ;GO DO IT
6099 JRST [ TQO <BLKF> ;NOTE BLOCK NEEDED
6100 MOVE T1,MSGLLB ;RESTORE BLOCK ADDRESS
6101 MOVEI T2,LLSDIQ ;NEW STATE
6102 STOR T2,LLSTA,(T1)
6103 006275'02 254 00 0 00 010472' JRST LSIDON] ;AND DONE
6104 006276'02 260 17 0 00 000000# CALL SNDCTL ;SEND THE MESSAGE
6105 006277'02 254 00 0 00 006101' JRST LSIDON ;DONE
6106
6107 ;ROUTINE TO FILL IN MESSAGE COUNTS IN MESSAGE BLOCK
6108
6109 006300'02 200 03 0 15 000005 SETCNT: MOVE T3,MSGBLK ;GET BLOCK ADDRESS
6110 006301'02 200 04 0 15 000002 MOVE T4,MSGBYP ;GET CURRENT BYTE POINTER
6111 006302'02 202 04 0 03 000003 MOVEM T4,MSBPTR(T3) ;SAVE IT
6112 006303'02 200 04 0 15 000001 MOVE T4,MSGCNT ;GET CURRENT COUNT
6113 006304'02 137 04 0 00 010477' STOR T4,MSDTC,(T3) ;SAVE IT
6114 006305'02 263 17 0 00 000000 RET ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 140
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6115 ;ROUTINE TO SEND INTIAL LS MESSAGE TO OTHER END OF THE LINK.
6116 ;ACCEPTS: T1/ LL BLOCK ADDRESS
6117 ;RETURNS: +1 FAILED. MESSAGES NOT SENT
6118 ; T1/ SCHEDULER TEST WORD
6119 ; +2 SUCCESS. MESSAGES SENT
6120 ; T1/ LL BLOCK ADDRESS (UNCHANGED)
6121
6122 006306'02 200 16 0 01 000002 TURNON: JE LLOPI,(T1),RSKP ;IF NOT OPEN FOR READ, DON'T SEND LS
6123 006307'02 607 16 0 00 000400
6124 006310'02 254 00 0 00 006265*
6125 006311'02 201 03 0 00 000002 MOVEI T3,MSDAT ;ON THE DATA SUBCHANNEL
6126 006312'02 135 02 0 00 007214' LOAD T2,LLMQI,(T1) ;GET MAX QUEUE VALUE
6127 006313'02 200 16 0 01 000010 TMNE LLIMS,(T1) ;MESSAGE?
6128 006314'02 603 16 0 00 010000
6129 006315'02 201 02 0 00 000001 MOVEI T2,1 ;YES. ONE MESSAGE THEN
6130 006316'02 254 00 0 00 000000# CALLRET SNDLS ;SEND IT OFF
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 141
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6131 ;COLLECTION OF ROUTINES TO GET FIELDS FROM A MESSAGE
6132 ;MOST ARE RESIDENT BECAUSE THEY ARE USED BY THE CHANNEL 7 CODE
6133
6134 RESCD ;CALLED FROM SCHEDULER
6135
6136 ;GET TWO BYTE FIELD
6137 ;CLOBBERS T3, PRESERVES T4
6138
6139 000706'01 375 00 0 15 000001 GETTWO: GETBYM (MSGCNT,MSGBYP,R) ;GET A BYTE, RETURN IF NONE
6140 000707'01 254 00 0 00 000613*
6141 000710'01 134 02 0 15 000002
6142 000711'01 246 02 0 00 777770 LSHC T2,-10 ;SAVE LOW ORDER BYTE
6143 000712'01 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,R) ;GET NEXT ONE
6144 000713'01 254 00 0 00 000707*
6145 000714'01 134 02 0 15 000002
6146 000715'01 246 02 0 00 000010 LSHC T2,10 ;COMBINE BYTES
6147 000716'01 254 00 0 00 000705* RETSKP ;AND DONE
6148
6149 ;COPY ASCII STRING
6150 ; T3/ POINTER TO COPY TO
6151 ; T4/ MAX COUNT OF STRING
6152 ;RETURNS:
6153 ; +1 FAILURE. BAD MESSAGE
6154 ; +2 SUCCESS. T2/ COUNT OF BYTES COPIED
6155
6156 000717'01 334 02 0 00 002322' GTBNRY: SKIPA T2,[POINT 8,0(T3)] ;ENTRY FOR OCTET COPY
6157 000720'01 200 02 0 00 002201' GTASCI: MOVE T2,[POINT 7,0(T3)] ;ENTRY FOR ASCII COPY
6158 000721'01 265 16 0 00 000000* GTASC0: ACVAR <W1,W2> ;ENTRY FOR SKPFLD
6159 000722'01 200 05 0 00 000002 MOVE W1,T2 ;SAVE POINTER
6160 GETBYM (MSGCNT,MSGBYP,[SETZM T2 ;GET COUNT FIELD
6161 000723'01 375 00 0 15 000001 RET]) ;DONE
6162 000724'01 254 00 0 00 002323'
6163 000725'01 134 02 0 15 000002
6164 000726'01 313 02 0 00 000004 CAMLE T2,T4 ;WITHIN RANGE?
6165 000727'01 263 17 0 00 000000 RET ;NO.
6166 000730'01 200 06 0 00 000002 MOVE W2,T2 ;SAVE COUNT
6167 000731'01 336 04 0 00 000002 SKIPN T4,T2 ;SAVE COUNT
6168 000732'01 254 00 0 00 000740' JRST GTASCD ;NO COUNT
6169 000733'01 375 00 0 15 000001 GTASC1: GETBYM (MSGCNT,MSGBYP,R)
6170 000734'01 254 00 0 00 000713*
6171 000735'01 134 02 0 15 000002
6172 000736'01 136 02 0 00 000005 IDPB T2,W1 ;SAVE IT
6173 000737'01 367 04 0 00 000733' SOJG T4,GTASC1 ;DO ALLOF THEM
6174 000740'01 400 02 0 00 000000 GTASCD: SETZ T2, ;GET A NULL
6175 000741'01 136 02 0 00 000005 IDPB T2,W1 ;TIE OFF STRING
6176 000742'01 200 02 0 00 000006 MOVE T2,W2 ;RETURN COUNT
6177 000743'01 254 00 0 00 000716* RETSKP ;AND DONE
6178
6179 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 142
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6180
6181 ;MORE BYTE MANIPULATION ROUTINES
6182
6183 ;SKIP AN IMAGE FIELD
6184
6185 000744'01 375 00 0 15 000001 SKPFLD: GETBYM (MSGCNT,MSGBYP,R) ;GET IMAGE COUNT
6186 000745'01 254 00 0 00 000734*
6187 000746'01 134 02 0 15 000002
6188 000747'01 322 02 0 00 000743* JUMPE T2,RSKP ;IF NO BYTES, DONE
6189 000750'01 210 04 0 00 000002 MOVN T4,T2 ;GET NEG OF COUNT
6190 000751'01 273 04 0 15 000001 ADDB T4,MSGCNT ;COMPUTE RESIDUE
6191 000752'01 321 04 0 00 000745* JUMPL T4,R ;IF MESSAGE TOO SMALL, ERROR
6192 000753'01 133 02 0 15 000002 ADJBP T2,MSGBYP ;MODIFY BYTE POINTER
6193 000754'01 202 02 0 15 000002 MOVEM T2,MSGBYP ;AND UPDATE IT
6194 000755'01 254 00 0 00 000747* RETSKP ;DONE
6195
6196 ;GET AN EXTENSIBLE FIELD
6197
6198 000756'01 403 03 0 00 000004 GETEXT: SETZB T3,T4 ;INIT ACCUMULATOR AND COUNTER
6199 000757'01 375 00 0 15 000001 GETEX1: GETBYM (MSGCNT,MSGBYP,R) ;GET NEXT BYTE
6200 000760'01 254 00 0 00 000752*
6201 000761'01 134 02 0 15 000002
6202 000762'01 350 00 0 00 000004 AOS T4 ;GOT ANOTHER ONE
6203 000763'01 246 02 0 00 777771 LSHC T2,-7 ;PUT DATA PART IN ACCUMULATOR
6204 000764'01 622 02 0 00 000001 TXZE T2,1 ;WAS IT EXTENDED?
6205 000765'01 254 00 0 00 000757' JRST GETEX1 ;YES. GET NEXT THEN
6206 000766'01 221 04 0 00 000007 IMULI T4,7 ;COMPUTE GOOD BITS IN ACCUMULATOR
6207 000767'01 246 02 0 04 000000 LSHC T2,0(T4) ;PUT FIELD IN T2
6208 000770'01 254 00 0 00 000755* RETSKP ;AND DONE
6209
6210
6211 ;MAKE AN EXTENSIBLE FIELD
6212 ;ACCEPTS: T1/ LL BLOCK ADDRESS
6213 ; T3/ THE VALUE
6214 ;RETURNS: +1
6215 ;PRESERVES T1
6216
6217 000771'01 201 02 0 00 000177 MAKEXT: MOVEI T2,177 ;GET EXTENSIBLE FIELD MASK
6218 000772'01 404 02 0 00 000003 AND T2,T3 ;GET A BYTE'S WORTH
6219 000773'01 242 03 0 00 777771 LSH T3,-7 ;ADJUST THE REMAINING QUANTITY
6220 000774'01 332 00 0 00 000003 SKIPE T3 ;MORE BYTES TO COME?
6221 000775'01 660 02 0 00 000200 TXO T2,NSPEXT ;YES, PUT IN EXTENSIBLE FLAG BIT
6222 000776'01 260 17 0 00 000207' CALL ONEBYT ;PUT BYTE IN MESSAGE
6223 000777'01 326 03 0 00 000771' JUMPN T3,MAKEXT ;IF MORE, GO DO IT
6224 001000'01 263 17 0 00 000000 RET ;DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 143
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6225
6226 ;ROUTINE USED BY CI AND CC TO PROCESS COMMON FIELDS
6227
6228 SWAPCD ;SWAPPABLE
6229
6230 006317'02 375 00 0 15 000001 CIPSRV: GETBYM (MSGCNT,MSGBYP,R) ;GET SERVICES
6231 006320'02 254 00 0 00 006247*
6232 006321'02 134 02 0 15 000002
6233 006322'02 640 02 0 00 000001 TXC T2,1
6234 006323'02 602 02 0 00 000363 TRNE T2,363 ;MUST BE NORMAL LINK AND NO MSG ACK
6235 006324'02 263 17 0 00 000000 RET ;NO. CAN'T HAVE IT
6236 006325'02 242 02 0 00 777776 LSH T2,-2 ;GET FCOPT FIELD
6237 006326'02 306 02 0 00 000003 CAIN T2,3 ;A VALID FLOW CONTROL?
6238 006327'02 263 17 0 00 000000 RET ;NO.
6239 006330'02 202 02 0 15 000017 MOVEM T2,MSGW1 ;YES. SAVE IT
6240 006331'02 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,R) ;GET LINK PRI
6241 006332'02 254 00 0 00 006320*
6242 006333'02 134 02 0 15 000002
6243 006334'02 260 17 0 00 000000# CALL GETTWO ;GET SEGSIZE
6244 006335'02 263 17 0 00 000000 RET ;BAD
6245 006336'02 202 02 0 15 000020 MOVEM T2,MSGW2 ;SAVE IT
6246 006337'02 254 00 0 00 006310* RETSKP ;ALL GOOD
6247
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 144
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6248
6249 ;REQUEST QUEUER ROUTINES
6250 ;SEND CONTROL MESSAGE
6251 ;ACCEPTS: T1/ LL BLOCK ADDRESS
6252 ; T2/ MESSAGE BLOCK
6253 ;RETURNS: +1 ALWAYS
6254
6255 RESCD
6256
6257 001001'01 265 16 0 00 000672* SNDCTL: SAVET ;SAVE ALL REGISTERS
6258 001002'01 265 16 0 00 000000* ASUBR <SAVLL,SAVMSG> ;SAVE ARGS
6259 001003'01 200 03 0 01 000017 MOVE T3,LLBPCT(T1) ;GET MESSAGE COUNT
6260 001004'01 137 03 0 00 002325' STOR T3,MSCNT,(T2) ;STORE IN THE BLOCK
6261 001005'01 200 16 0 01 000002 TMNE LLLOC,(T1) ;LOCAL?
6262 001006'01 603 16 0 00 200000
6263 001007'01 254 00 0 00 001032' JRST CTLLCL ;YES. GO HANDLE IT
6264 001010'01 135 01 0 00 002326' SNDSG0: LOAD T1,LLPRT,(T1) ;GET PORT I.D.
6265 ; HRLI T1,MSGPST ;POSTING ADDRESS
6266 001011'01 505 01 0 00 000531* HRLI T1,RELRES ;MAKE DRIVER RELEASE THE BLOCK
6267 001012'01 265 16 0 00 000636* SNDMSG: STKVAR <SAVPST,SAVFF> ;TEMP SAVE LOCATIONS
6268 001013'01 000002 000002
6269 001014'01 202 00 0 17 777775 MOVEM F,SAVFF ;SAVE F
6270 001015'01 200 00 0 00 000002 MOVE F,T2 ;UNIQUE CODE FOR POST
6271 001016'01 200 16 0 02 000001 TMNE MSMS1,(T2) ;SENT THIS MESSAGE ONCE YET?
6272 001017'01 603 16 0 00 010000
6273 001020'01 661 03 0 00 400000 TXO T3,1B0 ;YES. TELL DRIVER OF THIS THEN
6274 001021'01 205 16 0 00 010000 SETONE MSMS1,(T2) ;SAY SENT IT ONCE
6275 001022'01 436 16 0 02 000001
6276 001023'01 201 02 0 02 000007 MOVEI T2,MSHDR(T2) ;GET DATA PORTION OF MESSAGE
6277 001024'01 505 02 0 00 441000 HRLI T2,(<POINT 8,>) ;MAKE A BYTE POINTER
6278 001025'01 556 01 0 17 777776 HLRZM T1,SAVPST ;SAVE POSTING ADDRESS
6279 001026'01 260 17 0 00 000000* CALL DCNMSO ;SEND THE MESSAGE
6280 JRST [ MOVE T1,F ;FAILED. PORT MUST BE TURNED OFF.
6281 ;SET UP FOR POST IF ANY
6282 SKIPE T2,SAVPST ;WANT A POST ON DONE?
6283 CALL 0(T2) ;YES. DO IT THEN
6284 001027'01 254 00 0 00 002327' JRST .+1] ;AND GO FINISH UP
6285 001030'01 200 00 0 17 777775 MOVE F,SAVFF ;RESTORE F
6286 001031'01 263 17 0 00 000000 RET ;AND DONE
6287
6288 ;CONNECTION IS TO A TASK ON THIS NODE
6289
6290 001032'01 205 16 0 00 040000 CTLLCL: SETONE MSLCL,(T2) ;REMEMBER IS LOCAL
6291 001033'01 436 16 0 02 000001
6292 001034'01 335 04 0 00 000000* SKIPGE T4,NSPLPB ;IS THERE A RUNNING LOOPBACK LINE?
6293 JRST [STOR T4,LLPRT,(T1);YES, SAY WHICH PORT
6294 001035'01 254 00 0 00 002333' JRST SNDSG0] ;GIVE "LOCAL MESSAGE" TO DRIVER FOR LOOPBACK
6295 001036'01 254 00 0 00 001070' CALLRET ONMSQ ;AND GO DO IT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 145
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6296
6297 ;VARIOUS QUEUENING ROUTINES USED BY INT, SCHED, AND PROCESS LEVELS
6298
6299 ;ROUTINE TO PUT A MESSGE ON NSPTSK'S QUEUE
6300
6301 001037'01 201 03 0 00 000661* ONMSGQ: MOVEI T3,MSGQ ;GET QUEUE HEAD
6302 001040'01 254 00 0 00 001331' CALLRET PUTONQ ;PUT DATA ON
6303
6304 ;ROUTINE TO QUEUE UP EXPENDED MESSAGE BLOCKS FROM DTESRV
6305
6306 REPEAT 0,< ;NOT USED PRESETNLY
6307 MSGPST: MOVE T2,RMSGQ ;GET OLD HEAD
6308 MOVEM T1,RMSGQ ;MAKE NEW HEAD
6309 STOR T2,MSLNK,(T1) ;LINK IN
6310 RET ;AND DONE
6311 > ;END OF REPEAT 0
6312
6313 ;ROUTINE CALLED FROM INTERRUPT LEVEL TO PUT A MESSAGE ON THE SCHEDULER'S
6314 ;QUEUE
6315 ; T2/ DATA ADDRESS
6316
6317 001041'01 201 02 0 02 777771 NSPQ:: MOVEI T2,-MSHDR(T2) ;GET POINTER TO HEADER
6318 001042'01 201 03 0 00 000000* MOVEI T3,SMSGQ ;GET QUEUE HEAD
6319 001043'01 254 00 0 00 001331' CALLRET PUTONQ ;AND DO IT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 146
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6320
6321 ;ROUTINE TO SEND A DATA,LS, OR INT MESSAGE
6322 ;ACCEPTS: T1/ LL BLOCK
6323 ; T2/ MESSAGE BLOCK
6324
6325 001044'01 265 16 0 00 001002* SNDSEG::ASUBR <SNLBLK,SNMSG>
6326 001045'01 200 03 0 01 000017 MOVE T3,LLBPCT(T1) ;GET BYTE COUNT
6327 001046'01 137 03 0 00 002325' STOR T3,MSCNT,(T2) ;TO THE MESSAGE
6328 001047'01 550 03 0 01 000002 LOAD T3,LLLNK,(T1) ;GET LINK I.D.
6329 001050'01 137 03 0 00 002335' STOR T3,MSLLA,(T2) ;TO THE MESSAGE
6330 001051'01 200 16 0 01 000002 TMNE LLLOC,(T1) ;LOCAL?
6331 001052'01 603 16 0 00 200000
6332 001053'01 254 00 0 00 001076' JRST SNDLCL ;YES.
6333 001054'01 260 17 0 00 001065' LPBSEG: CALL ONSEGQ ;PUT IT ON THE SEG QUEUE
6334 001055'01 135 03 0 00 002325' SNDSE2: LOAD T3,MSCNT,(T2) ;GET COUNT
6335 001056'01 135 01 0 00 002326' LOAD T1,LLPRT,(T1) ;PORT I.D.
6336 001057'01 505 01 0 00 001165' HRLI T1,SEGPST ;POSTING ADDRESS
6337 001060'01 205 16 0 00 200000 SETONE MSPST,(T2) ;SAY WAITING FOR POST
6338 001061'01 436 16 0 02 000000
6339 001062'01 260 17 0 00 001012' CALL SNDMSG ;SEND IT
6340 001063'01 200 01 0 15 000001 SNDSE1: MOVE T1,SNLBLK ;GET BLOCK ADDRESS
6341 001064'01 263 17 0 00 000000 RET ;AND DONE
6342
6343 ;ROUTINE TO PUT A DATA,LS, OR INT SEGEMENT ON THE SEND Q
6344 ;ACCEPTS: T1/ LL BLOCK ADDRESS
6345 ; T2/ MESSAGE BLOCK
6346
6347 001065'01 350 00 0 01 000023 ONSEGQ: INCR LLQOU,(T1) ;ONE MORE ON Q
6348 001066'01 201 03 0 01 000021 ONSGQ0: MOVEI T3,LLSEGQ(T1) ;GET HEADER
6349 001067'01 254 00 0 00 001331' CALLRET PUTONQ ;PUT SEG ON THE Q
6350
6351 ;LOCAL ROUTINE TO PUT MESSAGE ON INPUT QUEUE
6352
6353 001070'01 265 16 0 00 000441* ONMSQ: NOSKD1 ;NO SCHEDULING
6354 001071'01 260 17 0 00 001037' CALL ONMSGQ ;PUT MESSAGE ON THE QUEUE
6355 001072'01 265 16 0 00 000445* OKSKD1 ;AND SCHEDULING
6356 001073'01 263 17 0 00 000000 RET ;AND DONE
6357
6358 ;ENTRY USED TO RESEND A NACKED MESSAGE
6359
6360 001074'01 265 16 0 00 001044* SNDSE0: ASUBR <SNLBLK,SNMSG>
6361 001075'01 254 00 0 00 001055' CALLRET SNDSE2 ;SEND IT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 147
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6362
6363 ;SNDSEG CONTINUED...
6364 ;ROUTINE TO SEND SEGMENT TO A LOCAL CONNECTION
6365
6366 001076'01 205 16 0 00 040000 SNDLCL: SETONE MSLCL,(T2) ;SAY IS LOCAL
6367 001077'01 436 16 0 02 000001
6368 001100'01 335 04 0 00 001034* SKIPGE T4,NSPLPB ;IS THERE A RUNNING LOOPBACK LINE?
6369 JRST [STOR T4,LLPRT,(T1);YES, SAY WHICH PORT
6370 001101'01 254 00 0 00 002336' JRST LPBSEG] ;GIVE "LOCAL MESSAGE" TO DRIVER FOR LOOPING
6371 001102'01 135 03 0 00 002230' LOAD T3,MSMFL,(T2) ;GET FLAGS
6372 001103'01 602 03 0 00 000020 TXNE T3,DATFLI ;IS THIS AN INTERRUPT MESSAGE?
6373 001104'01 254 00 0 00 001127' JRST SNDBAD ;YES. GO HANDLE VIA NSPTSK
6374 001105'01 550 02 0 01 000002 LOAD T2,LLLNK,(T1) ;GET OUR I.D.
6375 001106'01 135 01 0 00 002174' LOAD T1,LLHLK,(T1) ;GET I.D. OF OTHER PROCESS
6376 001107'01 260 17 0 00 000007' LLLOCK ;LOCK UP THE TREE
6377 001110'01 260 17 0 00 000070' CALL LLLKUP ;GO FIND ENTRY
6378 JRST [ LLLULK ;RELEASE THE TREE
6379 001111'01 254 00 0 00 002340' JRST SNDBAD ] ;NOT THERE
6380 001112'01 260 17 0 00 000014' LLLULK ;RELEASE THE TREE
6381 001113'01 200 02 0 15 000002 MOVE T2,SNMSG ;GET MESSAGE BLOCK
6382 001114'01 265 16 0 00 001070* NOSKD1 ;PROTECT LINK STATE
6383 001115'01 200 16 0 01 000002 JN LLINT,(T1),SNDBA1 ;IF INTERNAL LINK, PUT ON BACKGOUND TASK'S QUEUE
6384 001116'01 603 16 0 00 004000
6385 001117'01 254 00 0 00 001126'
6386 001120'01 135 03 0 00 002200' LOAD T3,LLSTA,(T1) ;GET STATE OF THE LINK
6387 001121'01 302 03 0 00 000004 CAIE T3,LLSRUN ;RUNNING?
6388 001122'01 254 00 0 00 001126' JRST SNDBA1 ;NO.
6389 001123'01 260 17 0 00 001132' CALL ONRAWQ ;GO PUT ON THE QUEUE
6390 001124'01 265 16 0 00 001072* OKSKD1 ;ALL DONE
6391 001125'01 254 00 0 00 001063' JRST SNDSE1 ;GO Q IT UP ON SEG Q
6392
6393 ;ERROR ROUTINES
6394
6395 001126'01 265 16 0 00 001124* SNDBA1: OKSKD1
6396 001127'01 200 02 0 15 000002 SNDBAD: MOVE T2,SNMSG ;GET MESSAGE ADDRESS
6397 001130'01 260 17 0 00 001070' CALL ONMSQ ;PUT DATA MESSAGE ON NSPTSK'S Q
6398 001131'01 254 00 0 00 001063' JRST SNDSE1 ;AND DONE FOR NOW
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 148
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6399
6400 ;ROUTINES USED BY INTERRUPT LEVEL TO QUEUE UP PACKETS
6401
6402 ;PUT A DATA MESSAGE ON THE LINK'S QUEUE
6403 ; T1/ LL BLOCK ADDRESS
6404 ; T2/ MESSAGE BLOCK
6405
6406 001132'01 265 16 0 00 001114* ONRAWQ: NOSKD1 ;HOLD OFF SCHEDULER
6407 001133'01 135 03 0 00 002230' LOAD T3,MSMFL,(T2) ;GET MESSAGE FLAGS
6408 001134'01 602 03 0 00 000004 TXNE T3,ACKFLM ;IS IT AN ACK?
6409 JRST [ JN LLLSA,(T1),ONRAW2 ;IN LS SEND WAIT?
6410 001135'01 254 00 0 00 002342' JRST ONRAW1] ;NO. GO ON
6411 001136'01 135 03 0 00 002346' LOAD T3,LLDMT,(T1) ;ACCOUNT FOR ONE MORE DATA MESSAGE
6412 001137'01 350 00 0 00 000003 AOS T3
6413 001140'01 135 04 0 00 002252' LOAD T4,LLMQI,(T1) ;GET MAXIMUM INPUT QUEUE LENGTH
6414 001141'01 313 03 0 00 000004 CAMLE T3,T4 ;TOO MANY ON Q?
6415 JRST [ SETONE LLFNN,(T1) ;YES.
6416 PUSH P,T1 ;SAVE LL BLOCK
6417 MOVE T1,T2 ;GET DATA BLOCK ADDRESS
6418 CALL RELRES ;GET RID OF IT
6419 POP P,T1
6420 CALL DATINR ;REQUEST INT
6421 001142'01 254 00 0 00 002347' JRST ONRAW3] ;AND GO WRAP UP
6422 001143'01 137 03 0 00 002346' STOR T3,LLDMT,(T1) ;NO. SAVE NEW COUNT
6423 001144'01 135 16 0 00 002357' OPSTRM <AOS T3,>,LLDRW,(T1) ;INCREMENT DATA MESSAGE COUNT
6424 001145'01 350 03 0 00 000016
6425 001146'01 137 16 0 00 002357'
6426 001147'01 306 03 0 00 000001 CAIN T3,1 ;NO. IS THIS NOT THE FIRST ONE?
6427 001150'01 260 17 0 00 001157' ONRAW2: CALL DATINR ;GIVE INT
6428 001151'01 200 03 0 01 000005 ONRAW1: MOVE T3,LLMSG(T1) ;GET HEAD OF QUEUE
6429 001152'01 202 02 0 01 000005 MOVEM T2,LLMSG(T1) ;STORE NEW HEAD
6430 001153'01 542 03 0 02 000000 STOR T3,MSLNK,(T2) ;COMPLETE LINK
6431 001154'01 260 17 0 00 000000* CALL CHKLLT ;CHECK FOR TTY ON THIS LL
6432 001155'01 265 16 0 00 001126* ONRAW3: OKSKD1
6433 001156'01 263 17 0 00 000000 RET ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 149
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6434
6435 ;GIVE DATA INTERUPT
6436
6437 001157'01 265 16 0 00 000000* DATINR: SAVEAC <T1,T2> ;SAVE VOLATILE REGS
6438 001160'01 554 02 0 01 000003 LOAD T2,LLFRK,(T1) ;GET FORK I.D.
6439 001161'01 135 16 0 00 002360' OPSTR <SOSL T1,>,LLDRC,(T1) ;WANT DATA INT?
6440 001162'01 371 01 0 00 000016
6441 001163'01 260 17 0 00 000000* CALL PSIRQ ;YES. GIVE IT
6442 001164'01 263 17 0 00 000000 RET ;AND DONE
6443
6444 ;POSTING ADDRESS FOR SEGMENTS. T1= MESSAGE ADDRESS
6445
6446 001165'01 200 16 0 01 000000 SEGPST: JN MSRLS,(T1),RELRES ;IF "RELEASED", GO DO IT
6447 001166'01 321 16 0 00 001011*
6448 001167'01 205 16 0 00 200000 SETZRO MSPST,(T1) ;NOT. SAY POSTED
6449 001170'01 412 16 0 01 000000
6450 001171'01 263 17 0 00 000000 RET ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 150
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6451
6452 ;ROUTINE TO HANDLE ACK OR NACK FOR A SUBCHANNEL.
6453 ;ACCEPTS: T1/ LL BLOCK ADDRESS
6454 ; T2/ ACK OR NACK #
6455 ; T3/ SUBCHANNEL OF THE ACK/NACK
6456 ;RETURNS: +1 ALWAYS. ALL REGS PRESERVED
6457
6458 001172'01 200 16 0 01 000002 ACKCHN: TMNE LLLOC,(T1) ;LOCAL?
6459 001173'01 603 16 0 00 200000
6460 JRST [SKIPL NSPLPB ;YES, IS THERE A RUNNING LOOPBACK LINE?
6461 JRST ACKDON ;NO
6462 001174'01 254 00 0 00 002361' JRST .+1] ;YES, MESSAGE MUST BE QUEUED AS REMOTE
6463 001175'01 265 16 0 00 001001* SAVET ;SAVE ALL REGS
6464 001176'01 265 16 0 00 000430* ACVAR <W1,W2,W3> ;GET WORK REGS
6465 001177'01 265 16 0 00 001012* STKVAR <LLBLK,ACKNO,ACKCHL,LNKADR>
6466 001200'01 000004 000004
6467 001201'01 202 01 0 17 777776 MOVEM T1,LLBLK ;SAVE LL BLOCK
6468 001202'01 202 03 0 17 777774 MOVEM T3,ACKCHL ;SAVE CHANNEL
6469 001203'01 202 02 0 17 777775 MOVEM T2,ACKNO
6470 001204'01 622 02 0 00 010000 TRZE T2,ACKBIT ;IS IT A NACK?
6471 JRST [ CALL ACKCHN ;DO IT
6472 001205'01 254 00 0 00 002364' JRST DONACK] ;AND GO DO THE NACK
6473 001206'01 405 02 0 00 007777 ANDI T2,7777 ;GET SEG NUMBER ONLY
6474 001207'01 202 02 0 17 777775 MOVEM T2,ACKNO ;SAVE ACK NUMBER
6475 001210'01 336 05 0 01 000021 ACKLP1: SKIPN W1,LLSEGQ(T1) ;HAVE ANY SEGS?
6476 001211'01 254 00 0 00 001243' JRST ACKDON ;NO. ALL DONE THEN
6477 001212'01 400 06 0 00 000000 SETZ W2, ;NO PREVIOUS
6478 001213'01 553 00 0 00 000005 HRRZS W1 ;GET TOP SEG
6479 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 151
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6480
6481 ;ACKCHN CONTINUED...
6482 ;LOOP TO PROCESS QUEUE
6483
6484 001214'01 135 03 0 00 002366' ACKLOP: LOAD T3,MSTOM,(W1) ;GET TYPE
6485 001215'01 312 03 0 17 777774 CAME T3,ACKCHL ;IS THIS THE PROPER SUBCHANLEL?
6486 001216'01 254 00 0 00 001240' JRST ACKNXT ;NO. GO ON
6487 001217'01 135 03 0 00 002367' LOAD T3,MSSEG,(W1) ;GET SEGMENT #
6488 001220'01 274 03 0 17 777775 SUB T3,ACKNO ;COMPUTE "AGE"
6489 001221'01 405 03 0 00 007777 ANDI T3,7777 ;MOD 4096
6490 001222'01 332 00 0 00 000003 SKIPE T3 ;IS IT THE VERY ONE WE ARE DOING?
6491 001223'01 303 03 0 00 000036 CAILE T3,MAXDIF ;NO. IS IT ACKABLE ANYWAY?
6492 001224'01 334 00 0 00 000000 SKIPA ;YES. ACK IT THEN
6493 001225'01 254 00 0 00 001240' JRST ACKNXT ;NO.
6494 001226'01 201 04 0 01 000021 MOVEI T4,LLSEGQ(T1) ;THE Q ADDRESS
6495 001227'01 260 17 0 00 001250' CALL UNQSEG ;REMOVE SEGEMENT
6496 001230'01 370 00 0 01 000023 DECR LLQOU,(T1) ;ONE LESS SEG IN QUEUER
6497 001231'01 250 01 0 00 000005 EXCH T1,W1 ;GET BLOCK
6498 001232'01 260 17 0 00 001166* CALL RELRES ;FREE IT
6499 001233'01 200 01 0 00 000005 MOVE T1,W1
6500 001234'01 322 06 0 00 001210' JUMPE W2,ACKLP1 ;IF AT THE HEAD, START OVER
6501 001235'01 550 05 0 06 000000 LOAD W1,MSLNK,(W2) ;GET THE ONE TO DO NEXT
6502 001236'01 326 05 0 00 001214' JUMPN W1,ACKLOP ;DO IT IF ONE THERE
6503 001237'01 254 00 0 00 001243' JRST ACKDON ;ALL DONE
6504
6505 001240'01 200 06 0 00 000005 ACKNXT: MOVE W2,W1 ;SAVE PREVIOUS
6506 001241'01 550 05 0 05 000000 LOAD W1,MSLNK,(W1) ;GET NEXT
6507 001242'01 326 05 0 00 001214' JUMPN W1,ACKLOP ;DO ALL
6508 001243'01 260 17 0 00 001154* ACKDON: CALL CHKLLT ;CHECK FOR TTY ON THIS LL
6509 JN LLINT,(T1),[
6510 CALL INTOUT ;IF INTERNAL LINK SEND ANY OUTPUT STILL LEFT
6511 JFCL ;IGNORE FAILURE HERE
6512 001244'01 200 16 0 01 000002 JRST .+1] ;CONTINUE
6513 001245'01 603 16 0 00 004000
6514 001246'01 254 00 0 00 002370'
6515 001247'01 263 17 0 00 000000 RET ;AND DONE
6516
6517 ;LOCAL ROUTINE TO TAKE A SEGMENT OFF OF A SEGMENT Q
6518
6519 001250'01 UNQSEG: JUMPE W2,[LOAD T3,MSLNK,(W1) ;IS HEAD
6520 HRRM T3,0(T4) ;MAKE NEW HEAD
6521 SKIPN T3 ;NOW EMPTY?
6522 SETZM 0(T4) ;YES
6523 001250'01 322 06 0 00 002373' RET] ;AND DONE
6524 001251'01 550 03 0 05 000000 LOAD T3,MSLNK,(W1) ;GET LINK
6525 001252'01 542 03 0 06 000000 STOR T3,MSLNK,(W2) ;REMOVE FROM Q
6526 001253'01 336 00 0 00 000003 SKIPN T3 ;REMOVING THE TAIL?
6527 001254'01 506 06 0 04 000000 HRLM W2,0(T4) ;YES. MAKE NEW TAIL THEN
6528 001255'01 263 17 0 00 000000 RET ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 152
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6529
6530 ;ROUTINE TO PROCESS A NACK
6531 ; T1/ BLOCK ADDRESS
6532 ; NACK NUMBER IN THE STKVAR "ACKNO"
6533
6534 001256'01 350 02 0 17 777775 DONACK: AOS T2,ACKNO ;GET THE ACK #
6535 001257'01 405 02 0 00 007777 ANDI T2,7777 ;AND GET MODULO 4096
6536 001260'01 202 02 0 17 777775 MOVEM T2,ACKNO ;SAVE IT
6537 001261'01 400 06 0 00 000000 SETZ W2, ;NO HEAD
6538 001262'01 336 05 0 01 000021 DONAC2: SKIPN W1,LLSEGQ(T1) ;HAVE ANY SEGS?
6539 001263'01 263 17 0 00 000000 RET ;NO. ALL DONE
6540 001264'01 553 00 0 00 000005 HRRZS W1 ;GET FIRST MESSAGE
6541 001265'01 135 03 0 00 002366' DONAC1: LOAD T3,MSTOM,(W1) ;GET MESSAGE TYPE
6542 001266'01 312 03 0 17 777774 CAME T3,ACKCHL ;THE CORRECT CHANNEL?
6543 001267'01 254 00 0 00 001320' JRST DONNXT ;NO
6544 001270'01 135 03 0 00 002367' LOAD T3,MSSEG,(W1) ;GET SEG #
6545 001271'01 274 03 0 17 777775 SUB T3,ACKNO ;COMPUTE "AGE"
6546 001272'01 405 03 0 00 007777 ANDI T3,7777 ;""
6547 001273'01 303 03 0 00 000036 CAILE T3,MAXDIF ;IS IT ONE BEING NACKED?
6548 001274'01 254 00 0 00 001320' JRST DONNXT ;NO
6549 001275'01 350 00 0 00 000000* AOS NAKCNT ;COUNT THIS SEGMENT
6550 001276'01 200 03 0 17 777774 MOVE T3,ACKCHL ;YES. GET CHANNEL
6551 001277'01 302 03 0 00 000002 CAIE T3,MSDAT ;DATA?
6552 001300'01 254 00 0 00 001316' JRST DONRES ;NO. RESEND NOW
6553 001301'01 135 03 0 00 002205' LOAD T3,LLMFC,(T1) ;GET FLOW CONTROL TYPE
6554 001302'01 306 03 0 00 000001 CAIN T3,1 ;SEGMENT?
6555 JRST [ INCR LLMSM,(T1) ;YES. ACCOUNT FOR THE MACK
6556 001303'01 254 00 0 00 002400' JRST .+1]
6557 JN LLBRP,(T1),[
6558 CAIE T3,2 ;MESSAGE FLOW CONTROL?
6559 JRST DONRQ ;NO. GO ARRANGE FOR REQUEUE
6560 LOAD T3,MSMFL,(W1) ;YES. GET MESSAGE FLAGS
6561 JXE T3,DATEOM,DONRQ ;IS THIS THE EOM?
6562 INCR LLMSM,(T1) ;YES. INCREMENT REQUEST COUNT
6563 001304'01 200 16 0 01 000007 JRST DONRQ] ;AND REQUEUE IT
6564 001305'01 321 16 0 00 002404'
6565 001306'01 302 03 0 00 000001 CAIE T3,1 ;YES. SEGMENT?
6566 001307'01 254 00 0 00 001316' JRST DONRES ;NO. RESEND NOW
6567 001310'01 135 03 0 00 002225' LOAD T3,LLMSM,(T1) ;GET SEG COUNT TO SEND
6568 001311'01 332 00 0 00 000003 SKIPE T3 ;ANY THERE?
6569 001312'01 602 03 0 00 000200 TXNE T3,200 ;AND IS IT POSITIVE?
6570 001313'01 254 00 0 00 001324' JRST DONRQ ;NO.
6571 001314'01 561 16 0 00 777400 DECR LLMSM,(T1) ;YES. COUNT DOWN
6572 001315'01 272 16 0 01 000007
6573 001316'01 200 02 0 00 000005 DONRES: MOVE T2,W1 ;GET SEG
6574 001317'01 260 17 0 00 001074' CALL SNDSE0 ;RESEND IT NOW
6575 001320'01 200 06 0 00 000005 DONNXT: MOVE W2,W1 ;NEW HEAD
6576 001321'01 550 05 0 06 000000 LOAD W1,MSLNK,(W2) ;GET NEXT
6577 001322'01 326 05 0 00 001265' JUMPN W1,DONAC1 ;IF MORE, DO IT
6578 001323'01 263 17 0 00 000000 RET ;DONE
6579
6580 001324'01 205 16 0 00 020000 DONRQ: SETONE MSNAK,(W1) ;REMEMBER IS NAKED
6581 001325'01 436 16 0 05 000001
6582 001326'01 201 16 0 00 001000 INCR LLQUN,(T1) ;AND ACCOUNT FOR IT
6583 001327'01 272 16 0 01 000023
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 152-1
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6584 001330'01 254 00 0 00 001320' JRST DONNXT ;AND CONTINUE DOWN Q
6585
6586 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 153
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6587
6588 ;ROUTINE TO PUT A DATA MESSAGE ON A SEGMENT Q
6589 ; T2/ THE MESSAGE
6590 ; T3/ THE QUEUE ADDRESS
6591 ;CLOBBERS T4
6592
6593 001331'01 336 04 0 03 000000 PUTONQ: SKIPN T4,0(T3) ;HAVE A QUEUE?
6594 JRST [ HRRM T2,0(T3) ;NO MAKE ONE
6595 HRLM T2,0(T3)
6596 001332'01 254 00 0 00 002414' JRST PUTOND] ;DONE
6597 001333'01 557 00 0 00 000004 HLRZS T4 ;GET TAIL
6598 001334'01 542 02 0 04 000000 STOR T2,MSLNK,(T4) ;LINK THIS IN
6599 001335'01 506 02 0 03 000000 HRLM T2,0(T3) ;AND MAKE IT THE TAIL
6600 001336'01 513 00 0 02 000000 PUTOND: SETZRO MSLNK,(T2) ;TIE IT OFF
6601 001337'01 263 17 0 00 000000 RET ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 154
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6602
6603 ;ROUTINE TO RESEND NACK'ED SEGMENTS
6604 ;ACCEPTS: T1/ BLOCK ADDRESS
6605 ; BLOCK MUST BE LOCKED
6606
6607 001340'01 200 16 0 01 000023 RESEND: JE LLQUN,(T1),R ;ANY NAKED SEGS?
6608 001341'01 606 16 0 00 377000
6609 001342'01 254 00 0 00 000760*
6610 001343'01 200 16 0 01 000007 JN LLBRP,(T1),R ;YES. IS FLOW ON?
6611 001344'01 321 16 0 00 001342*
6612 001345'01 200 16 0 01 000007 JE LLMFC,(T1),RSEND0 ;IF NO FLOW CONTROL, GO RESEND NOW
6613 001346'01 607 16 0 00 140000
6614 001347'01 254 00 0 00 001354'
6615 001350'01 135 03 0 00 002225' LOAD T3,LLMSM,(T1) ;GET COUNT
6616 001351'01 332 00 0 00 000003 SKIPE T3 ;IF ZERO
6617 001352'01 602 03 0 00 000200 TXNE T3,200 ;OR IF NEG
6618 001353'01 263 17 0 00 000000 RET ;CAN'T RESEND
6619 001354'01 550 02 0 01 000021 RSEND0: HRRZ T2,LLSEGQ(T1) ;GET HEAD OF Q
6620 001355'01 336 00 0 00 000002 RSEND1: SKIPN T2 ;ANYTHING THERE?
6621 001356'01 604 00 0 00 000000 IFNSK. ;NO, SHOULDN'T BE HERE
6622 001357'01 254 00 0 00 001362'
6623 BUG (NSPRSN) ;TELL THE WORLD
6624 ;BUG type: BUGCHK, SOFT
6625 ;BUG message: NSP - NUMBER OF ENTRIES COUNT AND ACTUAL QUEUE LENGTH DON'T AGREE
6626 SALL
6627 001360'01 256 00 0 00 002417'
6628 001361'01 263 17 0 00 000000 RET ;GO AWAY
6629 001362'01 ENDIF.
6630 001362'01 200 16 0 02 000001 TMNN MSNAK,(T2) ;IS THIS A NAKED SEG?
6631 001363'01 607 16 0 00 020000
6632 JRST [ LOAD T2,MSLNK,(T2) ;NO. GET NEXT
6633 001364'01 254 00 0 00 002421' JRST RSEND1] ;AND PROCEED
6634 001365'01 561 16 0 00 777000 DECR LLQUN,(T1) ;ONE LESS NAKED SEG
6635 001366'01 272 16 0 01 000023
6636 001367'01 135 03 0 00 002205' LOAD T3,LLMFC,(T1) ;GET TYPE OF FLOW CONTROL
6637 001370'01 322 03 0 00 001400' JUMPE T3,RSEND3 ;IF NO FLOW CONTROL, SEND IT NOW
6638 001371'01 302 03 0 00 000002 CAIE T3,2 ;MESSAGE FLOW CONTROL?
6639 001372'01 254 00 0 00 001376' JRST RSEND2 ;NO. SEND IT NOW THEN
6640 001373'01 135 03 0 00 002230' LOAD T3,MSMFL,(T2) ;GET MESSAGE FLAGS
6641 001374'01 606 03 0 00 000100 JXE T3,DATEOM,RSEND3 ;IS THIS EOM?
6642 001375'01 254 00 0 00 001400'
6643 001376'01 561 16 0 00 777400 RSEND2: DECR LLMSM,(T1) ;YES. DOWNCOUNT REQUEST COUNT
6644 001377'01 272 16 0 01 000007
6645 001400'01 205 16 0 00 020000 RSEND3: SETZRO MSNAK,(T2) ;NO LONGER A NACKED SEG
6646 001401'01 412 16 0 02 000001
6647 001402'01 260 17 0 00 001074' CALL SNDSE0 ;AND RESEND IT
6648 001403'01 254 00 0 00 001340' JRST RESEND ;AND DO IT AGAIN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 155
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6649
6650 ;ROUTINE TO FLUSH ALL QUEUES FOR A LL
6651 ;FLUSHES: SEGQ,RSEGQ,LLMSG,LLOMSG
6652 ; T1/ LL BLOCK LL TREE MUST BE LOCKED
6653 ;RETURNS +1 ALWAYS
6654
6655 001404'01 201 16 0 00 377377 FLUSH:: SETZRO <LLQUN,LLQOU>,(T1) ;CLEAR COUNTS
6656 001405'01 412 16 0 01 000023
6657 001406'01 201 02 0 01 000012 MOVEI T2,LLOMSG(T1) ;GET ORDERED QUEUE
6658 001407'01 260 17 0 00 001416' CALL PRUNE ;KILL IT
6659 001410'01 201 02 0 01 000005 MOVEI T2,LLMSG(T1) ;GET ORDERED Q
6660 001411'01 260 17 0 00 001416' CALL PRUNE ;KILL IT
6661 001412'01 201 02 0 01 000006 MOVEI T2,LLMSI(T1) ;INT MESSAGES
6662 001413'01 260 17 0 00 001416' CALL PRUNE ;KILL THIS AS WELL
6663 001414'01 201 02 0 01 000021 MOVEI T2,LLSEGQ(T1) ;GET SENT Q
6664 001415'01 254 00 0 00 001416' CALLRET PRUNE ;GET RID OF THEM
6665
6666 ;WORKER ROUTINE TO FLUSH A LINK Q
6667
6668 001416'01 265 16 0 00 001175* PRUNE: SAVET ;SAVE ALL REGS
6669 001417'01 550 01 0 02 000000 HRRZ T1,0(T2) ;GET HEAD
6670 001420'01 402 00 0 02 000000 SETZM 0(T2) ;CLEAR Q
6671 001421'01 322 01 0 00 001344* PRUNE1: JUMPE T1,R ;IF AT THE END, DONE
6672 001422'01 550 02 0 01 000000 LOAD T2,MSLNK,(T1) ;GET NEXT
6673 001423'01 261 17 0 00 000002 PUSH P,T2 ;SAVE IT
6674 001424'01 200 16 0 01 000000 JN MSPST,(T1),CHKPST ;IF POSTING ON, GO CHECK OUT MESSAGE
6675 001425'01 603 16 0 00 200000
6676 001426'01 254 00 0 00 001432'
6677 001427'01 260 17 0 00 001232* PRUNE2: CALL RELRES ;RELEASE NODE
6678 001430'01 262 17 0 00 000001 PRUNE3: POP P,T1 ;GET BACK NEXT
6679 001431'01 254 00 0 00 001421' JRST PRUNE1 ;AND DO IT
6680
6681 ;MESSAGE NEEDS TO BE PRUNED BUT POSTING IS STILL OUTSTANDING.
6682
6683 001432'01 700 14 0 00 000400 CHKPST: PIOFF ;OWN MACHINE WHILE CHECKING MESSAGE
6684 001433'01 200 16 0 01 000000 JE MSPST,(T1),CHKPS1 ;IF NO LONGER NEEDED, GO ON
6685 001434'01 607 16 0 00 200000
6686 001435'01 254 00 0 00 001442'
6687 001436'01 205 16 0 00 400000 SETONE MSRLS,(T1) ;IS STILL NEEDED. REQUEST RELEASE WHENEVER
6688 001437'01 436 16 0 01 000000
6689 001440'01 700 14 0 00 000200 PION ;ALLOW INTS AGAIN
6690 001441'01 254 00 0 00 001430' JRST PRUNE3 ;DON'T RELEASE IT
6691 001442'01 700 14 0 00 000200 CHKPS1: PION ;ALLOW INTS
6692 001443'01 254 00 0 00 001427' JRST PRUNE2 ;AND RELEASE IT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 156
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6693
6694 ;ROUTINE TO SEND AN ACK MESSAGE.
6695 ; T1/ LL BLOCK
6696 ; T2/ SEGMENT # TO ACK
6697 ; T3/ SUBCHANNEL TO ACK
6698 ;RETURNS +1 ALL REGS PRESERVED
6699
6700 001444'01 265 16 0 00 001074* SNDACK: ASUBR <LLBLK,ACKNO,ACKTYP>
6701 001445'01 200 16 0 01 000002 NSBP09: TMNE LLLOC,(T1) ;LOCAL?
6702 001446'01 603 16 0 00 200000
6703 JRST [ SKIPGE NSPLPB ;YES, IS THERE A RUNNING LOOPBACK LINE?
6704 JRST ACKRMT ;YES, GIVE MESSAGE TO DRIVER
6705 JE LLCIL,(T1),RSKP ;NO, DONE IF NOT CONNECTED TO INTERNAL LINK
6706 CALL SKDOUT ;INTERNAL LINK, SCHEDULE OUTPUT
6707 001447'01 254 00 0 00 002423' RETSKP ] ;DONE, RETURN
6708 001450'01 254 00 0 00 001454' JRST ACKRMT ;NEED TO SEND A MESSAGE
6709
6710 ;HANDLE LOCAL ACK
6711 ;THIS CODE HAS BEEN REMOVED AS IT IS NO LONGER NECESSARY.
6712 ;NOTE, THERE IS A BUG IN IT ANYWAY,AS A FAILURE TO LOCK THE
6713 ;OTHER BLOCK WILL CAUSE CONFUSION IN NETSET. IF THIS CODE
6714 ;IS EVER TURNED ON AGAIN, THEN CHKFRE MUST INCLUDE A CHECK
6715 ;FOR LOCK FAILURE AS WELL AS FREE SPACE FAILURE. ASM
6716
6717 REPEAT 0,<
6718 LOAD T2,LLLNK,(T1)
6719 LOAD T1,LLHLK,(T1) ;GET OTHER ONE'S ADDRESS
6720 LLLOCK ;LOCK THE TREE
6721 CALL LLLKUP ;GO LOOK UP MATCHER
6722 JRST ACKLO2 ;NOT THERE. THIS WILL GET FIXED
6723 LOAD T2,LLSTA,(T1) ;GET CURRENT STATE?
6724 CAIE T2,LLSRUN ;RUNNING
6725 CAIN T2,LLSDIQ ;OR DI QUEUED?
6726 JRST ACKLO1 ;IS GOOD
6727 ACKLO2: LLLULK ;FREE TREE
6728 ACKLO3: MOVE T1,LLBLK ;RETURN LL BLOCK ADDRESS
6729 RETSKP ;AND RETURN
6730
6731 ACKLO1: CALL BLKLOK ;LOCK THE BLOCK
6732 JRST [ LLLULK ;FAILED
6733 RET] ;TRY AGAIN LATER
6734 LLLULK ;FREE TREE
6735 MOVE T2,ACKNO ;GET NUMBER
6736 MOVE T3,ACKTYP ;AND THE TYPE
6737 CALL ACKCHN ;GO DO THE ACK
6738 CALL BLKULK ;UNLOCK THE BLOCK
6739 JRST ACKLO3 ;AND GO WRAP UP
6740 > ;END OF REPEAT 0
6741
6742 ;ROUTINE TO ACK THE LS/INT CHANNEL
6743
6744 001451'01 135 02 0 00 002311' ACKLI: LOAD T2,LLIIN,(T1) ;GET SEG TO ACK
6745 001452'01 201 03 0 00 000001 MOVEI T3,MSLSI ;THE CHANNEL I.D.
6746 001453'01 254 00 0 00 001444' CALLRET SNDACK ;SEND ACK
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 157
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6747
6748 ;SNDACK CONTINUED.....
6749 ;SEND ACK TO REMOTE NODE.
6750
6751 001454'01 265 16 0 00 001177* ACKRMT: STKVAR <MSGBL> ;PLACE TO SAVE MESSAGE BLOCK
6752 001455'01 000001 000001
6753 001456'01 201 01 0 00 000015 MOVEI T1,ACKLEN+MSHDR ;LENGTH REQUIRED
6754 001457'01 260 17 0 00 000124' CALL GETRES ;GET IT
6755 001460'01 254 00 0 00 000310' CALLRET TIMWAT ;FAILED
6756 001461'01 202 01 0 17 777776 MOVEM T1,MSGBL ;SAVE BLOCK ADDRESS
6757 001462'01 200 02 0 00 000001 MOVE T2,T1
6758 001463'01 200 01 0 15 000001 MOVE T1,LLBLK ;GET BACK LL BLOCK ADDRESS
6759 001464'01 402 00 0 01 000017 SETZM LLBPCT(T1) ;INIT MESSAGE COUNT
6760 001465'01 271 02 0 00 000007 ADDI T2,MSHDR ;GET TO DATA PART
6761 001466'01 505 02 0 00 441000 HRLI T2,(<POINT 8,>)
6762 001467'01 202 02 0 01 000016 MOVEM T2,LLBPTR(T1) ;INIT POINTER
6763 001470'01 201 02 0 00 000004 MOVEI T2,ACKFLM ;BASIC ACK MESSAGE
6764 001471'01 200 03 0 15 000003 MOVE T3,ACKTYP ;GET SUBCHANNEL
6765 001472'01 306 03 0 00 000001 CAIN T3,MSLSI ;LS/INT SUBCHANNEL?
6766 001473'01 271 02 0 00 000020 ADDI T2,ACKLSI ;YES.
6767 001474'01 260 17 0 00 000147' CALL RTHDCI ;PUT ON ROUTING HEADER AND FLAGS
6768 001475'01 260 17 0 00 000134' CALL PUTLLA ;PUT IN LL ADDRESSES
6769 001476'01 200 02 0 15 000002 MOVE T2,ACKNO ;GET SEG TO ACK
6770 001477'01 660 02 0 00 100000 TXO T2,ACKIND ;SET ACK INDICATOR
6771 001500'01 260 17 0 00 000212' CALL TWOBYT ;PUT IT IN
6772 001501'01 200 02 0 17 777776 MOVE T2,MSGBL ;GET MESSAGE
6773 ;** TEMP **
6774 ; HRRZ T3,LLBPTR(T1) ;GET BYTE PTR
6775 ; CAIL T3,0(T2) ;WITHIN RANGE OF MSG BLOCK?
6776 ; CAILE T3,ACKLEN+MSHDR(T2)
6777 ; JSR BUGHLT ;NO, **** TEMP ****
6778 ;** TEMP **
6779 001502'01 260 17 0 00 001001' CALL SNDCTL ;SEND IT
6780 001503'01 254 00 0 00 000770* RETSKP ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 158
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6781
6782 ;ROUTINE TO BUILD AND SEND A NODE INIT
6783 ; T1/ PORT I.D.
6784
6785 001504'01 265 16 0 00 000562* NODINI::TRVAR <<LLDUM,LKSIZE>,NODMSG,NODPRT>
6786 001505'01 000035 000035
6787 001506'01 202 01 0 15 000035 MOVEM T1,NODPRT ;SAVE PORT I.D.
6788 001507'01 201 01 0 00 000016 MOVEI T1,NDISIZ+MSHDR ;REQUIRES BLOCK SIZE
6789 001510'01 260 17 0 00 000124' CALL GETRES ;GET A BLOCK
6790 001511'01 263 17 0 00 000000 RETBAD ;COULDN'T
6791 001512'01 202 01 0 15 000034 MOVEM T1,NODMSG ;SAVE BLOCK
6792 001513'01 201 02 0 01 000007 MOVEI T2,MSHDR(T1) ;POINT TO DATA PART
6793 001514'01 505 02 0 00 441000 HRLI T2,(<POINT 8,>)
6794 001515'01 201 01 0 15 000001 MOVEI T1,LLDUM ;DUMMY LL BLOCK
6795 001516'01 402 00 0 01 000017 SETZM LLBPCT(T1) ;INIT COUNT
6796 001517'01 202 02 0 01 000016 MOVEM T2,LLBPTR(T1) ;SET UP BYTE POINTER
6797 001520'01 201 02 0 00 000130 MOVEI T2,CNMRFL+NDIFLG ;MESSAGE FLAGS
6798 001521'01 260 17 0 00 000207' CALL ONEBYT
6799 001522'01 201 02 0 00 000001 MOVEI T2,STRTYP ;NOD INIT MESSAGE
6800 001523'01 260 17 0 00 000207' CALL ONEBYT
6801 001524'01 200 03 0 00 000005* MOVE T3,OURNUM ;GET LOCAL NUMBER
6802 001525'01 260 17 0 00 000771' CALL MAKEXT ;PUT IT IN MESSAGE
6803 001526'01 201 03 0 00 000162* MOVEI T3,OURNAM ;OUR NAME
6804 001527'01 260 17 0 00 000166' CALL ASCIIZ ;PUT IT IN
6805 001530'01 201 02 0 00 000000 MOVEI T2,OURCAP ;SUPPORTED CAPS
6806 001531'01 260 17 0 00 000207' CALL ONEBYT
6807 001532'01 201 02 0 00 000006 MOVEI T2,OURREQ ;REQUIRED CAPS
6808 001533'01 260 17 0 00 000207' CALL ONEBYT
6809 001534'01 200 02 0 00 000000* MOVE T2,SEGSZ ;OUR SEG SIZE
6810 001535'01 260 17 0 00 000212' CALL TWOBYT
6811 001536'01 200 02 0 00 001534* MOVE T2,SEGSZ ;OUR NSP SIZE
6812 001537'01 260 17 0 00 000212' CALL TWOBYT
6813 001540'01 201 02 0 00 000000* MOVEI T2,MAXLNK ;MAX LINKS
6814 001541'01 260 17 0 00 000212' CALL TWOBYT
6815 001542'01 201 02 0 00 000003 MOVEI T2,ROUVER ;ROUTING VERSION
6816 001543'01 260 17 0 00 000207' CALL ONEBYT
6817 001544'01 201 02 0 00 000000 MOVEI T2,ROUECO ;ROUTING ECO LEVEL
6818 001545'01 260 17 0 00 000207' CALL ONEBYT
6819 001546'01 201 02 0 00 000000 MOVEI T2,ROUCST ;CUSTOMER MODS
6820 001547'01 260 17 0 00 000207' CALL ONEBYT
6821 001550'01 201 02 0 00 000003 MOVEI T2,COMVER ;NSP VERSION
6822 001551'01 260 17 0 00 000207' CALL ONEBYT
6823 001552'01 201 02 0 00 000001 MOVEI T2,COMECO ;NSP ECO LEVEL
6824 001553'01 260 17 0 00 000207' CALL ONEBYT
6825 001554'01 201 02 0 00 000000 MOVEI T2,COMCST ;CUST MODS TO NSP
6826 001555'01 260 17 0 00 000207' CALL ONEBYT
6827 001556'01 400 02 0 00 000000 SETZ T2, ;NO TEXT YET
6828 001557'01 260 17 0 00 000207' CALL ONEBYT
6829 001560'01 200 02 0 15 000034 MOVE T2,NODMSG ;MESSAGE BLOCK
6830 001561'01 200 03 0 15 000035 MOVE T3,NODPRT ;GET PORT I.D.
6831 001562'01 137 03 0 00 002326' STOR T3,LLPRT,(T1) ;SAVE IN LL BLOCK
6832 001563'01 200 03 0 01 000017 MOVE T3,LLBPCT(T1) ;COUNT
6833 001564'01 260 17 0 00 001010' CALL SNDSG0 ;SEND IT
6834 001565'01 200 01 0 15 000035 MOVE T1,NODPRT ;GET PORT NUMBER
6835 001566'01 205 16 0 00 010000 SETONE INISNT,MCBDTE(T1) ;NOTE INIT MSG SENT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 158-1
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6836 001567'01 436 16 0 01 000000*
6837 001570'01 200 16 0 01 001567* JE REQVER,MCBDTE(T1),RSKP ;DONE IF NO VERIFICATION MSG NEEDED
6838 001571'01 607 16 0 00 020000
6839 001572'01 254 00 0 00 001503*
6840 001573'01 260 17 0 00 001600' CALL NODVER ;SEND VERIFICATION MSG
6841 001574'01 200 01 0 15 000035 MOVE T1,NODPRT ;RESTORE PORT ID
6842 001575'01 205 16 0 00 020000 SETZRO REQVER,MCBDTE(T1) ;NOTE VERIFICATION NO LONGER NEEDED
6843 001576'01 412 16 0 01 001570*
6844 001577'01 254 00 0 00 001572* RETSKP ;DONE, RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 159
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6845 ;NODVER - ROUTINE TO ASSEMBLE AND SEND A NODE VERIFICATION MESSAGE
6846 ;
6847 ;ACCEPTS IN T1/ PORT ID
6848 ; CALL NODVER
6849 ;RETURNS: +1 ALWAYS
6850
6851 001600'01 265 16 0 00 001504* NODVER: TRVAR <<LLDUM,LKSIZE>,NODMSG,NODPRT>
6852 001601'01 000035 000035
6853 001602'01 202 01 0 15 000035 MOVEM T1,NODPRT ;SAVE PORT I.D.
6854
6855 ; INITIALIZE MESSAGE BLOCK
6856
6857 001603'01 201 01 0 00 000016 MOVEI T1,NDISIZ+MSHDR ;REQUIRES BLOCK SIZE
6858 001604'01 260 17 0 00 000124' CALL GETRES ;GET A BLOCK
6859 001605'01 263 17 0 00 000000 RETBAD ;COULDN'T
6860 001606'01 202 01 0 15 000034 MOVEM T1,NODMSG ;SAVE BLOCK
6861 001607'01 201 02 0 01 000007 MOVEI T2,MSHDR(T1) ;POINT TO DATA PART
6862 001610'01 505 02 0 00 441000 HRLI T2,(<POINT 8,>)
6863 001611'01 201 01 0 15 000001 MOVEI T1,LLDUM ;DUMMY LL BLOCK
6864 001612'01 402 00 0 01 000017 SETZM LLBPCT(T1) ;INIT COUNT
6865 001613'01 202 02 0 01 000016 MOVEM T2,LLBPTR(T1) ;SET UP BYTE POINTER
6866
6867 ; ASSEMBLE MESSAGE FLAGS AND STARTTYPE FIELDS
6868
6869 001614'01 201 02 0 00 000130 MOVEI T2,CNMRFL+NDIFLG ;MESSAGE FLAGS
6870 001615'01 260 17 0 00 000207' CALL ONEBYT
6871 001616'01 201 02 0 00 000002 MOVEI T2,VERTYP ;NOD VERIFICATION MESSAGE
6872 001617'01 260 17 0 00 000207' CALL ONEBYT
6873
6874 ; ADD PASSWORD TO MESSAGE
6875
6876 001620'01 205 04 0 00 777770 MOVSI T4,-10 ;8 BYTES
6877 001621'01 200 03 0 00 002433' MOVE T3,[POINT 7,[ASCII/DECNET20/]]
6878 001622'01 134 02 0 00 000003 NDVER1: ILDB T2,T3 ;GET NEXT BYTE
6879 001623'01 260 17 0 00 000207' CALL ONEBYT ;ADD TO MESSAGE
6880 001624'01 253 04 0 00 001622' AOBJN T4,NDVER1 ;DO ALL 8 BYTES
6881
6882 ; SEND THE MESSAGE
6883
6884 001625'01 200 02 0 15 000034 MOVE T2,NODMSG ;MESSAGE BLOCK
6885 001626'01 200 03 0 15 000035 MOVE T3,NODPRT ;GET PORT I.D.
6886 001627'01 137 03 0 00 002326' STOR T3,LLPRT,(T1) ;SAVE IN LL BLOCK
6887 001630'01 200 03 0 01 000017 MOVE T3,LLBPCT(T1) ;COUNT
6888 001631'01 254 00 0 00 001010' CALLRET SNDSG0 ;SEND IT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 160
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6889 ;ROUTINE TO SEND AN LS MESSAGE
6890
6891 ;ACCEPTS:
6892 ; T1/ LL BLOCK ADDRESS
6893 ; T2/ COUNT OF SEGS TO REQUEST
6894 ; T3/ SUBCHANNEL
6895
6896 ; CALL SNDLS
6897
6898 ;RETURNS +1: FAILURE
6899 ; T1/ SCHEDULER TEST WORD
6900 ; +2: SUCCESS
6901 ; T1/ LL BLOCK ADDRESS (UNCHANGED)
6902
6903 001632'01 265 16 0 00 001444* SNDLS:: ASUBR <SNDLBL,SNDLCT,SNDLTP,SNDLMS>
6904 001633'01 200 16 0 01 000002 TMNE LLLOC,(T1) ;LOCAL?
6905 001634'01 603 16 0 00 200000
6906 JRST [SKIPL NSPLPB ;YES, IS THERE A RUNNING LOOPBACK LINE?
6907 JRST SNDLSL ;NO
6908 001635'01 254 00 0 00 002434' JRST .+1] ;YES, MESSAGE MUST GO TO DRIVER
6909 001636'01 135 02 0 00 002221' LOAD T2,LLQOU,(T1) ;GET SEGS IN QUEUER
6910 001637'01 135 03 0 00 002222' LOAD T3,LLMQO,(T1) ;GET MAXIMUM OUTPUT QUEUE LENGTH
6911 001640'01 303 02 0 03 000001 CAILE T2,1(T3) ;ROOM FOR THIS ONE?
6912 JRST [ MOVEI T2,CHKQTA ;NO. MUST WAIT UNTIL THERE IS
6913 001641'01 254 00 0 00 002437' CALLRET MAKTST] ;""
6914 001642'01 201 01 0 00 000016 MOVEI T1,MSHDR+LSLEN ;GET FREE SPACE
6915 001643'01 260 17 0 00 000124' CALL GETRES ;GET SOME
6916 001644'01 254 00 0 00 000310' JRST TIMWAT ;NONE.
6917 001645'01 202 01 0 15 000004 MOVEM T1,SNDLMS ;SAVE BLOCK ADDRESS
6918 001646'01 201 02 0 01 000007 MOVEI T2,MSHDR(T1) ;POINT TO DATA PORTION
6919 001647'01 505 02 0 00 441000 HRLI T2,(<POINT 8,>)
6920 001650'01 200 01 0 15 000001 MOVE T1,SNDLBL ;GET BACK LL BLOCK
6921 001651'01 202 02 0 01 000016 MOVEM T2,LLBPTR(T1)
6922 001652'01 402 00 0 01 000017 SETZM LLBPCT(T1)
6923 001653'01 201 02 0 00 000020 MOVEI T2,DATFLI ;GET FLAGS
6924 001654'01 260 17 0 00 000147' CALL RTHDCI ;PUT ON ROUTE HEADER AND FLAGS
6925 001655'01 260 17 0 00 000134' CALL PUTLLA ;PUT IN ADDRESSES
6926 001656'01 135 02 0 00 002441' LOAD T2,LLISN,(T1) ;GET SEG #
6927 001657'01 350 00 0 00 000002 AOS T2 ;NEXT ONE
6928 001660'01 405 02 0 00 007777 ANDI T2,SEGMSK
6929 001661'01 137 02 0 00 002441' STOR T2,LLISN,(T1)
6930 001662'01 200 04 0 15 000004 MOVE T4,SNDLMS ;GET MESSAGE ADDRESS
6931 001663'01 137 02 0 00 002442' STOR T2,MSSEG,(T4) ;SAVE SEG #
6932 001664'01 137 01 0 00 002443' STOR T1,MSLLA,(T4) ;SAVE LINK ADDRESS
6933 001665'01 201 03 0 00 000001 MOVEI T3,MSLSI ;SAY THIS IS A LS MSG
6934 001666'01 137 03 0 00 002444' STOR T3,MSTOM,(T4) ;""
6935 001667'01 260 17 0 00 000212' CALL TWOBYT ;PUT IN SEG #
6936 001670'01 402 00 0 00 000002 SETZM T2 ;ASSUME DATA CHANNEL
6937 001671'01 200 03 0 15 000003 MOVE T3,SNDLTP ;GET SUBCHANNEL
6938 001672'01 302 03 0 00 000002 CAIE T3,MSDAT ;DATA?
6939 001673'01 201 02 0 00 000004 MOVEI T2,4 ;NO. LS/INT
6940 001674'01 260 17 0 00 000207' CALL ONEBYT
6941 001675'01 200 02 0 15 000002 MOVE T2,SNDLCT ;GET COUNT
6942 001676'01 260 17 0 00 000207' CALL ONEBYT
6943 001677'01 200 02 0 15 000004 MOVE T2,SNDLMS ;GET MESSAGE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 160-1
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6944 001700'01 260 17 0 00 001044' CALL SNDSEG ;SEND THE DATA
6945 001701'01 254 00 0 00 001577* RETSKP ;AND DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 161
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6946
6947 ;SNDLS CONTINUED...
6948 ;SEND ON A LOCAL CONNECTION
6949
6950 001702'01 265 16 0 00 000000* SNDLSL: SAVEAC <T1> ;SAVE LL BLOCK
6951 001703'01 476 00 0 00 000002 SETOM T2 ;ANY MATCH IS OKAY
6952 001704'01 135 01 0 00 002174' LOAD T1,LLHLK,(T1) ;GET OTHER ADDRESS
6953 001705'01 260 17 0 00 000007' LLLOCK
6954 001706'01 260 17 0 00 000070' CALL LLLKUP ;GET BLOCK ADDRESS
6955 JRST [ LLLULK ;?
6956 001707'01 254 00 0 00 002445' RETSKP] ;OTHER ONE WENT AWAY
6957 001710'01 200 02 0 15 000002 MOVE T2,SNDLCT ;GET COUNT
6958 001711'01 200 03 0 15 000003 MOVE T3,SNDLTP ;GET SUBCHANNEL
6959 001712'01 265 16 0 00 001132* NOSKD1
6960 001713'01 302 03 0 00 000002 CAIE T3,MSDAT ;DATA
6961 JRST [ OPSTRM <ADDM T2,>,LLMIC,(T1) ;NO
6962 001714'01 254 00 0 00 002450' JRST SNDLS1] ;GO WRAP UP
6963 001715'01 135 16 0 00 002225' OPSTRM <ADDM T2,>,LLMSM,(T1) ;YES
6964 001716'01 272 02 0 00 000016
6965 001717'01 137 16 0 00 002225'
6966 001720'01 260 17 0 00 001243* SNDLS1: CALL CHKLLT ;CHECK FOR TTY ON THIS LL
6967 001721'01 265 16 0 00 001155* OKSKD1
6968 001722'01 260 17 0 00 000014' LLLULK ;FREE TREE
6969 001723'01 200 16 0 01 000002 JE LLINT,(T1),RSKP ;SENDER OF LS CONNECTED TO AN INTERNAL LINK ?
6970 001724'01 607 16 0 00 004000
6971 001725'01 254 00 0 00 001701*
6972 001726'01 260 17 0 00 001745' CALL SKDOUT ;YES, NOTE CAN SEND MORE NOW
6973 001727'01 254 00 0 00 001725* RETSKP ;DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 162
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - MSGQ Processing
6974 ;ROUTINES CALLED FROM INT LEVEL TO GET AND QUEUE UP BUFFERS
6975
6976 ;GET A BUFFER
6977 ; T1/ PORT # (E.G. DTE#)
6978 ; T2/ # OF BYTES REQUIRED
6979 ;RETURNS:
6980 ; +1 COULDN'T GET BLOCK
6981 ; +2 T1=BLOCK ADDRESS.
6982
6983 001730'01 265 16 0 00 001632* NSPSPC::ASUBR <PRTNO,PRTCNT>
6984 001731'01 201 01 0 02 000037 MOVEI T1,MSHDR*4+3(T2) ;GET # OF BYTES
6985 001732'01 242 01 0 00 777776 LSH T1,-2 ;CONVERT TO WORDS
6986 001733'01 505 01 0 00 000000* HRLI T1,.RESP1 ;PRIORITY 1
6987 001734'01 200 02 0 00 002454' MOVE T2,[RS%SE0+.RESNP] ;FROM THE NET POOL
6988 001735'01 260 17 0 00 000130* CALL ASGRES ;GET THE SPACE
6989 001736'01 263 17 0 00 000000 RETBAD ;COULDN'T
6990 001737'01 200 02 0 15 000001 MOVE T2,PRTNO ;GET PORT I.D.
6991 001740'01 137 02 0 00 002455' STOR T2,MSPRT,(T1) ;SAVE IT
6992 001741'01 200 02 0 15 000002 MOVE T2,PRTCNT ;GET COUNT OF BYTES IN MESSAGE
6993 001742'01 137 02 0 00 002456' STOR T2,MSCNT,(T1) ;SAVE IT
6994 001743'01 271 01 0 00 000007 ADDI T1,MSHDR ;POINT TO DATA PORTION
6995 001744'01 254 00 0 00 001727* RETSKP ;AND RETURN WITH BLOCK
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 163
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - Output on Internal Links
6996 SUBTTL NSP Background Task - Output on Internal Links
6997
6998 ;OUTSND - ROUTINE TO CHECK "OUTPUT REMAINING" QUEUE AND SEND ANY REMAINING DATA
6999 ;
7000 ; CALLED PERIODICALLY FROM NSP BACKGROUND TASK DISPATCHER (NSPTSK)
7001
7002 SWAPCD
7003
7004 006340'02 265 16 0 00 000000* OUTSND: SAVEPQ
7005 006341'02 402 00 0 00 000000* SETZM OUTTIM ;RESET TIME AT WHICH TASK SHOULD AWAKEN
7006 006342'02 352 00 0 00 001650* LOCK OUTLOK ;LOCK THE QUEUE WHILE PROCESSING ENTRIES
7007 006343'02 265 16 0 00 001625*
7008 006344'02 550 05 0 00 001641* HRRZ Q1,OUTQUE ;GET ADR OF FIRST LINK BLOCK TO PROCESS
7009 006345'02 201 06 0 00 000000 MOVEI Q2,0 ;INITIALIZE "PREVIOUS BLOCK" ADDRESS
7010
7011 ; LOCK THE LOGICAL LINK BLOCK AND SEND REMAINING OUTPUT
7012
7013 OUTCK0: JUMPE Q1,[UNLOCK OUTLOK ;IF END OF QUEUE, UNLOCK THE QUEUE
7014 006346'02 322 05 0 00 010500' RET] ; AND RETURN
7015 006347'02 200 01 0 00 000005 MOVE T1,Q1 ;GET ADR OF CURRENT LOGICAL LINK BLOCK
7016 006350'02 260 17 0 00 000000# CALL BLKLLK ;GO LOCK THE LOGICAL LINK
7017 JRST [ CALL SKDOUT ;FAILED, SCHEDULE OUTPUT FOR LATER
7018 MOVE Q2,Q1 ;MAKE PREVIOUS BLOCK THE CURRENT
7019 LOAD Q1,LLOUT,(Q1) ;MAKE CURRENT BLOCK THE NEXT ONE
7020 006351'02 254 00 0 00 010502' JRST OUTCK0 ] ;GO DO OUTPUT FOR NEXT LOGICAL LINK
7021 006352'02 200 01 0 00 000005 MOVE T1,Q1 ;GET ADR OF CURRENT LOGICAL LINK BLOCK
7022 006353'02 260 17 0 00 000000# CALL INTOUT ;DO REMAINING OUTPUT FOR THIS LINK
7023 JRST [ CALL SKDOUT ;FAILED, SCHEDULE OUTPUT FOR LATER
7024 006354'02 254 00 0 00 010506' JRST OUTCK1 ] ;GO DO OUTPUT FOR NEXT LOGICAL LINK
7025 JN LLOCT,(Q1),[ CALL SKDOUT ;IF MORE OUTPUT, SCHEDULE FOR LATER
7026 006355'02 550 16 0 05 000037 JRST OUTCK1] ;GO HANDLE NEXT BLOCK ON QUEUE
7027 006356'02 326 16 0 00 010510'
7028
7029 ; ALL REMAINING OUTPUT SENT, REMOVE THE BLOCK FROM THE QUEUE
7030
7031 006357'02 205 16 0 00 400000 SETZRO LLQUE,(Q1) ;NOTE BLOCK NO LONGER ON QUEUE
7032 006360'02 412 16 0 05 000002
7033 006361'02 554 04 0 00 006344* HLRZ T4,OUTQUE ;GET POINTER TO TAIL OF QUEUE
7034 006362'02 316 04 0 00 000005 CAMN T4,Q1 ;PROCESSING TAIL OF QUEUE ?
7035 006363'02 506 06 0 00 006361* HRLM Q2,OUTQUE ;YES, SAVE PREVIOUS BLOCK AS NEW TAIL
7036 006364'02 200 04 0 05 000040 LOAD T4,LLOUT,(Q1) ;GET ADDRESS OF NEXT BLOCK ON QUEUE
7037 006365'02 402 00 0 05 000040 SETZRO LLOUT,(Q1) ;CLEAR ADR OF NEXT BLOCK ON QUEUE
7038 006366'02 336 00 0 00 000006 SKIPN Q2 ;PROCESSING HEAD OF QUEUE ?
7039 JRST [ HRRM T4,OUTQUE ;YES, SAVE NEXT BLOCK AS NEW HEAD
7040 006367'02 254 00 0 00 010512' JRST OUTCK1 ] ; AND GO DO OUTPUT FOR NEXT LOGICAL LINK
7041 006370'02 202 04 0 06 000040 STOR T4,LLOUT,(Q2) ;NO, SAVE ADR OF NEXT BLOCK IN PREVIOUS
7042
7043 006371'02 200 06 0 00 000005 OUTCK1: MOVE Q2,Q1 ;MAKE CURRENT BLOCK THE PREVIOUS
7044 006372'02 200 01 0 00 000005 MOVE T1,Q1 ;GET ADDRESS OF CURRENT LINK BLOCK
7045 006373'02 200 05 0 01 000040 LOAD Q1,LLOUT,(T1) ;GET ADDRESS OF NEXT BLOCK ON QUEUE
7046 006374'02 260 17 0 00 000000# CALL BLKULK ;UNLOCK THE CURRENT BLOCK
7047 006375'02 254 00 0 00 006346' JRST OUTCK0 ;GO PROCESS NEXT BLOCK ON QUEUE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 164
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - Output on Internal Links
7048
7049 ;SKDOUT - ROUTINE TO SCHEDULE OUTPUT FOR AN INTERNAL LINK
7050 ;
7051 ;CALL: CALL SKDOUT
7052 ;RETURNS: +1 ALWAYS, WITH ALL AC'S PRESERVED
7053
7054 RESCD
7055
7056 001745'01 265 16 0 00 001416* SKDOUT::SAVET
7057 001746'01 200 04 0 00 000674* MOVE T4,TODCLK ;GET CURRENT TIME
7058 001747'01 270 04 0 00 000000* ADD T4,OUTIVL ;GET TIME INTERVAL TO WAIT BEFORE TRYING AGAIN
7059 001750'01 202 04 0 00 000673* MOVEM T4,OUTTIM ;SCHEDULE WAKEUP AT LATER TIME
7060 001751'01 263 17 0 00 000000 RET ;DONE, RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 165
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - Output on Internal Links
7061 ;INTOUT - ROUTINE TO PERFORM OUTPUT FOR AN INTERNAL LINK
7062 ;
7063 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
7064 ; CALL INTOUT
7065 ;RETURNS: +1 FAILED, MORE OUTPUT WILL HAVE TO BE DONE LATER
7066 ; +2 SUCCESS, ALL REMAINING OUTPUT HAS BEEN SENT
7067 ;
7068 ; ASSUMES LOGICAL LINK BLOCK IS LOCKED. PRESERVES LINK BLOCK ADR IN T1
7069
7070 001752'01 265 16 0 00 001730* INTOUT: ASUBR <INOLLB>
7071
7072 ; PROCESS ANY OUTSTANDING ACK'S FOR THIS LINK
7073
7074 001753'01 200 01 0 15 000001 MOVE T1,INOLLB ;GET LOGICAL LINK BLOCK ADDRESS
7075 001754'01 260 17 0 00 000430' CALL MOVSEG ;PROCESS OUTSTANDING ACK'S
7076 001755'01 263 17 0 00 000000 RET ;FAILED, TRY AGAIN LATER
7077 001756'01 200 01 0 15 000001 MOVE T1,INOLLB ;GET LOGICAL LINK BLOCK ADDRESS
7078 001757'01 550 16 0 01 000037 JE LLOCT,(T1),RSKP ;IF NO DATA LEFT, ALL DONE
7079 001760'01 322 16 0 00 001744*
7080
7081 ; CHECK TO SEE IF THERE IS ANY MORE OUTPUT TO SEND
7082
7083 001761'01 200 01 0 15 000001 INO020: MOVE T1,INOLLB ;GET ADDRESS OF LOGICAL LINK BLOCK
7084 001762'01 550 16 0 01 000037 JN LLOCT,(T1),INO025 ;IF DATA LEFT, GO TRY TO SEND IT
7085 001763'01 326 16 0 00 001772'
7086 001764'01 200 01 0 15 000001 MOVE T1,INOLLB ;GET LOGICAL LINK BLOCK ADDRESS
7087 001765'01 260 17 0 00 002011' CALL TELOBE ;GO TELL DRIVER THAT OUTPUT BUFFER NOW EMPTY
7088 001766'01 200 01 0 15 000001 MOVE T1,INOLLB ;GET ADDRESS OF LOGICAL LINK BLOCK
7089 001767'01 260 17 0 00 002000' CALL TELOOK ;GO ADVISE DRIVER OUTPUT CAN BE DONE
7090 001770'01 200 01 0 15 000001 MOVE T1,INOLLB ;RESTORE LOGICAL LINK BLOCK ADDRESS
7091 001771'01 254 00 0 00 001760* RETSKP ;DONE, RETURN
7092
7093 ;CHECK TO SEE IF ANY SEGMENTS CAN BE SENT NOW
7094
7095 001772'01 200 01 0 15 000001 INO025: MOVE T1,INOLLB ;GET LOGICAL LINK BLOCK ADDRESS
7096 001773'01 260 17 0 00 000260' CALL SNDCHK ;CAN ANY SEGMENTS BE SENT ?
7097 001774'01 263 17 0 00 000000 RET ;NO, TRY AGAIN LATER
7098 001775'01 200 01 0 15 000001 MOVE T1,INOLLB ;YES, GET LOGICAL LINK BLOCK ADDRESS
7099 ; CALL OUTSEG ;SEND THE SEGMENT
7100 001776'01 263 17 0 00 000000 RET ;FAILED, TRY AGAIN LATER
7101 001777'01 254 00 0 00 001761' JRST INO020 ;CHECK TO SEE IF ANOTHER SEGMENT CAN BE SENT
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 166
NSPSRV MAC 6-Apr-82 10:58 NSP Background Task - Output on Internal Links
7102 ;TELOOK - ROUTINE TO CHECK TO SEE IF NECESSARY TO NOTIFY DRIVER THAT
7103 ; OUTPUT MAY NOW BE SENT
7104 ;
7105 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
7106 ; CALL TELOOK
7107 ;RETURNS: +1 ALWAYS, DRIVER NOTIFIED THRU FUNCTION VECTOR IF NEEDED
7108
7109 002000'01 200 16 0 01 000037 TELOOK: JE LLNDO,(T1),R ;RETURN IF DRIVER DOES NOT NEED NOTIFICATION
7110 002001'01 607 16 0 00 200000
7111 002002'01 254 00 0 00 001421*
7112 002003'01 205 16 0 00 200000 SETZRO LLNDO,(T1) ;NO LONGER NEED NOTIFICATION FLAG LIT
7113 002004'01 412 16 0 01 000037
7114 002005'01 200 04 0 01 000034 LOAD T4,LLVEC,(T1) ;GET DRIVER FUNCTION VECTOR ADDRESS
7115 002006'01 201 02 0 00 000001 MOVX T2,.NSOMO ;GET "OUTPUT CAN BE SENT" TYPE CODE
7116 002007'01 200 01 0 01 000033 LOAD T1,LLDRV,(T1) ;GET DRIVER'S CORRELATION CODE
7117 002010'01 254 00 1 04 000004 CALLRET @.NSOOK(T4) ;NOTIFY DRIVER AND RETURN
7118
7119
7120
7121 ;TELOBE - ROUTINE TO NOTIFY THE DRIVER THAT AN OUTPUT BUFFER IS NOW EMPTY
7122 ;
7123 ;ACCEPTS IN T1/ ADDRESS OF LOGICAL LINK BLOCK
7124 ; CALL TELOBE
7125 ;RETURNS: +1 ALWAYS, WITH DRIVER NOTIFIED THRU ITS FUNCTION VECTOR
7126
7127 002011'01 265 16 0 00 001752* TELOBE::ASUBR <OBELLB>
7128 002012'01 200 04 0 01 000034 LOAD T4,LLVEC,(T1) ;DATA SENT, GET DRIVER FCN VECTOR ADR
7129 002013'01 200 02 0 01 000035 LOAD T2,LLBFO,(T1) ;GET DRIVER'S BUFFER ADDRESS
7130 002014'01 200 01 0 01 000033 LOAD T1,LLDRV,(T1) ;GET DRIVER CORRELATION CODE
7131 002015'01 260 17 1 04 000006 CALL @.NSOBE(T4) ;TELL DRIVER IT CAN HAVE BUFFER BACK
7132 002016'01 200 01 0 15 000001 MOVE T1,OBELLB ;GET LOGICAL LINK BLOCK ADDRESS
7133 002017'01 402 00 0 01 000035 SETZRO LLBFO,(T1) ;NOTE THAT BUFFER IS NOW GONE
7134 002020'01 263 17 0 00 000000 RET ;DONE, RETURN.
7135
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 167
NSPSRV MAC 6-Apr-82 10:58 Routine Needed by TTYSRV
7136 SUBTTL Routine Needed by TTYSRV
7137
7138 ;GET THE NEXT SEGMENT ON THE INCOMING MESSAGE QUEUE
7139 ;ACCEPTS: T1/ LL BLOCK
7140 ;RETURNS: +1 - NO SEGMENT AVAILABLE
7141 ; +2 - T2/ SEGMENT ADDRESS
7142 ;PRESERVES T1
7143
7144 002021'01 260 17 0 00 000430' TTGETS::CALL MOVSEG ;MOVE ANY SEGMENTS TO ORDERED QUEUE
7145 002022'01 600 00 0 00 000000 NOP ;NONE THERE
7146 002023'01 336 02 0 01 000012 SKIPN T2,LLOMSG(T1) ;ANY READY?
7147 002024'01 263 17 0 00 000000 RET ;NO
7148 002025'01 135 03 0 00 002270' LOAD T3,MSSEG,(T2) ;YES, SEE IF IT'S THE EXPECTED ONE
7149 002026'01 135 04 0 00 002234' LOAD T4,LLIDN,(T1)
7150 002027'01 350 00 0 00 000004 AOS T4
7151 002030'01 405 04 0 00 007777 ANDI T4,SEGMSK
7152 002031'01 312 03 0 00 000004 CAME T3,T4 ;SEG NUMBERS MATCH?
7153 002032'01 263 17 0 00 000000 RET ;NO
7154 002033'01 135 03 0 00 002307' LOAD T3,MSDTC,(T2) ;YES, GET BYTE COUNT
7155 002034'01 254 00 0 00 001771* RETSKP
7156
7157
7158 ;REMOVE A SEGMENT FROM THE INCOMING MESSAGE QUEUE
7159 ;ACCEPTS: T1/ LL BLOCK
7160 ; T2/ SEGMENT ADDRESS
7161 ;RETURNS: +1 ALWAYS
7162
7163 002035'01 135 03 0 00 002270' TTREMS::LOAD T3,MSSEG,(T2) ;UPDATE SEG NUMBER
7164 002036'01 137 03 0 00 002234' STOR T3,LLIDN,(T1)
7165 002037'01 550 03 0 02 000000 LOAD T3,MSLNK,(T2) ;REMOVE MSG FROM QUEUE
7166 002040'01 202 03 0 01 000012 MOVEM T3,LLOMSG(T1)
7167 002041'01 263 17 0 00 000000 RET
7168
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 168
NSPSRV MAC 6-Apr-82 10:58 Scheduler Interface
7169 SUBTTL Scheduler Interface
7170
7171 ;ROUTINE TO QUEUE UP A RECEIVED MESSAGE.
7172 ; T1/ BLOCK ADDRESS
7173
7174 002042'01 265 16 0 00 001600* NSPMSG::TRVAR <MSGCNT,MSGBYP,MSGSRC,MSGDST,MSGBLK,NAKFLG>
7175 002043'01 000006 000006
7176 002044'01 201 02 0 01 000007 MOVEI T2,MSHDR(T1) ;GET TO DATA PORTION
7177 002045'01 202 01 0 15 000005 MOVEM T1,MSGBLK ;SAVE BLOCK ADDRESS
7178 002046'01 505 02 0 00 441000 HRLI T2,(<POINT 8,>)
7179 002047'01 202 02 0 15 000002 MOVEM T2,MSGBYP ;SAVE BYTE POINTER
7180 002050'01 135 01 0 00 002456' LOAD T1,MSCNT,(T1) ;GET BYTE COUNT
7181 002051'01 202 01 0 15 000001 MOVEM T1,MSGCNT ;SET UP COUNT
7182 002052'01 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,NSPMSE) ;GET FIRST BYTE
7183 002053'01 254 00 0 00 002127'
7184 002054'01 134 02 0 15 000002
7185 002055'01 602 02 0 00 000201 TRNE T2,201 ;A ROUTINE HEADER?
7186 002056'01 254 00 0 00 002127' JRST NSPMSE ;YES, BUT IN ERROR
7187 002057'01 606 02 0 00 000002 TRNN T2,2 ;IS THIS FLAGS OR ROUTE HEADER?
7188 002060'01 254 00 0 00 002073' JRST NSPMS1 ;FLAGS, GO DO MESSAGE
7189 002061'01 602 02 0 00 000100 TRNE T2,100
7190 002062'01 602 02 0 00 000060 TRNE T2,60 ;VALID HEADER?
7191 002063'01 254 00 0 00 002127' JRST NSPMSE ;NO
7192 002064'01 260 17 0 00 000744' CALL SKPFLD ;SKIP HOST NAME
7193 002065'01 254 00 0 00 002127' JRST NSPMSE ;SOMETHING WRONG
7194 002066'01 260 17 0 00 000744' CALL SKPFLD ;SKIP OTHER HOST NAME
7195 002067'01 254 00 0 00 002127' JRST NSPMSE ;SOMETHING WRONG
7196 002070'01 375 00 0 15 000001 GETBYM (MSGCNT,MSGBYP,NSPMSE) ;GET FLAGS
7197 002071'01 254 00 0 00 002127'
7198 002072'01 134 02 0 15 000002
7199 002073'01 200 01 0 15 000005 NSPMS1: MOVE T1,MSGBLK ;GET BLOCK
7200 002074'01 137 02 0 00 002457' STOR T2,MSMFL,(T1) ;SAVE FLAGS
7201 002075'01 402 00 0 15 000006 SETZM NAKFLG ;ASSUME NOT AN ACK OR NACK
7202 002076'01 606 02 0 00 000034 TRNN T2,ACKFLM!CNMRFL!ACKLSI ;IS IT A DATA SEGMENT?
7203 002077'01 254 00 0 00 002103' JRST NSPMS2 ;YES. KEEP IT THEN
7204 002100'01 606 02 0 00 000004 TRNN T2,ACKFLM ;NO. IS IT AN ACK OR NACK?
7205 002101'01 254 00 0 00 002127' JRST NSPMSE ;NO. IS CONTROL, LS, OR INT MESSAGE
7206 002102'01 350 00 0 15 000006 AOS NAKFLG ;YES. NOTE THAT
7207 002103'01 260 17 0 00 000677' NSPMS2: CALL GETLLA ;YES. GET LINK NUMBERS
7208 002104'01 254 00 0 00 002127' JRST NSPMSE ;BAD MESSAGE
7209 ; ..
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 169
NSPSRV MAC 6-Apr-82 10:58 Scheduler Interface
7210 ; ..
7211
7212 ; MESSAGE PARSED - PLACE MESSAGE ON APPROPRIATE QUEUE FOR LATER HANDLING
7213
7214 002105'01 200 01 0 15 000004 MOVE T1,MSGDST ;GET OUR NAME
7215 002106'01 200 02 0 15 000003 MOVE T2,MSGSRC ;GET ITS NAME
7216 002107'01 260 17 0 00 000070' CALL LLLKUP ;FIND THE LINK
7217 002110'01 254 00 0 00 002127' JRST NSPMSE ;COULDN'T.
7218 002111'01 200 16 0 01 000002 JN LLINT,(T1),NSPMSE ;IF INTERNAL LINK, PUT MESSAGE ON TASKS'S QUEUE
7219 002112'01 603 16 0 00 004000
7220 002113'01 254 00 0 00 002127'
7221 002114'01 135 02 0 00 002200' LOAD T2,LLSTA,(T1) ;GOT IT. GET STATE
7222 002115'01 302 02 0 00 000004 CAIE T2,LLSRUN ;RUNNING?
7223 002116'01 254 00 0 00 002127' JRST NSPMSE ;NO
7224 002117'01 200 02 0 15 000005 MOVE T2,MSGBLK ;YES.
7225 002120'01 200 03 0 15 000001 MOVE T3,MSGCNT ;GET REMAINING COUNT
7226 002121'01 137 03 0 00 002307' STOR T3,MSDTC,(T2) ;SAVE RESIDUAL COUNT
7227 002122'01 200 03 0 15 000002 MOVE T3,MSGBYP
7228 002123'01 202 03 0 02 000003 MOVEM T3,MSBPTR(T2) ;SAVE RESIDUAL BYTE POINTER
7229 002124'01 332 00 0 15 000006 SKIPE NAKFLG ;IS THIS AN ACK OR NACK?
7230 JRST [ CALL GETTWO ;YES. GET ACKNUM FIELD
7231 JRST NSPMSE ;BAD MESSAGE
7232 TRNE T2,ACKBIT ;A NACK?
7233 JRST NSPMSE ;YES. GIVE IT TO NSPTSK
7234 MOVE T2,MSGBLK ;NO, MUST RESTORE MESSAGE BLOCK ADDRESS
7235 002125'01 254 00 0 00 002460' JRST .+1] ;GO ON
7236 002126'01 254 00 0 00 001132' CALLRET ONRAWQ ;AND PUT IT ON LINK'S Q
7237
7238 002127'01 200 02 0 15 000005 NSPMSE: MOVE T2,MSGBLK ;GET BLOCK ADDRESS
7239 002130'01 254 00 0 00 001037' CALLRET ONMSGQ ;PUT IN ON THE TASK'S Q
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 170
NSPSRV MAC 6-Apr-82 10:58 Scheduler Interface
7240
7241 ;ROUTINE CALLED BY THE SCHEDULER EVERY 20 MS TO PROCESS MESSAGES
7242 ;ARRIVED FROM THE NETWORK
7243
7244 002131'01 265 16 0 00 000135* NSPCH7::ACVAR <W1> ;GET A WORK REG
7245 002132'01 201 05 0 00 000012 MOVEI W1,12 ;DO A LIMITED # PER PASS
7246 002133'01 336 01 0 00 001042* NSPCH0: SKIPN T1,SMSGQ ;ANY MESSAGE TO DO?
7247 002134'01 263 17 0 00 000000 RET ;NO. ALL DONE
7248 002135'01 7 004 20 0 00 001002 CHNOFF DLSCHN ;TURN OFF NETWORK
7249 002136'01 553 00 0 00 000001 HRRZS T1 ;GET HEAD POINTER
7250 002137'01 550 02 0 01 000000 LOAD T2,MSLNK,(T1) ;GET POINTER
7251 002140'01 542 02 0 00 002133* HRRM T2,SMSGQ ;NEW HEAD
7252 002141'01 336 00 0 00 000002 SKIPN T2 ;ANY MORE IN THE Q?
7253 002142'01 402 00 0 00 002140* SETZM SMSGQ ;NO
7254 002143'01 7 004 20 0 00 002002 CHNON DLSCHN ;TURN ON NET
7255 002144'01 260 17 0 00 002042' CALL NSPMSG ;GO PROCESS THE MESSAGE
7256 002145'01 365 05 0 00 002133' SOJGE W1,NSPCH0 ;GO DO MORE
7257 002146'01 263 17 0 00 000000 RET ;ALL DONE
7258
7259 ENDAV. ;END ACVAR
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 171
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7260 SUBTTL The NODE JSYS
7261
7262 SWAPCD ;IS SWAPPABLE
7263 006376'02 .NODE:: MCENT ;MONITOR CONTEXT ENTRY
7264
7265 ; VALIDATE FUNCTION CODE AND DISPATCH TO PROCESSING ROUTINE
7266
7267 006376'02 256 04 0 00 010514' UMOVE T1,1 ;GET FUNCTION CODE FROM USER
7268 006377'02 301 01 0 00 000000 CAIL T1,0 ;FUNCTION CODE WITHIN
7269 006400'02 301 01 0 00 000016 CAIL T1,NDTLEN ; VALID RANGE ?
7270 006401'02 254 00 0 00 010515' ITERR (ARGX02) ;NO, RETURN "INVALID FUNCTION" ERROR
7271 006402'02 200 04 0 01 006406' MOVE T4,NODTAB(T1) ;GET ADDRESS OF PROCESSING ROUTINE
7272 006403'02 260 17 0 04 000000 CALL (T4) ;DISPATCH TO PROPER ROUTINE
7273 006404'02 265 02 0 00 000000* ITERR () ;FAILED, RETURN ERROR CODE
7274 006405'02 254 00 0 00 000000* MRETNG ;SUCCESS, DONE.
7275
7276 ; TABLE OF NODE JSYS FUNCTIONS
7277
7278 006406'02 000000 006424' NODTAB: EXP NDSLN ;(0) SET LOCAL NODE NAME
7279 006407'02 000000 006442' EXP NDGLN ;(1) GET LOCAL NODE NAME
7280 006410'02 000000 006450' EXP NDSNM ;(2) SET LOCAL NODE NUMBER
7281 006411'02 000000 006457' EXP NDGNM ;(3) GET LOCAL NODE NUMBER
7282 006412'02 000000 006463' EXP NDSLP ;(4) SET LOOPBACK PORT
7283 006413'02 000000 006503' EXP NDCLP ;(5) CLEAR LOOPBACK PORT
7284 006414'02 000000 006522' EXP NDFLP ;(6) FIND LOOPBACK PORT
7285 006415'02 000000 006526' EXP NDSNT ;(7) SET NETWORK TOPOLOGY INFO
7286 006416'02 000000 006722' EXP NDGNT ;(10) GET NETWORK TOPOLOGY INFO
7287 006417'02 000000 006561' EXP NDSIC ;(11) SET ITERRUPT CHANNEL FOR TOPOLOGY CHANGE
7288 006420'02 000000 006615' EXP NDCIC ;(12) CLEAR ITERRUPT CHANNEL FOR TOPOLOGY CHANGE
7289 006421'02 000000 006624' EXP NDGVR ;(13) GET NSP VERSION INFORMATION
7290 006422'02 000000 007001' EXP NDGLI ;(14) GET LINE INFORMATION
7291 006423'02 000000 007075' EXP NDVFY ;(15) VERIFY NODE NAME
7292
7293
7294 000016 NDTLEN==.-NODTAB
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 172
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7295 ;NDSLN - ROUTINE TO SET THE LOCAL NODE NAME
7296
7297 006424'02 265 16 0 00 006224* NDSLN: STKVAR <<NODNAM,WPN>>
7298 006425'02 000002 000002
7299 006426'02 200 01 0 00 000000* MOVE T1,CAPENB ;GET CURRENTLY ENABLED CAPABILITIES
7300 006427'02 606 01 0 00 600000 TXNN T1,SC%WHL!SC%OPR ;WHEEL OR OPERATOR CAPABILITY REQUIRED
7301 006430'02 254 00 0 00 010517' RETBAD (CAPX1) ;NOT ENOUGH CAPABILITY, RETURN ERROR
7302
7303 ; COPY THE NODE NAME STRING FROM THE USER ADDRESS SPACE
7304
7305 006431'02 256 04 0 00 007730' UMOVE T2,2 ;GET ADDRESS OF USER'S ARGUMENT BLOCK
7306 006432'02 256 04 0 00 010521' UMOVE T1,.NDNOD(T2) ;GET POINTER TO STRING IN USER SPACE
7307 006433'02 201 02 0 17 777775 MOVEI T2,NODNAM ;WE'LL WRITE PARSED NAME TO "NODNAM"
7308 006434'02 260 17 0 00 000000* CALL PARNDU ;MAKE SURE NODE NAME IS KOSHER
7309 006435'02 263 17 0 00 000000 RETBAD ;FAILED, TELL CALLER WHY
7310 006436'02 202 02 0 00 004706* MOVEM B,OURCNT ;REMEMBER LENGTH OF NAME
7311 DMOVE T1,NODNAM ;GET NODE NAME *** DMOVE IS CHEATING BECAUSE IT ASSUMES WPN=
7312 006437'02 120 01 0 17 777775 2!
7313 006440'02 124 01 0 00 004712* DMOVEM T1,OURNAM ;STORE FOR NSP
7314 006441'02 254 00 0 00 006337* RETSKP ;SUCCESS RETURN
7315
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 173
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7316 ;NDGLN - RETURN LOCAL NODE NAME
7317
7318 006442'02 256 04 0 00 007730' NDGLN: UMOVE T2,2 ;GET ADDRESS OF USER'S ARGUMENT BLOCK
7319 006443'02 256 04 0 00 010521' UMOVE T1,.NDNOD(T2) ;GET BYTE POINTER TO DEPOSIT NODE NAME
7320 006444'02 200 03 0 00 000002 MOVE T3,T2 ;KEEP 30-BIT ADDRESS IN T3 FOR RETURNING
7321 ; UPDATED BYTE POINTER TO USER
7322 006445'02 561 02 0 00 000000# HRROI T2,OURNAM-1 ;GET POINTER TO SOURCE STRING
7323 006446'02 260 17 0 00 000000* CALL CPYTU1 ;COPY STRING TO USER SPACE, RETURN POINTER
7324 006447'02 254 00 0 00 006441* RETSKP ;DONE, RETURN SUCCESS
7325
7326 ;SET LOCAL NODE NUMBER
7327
7328 006450'02 256 04 0 00 007730' NDSNM: UMOVE T2,2
7329 006451'02 256 04 0 00 010522' UMOVE T2,0(T2) ;GET NUMBER
7330 006452'02 301 02 0 00 000002 CAIL T2,2
7331 006453'02 303 02 0 00 000177 CAILE T2,177 ;WITHIN RANGE?
7332 006454'02 263 17 0 00 000000 RETBAD() ;NO
7333 006455'02 202 02 0 00 000000* MOVEM T2,OURNUM ;SET IT
7334 006456'02 254 00 0 00 006447* RETSKP ;DONE
7335
7336 ;GET LOCAL NODE NUMBER
7337
7338 006457'02 256 04 0 00 007730' NDGNM: UMOVE T2,2
7339 006460'02 200 03 0 00 006455* MOVE T3,OURNUM
7340 006461'02 256 04 0 00 010523' UMOVEM T3,0(T2) ;STORE NUMBER
7341 006462'02 254 00 0 00 006456* RETSKP ;DONE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 174
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7342 ;SET LOOPBACK PORT
7343
7344 006463'02 200 01 0 00 006426* NDSLP: MOVE T1,CAPENB ;GET CURRENTLY ENABLED CAPABILITIES
7345 006464'02 606 01 0 00 640000 TXNN T1,SC%WHL!SC%OPR!SC%MNT ;WHEEL OPERATOR OR MAINTENANCE CAPABILITY REQUIRED
7346 006465'02 254 00 0 00 010524' RETBAD (CAPX2) ;WHEEL, OPERATOR, or MAINTENANCE capability required
7347 006466'02 256 04 0 00 007730' UMOVE T2,2 ;GET ADDRESS OF USERS ARGUMENT BLOCK
7348 006467'02 256 04 0 00 010526' UMOVE T3,.NDPRT(T2) ;GET PORT WANTS TO SET IN LOOPBACK
7349 006470'02 332 02 0 00 004723* SKIPE T2,NSPLPB ;IS ANOTHER PORT ALREADY ASSIGNED ?
7350 JRST [ CAIE T3,(T2) ;IS IT SAME PORT ?
7351 RETBAD (NODX03) ;Another line already looped
7352 006471'02 254 00 0 00 010531' RETSKP ] ;ALL DONE
7353 006472'02 201 01 0 00 000006 MOVEI T1,.BTSTS ;WANT TO GET PORT STATUS
7354 006473'02 201 02 0 00 000003 MOVEI T2,T3 ;ADDRESS OF ARGUMENT BLOCK
7355 006474'02 104 00 0 00 000562 BOOT ;GET ARGUMENT STATUS
7356 006475'02 320 16 0 00 010536' ERJMP [RETBAD (ARGX19)] ;Invalid unit number
7357 006476'02 312 04 0 00 010441' CAME T4,[EXP -1] ;IS PORT TURNED OFF
7358 006477'02 254 00 0 00 010537' RETBAD (NODX02) ;Line not turned off
7359 006500'02 505 03 0 00 200000 HRLI T3,(ND%LPA) ;HAVE A PORT FOR LOOPBACK NOW
7360 006501'02 202 03 0 00 006470* MOVEM T3,NSPLPB ;REMEMBER WHICH PORT WILL BE LOOPED
7361 006502'02 254 00 0 00 006462* RETSKP
7362
7363 ;CLEAR LOOPBACK PORT
7364
7365 006503'02 200 01 0 00 006463* NDCLP: MOVE T1,CAPENB ;GET CURRENTLY ENABLED CAPABILITIES
7366 006504'02 606 01 0 00 640000 TXNN T1,SC%WHL!SC%OPR!SC%MNT ;WHEEL OPERATOR OR MAINTENANCE CAPABILITY REQUIRED
7367 006505'02 254 00 0 00 010524' RETBAD (CAPX2) ;WHEEL, OPERATOR, or MAINTENANCE capability required
7368 006506'02 336 01 0 00 006501* SKIPN T1,NSPLPB ;GET LOOPBACK PORT NUMBER
7369 006507'02 254 00 0 00 006502* RETSKP ;NONE SO DONE
7370 006510'02 256 04 0 00 007730' UMOVE T2,2 ;GET ADDRESS OF USERS ARGUMENT BLOCK
7371 006511'02 256 04 0 00 010526' UMOVE T3,.NDPRT(T2) ;GET PORT TO CLEAR LOOPBACK
7372 006512'02 302 03 0 01 000000 CAIE T3,(T1) ;SAME PORT AS IS LOOPED BACK ?
7373 006513'02 254 00 0 00 010534' RETBAD (ARGX19) ;Invalid unit number
7374 006514'02 201 01 0 00 000005 MOVEI T1,.BTTPR ;TERMINATE PROTOCOL
7375 006515'02 201 02 0 00 000003 MOVEI T2,T3 ;ADDRESS OF ARGUMENT BLOCK
7376 006516'02 104 00 0 00 000562 BOOT ;DISABLE LINE
7377 006517'02 320 16 0 00 006520' ERJMP .+1 ;CAN'T TURN OFF ?
7378 006520'02 402 00 0 00 006506* SETZM NSPLPB ;NOTHING IS LOOPED BACK NOW
7379 006521'02 254 00 0 00 006507* RETSKP
7380
7381 ;FIND LOOPBACK PORT
7382
7383 006522'02 256 04 0 00 007730' NDFLP: UMOVE T2,2 ;GET ADR OF USERS ARGUMENT BLOCK
7384 006523'02 200 01 0 00 006520* MOVE T1,NSPLPB ;GET LOOPED BACK LINE
7385 006524'02 256 04 0 00 010541' UMOVEM T1,.NDPRT(T2) ;GIVE ANSWER TO USER
7386 006525'02 254 00 0 00 006521* RETSKP
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 175
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7387 ; SET NETWORK TOPOLOGY INFO
7388
7389 006526'02 265 16 0 00 006424* NDSNT: STKVAR <<SNTBLK,MAXNOD>,SNTCNT>
7390 006527'02 000025 000025
7391
7392 ; CHECK CAPABILITIES
7393
7394 006530'02 200 01 0 00 006503* MOVE T1,CAPENB ;GET CURRENTLY ENABLED CAPABILITIES
7395 006531'02 606 01 0 00 600000 TXNN T1,SC%WHL!SC%OPR ;WHEEL, OPERATOR CAPABILITY REQUIRED
7396 006532'02 254 00 0 00 010517' RETBAD (CAPX1) ;WHEEL OR OPERATOR capability required
7397
7398 ; CHECK NUMBER OF ITEMS TO BE ENTERED AND COPY POINTERS TO NODE BLOCKS
7399
7400 006533'02 256 04 0 00 007730' UMOVE T2,2 ;GET ADDRESS OF USER'S ARGUMENT BLOCK
7401 006534'02 256 04 0 00 010542' UMOVE T1,.NDCNT(T2) ;GET NUMBER OF ITEMS SUPPLIED IN NODE BLOCKS
7402 006535'02 305 01 0 00 000003 CAIGE T1,.NDNXT+1 ;AT LEAST NAME, STATE, AND NEIGHBOR REQUIRED
7403 006536'02 254 00 0 00 010543' RETBAD (ARGX17) ;FAIL, NODE BLOCKS TOO SMALL
7404 006537'02 256 04 0 00 010521' UMOVE T1,.NDNND(T2) ;GET NUMBER OF NODES TO BE ENTERED
7405 006540'02 301 01 0 00 000000 CAIL T1,0 ;WITHIN VALID
7406 006541'02 303 01 0 00 000024 CAILE T1,MAXNOD ; RANGE ?
7407 006542'02 254 00 0 00 010543' RETBAD (ARGX17) ;NO, INVALID ARGUMENT BLOCK LENGTH
7408 006543'02 202 01 0 17 777752 MOVEM T1,SNTCNT ;SAVE NUMBER OF NODES TO BE ADDED
7409 006544'02 271 02 0 00 000002 ADDI T2,.NDBK1 ;POINT TO FIRST WORD TO BE MOVED
7410 006545'02 201 03 0 17 777753 MOVEI T3,SNTBLK ;GET ADDRESS OF BLOCK TO HOLD POINTERS
7411 006546'02 260 17 0 00 000000* CALL BLTUM1 ;COPY POINTERS TO NODE BLOCKS
7412
7413 ; LOOP, ADDING EACH NODE TO THE TABLE OF KNOWN NODES
7414
7415 006547'02 415 05 0 17 777753 XMOVEI Q1,SNTBLK ;GET ADDRESS OF BLOCK OF POINTERS
7416 006550'02 200 06 0 00 000005 MOVE Q2,Q1 ;COPY STARTING ADDRESS OF BLOCK
7417 006551'02 270 05 0 17 777752 ADD Q1,SNTCNT ;COMPUTE FIRST ADR PAST END OF BLOCK
7418 006552'02 311 06 0 00 000005 NDSN10: CAML Q2,Q1 ;ANOTHER NODE TO ADD ?
7419 006553'02 254 00 0 00 006525* RETSKP ;NO, DONE
7420 006554'02 200 01 0 06 000000 MOVE T1,(Q2) ;GET POINTER TO NODE BLOCK IN USER SPACE
7421 006555'02 260 17 0 00 006646' CALL INSNOD ;INSERT NODE IN TABLE OF KNOWN NODES
7422 006556'02 263 17 0 00 000000 RETBAD () ;FAILED
7423 006557'02 271 06 0 00 000001 ADDI Q2,1 ;POINT TO NEXT ITEM IN ARG BLOCK
7424 006560'02 254 00 0 00 006552' JRST NDSN10 ;LOOP OVER ALL ENTRIES IN TABLE
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 176
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7425 ; SET INTERRUPT CHANNEL FOR NETWORK TOPOLOGY CHANGE
7426 006561'02 256 04 0 00 010545' NDSIC: UMOVE T3,T2 ;GET USER BLOCK ADDRESS
7427 006562'02 256 04 0 00 010546' XCTU [ MOVEI T1,.NDCHN(T3)] ;POINT TO CHANNEL NUMBER WORD
7428 006563'02 256 04 0 00 010547' UMOVE T1,(T1) ;GET THE CHANNEL NUMBER
7429 006564'02 335 00 0 00 000001 SKIPGE T1 ;VALIDATE CHANNEL NUMBER
7430 006565'02 254 00 0 00 007665' RETBAD (ARGX13) ;NEGATIVE CHANNEL NUMBERS ARE ILLEGAL
7431 006566'02 303 01 0 00 000043 CAILE T1,^D35 ;CHANNEL NUMBER TOO HIGH
7432 006567'02 254 00 0 00 007665' RETBAD (ARGX13) ;NEGATIVE CHANNEL NUMBERS ARE ILLEGAL
7433 006570'02 301 01 0 00 000006 CAIL T1,.ICAOV ;SKIP IF GOOD NUMBER
7434 006571'02 303 01 0 00 000026 CAILE T1,.ICNXP ;SKIP IF BAD NUMBER
7435 006572'02 254 00 0 00 006574' JRST CHANOK ;CHANNEL NUMBER OK.
7436 006573'02 254 00 0 00 007665' RETBAD (ARGX13) ;BAD CHANNEL NUMBER
7437
7438 006574'02 400 04 0 00 000000 CHANOK: SETZ T4, ;T4 WILL HOLD ADDRESS OF FREE ENTRY
7439 006575'02 201 02 0 00 000726* MOVEI T2,NTCTAB ;POINT TO TOP OF TABLE OF WAITING FORKS
7440
7441 ;HERE TO DETERMINE IF FORK ALREADY HAS SET THE INTERRUPT ONCE
7442
7443 006576'02 336 00 0 02 000000 CHNOK1: SKIPN (T2) ;SKIP IF ENTRY IS BEING USED
7444 JRST [ MOVE T4,T2 ;SAVE FOR FORK NOT CURRENTLY ACTIVATED
7445 006577'02 254 00 0 00 010550' JRST CHNOK2] ;TRY NEXT ENTRY
7446 006600'02 554 03 0 02 000000 LOAD T3,NTCFRK,(T2) ;GET THE FORK NUMBER
7447 006601'02 316 03 0 00 001731* CAMN T3,FORKX ;DOES THIS ENTRY BELONG TO THIS FORK
7448 JRST [ STOR T1,NTCCHN,(T2) ;YES. PUT NEW CHANNEL NUMBER IN
7449 006602'02 254 00 0 00 010552' RETSKP]
7450 006603'02 302 02 0 00 000000# CHNOK2: CAIE T2,NTCTAB+<NTCMAX-1> ;HAVE WE LOOKED AT WHOLE TABLE
7451 006604'02 344 02 0 00 006576' AOJA T2,CHNOK1 ;NO - KEEP LOOKING
7452 006605'02 336 00 0 00 000004 SKIPN T4 ;DID WE FIND AN ENTRY?
7453 006606'02 254 00 0 00 010554' RETBAD (NSPX26) ;ERROR - TABLE OF TOPOLOGY WATCHERS IS FULL
7454 006607'02 542 01 0 04 000000 STOR T1,NTCCHN,(T4) ;SAVE THE CHANNEL NUMBER
7455 006610'02 200 01 0 00 006601* MOVE T1,FORKX ;NOW GET THE FORK NUMBER
7456 006611'02 506 01 0 04 000000 STOR T1,NTCFRK,(T4) ;AND SAVE
7457 006612'02 205 16 0 00 400000 SETONE FKNTC,(T1) ;FLAG IN FORK DATA BASE
7458 006613'02 436 16 0 01 000000*
7459 006614'02 254 00 0 00 006553* RETSKP
7460
7461 ;NDCIC - CLEAR INTERRUPT CHANNEL FOR NETWORK TOPOLOGY CHANGE
7462
7463 006615'02 NDCIC:
7464 006615'02 201 01 0 00 006575* NTCOFF::MOVEI T1,NTCTAB ;FIND THE FORK'S ENTRY
7465 006616'02 554 02 0 01 000000 NDCIC1: LOAD T2,NTCFRK,(T1) ;GET THE FORK NUMBER FOR THIS ENTRY
7466 006617'02 316 02 0 00 006610* CAMN T2,FORKX ;THIS FORKS ENTRY
7467 JRST [ SETZM (T1) ;CLEAR ENTRY
7468 MOVE T1,FORKX ;GET FORK INDEX
7469 SETZRO FKNTC,(T1) ;CLEAR THE ITEM IN FORK DATA BASE
7470 006620'02 254 00 0 00 010556' RETSKP]
7471 006621'02 302 01 0 00 000000# CAIE T1,NTCTAB+<NTCMAX-1> ;AT END OF TABLE
7472 006622'02 344 01 0 00 006616' AOJA T1,NDCIC1 ;NO - KEEP LOOKING
7473 006623'02 254 00 0 00 006614* RETSKP ;INDICATE SUCCESS EVEN WHEN NEVER SET
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 177
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7474 ;NDGVR - GET NSP VERSION INVORMATION
7475
7476 006624'02 256 04 0 00 010545' NDGVR: UMOVE T3,T2 ;GET THE USER BLOCK POINTER
7477 006625'02 201 02 0 00 000002 MOVX T2,2 ;GET NUMBER OF VERSIONS TO RETURN
7478 006626'02 256 04 0 00 010563' UMOVEM T2,.NDNVR(T3) ;STORE IN USER ARGUMENT BLOCK
7479 006627'02 256 04 0 00 010564' UMOVE T1,.NDCVR(T3) ;GET THE ADDRESS OF THE COMMUNICATION BLOCK
7480 006630'02 201 02 0 00 000003 MOVEI T2,COMVER ;COMMUNICATION VERSION NUMBER
7481 006631'02 256 04 0 00 010565' UMOVEM T2,.NDVER(T1) ;SAVE IN USER SPACE
7482 006632'02 201 02 0 00 000001 MOVEI T2,COMECO ;COMMUNICATION ECO
7483 006633'02 256 04 0 00 010566' UMOVEM T2,.NDECO(T1) ;SAVE IN USER SPACE
7484 006634'02 201 02 0 00 000000 MOVEI T2,COMCST ;GET THE CUSTOMER CHANGE NUMBER
7485 006635'02 256 04 0 00 010567' UMOVEM T2,.NDCST(T1) ;SAVE IN USER SPACE
7486
7487 ;NOW GIVE USER THE ROUTING VERSION INFORMATION
7488
7489 006636'02 256 04 0 00 010570' UMOVE T1,.NDRVR(T3) ;GET THE ADDRESS OF THE ROUTING BLOCK
7490 006637'02 201 02 0 00 000003 MOVEI T2,ROUVER ;ROUTING VERSION NUMBER
7491 006640'02 256 04 0 00 010565' UMOVEM T2,.NDVER(T1) ;SAVE IN USER SPACE
7492 006641'02 201 02 0 00 000000 MOVEI T2,ROUECO ;ROUTING ECO
7493 006642'02 256 04 0 00 010566' UMOVEM T2,.NDECO(T1) ;SAVE IN USER SPACE
7494 006643'02 201 02 0 00 000000 MOVEI T2,ROUCST ;GET THE CUSTOMER CHANGE NUMBER
7495 006644'02 256 04 0 00 010567' UMOVEM T2,.NDCST(T1) ;SAVE IN USER SPACE
7496 006645'02 254 00 0 00 006623* RETSKP ;RETURN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 178
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7497 ;INSNOD - ROUTINE TO INSERT NODE INTO TABLE OF KNOWN NODES
7498 ;
7499 ;ACCEPTS IN T1/ ADDRESS OF NODE BLOCK IN USER SPACE
7500 ; CALL INSNOD
7501 ;RETURNS: +1 FAILED
7502 ; +2 SUCCESS, NODE ADDED IF NOT ALREADY IN TABLE
7503
7504 006646'02 265 16 0 00 006250* INSNOD: ASUBR <INDBLK,INDSTA,INDADR,INDERR>
7505 006647'02 200 04 0 15 000001 MOVE T4,INDBLK ;GET ADDRESS OF NODE BLOCK
7506 006650'02 256 04 0 00 010571' UMOVE T2,.NDNAM(T4) ;GET ADDRESS OF NODE NAME STRING
7507 006651'02 320 16 0 00 006332* ERJMP R ;FAILED
7508 006652'02 322 02 0 00 006651* JUMPE T2,R ;FAIL IF NO NAME SPECIFIED
7509 006653'02 256 04 0 00 010572' UMOVE T1,.NDSTA(T4) ;GET NODE STATE
7510 006654'02 320 16 0 00 006652* ERJMP R ;FAIL IF NON-EX USER PAGE
7511 006655'02 202 01 0 15 000002 MOVEM T1,INDSTA ;SAVE STATE
7512 006656'02 201 01 0 00 000006 MOVX T1,2*<<NODMAX+12>/5> ;ASSIGN SPACE FOR NODE NAME
7513 006657'02 350 00 0 00 004471* NOINT
7514 006660'02 260 17 0 00 001305* CALL ASGSWP ;GET SOME SPACE
7515 006661'02 263 17 0 00 000000 RETBAD () ;FAILED
7516 006662'02 202 01 0 15 000003 MOVEM T1,INDADR ;SAVE ADDRESS OF BLOCK
7517 006663'02 200 02 0 15 000001 MOVE T2,INDBLK ;GET BACK ADDRESS OF NODE BLOCK
7518 006664'02 256 04 0 00 010522' UMOVE T2,.NDNAM(T2) ;GET ADDRESS OF NODE NAME STRING
7519 006665'02 320 16 0 00 006714' ERJMP INSERR ;FAIL IF NON-EX USER PAGE
7520 006666'02 201 03 0 00 000006 MOVX T3,NODMAX ;MAX # OF CHARS IN NODE NAME
7521 006667'02 260 17 0 00 000000* CALL CPYFU2 ;GET STRING FROM USER
7522 006670'02 254 00 0 00 006714' JRST INSERR ;ERROR - HANDLE
7523 006671'02 200 01 0 15 000003 MOVE T1,INDADR ;GET ADDRESS OF BUFFER
7524 006672'02 271 01 0 00 000003 ADDI T1,<NODMAX+12>/5 ;POINT TO SECOND SLOT
7525 006673'02 200 02 0 15 000001 MOVE T2,INDBLK ;GET ADDRESS OF BLOCK
7526 006674'02 256 04 0 00 010573' UMOVE T2,.NDNXT(T2) ;GET ADDRESS OF NEIGHBOR NODE NAME STRING
7527 006675'02 320 16 0 00 006714' ERJMP INSERR ;FAIL IF NON-EX USER PAGE
7528 006676'02 322 02 0 00 006703' JUMPE T2,INSND1 ;NO NEIGHBOR - NO NEED TO COPY
7529 006677'02 201 03 0 00 000006 MOVX T3,NODMAX ;MAX # OF CHARS IN NODE NAME
7530 006700'02 260 17 0 00 006667* CALL CPYFU2 ;GET STRING FROM USER
7531 006701'02 254 00 0 00 006714' JRST INSERR ;ERROR - HANDLE
7532 006702'02 476 00 0 00 000002 SETOM T2 ;SHOW THERE EXISTS A NEIGHBOR
7533 006703'02 200 01 0 15 000003 INSND1: MOVE T1,INDADR ;GET ADDRESS OF BUFFER
7534 006704'02 350 00 0 00 000001 AOS T1 ;POINT TO START OF MESSAGE
7535 006705'02 332 03 0 00 000002 SKIPE T3,T2 ;MAKE T3 ZERO IF NO NEIGHBOR
7536 006706'02 201 03 0 01 000003 MOVEI T3,<<NODMAX+12>/5>(T1) ;POINT TO NEIGHBOR NAME
7537 006707'02 200 02 0 15 000002 MOVE T2,INDSTA ;RESTORE STATE
7538 006710'02 260 17 0 00 000655' CALL ADDNOD ;ADD NODE TO TABLE OF KNOWN NODES
7539 006711'02 254 00 0 00 006714' JRST INSERR ;ERROR - HANDLE
7540 006712'02 256 00 0 00 005742* OKINT
7541 006713'02 254 00 0 00 006645* RETSKP ;DONE, RETURN
7542
7543 006714'02 202 01 0 15 000004 INSERR: MOVEM T1,INDERR ;SAVE ERROR CODE
7544 006715'02 200 01 0 15 000003 MOVE T1,INDADR ;ADDRESS OF BLOCK
7545 006716'02 260 17 0 00 001062* CALL RELMES ;RELEASE THE BLOCK
7546 006717'02 200 01 0 15 000004 INSER1: MOVE T1,INDERR ;RESTORE ERROR CODE
7547 006720'02 256 00 0 00 006712* OKINT
7548 006721'02 263 17 0 00 000000 RETBAD () ;FAIL
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 179
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7549 ; GET NETWORK TOPOPLOGY INFORMATION
7550
7551 006722'02 265 16 0 00 006526* NDGNT: STKVAR <GNTCNT>
7552 006723'02 000001 000001
7553
7554 ; SET UP TO LOOP OVER EACH NODE
7555
7556 006724'02 256 04 0 00 010550' UMOVE T4,2 ;GET ADDRESS OF USER'S ARGUMENT BLOCK
7557 006725'02 256 04 0 00 010574' UMOVE T1,.NDNND(T4) ;GET NUMBER OF WORDS IN BLOCK
7558 006726'02 270 01 0 00 000004 ADD T1,T4 ;COMPUTE LAST ADDRESS TO USE
7559 006727'02 202 01 0 17 777776 MOVEM T1,GNTCNT ;SAVE LAST ADDRESS IN USER SPACE TO STORE INTO
7560 006730'02 201 05 0 04 000002 MOVEI Q1,.NDBK1(T4) ;SET UP ADDRESS OF NEXT POINTER TO USE
7561 006731'02 200 02 0 00 001065* MOVE T2,NODTBL ;GET ADDRESS OF KNOWN NODE TABLE
7562 006732'02 322 02 0 00 006713* JUMPE T2,RSKP ;IF NO NODE LIST, THEN DONE
7563 006733'02 554 03 0 02 000000 HLRZ T3,(T2) ;GET NUMBER OF ITEMS IN KNOWN NODE TABLE
7564 006734'02 322 03 0 00 006732* JUMPE T3,RSKP ;IF NONE, THEN ALL DONE
7565 006735'02 200 06 0 00 000005 MOVE Q2,Q1 ;COPY STARTING ADDRESS OF NODE BLOCK POINTERS
7566 006736'02 270 06 0 00 000003 ADD Q2,T3 ;COMPUTE STARTING ADDRESS OF NODE BLOCK AREA
7567 006737'02 313 06 0 17 777776 CAMLE Q2,GNTCNT ;ENOUGH ROOM FOR ALL THE NODE BLOCK POINTERS ?
7568 006740'02 254 00 0 00 010575' RETBAD (ARGX04) ;NO, FAIL
7569 006741'02 256 04 0 00 010577' XCTU [HRLM T3,.NDNND(T4)] ;YES, STORE COUNT OF ITEMS RETURNED
7570 006742'02 210 07 0 00 000003 MOVN Q3,T3 ;COMPUTE -NUMBER OF NODES
7571 006743'02 514 07 0 00 000007 HRLZ Q3,Q3 ;FORM AOBJN POINTER TO NODE TABLE
7572 006744'02 541 07 0 02 000001 HRRI Q3,1(T2) ;FORM AOBJN POINTER TO FIRST ENTRY
7573 006745'02 201 01 0 00 000003 MOVX T1,.NDNBS ;GET SIZE OF A NODE BLOCK
7574 006746'02 256 04 0 00 010600' UMOVEM T1,.NDCNT(T4) ;STORE IN USER ARG BLOCK
7575
7576 ; LOOP OVER EACH KNOWN NODE
7577
7578 006747'02 350 00 0 00 006657* NOINT ;DO NOT PERMIT INTERRUPTS WITH LOCK LOCKED
7579 006750'02 352 00 0 00 000762* LOCK NODLOK ;LOCK THE TABLE
7580 006751'02 265 16 0 00 006343*
7581 006752'02 256 04 0 00 010601' NDGN10: UMOVEM Q2,(Q1) ;STORE POINTER TO NODE BLOCK
7582 006753'02 320 16 0 00 006776' ERJMP NDGNX ;FAILED, CLEAN UP AND RETURN ERROR
7583 006754'02 201 01 0 06 000003 MOVEI T1,.NDNBS(Q2) ;COMPUTE ADDRESS AFTER THIS NODE BLOCK
7584 006755'02 311 01 0 17 777776 CAML T1,GNTCNT ;ENOUGH ROOM FOR THIS NODE BLOCK AND NAME ?
7585 JRST [ MOVX T1,ARGX04 ;NO, GET "ARG BLOCK TOO SMALL" CODE
7586 006756'02 254 00 0 00 010602' JRST NDGNX ] ;RETURN ERROR TO USER
7587 006757'02 201 01 0 00 000000 MOVX T1,.NDSON ;GET NODE STATE ("ON" IF IN KNOWN NODE TABLE)
7588 006760'02 256 04 0 00 010604' UMOVEM T1,.NDSTA(Q2) ;STORE STATE IN NODE BLOCK IN USER SPACE
7589 006761'02 541 03 0 06 000003 HRRI T3,.NDNBS(Q2) ;GET ADDRESS WHERE NAME WILL GO
7590 006762'02 505 03 0 00 440700 HRLI T3,(POINT 7,) ;FORM POINTER TO NODE NAME DESTINATION
7591 006763'02 256 04 0 00 010605' UMOVEM T3,.NDNAM(Q2) ;STORE POINTER TO NODE NAME IN USER SPACE
7592 006764'02 554 01 0 07 000000 HLRZ T1,(Q3) ;GET ADDRESS OF NODE NAME STRING
7593 006765'02 505 01 0 00 440700 HRLI T1,(POINT 7,) ;FORM POINTER TO NODE NAME
7594 006766'02 260 17 0 00 007065' CALL STONOD ;STORE NODE NAME STRING IN USER SPACE
7595 006767'02 254 00 0 00 006776' JRST NDGNX ;FAILED
7596 006770'02 271 05 0 00 000001 ADDI Q1,1 ;INCREMENT ADDRESS OF NEXT NODE BLOCK POINTER
7597 006771'02 541 06 0 03 000001 HRRI Q2,1(T3) ;GET ADDRESS OF NEXT NODE BLOCK
7598 006772'02 253 07 0 00 006752' AOBJN Q3,NDGN10 ;LOOP OVER EACH NODE NAME TO BE RETURNED
7599
7600 ; HERE WHEN ALL INFO RETURNED TO USER - STORE COUNT OF ITEMS RETURNED
7601
7602 006773'02 476 00 0 00 006750* NDGN30: UNLOCK NODLOK ;UNLOCK THE NODE TABLE
7603 006774'02 256 00 0 00 006720* OKINT ;PERMIT INTERRUPTS AGAIN
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 179-1
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7604
7605 006775'02 254 00 0 00 006734* NDGN40: RETSKP ;DONE, RETURN SUCCESS
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 180
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7606 ; HERE ON AN ERROR
7607
7608 006776'02 476 00 0 00 006773* NDGNX: UNLOCK NODLOK ;UNLOCK NODE TABLE
7609 006777'02 256 00 0 00 006774* OKINT ;PERMIT INTERRUPTS AGAIN
7610 007000'02 263 17 0 00 000000 RET ;FAIL
7611
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 181
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7612 ; GET LINE INFORMATION INFORMATION
7613
7614 007001'02 265 16 0 00 006722* NDGLI: STKVAR <LITCNT>
7615 007002'02 000001 000001
7616
7617 ; SET UP TO LOOP OVER EACH NODE
7618
7619 007003'02 256 04 0 00 007253' XCTU [HRRZ T2,2] ;GET ADDRESS OF USER'S ARGUMENT BLOCK
7620 007004'02 256 04 0 00 010606' XCTU [HRRZ T1,.NDNLN(T2)] ;GET NUMBER OF WORDS IN BLOCK
7621 007005'02 270 01 0 00 000002 ADD T1,T2 ;COMPUTE LAST ADDRESS TO USE
7622 007006'02 202 01 0 17 777776 MOVEM T1,LITCNT ;SAVE LAST ADDRESS IN USER SPACE TO STORE INTO
7623 007007'02 201 05 0 02 000001 MOVEI Q1,.NDNLN+1(T2) ;SET UP ADDRESS OF NEXT POINTER TO USE
7624 007010'02 201 03 0 00 004756* MOVEI T3,DCN ;GET MAXIMUM NUMBER OF POSSIBLE LINES
7625 JUMPE T3,[SETZM T4 ;IF NO INFO, RETURN 0
7626 007011'02 322 03 0 00 010607' JRST NDLI40 ] ; IN THE USER ARGUMENT BLOCK
7627 007012'02 256 04 0 00 010550' UMOVE T4,2 ;GET ADDRESS OF USER'S ARGUMENT BLOCK
7628 007013'02 256 04 0 00 010577' XCTU [HRLM T3,.NDNLN(T4)] ;STORE COUNT OF ITEMS RETURNED
7629 007014'02 200 06 0 00 000005 MOVE Q2,Q1 ;COPY STARTING ADDRESS OF LINE BLOCK POINTERS
7630 007015'02 270 06 0 00 000003 ADD Q2,T3 ;COMPUTE STARTING ADDRESS OF LINE BLOCK AREA
7631 007016'02 313 06 0 17 777776 CAMLE Q2,LITCNT ;ENOUGH ROOM FOR ALL THE LINE BLOCK POINTERS ?
7632 007017'02 254 00 0 00 010575' RETBAD (ARGX04) ;NO, FAIL
7633 007020'02 210 07 0 00 000003 MOVN Q3,T3 ;COMPUTE -NUMBER OF LINES
7634 007021'02 514 07 0 00 000007 HRLZ Q3,Q3 ;FORM AOBJN POINTER TO LINE TABLE
7635
7636 ; LOOP OVER EACH KNOWN LINE
7637
7638 007022'02 256 04 0 00 010601' NDLI10: UMOVEM Q2,(Q1) ;STORE POINTER TO LINE BLOCK
7639 007023'02 201 01 0 06 000005 MOVEI T1,.NDLSZ+2(Q2) ;COMPUTE ADDRESS AFTER THIS LINE BLOCK
7640 007024'02 313 01 0 17 777776 CAMLE T1,LITCNT ;ENOUGH ROOM FOR THIS LINE BLOCK AND NAME ?
7641 007025'02 254 00 0 00 010575' RETBAD(ARGX04) ;NO, FAIL
7642 007026'02 201 01 0 00 000006 MOVEI T1,.BTSTS ;USE BOOT JSYS TO GET STATUS OF LINE
7643 007027'02 201 02 0 00 000003 MOVEI T2,3 ;HAVE IT PUT DATA IN AC'S
7644 007030'02 550 03 0 00 000007 HRRZ T3,Q3 ;GET LINE NUMBER
7645 007031'02 256 04 0 00 010605' UMOVEM T3,.NDLNM(Q2) ;SAVE THE PORT NUMBER
7646 007032'02 104 00 0 00 000562 BOOT
7647 ERJMP [ MOVE T1,LSTERR ;GET THE LAST ERROR MESSAGE
7648 007033'02 320 16 0 00 010611' RETBAD()]
7649 007034'02 201 03 0 00 000001 MOVEI T3,.NDLON ;TRANSLATE BOOT CODE TO NODE JSYS CODE
7650 007035'02 302 04 0 00 000001 CAIE T4,.VNMCB ;IS IT RUNNING MCB
7651 007036'02 306 04 0 00 000002 CAIN T4,.VNDDC ;NO - IS IT RUNNING DDCMP
7652 007037'02 254 00 0 00 007047' JRST NDLI11 ;YES - THEN IT IS ON
7653 007040'02 201 03 0 00 000003 MOVEI T3,.NDLCN ;IS IT CONTROLLER LOOPBACK?
7654 007041'02 306 04 0 00 000004 CAIN T4,.VNCNL ;???
7655 007042'02 254 00 0 00 007047' JRST NDLI11 ;YES
7656 007043'02 201 03 0 00 000004 MOVEI T3,.NDLCB ;CABLE LOOPBACK?
7657 007044'02 306 04 0 00 000005 CAIN T4,.VNCBL ;??
7658 007045'02 254 00 0 00 007047' JRST NDLI11 ;YES
7659 007046'02 201 03 0 00 000002 MOVEI T3,.NDLOF ;SEE IF IT'S OFF
7660 007047'02 256 04 0 00 010613' NDLI11: UMOVEM T3,.NDLST(Q2) ;STORE STATE IN LINE BLOCK IN USER SPACE
7661 007050'02 541 03 0 06 000003 HRRI T3,.NDLSZ(Q2) ;GET ADDRESS WHERE NAME WILL GO
7662 007051'02 505 03 0 00 440700 HRLI T3,(POINT 7,) ;FORM POINTER TO LINE NAME DESTINATION
7663 007052'02 256 04 0 00 010614' UMOVEM T3,.NDLND(Q2) ;STORE POINTER TO LINE NAME IN USER SPACE
7664 007053'02 550 01 0 00 000007 HRRZ T1,Q3 ;ITSNAM INDEX IS TWICE THE LINE NUMBER
7665 007054'02 242 01 0 00 000001 LSH T1,1
7666 007055'02 541 01 0 01 005005* HRRI T1,ITSNAM(T1) ;GET ADDRESS OF LINE NAME STRING
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 181-1
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7667 007056'02 505 01 0 00 440700 HRLI T1,(POINT 7,) ;FORM POINTER TO LINE NAME
7668 007057'02 260 17 0 00 007065' CALL STONOD ;STORE LINE NAME STRING IN USER SPACE
7669 007060'02 254 00 0 00 007064' JRST NDLI40 ;FAILED
7670 007061'02 271 05 0 00 000001 ADDI Q1,1 ;INCREMENT ADDRESS OF NEXT LINE BLOCK POINTER
7671 007062'02 541 06 0 03 000001 HRRI Q2,1(T3) ;GET ADDRESS OF NEXT LINE BLOCK
7672 007063'02 253 07 0 00 007022' AOBJN Q3,NDLI10 ;LOOP OVER EACH LINE NAME TO BE RETURNED
7673
7674 ; HERE WHEN ALL INFO RETURNED TO USER
7675
7676 007064'02 254 00 0 00 006775* NDLI40: RETSKP ;DONE, RETURN SUCCESS
7677
7678
7679
7680
7681 ;STONOD - ROUTINE TO STORE NODE NAME STRING IN USER SPACE
7682 ;
7683 ;ACCEPTS IN T1/ POINTER TO SOURCE STRING
7684 ; T3/ POINTER TO DESTINATION IN USER SPACE
7685 ; CALL STONOD
7686 ;RETURNS: +1 FAILED
7687 ; +2 SUCCESS
7688
7689 007065'02 STONOD:
7690
7691 ; LOOP OVER EACH CHARACTER IN NODE NAME
7692
7693 007065'02 134 02 0 00 000001 NDGN20: ILDB T2,T1 ;GET A BYTE
7694 007066'02 322 02 0 00 007072' JUMPE T2,NDGN25 ;IF NULL, ALL DONE
7695 007067'02 256 03 0 00 007667' XCTBU [IDPB T2,T3] ;STORE BYTE
7696 007070'02 320 16 0 00 006654* ERJMP R ;FAILED, RETURN ERROR
7697 007071'02 254 00 0 00 007065' JRST NDGN20 ;DO THEM ALL
7698 007072'02 256 03 0 00 007667' NDGN25: XCTBU [IDPB T2,T3] ;APPEND A NULL
7699 007073'02 320 16 0 00 007070* ERJMP R ;FAILED, RETURN ERROR
7700 007074'02 254 00 0 00 007064* RETSKP ;DONE, RETURN SUCCESS
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 182
NSPSRV MAC 6-Apr-82 10:58 The NODE JSYS
7701
7702 ; NDVFY - VERIFY NODE NAME IS IN MONITOR'S DATABASE OF KNOWN NODES
7703
7704 007075'02 265 16 0 00 005331* NDVFY: SAVEAC <Q1>
7705 007076'02 265 16 0 00 007001* STKVAR <<NDVNOD,WPN>>
7706 007077'02 000002 000002
7707
7708 ; GET NODE NAME FROM USER SPACE
7709
7710 007100'02 256 04 0 00 010615' UMOVE Q1,T2 ;GET ADDRESS OF USER ARGUMENT BLOCK
7711 007101'02 256 04 0 00 010616' UMOVE T1,.NDNAM(Q1) ;GET POINTER TO NODE NAME IN USER SPACE
7712 007102'02 201 02 0 17 777775 MOVEI T2,NDVNOD ;GET ADDRESS OF DESTINATION FOR NAME
7713 007103'02 260 17 0 00 006434* CALL PARNDU ;GET THE NODE NAME FROM USER SPACE
7714 007104'02 263 17 0 00 000000 RETBAD () ;FAILED
7715
7716 ; VERIFY THAT THE NODE IS KNOWN TO THE MONITOR
7717
7718 007105'02 541 01 0 17 777775 HRRI T1,NDVNOD ;GET ADDRESS OF NODE NAME
7719 007106'02 505 01 0 00 440700 HRLI T1,(POINT 7,) ;FORM POINTER TO NODE NAME
7720 007107'02 260 17 0 00 007114' CALL VFYNOD ;VERIFY NODE NAME
7721 007110'02 634 01 0 00 000001 TDZA T1,T1 ;FAILED, NOT A KNOWN NODE
7722 007111'02 205 01 0 00 400000 MOVX T1,ND%EXM ;SUCCESS, NODE IS KNOWN
7723 007112'02 256 04 0 00 010617' UMOVEM T1,.NDFLG(Q1) ;STORE RESULT IN USER SPACE
7724 007113'02 254 00 0 00 007074* RETSKP ;DONE, RETURN SUCCESS
7725
7726
7727
7728 ;VFYNOD - ROUTINE TO VERIFY THAT A NODE IS KNOWN TO THE MONITOR
7729 ;
7730 ;ACCEPTS IN T1/ POINTER TO NODE NAME
7731 ; CALL VFYNOD
7732 ;RETURNS: +1 FAILED, NODE IS NOT KNOWN TO THE MONITOR
7733 ; +2 SUCCESS, NODE IS IN MONITOR'S DATABASE
7734
7735 007114'02 352 00 0 00 006776* VFYNOD: LOCK NODLOK ;LOCK THE KNOWN NODE TABLE
7736 007115'02 265 16 0 00 006751*
7737 007116'02 200 02 0 00 000001 MOVE T2,T1 ;COPY POINTER TO NODE NAME
7738 007117'02 200 01 0 00 006731* MOVE T1,NODTBL ;GET ADDRESS OF KNOWN NODE TABLE
7739 007120'02 104 00 0 00 000537 TBLUK ;LOOK UP THE NODE NAME
7740 ERJMP [UNLOCK NODLOK ;FAILED, UNLOCK THE TABLE
7741 007121'02 320 16 0 00 010620' RET ] ;RETURN "NOT KNOWN"
7742 007122'02 476 00 0 00 007114* UNLOCK NODLOK ;UNLOCK THE TABLE
7743 007123'02 607 02 0 00 040000 TXNN T2,TL%EXM ;EXACT MATCH ?
7744 007124'02 263 17 0 00 000000 RET ;NO, RETURN "NOT KNOWN"
7745 007125'02 254 00 0 00 007113* RETSKP ;YES, RETURN "KNOWN NODE"
7746
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page 183
NSPSRV MAC 6-Apr-82 10:58 NTMAN% JSYS Functions
7747 SUBTTL NTMAN% JSYS Functions
7748
7749 ;Network Management's interface to the lower layers of DECnet architecture.
7750
7751 SWAPCD
7752 007126'02 .NTMAN::MCENT
7753 007126'02 254 00 0 00 010622' ITERR (ILINS2) ;Can't do this in this release
7754
7755 TNXEND
7756 END
NO ERRORS DETECTED
PROGRAM BREAK IS 000000
PSECT 1 BREAK IS 002466 FOR RSCOD
PSECT 2 BREAK IS 010673 FOR NRCOD
PSECT 3 BREAK IS 000142 FOR BGSTR
PSECT 4 BREAK IS 000016 FOR BGPTR
CPU TIME USED 03:03.149
201P CORE USED
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page S-1
NSPSRV MAC 6-Apr-82 10:58 SYMBOL TABLE
ACKBIT 010000 spd DCNX3 602022 sin LLDRB 040000 000000 spd LLQUN 377000 spd
ACKFLM 000004 spd DCNX4 602023 sin LLDRC 770000 spd LLRCT 070000 000000 spd
ACKIND 100000 spd DCNX5 602021 sin LLDRV 777777 777777 spd LLRFK 777777 spd
ACKLEN 000006 spd DCNX8 602025 sin LLDRW 007400 000000 spd LLRSN 177777 spd
ACKLSI 000020 spd DCNX9 602024 sin LLDSC 777777 777777 spd LLSABT 000011 spd
ADJBP 133000 000000 sin DESX9 601340 sin LLDSN 777700 000000 spd LLSCIR 000003 spd
APRCHN 000003 sin DILEN 000012 spd LLDWN 007777 777777 spd LLSCIS 000002 spd
ARGX02 601713 sin DLSCHN 000006 sin LLFDI 000010 000000 spd LLSDE 002000 000000 spd
ARGX04 601715 sin DTBYTM 400000 sin LLFDS 007777 777777 spd LLSDIQ 000006 spd
ARGX13 601726 sin DTMLEN 000006 spd LLFEM 000002 000000 spd LLSDIR 000007 spd
ARGX17 601742 sin EOFF 001000 000000 sin LLFIM 000040 000000 spd LLSDIS 000005 spd
ARGX19 602033 sin ERJMP 320700 000000 int LLFLI 040000 000000 spd LLSEGQ 000021 spd
B 000002 sin ERRF 000400 000000 sin LLFLO 020000 000000 spd LLSLIS 000001 spd
BLKF 000040 000000 sin F 000000 int LLFNA 000100 000000 spd LLSOB 777777 spd
BOOT 104000 000562 int FILATL 777777 spd LLFNM 000077 600000 spd LLSRUN 000004 spd
BUGMXR 000004 sin FILINP 020000 sin LLFNN 001000 000000 spd LLSTA 170000 000000 spd
CALL 260740 000000 int FILOUP 010000 sin LLFOB 000001 000000 spd LLSWG 037777 600000 spd
CALLRE 254000 000000 sin FKNTC 400000 000000 spd LLFRK 777777 000000 spd LLTRC 400000 000000 spd
CAPX1 600615 sin FLOHLD 000003 spd LLHLK 177777 spd LLTRM 100000 000000 spd
CAPX2 601231 sin FRKRUN 200000 000000 spd LLHNM1 000025 spd LLTRN 000020 000000 spd
CCLEN 000013 spd GJFX17 600075 sin LLHST 777777 777777 spd LLTSK 007777 777777 spd
CFORK 104000 000152 int GJFX18 600076 sin LLICT 777777 spd LLTTY 000037 777777 spd
CIMCNT 000010 spd GJFX45 602060 sin LLIDN 007777 spd LLUCT 770000 000000 spd
CIMMFL 000030 spd GJFX49 602065 sin LLIIC 777777 000000 spd LLUPL 007777 777777 spd
CIMSCT 000004 spd GJFX50 602205 sin LLIIN 777700 000000 spd LLUSGP 000040 spd
CISRVS 000001 spd GOKER2 602221 sin LLIMS 010000 000000 spd LLUSR 777777 777777 spd
CKPSIZ 000100 sin HB%1OK 200000 000000 sin LLINT 004000 000000 spd LLVEC 777777 777777 spd
CLSX1 600160 sin HB%2OK 100000 000000 sin LLISN 000077 770000 spd LNKPRI 000001 spd
CNMCF 000040 spd HB%HBM 040000 000000 sin LLLNK 777777 spd LSLEN 000007 spd
CNMCI 000020 spd HB%MUN 020000 000000 sin LLLOC 200000 000000 spd MAXDIF 000036 spd
CNMDC 000100 spd HB%PUB 400000 000000 sin LLLSA 000004 000000 spd MAXLC 000047 sin
CNMDI 000060 spd HB%WLK 010000 000000 sin LLLSC 000003 600000 spd MAXLW 000010 sin
CNMRFL 000010 spd IFIW 400000 000000 sin LLLWC 100000 000000 spd MAXNOD 000024 spd
CNTFLD 770000 000000 spd ILINS2 600771 sin LLMFC 140000 000000 spd MAXSEG 000011 spd
COMCST 000000 spd INIRCV 400000 000000 spd LLMIC 770000 000000 spd MAXSG1 000010 spd
COMECO 000001 spd INISNT 010000 000000 spd LLMQI 777000 000000 spd MAXSGQ 000010 spd
COMVER 000003 spd INTLEN 000012 spd LLMQO 000777 000000 spd MO%ABT 010000 000000 sin
COMX19 602135 sin IOMODE 000017 spd LLMSG 000005 spd MO%CDN 777000 000000 sin
CONLEN 000033 spd ISEGSZ 000403 sin LLMSI 000006 spd MO%CON 400000 000000 sin
CX 000016 int JSFRST 777777 sin LLMSM 177400 spd MO%DAV 777000 sin
CZ%ABT 004000 000000 sin LKISIZ 000011 spd LLNAM 777777 000000 spd MO%EOM 020000 000000 sin
DATBOM 000040 spd LKOBJS 000006 spd LLNDO 200000 000000 spd MO%INA 000777 000000 sin
DATEOM 000100 spd LKSIZE 000033 spd LLOCT 777777 spd MO%INT 002000 000000 sin
DATFLI 000020 spd LLACT 777777 777777 spd LLOMSG 000012 spd MO%LWC 001000 000000 sin
DATINT 000040 spd LLBFI 777777 777777 spd LLOPI 000400 000000 spd MO%SRV 200000 000000 sin
DATMFL 000000 spd LLBFO 777777 777777 spd LLOPT 007777 777777 spd MO%SYN 004000 000000 sin
DCCUR 777777 spd LLBOM 400000 000000 spd LLOPW 000200 000000 spd MO%WCC 040000 000000 sin
DCMAX 777777 000000 spd LLBPCT 000017 spd LLOUT 777777 777777 spd MO%WFC 100000 000000 sin
DCNX1 602020 sin LLBPI 777777 777777 spd LLPCT 770000 000000 spd MONX02 601730 sin
DCNX11 602026 sin LLBPTR 000016 spd LLPIC 000077 spd MONX03 601731 sin
DCNX12 602027 sin LLBRP 400000 000000 spd LLPII 007700 spd MONX06 602433 sin
DCNX13 602202 sin LLBSZ 770000 000000 spd LLPRT 300000 000000 spd MSBPTR 000003 spd
DCNX14 602203 sin LLCIL 400000 000000 spd LLPSW 007777 777777 spd MSCNT 007777 spd
DCNX15 602204 sin LLDED 400000 000000 spd LLQOU 000377 spd MSDAT 000002 spd
DCNX2 602122 sin LLDMT 000370 000000 spd LLQUE 400000 000000 spd MSDTC 000077 770000 spd
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page S-2
NSPSRV MAC 6-Apr-82 10:58 SYMBOL TABLE
MSFRK 104000 000312 int NSPX20 602377 sin SEGSIZ 000400 sin .DCX8 000010 sin
MSHDR 000007 spd NSPX21 602400 sin SF%DOK 200000 000000 sin .DCX9 000011 sin
MSLCL 040000 000000 spd NSPX22 602401 sin SFBSX2 600211 sin .ENTER 000000 ext
MSLLA 777774 spd NSPX26 602460 sin SIN 104000 000052 int .FP 000015 spd
MSLNK 777777 spd NTCCHN 777777 spd SMLSEG 000100 sin .FPAC 000005 spd
MSLSI 000001 spd NTCFRK 777777 000000 spd SPTDSW 000000 sin .GODNA 000021 sin
MSMFL 777700 000000 spd NTSHUT 100000 000000 spd STEPF 000001 000000 sin .GSSMB 000001 sin
MSMS1 010000 000000 spd NUMVAL 000005 sin STRTYP 000001 spd .ICAOV 000006 sin
MSNAK 020000 000000 spd OBJONE 000001 spd SWPERR 200000 000000 sin .ICNXP 000026 sin
MSPRT 300000 000000 spd OBJTSK 000000 spd T1 000001 int .INFIN 377777 777777 sin
MSPST 200000 000000 spd OBJTWO 000002 spd T2 000002 int .JBHSO 000075 sin
MSRLS 400000 000000 spd OBJZRO 000000 spd T3 000003 int .MOACN 000024 sin
MSSEG 007777 000000 spd OPNF 400000 000000 sin T4 000004 int .MOANT 000043 sin
MSTOM 000003 spd OPNX14 600135 sin TBADD 104000 000536 int .MOCC 000041 sin
MTOX1 601210 sin OPTSIZ 000005 spd TBDEL 104000 000535 int .MOCIA 000776 sin
NAMCN 000007 000000 spd OURCAP 000000 spd TBLUK 104000 000537 int .MOCLZ 000040 sin
ND%EXM 400000 000000 sin OURNED 000006 spd TL%EXM 040000 000000 sin .MONCI 000777 sin
ND%LPA 200000 000000 spd OURREQ 000006 spd UMODF 010000 000000 sin .MORAC 000032 sin
ND%LPR 400000 000000 spd OURTTL 566360 636266 spd UNLKF 020000 sin .MORCN 000034 sin
NDIFLG 000120 spd P 000017 int VERIF 000001 spd .MORDA 000033 sin
NDISIZ 000007 spd P3 000012 int VERTYP 000002 spd .MORHN 000026 sin
NODMAX 000006 spd PGSFT 000011 sin WPN 000002 spd .MORIM 000035 sin
NODX02 602207 sin PI 000004 sin WRTF 100000 000000 sin .MORLS 000025 sin
NODX03 602210 sin PICHOF 001000 sin WSEGSZ 000374 spd .MOROD 000037 sin
NOP 600000 000000 sin PICHON 002000 sin XCTBU 256140 000000 int .MORPW 000031 sin
NOSTR 777777 spd PIOFF 700600 000400 int XCTBUU 256340 000000 int .MORSS 000042 sin
NOTMCB 040000 000000 spd PION 700600 000200 int XCTU 256200 000000 int .MORTN 000027 sin
NOUT 104000 000224 int PRFXL 777777 000000 spd XMOVEI 415000 000000 int .MORUS 000030 sin
NRCOD 000000 ext PRFXV 777000 spd $NSPSR 000000 sen .MOSIM 000036 sin
NS%MSG 200000 000000 sin PSASN 000010 sin .A16 000016 spd .MOSNH 000044 sin
NS%TRN 400000 000000 sin PSDEL 000001 sin .ASSET 000000 ext .NDBK1 000002 spd
NSPEXT 000200 spd PSRDN 000002 sin .BTSTS 000006 sin .NDCHN 000000 sin
NSPNUL 000020 sin PSRIP 000006 sin .BTTPR 000005 sin .NDCNT 000001 sin
NSPOVR 000030 sin PSRPQ 000000 sin .DCX0 000000 sin .NDCST 000002 sin
NSPX00 602353 sin PSWIP 000004 sin .DCX1 000001 sin .NDCVR 000001 sin
NSPX01 602354 sin Q1 000005 int .DCX2 000002 sin .NDECO 000001 sin
NSPX02 602355 sin Q2 000006 int .DCX21 000025 sin .NDFLG 000001 sin
NSPX03 602356 sin Q3 000007 int .DCX24 000030 sin .NDLCB 000004 sin
NSPX04 602357 sin R 000000 ext .DCX3 000003 sin .NDLCN 000003 sin
NSPX05 602360 sin READF 200000 000000 sin .DCX32 000040 sin .NDLND 000002 sin
NSPX06 602361 sin REQVER 020000 000000 spd .DCX33 000041 sin .NDLNM 000000 sin
NSPX07 602362 sin RET 263740 000000 int .DCX34 000042 sin .NDLOF 000002 sin
NSPX08 602363 sin RNDF 020000 000000 sin .DCX35 000043 sin .NDLON 000001 sin
NSPX09 602364 sin ROUCST 000000 spd .DCX36 000044 sin .NDLST 000001 sin
NSPX10 602365 sin ROUECO 000000 spd .DCX37 000045 sin .NDLSZ 000003 sin
NSPX11 602366 sin ROUVER 000003 spd .DCX38 000046 sin .NDNAM 000000 sin
NSPX12 602367 sin RS%SE0 400000 000000 sin .DCX39 000047 sin .NDNBS 000003 sin
NSPX13 602370 sin RSCOD 000000 ext .DCX4 000004 sin .NDNLN 000000 sin
NSPX14 602371 sin RSKP 000000 ext .DCX40 000050 sin .NDNND 000000 sin
NSPX15 602372 sin RTFLG 000106 spd .DCX41 000051 sin .NDNOD 000000 sin
NSPX16 602373 sin RTHLEN 000004 spd .DCX42 000052 sin .NDNVR 000000 sin
NSPX17 602374 sin SC%MNT 040000 sin .DCX43 000053 sin .NDNXT 000002 sin
NSPX18 602375 sin SC%OPR 200000 sin .DCX5 000005 sin .NDPRT 000000 sin
NSPX19 602376 sin SC%WHL 400000 sin .DCX6 000006 sin .NDRVR 000002 sin
NSPX2 000002 sin SEGMSK 007777 spd .DCX7 000007 sin .NDSOF 000001 sin
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page S-3
NSPSRV MAC 6-Apr-82 10:58 SYMBOL TABLE
.NDSON 000000 sin
.NDSTA 000001 sin
.NDVER 000000 sin
.NPAC 000010 spd
.NSBFR 000002 sin
.NSCND 000001 sin
.NSDAT 000003 sin
.NSDIS 000007 sin
.NSINT 000005 sin
.NSOBE 000006 sin
.NSOMO 000001 sin
.NSOOK 000004 sin
.SAC 000016 sin
.SAV1 000000 ext
.SAV2 000000 ext
.SAV3 000000 ext
.SHESC 000002 sin
.SHTTY 000001 sin
.STKST 000000 ext
.TRSET 000000 ext
.VNCBL 000005 sin
.VNCNL 000004 sin
.VNDDC 000002 sin
.VNMCB 000001 sin
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page S-4
NSPSRV MAC 6-Apr-82 10:58 SYMBOL TABLE FOR PSECT RSCOD
ACKCHN 001172' CTLLCL 001032' INTOUT 001752' NDVER1 001622'
ACKDO 000534' DATINR 001157' ITRAP1 000000 ext NETMOV 000000 ext
ACKDON 001243' DCN 000000 ext ITSID 000000 ext NETWKF 000000 ext
ACKLI 001451' DCNCNT 000000 ext ITSNAM 000000 ext NMAPLK 000000 ext
ACKLOP 001214' DCNMSO 001026' ext ITSNUM 000000 ext NODINI 001504' int
ACKLP1 001210' DECOBJ 000000 ext JFN 000011 NODLOK 000000 ext
ACKNXT 001240' DEV 000013 JFN0 000000 ext NODNUM 000004' ext
ACKRMT 001454' DOATSQ 000000 ext JOBBIT 000000 ext NODTBL 000000 ext
ASCII1 000205' DONAC1 001265' JOBNO 000000 ext NODVER 001600'
ASCIIC 000167' DONAC2 001262' JSBFRE 000000 ext NOSK11 001712' ext
ASCIID 000203' DONACK 001256' KDPFLG 000655' ext NRCOD 000000 ext
ASCIIL 000177' DONNXT 001320' KDPTSK 000000 ext NSBP01 002216'
ASCIIZ 000166' DONRES 001316' LASTSK 000000 ext NSBP02 002217'
ASGJFR 000000 ext DONRQ 001324' LCKTST 000012' ext NSBP03 002224'
ASGPAG 000000 ext EDMS0 000000 ext LLBIT 000000 ext NSBP04 000273'
ASGRES 001735' ext EDMSH 000000 ext LLBITS 000000 ext NSBP05 002226'
ASGSWP 000000 ext F1 000014 LLFAIL 000122' NSBP06 000300'
ASMCB 000000 ext FFL 000000 ext LLHEAD 000077' ext NSBP07 000301'
BADSEG 000544' FILBCT 000000 ext LLLCKT 000065' NSBP08 000645'
BGCCHK 002417' ext FILBFI 000000 ext LLLKBD 002151' int NSBP09 001445'
BGCINF 000000 ext FILBFO 000000 ext LLLKU1 000100' NSBP10 000267'
BGPTR 000000 ext FILBYN 000000 ext LLLKU2 000110' NSPCH0 002133'
BGSTR 000000 ext FILBYT 000000 ext LLLKUH 000071' NSPCH7 002131' int
BITS 000000 ext FILCNT 000000 ext LLLKUP 000070' int NSPLPB 002434' ext
BLKASG 000000 ext FILDNM 000000 ext LLLLCK 000065' ext NSPMAX 000000 ext
BLKLK0 000040' FILLEN 000000 ext LOKLL 000007' int NSPMCB 000663' ext
BLKLK1 000047' FILLLB 000000 ext LPBSEG 001054' NSPMS1 002073'
BLKLLK 000022' int FILNEN 000000 ext LSTERR 000000 ext NSPMS2 002103'
BLKLOK 000031' int FILWND 000000 ext MAKEXT 000771' NSPMSE 002127'
BLKUK1 000062' FKJOB 000000 ext MAKFLG 000236' int NSPMSG 002042' int
BLKULK 000053' int FKQ2 000000 ext MAKMSG 000215' int NSPQ 001041' int
BLOCK1 000000 ext FLUSH 001404' int MAKTST 000303' int NSPRSN 002417' int
BLOCKM 000314' ext FORKX 000042' ext MAXBLK 000000 ext NSPSPC 001730' int
BLTUM1 000000 ext FPC 000000 ext MAXDSC 000020 spd NSPTST 000653'
BUGHLT 000000 ext GENWAT 000307' MAXEXP 000000 ext NTATB 400000 000000 spd
CAPENB 000000 ext GETEX1 000757' MAXHST 000006 sin NTATC 000077 000000 spd
CHKBRP 000423' GETEXT 000756' MAXLNK 001540' ext NTATE 777000 spd
CHKCON 000316' GETLLA 000677' MAXQ 000000 ext NTATR 000777 spd
CHKDCR 000406' int GETOKM 000000 ext MCBDTE 001576' ext NTCMAX 000000 ext
CHKEMP 000415' int GETRES 000124' int MENT0 000000 ext NTCTAB 000000 ext
CHKLLT 001720' ext GETTWO 000706' MKFL10 000242' OBJMAX 000000 ext
CHKLOK 000326' GOTSEG 000602' MKFL20 000253' OBJTBL 000000 ext
CHKPS1 001442' GTASC0 000721' MKFL30 000256' OKSK11 001721' ext
CHKPST 001432' GTASC1 000733' MLJFN 000000 ext ONEBYT 000207'
CHKQTA 000335' GTASCD 000740' MOVACK 000515' ONMSGQ 001037'
CHKRAW 000361' GTASCI 000720' MOVNAK 000502' ONMSQ 001070'
CHKSCP 000352' GTBNRY 000717' MOVSE1 000437' ONRAW1 001151'
CHKSCT 000344' GTOKPR 000000 ext MOVSE2 000476' ONRAW2 001150'
CHKSET 000370' GUDOBJ 000000 ext MOVSEG 000430' int ONRAW3 001155'
CHKSWD 000400' INIWAT 000000 ext MOVSEL 000465' ONRAWQ 001132'
CHKTTM 000000 ext INO020 001761' MRETN 000000 ext ONSEGQ 001065'
CKATSQ 000653' ext INO025 001772' MRETNE 000000 ext ONSGQ0 001066'
CMPSTR 000115' ext INSKED 000125' ext MSGQ 001037' ext OURCNT 000003' ext
CPYFU2 000000 ext INTDF 000045' ext NAKCNT 001275' ext OURNAM 001526' ext
CPYTU1 000000 ext INTDFF 000063' ext NAMINI 000000' int OURNUM 001524' ext
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page S-5
NSPSRV MAC 6-Apr-82 10:58 SYMBOL TABLE FOR PSECT RSCOD
OUTCHK 000670' SNDSE0 001074' $LLMQI 000023 spd $W2 000006 spd
OUTIVL 001747' ext SNDSE1 001063' $LLMQO 000023 spd $W3 000007 spd
OUTLOK 000000 ext SNDSE2 001055' $LLMSM 000007 spd ..0030 001362' spd
OUTQUE 000000 ext SNDSEG 001044' int $LLNDO 000037 spd ..JX1 004000 000000 spd
OUTTIM 001750' ext SNDSG0 001010' $LLOCT 000037 spd ..MSK 000000 spd
PARNDU 000000 ext SQIACK 000636' int $LLPRT 000010 spd ..NAC 000001 spd
PARNO1 000000 ext SQILS 000620' int $LLQOU 000023 spd ..NRGS 000000 spd
PBYTSZ 000000 ext STS 000010 $LLQUN 000023 spd .ASSET 002011' ext
PRUNE 001416' TELOBE 002011' int $LLRCT 000001 spd .PFACN 000000 ext
PRUNE1 001421' TELOOK 002000' $LLRFK 000022 spd .PFBOP 000000 ext
PRUNE2 001427' TIMWAT 000310' int $LLSTA 000002 spd .PFBPW 000000 ext
PRUNE3 001430' TODCLK 001746' ext $LLVEC 000034 spd .PFOPT 000000 ext
PSIRQ 001163' ext TSKMAX 000020 spd $LNKAD 000017 777773 spd .PFPWD 000000 ext
PUTLL1 000146' TTGETS 002021' int $LNKID 000017 777775 spd .PFUDT 000000 ext
PUTLLA 000134' TTREMS 002035' int $MBLOC 000017 777776 spd .RESNP 000000 ext
PUTLLR 000133' TTSETH 000000 ext $MSCNT 000002 spd .RESP1 001733' ext
PUTOND 001336' TWOBYT 000212' $MSDTC 000002 spd .RESP2 000126' ext
PUTONQ 001331' ULLCZQ 000665' ext $MSGBL 000015 000005 spd .RESP3 000124' ext
R 002002' ext ULOKLL 000014' int $MSGBY 000015 000002 spd .SAV1 002131' ext
RELFRE 000000 ext UNQSEG 001250' $MSGCN 000015 000001 spd .SAV11 001702' ext
RELJFN 000000 ext VERBDY 000615' $MSGDS 000015 000004 spd .SAV12 001157' ext
RELMES 000000 ext VERSEG 000562' $MSGFL 000017 777776 spd .SAV2 000721' ext
RELPAG 000000 ext $ACKCH 000017 777774 spd $MSGSG 000015 000004 spd .SAV22 000147' ext
RELRES 002353' ext $ACKNO 000015 000002 spd $MSGSR 000015 000003 spd .SAV3 001176' ext
RELSWP 000000 ext $ACKTY 000015 000003 spd $MSLCL 000001 spd .SAV44 000071' ext
RESEND 001340' $ASCCN 000017 777776 spd $MSLLA 000001 spd .STKST 001454' ext
RFTADN 000000 ext $INOLL 000015 000001 spd $MSLNK 000000 spd .TRSET 002042' ext
RSCOD 000000 ext $LASTM 000017 777776 spd $MSMFL 000002 spd
RSEND0 001354' $LLBFO 000035 spd $MSMS1 000001 spd
RSEND1 001355' $LLBLK 000015 000001 spd $MSNAK 000001 spd
RSEND2 001376' $LLBOM 000010 spd $MSPRT 000001 spd
RSEND3 001400' $LLBRP 000007 spd $MSPST 000000 spd
RSKP 002446' ext $LLCIL 000001 spd $MSRLS 000000 spd
RTHDC1 000164' $LLDMT 000020 spd $MSSEG 000001 spd
RTHDCI 000147' $LLDRC 000003 spd $MSTOM 000001 spd
SAVPQ 000000 ext $LLDRV 000033 spd $MVNLL 000017 777776 spd
SAVT 001745' ext $LLDRW 000020 spd $NAKFL 000015 000006 spd
SECALL 000000 ext $LLDSN 000011 spd $NODMS 000015 000034 spd
SEGPST 001165' $LLDUM 000015 000001 spd $NODPR 000015 000035 spd
SEGSZ 001536' ext $LLFEM 000002 spd $OBELL 000015 000001 spd
SFTADN 000000 ext $LLFNA 000002 spd $PRTCN 000015 000002 spd
SK2RET 000000 ext $LLFNN 000002 spd $PRTNO 000015 000001 spd
SKDOUT 001745' int $LLFRK 000003 spd $SAVFF 000017 777775 spd
SKPFLD 000744' $LLHLK 000004 spd $SAVLL 000015 000001 spd
SMSGQ 002142' ext $LLHO 000017 777774 spd $SAVMS 000015 000002 spd
SNDACK 001444' $LLIDN 000011 spd $SAVPS 000017 777776 spd
SNDBA1 001126' $LLIIN 000004 spd $SNDLB 000015 000001 spd
SNDBAD 001127' $LLINT 000002 spd $SNDLC 000015 000002 spd
SNDCHK 000260' int $LLISN 000011 spd $SNDLM 000015 000004 spd
SNDCTL 001001' $LLLNK 000002 spd $SNDLT 000015 000003 spd
SNDLCL 001076' $LLLOC 000002 spd $SNLBL 000015 000001 spd
SNDLS 001632' int $LLLSA 000020 spd $SNMSG 000015 000002 spd
SNDLS1 001720' $LLLSC 000020 spd $SQALL 000017 777776 spd
SNDLSL 001702' $LLMFC 000007 spd $SQLLL 000017 777776 spd
SNDMSG 001012' $LLMIC 000015 spd $W1 000005 spd
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page S-6
NSPSRV MAC 6-Apr-82 10:58 SYMBOL TABLE FOR PSECT NRCOD
ABTMSG 006266' CHKCHL 002646' DCDCS 005623' ERRLEN 000027 spd
ACKCIS 005527' CHKFRE 004240' DCMSG 005706' ERRTAB 004401'
ACKINV 005542' CHKFRN 005655' DCMSG1 005713' EXTSET 000101' int
ACKMS1 005514' CHKIDL 005725' DCMSG4 005712' FFL 004431' ext
ACKMSG 005503' CHKILL 002661' DCN 007010' ext FILBCT 010023' ext
ACKRUN 005545' CHKLLT 006101' ext DCNCNT 007454' ext FILBFI 010112' ext
ACKSTA 004347' CHKPIP 001120' DCNDTB 000033' int FILBFO 010036' ext
ADDINT 000765' CHKTTM 007300' ext DCNNAM 000226' int FILBYN 010055' ext
ADDIT 000711' CHNOK1 006576' DCNOBJ 000247' FILBYT 010054' ext
ADDIT1 000716' CHNOK2 006603' DCNOP0 002272' FILCNT 010061' ext
ADDLNK 001735' CICOR 005245' DCNOP2 002274' FILDNM 002427' ext
ADDND1 000702' CICOR1 005254' DCNOP3 002313' FILLEN 010007' ext
ADDNOD 000655' CIDC 005437' DCNOP7 002314' FILLI1 005274'
ADDONF 007505' int CIDCLC 005451' DCNOP8 002316' FILLI2 005267'
ADDTEL 000725' CIDCT 005442' DCNOPN 000332' int FILLIN 005260'
ADIN10 001014' CIDON 005242' DCNSET 000075' int FILLLB 010074' ext
ASGJFR 004501' ext CIMSG 005054' DCREC 004325' FILNEN 002014' ext
ASGPAG 000131' ext CIPSRV 006317' DCRUN 005735' FILWND 010020' ext
ASGRES 001406' ext CLENUP 000370' DECOBJ 000206' ext FKJOB 002044' ext
ASGSWP 006660' ext CLRBLK 001652' DEDCOR 005022' FKQ2 010561' ext
ASGWDW 000115' int CLRFLO 001347' int DEDMC1 005011' FNDATR 002427'
ASGWRT 000127' CLZABT 003326' DEDMC2 005052' FORKX 010557' ext
ASMCB 000451' ext CLZCMS 003305' DEDMCB 004753' int FPC 004432' ext
ATTRTB 002003' CLZDI 003265' DELBLK 001612' FRELNK 001272'
BADMSG 005242' CLZDIN 007771' int DELDNE 001565' GETATR 002431'
BADSTR 004741' CLZDIQ 003314' DELDWN 001560' GETBLK 001300'
BADUDT 005455' CLZDIR 003326' DELINS 001546' GETBSZ 001355' int
BGCCHK 010174' ext CLZDN1 003341' DELNO1 001550' GETMXS 001364' int
BGCINF 010171' ext CLZDON 003334' DELNOD 001531' int GETOKM 007236' ext
BGPTR 000000 ext CLZDQ1 003371' DELREL 001614' GETSTA 001357' int
BGSTR 000000 ext CLZEMP 003313' DIABT 005610' GETTS1 001240'
BININ 002401' CLZRUN 003264' DIMSG 005560' GETTSK 001231'
BININ1 002406' CLZSDI 003353' int DIMSG1 005565' GOTMCB 004770'
BININ2 002410' CLZSTA 004336' DIMSG2 005617' GTOKPR 000000 ext
BININ3 002415' CLZWDC 003322' DIMSG3 005622' GTSBLK 002111'
BININ4 002422' CMPLEN 000146' int DIREC 004314' GUDOBJ 007371' ext
BINXT 002424' CMPRLP 002326' DOACT 002225' HOSTNL 005172'
BITS 004770' ext CMPSTR 005255' ext DOATSQ 004450' ext ILLSTR 010171' int
BLKASG 001316' ext CNFCOM 003707' DOMSG 004571' ININOD 000636'
BLOCK1 007115' ext CNTLOP 001765' DOMSG1 004537' INIWAT 000000 ext
BLOCKM 004242' ext COMPAR 002322' DOMSGQ 004521' INMENU 002242'
BLTUM1 006546' ext COMPUT 000135' DOOPT 002237' INS010 006114'
BUGHLT 007505' ext CONIN1 005315' DOPSWD 002224' INS020 006151'
BYTGUD 000304' CONINT 005300' DOSPW1 002217' INS030 006162'
CAPENB 007430' ext CONREJ 005606' DOSRV1 002360' INSATR 002177'
CCDON 005435' CPYFU2 006700' ext DOSRVS 002335' INSER1 006717'
CCGUD 005402' CPYTU1 006446' ext DSCDON 002160' INSERR 006714'
CCGUD1 005411' CRTLNK 002115' int DSCMOV 005204' INSND1 006703'
CCGUD2 005427' CTLMSG 004602' DSCMV1 005240' INSNOD 006646'
CCJEC1 005433' DATDON 005773' DSCNO 005105' INTDF 006747' ext
CCJECT 005432' DATMS1 005752' DSCNO1 005131' INTDFF 010215' ext
CCMSG 005357' DATMSG 005744' DSCNO2 005141' INTINT 002662'
CCMSG1 005364' DATRUN 005765' DSCNUL 002134' INTLS 006004'
CCREC 004303' DATSTA 004360' EDMS0 010410' ext INTLS1 006022'
CHANOK 006574' DCABT 005730' EDMSH 004456' ext INTRUN 006000'
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page S-7
NSPSRV MAC 6-Apr-82 10:58 SYMBOL TABLE FOR PSECT NRCOD
INTSET 006107' int MSGQ 004527' ext NETCL1 003255' NTCP11 002607'
INTT10 005335' MSGTYP 004576' NETCLZ 003252' int NTCPY 002455'
INTT20 005354' MSTSN1 003051' NETDIR 000105' int NTCPY1 002475'
INTTST 005331' MSTSN2 003053' NETDSH 000160' NTCPY2 002501'
INVHDR 004613' MTASGN 000506' NETEXT 000263' NTCPYB 002574'
INVPRC 005066' MTDON 002544' NETIN2 003452' NTCTAB 006615' ext
ITRAP1 010623' ext MTGSS 003201' int NETINP 003426' int NTMCZ0 003155'
ITSID 004700' ext MTOBJ 002556' NETMOV 004167' ext NTMERR 000523'
ITSNAM 007055' ext MTOBJ1 002567' NETOUP 003473' int NTMTCT 000021 spd
ITSNUM 004634' ext MTRDCK 002561' NETSCM 003462' NTMTCZ 003133' int
JFN0 000000 ext MTRDI1 002752' NETSET 003773' NTMTGD 002611'
JOBBIT 004440' ext MTRDI2 002754' NETSQ1 000571' int NTMTO1 000420'
JOBNO 002046' ext MTRDIN 002701' int NETSQI 003731' int NTMTOP 000410'
JSBFRE 004514' ext MTRNCK 002564' int NETSQO 000563' NTMTTB 000427'
KDPFLG 004443' ext MTSETC 002616' int NETSQR 000576' NTMVO1 003245'
KDPTSK 004444' ext MTSETD 002635' int NETSR1 000603' int NTMVOP 003223' int
LASTSK 001241' ext MTSETI 002626' int NETUIN 000547' int NTRAC 002552' int
LLBIT 000000 ext MTSNIN 002765' int NETUOU 000533' int NTRCB1 003073'
LLBITS 000000 ext MVBNR1 002375' NETWKF 010430' ext NTRCB2 003100'
LLHEAD 007507' ext MVBNRY 002372' NMAPLK 000614' ext NTRCB3 003114'
LLINI1 001076' MVM010 004113' NODATA 005237' NTRCN 002534' int
LLINIT 001073' MVMX 004207' NODDEL 001023' NTRCOB 003064' int
LLLLCK 000611' ext MVMY 004210' NODDL1 001033' NTRDA 002613' int
LNSPSR 007127' NABROK 001064' NODDL2 001045' NTRFCI 003206'
LOKPIP 001102' int NDBDEL 007340' int NODDL3 001053' NTRHN 002460' int
LSIDN1 006100' NDCIC 006615' NODESC 002050' NTRJCT 003124'
LSIDON 006101' NDCIC1 006616' NODLOK 010620' ext NTRPW 002570' int
LSINT1 006025' NDCLP 006503' NODTAB 006406' NTRTN 002454' int
LSMSG 006044' NDFLP 006522' NODTBL 007336' ext NTRUS 002546' int
LSMSG1 006057' NDGLI 007001' NOOOBJ 002025' NTSNH 000473'
LSTERR 010611' ext NDGLN 006442' NOSK11 010122' ext NTSTS 000527'
MAKINP 002446' int NDGN10 006752' NOUSER 005227' OBJENT 000005 spd
MAKLN1 001713' NDGN20 007065' NSPBPN 010174' int OBJINI 001142'
MAKLNK 001710' NDGN25 007072' NSPER1 004372' OBJLO1 001163'
MAKPTR 002437' NDGN30 006773' NSPER2 004377' OBJLO2 001164'
MAXBLK 001302' ext NDGN40 006775' NSPERR 004371' int OBJLOK 001153' int
MAXEXP 001724' ext NDGNM 006457' NSPFRK 007314' int OBJMAX 001173' ext
MAXLNK 001272' ext NDGNT 006722' NSPINI 000611' int OBJPRO 001145'
MAXNTA 000006 spd NDGNX 006776' NSPLNQ 007473' int OBJSFD 001223'
MAXQ 004437' ext NDGVR 006624' NSPLPB 010323' ext OBJSN1 001216'
MCBCQ 004460' NDINIT 007317' int NSPMAX 010272' ext OBJSN2 001210'
MCBCQ1 004511' NDLI10 007022' NSPMCB 004771' ext OBJSND 001203'
MCBCQ2 004467' NDLI11 007047' NSPPHV 007351' int OBJSNO 001214'
MCBDE1 004765' NDLI40 007064' NSPPWA 007342' int OBJSRC 001176' int
MCBDED 004763' NDSIC 006561' NSPRTH 010147' int OBJTBL 007356' ext
MCBDTE 010161' ext NDSLN 006424' NSPSTR 010167' int OKRET 000071'
MENT0 004433' ext NDSLP 006463' NSPTSK 004441' OKSK11 010126' ext
MLJFN 000000 ext NDSN10 006552' NTACPT 003164' int OPENX1 001502'
MOVMSG 004102' NDSNM 006450' NTACPY 002467' OPNDFT 001510'
MOVST0 001264' NDSNT 006526' NTANT 000450' OPNDNC 000270' int
MOVST1 001321' int NDTLEN 000016 spd NTCIN1 000727' OPNDWK 001366' int
MOVST2 001325' NDVFY 007075' NTCIN2 000734' OPNEXT 001472'
MOVSTR 001260' int NETAT1 001776' NTCMAX 000000 ext OPNFAI 001454'
MRETN 006405' ext NETAT2 001755' NTCOFF 006615' int OPNIWK 001372' int
MRETNE 007244' ext NETATR 001753' int NTCP1 002605' OPNSRC 000271' int
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page S-8
NSPSRV MAC 6-Apr-82 10:58 SYMBOL TABLE FOR PSECT NRCOD
OPNSWK 001370' int RMQ020 001637' SQODIR 003647' $CNTST 000017 777775 spd
OPNUNQ 002071' RMQ030 001646' SQODIS 003644' $CPLCN 000017 777776 spd
OPNWRK 001374' RSKP 010562' ext SQOEOF 003652' $CRLAT 000017 777776 spd
OURCNT 007574' ext SAVLLB 000313' SQOLIS 003635' $CRLCI 000017 777775 spd
OURNAM 007566' ext SAVPQ 006340' ext SQOOTR 004261' int $CRLCN 000017 777774 spd
OURNUM 006460' ext SAVT 006107' ext SQOSTA 004250' int $CRLDS 000017 777767 spd
OUTCK0 006346' SECALL 004434' ext SRCFAL 002103' $CRLHS 000017 777771 spd
OUTCK1 006371' SEGERR 004236' SRCNAM 000171' int $CRLOB 000017 777773 spd
OUTIVL 000616' ext SEGSZ 002353' ext SRCNOB 000212' $DCCUR 000000* spd
OUTLOK 010500' ext SETCNT 006300' SRCOPN 002011' int $DCMAX 000000* spd
OUTQUE 010512' ext SETEOM 001361' int SRNSET 000066' int $DEDDU 000015 000003 spd
OUTR00 003542' SETFLO 001352' int SRVDTB 000000' int $DEDPR 000015 000002 spd
OUTR0E 003535' SETIBF 006243' STMXDF 000322' int $DELHL 000017 777776 spd
OUTRR 003505' int SETOPI 001331' int STONOD 007065' $DIFLG 000015 000004 spd
OUTRR1 003543' SETOPW 001334' int STRMS1 004672' $DISRS 000015 000002 spd
OUTRR2 003547' SFTADN 000000 ext STRMS6 004723' $DIUDA 000015 000003 spd
OUTRR3 003545' SHTLK1 005641' STRMS7 004727' $EOFF 000010 spd
OUTRR5 003601' SHUT10 005653' STRMSG 004620' $ERRF 000010 spd
OUTRR7 003607' SHUTLK 005642' STRSAV 002245' int $FILAT 000000* spd
OUTSND 006340' SK2RET 000110' ext TELDAT 006171' $FILIN 000010 spd
OUTTIM 006341' ext SKPFLI 001343' int TELDIS 005661' $FILOU 000010 spd
OUTWAT 003546' SKPFLO 001337' int TELINT 002672' $FKNTC 000000* spd
OUTWR0 003620' SNDCC 003654' TLDT10 006204' $GNTCN 000017 777776 spd
OUTWR1 003626' SNDDC 005464' TODCLK 001723' ext $INAAT 000017 777775 spd
OUTWR2 003627' SNDDI 003374' TRNM10 006227' $INACN 000017 777773 spd
OUTWRD 003617' SNDDI1 003424' TRNMSG 006224' $INALL 000017 777776 spd
PARNDU 007103' ext SNINT 002777' int TSKCHK 001516' $INAPN 000017 777774 spd
PARNO1 000245' ext SQI1 003736' TSKINI 004430' $INDAD 000015 000003 spd
PBYTSZ 000306' ext SQI11 003747' TSKLOK 001253' $INDBL 000015 000001 spd
PROOFF 004744' SQI2 004023' TTSETH 000503' ext $INDER 000015 000004 spd
PRSNAM 000230' int SQI22 004013' TURNON 006306' $INDST 000015 000002 spd
PSIRQ 005314' ext SQI23 004012' ULKPIP 001130' int $INSCN 000017 777775 spd
R 010451' ext SQI3 004151' ULKRET 002714' $INSFL 000017 777774 spd
RDINB 002763' SQI4 004156' ULLCZQ 010125' ext $INSLL 000017 777776 spd
RDINT 002721' int SQICNF 003767' VERSET 000111' int $IOMOD 000010 spd
RDINT1 002727' SQIDIR 003760' VFYNOD 007114' $LITCN 000017 777776 spd
RDINX 002762' SQIEM1 004047' WATBLK 003756' $LKPCO 000015 000001 spd
RDSTS 002504' int SQIEMP 004045' $ADHLD 000015 000004 spd $LKPLL 000015 000002 spd
RELBLK 001313' SQIMOV 004164' $ADIBL 000015 000004 spd $LLACT 000036 spd
RELFRE 004516' ext SQIMV1 004172' $ADINB 000015 000003 spd $LLADD 000015 000001 spd
RELJFN 000471' ext SQINOB 004076' $ADIPT 000015 000001 spd $LLBFI 000041 spd
RELLNK 005742' SQISN2 004064' $ADIST 000015 000002 spd $LLBPI 000042 spd
RELMES 006716' ext SQISN3 004073' $ADNAB 000015 000003 spd $LLBSZ 000020 spd
RELPAG 007163' ext SQISN4 004070' $ADNAD 000015 000001 spd $LLDED 000000 spd
RELRES 005243' ext SQISNA 004061' $ADNST 000015 000002 spd $LLDRB 000037 spd
RELSWP 001320' ext SQISTA 004272' $BLKF 000010 spd $LLDSC 000034 spd
REMNDX 000762' SQIWR1 004216' $CDIBU 000015 000004 spd $LLDWN 000001 spd
REMNOD 000740' SQIWR2 004223' $CDICN 000015 000003 spd $LLFDI 000002 spd
REMQUE 001622' SQIWR3 004234' $CDIFL 000015 000002 spd $LLFDS 000015 spd
RFTADN 000000 ext SQIWRD 004213' $CDILL 000015 000001 spd $LLFIM 000002 spd
RJECT 005625' SQOABT 003643' $CDIOP 000017 777773 spd $LLFLI 000010 spd
RJECT1 005632' SQOBAD 003677' $CLNER 000017 777776 spd $LLFLO 000010 spd
RLBLK 001503' SQOCN1 003720' $CLRLL 000015 000001 spd $LLFNM 000004 spd
RLBLK1 001504' SQOCN2 003703' $CNFLN 000017 777776 spd $LLFOB 000002 spd
RMQ010 001630' SQOCNF 003637' $CNTLL 000017 777776 spd $LLHST 000014 spd
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page S-9
NSPSRV MAC 6-Apr-82 10:58 SYMBOL TABLE FOR PSECT NRCOD
$LLICT 000043 spd $NTATC 000000 spd ..CSC 000004 spd
$LLIIC 000043 spd $NTATE 000000 spd ..CSN 000003 spd
$LLIMS 000010 spd $NTATR 000000 spd ..GOKN 000001 spd
$LLLWC 000001 spd $NTCCH 000000 spd ..IFT 000000 spd
$LLMSG 000017 777776 spd $NTCFR 000000 spd ..MX1 400000 000000 spd
$LLNAM 000033 spd $NTCIB 000015 000010 spd ..MX2 000001 spd
$LLOPI 000002 spd $NTCNT 000015 000001 spd ..NS 000001 spd
$LLOPT 000010 spd $NTDDS 000015 000004 spd ..NV 000005 spd
$LLOPW 000002 spd $NTDSC 000015 000004 spd ..PST 000003 spd
$LLOUT 000040 spd $NTDSS 000015 000005 spd ..STKN 000002 spd
$LLPCT 000037 spd $NTHSC 000015 000007 spd ..STKQ 000003 spd
$LLPIC 000003 spd $NTHST 000015 000006 spd ..STKR 000010 spd
$LLPII 000003 spd $NTOBJ 000015 000003 spd ..TRR 000010 spd
$LLPSW 000037 spd $NTPNT 000015 000002 spd ..TSA1 000000000000# pol
$LLQUE 000002 spd $NTRCB 000017 777776 spd ..TX1 040000 000000 spd
$LLRSN 000020 spd $OBJPT 000015 000001 spd ..TX2 000001 spd
$LLSDE 000002 spd $OPNF 000010 spd .AF 000001 spd
$LLSOB 000033 spd $OPTDA 000017 777773 spd .AM 010000 000000 spd
$LLSWG 000007 spd $PRFXL 000000 spd .ASSET 006646' ext
$LLTRC 000037 spd $PRFXV 000000 spd .N1 000000 spd
$LLTRM 000037 spd $RDICN 000017 777776 spd .NAC 000003 spd
$LLTRN 000002 spd $RDIPT 000017 777775 spd .NODE 006376' int
$LLTSK 000013 spd $RDIRT 000017 777774 spd .NTMAN 007126' int
$LLTTY 000024 spd $READF 000010 spd .PFACN 002225' ext
$LLUCT 000013 spd $RMNNA 000015 000001 spd .PFBOP 007560' ext
$LLUPL 000000 spd $RNDF 000010 spd .PFBPW 007552' ext
$LLUSR 000035 spd $SAVAD 000015 000001 spd .PFOPT 002232' ext
$MCBCL 000017 777776 spd $SAVBL 000015 000002 spd .PFPWD 002217' ext
$MDPTR 000017 777775 spd $SAVBS 000015 000004 spd .PFUDT 002212' ext
$MLODR 000017 777774 spd $SAVER 000015 000002 spd .RESNP 001405' ext
$MSGDD 000015 000010 spd $SAVOP 000015 000003 spd .RESP3 001404' ext
$MSGDM 000015 000027 spd $SAVST 000015 000003 spd .SAV1 007075' ext
$MSGHS 000015 000015 spd $SBFLL 000015 000001 spd .SAV2 003252' ext
$MSGLC 000015 000062 spd $SIMCN 000017 777773 spd .SAV3 003223' ext
$MSGLL 000015 000006 spd $SIMLL 000017 777776 spd .STKST 007076' ext
$MSGOB 000015 000007 spd $SIMPT 000017 777774 spd .TRSET 007151' ext
$MSGSD 000015 000022 spd $SIMRT 000017 777775 spd
$MSGSO 000015 000021 spd $SNTBL 000017 777753 spd
$MSGW1 000015 000017 spd $SNTCN 000017 777752 spd
$MSGW2 000015 000020 spd $SQICN 000017 777776 spd
$MSIZE 000017 777776 spd $SSVDS 000017 777773 spd
$MVMBF 000017 777775 spd $SSVHS 000017 777775 spd
$MVMCN 000017 777774 spd $STEPF 000014 spd
$MVMFL 000017 777772 spd $TDSLL 000017 777776 spd
$MVMLL 000017 777776 spd $TDSST 000017 777775 spd
$MVMMA 000017 777773 spd $TLDCN 000017 777775 spd
$MVSPT 000017 777776 spd $TLDFL 000017 777774 spd
$NAMCN 000000 spd $TLDLL 000017 777776 spd
$NDVNO 000017 777775 spd $TMSLL 000017 777776 spd
$NETCH 000015 000001 spd $TSKBL 000015 000002 spd
$NMVCN 000017 777776 spd $UNLKF 000014 spd
$NMVPT 000017 777775 spd $WAITE 000015 000001 spd
$NODNA 000017 777775 spd $WRTF 000010 spd
$NSPNU 000010 spd ..0016 004045' spd
$NTATB 000000 spd ..ACT 000000 spd
NSPSRV - Network Services Protocol Interface to TOPS20 MACRO %53B(1215) 16:43 15-Jun-82 Page S-10
NSPSRV MAC 6-Apr-82 10:58 SYMBOL TABLE FOR PSECT BGSTR
..0001 000000' spd
..0002 000004' spd
..0003 000016' spd
..0004 000027' spd
..0005 000036' spd
..0006 000043' spd
..0007 000051' spd
..0010 000056' spd
..0011 000063' spd
..0020 000071' spd
..0021 000100' spd
..0022 000112' spd
..0023 000120' spd
..0032 000124' spd
ABTMSG 5573 5811 5816 5841 5859 5870 5875 5883 6092#
ACKBIT 4094 4525 5554 6470 7232
ACKCHL 6465
ACKCHN 4136 4178 5814 6458# 6471
ACKCIS 4625 5552#
ACKDO 4118 4130# 5572
ACKDON 6461 6476 6503 6508#
ACKFLM 4020 6408 6763 7202 7204
ACKIND 4175 4389 5812 6770
ACKINV 5553 5556 5561 5564#
ACKLEN 6753
ACKLI 5828 5847 5854 6744#
ACKLOP 6484# 6502 6507
ACKLP1 6475# 6500
ACKLSI 4134 5560 6766 7202
ACKMS1 5534# 5544
ACKMSG 4883 5525#
ACKNO 6465 6700
ACKNXT 6486 6493 6505#
ACKRMT 6704 6708 6751#
ACKRUN 4627 5570#
ACKSTA 4624# 5548
ACKTYP 6700
ADDINT 953 1091# 4998 5061
ADDIT 992 1018#
ADDIT1 1019 1025#
ADDLNK 1971 1976 2122 2130#
ADDND1 998 1005#
ADDNOD 969# 1116 7538
ADDONF 2139# 2139 2140
ADDTEL 977 1037#
ADHLD 969
ADIBLK 1091
ADIN10 1117 1123#
ADINBR 1091
ADIPTR 1091
ADISTA 1091
ADNABR 969
ADNADR 969
ADNSTA 969
ARGX02 7270
ARGX04 7568 7585 7632 7641
ARGX13 2954 7430 7432 7436
ARGX17 7403 7407
ARGX19 7356 7373
ASCCNT 2616
ASCII1 2625 2629#
ASCIIC 2614#
ASCIID 2623 2626#
ASCIIL 2622# 2630
ASCIIZ 2347 2356 2397 2409 2415 2428 2603 2605 2613# 6804
ASGJFR 4763
ASGPAG 416 424
ASGRES 1667 1814 6988
ASGSWP 943 1097 1640 7514
ASGWDW 412# 665 2241
ASGWRT 415 422#
ASMCB 751
ATTRTB 2160 2164 2165 2178 2188# 2194
B 7310
BADMSG 4858 4861 4868 4872 4874 4885 4894 4895 5012 5123 5268# 5401 5526 5528
5585 5719 5770 5773
BADSEG 4033 4049 4119 4141#
BADSTR 4917 4919 4922 4924 4930 4933 4941 4946 4949 4951 4956 4964 4976 4984
5006#
BADUDT 5247 5251 5256 5263 5453 5492#
BGCCHK 1184 1230 1342 1390 2038 4905 5040 6627
BGCINF 936 3450 5003 5011
BININ 2407 2426 2653#
BININ1 2658# 2669
BININ2 2660# 2664
BININ3 2661 2665#
BININ4 2666 2670#
BINXT 2660 2673#
BITS 1624 2109 5041 5051
BLKASG 1636 1643 1653 1654
BLKF 713 858 877 3010 3282 3376 3445 3517 3607 3788 4226 4234 4477 5520
6099
BLKLK0 1266 1270#
BLKLK1 1269 1280#
BLKLLK 712 857 876 1245# 3327 3498 4203 7016
BLKLOK 1250 1257# 1348 5093 5198 5379 5413 5541 5598 5729 5781
BLKUK1 1293 1297#
BLKULK 723 758 785 804 810 819 871 886 1289# 1392 2758 2833 2840 2892
2996 3012 3085 3169 3381 3395 3504 3518 3856 4215 4228 5114 5267 5394
5440 5463 5466 5497 5799 5806 5902 7046
BLOCK1 983 1059 2023 7007 7580 7736
BLOCKM 3793 4479
BLTUM1 7411
BUGHLT 926 2139
BUGMXR 926 4905 5011 5040
BYTGUD 612 615#
CAPENB 520 1840 7299 7344 7365 7394
CAPX1 7301 7396
CAPX2 7346 7367
CCDON 4578 4579 4580 4581 4582 4590 4600 4602 4608 4626 4628 4629 4630 4632
4637 4638 4642 4643 4644 4646 5436 5466# 5555 5562 5579 5583 5739 5749
5757
CCGUD 4577 5426#
CCGUD1 5427 5433#
CCGUD2 5452 5455#
CCJEC1 5432 5463# 5639
CCJECT 4576 4584 4588 4624 4636 5420 5462# 5619 5632
CCLEN 3834
CCMSG 4890 5400#
CCMSG1 5405# 5416 5444
CCREC 4576# 5422
CDIBUF 3424
CDICNT 3424
CDIFLG 3424
CDILLB 3424
CDIOPT 3425
CHANOK 7435 7438#
CHKBRP 3753 3994#
CHKCHL 2905 2916 2926 2941#
CHKCON 3802 3897#
CHKDCR 3383 3977#
CHKEMP 3232 3365 3985#
CHKFRE 4328 4336 4477#
CHKFRN 5618 5631 5685#
CHKIDL 4601 5737#
CHKILL 2948 2952 2954#
CHKLLT 5658 5675 5895 6431 6508 6966
CHKLOK 1282 3908#
CHKPIP 1334 1364# 1382
CHKPS1 6686 6691#
CHKPST 6676 6683#
CHKQTA 3763 3918# 6912
CHKRAW 3947# 4347
CHKSCP 3775 3937#
CHKSCT 3770 3928# 5888
CHKSET 3918 3928 3937 3947 3957# 3968 3985 3994
CHKSWD 3759 3968#
CHKTTM 782
CHNOK1 7443# 7451
CHNOK2 7445 7450#
CICOR 5192 5274#
CICOR1 5277 5282#
CIDC 5126 5129 5135 5191 5197 5411 5464 5471# 5498 5540 5596 5625 5780
CIDCLC 5473 5485#
CIDCT 5476# 5481
CIDON 4888 4907 5004 5269# 5467 5483 5728 5747 5903
CIMCNT 2555
CIMMFL 2564 5307
CIMSCT 2552
CIMSG 4889 5122#
CIPSRV 5127 5403 6230#
CISRVS 2552 2555
CKATSQ 4791
CLENUP 666 673 680 690#
CLNERR 690
CLRBLK 2061# 3208
CLRFLO 1723# 3566
CLRLLB 2061
CLSX1 709
CLZABT 3375 3390# 4620
CLZCMS 3352 3361#
CLZDI 3341# 4614
CLZDIN 3450# 3450
CLZDIQ 3369# 4617
CLZDIR 3389# 4618
CLZDN1 3382 3402#
CLZDON 3393 3397# 4612 4613
CLZDQ1 3453#
CLZEMP 3342 3364 3368#
CLZRUN 3340# 4615
CLZSDI 3373 3424#
CLZSTA 3335 4612#
CLZWDC 3378# 4616
CMPLEN 444 456# 1863
CMPRLP 2512# 2517
CMPSTR 1432 1593 1942 2259 4972 5283
CNFCOM 3257 3808 3864 3870# 4257
CNFLNK 3870
CNMCF 3843
CNMCI 2323
CNMDC 3483 5477
CNMDI 3280 3441 4148 6096
CNMRFL 2323 3280 3441 3483 3843 4148 5477 6096 6797 6869 7202
CNTFLD 3310 3486 3487 3847 3848
CNTLLB 5329
CNTLOP 2169# 2172 2176
CNTSTS 5329
COMCST 6825 7484
COMECO 6823 7482
COMPAR 2465 2488 2508#
COMPUT 438# 505 545 589
COMVER 6821 7480
COMX19 566
CONIN1 5334 5344#
CONINT 2911 5266 5328# 5430 5492 5649
CONLEN 2314
CONREJ 4589 5566 5613#
CPLCNT 456
CPYFU2 7521 7530
CPYTU1 7323
CRLATR 2293
CRLCIB 2293
CRLCNT 2293
CRLDSC 2293
CRLDSS 2293
CRLHSC 2293
CRLHST 2293
CRLOBJ 2293
CRTLNK 679 2292#
CTLLCL 6263 6290#
CTLMSG 4884 4887#
CX 654 656 657 778 983 1059 1144 1257 1289 1364 1407 1589 1604 1932
1956 1964 2005 2023 2252 2593 2958 2979 3042 3330 3499 4014 4018 4718
4742 4756 4760 4765 4769 4814 4823 4831 5076 5081 5200 5274 5328 5366
5381 5415 5443 5480 5543 5600 5695 5731 5783 5829 5855 5911 6257 6353
6355 6382 6390 6395 6406 6432 6437 6463 6668 6950 6959 6967 7004 7007
7056 7580 7704 7736
CZ%ABT 3328 3340 3370 3374 3378 3394 4778
DATBOM 3725
DATDON 5796# 5850
DATEOM 3736 4404 6564 6641
DATFLI 3125 6372 6923
DATINR 2933 4098 4146 4482 5582 5668 6420 6427 6437#
DATINT 3125
DATMFL 3125 3719
DATMS1 5774# 5784
DATMSG 4882 5768#
DATRUN 4639 5790#
DATSTA 4636# 5788
DCABT 4604 4605 4606 5743#
DCCUR 693 1836 1837 1874 1891 2265 3402
DCDCS 4596 5638#
DCMAX 1838
DCMSG 4892 5718#
DCMSG1 5723# 5732
DCMSG4 5488 5722#
DCN 2472 5035 7624
DCNCNT 693 1836 1837 1838 1874 1891 2265 3402
DCNDTB 321# 4776
DCNMSO 6279
DCNNAM 377 545# 661
DCNOBJ 564 574#
DCNOP0 2462 2466 2472#
DCNOP2 2474# 2489
DCNOP3 2477 2483 2489#
DCNOP7 2471 2493#
DCNOP8 2460 2495#
DCNOPN 331 652#
DCNSET 322 375#
DCNX1 561
DCNX11 1810 2764 2836 2871 3396 3814 3822 4251 4471
DCNX12 533 592 3110 3309
DCNX13 2491
DCNX14 3115
DCNX15 3037
DCNX2 4209
DCNX3 515 517 522 531 576 582
DCNX4 1890
DCNX5 1843 2106
DCNX8 3815
DCNX9 2229
DCREC 4600# 5735
DCRUN 4603 5753#
DECOBJ 518
DEDCOR 5069 5081#
DEDDUM 5046
DEDMC1 5068# 5075 5077
DEDMC2 5114#
DEDMCB 5032#
DEDPRT 5046
DELBLK 1989 2002#
DELDNE 1974 1978#
DELDWN 1969 1973#
DELHLD 1145
DELINS 1960 1963#
DELNO1 1954 1965#
DELNOD 695 1871 1888 1922 1948# 2267 3399 5113 5764
DELREL 1980 1983 1986 1991 1996 1998 2001 2005#
DESX9 290 291 292 299 300 301 302 303 304 305 309 310 327 328
329 337 338 339 340 341 342 343 347 348 2833
DEV 781 4746 4748 4749 4776
DIABT 4592 4593 4594 5618#
DIFLGS 3465
DILEN 3468
DIMSG 4891 5584#
DIMSG1 5589# 5601
DIMSG2 4591 5631#
DIMSG3 5614 5627 5634#
DIREC 4588# 5609
DISRSN 3465
DIUDAT 3465
DLSCHN 1957 1963 4824 4830 7248 7254
DOACT 2406 2411#
DOATSQ 4736
DOMSG 4863 4876#
DOMSG1 4836 4840 4844#
DOMSGQ 4729 4823#
DONAC1 6541# 6577
DONAC2 6538#
DONACK 6472 6534#
DONNXT 6543 6548 6575# 6584
DONRES 6552 6566 6573#
DONRQ 6564 6570 6580#
DOOPT 2427 2429#
DOPSWD 2408 2410#
DOSPW1 2396 2398#
DOSRV1 2569 2573 2575#
DOSRVS 2325 2548# 3845
DSCDON 2341 2351#
DSCMOV 5229 5238#
DSCMV1 5266# 5457
DSCNO 5143 5154#
DSCNO1 5175 5184#
DSCNO2 5189 5192# 5201
DSCNUL 2307 2314#
DTMLEN 3617
EDMS0 3042 3330 3499 5076 5200 5381 5415 5443 5480 5543 5600 5731 5783 5829
5855
EDMSH 4742
EOFF 3824
ERRF 3604 3816 3821 4210 4250 4470
ERRLEN 4656 4696#
ERRTAB 4658 4666 4673# 4696
EXTSET 288 323 385#
F 6269 6270 6280 6285
F1 368 395 402
FFL 4716
FILATL 675 2706
FILBCT 413 832 847 3346 3511 3520 3544 3571 3584 3595 3601 3612 3633 3635
4325
FILBFI 421 428 702 766 849 3410 3519 4276 4288 4292 4316 4458 4459 4461
4463
FILBFO 765 834 3409 3543 3570 3600 3644 3647 3663 3664 3668 3670
FILBYN 3530 4214
FILBYT 833 848 870 3529 4213
FILCNT 829 844 863 3528 4212 4248
FILDNM 675 2706
FILINP 839 3501 3526
FILLEN 3525 3535
FILLI1 5319 5322#
FILLI2 5312 5316 5317#
FILLIN 5221 5302# 5437
FILLLB 626 667 674 694 711 722 750 755 784 809 811 826 841 856
867 875 885 3011 3013 3084 3122 3186 3326 3333 3345 3357 3497 3516
3521 3545 3559 3573 3580 3585 3594 3629 3648 3855 3857 4202 4224 4278
4287 4294 4317 4326 4329 4334 4338 4481 4483 4774
FILNEN 615 660 2204
FILOUP 824 3541
FILWND 412 418 425 427 430 696 699 759 762 3403 3406 3568 3598 4274
4314 4777
FKJOB 1934 1936 2228
FKNTC 7457 7469
FKQ2 7457 7458 7469
FLOHLD 4285 4331
FLUSH 2062 3207 3225 3380 3397 4143 4249 5657 5671 6655#
FNDATR 2180 2706#
FORKX 1268 1272 1935 2120 7447 7455 7466 7468
FPC 4717
FRELNK 1315 1621# 1966
FRKRUN 929 1808
GENWAT 3620 3788# 3877 3883 4150 5442
GETATR 2393 2400 2403 2413 2421 2424 2707 2718# 2722
GETBLK 1569 1635# 1818 1849 1868 2072 2217 2275
GETBSZ 1740# 3567 3574 3597
GETEX1 6199# 6205
GETEXT 4923 6198#
GETLLA 5122 5291# 5400 5527 5584 5718 5772 7207
GETMXS 1773# 3613
GETOKM 657
GETRES 1663# 2315 3117 3469 3619 3835 6754 6789 6858 6915
GETSTA 860 879 1752#
GETTS1 1572# 1585
GETTSK 1565# 1920
GETTWO 4131 4173 4179 4387 4390 4945 4948 5145 5147 5167 5170 5291 5294 5552
5586 5720 5810 5815 6139# 6243 7230
GJFX17 396
GJFX18 362 375 385 405
GJFX45 2182
GJFX49 317 2163
GJFX50 2171 2177
GNTCNT 7551
GOKER2 657
GOTMCB 5049 5051#
GOTSEG 4176 4181#
GTASC0 6158#
GTASC1 6169# 6173
GTASCD 6168 6174#
GTASCI 4871 4929 4963 5152 5178 5246 5255 6157#
GTBNRY 5250 5262 5451 5605 6156#
GTOKPR 654
GTSBLK 2232 2235 2238 2274#
GUDOBJ 1520 1539 1548
HOSTNL 5212 5221#
IFIW 286 287 288 289 290 291 292 293 294 295 296 299 300 301
302 303 304 305 307 309 310 312 313 314 315 316 317 321
322 323 324 327 328 329 331 332 333 334 337 338 339 340
341 342 343 345 347 348 350 351 352 353 354 355 2987 3079
4540 4541 4542 4543 4544 4545 4546 4548 4552 4553 4554 4555 4556 4557
4558 4560 4564 4565 4566 4567 4568 4569 4570 4572 4576 4577 4578 4579
4580 4581 4582 4584 4588 4589 4590 4591 4592 4593 4594 4596 4600 4601
4602 4603 4604 4605 4606 4608 4612 4613 4614 4615 4616 4617 4618 4620
4624 4625 4626 4627 4628 4629 4630 4632 4636 4637 4638 4639 4642 4643
4644 4646 4882 4883 4884 4885 4888 4889 4890 4891 4892 4893 4894 4895
ILINS2 7753
ILLSTR 5011# 5011 5012
INAATR 2379
INACNT 2379
INALLB 2379
INAPNT 2379
INDADR 7504
INDBLK 7504
INDERR 7504
INDSTA 7504
ININOD 931 940#
INIRCV 4916 4917 4985 5054
INISNT 4990 5054 6835
INIWAT 913
INMENU 2425 2432#
INO020 7083# 7101
INO025 7085 7095#
INOLLB 7070
INS010 5919# 5988
INS020 5953 5962#
INS030 5939 5982#
INSATR 2362 2379#
INSCNT 5912
INSER1 7546#
INSERR 7519 7522 7527 7531 7539 7543#
INSFLG 5912
INSKED 1219 1232 1274 1297 1664
INSLLB 5912
INSND1 7528 7533#
INSNOD 7421 7504#
INTDF 397 940 981 1057 1095 1220 1245 1275 2006 4755 7513 7578
INTDFF 362 370 375 385 405 944 945 989 1001 1013 1022 1030 1033 1072
1079 1098 1118 1127 1233 1298 2009 3401 4770 4784 5113 5763 7540 7547
7603 7609
INTINT 2921 2958# 5846
INTLEN 3116
INTLS 5792 5810#
INTLS1 5828# 5831
INTOUT 5901 6514 7022 7070#
INTRUN 5798 5804#
INTSET 5804 5911#
INTT10 5372# 5382
INTT20 5386 5393#
INTTST 5265 5364#
INVHDR 4866 4899#
INVPRC 5131 5134# 5138 5146 5148 5153 5155 5158 5161 5168 5171 5179
IOMODE 2559
ISEGSZ 2582
ITRAP1 7270 7273 7753
ITSID 4961
ITSNAM 2484 4927 4970 4995 5056 5064 5065 7666
ITSNUM 4925
JFN 412 413 418 421 425 427 428 430 615 626 660 667 674 675
694 696 699 702 711 722 750 755 759 762 765 766 781 784
809 811 826 829 832 833 834 841 844 847 848 849 856 863
867 870 875 885 2204 2706 3011 3013 3084 3122 3186 3326 3333 3345
3346 3357 3403 3406 3409 3410 3497 3511 3516 3519 3520 3521 3525 3528
3529 3530 3535 3543 3544 3545 3559 3568 3570 3571 3573 3580 3584 3585
3594 3595 3598 3600 3601 3612 3629 3633 3635 3644 3647 3648 3663 3664
3668 3670 3855 3857 4202 4212 4213 4214 4224 4248 4274 4276 4278 4287
4288 4292 4294 4314 4316 4317 4325 4326 4329 4334 4338 4458 4459 4461
4463 4481 4483 4746 4749 4772 4774 4777
JFN0 4772
JOBBIT 4724
JOBNO 2230
JSBFRE 4781
KDPFLG 4731 4793
KDPTSK 4732
LASTM 1408
LASTSK 1573
LCKTST 1222
LITCNT 7614
LKISIZ 1791
LKOBJS 1789
LKPCOD 1327 1378
LKPLLB 1327
LKSIZE 1368 1787 1789 1791 1990 1995 1997 1999 2032 2046 2050 2083 2084 2086
2088 2089 2212 2219 2234 2237 2240 2253 2254 2257 2258 2838 2849 2856
2877 2878 2980 2981 4721 5207 5244 5248 5252 5253 5278 5281 5352 5353
5713 5714 5937 5944 5945 5951 5954 5956 5964 5965 6005 6014 6015 6016
6022 6023 6027 6033 6034 6056 6057 6066 6068 6072 6073 6076 6079 6080
6081 6083 6085 6785 6851 7019 7026 7036 7037 7041 7045 7078 7084 7109
7112 7113 7114 7116 7128 7129 7130 7133
LLACT 1997 2086 2237 2856 5253
LLADDR 1565
LLBFI 6022 6034 6066 6079
LLBFO 7129 7133
LLBIT 2101
LLBITS 1623 2102
LLBLK 3465 6465 6700
LLBOM 1896 3724 3725 3734
LLBPCT 2321 2687 3124 3476 3631 3708 3842 6259 6326 6759 6795 6832 6864 6887
6922
LLBPI 5944 5951 6083
LLBPTR 2320 2387 2621 2657 2686 3123 3475 3630 3643 3674 3700 3841 6762 6796
6865 6921
LLBRP 3752 3753 3996 3997 5864 5866 6563 6564 6610 6611
LLBSZ 1740 1899 3343 3640 4273 4313 4318 4416 5317
LLCIL 5388 6705
LLDED 5088 5089 5099
LLDMT 4029 4048 4434 6411 6422
LLDRB 6068 6069 6076
LLDRC 757 2929 6439
LLDRV 1368 2981 5353 5714 6023 6073 7116 7130
LLDRW 2930 2931 4024 6423 6425
LLDSC 1990 2219 2257 2258 5281
LLDSN 3702 3704
LLDUM 6785 6851
LLDWN 1421 1542 1961 1973 2148
LLFAIL 1414 1440#
LLFDI 1902 2576 2577 2583 2814 4246 4247 5670 5673
LLFDS 1852 1984 2076 2308 2337 2338 2346 3189 3194 5224 5228
LLFEM 1763 3353 3581 3582 3586 3587 3726 3727 3732
LLFIM 2817 2818 3532 3533 4221 4269 4297 4298 4301 4406 4411 4412 4436 4437
5920 6009 6019 6020 6026 6053 6054
LLFLI 1715 1716 3512 3513 3522 3523 3949 3950 4218 4219 4266 4267 4271 4339
LLFLO 1709 1710 1723 1727 3348 3349 3546 3547
LLFNA 4099 4281 4282 4528 4530
LLFNM 2063 2305 3173 5223
LLFNN 4009 4010 4099 4523 4524 4530 6415
LLFOB 1528 1529 1987 1988 2079 2080 2245 2800 2801 2831 2832 2862 2863 3162
3163 5418 5419
LLFRK 756 1933 2121 2227 2960 5335 5890 6438
LLHEAD 1413 1522 1953 2141
LLHLK 1424 2065 2531 5324 5511 5685 6375 6952
LLHNM1 1846
LLHO 1408
LLHST 1430 1847 2069 2496 2602 2766 5214 5509
LLICT 5945 5954 5956 6005 6016 6033 6080
LLIDN 4034 4093 4184 4378 4428 4521 7149 7164
LLIIC 6015 6033 6081
LLIIN 4183 5820 5836 6744
LLIMS 2553 2554 4049 4408 4409 6127 6128
LLINI1 1314# 1316
LLINIT 916 1311#
LLINT 1365 1366 2580 2581 2976 2977 5332 5333 5384 5385 5577 5578 5699 5700
5796 5797 5899 5900 6383 6384 6512 6513 6969 6970 7218 7219
LLISN 3129 3133 6926 6929
LLLCKT 1249 1303#
LLLKBD 1230# 1230
LLLKU1 1414# 1420 1422
LLLKU2 1423 1427#
LLLKUH 1407#
LLLKUP 1406# 1951 2133 3898 3909 3958 3978 5375 5408 5537 5593 5726 5777 6377
6954 7216
LLLLCK 909 1221 1225 1231 1248 1303
LLLNK 1280 1415 1555 1949 1965 2119 2131 2143 2144 2533 3147 3780 5513 6328
6374
LLLOC 2455 2467 2568 2597 2598 2767 2768 5085 5086 5211 5311 6261 6262 6330
6331 6458 6459 6701 6702 6904 6905
LLLSA 4500 4505 5580 5581 6409
LLLSC 4284 4330 4413 4497 4505
LLLWC 2823 2824 5447
LLMFC 3720 3765 5303 5878 6553 6612 6613 6636
LLMIC 3113 3114 3135 3889 5456 5873 5876 6961
LLMQI 646 4046 6126 6413
LLMQO 648 3761 3921 6910
LLMSG 3961 4012 4015 4017 4335 4345 6428 6429 6659
LLMSGB 3466
LLMSI 2820 2920 3036 3045 3060 3061 3524 4208 5840 5845 6661
LLMSM 3739 3768 3930 3931 3939 5884 5886 6555 6564 6567 6571 6615 6643 6963
6965
LLNAM 2212 2253 2254 5278
LLNDO 7109 7110 7112
LLOCT 7026 7078 7084
LLOMSG 2932 3951 4055 4056 4079 4080 4375 4402 4426 4430 5925 6657 7146 7166
LLOPI 1695 6122 6123
LLOPT 1821 1828 1978 2899 5260 5449 5603
LLOPW 643 1700
LLOUT 2032 2046 2050 7019 7036 7037 7041 7045
LLPCT 2088 2878 5252
LLPIC 757 2908 5336
LLPII 757 2919 2961
LLPRT 2495 2570 5090 5220 5313 5517 6264 6293 6335 6369 6831 6886
LLPSW 1999 2240 2877 5248
LLQOU 3227 3228 3362 3363 3760 3920 3987 3988 6347 6496 6655 6909
LLQUE 2017 2018 2054 7031
LLQUN 3757 3758 3970 3971 6582 6607 6608 6634 6655
LLRCT 1264 1265 1270 1290 1292 1295 3911 3912
LLRFK 1267 1273 1294
LLRSN 2077 2799 3368 3390 3440 4145 5494 5648 5656 5666
LLSABT 2812 3981 5428 5495 5645 5653
LLSCIR 2536 2809 2866 2910 3166 3216 3250 5203
LLSCIS 2364 2808 3902
LLSDE 3379 5111 5112 5623 5624 5702 5703 5745 5746
LLSDIQ 3218 3237 3429 4141 6101
LLSDIR 2811 3508 5101 5664
LLSDIS 3241 3453 3503 4152 5663
LLSEGQ 6348 6475 6494 6538 6619 6663
LLSLIS 1550 2243 2806 2835 3209 3901 5083
LLSOB 2083 2838 5207
LLSRUN 2804 2869 3167 3220 3507 3886 3962 5445 6387 7222
LLSTA 1549 1752 2244 2365 2535 2803 2834 2865 2868 2909 3165 3210 3215 3238
3242 3249 3334 3430 3454 3502 3887 3900 3960 3980 4142 4153 4205 5082
5098 5204 5421 5429 5446 5496 5547 5608 5646 5654 5667 5734 5787 6102
6386 7221
LLSWG 1773 2565 2575 3265 5308 5322
LLTRC 5964 6085
LLTRM 5937 5938 5965 6027 6056
LLTRN 3873 3874 3881 3884
LLTSK 1582 1590 1895 1939 1981 2355 2756 5276
LLTTY 4758 4767
LLUCT 2067 2900 5264 5454 5607
LLUPL 1419 1535 1955 1959 1968 2146
LLUSGP 2082 3171 5209
LLUSR 1995 2084 2234 2849 5244
LLVEC 2980 5352 5713 6014 6072 7114 7128
LNKADR 6465
LNKID 1408
LNKPRI 2557
LNSPSR 7756#
LOKLL 1218# 1333 1381 1823 1869 1882 1918 3398 5068 5194 5372 5407 5534 5592
5725 5774 6376 6953
LOKPIP 1327#
LPBSEG 6333# 6370
LSIDN1 5879 5894#
LSIDON 5827 5832 5877 5895# 6103 6105
LSINT1 5825 5836#
LSLEN 6914
LSMSG 5839 5854# 5857
LSMSG1 5862 5865 5868#
LSTERR 7647
MAKEXT 6217# 6223 6802
MAKFLG 3636 3719#
MAKINP 420 2745# 4275
MAKLN1 2103# 2105
MAKLNK 1824 2100#
MAKMSG 3639 3693#
MAKPTR 2735# 2746 3344 3569 3599 4315
MAKTST 3606 3780# 4348 6913
MAXBLK 1637
MAXDIF 4073 4190 5826 6491 6547
MAXDSC 275# 532 1848 2071 3109 3308 5151 5177 5245 5254 5261 5450 5604
MAXEXP 2115
MAXHST 277# 565 4870 4928
MAXLC 1862
MAXLNK 1312 1621 6813
MAXNOD 941 948 7389 7406
MAXNTA 2159 2194#
MAXQ 4723
MAXSEG 642
MAXSG1 645
MAXSGQ 647
MBLOCK 3554 3693
MCBCLL 4751
MCBCQ 4737 4746#
MCBCQ1 4778#
MCBCQ2 4753# 4785
MCBDE1 5048# 5073
MCBDED 4739 5046#
MCBDTE 930 1809 2475 2481 4916 4931 4937 4939 4965 4966 4985 4986 4990 5032
5054 5055 5186 6835 6836 6837 6842 6843
MDPTR 4445
MENT0 4718
MKFL10 3725 3726#
MKFL20 3731 3738#
MKFL30 3730 3738 3741#
MLJFN 4762
MLODR 3554
MO%ABT 2813 2815
MO%CDN 795
MO%CON 2805
MO%DAV 801
MO%EOM 2819
MO%INA 798
MO%INT 2821
MO%LWC 2825
MO%SRV 2802
MO%SYN 2815
MO%WCC 2810
MO%WFC 2807
MONX02 417 429
MONX03 4662
MONX06 1638 1924
MOVACK 4021 4109#
MOVMSG 4290 4364# 5946 6050
MOVNAK 4011 4053 4090#
MOVSE1 4012# 4023 4039 4054 4058 4070 4082 4086
MOVSE2 4078 4083#
MOVSEG 3230 3332 3556 4005# 4279 4373 5922 7075 7144
MOVSEL 4065# 4077
MOVST0 1608# 1611 1612
MOVST1 1679# 2222 2310 2497
MOVST2 1683# 1685
MOVSTR 1103 1108 1604# 1879 5216 5232
MRETN 7274
MRETNE 659
MSBPTR 3054 3701 4115 4168 4385 5531 6111 7228
MSCNT 4845 6260 6327 6334 6993 7180
MSDAT 3650 4026 4035 4095 4133 4499 4522 6125 6551 6938 6960
MSDTC 3046 3654 4113 4170 4383 5533 6113 7154 7226
MSGBL 6751
MSGBLK 4109 4165 4721 7174
MSGBYP 4109 4165 4364 4721 7174
MSGCNT 4109 4165 4364 4721 7174
MSGDDC 4721
MSGDML 4721
MSGDST 4721 7174
MSGFLG 2548 2594
MSGHSN 4721
MSGLCL 4721
MSGLL 4109
MSGLLB 4006 4721
MSGOBJ 4721
MSGQ 4728 4797 4825 4827 4829 6301
MSGSDC 4721
MSGSGT 4165
MSGSOB 4721
MSGSRC 4721 7174
MSGTYP 4880 4882#
MSGW1 4721 5046
MSGW2 4721
MSHDR 2314 2319 3116 3120 3468 3472 3617 3627 3834 3838 4847 6276 6317 6753
6760 6788 6792 6857 6861 6914 6918 6984 6994 7176
MSIZE 3554
MSLCL 4833 4834 4841 6290 6366
MSLLA 3148 6329 6932
MSLNK 4016 4057 4076 4081 4083 4084 4085 4429 4826 5844 6430 6501 6506 6519
6524 6525 6576 6598 6600 6632 6672 7165 7250
MSLSI 3040 3149 4135 5813 6745 6765 6933
MSMFL 3126 3696 4019 4117 4403 4877 5306 5558 5571 6371 6407 6564 6640 7200
MSMS1 6271 6272 6274
MSNAK 6580 6630 6631 6645
MSPRT 4838 4900 4915 5022 5185 5219 5516 6991
MSPST 6337 6448 6674 6675 6684 6685
MSRLS 6446 6447 6687
MSSEG 3132 3706 4060 4065 4186 4377 4427 5819 6487 6544 6931 7148 7163
MSTOM 3150 3651 6484 6541 6934
MSTSN1 3144# 3146
MSTSN2 3143 3146#
MTASGN 726 793#
MTDON 2840# 3191
MTGSS 740 3263#
MTOBJ 2847 2854 2862# 2875
MTOBJ1 2864 2871# 3170
MTOX1 724
MTRDCK 2763 2865#
MTRDI1 3057# 3059
MTRDI2 3055 3059#
MTRDIN 734 2987#
MTRNCK 2868# 3034 3106 3263
MTSETC 796 2905#
MTSETD 802 2926#
MTSETI 799 2916#
MTSNIN 735 3076#
MVBNR1 2641# 2644
MVBNRY 2638# 3488 3849
MVM010 4373# 4438
MVMBFI 4366
MVMCNT 4366
MVMFLG 4366
MVMLLB 4366
MVMMAX 4366
MVMX 4376 4382 4439#
MVMY 4400 4440#
MVNLLB 4090
MVSPTR 1679
NABROK 999 1020 1204#
NAKCNT 6549
NAKFLG 7174
NAMCN 2481 4931 4966
NAMINI 895#
ND%EXM 7722
ND%LPA 7359
ND%LPR 4977
NDBDEL 1184# 1184 1185
NDCIC 7288 7463#
NDCIC1 7465# 7472
NDCLP 7283 7365#
NDFLP 7284 7383#
NDGLI 7290 7614#
NDGLN 7279 7318#
NDGN10 7581# 7598
NDGN20 7693# 7697
NDGN25 7694 7698#
NDGN30 7602#
NDGN40 7605#
NDGNM 7281 7338#
NDGNT 7286 7551#
NDGNX 7582 7586 7595 7608#
NDGVR 7289 7476#
NDIFLG 6797 6869
NDINIT 936# 936 937
NDISIZ 6788 6857
NDLI10 7638# 7672
NDLI11 7652 7655 7658 7660#
NDLI40 7626 7669 7676#
NDSIC 7287 7426#
NDSLN 7278 7297#
NDSLP 7282 7344#
NDSN10 7418# 7424
NDSNM 7280 7328#
NDSNT 7285 7389#
NDTLEN 7269 7294#
NDVER1 6878# 6880
NDVFY 7291 7704#
NDVNOD 7705
NETAT1 2170 2178#
NETAT2 2160# 2162
NETATR 355 2158#
NETCHR 855
NETCL1 3326# 3331
NETCLZ 296 334 3323# 4779
NETDIR 286 321 395#
NETDSH 479# 507 559 574
NETEXT 387 589#
NETIN2 3510 3518#
NETINP 315 353 710 3495# 3500 4229
NETMOV 3646 4423
NETOUP 316 354 866 3540#
NETSCM 3528# 3549
NETSET 3515 4225 4248 4263#
NETSQ1 863# 868 3810 4543
NETSQI 294 332 4202# 4230
NETSQO 295 333 855#
NETSQR 312 350 875#
NETSR1 882# 3866 4555
NETUIN 839# 3496 3540 4223
NETUOU 824# 3325 3495 3558
NETWKF 5891
NMAPLK 912
NMVCNT 3296
NMVPTR 3296
NODATA 5239 5259 5265#
NODDEL 1066 1144# 1161
NODDL1 1155# 1164 1168
NODDL2 1176# 1179
NODDL3 1178 1186#
NODESC 2214 2226 2232#
NODINI 6785#
NODLOK 911 982 988 1000 1012 1021 1029 1032 1058 1071 1078 7579 7602 7608
7735 7740 7742
NODMAX 1096 1102 1105 1106 1115 7512 7520 7524 7529 7536
NODMSG 6785 6851
NODNAM 7297
NODNUM 901
NODPRT 6785 6851
NODTAB 7271 7278# 7294
NODTBL 947 986 1027 1060 1150 1151 1163 1188 1205 7561 7738
NODVER 4992 6840 6851#
NODX02 7358
NODX03 7351
NOOOBJ 2211 2213#
NOSK11 1956 4014 4756 4765 4823 6353 6382 6406 6959
NOTMCB 2478 4936
NOUSER 5243 5257#
NS%MSG 6021
NS%TRN 6084
NSBP01 3753# 3753
NSBP02 3759# 3759
NSBP03 3764# 3764
NSBP04 3767#
NSBP05 3770# 3771
NSBP06 3774#
NSBP07 3775#
NSBP08 4525#
NSBP09 6701#
NSBP10 3762#
NSPBPN 5040# 5040
NSPCH0 7246# 7256
NSPCH7 7244#
NSPER1 4658# 4661
NSPER2 4660 4666#
NSPERR 4656# 5347 5708
NSPEXT 6221
NSPFRK 926# 926 927
NSPINI 909#
NSPLNQ 2038# 2038 2039
NSPLPB 2456 2469 4835 4974 4977 4978 4981 5472 6292 6368 6460 6703 6906 7349
7360 7368 7378 7384
NSPMAX 2571 2572 4953 5314 5315
NSPMCB 4738 4799 5042 5048 5052
NSPMS1 7188 7199#
NSPMS2 7203 7207#
NSPMSE 7183 7186 7191 7193 7195 7197 7205 7208 7217 7220 7223 7231 7233 7238#
NSPMSG 7174# 7255
NSPNUL 4303
NSPOVR 4952
NSPPHV 1390# 1390
NSPPWA 1342# 1342
NSPQ 6317#
NSPRSN 6627# 6627 6628
NSPRTH 4905# 4905 4906
NSPSPC 6983#
NSPSTR 5003# 5003 5004
NSPTSK 4728# 4730 4743
NSPTST 4740 4791#
NSPX00 4673
NSPX01 4674
NSPX02 4675
NSPX03 4676
NSPX04 4677
NSPX05 4678
NSPX06 4679
NSPX07 4680
NSPX08 4681
NSPX09 4682
NSPX10 4683
NSPX11 4684
NSPX12 4685
NSPX13 4686
NSPX14 4687
NSPX15 4688
NSPX16 4689
NSPX17 4690
NSPX18 4691
NSPX19 4692
NSPX2 1426 1433
NSPX20 4693
NSPX21 4694
NSPX22 4695
NSPX26 7453
NTACPT 738 3247#
NTACPY 2757 2775# 3188 3193
NTANT 741 750#
NTATB 266# 2164
NTATC 264# 2165
NTATE 265# 2178
NTATR 263# 2160
NTCCHN 1042 7448 7454
NTCFRK 1041 7446 7456 7465
NTCIB 652
NTCIN1 1039# 1045
NTCIN2 1040 1044#
NTCMAX 1044 7450 7471
NTCNT 363 376 386 652 2202
NTCOFF 7464#
NTCP1 2888# 2890
NTCP11 2887 2890#
NTCPY 2757# 2770 2850 2857 3195
NTCPY1 2781# 2784
NTCPY2 2782 2785#
NTCPYB 2879# 2901
NTCTAB 1038 1044 7439 7450 7464 7471
NTDDSC 363
NTDSC 376 652 2202
NTDSS 363 376 652 2202
NTHSC 376 652
NTHST 376 652
NTMCZ0 3219 3226 3229 3237#
NTMERR 797 800 803 809#
NTMTCT 716 743#
NTMTCZ 737 3215#
NTMTGD 2892# 3211 3243 3259 3267
NTMTO1 717# 721
NTMTOP 307 345 708#
NTMTTB 717 719 726# 743
NTMVO1 3313# 3315
NTMVOP 3255 3277 3295# 3437
NTOBJ 363 376 652 2202
NTPNT 363 376 386 652 2202
NTRAC 732 2854#
NTRCB1 3164 3169# 3221 3251
NTRCB2 3175# 3179
NTRCB3 3178 3188#
NTRCBN 3180
NTRCN 739 2830#
NTRCOB 736 3162#
NTRDA 733 2899#
NTRFCI 3205 3239 3272#
NTRHN 728 2763#
NTRJCT 3205# 3217
NTRPW 731 2875#
NTRTN 729 2756#
NTRUS 730 2847#
NTSHUT 2476 5186 5187
NTSNH 742 778#
NTSTS 727 817#
OBELLB 7127
OBJENT 1455 1461 1467# 3174
OBJINI 915 1454#
OBJLO1 1480 1486#
OBJLO2 1487# 1496
OBJLOK 514 581 1475#
OBJMAX 1461 1494
OBJONE 2342 2351 5144 5174
OBJPRO 1454 1461# 1467 3174
OBJPTR 1475
OBJSFD 1531 1534 1548#
OBJSN1 1537# 1544
OBJSN2 1527 1531#
OBJSND 1526# 1536 1543
OBJSNO 1530 1535# 1551
OBJSRC 1336 1384 1520# 1579 1883 2225 5071 5195
OBJTBL 1454 1455 1477
OBJTSK 2353
OBJTWO 5133 5157 5166
OBJZRO 2333 5142
OKRET 368# 381 391 403 404
OKSK11 1964 4018 4760 4769 4831 6355 6390 6395 6432 6967
ONEBYT 2334 2336 2343 2345 2352 2354 2386 2395 2405 2556 2558 2601 2607 2620
2629 2641 2656 2667 2686# 2695 2697 3145 6222 6798 6800 6806 6808 6816
6818 6820 6822 6824 6826 6828 6870 6872 6879 6940 6942
ONMSGQ 6301# 6354 7239
ONMSQ 6295 6353# 6397
ONRAW1 6410 6428#
ONRAW2 6409 6427#
ONRAW3 6421 6432#
ONRAWQ 5795 6389 6406# 7236
ONSEGQ 6333 6347#
ONSGQ0 6348#
OPENX1 1901 1904#
OPNDFT 1854 1856 1918#
OPNDNC 603# 663
OPNDWK 622 1787#
OPNEXT 1896# 1927
OPNF 708
OPNFAI 1844 1850 1869#
OPNIWK 1791#
OPNSRC 604# 2207
OPNSWK 619 1789#
OPNUNQ 2223 2252#
OPNWRK 1788 1790 1792 1802#
OPNX14 608
OPTDAT 3247 3272
OPTSIZ 1817 2274
OURCAP 6805
OURCNT 898 2459 2461 4967 7310
OURNAM 896 950 2458 2464 2604 2769 4971 6803 7313 7322
OURNED 4935 4938
OURNUM 902 6801 7333 7339
OURREQ 6807
OURTTL 197#
OUTCHK 4733 4795 4812#
OUTCK0 7013# 7020 7047
OUTCK1 7024 7027 7040 7043#
OUTIVL 914 7058
OUTLOK 910 2022 2056 7006 7013
OUTQUE 2025 2043 2045 2048 7008 7033 7035 7039
OUTR00 3588 3594# 3657
OUTR0E 3561 3585#
OUTRR 864 883 3355 3554#
OUTRR1 3595#
OUTRR2 3612#
OUTRR3 3589 3603#
OUTRR5 3643#
OUTRR7 3649# 3678
OUTSND 4734 7004#
OUTTIM 4812 4815 7005 7059
OUTWAT 3231 3233 3366 3384 3557 3604# 3803
OUTWR0 3662# 3676
OUTWR1 3667 3672#
OUTWR2 3673# 3675
OUTWRD 3642 3661#
P 456 458 463 657 690 692 704 781 936 1145 1148 1175 1184 1230
1342 1390 1408 1410 1411 1412 1416 1417 1418 1427 1428 1431 1434 1435
1440 1525 1526 1537 1553 1679 1682 1684 2038 2293 2299 2300 2301 2302
2304 2306 2309 2317 2332 2335 2344 2361 2367 2379 2381 2382 2384 2388
2390 2392 2399 2402 2412 2420 2423 2430 2432 2433 2447 2449 2450 2451
2452 2454 2463 2480 2487 2493 2494 2548 2550 2563 2594 2596 2606 2616
2618 2622 2745 2747 2995 2997 3029 3032 3033 3047 3049 3053 3058 3062
3063 3101 3103 3104 3105 3108 3137 3138 3142 3144 3153 3180 3183 3187
3247 3252 3272 3274 3296 3301 3302 3305 3312 3425 3433 3450 3466 3471
3489 3554 3616 3626 3632 3637 3638 3649 3652 3661 3677 3693 3695 3699
3870 3872 3880 3882 4006 4008 4032 4038 4052 4069 4090 4092 4097 4263
4265 4277 4293 4311 4319 4366 4368 4369 4370 4371 4372 4397 4398 4401
4422 4424 4425 4433 4440 4441 4445 4447 4465 4494 4496 4504 4518 4520
4527 4746 4747 4748 4749 4750 4751 4761 4764 4773 4782 4905 5003 5011
5040 5329 5331 5345 5346 5350 5351 5696 5698 5706 5707 5711 5712 5889
5892 5912 5914 5915 5919 5924 5927 5933 5943 5948 5949 5950 5952 5962
5970 5971 5972 5977 5982 5985 5996 5998 5999 6000 6004 6007 6025 6032
6043 6045 6047 6052 6267 6269 6278 6282 6285 6416 6419 6465 6467 6468
6469 6474 6485 6488 6534 6536 6542 6545 6550 6627 6673 6678 6751 6756
6772 7297 7307 7312 7389 7408 7410 7415 7417 7551 7559 7567 7584 7614
7622 7631 7640 7705 7712 7718
P3 3661 3666 3669 3670 3671 3675 3677
PARNDU 7308 7713
PARNO1 572
PBYTSZ 419 609 617
PGSFT 2740
PI 1957 1963 4824 4830 7248 7254
PICHOF 1957 4824 7248
PICHON 1963 4830 7254
PRFXL 2721
PRFXV 2719
PROOFF 4906 5006 5021#
PRSNAM 546 559#
PRTCNT 6983
PRTNO 6983
PRUNE 6658 6660 6662 6664 6668#
PRUNE1 6671# 6679
PRUNE2 6677# 6692
PRUNE3 6678# 6690
PSIRQ 1043 2965 5340 6441
PUTLL1 2534 2538#
PUTLLA 2528# 2551 3128 3698 6768 6925
PUTLLR 2527# 3479
PUTOND 6596 6600#
PUTONQ 6302 6319 6349 6593#
Q1 778 779 780 786 1037 1038 1039 1041 1042 1044 1045 1046 4447 4448
4453 4457 4461 4462 4463 4465 4915 4916 4925 4926 4927 4931 4937 4939
4953 4959 4965 4966 4969 4970 4975 4983 4985 4986 4990 4991 4994 4995
5011 7008 7013 7015 7018 7019 7021 7026 7031 7032 7034 7036 7037 7043
7044 7045 7415 7416 7417 7418 7560 7565 7581 7596 7623 7629 7638 7670
7704 7710 7711 7723
Q2 4448 4455 4458 4913 4944 4987 7009 7018 7035 7038 7041 7043 7416 7418
7420 7423 7565 7566 7567 7581 7583 7588 7589 7591 7597 7629 7630 7631
7638 7639 7645 7660 7661 7663 7671
Q3 7570 7571 7572 7592 7598 7633 7634 7644 7664 7672
R 462 1367 1591 1610 1711 1717 1940 2018 2081 2642 2674 2718 2978 3531
4191 5087 5089 5701 5704 6009 6070 6140 6144 6170 6186 6191 6200 6231
6241 6609 6611 6671 7111 7507 7508 7510 7696 7699
RDICNT 3029
RDINB 3069#
RDINT 2990 3028#
RDINT1 3034# 3044
RDINX 3035 3038 3068#
RDIPTR 3029
RDIRTN 3029
RDSTS 817 2799# 5344 5705
READF 414 607 627
RELBLK 1651# 1829 1886 2008 2339 5226
RELFRE 4783
RELJFN 767
RELLNK 5625 5747 5763#
RELMES 1011 1070 1126 1193 7545
RELPAG 426 698 701 761 764 3405 3408
RELRES 1912 2003 2998 4031 4051 4068 4121 4432 5270 6266 6418 6447 6498 6677
RELSWP 1656
REMNDX 1063 1065 1067 1078#
REMNOD 975 1055#
REMQUE 2002 2017#
REQVER 4990 5054 6837 6838 6842
RESEND 5894 6607# 6648
RFTADN 313 314 351
RJECT 5102 5435 5613 5645# 5738
RJECT1 5103 5105 5106 5107 5626 5653# 5748
RLBLK 1819 1910#
RLBLK1 1830 1911#
RMNNAM 1055
RMQ010 2029# 2033
RMQ020 2030 2043#
RMQ030 2049 2054#
RNDF 605
ROUCST 6819 7494
ROUECO 6817 7492
ROUVER 6815 7490
RS%SE0 1666 6987
RSEND0 6614 6619#
RSEND1 6620# 6633
RSEND2 6639 6643#
RSEND3 6637 6642 6645#
RSKP 366 379 389 423 431 528 536 593 632 657 681 768 789 805
820 887 955 1014 1047 1073 1119 1194 1210 1253 1276 1352 1371 1429
1436 1482 1488 1556 1583 1645 1669 1712 1718 1904 2123 2181 2248 2261
2277 2369 2457 2470 2498 2518 2675 2724 2759 2841 2867 2870 2893 2907
2912 2918 2922 2928 2934 2943 2946 2953 2999 3064 3086 3154 3285 3306
3317 3411 3455 3490 3583 3602 3767 3774 3851 3890 3964 4013 4123 4137
4192 4341 4442 4498 4507 4532 4667 4813 4818 5096 5113 5115 5285 5297
5522 5688 5926 5929 5978 6055 6058 6067 6087 6124 6147 6177 6188 6194
6208 6246 6705 6707 6780 6839 6844 6945 6956 6971 6973 6995 7079 7091
7155 7314 7324 7334 7341 7352 7361 7369 7379 7386 7419 7449 7459 7470
7473 7496 7541 7562 7564 7605 7676 7700 7724 7745
RTFLG 2600
RTHDC1 2599 2606#
RTHDCI 2324 2593# 3127 3478 3697 3844 6767 6924
RTHLEN 2314
SAVADR 2100
SAVBLK 1802 1948 2130 3833
SAVBSZ 1802
SAVERR 1802
SAVFF 6267
SAVLL 3833 6258
SAVLLB 621 626#
SAVMSG 6258
SAVOPT 3833
SAVPQ 7004
SAVPST 6267
SAVSTR 1802
SAVT 1144 1364 1589 1604 1932 2005 2252 2958 2979 4814 5081 5274 5328 5366
5695 5911 6257 6463 6668 7056
SBFLLB 6071
SC%MNT 7345 7366
SC%OPR 519 1841 7300 7345 7366 7395
SC%WHL 519 1841 7300 7345 7366 7395
SECALL 4719
SEGERR 4154 4470#
SEGMSK 4380 6928 7151
SEGPST 6336 6446#
SEGSIZ 917
SEGSZ 918 2562 6809 6811
SETCNT 5793 5842 6109#
SETEOM 882 1763#
SETFLO 1727# 3596
SETIBF 5928 6066#
SETOPI 628 1695#
SETOPW 630 1700#
SF%DOK 656
SFBSX2 614
SFTADN 352
SHTLK1 5663# 6094
SHUT10 5672 5675#
SHUTLK 5104 5633 5664# 5756
SIMCNT 3101
SIMLLB 3101
SIMPTR 3101
SIMRTN 3101
SK2RET 369 371 398
SKDOUT 6706 6972 7017 7023 7027 7056#
SKPFLD 4867 6185# 7192 7194
SKPFLI 842 1715#
SKPFLO 827 1709# 3560
SMLSEG 2561
SMSGQ 6318 7246 7251 7253
SNDACK 4036 4096 4526 6700# 6746
SNDBA1 6385 6388 6395#
SNDBAD 6373 6379 6396#
SNDCC 3833# 3876
SNDCHK 3603 3751# 7096
SNDCTL 2368 3284 3452 3878 4151 5482 6104 6257# 6779
SNDDC 5479 5507#
SNDDI 3281 3442 3465# 4149 5519 6098
SNDDI1 3484 3489#
SNDLBL 6903
SNDLCL 6332 6366#
SNDLCT 6903
SNDLMS 6903
SNDLS 3041 4502 6130 6903#
SNDLS1 6962 6966#
SNDLSL 6907 6950#
SNDLTP 6903
SNDMSG 6267# 6339
SNDSE0 6360# 6574 6647
SNDSE1 6340# 6391 6398
SNDSE2 6334# 6361
SNDSEG 3152 3655 6325# 6944
SNDSG0 6264# 6294 6833 6888
SNINT 3081 3100#
SNLBLK 6325 6360
SNMSG 6325 6360
SNTBLK 7389
SNTCNT 7389
SQALLB 4518
SQI1 4208# 4248 4259 4567
SQI11 4220 4223#
SQI2 4287# 4346
SQI22 4268 4279#
SQI23 4278# 4337
SQI3 4405 4408#
SQI4 4410 4413#
SQIACK 4327 4518# 5983
SQICNF 4256# 4566
SQICNT 4263
SQIDIR 4241# 4570
SQIEM1 4304 4313#
SQIEMP 4296 4311#
SQILS 4333 4494# 5579 5986
SQIMOV 4420#
SQIMV1 4419 4426#
SQINOB 4312 4345#
SQISN2 4329#
SQISN3 4332 4339#
SQISN4 4286 4333#
SQISNA 4283 4326#
SQISTA 4206 4564#
SQIWR1 4448# 4464
SQIWR2 4453# 4456
SQIWR3 4460 4465#
SQIWRD 4418 4445#
SQLLLB 4494
SQOABT 3814# 4548 4560 4572
SQOBAD 2765 2837 2848 2855 2876 2991 3082 3206 3240 3256 3258 3264 3377 3605
3608 3621 3809 3817 3823 3825 3855# 3865 4211 4227 4252 4258
SQOCN1 3875 3879#
SQOCN2 3863# 4554
SQOCNF 3807# 4542
SQODIR 3821# 4546 4558
SQODIS 3815# 4544 4545 4556 4557 4568 4569
SQOEOF 3824# 4248
SQOLIS 3802# 4540 4541 4552 4553 4564 4565
SQOOTR 880 4552#
SQOSTA 861 4540#
SRCFAL 2231 2233 2236 2239 2242 2265#
SRCNAM 364 505# 2205
SRCNOB 509 525# 585
SRCOPN 293 2201#
SRNSET 287 362#
SRVDTB 286#
SSVDSC 2447
SSVDSS 2447
SSVHSC 2447
SSVHST 2447
STEPF 395 402
STMXDF 631 642#
STONOD 7594 7668 7689#
STRMS1 4955# 4958
STRMS6 4968 4973 4981#
STRMS7 4979 4982 4985#
STRMSG 4893 4913#
STRSAV 672 2446#
STRTYP 4921 6799
STS 414 422 605 606 607 627 629 708 713 781 824 839 858 877
2559 3010 3282 3376 3445 3501 3517 3526 3541 3604 3607 3788 3816 3821
3824 4210 4226 4234 4250 4303 4470 4477 4746 4747 4749 4775 5520 6099
T1 290 291 292 299 300 301 302 303 304 305 309 310 317 327
328 329 337 338 339 340 341 342 343 347 348 362 375 385
404 418 421 425 430 438 442 443 479 484 516 518 523 524
534 535 567 569 570 583 584 590 591 615 616 626 643 646
648 657 660 667 674 692 694 696 697 699 700 704 711 722
750 753 754 755 756 757 759 760 762 763 780 784 809 811
826 829 830 831 832 833 834 841 844 845 846 847 848 849
856 867 875 885 895 896 897 898 901 902 913 914 917 918
919 926 941 946 947 949 950 986 996 997 998 1004 1005 1009
1010 1018 1019 1024 1026 1027 1042 1060 1068 1069 1096 1099 1100 1104
1105 1112 1115 1123 1124 1125 1128 1147 1149 1150 1155 1156 1158 1163
1167 1174 1179 1188 1191 1192 1204 1205 1249 1264 1267 1271 1273 1280
1281 1282 1290 1292 1294 1295 1296 1314 1334 1343 1347 1365 1368 1382
1412 1413 1414 1415 1417 1419 1421 1424 1430 1431 1434 1440 1454 1455
1476 1477 1481 1486 1492 1493 1494 1521 1522 1526 1528 1535 1536 1537
1538 1542 1543 1549 1555 1567 1568 1571 1572 1577 1580 1582 1584 1590
1592 1606 1621 1622 1623 1625 1635 1639 1642 1644 1651 1652 1655 1663
1665 1681 1695 1696 1700 1701 1709 1715 1723 1724 1727 1728 1740 1752
1763 1764 1773 1806 1811 1812 1816 1817 1821 1822 1825 1827 1828 1843
1848 1852 1853 1854 1855 1861 1867 1870 1873 1876 1880 1885 1887 1890
1894 1895 1896 1897 1899 1902 1903 1910 1911 1913 1919 1921 1924 1926
1933 1939 1941 1949 1958 1965 1967 1968 1970 1972 1973 1975 1977 1978
1981 1984 1987 1990 1995 1997 1999 2007 2017 2029 2054 2055 2063 2064
2065 2066 2067 2068 2069 2071 2074 2075 2076 2077 2078 2079 2082 2083
2084 2086 2088 2089 2101 2105 2106 2111 2112 2113 2117 2118 2119 2121
2131 2141 2144 2146 2148 2168 2169 2204 2209 2213 2215 2216 2219 2223
2227 2229 2234 2237 2240 2243 2244 2253 2257 2266 2269 2274 2298 2304
2305 2308 2314 2317 2318 2319 2320 2322 2337 2340 2346 2355 2360 2365
2381 2384 2387 2453 2463 2487 2496 2509 2531 2533 2535 2553 2565 2568
2570 2575 2576 2580 2583 2584 2597 2602 2621 2657 2686 2687 2737 2749
2756 2764 2766 2767 2799 2800 2803 2814 2817 2820 2823 2831 2834 2836
2838 2849 2856 2862 2865 2868 2877 2878 2899 2900 2908 2909 2919 2920
2929 2930 2932 2960 2961 2962 2964 2976 2980 2981 2997 3011 3013 3031
3036 3037 3043 3045 3060 3061 3084 3110 3113 3115 3116 3119 3120 3122
3123 3124 3129 3133 3136 3147 3162 3165 3171 3173 3183 3186 3189 3194
3210 3215 3227 3238 3242 3249 3265 3324 3326 3333 3334 3343 3345 3348
3353 3354 3357 3362 3368 3379 3390 3403 3404 3406 3407 3428 3430 3440
3450 3454 3468 3471 3472 3474 3475 3476 3497 3502 3505 3512 3516 3520
3525 3528 3531 3534 3535 3544 3548 3559 3568 3570 3573 3580 3581 3585
3586 3594 3598 3600 3617 3618 3626 3627 3629 3630 3631 3640 3643 3644
3647 3648 3674 3700 3702 3704 3708 3720 3724 3725 3726 3732 3733 3734
3735 3740 3752 3757 3760 3761 3765 3768 3780 3781 3782 3792 3793 3814
3815 3822 3834 3837 3838 3840 3841 3842 3855 3857 3872 3873 3880 3881
3882 3884 3885 3887 3889 3900 3911 3920 3921 3930 3939 3949 3951 3960
3961 3970 3980 3987 3996 4008 4009 4012 4015 4017 4025 4029 4030 4032
4034 4038 4046 4048 4049 4050 4052 4055 4056 4067 4069 4079 4080 4092
4093 4097 4099 4100 4111 4120 4122 4142 4145 4153 4183 4184 4202 4205
4208 4209 4216 4218 4221 4222 4224 4246 4251 4266 4269 4270 4271 4272
4273 4274 4276 4278 4281 4284 4287 4292 4294 4297 4301 4302 4313 4314
4316 4326 4329 4330 4338 4339 4340 4345 4368 4375 4378 4402 4406 4407
4408 4411 4414 4416 4421 4425 4426 4428 4430 4431 4433 4435 4436 4440
4478 4481 4483 4496 4497 4500 4501 4504 4505 4506 4520 4521 4523 4530
4531 4659 4666 4715 4716 4723 4724 4740 4757 4758 4761 4764 4767 4768
4772 4773 4774 4778 4781 4815 4816 4825 4826 4833 4838 4841 4844 4845
4847 4848 4849 4899 4900 4905 4936 4937 4939 4966 4967 4969 4970 4974
4975 4981 4983 4991 4994 4995 5021 5022 5024 5032 5034 5035 5040 5041
5042 5048 5049 5051 5052 5056 5057 5058 5069 5074 5082 5085 5088 5090
5095 5098 5099 5100 5111 5192 5204 5205 5207 5209 5211 5214 5217 5220
5223 5224 5227 5228 5233 5244 5248 5252 5253 5260 5264 5269 5276 5278
5281 5282 5303 5308 5311 5313 5317 5322 5324 5331 5332 5335 5336 5337
5339 5346 5349 5351 5352 5353 5373 5378 5393 5405 5412 5418 5421 5429
5439 5441 5446 5447 5448 5449 5454 5456 5476 5485 5486 5487 5494 5496
5509 5511 5513 5517 5529 5531 5533 5535 5546 5547 5577 5579 5580 5589
5597 5603 5607 5608 5623 5646 5648 5654 5656 5666 5667 5670 5673 5674
5685 5698 5699 5702 5707 5710 5712 5713 5714 5723 5734 5745 5775 5786
5787 5796 5820 5830 5836 5840 5845 5849 5856 5864 5866 5867 5873 5876
5878 5884 5886 5889 5890 5892 5899 5914 5919 5920 5921 5924 5925 5927
5933 5937 5943 5944 5945 5951 5970 5982 5985 5998 6009 6014 6015 6016
6019 6022 6023 6026 6032 6033 6034 6045 6047 6052 6053 6056 6057 6066
6068 6072 6073 6075 6076 6079 6082 6083 6095 6100 6102 6122 6126 6127
6259 6261 6264 6266 6278 6280 6293 6326 6328 6330 6335 6336 6340 6347
6348 6369 6374 6375 6383 6386 6409 6411 6413 6415 6416 6417 6419 6422
6423 6425 6428 6429 6437 6438 6439 6440 6446 6448 6449 6458 6467 6475
6494 6496 6497 6499 6512 6538 6553 6555 6563 6564 6567 6572 6583 6607
6610 6612 6615 6619 6635 6636 6644 6655 6656 6657 6659 6661 6663 6669
6671 6672 6674 6678 6684 6687 6688 6701 6705 6744 6753 6756 6757 6758
6759 6762 6787 6788 6791 6792 6794 6795 6796 6831 6832 6834 6835 6836
6837 6841 6842 6843 6853 6857 6860 6861 6863 6864 6865 6886 6887 6904
6909 6910 6914 6917 6918 6920 6921 6922 6926 6929 6932 6950 6952 6961
6963 6965 6969 6984 6985 6986 6991 6993 6994 7015 7021 7044 7045 7074
7077 7078 7083 7084 7086 7088 7090 7095 7098 7109 7112 7113 7114 7116
7128 7129 7130 7132 7133 7146 7149 7164 7166 7176 7177 7180 7181 7199
7200 7214 7218 7221 7246 7249 7250 7267 7268 7269 7271 7299 7300 7306
7311 7313 7319 7344 7345 7353 7365 7366 7368 7372 7374 7384 7385 7394
7395 7401 7402 7404 7405 7406 7408 7420 7427 7428 7429 7431 7433 7434
7448 7454 7455 7456 7457 7458 7464 7465 7467 7468 7469 7471 7472 7479
7481 7483 7485 7489 7491 7493 7495 7509 7511 7512 7516 7523 7524 7533
7534 7536 7543 7544 7546 7557 7558 7559 7573 7574 7583 7584 7585 7587
7588 7592 7593 7620 7621 7622 7639 7640 7642 7647 7664 7665 7666 7667
7693 7711 7718 7719 7721 7722 7723 7737 7738
T2 459 480 571 609 610 611 613 617 642 645 646 647 648 657
668 669 675 715 718 719 720 753 795 798 801 861 869 870
880 920 927 929 930 951 984 985 991 1003 1005 1025 1026 1041
1061 1064 1101 1107 1113 1156 1157 1158 1159 1165 1166 1167 1175 1177
1186 1187 1204 1208 1289 1290 1291 1335 1368 1369 1383 1423 1425 1427
1430 1435 1476 1479 1487 1488 1489 1490 1493 1523 1538 1540 1549 1550
1553 1554 1555 1573 1578 1581 1582 1590 1591 1607 1624 1625 1635 1636
1637 1642 1643 1652 1653 1654 1655 1666 1683 1752 1807 1808 1809 1813
1820 1821 1822 1837 1839 1845 1846 1847 1851 1852 1855 1856 1877 1881
1893 1895 1933 1934 1937 1939 1940 1950 1953 1955 1959 1961 1962 1968
1969 1970 1973 1974 1975 1979 1982 1985 1990 1995 1997 2000 2007 2043
2044 2046 2047 2048 2050 2069 2070 2074 2076 2084 2085 2086 2087 2102
2103 2104 2110 2114 2115 2116 2117 2119 2120 2121 2132 2140 2141 2143
2146 2148 2161 2165 2167 2171 2178 2179 2210 2212 2220 2224 2227 2228
2230 2253 2255 2258 2299 2309 2323 2333 2335 2342 2344 2351 2353 2361
2364 2365 2367 2382 2385 2389 2390 2391 2394 2398 2401 2404 2411 2419
2422 2429 2430 2432 2433 2449 2450 2458 2464 2475 2476 2478 2484 2485
2486 2493 2510 2527 2528 2530 2531 2533 2537 2550 2552 2555 2557 2563
2564 2565 2566 2567 2571 2572 2574 2575 2578 2582 2593 2596 2600 2606
2613 2618 2619 2624 2625 2640 2643 2654 2659 2662 2663 2686 2696 2720
2738 2739 2740 2756 2766 2769 2780 2803 2804 2806 2808 2809 2811 2812
2834 2835 2838 2839 2849 2856 2865 2866 2868 2869 2877 2882 2899 2907
2908 2918 2919 2928 2929 2941 2942 2944 2945 2947 2949 2950 2951 2960
2987 2991 2995 3032 3036 3039 3045 3046 3054 3057 3060 3068 3069 3079
3103 3120 3121 3123 3125 3126 3129 3130 3131 3132 3133 3147 3148 3149
3150 3151 3165 3166 3167 3171 3172 3173 3176 3177 3187 3192 3194 3209
3210 3215 3216 3218 3220 3222 3223 3224 3232 3237 3238 3241 3242 3249
3250 3253 3265 3266 3275 3279 3302 3334 3335 3341 3347 3350 3361 3365
3368 3369 3371 3383 3390 3391 3392 3429 3430 3434 3440 3453 3454 3472
3473 3475 3477 3480 3486 3489 3519 3529 3543 3572 3576 3577 3578 3583
3584 3595 3596 3601 3627 3628 3630 3633 3634 3635 3640 3641 3643 3649
3651 3654 3663 3668 3673 3696 3700 3701 3702 3703 3704 3705 3706 3728
3741 3753 3759 3760 3762 3763 3770 3775 3782 3789 3790 3791 3792 3802
3838 3839 3841 3843 3847 3850 3886 3887 3888 3889 3897 3900 3901 3902
3908 3920 3922 3939 3940 3941 3957 3960 3962 3977 3980 3981 4012 4015
4016 4019 4030 4034 4050 4056 4057 4060 4067 4080 4081 4084 4085 4093
4094 4112 4113 4115 4117 4130 4141 4142 4144 4145 4152 4153 4168 4170
4172 4175 4181 4182 4184 4185 4186 4194 4205 4206 4213 4216 4284 4285
4288 4293 4295 4319 4321 4322 4324 4325 4330 4331 4334 4335 4347 4369
4375 4377 4383 4385 4389 4402 4403 4404 4416 4417 4422 4424 4426 4427
4429 4431 4441 4454 4455 4497 4498 4521 4525 4527 4528 4658 4659 4758
4759 4762 4766 4767 4782 4826 4827 4828 4845 4846 4859 4860 4862 4864
4865 4875 4877 4878 4879 4905 4914 4915 4920 4921 4925 4931 4934 4935
4938 4942 4943 4947 4950 4952 4953 4957 4971 4996 5023 5051 5053 5054
5055 5056 5059 5063 5064 5065 5066 5067 5070 5082 5083 5090 5091 5098
5101 5107 5125 5128 5132 5133 5134 5136 5139 5140 5156 5157 5159 5162
5163 5169 5172 5184 5185 5186 5190 5193 5203 5204 5206 5207 5208 5209
5213 5218 5219 5220 5222 5223 5225 5231 5240 5241 5242 5252 5257 5258
5264 5275 5276 5279 5281 5293 5296 5302 5303 5304 5309 5310 5314 5315
5320 5321 5322 5323 5324 5335 5349 5350 5374 5406 5410 5421 5422 5428
5429 5431 5445 5446 5452 5454 5455 5456 5462 5475 5478 5493 5494 5536
5539 5547 5548 5554 5556 5557 5558 5560 5564 5565 5570 5571 5587 5588
5590 5595 5606 5607 5608 5609 5625 5634 5638 5645 5646 5647 5648 5653
5654 5655 5656 5665 5666 5685 5686 5710 5711 5721 5722 5724 5734 5735
5753 5754 5755 5776 5779 5787 5788 5794 5812 5819 5823 5836 5843 5844
5845 5860 5861 5863 5868 5871 5873 5874 5876 5880 5885 5886 5887 5888
5944 5949 5955 5962 5963 5971 5999 6007 6008 6016 6017 6022 6048 6080
6081 6084 6092 6093 6101 6102 6126 6129 6141 6142 6145 6146 6156 6157
6159 6162 6163 6164 6166 6167 6171 6172 6174 6175 6176 6187 6188 6189
6192 6193 6201 6203 6204 6207 6217 6218 6221 6232 6233 6234 6236 6237
6239 6242 6245 6260 6270 6271 6274 6275 6276 6277 6282 6283 6290 6291
6317 6327 6329 6334 6337 6338 6366 6367 6371 6374 6381 6396 6407 6417
6429 6430 6437 6438 6469 6470 6473 6474 6534 6535 6536 6573 6594 6595
6598 6599 6600 6619 6620 6630 6632 6640 6645 6646 6657 6659 6661 6663
6669 6670 6672 6673 6744 6757 6760 6761 6762 6763 6766 6769 6770 6772
6792 6793 6796 6797 6799 6805 6807 6809 6811 6813 6815 6817 6819 6821
6823 6825 6827 6829 6861 6862 6865 6869 6871 6878 6884 6909 6911 6912
6918 6919 6921 6923 6926 6927 6928 6929 6931 6936 6939 6941 6943 6951
6957 6961 6964 6984 6987 6990 6991 6992 6993 7115 7129 7146 7148 7154
7163 7165 7176 7178 7179 7184 7185 7187 7189 7190 7198 7200 7202 7204
7215 7221 7222 7224 7226 7228 7232 7234 7238 7250 7251 7252 7305 7306
7307 7318 7319 7320 7322 7328 7329 7330 7331 7333 7338 7340 7347 7348
7349 7350 7354 7370 7371 7375 7383 7385 7400 7401 7404 7409 7426 7439
7443 7444 7446 7448 7450 7451 7465 7466 7476 7477 7478 7480 7481 7482
7483 7484 7485 7490 7491 7492 7493 7494 7495 7506 7508 7517 7518 7525
7526 7528 7532 7535 7537 7561 7562 7563 7572 7619 7620 7621 7623 7643
7693 7694 7695 7698 7710 7712 7737 7743
T3 419 438 439 440 441 445 458 462 463 464 481 485 486 508
519 520 526 527 529 532 563 565 568 571 575 657 670 676
677 716 717 719 721 779 786 818 952 973 974 1102 1106 1114
1115 1147 1148 1149 1157 1159 1329 1380 1406 1410 1415 1416 1418 1521
1531 1532 1574 1611 1612 1685 1740 1787 1789 1791 1811 1840 1841 1846
1847 1862 1864 1866 1867 1878 1898 1899 1900 1955 1958 2025 2029 2031
2032 2033 2044 2046 2103 2108 2109 2110 2143 2145 2159 2160 2162 2164
2165 2178 2221 2300 2301 2306 2346 2355 2387 2388 2392 2399 2402 2412
2414 2420 2423 2451 2454 2459 2461 2480 2482 2494 2511 2512 2514 2517
2559 2560 2561 2562 2566 2567 2574 2602 2604 2615 2639 2655 2673 2706
2718 2719 2721 2723 2735 2736 2737 2745 2747 2748 2775 2776 2777 2778
2783 2785 2786 2799 2802 2805 2807 2810 2813 2815 2819 2821 2825 2878
2879 2881 2883 2884 2885 2886 2889 2891 2900 2909 2910 2989 2993 3033
3040 3049 3050 3051 3052 3053 3062 3077 3083 3104 3138 3139 3140 3141
3142 3153 3174 3175 3177 3179 3182 3189 3190 3252 3274 3303 3304 3312
3313 3316 3343 3346 3347 3372 3431 3433 3482 3483 3485 3486 3487 3502
3503 3507 3508 3511 3514 3521 3522 3524 3532 3545 3546 3571 3572 3575
3612 3614 3615 3616 3617 3632 3634 3637 3645 3650 3651 3665 3674 3695
3696 3699 3701 3706 3720 3729 3738 3761 3762 3765 3766 3772 3807 3846
3847 3848 3863 3921 3922 4016 4017 4019 4020 4026 4028 4035 4047 4055
4065 4075 4076 4077 4095 4113 4114 4115 4116 4133 4135 4147 4167 4168
4169 4170 4171 4177 4181 4186 4187 4188 4189 4190 4191 4195 4256 4273
4289 4313 4318 4320 4323 4370 4377 4381 4383 4384 4385 4386 4399 4420
4427 4428 4429 4430 4439 4449 4451 4456 4478 4479 4499 4522 4835 4837
4839 4869 4876 4877 4879 4880 4926 4927 4959 4960 4961 4997 5022 5023
5060 5150 5176 5215 5230 5244 5248 5253 5260 5305 5306 5307 5317 5318
5345 5449 5477 5495 5496 5514 5515 5516 5517 5518 5530 5531 5532 5533
5591 5603 5663 5664 5667 5706 5813 5818 5819 5820 5821 5822 5823 5824
5825 5826 5868 5872 5878 5879 5881 5945 5950 5954 5955 5956 5972 6000
6005 6006 6015 6017 6021 6049 6097 6109 6111 6113 6125 6156 6157 6198
6218 6219 6220 6223 6259 6260 6273 6301 6318 6326 6327 6328 6329 6334
6348 6371 6372 6386 6387 6407 6408 6411 6412 6414 6422 6424 6426 6428
6430 6468 6484 6485 6487 6488 6489 6490 6491 6519 6520 6521 6524 6525
6526 6541 6542 6544 6545 6546 6547 6550 6551 6553 6554 6564 6565 6567
6568 6569 6593 6594 6595 6599 6615 6616 6617 6636 6637 6638 6640 6641
6745 6764 6765 6801 6803 6830 6831 6832 6877 6878 6885 6886 6887 6910
6911 6933 6934 6937 6938 6958 6960 7148 7152 7154 7163 7164 7165 7166
7225 7226 7227 7228 7320 7339 7340 7348 7350 7354 7359 7360 7371 7372
7375 7410 7426 7427 7446 7447 7476 7478 7479 7489 7520 7529 7535 7536
7563 7564 7566 7569 7570 7589 7590 7591 7597 7624 7625 7628 7630 7633
7644 7645 7649 7653 7656 7659 7660 7661 7662 7663 7671 7695 7698
T4 460 482 510 511 512 513 577 578 579 580 603 604 618 657
671 678 717 718 948 949 1151 1165 1166 1174 1176 1177 1186 1187
1191 1257 1267 1268 1272 1273 1304 1305 1407 1527 1549 1608 1609 1610
1681 1682 1683 1684 1773 1838 1839 1865 1935 1936 1937 2024 2031 2045
2050 2109 2113 2144 2145 2169 2170 2173 2174 2302 2407 2409 2410 2426
2428 2431 2452 2513 2514 2570 2571 2572 2663 2673 2674 2735 2739 2781
2782 2783 2786 2888 2889 2980 2982 2994 3046 3047 3048 3054 3057 3063
3076 3078 3105 3108 3109 3137 3146 3175 3176 3254 3276 3280 3298 3299
3300 3301 3305 3306 3307 3308 3310 3315 3435 3436 3441 3614 3615 3638
3645 3652 3653 3654 3662 3672 3676 3708 3719 3725 3736 3741 3768 3769
3773 4046 4047 4065 4066 4071 4072 4074 4075 4079 4081 4083 4085 4130
4134 4148 4183 4184 4187 4317 4318 4378 4379 4380 4381 4396 4397 4398
4401 4415 4420 4450 4451 4452 4457 4464 4656 4658 4661 4666 4792 4802
4838 4839 4870 4878 4887 4928 4954 4958 4962 5136 5142 5144 5151 5159
5166 5174 5177 5245 5249 5254 5261 5308 5309 5310 5313 5314 5315 5352
5354 5387 5388 5389 5450 5507 5508 5509 5510 5511 5512 5513 5514 5525
5604 5713 5715 5768 5769 5771 5790 5791 5837 5838 5948 5951 5954 5956
5964 5965 6004 6005 6014 6024 6025 6026 6027 6072 6074 6078 6079 6080
6081 6083 6085 6096 6110 6111 6112 6113 6164 6167 6173 6189 6190 6191
6198 6202 6206 6207 6292 6293 6368 6369 6413 6414 6494 6520 6522 6527
6593 6597 6598 6876 6880 6930 6931 6932 6934 7033 7034 7036 7039 7041
7057 7058 7059 7114 7117 7128 7131 7149 7150 7151 7152 7271 7272 7357
7438 7444 7452 7454 7456 7505 7506 7509 7556 7557 7558 7560 7569 7574
7625 7627 7628 7650 7651 7654 7657
TDSLLB 5696
TDSSTS 5696
TELDAT 5973 5996#
TELDIS 5659 5676 5695#
TELINT 2959 2976#
TELOBE 7087 7127#
TELOOK 7089 7109#
TIMWAT 3470 3789# 6755 6916
TL%EXM 991 1064 1208 1479 7743
TLDCNT 5996
TLDFLG 5996
TLDLLB 5996
TLDT10 6006 6010 6014#
TMSLLB 6043
TODCLK 2114 3789 4816 7057
TRNM10 6047#
TRNMSG 5939 6043#
TSKBLK 1565
TSKCHK 1880 1932#
TSKINI 927 4715#
TSKLOK 1577 1589#
TSKMAX 276# 591
TTGETS 7144#
TTREMS 7163#
TTSETH 787
TURNON 3879 5438 6122#
TWOBYT 2532 2538 2585 2695# 3134 3481 3707 6771 6810 6812 6814 6935
ULKPIP 1378#
ULKRET 2992 3010#
ULLCZQ 4753 4757 4759 4766 4768 4801
ULOKLL 703 1225# 1251 1252 1337 1349 1351 1385 1391 1826 1831 1872 1889 1923
2247 2268 2366 3400 5072 5094 5097 5196 5199 5202 5376 5380 5383 5409
5414 5417 5538 5542 5545 5594 5599 5602 5727 5730 5733 5778 5782 5785
6378 6380 6955 6968
UMODF 4715
UNLKF 368
UNQSEG 6495 6519#
VERBDY 4174 4180 4194#
VERIF 4943
VERSEG 4027 4165#
VERSET 289 324 402#
VERTYP 6871
VFYNOD 7720 7735#
W1 793 793# 794 795 798 801 814 1311 1311# 1312 1313 1314 1316 1319
1605 1605# 1606 1609 1615 2158 2158# 2164 2166 2172 2184 2201 2201# 2209
2212 2219 2234 2237 2240 2244 2245 2246 2254 2258 2266 2269 2279 2292
2292# 2298 2305 2308 2320 2321 2322 2337 2338 2340 2360 2371 2446 2446#
2453 2455 2467 2468 2495 2496 2500 2508 2508# 2509 2512 2520 2529 2529#
2530 2534 2535 2536 2541 2614 2614# 2615 2624 2633 2638 2638# 2639 2643
2646 2653 2653# 2658 2664 2665 2669 2677 2779 2779# 2780 2781 2789 2880
2880# 2882 2888 2895 3028 3028# 3031 3043 3048 3059 3072 3100 3100# 3119
3126 3132 3148 3150 3151 3156 3295 3295# 3313 3314 3319 3323 3323# 3413
4005 4005# 4028 4033 4059 4075 4079 4083 4084 4103 5364 5364# 5378 5384
5393 5397 6158 6158# 6159 6172 6175 6179 6464 6464# 6475 6478 6484 6487
6497 6499 6501 6502 6505 6506 6507 6519 6524 6538 6540 6541 6544 6564
6573 6575 6576 6577 6580 6581 6586 7244 7244# 7245 7256 7259
W2 1605 1605# 1607 1608 1615 2292 2292# 2371 2446 2446# 2456 2469 2472 2474
2475 2479 2481 2484 2485 2489 2490 2495 2500 2508 2508# 2510 2513 2520
2614 2614# 2621 2626 2633 2638 2638# 2640 2642 2646 2653 2653# 2654 2668
2670 2677 2880 2880# 2881 2890 2895 3295 3295# 3311 3314 3319 3323 3323#
3324 3328 3340 3370 3374 3378 3394 3413 4005 4005# 4060 4066 4071 4103
6158 6158# 6166 6176 6179 6464 6464# 6477 6500 6501 6505 6519 6525 6527
6537 6575 6576 6586
W3 2292 2292# 2371 2446 2446# 2473 2479 2490 2500 2508 2508# 2511 2516 2520
2614 2614# 2619 2626 2630 2633 2653 2653# 2657 2670 2677 3295 3295# 3303
3310 3311 3316 3319 4005 4005# 4072 4073 4103 6464 6464# 6586
WAITER 5046
WATBLK 3329 4204 4234#
WPN 7297 7705
WRTF 422 606 607 629
WSEGSZ 2578
$ACKCH 6465#
$ACKNO 6465# 6700#
$ACKTY 6700#
$ADHLD 969#
$ADIBL 1091#
$ADINB 1091#
$ADIPT 1091#
$ADIST 1091#
$ADNAB 969#
$ADNAD 969#
$ADNST 969#
$ASCCN 2616#
$BLKF 713# 858# 877# 3010# 3282# 3376# 3445# 3517# 3607# 3788# 4226# 4234# 4477# 5520#
6099#
$CDIBU 3424#
$CDICN 3424#
$CDIFL 3424#
$CDILL 3424#
$CDIOP 3425#
$CLNER 690#
$CLRLL 2061#
$CNFLN 3870#
$CNTLL 5329#
$CNTST 5329#
$CPLCN 456#
$CRLAT 2293#
$CRLCI 2293#
$CRLCN 2293#
$CRLDS 2293#
$CRLHS 2293#
$CRLOB 2293#
$DCCUR 693# 1836# 1837# 1874# 1891# 2265# 3402#
$DCMAX 1838#
$DEDDU 5046#
$DEDPR 5046#
$DELHL 1145#
$DIFLG 3465#
$DISRS 3465#
$DIUDA 3465#
$EOFF 3824#
$ERRF 3604# 3816# 3821# 4210# 4250# 4470#
$FILAT 675# 2706#
$FILIN 839# 3501# 3526#
$FILOU 824# 3541#
$FKNTC 7457# 7469#
$GNTCN 7551#
$INAAT 2379#
$INACN 2379#
$INALL 2379#
$INAPN 2379#
$INDAD 7504#
$INDBL 7504#
$INDER 7504#
$INDST 7504#
$INOLL 7070#
$INSCN 5912#
$INSFL 5912#
$INSLL 5912#
$IOMOD 2559#
$LASTM 1408#
$LITCN 7614#
$LKPCO 1327# 1378#
$LKPLL 1327#
$LLACT 1997# 2086# 2237# 2856# 5253#
$LLADD 1565#
$LLBFI 6022# 6034# 6066# 6079#
$LLBFO 7129# 7133#
$LLBLK 3465# 6465# 6700#
$LLBOM 1896# 3724# 3725# 3734#
$LLBPI 5944# 5951# 6083#
$LLBRP 3752# 3996# 5864# 5866# 6563# 6610#
$LLBSZ 1740# 1899# 3343# 3640# 4273# 4313# 4318# 4416# 5317#
$LLCIL 5388# 6705#
$LLDED 5088# 5099#
$LLDMT 4029# 4048# 4434# 6411# 6422#
$LLDRB 6068# 6076#
$LLDRC 757# 2929# 6439#
$LLDRV 1368# 2981# 5353# 5714# 6023# 6073# 7116# 7130#
$LLDRW 2930# 4024# 6423#
$LLDSC 1990# 2219# 2257# 2258# 5281#
$LLDSN 3702# 3704#
$LLDUM 6785# 6851#
$LLDWN 1421# 1542# 1961# 1973# 2148#
$LLFDI 1902# 2576# 2583# 2814# 4246# 5670# 5673#
$LLFDS 1852# 1984# 2076# 2308# 2337# 2338# 2346# 3189# 3194# 5224# 5228#
$LLFEM 1763# 3353# 3581# 3586# 3726# 3732#
$LLFIM 2817# 3532# 4221# 4269# 4297# 4301# 4406# 4411# 4436# 5920# 6009# 6019# 6026# 6053#
$LLFLI 1715# 3512# 3522# 3949# 4218# 4266# 4271# 4339#
$LLFLO 1709# 1723# 1727# 3348# 3546#
$LLFNA 4099# 4281# 4528# 4530#
$LLFNM 2063# 2305# 3173# 5223#
$LLFNN 4009# 4099# 4523# 4530# 6415#
$LLFOB 1528# 1987# 2079# 2245# 2800# 2831# 2862# 3162# 5418#
$LLFRK 756# 1933# 2121# 2227# 2960# 5335# 5890# 6438#
$LLHLK 1424# 2065# 2531# 5324# 5511# 5685# 6375# 6952#
$LLHO 1408#
$LLHST 1430# 1847# 2069# 2496# 2602# 2766# 5214# 5509#
$LLICT 5945# 5954# 5956# 6005# 6016# 6033# 6080#
$LLIDN 4034# 4093# 4184# 4378# 4428# 4521# 7149# 7164#
$LLIIC 6015# 6033# 6081#
$LLIIN 4183# 5820# 5836# 6744#
$LLIMS 2553# 4049# 4408# 6127#
$LLINT 1365# 2580# 2976# 5332# 5384# 5577# 5699# 5796# 5899# 6383# 6512# 6969# 7218#
$LLISN 3129# 3133# 6926# 6929#
$LLLNK 1280# 1415# 1555# 1949# 1965# 2119# 2131# 2143# 2144# 2533# 3147# 3780# 5513# 6328#
6374#
$LLLOC 2455# 2467# 2568# 2597# 2767# 5085# 5211# 5311# 6261# 6330# 6458# 6701# 6904#
$LLLSA 4500# 4505# 5580# 6409#
$LLLSC 4284# 4330# 4413# 4497# 4505#
$LLLWC 2823# 5447#
$LLMFC 3720# 3765# 5303# 5878# 6553# 6612# 6636#
$LLMIC 3113# 3135# 3889# 5456# 5873# 5876# 6961#
$LLMQI 646# 4046# 6126# 6413#
$LLMQO 648# 3761# 3921# 6910#
$LLMSG 3466#
$LLMSM 3739# 3768# 3930# 3939# 5884# 5886# 6555# 6564# 6567# 6571# 6615# 6643# 6963#
$LLNAM 2212# 2253# 2254# 5278#
$LLNDO 7109# 7112#
$LLOCT 7026# 7078# 7084#
$LLOPI 1695# 6122#
$LLOPT 1821# 1828# 1978# 2899# 5260# 5449# 5603#
$LLOPW 643# 1700#
$LLOUT 2032# 2046# 2050# 7019# 7036# 7037# 7041# 7045#
$LLPCT 2088# 2878# 5252#
$LLPIC 757# 2908# 5336#
$LLPII 757# 2919# 2961#
$LLPRT 2495# 2570# 5090# 5220# 5313# 5517# 6264# 6293# 6335# 6369# 6831# 6886#
$LLPSW 1999# 2240# 2877# 5248#
$LLQOU 3227# 3362# 3760# 3920# 3987# 6347# 6496# 6655# 6909#
$LLQUE 2017# 2054# 7031#
$LLQUN 3757# 3970# 6582# 6607# 6634# 6655#
$LLRCT 1264# 1270# 1290# 1292# 1295# 3911#
$LLRFK 1267# 1273# 1294#
$LLRSN 2077# 2799# 3368# 3390# 3440# 4145# 5494# 5648# 5656# 5666#
$LLSDE 3379# 5111# 5623# 5702# 5745#
$LLSOB 2083# 2838# 5207#
$LLSTA 1549# 1752# 2244# 2365# 2535# 2803# 2834# 2865# 2868# 2909# 3165# 3210# 3215# 3238#
3242# 3249# 3334# 3430# 3454# 3502# 3887# 3900# 3960# 3980# 4142# 4153# 4205# 5082#
5098# 5204# 5421# 5429# 5446# 5496# 5547# 5608# 5646# 5654# 5667# 5734# 5787# 6102#
6386# 7221#
$LLSWG 1773# 2565# 2575# 3265# 5308# 5322#
$LLTRC 5964# 6085#
$LLTRM 5937# 5965# 6027# 6056#
$LLTRN 3873# 3881# 3884#
$LLTSK 1582# 1590# 1895# 1939# 1981# 2355# 2756# 5276#
$LLTTY 4758# 4767#
$LLUCT 2067# 2900# 5264# 5454# 5607#
$LLUPL 1419# 1535# 1955# 1959# 1968# 2146#
$LLUSR 1995# 2084# 2234# 2849# 5244#
$LLVEC 2980# 5352# 5713# 6014# 6072# 7114# 7128#
$LNKAD 6465#
$LNKID 1408#
$MBLOC 3554# 3693#
$MCBCL 4751#
$MDPTR 4445#
$MLODR 3554#
$MSCNT 4845# 6260# 6327# 6334# 6993# 7180#
$MSDTC 3046# 3654# 4113# 4170# 4383# 5533# 6113# 7154# 7226#
$MSGBL 4109# 4165# 4721# 6751# 7174#
$MSGBY 4109# 4165# 4364# 4721# 7174#
$MSGCN 4109# 4165# 4364# 4721# 7174#
$MSGDD 4721#
$MSGDM 4721#
$MSGDS 4721# 7174#
$MSGFL 2548# 2594#
$MSGHS 4721#
$MSGLC 4721#
$MSGLL 4006# 4109# 4721#
$MSGOB 4721#
$MSGSD 4721#
$MSGSG 4165#
$MSGSO 4721#
$MSGSR 4721# 7174#
$MSGW1 4721# 5046#
$MSGW2 4721#
$MSIZE 3554#
$MSLCL 4833# 4841# 6290# 6366#
$MSLLA 3148# 6329# 6932#
$MSLNK 4016# 4057# 4076# 4081# 4083# 4084# 4085# 4429# 4826# 5844# 6430# 6501# 6506# 6519#
6524# 6525# 6576# 6598# 6600# 6632# 6672# 7165# 7250#
$MSMFL 3126# 3696# 4019# 4117# 4403# 4877# 5306# 5558# 5571# 6371# 6407# 6564# 6640# 7200#
$MSMS1 6271# 6274#
$MSNAK 6580# 6630# 6645#
$MSPRT 4838# 4900# 4915# 5022# 5185# 5219# 5516# 6991#
$MSPST 6337# 6448# 6674# 6684#
$MSRLS 6446# 6687#
$MSSEG 3132# 3706# 4060# 4065# 4186# 4377# 4427# 5819# 6487# 6544# 6931# 7148# 7163#
$MSTOM 3150# 3651# 6484# 6541# 6934#
$MVMBF 4366#
$MVMCN 4366#
$MVMFL 4366#
$MVMLL 4366#
$MVMMA 4366#
$MVNLL 4090#
$MVSPT 1679#
$NAKFL 7174#
$NAMCN 2481# 4931# 4966#
$NDVNO 7705#
$NETCH 855#
$NMVCN 3296#
$NMVPT 3296#
$NODMS 6785# 6851#
$NODNA 7297#
$NODPR 6785# 6851#
$NSPNU 4303#
$NSPSR 197 197#
$NTATB 2164#
$NTATC 2165#
$NTATE 2178#
$NTATR 2160#
$NTCCH 1042# 7448# 7454#
$NTCFR 1041# 7446# 7456# 7465#
$NTCIB 652#
$NTCNT 363# 376# 386# 652# 2202#
$NTDDS 363#
$NTDSC 376# 652# 2202#
$NTDSS 363# 376# 652# 2202#
$NTHSC 376# 652#
$NTHST 376# 652#
$NTOBJ 363# 376# 652# 2202#
$NTPNT 363# 376# 386# 652# 2202#
$NTRCB 3180#
$OBELL 7127#
$OBJPT 1475#
$OPNF 708#
$OPTDA 3247# 3272#
$PRFXL 2721#
$PRFXV 2719#
$PRTCN 6983#
$PRTNO 6983#
$RDICN 3029#
$RDIPT 3029#
$RDIRT 3029#
$READF 414# 607# 627#
$RMNNA 1055#
$RNDF 605#
$SAVAD 2100#
$SAVBL 1802# 1948# 2130# 3833#
$SAVBS 1802#
$SAVER 1802#
$SAVFF 6267#
$SAVLL 3833# 6258#
$SAVMS 6258#
$SAVOP 3833#
$SAVPS 6267#
$SAVST 1802#
$SBFLL 6071#
$SIMCN 3101#
$SIMLL 3101#
$SIMPT 3101#
$SIMRT 3101#
$SNDLB 6903#
$SNDLC 6903#
$SNDLM 6903#
$SNDLT 6903#
$SNLBL 6325# 6360#
$SNMSG 6325# 6360#
$SNTBL 7389#
$SNTCN 7389#
$SQALL 4518#
$SQICN 4263#
$SQLLL 4494#
$SSVDS 2447#
$SSVHS 2447#
$STEPF 395# 402#
$TDSLL 5696#
$TDSST 5696#
$TLDCN 5996#
$TLDFL 5996#
$TLDLL 5996#
$TMSLL 6043#
$TSKBL 1565#
$UNLKF 368#
$W1 793# 1311# 1605# 2158# 2201# 2292# 2446# 2508# 2529# 2614# 2638# 2653# 2779# 2880#
3028# 3100# 3295# 3323# 4005# 5364# 6158# 6464# 7244#
$W2 1605# 2292# 2446# 2508# 2614# 2638# 2653# 2880# 3295# 3323# 4005# 6158# 6464#
$W3 2292# 2446# 2508# 2614# 2653# 3295# 4005# 6464#
$WAITE 5046#
$WRTF 422# 606# 607# 629#
%BLKF 713 858 877 3010 3282 3376 3445 3517 3607 3788 4226 4234 4477 5520
6099
%CNTFL 3310 3311 3486 3487 3488 3847 3848 3849
%DCCUR 693 1836 1837 1874 1891 2265 3402
%DCMAX 1838
%EOFF 3824
%ERRF 3604 3816 3821 4210 4250 4470
%FILAT 675 2706
%FILIN 839 3501 3526
%FILOU 824 3541
%FKNTC 7457 7469
%INIRC 4916 4918 4985 4987 5054
%INISN 4990 5054 6835 6837
%IOMOD 2559
%LLACT 1997 2086 2237 2856 5253
%LLBFI 6022 6034 6066 6079
%LLBFO 7129 7133
%LLBOM 1896 3724 3725 3734
%LLBPI 5944 5951 6083
%LLBRP 3752 3996 5864 5866 6563 6610
%LLBSZ 1740 1899 3343 3640 4273 4313 4318 4416 5317
%LLCIL 5388 6705
%LLDED 5088 5099
%LLDMT 4029 4048 4434 6411 6422
%LLDRB 6068 6076
%LLDRC 757 2929 6439
%LLDRV 1368 2981 5353 5714 6023 6073 7116 7130
%LLDRW 2930 4024 6423
%LLDSC 1990 2219 2257 2258 5281
%LLDSN 3702 3704
%LLDWN 1421 1542 1961 1973 2148
%LLFDI 1902 2576 2583 2814 4246 5670 5673
%LLFDS 1852 1984 2076 2308 2337 2338 2346 3189 3194 5224 5228
%LLFEM 1763 3353 3581 3586 3726 3732
%LLFIM 2817 3532 4221 4269 4297 4301 4406 4411 4436 5920 6009 6019 6026 6053
%LLFLI 1715 3512 3522 3949 4218 4266 4271 4339
%LLFLO 1709 1723 1727 3348 3546
%LLFNA 4099 4281 4528 4530
%LLFNM 2063 2305 3173 5223
%LLFNN 4009 4099 4523 4530 6415
%LLFOB 1528 1987 2079 2245 2800 2831 2862 3162 5418
%LLFRK 756 1933 2121 2227 2960 5335 5890 6438
%LLHLK 1424 2065 2531 5324 5511 5685 6375 6952
%LLHST 1430 1847 2069 2496 2602 2766 5214 5509
%LLICT 5945 5954 5956 6005 6016 6033 6080
%LLIDN 4034 4093 4184 4378 4428 4521 7149 7164
%LLIIC 6015 6033 6081
%LLIIN 4183 5820 5836 6744
%LLIMS 2553 4049 4408 6127
%LLINT 1365 2580 2976 5332 5384 5577 5699 5796 5899 6383 6512 6969 7218
%LLISN 3129 3133 6926 6929
%LLLNK 1280 1415 1555 1949 1965 2119 2131 2143 2144 2533 3147 3780 5513 6328
6374
%LLLOC 2455 2467 2568 2597 2767 5085 5211 5311 6261 6330 6458 6701 6904
%LLLSA 4500 4505 5580 6409
%LLLSC 4284 4330 4413 4497 4505
%LLLWC 2823 5447
%LLMFC 3720 3765 5303 5878 6553 6612 6636
%LLMIC 3113 3135 3889 5456 5873 5876 6961
%LLMQI 646 4046 6126 6413
%LLMQO 648 3761 3921 6910
%LLMSM 3739 3768 3930 3939 5884 5886 6555 6564 6567 6571 6615 6643 6963
%LLNAM 2212 2253 2254 5278
%LLNDO 7109 7112
%LLOCT 7026 7078 7084
%LLOPI 1695 6122
%LLOPT 1821 1828 1978 2899 5260 5449 5603
%LLOPW 643 1700
%LLOUT 2032 2046 2050 7019 7036 7037 7041 7045
%LLPCT 2088 2878 5252
%LLPIC 757 2908 5336
%LLPII 757 2919 2961
%LLPRT 2495 2570 5090 5220 5313 5517 6264 6293 6335 6369 6831 6886
%LLPSW 1999 2240 2877 5248
%LLQOU 3227 3362 3760 3920 3987 6347 6496 6655 6909
%LLQUE 2017 2054 7031
%LLQUN 3757 3970 6582 6607 6634 6655
%LLRCT 1264 1270 1290 1292 1295 3911
%LLRFK 1267 1273 1294
%LLRSN 2077 2799 3368 3390 3440 4145 5494 5648 5656 5666
%LLSDE 3379 5111 5623 5702 5745
%LLSOB 2083 2838 5207
%LLSTA 1549 1752 2244 2365 2535 2803 2834 2865 2868 2909 3165 3210 3215 3238
3242 3249 3334 3430 3454 3502 3887 3900 3960 3980 4142 4153 4205 5082
5098 5204 5421 5429 5446 5496 5547 5608 5646 5654 5667 5734 5787 6102
6386 7221
%LLSWG 1773 2565 2575 3265 5308 5322
%LLTRC 5964 6085
%LLTRM 5937 5965 6027 6056
%LLTRN 3873 3881 3884
%LLTSK 1582 1590 1895 1939 1981 2355 2756 5276
%LLTTY 4758 4767
%LLUCT 2067 2900 5264 5454 5607
%LLUPL 1419 1535 1955 1959 1968 2146
%LLUSR 1995 2084 2234 2849 5244
%LLVEC 2980 5352 5713 6014 6072 7114 7128
%MO%CD 795 796
%MO%DA 801 802
%MO%IN 798 799
%MSCNT 4845 6260 6327 6334 6993 7180
%MSDTC 3046 3654 4113 4170 4383 5533 6113 7154 7226
%MSLCL 4833 4841 6290 6366
%MSLLA 3148 6329 6932
%MSLNK 4016 4057 4076 4081 4083 4084 4085 4429 4826 5844 6430 6501 6506 6519
6524 6525 6576 6598 6600 6632 6672 7165 7250
%MSMFL 3126 3696 4019 4117 4403 4877 5306 5558 5571 6371 6407 6564 6640 7200
%MSMS1 6271 6274
%MSNAK 6580 6630 6645
%MSPRT 4838 4900 4915 5022 5185 5219 5516 6991
%MSPST 6337 6448 6674 6684
%MSRLS 6446 6687
%MSSEG 3132 3706 4060 4065 4186 4377 4427 5819 6487 6544 6931 7148 7163
%MSTOM 3150 3651 6484 6541 6934
%NAMCN 2481 4931 4966
%ND%LP 4977 4979
%NSPNU 4303
%NTATB 2164
%NTATC 2165
%NTATE 2178
%NTATR 2160
%NTCCH 1042 7448 7454
%NTCFR 1041 7446 7456 7465
%NTSHU 5186 5188
%OPNF 708
%PRFXL 2721
%PRFXV 2719
%READF 414 607 627
%REQVE 4990 5054 6837 6840 6842 6844
%RNDF 605
%STEPF 395 402
%UNLKF 368
%WRTF 422 606 607 629
..0001 927# 927
..0002 937# 937
..0003 1185# 1185
..0004 1230# 1230
..0005 1342# 1342
..0006 1390# 1390
..0007 2039# 2039
..0010 2140# 2140
..0011 3450# 3450
..0016 4300 4305#
..0020 4906# 4906
..0021 5004# 5004
..0022 5012# 5012
..0023 5040# 5040
..0030 6622 6629#
..0032 6628# 6628
..GOKN 657# 657
..TSA1 368# 368 395# 395 402# 402 414# 414 422# 422 605# 605 606# 606
607# 607 627# 627 629# 629 708# 708 713# 713 824# 824 839# 839
858# 858 877# 877 1264# 1264 1295# 1295 1365# 1365 1528# 1528 1695# 1695
1700# 1700 1709# 1709 1715# 1715 1723# 1723 1727# 1727 1763# 1763 1896# 1896
1902# 1902 1959# 1959 1961# 1961 1987# 1987 2017# 2017 2054# 2054 2063# 2063
2065# 2065 2067# 2067 2077# 2077 2079# 2079 2088# 2088 2245# 2245 2338# 2338
2455# 2455 2467# 2467 2553# 2553 2568# 2568 2576# 2576 2580# 2580 2583# 2583
2597# 2597 2767# 2767 2800# 2800 2814# 2814 2817# 2817 2823# 2823 2831# 2831
2862# 2862 2930# 2930 2976# 2976 3010# 3010 3113# 3113 3162# 3162 3227# 3227
3282# 3282 3348# 3348 3353# 3353 3362# 3362 3376# 3376 3379# 3379 3445# 3445
3487# 3487 3501# 3501 3512# 3512 3517# 3517 3522# 3522 3526# 3526 3532# 3532
3541# 3541 3546# 3546 3581# 3581 3586# 3586 3604# 3604 3607# 3607 3724# 3724
3725# 3725 3726# 3726 3732# 3732 3734# 3734 3752# 3752 3757# 3757 3788# 3788
3816# 3816 3821# 3821 3824# 3824 3848# 3848 3873# 3873 3881# 3881 3884# 3884
3911# 3911 3930# 3930 3949# 3949 3970# 3970 3987# 3987 3996# 3996 4009# 4009
4049# 4049 4099# 4099 4210# 4210 4218# 4218 4221# 4221 4226# 4226 4234# 4234
4246# 4246 4250# 4250 4266# 4266 4269# 4269 4271# 4271 4281# 4281 4297# 4297
4301# 4301 4303# 4303 4339# 4339 4406# 4406 4408# 4408 4411# 4411 4436# 4436
4470# 4470 4477# 4477 4500# 4500 4505# 4505 4523# 4523 4528# 4528 4530# 4530
4833# 4833 4841# 4841 4916# 4977# 4985# 4990# 5054# 5085# 5085 5088# 5088 5099#
5099 5111# 5111 5186# 5211# 5211 5228# 5228 5311# 5311 5332# 5332 5384# 5384
5388# 5388 5418# 5418 5447# 5447 5520# 5520 5577# 5577 5580# 5580 5623# 5623
5670# 5670 5673# 5673 5699# 5699 5702# 5702 5745# 5745 5796# 5796 5864# 5864
5866# 5866 5899# 5899 5920# 5920 5937# 5937 5964# 5964 5965# 5965 6009# 6009
6019# 6019 6026# 6026 6027# 6027 6053# 6053 6056# 6056 6066# 6066 6068# 6068
6076# 6076 6085# 6085 6099# 6099 6122# 6122 6127# 6127 6261# 6261 6271# 6271
6274# 6274 6290# 6290 6330# 6330 6337# 6337 6366# 6366 6383# 6383 6409# 6409
6415# 6415 6446# 6446 6448# 6448 6458# 6458 6512# 6512 6563# 6563 6580# 6580
6607# 6607 6610# 6610 6612# 6612 6630# 6630 6645# 6645 6655# 6655 6674# 6674
6684# 6684 6687# 6687 6701# 6701 6705# 6705 6835# 6837# 6842# 6904# 6904 6969#
6969 7026# 7026 7031# 7031 7078# 7078 7084# 7084 7109# 7109 7112# 7112 7218#
7218 7457# 7469#
.A16 363 376 386 456 652 690 781 793 855 969 1055 1091 1145 1311
1327 1378 1408 1475 1565 1605 1679 1802 1948 2061 2100 2130 2158 2201
2202 2292 2293 2379 2446 2447 2508 2529 2548 2594 2614 2616 2638 2653
2779 2880 3028 3029 3100 3101 3180 3247 3272 3295 3296 3323 3424 3425
3465 3466 3554 3693 3833 3870 4005 4006 4090 4109 4165 4263 4364 4366
4445 4494 4518 4721 4749 4750 4751 5046 5329 5364 5696 5912 5996 6043
6071 6158 6258 6267 6325 6360 6464 6465 6700 6751 6785 6851 6903 6983
7070 7127 7174 7244 7297 7389 7504 7551 7614 7705
.AF 778# 779# 779 781# 781 1257# 1258# 1258 1289# 1290# 1290 1407# 1408# 1408
2593# 2594# 2594 4746# 4746 6437# 6438# 6438 6950# 6951# 6951 7704# 7705# 7705
.AM 778# 778 779 781# 781 1257# 1257 1258 1289# 1289 1290 1407# 1407 1408
2593# 2593 2594 4746# 4746 6437# 6437 6438 6950# 6950 6951 7704# 7704 7705
.ASSET 855 969 1055 1091 1475 1948 2061 2100 2130 3424 3465 3833 6071 6258
6325 6360 6700 6903 6983 7070 7127 7504
.BTSTS 7353 7642
.BTTPR 5024 7374
.DCX0 4673
.DCX1 4674
.DCX2 4675
.DCX21 5125
.DCX24 4683
.DCX3 4676 5190
.DCX32 4684
.DCX33 1540 4685
.DCX34 4686
.DCX35 4687 5128 5431
.DCX36 4688
.DCX37 4689
.DCX38 4690
.DCX39 4691 5066
.DCX4 1523 1538 4677
.DCX40 4144 4692 6092
.DCX41 4693 5410 5462 5539 5564 5595 5779
.DCX42 3392 4694 5638
.DCX43 4695 5493
.DCX5 4678 5134
.DCX6 4679
.DCX7 4680
.DCX8 4681
.DCX9 3341 4682 5625 5754
.GODNA 654 657
.GSSMB 2560
.ICAOV 7433
.ICNXP 7434
.INFIN 6049
.MOACN 726
.MOANT 741
.MOCC 738
.MOCIA 2941
.MOCLZ 737
.MONCI 2944
.MORAC 732
.MORCN 739
.MORDA 733
.MORHN 728
.MORIM 734
.MORLS 727
.MOROD 736
.MORPW 731
.MORSS 740
.MORTN 729
.MORUS 730
.MOSIM 735
.MOSNH 742
.N1 781# 781 4749# 4749
.NDBK1 7409 7560
.NDCHN 7427
.NDCNT 7401 7574
.NDCST 7485 7495
.NDCVR 7479
.NDECO 7483 7493
.NDFLG 7723
.NDLCB 7656
.NDLCN 7653
.NDLND 7663
.NDLNM 7645
.NDLOF 7659
.NDLON 7649
.NDLST 7660
.NDLSZ 7639 7661
.NDNAM 7506 7518 7591 7711
.NDNBS 7573 7583 7589
.NDNLN 7620 7623 7628
.NDNND 7404 7557 7569
.NDNOD 7306 7319
.NDNVR 7478
.NDNXT 7402 7526
.NDPRT 7348 7371 7385
.NDRVR 7489
.NDSOF 974 5059
.NDSON 951 4996 7587
.NDSTA 7509 7588
.NDVER 7481 7491
.NODE 7263#
.NPAC 793 1311 1605 2158 2201 2292 2446 2508 2529 2614 2638 2653 2779 2880
3028 3100 3295 3323 4005 5364 6158 6464 7244
.NSBFR 6074
.NSCND 5354
.NSDAT 6024
.NSDIS 5715
.NSINT 2982
.NSOBE 7131
.NSOMO 7115
.NSOOK 7117
.NTMAN 7752#
.PFACN 2191 2411
.PFBOP 2192 2193 2422
.PFBPW 2189 2190 2401
.PFOPT 2192 2193 2419
.PFPWD 2189 2190 2398
.PFUDT 2188 2391
.RESNP 1666 1813 6987
.RESP1 6986
.RESP2 1665
.RESP3 1663 1812
.SAV11 6950
.SAV12 6437
.SAV22 1289 2593
.SAV44 1257 1407
.SHESC 786
.SHTTY 780
.STKST 456 690 1145 1408 1679 2293 2379 2447 2548 2594 2616 3029 3101 3180
3247 3272 3296 3425 3466 3554 3693 3870 4006 4090 4263 4366 4445 4494
4518 4751 5329 5696 5912 5996 6043 6267 6465 6751 7297 7389 7551 7614
7705
.TRSET 363 376 386 652 1327 1378 1565 1802 2202 4109 4165 4364 4721 5046
6785 6851 7174
.VNCBL 7657
.VNCNL 7654
.VNDDC 7651
.VNMCB 7650
ACKCHL 6465# 6465 6468 6485 6542 6550
ACKNO 6465# 6465 6469 6474 6488 6534 6536 6545 6700# 6700 6769
ACKTYP 6700# 6700 6764
ACVAR 793 1311 1605 2158 2201 2292 2446 2508 2529 2614 2638 2653 2779 2880
3028 3100 3295 3323 4005 5364 6158 6464 7244
ADDONF 2135 2140
ADHLD 969# 969 996 1003
ADIBLK 1091# 1091 1100 1104 1112 1124
ADINBR 1091# 1091 1107 1114
ADIPTR 1091# 1091 1101
ADISTA 1091# 1091 1113 1123 1128
ADJBP 6192
ADNABR 969# 969 997 1018
ADNADR 969# 969 984 1009 1025 1037 1046
ADNSTA 969# 969 973
ASCCNT 2616# 2616 2618 2622
ASUBR 855 969 1055 1091 1475 1948 2061 2100 2130 3424 3465 3833 6071 6258
6325 6360 6700 6903 6983 7070 7127 7504
ATTENT 260# 2188 2189 2190 2191 2192 2193
BOOT 5025 7355 7376 7646
BUG 922 932 1180 1226 1338 1386 2034 2135 3446 4901 4999 5007 5036 6623
CALL 363 364 376 377 386 387 416 420 424 426 444 505 507 514
545 559 572 574 581 589 619 622 628 630 631 657 661 663
665 666 672 673 679 680 695 698 701 703 710 712 723 751
758 761 764 767 781 785 787 796 799 802 804 810 817 819
827 842 857 860 864 866 876 879 882 883 886 915 916 931
943 953 975 999 1011 1020 1043 1066 1070 1097 1103 1108 1116 1126
1161 1193 1222 1250 1252 1315 1333 1336 1337 1348 1349 1351 1381 1384
1385 1391 1432 1532 1569 1579 1640 1667 1814 1818 1823 1824 1826 1829
1831 1849 1863 1868 1869 1871 1872 1879 1882 1883 1886 1888 1889 1912
1918 1920 1922 1923 1951 1966 1971 1976 1980 1983 1986 1991 1996 1998
2001 2002 2008 2062 2072 2122 2133 2180 2205 2207 2217 2222 2225 2232
2235 2238 2241 2247 2259 2267 2268 2275 2310 2315 2324 2325 2334 2336
2339 2343 2345 2347 2352 2354 2356 2362 2366 2368 2386 2393 2395 2397
2400 2403 2405 2410 2413 2415 2421 2424 2431 2465 2488 2497 2532 2551
2556 2558 2601 2603 2605 2620 2629 2641 2656 2660 2667 2695 2746 2757
2758 2763 2833 2840 2847 2854 2875 2892 2905 2911 2916 2921 2926 2933
2959 2990 2996 2998 3012 3034 3041 3058 3081 3085 3106 3117 3127 3128
3134 3144 3145 3152 3169 3188 3193 3205 3207 3208 3225 3230 3239 3255
3257 3263 3277 3281 3284 3325 3327 3332 3344 3355 3373 3380 3381 3395
3397 3398 3399 3400 3405 3408 3437 3442 3452 3469 3478 3479 3481 3488
3495 3496 3498 3504 3515 3518 3525 3540 3556 3558 3560 3566 3567 3569
3574 3596 3597 3599 3603 3606 3613 3619 3620 3636 3639 3646 3655 3697
3698 3707 3808 3835 3844 3845 3849 3856 3864 3876 3878 3879 3898 3909
3918 3928 3937 3947 3958 3968 3978 3985 3994 4011 4021 4027 4031 4036
4051 4053 4068 4096 4118 4121 4131 4136 4143 4146 4149 4151 4173 4178
4179 4203 4215 4223 4225 4228 4229 4248 4249 4257 4275 4279 4290 4315
4327 4333 4373 4387 4390 4418 4423 4432 4482 4502 4526 4719 4729 4732
4733 4734 4736 4737 4739 4763 4779 4783 4791 4795 4867 4871 4906 4923
4929 4945 4948 4963 4972 4992 4998 5006 5061 5068 5071 5072 5093 5094
5097 5102 5103 5104 5105 5106 5107 5113 5114 5122 5127 5145 5147 5152
5167 5170 5178 5194 5195 5196 5198 5199 5202 5216 5221 5226 5232 5246
5250 5255 5262 5265 5266 5267 5270 5283 5291 5294 5344 5347 5354 5372
5375 5376 5379 5380 5383 5394 5400 5403 5407 5408 5409 5413 5414 5417
5430 5435 5437 5438 5440 5442 5451 5463 5466 5479 5482 5492 5497 5519
5527 5534 5537 5538 5541 5542 5545 5552 5572 5579 5582 5584 5586 5592
5593 5594 5598 5599 5602 5605 5613 5618 5625 5626 5631 5633 5657 5658
5668 5671 5675 5705 5708 5718 5720 5725 5726 5727 5729 5730 5733 5738
5747 5748 5756 5772 5774 5777 5778 5781 5782 5785 5793 5795 5799 5804
5806 5810 5814 5815 5828 5842 5846 5847 5854 5891 5894 5895 5901 5902
5922 5928 5939 5946 5973 5983 5986 6024 6050 6074 6094 6098 6104 6222
6243 6279 6283 6333 6339 6354 6376 6377 6378 6380 6389 6397 6418 6420
6427 6431 6441 6471 6495 6498 6508 6514 6574 6647 6658 6660 6662 6677
6706 6754 6767 6768 6771 6779 6789 6798 6800 6802 6804 6806 6808 6810
6812 6814 6816 6818 6820 6822 6824 6826 6828 6833 6840 6858 6870 6872
6879 6915 6924 6925 6935 6940 6942 6944 6953 6954 6955 6966 6968 6972
6988 7016 7017 7022 7023 7027 7046 7075 7087 7089 7096 7131 7144 7192
7194 7207 7216 7230 7255 7272 7308 7323 7411 7421 7514 7521 7530 7538
7545 7594 7668 7713 7720
CALLRE 546 782 871 1251 1392 1593 1656 1942 2003 2538 2585 2607 2697 2707
2770 2850 2857 2901 2965 2982 3195 3211 3217 3243 3259 3267 3608 3621
4098 4150 4154 4227 4348 5340 5649 5659 5676 5715 5764 6130 6295 6302
6319 6349 6361 6664 6746 6755 6888 6913 7117 7236 7239
CBLK1 983 1059 2023 7007 7580 7736
CDIBUF 3424# 3424 3435
CDICNT 3424# 3424 3432 3434
CDIFLG 3424# 3424 3443
CDILLB 3424# 3424 3428 3450
CDIOPT 3425# 3425 3433
CFORK 921
CHNOFF 1957 4824 7248
CHNON 1963 4830 7254
CLNERR 690# 690 692 704
CLRLLB 2061# 2061 2075 2092#
CLZDIN 3446 3450
CNFLNK 3870# 3870 3872 3880 3882
CNTLLB 5329# 5329 5331 5351
CNTSTS 5329# 5329 5345 5346 5350
CONCHK 922 932 1180 1226 1338 1386 2034 2135 3446 4901 4999 5007 5036 6623
CPLCNT 456# 456 458 463
CRLATR 2293# 2293 2299 2361
CRLCIB 2293# 2293 2317 2367
CRLCNT 2293# 2293
CRLDSC 2293# 2293 2301 2306 2332
CRLDSS 2293# 2293 2302 2309
CRLHSC 2293# 2293
CRLHST 2293# 2293
CRLOBJ 2293# 2293 2300 2304 2335 2344
DECR 693 1292 1874 1891 2265 3135 3402 3739 4024 4029 4048 4434 6496 6571
6634 6643
DEDDUM 5046# 5046
DEDPRT 5046# 5046 5053 5057 5063 5091
DEFAC 268 269 270 271
DEFSTR 263 264 265 266
DELHLD 1145# 1145 1148 1175
DIFLGS 3465# 3465 3477 3482
DISRSN 3465# 3465 3480
DIUDAT 3465# 3465 3485
DOLOC1 926 4905 5011 5040
DOLOC2 926 4905 5011 5040
DOLOCS 926 936 1184 1230 1342 1390 2038 2139 3450 4905 5003 5011 5040 6627
DTBBAD 290 291 292 299 300 301 302 303 304 305 309 310 317 327
328 329 337 338 339 340 341 342 343 347 348
DTBDSP 286 287 288 289 293 294 295 296 307 312 313 314 315 316
321 322 323 324 331 332 333 334 345 350 351 352 353 354
355
ELSE. 4299 4299# 4305# 6621 6621# 6629#
ENDAS. 856# 970# 1056# 1092# 1476# 1949# 2062# 2092 2101# 2131# 3425# 3466# 3834# 6072#
6259# 6326# 6361# 6701# 6904# 6984# 7071# 7128# 7505#
ENDAV. 794# 814 1312# 1319 1606# 1615 2159# 2184 2202# 2279 2293# 2371 2447# 2500
2509# 2520 2530# 2541 2615# 2633 2639# 2646 2654# 2677 2780# 2789 2881# 2895
3029# 3072 3101# 3156 3296# 3319 3324# 3413 4006# 4103 5365# 5397 6159# 6179
6465# 6586 7245# 7259
ENDIF. 4299 4299# 4305 4305# 6621 6621# 6629 6629#
ENDSV. 458# 692# 1147# 1410# 1681# 2295# 2381# 2449# 2550# 2596# 2618# 3031# 3103# 3182#
3249# 3274# 3298# 3427# 3468# 3556# 3695# 3872# 4008# 4092# 4265# 4368# 4447# 4496#
4520# 4753# 5331# 5698# 5914# 5998# 6045# 6269# 6467# 6753# 7299# 7391# 7553# 7616#
7707#
ENDTV. 363# 376# 386# 654# 1329# 1380# 1567# 1804# 2204# 4111# 4167# 4366# 4723# 5048#
6787# 6853# 7176#
ERJMP 988 1029 1063 1190 1207 5026 7356 7377 7507 7510 7519 7527 7582 7647
7696 7699 7740
GETBYM 4857 4873 4918 4932 4940 4955 5130 5137 5154 5160 5238 5858 5869 6139
6143 6160 6169 6185 6199 6230 6240 7182 7196
GGLOBS 197
GNTCNT 7551# 7551 7559 7567 7584
GTOKM 654
HDISMS 4741
IFNSK. 4299 6621
ILLSTR 5007 5012
INAATR 2379# 2379 2382 2392 2399 2402 2412 2420 2423
INACNT 2379# 2379 2390 2430 2432
INALLB 2379# 2379 2381 2384
INAPNT 2379# 2379 2388 2433
INCR 1270 1836 4413 6347 6555 6564 6582
INDADR 7504# 7504 7516 7523 7533 7544
INDBLK 7504# 7504 7505 7517 7525
INDERR 7504# 7504 7543 7546
INDSTA 7504# 7504 7511 7537
INOLLB 7070# 7070 7074 7077 7083 7086 7088 7090 7095 7098
INSCNT 5912# 5912 5949 5952 5971 5977
INSFLG 5912# 5912 5915 5950 5962 5972
INSLLB 5912# 5912 5914 5919 5924 5927 5933 5943 5948 5970 5982 5985
ITERR 7270 7273 7753
JE 1264 1365 1528 1709 1715 1987 2017 2079 2814 2830 2862 2976 3112 3162
3227 3362 3970 3987 3996 4049 4218 4408 4436 4988 5384 5699 5964 6009
6053 6122 6607 6612 6684 6705 6837 6969 7078 7109
JN 2579 2597 2822 3721 3751 3755 3873 3911 3930 4241 4281 4916 5085 5088
5109 5332 5418 5574 5620 5702 5743 5796 5896 5934 6018 6026 6066 6068
6383 6409 6446 6509 6557 6610 6674 7025 7084 7218
JXE 1265 1366 1529 1710 1716 1988 2018 2080 2814 2832 2863 2977 3114 3163
3228 3363 3971 3988 3997 4049 4219 4409 4437 4990 5385 5700 5964 6009
6054 6123 6564 6608 6613 6641 6685 6705 6838 6970 7110
JXN 2581 2598 2824 3725 3753 3758 3874 3912 3931 4247 4282 4917 5086 5089
5112 5333 5419 5578 5624 5703 5746 5797 5900 5938 6020 6026 6069 6384
6409 6447 6513 6564 6611 6675 7219
LASTM 1408# 1408 1411 1417 1427 1435 1440
LITCNT 7614# 7614 7622 7631 7640
LKPCOD 1327# 1327 1329 1369 1378# 1378 1380
LKPLLB 1327# 1327 1343 1347
LLADDR 1565# 1565 1567 1580
LLBLK 3465# 3465 3474 6465# 6465 6467 6700# 6700 6758
LLDUM 6785# 6785 6794 6851# 6851 6863
LLHO 1408# 1408 1410 1428 1431 1434
LLLKBD 1226 1230
LLLOCK 254# 1333 1381 1823 1869 1882 1918 3398 5068 5194 5372 5407 5534 5592
5725 5774 6376 6953
LLLULK 257# 1337 1349 1351 1385 1391 1826 1831 1872 1889 1923 2247 2268 2366
3400 5072 5094 5097 5196 5199 5202 5376 5380 5383 5409 5414 5417 5538
5542 5545 5594 5599 5602 5727 5730 5733 5778 5782 5785 6378 6380 6955
6968
LLMSGB 3466# 3466 3471 3489
LNKADR 6465# 6465
LNKID 1408# 1408 1412 1416 1418
LOAD 675 795 798 801 1041 1042 1267 1280 1290 1368 1415 1419 1421 1430
1535 1542 1549 1555 1590 1740 1752 1773 1828 1837 1838 1933 1939 1949
1955 1965 1968 1973 2032 2046 2069 2084 2086 2131 2143 2144 2164 2165
2178 2227 2253 2257 2258 2308 2337 2346 2355 2496 2531 2533 2535 2559
2565 2570 2602 2706 2721 2756 2766 2799 2803 2834 2838 2849 2856 2865
2868 2877 2878 2899 2900 2909 2960 2980 2981 3046 3129 3147 3165 3173
3189 3194 3215 3249 3265 3334 3343 3390 3440 3486 3502 3640 3702 3720
3760 3761 3765 3768 3780 3847 3900 3920 3921 3939 3960 3980 4016 4019
4034 4046 4060 4065 4076 4083 4093 4113 4117 4170 4183 4184 4205 4273
4284 4313 4318 4330 4377 4378 4383 4403 4416 4427 4429 4497 4521 4758
4826 4838 4845 4900 4915 4966 5022 5082 5090 5098 5185 5214 5219 5224
5244 5248 5253 5260 5276 5281 5306 5308 5313 5317 5335 5352 5353 5421
5449 5516 5547 5558 5571 5603 5608 5685 5713 5714 5734 5787 5820 5878
5890 5944 5945 5954 6005 6014 6015 6016 6022 6023 6072 6073 6126 6264
6328 6334 6335 6371 6374 6375 6386 6407 6411 6413 6438 6484 6487 6501
6506 6519 6524 6541 6544 6553 6564 6567 6576 6615 6632 6636 6640 6672
6744 6909 6910 6926 6952 7019 7036 7045 7114 7116 7128 7129 7130 7148
7149 7154 7163 7165 7180 7221 7250 7446 7465
LOCK 982 1058 1221 1246 2022 7006 7579 7735
MBLOCK 3554# 3554 3626 3637 3649 3693# 3693 3695 3699
MCBCLL 4751# 4751 4761 4764 4773 4782
MCENT 7263 7752
MCENTR 4718
MDISMS 3042 3330 3499 5076 5200 5381 5415 5443 5480 5543 5600 5731 5783 5829
5855
MDPTR 4445# 4445 4447 4465
MLODR 3554# 3554 3661 3677
MOVX 519 913 919 929 941 948 951 1096 1102 1106 1270 1292 1295 1695
1700 1723 1727 1763 1808 1862 1896 1902 1959 1961 2054 2063 2065 2067
2077 2088 2245 2338 2455 2467 2583 2613 3037 3135 3353 3379 3468 3725
3732 3734 3739 3881 3884 4024 4029 4048 4099 4221 4269 4271 4301 4339
4406 4413 4434 4500 4505 4528 4530 4715 4778 4841 4936 4977 4985 4990
4996 5054 5059 5099 5211 5228 5388 5447 5670 5673 5864 5866 5920 5965
6027 6049 6056 6076 6085 6274 6290 6337 6366 6415 6448 6555 6564 6571
6580 6582 6634 6643 6645 6655 6687 6835 6842 7031 7112 7115 7457 7469
7477 7512 7520 7529 7573 7585 7587 7722
MRETNG 7274
MSFRK 928
MSGBL 6751# 6751 6756 6772
MSGBLK 4109# 4109 4112 4120 4165# 4165 4172 4185 4194 4721# 4721 4844 4876 4899
4914 5021 5184 5218 5269 5305 5515 5529 5557 5570 5794 5818 5843 6109
7174# 7174 7177 7199 7224 7234 7238
MSGBYP 4109# 4109 4116 4165# 4165 4169 4364# 4364 4386 4421 4454 4721# 4721 4849
4859 4875 4920 4934 4942 4957 5132 5139 5156 5162 5240 5530 5860 5871
6110 6141 6145 6163 6171 6187 6192 6193 6201 6232 6242 7174# 7174 7179
7184 7198 7227
MSGCNT 4109# 4109 4114 4165# 4165 4171 4364# 4364 4384 4396 4415 4721# 4721 4846
4857 4873 4918 4932 4940 4955 5130 5137 5154 5160 5238 5532 5858 5869
6112 6139 6143 6161 6169 6185 6190 6199 6230 6240 7174# 7174 7181 7182
7196 7225
MSGDDC 4721# 4721 5141 5150 5282
MSGDML 4721# 4721 5165 5169 5172 5208 5476
MSGDST 4721# 4721 5124 5293 5405 5485 5487 5512 5535 5589 5723 5775 7174# 7174
7214
MSGFLG 2548# 2548 2550 2563 2594# 2594 2596 2606
MSGHSN 4721# 4721 4856 4869 5213 5507 5508 5591
MSGLCL 4721# 4721 4832 4843 5188 5210 5367 5471
MSGLL 4109# 4109 4111 4122
MSGLLB 4006# 4006 4008 4032 4038 4052 4069 4721# 4721 5205 5217 5227 5233 5387
5412 5439 5441 5546 5579 5597 5786 5830 5849 5856 6095 6100
MSGOBJ 4721# 4721 5140 5206 5275
MSGSDC 4721# 4721 5164 5176 5225 5231
MSGSGT 4165# 4165 4167 4177 4182
MSGSOB 4721# 4721 5163 5222 5402 5404 5426
MSGSRC 4721# 4721 5296 5323 5373 5433 5486 5510 5536 5559 5686 5724 5737 5776
7174# 7174 7215
MSGW1 4721# 4721 4947 4950 5046# 5046 5067 5241 5257 5302 5434 5475 5478 5565
5588 5634 5647 5655 5665 5669 5722 5753 5755 5771 5790 5837 6093 6239
MSGW2 4721# 4721 5304 6245
MSIZE 3554# 3554 3616 3632 3638 3652
MVMBFI 4366# 4366 4369 4422 4424 4440
MVMCNT 4366# 4366 4371 4397 4401 4441
MVMFLG 4366# 4366 4372
MVMLLB 4366# 4366 4368 4425 4433
MVMMAX 4366# 4366 4370 4398
MVNLLB 4090# 4090 4092 4097
MVSPTR 1679# 1679 1682 1684
NAKFLG 7174# 7174 7201 7206 7229
NDBDEL 1180 1185
NDINIT 932 937
NDVNOD 7705# 7705 7712 7718
NETCHR 855# 855 869
NMVCNT 3296# 3296 3302 3305
NMVPTR 3296# 3296 3301 3312
NODMSG 6785# 6785 6791 6829 6851# 6851 6860 6884
NODNAM 7297# 7297 7307 7311
NODPRT 6785# 6785 6787 6830 6834 6841 6851# 6851 6853 6885
NOINT 397 940 981 1057 1095 1220 1245 1275 2006 4755 7513 7578
NOP 4037 4547 4559 4571 4583 4595 4607 4619 4631 4645 4735 4780 7145
NOSKD1 1956 4014 4823 6353 6382 6406 6959
NOSKED 4756 4765
NOUT 1575 3184
NSPBPN 5036 5040
NSPFRK 922 927
NSPLNQ 2034 2039
NSPPHV 1386 1390
NSPPWA 1338 1342
NSPRSN 6623 6628
NSPRTH 4901 4906
NSPSTR 4999 5004
NTCIB 652# 652
NTCNT 363# 363 376# 376 386# 386 445 481 485 486 526 560 590 652#
652 2202# 2202
NTDDSC 363# 363
NTDSC 376# 376 525 529 652# 652 669 677 2202# 2202 2213 2221
NTDSS 363# 363 376# 376 535 652# 652 671 678 2202# 2202 2220
NTHSC 376# 376 562 568 652# 652 668
NTHST 376# 376 567 652# 652 670
NTOBJ 363# 363 376# 376 506 511 523 530 578 583 652# 652 676 2202#
2202 2210
NTPNT 363# 363 376# 376 386# 386 443 479 484 510 513 524 534 577
580 584 652# 652 2202# 2202
NTRCBN 3180# 3180 3183 3187
OBELLB 7127# 7127 7132
OBJPTR 1475# 1475 1487
OKINT 362 370 375 385 405 944 945 989 1001 1013 1022 1030 1033 1072
1079 1098 1118 1127 1233 1298 2009 3401 4770 4784 5113 5763 7540 7547
7603 7609
OKSKD1 1964 4018 4831 6355 6390 6395 6432 6967
OKSKED 4760 4769
OPSTR 643 1424 1978 1981 1984 1990 1995 1997 1999 2160 2254 2481 2719 2961
5278 5336 5873 5884 6439
OPSTRM 6423 6961 6963
OPTDAT 3247# 3247 3252 3272# 3272 3274
PIOFF 6683
PION 6689 6691
PRTCNT 6983# 6983 6992
PRTNO 6983# 6983 6990
RDICNT 3029# 3029 3047 3062
RDIPTR 3029# 3029 3033 3049 3053 3063
RDIRTN 3029# 3029 3032 3058
RESCD 893 1214 1404 1661 2525 2591 2685 3691 3894 4492 4789 5290 6134 6255
7054
RET 290 291 292 299 300 301 302 303 304 305 309 310 317 327
328 329 337 338 339 340 341 342 343 347 348 362 365 367
375 378 380 385 388 390 396 405 417 429 446 465 487 515
517 522 531 533 561 566 573 576 582 592 608 614 620 623
649 657 662 664 666 673 680 705 709 714 724 752 783 788
812 825 828 835 840 843 850 859 865 878 884 903 937 944
954 976 990 1002 1023 1031 1080 1098 1129 1162 1185 1190 1207 1209
1223 1230 1234 1249 1283 1299 1317 1342 1350 1370 1390 1426 1433 1441
1456 1491 1495 1524 1541 1570 1613 1626 1638 1641 1668 1686 1697 1702
1725 1729 1741 1753 1765 1774 1810 1815 1875 1892 1914 1925 1938 1952
2010 2039 2057 2073 2090 2107 2142 2147 2149 2163 2171 2177 2182 2206
2208 2218 2256 2260 2270 2276 2316 2434 2491 2515 2627 2671 2688 2741
2750 2787 2826 2833 2871 2906 2917 2927 2954 2963 2988 3014 3070 3080
3107 3111 3115 3118 3278 3283 3309 3356 3396 3438 3444 3451 3506 3527
3536 3542 3709 3742 3753 3759 3764 3771 3776 3783 3794 3836 3858 3959
3963 4022 4101 4132 4196 4217 4235 4280 4291 4374 4466 4471 4480 4484
4503 4529 4662 4754 4771 4817 5027 5033 5040 5043 5050 5084 5092 5271
5280 5284 5292 5295 5325 5338 5355 5368 5377 5395 5521 5687 5800 5807
5923 5939 5947 5984 6035 6051 6077 6114 6162 6165 6224 6235 6238 6244
6286 6341 6356 6433 6442 6450 6515 6523 6528 6539 6578 6601 6618 6628
6790 6859 6989 7014 7060 7076 7097 7100 7134 7147 7153 7167 7247 7257
7301 7309 7332 7346 7351 7356 7358 7367 7373 7396 7403 7407 7422 7430
7432 7436 7453 7515 7548 7568 7610 7632 7641 7648 7714 7741 7744
RETBAD 362 365 367 375 378 380 385 388 390 396 405 417 429 515
517 522 531 533 561 566 573 576 582 592 608 614 620 623
662 664 666 673 680 709 724 752 783 788 812 859 865 878
884 944 954 1098 1129 1162 1185 1190 1426 1433 1638 1641 1668 1810
2073 2163 2171 2177 2182 2206 2208 2218 2316 2491 2833 2871 2954 3014
3278 3309 3356 3396 3438 3444 3451 3858 4022 4235 4280 4291 4374 4471
4662 6790 6859 6989 7301 7309 7332 7346 7351 7356 7358 7367 7373 7396
7403 7407 7422 7430 7432 7436 7453 7515 7548 7568 7632 7641 7648 7714
RETERR 659
RETSKP 366 379 389 423 431 528 536 593 632 657 681 768 789 805
820 887 955 1014 1047 1073 1119 1194 1210 1253 1276 1352 1371 1429
1436 1482 1556 1583 1645 1669 1712 1718 1904 2123 2181 2248 2261 2277
2369 2457 2470 2498 2518 2675 2724 2759 2841 2867 2870 2893 2912 2922
2934 2943 2946 2953 2999 3064 3086 3154 3285 3317 3411 3455 3490 3602
3767 3774 3851 3890 3964 4013 4123 4137 4192 4341 4442 4507 4532 4667
4813 4818 5096 5113 5115 5285 5297 5522 5688 5926 5929 5978 6058 6087
6147 6177 6194 6208 6246 6707 6780 6844 6945 6956 6973 6995 7091 7155
7314 7324 7334 7341 7352 7361 7369 7379 7386 7419 7449 7459 7470 7473
7496 7541 7605 7676 7700 7724 7745
RMNNAM 1055# 1055 1061 1068
SAVADR 2100# 2100 2118
SAVBLK 1802# 1802 1816 1820 1827 1845 1851 1870 1873 1887 1894 1911 1919 1921
1926 1948# 1948 1967 1972 1977 2130# 2130 2140 3833# 3833 3837 3850
SAVBSZ 1802# 1802 1807 1898
SAVEAC 778 781 1257 1289 1407 2593 4746 6437 6950 7704
SAVEPQ 7004
SAVERR 1802# 1802 1825 1876 1885 1893 1910 1913 1941
SAVET 1144 1364 1589 1604 1932 2005 2252 2958 2979 4814 5081 5274 5328 5366
5695 5911 6257 6463 6668 7056
SAVFF 6267# 6267 6269 6285
SAVLL 3833# 3833 3840 6258# 6258
SAVMSG 6258# 6258
SAVOPT 3833# 3833 3846
SAVPST 6267# 6267 6278 6282
SAVSTR 1802# 1802 1806 1853 1877
SBFLLB 6071# 6071 6075 6078
SE1ENT 4719
SETONE 756 1695 1700 1727 1763 1896 1902 2245 2455 2467 3353 3379 3734 3881
4339 4406 4500 4528 4841 4977 4985 4990 5099 5211 5388 5447 5673 5864
5965 6027 6076 6085 6274 6290 6337 6366 6415 6580 6687 6835 7457
SETZRO 757 1294 1295 1723 1959 1961 2054 2063 2065 2067 2077 2083 2088 2338
2583 3487 3725 3732 3848 3884 4057 4099 4221 4269 4271 4301 4505 4530
5054 5228 5670 5844 5866 5920 6033 6034 6056 6448 6600 6645 6655 6842
7031 7037 7112 7133 7469
SIMCNT 3101# 3101 3105 3108 3137
SIMLLB 3101# 3101
SIMPTR 3101# 3101 3104 3138 3142 3153
SIMRTN 3101# 3101 3103 3144
SIN 461 483
SNDLBL 6903# 6903 6920
SNDLCT 6903# 6903 6941 6957
SNDLMS 6903# 6903 6917 6930 6943
SNDLTP 6903# 6903 6937 6958
SNLBLK 6325# 6325 6340 6360# 6360
SNMSG 6325# 6325 6360# 6360 6381 6396
SNTBLK 7389# 7389 7410 7415
SNTCNT 7389# 7389 7408 7417
SQALLB 4518# 4518 4520 4527
SQICNT 4263# 4263 4265 4277 4293 4311 4319
SQLLLB 4494# 4494 4496 4504
SSVDSC 2447# 2447 2450
SSVDSS 2447# 2447 2452
SSVHSC 2447# 2447 2449 2454 2480 2494
SSVHST 2447# 2447 2451 2463 2487 2493
STKVAR 456 690 1145 1408 1679 2293 2379 2447 2548 2594 2616 3029 3101 3180
3247 3272 3296 3425 3466 3554 3693 3870 4006 4090 4263 4366 4445 4494
4518 4751 5329 5696 5912 5996 6043 6267 6465 6751 7297 7389 7551 7614
7705
STOR 646 648 1273 1582 1821 1847 1852 1895 1899 2050 2076 2119 2121 2146
2148 2212 2219 2234 2237 2240 2244 2305 2365 2495 2575 2908 2919 2929
3126 3132 3133 3148 3150 3210 3238 3242 3310 3368 3430 3454 3651 3654
3696 3704 3706 3887 3889 4081 4084 4085 4142 4145 4153 4186 4428 4767
4877 4931 5204 5207 5220 5223 5252 5264 5303 5322 5324 5429 5446 5454
5456 5494 5496 5509 5511 5513 5517 5533 5607 5646 5648 5654 5656 5666
5667 5819 5836 5876 5886 5951 5956 6079 6080 6081 6083 6102 6113 6260
6293 6327 6329 6369 6422 6430 6525 6598 6831 6886 6929 6931 6932 6934
6991 6993 7041 7164 7200 7226 7448 7454 7456
SWAPCD 284 907 1307 1452 1671 2542 2634 2698 3796 4198 4538 4713 4821 5301
6228 7002 7262 7751
TBADD 1028
TBDEL 1189
TBLUK 987 1062 1206 1478 7739
TDSLLB 5696# 5696 5698 5712
TDSSTS 5696# 5696 5706 5707 5711
TLDCNT 5996# 5996 5999
TLDFLG 5996# 5996 6000 6007
TLDLLB 5996# 5996 5998 6004 6025 6032
TMNE 2553 2568 2576 2767 2800 2817 3348 3512 3522 3726 4009 4297 4411 4523
5186 5311 5580 6127 6261 6271 6330 6458 6701 6904
TMNN 2930 3532 3546 3581 3586 3949 4266 4833 6630
TMSLLB 6043# 6043 6045 6047 6052
TNXEND 197# 7755
TQNE 368 395 627 629 3604
TQNN 402 414 422 607 708
TQO 606 713 858 877 3010 3282 3376 3501 3607 3788 3816 3821 3824 4210
4226 4234 4250 4303 4470 4477 5520 6099
TQOE 3541
TQZ 3445 3517 3526
TQZE 605
TQZN 824 839
TRVAR 363 376 386 652 1327 1378 1565 1802 2202 4109 4165 4364 4720 5046
6785 6851 7174
TSKBLK 1565# 1565 1571 1581 1584 1592
TTITLE 196
TXC 2815 6233
TXNE 368 395 627 629 1841 2476 2554 2568 2577 2581 2598 2768 2801 2818
2824 3340 3349 3370 3374 3378 3513 3523 3604 3727 3758 3874 3912 3931
4010 4020 4247 4282 4298 4389 4412 4524 4943 5086 5112 5187 5311 5333
5419 5554 5560 5578 5581 5624 5703 5746 5791 5797 5872 5874 5900 5938
6020 6026 6069 6084 6128 6262 6272 6331 6372 6384 6408 6409 6459 6513
6569 6617 6675 6702 6905 7219
TXNN 402 414 422 607 656 708 991 1064 1208 1265 1366 1479 1529 1710
1716 1988 2080 2478 2814 2832 2863 2931 2977 3114 3163 3228 3328 3363
3394 3533 3547 3582 3587 3950 3971 3988 4049 4219 4267 4404 4409 4437
4834 4990 5385 5700 5861 5887 6009 6054 6123 6564 6608 6613 6631 6641
6685 6838 6970 7110 7300 7345 7366 7395 7743
TXO 606 713 858 877 2802 2805 2807 2810 2813 2819 2821 2825 3010 3282
3376 3501 3607 3725 3736 3788 3816 3821 3824 4094 4210 4226 4234 4250
4303 4470 4477 4525 5520 6021 6099 6221 6273 6770
TXOE 3541
TXZ 3445 3517 3526
TXZE 605 5812 6204
TXZN 824 839
UMOVE 779 780 786 794 2775 2883 2989 3076 3077 3078 3222 3253 3254 3275
3276 7267 7305 7306 7318 7319 7328 7329 7338 7347 7348 7370 7371 7383
7400 7401 7404 7426 7428 7476 7479 7489 7506 7509 7518 7526 7556 7557
7627 7710 7711
UMOVEM 753 818 2785 2839 2879 2891 2993 2994 3083 3172 3266 7340 7385 7478
7481 7483 7485 7491 7493 7495 7574 7581 7588 7591 7638 7645 7660 7663
7723
UNLOCK 909 910 911 912 988 1000 1012 1021 1029 1032 1071 1078 1231 2056
7013 7602 7608 7740 7742
WAITER 5046# 5046 5074 5095 5108
XCTBU 2783 2786 2889 3313 7695 7698
XCTBUU 2987 3079
XCTU 715 753 779 780 786 794 818 2775 2785 2839 2879 2883 2891 2989
2993 2994 3076 3077 3078 3083 3172 3222 3253 3254 3266 3275 3276 3279
7267 7305 7306 7318 7319 7328 7329 7338 7340 7347 7348 7370 7371 7383
7385 7400 7401 7404 7426 7427 7428 7476 7478 7479 7481 7483 7485 7489
7491 7493 7495 7506 7509 7518 7526 7556 7557 7569 7574 7581 7588 7591
7619 7620 7627 7628 7638 7645 7660 7663 7710 7711 7723
XGLOBS 197
XMOVEI 1577 7415
%BLKF 713 858 877 3010 3282 3376 3445 3517 3607 3788 4226 4234 4477 5520
6099
%DCCUR 693 1836 1837 1874 1891 2265 3402
%DCMAX 1838
%EOFF 3824
%ERRF 3604 3816 3821 4210 4250 4470
%FILAT 675 2706
%FILIN 839 3501 3526
%FILOU 824 3541
%FKNTC 7457 7469
%IOMOD 2559
%LLACT 1997 2086 2237 2856 5253
%LLBFI 6022 6034 6066 6079
%LLBFO 7129 7133
%LLBOM 1896 3724 3725 3734
%LLBPI 5944 5951 6083
%LLBRP 3752 3996 5864 5866 6563 6610
%LLBSZ 1740 1899 3343 3640 4273 4313 4318 4416 5317
%LLCIL 5388 6705
%LLDED 5088 5099
%LLDMT 4029 4048 4434 6411 6422
%LLDRB 6068 6076
%LLDRC 757 2929 6439
%LLDRV 1368 2981 5353 5714 6023 6073 7116 7130
%LLDRW 2930 4024 6423
%LLDSC 1990 2219 2257 2258 5281
%LLDSN 3702 3704
%LLDWN 1421 1542 1961 1973 2148
%LLFDI 1902 2576 2583 2814 4246 5670 5673
%LLFDS 1852 1984 2076 2308 2337 2338 2346 3189 3194 5224 5228
%LLFEM 1763 3353 3581 3586 3726 3732
%LLFIM 2817 3532 4221 4269 4297 4301 4406 4411 4436 5920 6009 6019 6026 6053
%LLFLI 1715 3512 3522 3949 4218 4266 4271 4339
%LLFLO 1709 1723 1727 3348 3546
%LLFNA 4099 4281 4528 4530
%LLFNM 2063 2305 3173 5223
%LLFNN 4009 4099 4523 4530 6415
%LLFOB 1528 1987 2079 2245 2800 2831 2862 3162 5418
%LLFRK 756 1933 2121 2227 2960 5335 5890 6438
%LLHLK 1424 2065 2531 5324 5511 5685 6375 6952
%LLHST 1430 1847 2069 2496 2602 2766 5214 5509
%LLICT 5945 5954 5956 6005 6016 6033 6080
%LLIDN 4034 4093 4184 4378 4428 4521 7149 7164
%LLIIC 6015 6033 6081
%LLIIN 4183 5820 5836 6744
%LLIMS 2553 4049 4408 6127
%LLINT 1365 2580 2976 5332 5384 5577 5699 5796 5899 6383 6512 6969 7218
%LLISN 3129 3133 6926 6929
%LLLNK 1280 1415 1555 1949 1965 2119 2131 2143 2144 2533 3147 3780 5513 6328
6374
%LLLOC 2455 2467 2568 2597 2767 5085 5211 5311 6261 6330 6458 6701 6904
%LLLSA 4500 4505 5580 6409
%LLLSC 4284 4330 4413 4497 4505
%LLLWC 2823 5447
%LLMFC 3720 3765 5303 5878 6553 6612 6636
%LLMIC 3113 3135 3889 5456 5873 5876 6961
%LLMQI 646 4046 6126 6413
%LLMQO 648 3761 3921 6910
%LLMSM 3739 3768 3930 3939 5884 5886 6555 6564 6567 6571 6615 6643 6963
%LLNAM 2212 2253 2254 5278
%LLNDO 7109 7112
%LLOCT 7026 7078 7084
%LLOPI 1695 6122
%LLOPT 1821 1828 1978 2899 5260 5449 5603
%LLOPW 643 1700
%LLOUT 2032 2046 2050 7019 7036 7037 7041 7045
%LLPCT 2088 2878 5252
%LLPIC 757 2908 5336
%LLPII 757 2919 2961
%LLPRT 2495 2570 5090 5220 5313 5517 6264 6293 6335 6369 6831 6886
%LLPSW 1999 2240 2877 5248
%LLQOU 3227 3362 3760 3920 3987 6347 6496 6655 6909
%LLQUE 2017 2054 7031
%LLQUN 3757 3970 6582 6607 6634 6655
%LLRCT 1264 1270 1290 1292 1295 3911
%LLRFK 1267 1273 1294
%LLRSN 2077 2799 3368 3390 3440 4145 5494 5648 5656 5666
%LLSDE 3379 5111 5623 5702 5745
%LLSOB 2083 2838 5207
%LLSTA 1549 1752 2244 2365 2535 2803 2834 2865 2868 2909 3165 3210 3215 3238
3242 3249 3334 3430 3454 3502 3887 3900 3960 3980 4142 4153 4205 5082
5098 5204 5421 5429 5446 5496 5547 5608 5646 5654 5667 5734 5787 6102
6386 7221
%LLSWG 1773 2565 2575 3265 5308 5322
%LLTRC 5964 6085
%LLTRM 5937 5965 6027 6056
%LLTRN 3873 3881 3884
%LLTSK 1582 1590 1895 1939 1981 2355 2756 5276
%LLTTY 4758 4767
%LLUCT 2067 2900 5264 5454 5607
%LLUPL 1419 1535 1955 1959 1968 2146
%LLUSR 1995 2084 2234 2849 5244
%LLVEC 2980 5352 5713 6014 6072 7114 7128
%MSCNT 4845 6260 6327 6334 6993 7180
%MSDTC 3046 3654 4113 4170 4383 5533 6113 7154 7226
%MSLCL 4833 4841 6290 6366
%MSLLA 3148 6329 6932
%MSLNK 4016 4057 4076 4081 4083 4084 4085 4429 4826 5844 6430 6501 6506 6519
6524 6525 6576 6598 6600 6632 6672 7165 7250
%MSMFL 3126 3696 4019 4117 4403 4877 5306 5558 5571 6371 6407 6564 6640 7200
%MSMS1 6271 6274
%MSNAK 6580 6630 6645
%MSPRT 4838 4900 4915 5022 5185 5219 5516 6991
%MSPST 6337 6448 6674 6684
%MSRLS 6446 6687
%MSSEG 3132 3706 4060 4065 4186 4377 4427 5819 6487 6544 6931 7148 7163
%MSTOM 3150 3651 6484 6541 6934
%NAMCN 2481 4931 4966
%NSPNU 4303
%NTATB 266# 2164
%NTATC 264# 2165
%NTATE 265# 2178
%NTATR 263# 2160
%NTCCH 1042 7448 7454
%NTCFR 1041 7446 7456 7465
%OPNF 708
%PRFXL 2721
%PRFXV 2719
%READF 414 607 627
%RNDF 605
%STEPF 395 402
%UNLKF 368
%WRTF 422 606 607 629
..0012 4299# 4305
..0013 4299# 4305
..0014 4299# 4305
..0015 4299# 4305
..0024 6621# 6629
..0025 6621# 6629
..0026 6621# 6629
..0027 6621# 6629
..CNS 607 607# 757# 757 4099# 4099 4505# 4505 4530# 4530 5054# 5054 6033# 6033
6655# 6655
..CNS2 607 607# 757# 757 4099# 4099 4505# 4505 4530# 4530 5054# 5054 6033# 6033
6655# 6655
..GCNS 607 757 4099 4505 4530 5054 6033 6655
..INDF 4299 6621
..JN 2580 2597 2823 3724 3752 3757 3873 3911 3930 4246 4281 4916 5085 5088
5111 5332 5418 5577 5623 5702 5745 5796 5899 5937 6019 6026 6066 6068
6383 6409 6446 6512 6563 6610 6674 7026 7084 7218
..RSDF 4305 6629
..STR3 607
..SVDF 4299 6621
..TAGE 4299 4301# 4305# 6621 6623# 6629#
..TAGF 4299 4301# 4305 4305# 6621 6623# 6629 6629#
..TYNE 2553 2568 2576 2767 2800 2817 3348 3512 3522 3726 4009 4297 4411 4523
5186 5311 5580 6127 6261 6271 6330 6458 6701 6904
..TYNN 2930 3532 3546 3581 3586 3949 4266 4833 6630
.ENAV1 814 1319 1615 2184 2279 2371 2500 2520 2541 2633 2646 2677 2789 2895
3072 3156 3319 3413 4103 5397 6179 6586 7259
.ENAV2 814 1319 1615 2184 2279 2371 2500 2520 2541 2633 2646 2677 2789 2895
3072 3156 3319 3413 4103 5397 6179 6586 7259
.ENAV3 814 1319 1615 2184 2279 2371 2500 2520 2541 2633 2646 2677 2789 2895
3072 3156 3319 3413 4103 5397 6179 6586 7259
.ENSV1 2092
.ENSV2 2092
.ENSV3 2092
.POPX 4305 6629
.POPX2 4305 6629
.POPX3 4305 6629
.POPX4 4305 6629
.PSHX 4299 6621
.PSHX1 4299 4299# 4305 4305# 6621 6621# 6629 6629#
.PSHX2 4299 6621
.XCMSY 197