Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/utilities/nft.list
There are no other files named nft.list in the archive.
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 1
NFT MAC 22-Feb-82 10:30
1 TITLE NFT Network file transfer utility for TOPS20 DECNET
SUBTTL D. Oran - P.J. Taylo
2 r 16-May-80
3
4 ;
5 ;
6 ;
7 ; COPYRIGHT (c) 1978,1979,1980 BY
8 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MA.
9 ;
10 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
11 ; AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE
12 ; AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS
13 ; SOFTWARE OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR
14 ; OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO TITLE TO
15 ; AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
16 ;
17 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE
18 ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
19 ; BY DIGITAL EQUIPMENT CORPORATION.
20 ;
21 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
22 ; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY
23 ; DIGITAL.
24
25
26
27
28 SEARCH GLXMAC ;Get Galaxy symbols
29 PROLOG (NFT)^
30 ^
31
32 SEARCH DAPSYM ;Get DAPLIB symbols
33
34 ;Version Information
35
36 000002 NFTVER==2 ;MAJOR VERSION OF NFT
37 000000 NFTMIN==0 ;MINOR VERSION OF NFT
38 000100 NFTEDT==100 ;EDIT LEVEL
39 000000 NFTWHO==0 ;WHO LAST EDITED (0=DEC DEVELOPMENT)
40
41 GLOB DAPEDT
42
43 000000000000# VNFT==<VRSN.(NFT)>+DAPEDT ;Get the version level
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 2
NFT MAC 22-Feb-82 10:30 Table of contents
44 SUBTTL Table of contents
45
46 ; TABLE OF CONTENTS FOR NFT
47 ;
48 ;
49 ; SECTION PAGE
50 ; 1. D. Oran - P.J. Taylor 9-May-79.......................... 1
51 ; 2. Table of contents......................................... 2
52 ; 3. Revision History.......................................... 3
53 ; 4. Constants and assembly parameters......................... 4
54 ; 5. LOCAL MACROS.............................................. 5
55 ; 6. Job version and entry vector.............................. 6
56 ; 7. Initialization blocks..................................... 6
57 ; 8. MAIN ENTRY POINT AND INITIALIZATION....................... 7
58 ; 9. Parser and Command dispatch............................... 8
59 ; 10. DELETE DIRECTORY SUBMIT and TYPE commands................. 13
60 ; 11. REMFIL Common parsing routine for remote filespec........ 14
61 ; 12. REMRTN Common Co-routine for DELETE SUBMIT and TYPE commands 15
62 ; 13. DIRRTN Co-routine for Directory command.................. 16
63 ; 14. OUTDEF Routine to default output file name................ 17
64 ; 15. HELP and EXIT commands.................................... 18
65 ; 16. INFORMATION command dispatch.............................. 19
66 ; 17. Information about DECNET.................................. 20
67 ; 18. Information about DEFAULTS................................ 21
68 ; 19. SET defaults command...................................... 22
69 ; 20. PARFIL Routine to parse a network file specification..... 24
70 ; 21. PARNOD Routine to parse NODE::........................... 25
71 ; 22. PARSWS Routine to parse switches......................... 26
72 ; 23. Switch processors......................................... 27
73 ; 24. OSTYPE Switch processor................................... 28
74 ; 25. GETUSR routine to ensure we have a user,account and password 29
75 ; 26. HLPUSR Routine to display access information for a node.. 30
76 ; 28. TAKE command.............................................. 31
77 ; 29. OUTNAM Routine to generate output file spec.............. 32
78 ; 30. OUTFLG Routine to set flags per what user typed.......... 33
79 ; 31. Routine to build destination string from wild information. 34
80 ; 32. CHKWLD Routine to validate wild construction............. 35
81 ; 33. FILDEF Routine to setup GTJFN file defaults.............. 36
82 ; 34. CPYFLD ROUTINE TO COPY A STRING UNTIL BREAK CHARACTER.... 37
83 ; 35. CHKPTR Routine to fix -1 type pointers................... 39
84 ; 36. DAPOPN Routine to Open logical link...................... 40
85 ; 37. DAPFNC Routine to perform one DAP function............... 41
86 ; 38. COMMAND ERROR SUBROUTINES................................. 42
87 ; 39. CMDINI Command parsing initialization routine............ 44
88 ; 40. Command field parsing routines............................ 4
89 ; 41. Command parsing error and reparse routines................ 46
90 ; 42. GENERAL SUBROUTINES....................................... 47
91 ; 43. NODGET Routine to build node recognition table........... 48
92 ; 44. NODADD Routine to add an entry to node table............. 49
93 ; 45. PSIINI Software interrupt system initialization.......... 50
94 ; 46. Interrupt service routines................................ 50
95 ; 47. Interrupt tables.......................................... 51
96 ; 48. Pure Data storage......................................... 52
97 ; 49. Impure storage............................................ 53
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 3
NFT MAC 22-Feb-82 10:30 Revision History
98 SUBTTL Revision History
99
100 COMMENT \
101
102 Edit Comment
103
104 0020 First field test of NFT version 2(20)
105 0021 Don't allow wild cards in remote retrieval
106 0022 MOVE QUOTED STRING TO FIRST CHOICE FOR REMOTE FILE SPEC.
107 THIS DISABLES RECOGNITION FOR ONE CHARCTER AFTER THE NODE.
108 Include DAPLIB version with NFT's version.
109 0023 FIX FILE BREAK TO ACCEPT <>; IN CASE GTJFN FAILS FOR BUMB
110 DEVICE NOT KNOWN TO THIS NODE DURING REMOTE FILE PARSING.
111 0024 ADD FILDEF ROUTINE TO SETUP GTJFN BLOCK DEFAULTS FROM
112 AN ASCIZ STRING.
113 0025 Fix a bug in OUTFLG that caused copy to fail when only
114 output device was specified.
115 0026 Fix a bug in switch parsing on copy to proceed to output
116 filespec if a space is typed after input filespec.
117 0027 Add directory code to display protection, filesize and
118 last update time
119 0030 Add interrupt cause to calls to D$INTR so it doesn't have
120 to interrogate link status for each interrupt
121 0031 Don't set GJ%OLD for file parsing in COPY (FROM)
122 0032 Add TYPE command.
123 0033 Remove GETUSR call from SET DEFAULT command
124 0034 Copy name on co-routine call from DAPLIB
125 0035 Impliment wild card remote file access and fix various bugs
126 0036 Fix connected directory structure bug so typing the local
127 node is transparent
128 0037 Change record format calling arguments to allow all DAP
129 record and file attributes to be passed.
130 0040 Remove reference to D$ERRS and use G1%SLN to suppress logical
131 name expansion for parsing remote filespeces
132 0041 Make Account, User and Password valid switches for all commands
133 which access remote files.
134 0042 Fix bug to allow actual remote filespec to be displayed for directory
135 and copy commands if it is known
136 0043 Fix bug to allow directory file names greater than 39 characters.
137 0044 Clear valid bits on password, user-id and account if connect to remote
138 node fails because of invalid password or invalid user-id.
139 0045 Fix bug in wild logic which cause *.%36 (TO) *.%36.-1 to fail.
140
141 *** Changes for DECnet-20 V3.0 begin here ***
142
143 0046 Add code to support PRINT command.
144
145 0047 Fix a bug in calls to D$CLOS which produced an invalid disconnect
146 reason code to be sent.
147
148 0050 Change all interrupt processing to use level 1 and make LEV1PC
149 global so it may be accessed in D$INTR.
150
151 0051 Add ^O trapping to type command to abort current file
152 being typed.
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 3-1
NFT MAC 22-Feb-82 10:30 Revision History
153
154 0052 Make node table dynamic to prevent illegal instruction traps.
155
156 0053 Save DSTFIL across call to DAPOPN so we don't loose track
157 of device and directory on wild card storage.
158
159 0054 Don't loose track of destination directory and device when
160 doing wild retrieves.
161
162 *** Engineering responsibility changes hands here ***
163
164 0055 Don't loose the destination file spec when calling CHKPTR.
165 This solves a class of problems in which the file is copied
166 to the wrong structure or directory.
167
168 0056 Don't leave out fields in the destination file spec.
169 Also, always generate file name and file type for
170 destination file. Again this solves problems concerning
171 files being copied to the wrong structure, directory, or
172 with a bad file name.
173
174 0057 Print error message when a bad switch is typed.
175
176 0060 Allow underscore, and dollar sign in user identification,
177 account field, and password. Some remotes allow such characters.
178
179 0061 Implement wildcards for tops-10, rsts, ias, amd 11m when
180 ppn or ; before generation is specified.
181
182 0062 Treat a file spec with the local node name as remote if both
183 files are local.
184 This resolves the problem of local node file access using NFT.
185 Without this change a user who had valid accounting info
186 to access a local directory was refused access because his
187 job didn't have local access privleges.
188
189 0063 Error messages for many things are very unclear.
190 Error messages for bad node name, file name or accounting
191 switches improved.
192
193 0064 The default for account and userid should be null. A null
194 password should be allowed. The help text should
195 be available for account userid and password.
196
197 0065 Allow all file names to be greater than 6 characters in length.
198
199 0066 When doing a DIR command, give a new node, volume, and
200 directory heading whenever either volume or directory
201 change.
202
203 0067 If the last written date is not provided print the
204 creation date.
205
206 0070 Add support for poor man's routing.
207
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 3-2
NFT MAC 22-Feb-82 10:30 Revision History
208 0071 The code which reads NFT.INIT uses code from the TAKE
209 command. Any error within this code can produce bad
210 error messages or a fatal NFT error.
211
212 0072 The code which displays INFO DECNET never marks nodes
213 offline if their status changes.
214
215 0073 The INFO DECNET code used the stack for the NODE temp
216 storage. If the number of available nodes is high, this
217 is too small. Listing should be alphabetical and neat.
218
219 0074 The Default file name routine FILGET parsed a device field
220 and stopped on $-_. These characters are valid logical name
221 characters on TOPS-20 and on remote systems. Allow them.
222
223 0075 Add status message when ^A is typed.
224
225 0076 In an effort to make security better, print a warning message
226 whenever a password is found in a command file which allows
227 read access to the world.
228
229 0077 Warn the user if NFT makes assumptions about the nodes
230 in file specifications.
231
232 0100 If the comnd JSYS gets a very unexpected error, NFT can
233 loop forever repeating the JSYS.
234
235 \ ;end revision history
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 4
NFT MAC 22-Feb-82 10:30 Constants and assembly parameters
236 SUBTTL Constants and assembly parameters
237
238
239 ;[0075] Externals
240
241 EXTERNAL PMRFLG,.DNINI,MESIN,MESOUT,LOCJFN,PAGFLG,PAGNUM
242 EXTERNAL LLSTAT
243
244 GLOB DATEND ;End of impure data
245
246 ;Constants
247
248 000001 XP DAPLNK,1 ;Request 1 logical link
249 000135 XP DEBUGW,135 ;DEBUGW
250 000200 XP MAXNOD,^D128 ;Starting size of node table
251 000400 ND PDLEN,400 ;Size of our stack
252 000020 XP GJFSIZ,20 ;Size of the GTJFN block
253 000040 XP FILSIZ,40 ;Maximum size of a file name
254 000020 XP NAMSIZ,20 ;Size of name string storage
255 111110 000001 XP FFSPEC,111110B17+JS%PAF ;Full file spec expansion
256
257 ;Interrupt channel assignments
258
259 000000 XP .ICCNO,0 ;Control-O channel
260 000001 XP .ICCDN,1 ;Connect/Disconnect
261 000002 XP .ICDAV,2 ;Data available
262 000003 XP .ICIMA,3 ;Interrupt message
263
264 ;Node data offsets
265
266 000000 PHASE 0
267 000000 ND$NAM: BLOCK 2 ;NODE NAME STRING
268 000002 ND$STA: BLOCK 1 ;NODE STATUS
269 000003 ND$OST: BLOCK 1 ;NODE OPERATING SYSTEM TYPE
270 000004 ND$DEV: BLOCK NAMSIZ ;DEFAULT DEVICE FOR NODE
271 000024 ND$USR: BLOCK NAMSIZ ;NODE USER STRING
272 000044 ND$ACT: BLOCK NAMSIZ ;NODE ACCOUNT STRING
273 000064 ND$PSW: BLOCK NAMSIZ ;NODE PASSWORD STRING
274 000104 ND$LEN==. ;ALLOCATION PER NODE
275 000104'00 DEPHASE
276
277
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 5
NFT MAC 22-Feb-82 10:30 Constants and assembly parameters
278 ;Daplib function block definitions
279
280 MSKSTR DPFNC,FNCBLK+.DFFLG,DF%ACC ;Dap function
281 MSKSTR DPLNK,FNCBLK+.DFFLG,DF%LNK ;Dap link
282 MSKSTR DPLFA,FNCBLK+.DFLFA,-1 ;Dap local file attribs
283 MSKSTR DPLFS,FNCBLK+.DFLFS,-1 ;Dap local filespec
284 MSKSTR DPRTN,FNCBLK+.DFRTN,-1 ;Dap called co-routine
285 MSKSTR DPRFA,FNCBLK+.DFRFA,-1 ;Dap remote file attribs
286 MSKSTR DPRFS,FNCBLK+.DFRFS,-1 ;Pointer to remote file
287
288
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 6
NFT MAC 22-Feb-82 10:30 LOCAL MACROS
289 SUBTTL LOCAL MACROS
290
291
292 DEFINE TXT(TEXT) <POINT 7,[ASCIZ\TEXT\]>
293
294 DEFINE $FD(NAME) <
295 XWD 10,0
296 ASCIZ\NAME\>
297
298 ;REPARS PARSE ERROR MACRO
299
300 DEFINE REPARS (MESSAGE) <
301 JRST [MOVX S1,TXT(MESSAGE)
302 JRST .REPAR]>
303
304 ;MACRO TO PROMPT FOR COMMAND
305
306 DEFINE PROMPT (MESSAGE) <
307 $CALL [MOVX S1,TXT(MESSAGE)
308 PJRST DPROMPT]
309 > ;END OF PROMPT DEFINITION
310
311
312 ;MACRO TO PRINT GUIDEWORDS
313
314 DEFINE NOISE (SHT) <
315 $CALL [MOVEI S1,[EXP FLD(.CMNOI,CM%FNC),TXT(SHT)]
316 PJRST RFIELD]
317 > ;END OF NOISE DEFINITION
318
319 ;MACRO TO REQUIRE CONFIRMATION
320
321 DEFINE CONFRM <
322 $CALL [MOVEI S1,[FLD(.CMCFM,CM%FNC)]
323 PJRST RFIELD]
324 > ;END OF CONFRM DEFINITION
325
326 ;MACRO TO MAKE TABLE ENTRY
327
328 DEFINE T (WORD,ADDRES) <
329
330 IFB <ADDRES>,<[ASCIZ /WORD/],,.'WORD>
331 IFNB <ADDRES>,<[ASCIZ /WORD/],,ADDRES>>
332
333 ;MACRO TO MAKE SWITCH TABLE ENTRY
334
335 DEFINE SW (TXT) <[ASCIZ/TXT/],,.SW'TXT>
336 DEFINE SV (TXT) <[ASCIZ/TXT:/],,.SW'TXT>
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 7
NFT MAC 22-Feb-82 10:30 Job version and entry vector
337 SUBTTL Job version and entry vector
338
339 000137 LOC 137 ;SET THE VERSION
340 000137 000000000000# .JBVER: EXP VNFT
341 000000'00 RELOC 0
342
343 ; ENTRY VECTOR DEFINITION
344
345 000000'00 254 00 0 00 000013' ENTVEC: JRST NFT ;MAIN ENTRY POINT
346 000001'00 254 00 0 00 000043' JRST REE ;REENTER ENTRY POINT
347 000002'00 000000000000# EXP VNFT ;VERSION OF NFT PROGRAM
348
349 SUBTTL Initialization blocks
350
351 000003'00 IB: $BUILD (IB.SZ)
352 $SET (IB.PRG,,'NFT ') ;Set program name
353 $SET (IB.OUT,,LOGCHR) ;DEFAULT TEXT OUTPUT ROUTINE
354 $SET (IB.INT,,<LEVTAB,,CHNTAB>)
355 $EOB
356
357 000011'00 DAPIB: $BUILD (.DISIZ) ;Dap initialization block
358 $SET (.DIFLG,DI%CNT,1) ;Request 1 link
359 $EOB
360
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 8
NFT MAC 22-Feb-82 10:30 MAIN ENTRY POINT AND INITIALIZATION
361 SUBTTL MAIN ENTRY POINT AND INITIALIZATION
362
363 000013'00 104 00 0 00 000147 NFT: RESET
364 000014'00 200 17 0 00 004166' MOVE P,[IOWD PDLEN,PDL] ;SET UP STACK
365 000015'00 402 00 0 00 000000# SETZM DATORG ;Clear impure storage
366 000016'00 200 01 0 00 004167' MOVE S1,[DATORG,,DATORG+1] ; Our first location thru
367 000017'00 251 01 0 00 000000# BLT S1,DATEND-1 ; Last location of DAP storage
368 000020'00 336 00 0 00 000000* SKIPN PMRFLG ;[70]
369 000021'00 254 00 0 00 000025' JRST NOPMR ;[70]
370 000022'00 201 01 0 00 000000# MOVEI S1,CONBLK ;[70]
371 000023'00 260 17 0 00 000000* $CALL .DNINI ;[70]INITIALIZE PMR TABLES
372 JRST [HRROI S1,[ASCIZ /?Error during initialization of PMR tables
373 /]
374 PSOUT
375 000024'00 254 00 0 00 004201' HALTF] ;[70]
376 000025'00 201 01 0 00 000006 NOPMR: MOVEI S1,IB.SZ
377 000026'00 201 02 0 00 000003' MOVEI S2,IB
378 000027'00 260 17 0 00 000000* $CALL I%INIT ;GET THE LIBRARY
379 000030'00 260 17 0 00 004062' $CALL PSIINI ;INITIALIZE PSI SYSTEM
380 000031'00 200 01 0 00 004205' MOVX S1,TXT(FAL)
381 000032'00 332 00 0 00 000135 SKIPE DEBUGW
382 000033'00 200 01 0 00 004210' MOVX S1,TXT(FAL-DEBUG)
383 000034'00 260 17 0 00 000000* $TEXT (<-1,,OBJNAM>,<^Q/S1/^0>) ;BECOME FAL
384 000036'00 201 01 0 00 000002 MOVEI S1,.DISIZ
385 000037'00 201 02 0 00 000011' MOVEI S2,DAPIB
386 000040'00 260 17 0 00 000000* $CALL D$INIT ;Init DAPLIB
387 000041'00 260 17 0 00 003636' $CALL NODGET ;BUILD NODE TABLE
388 000042'00 254 00 0 00 000047' JRST DOCMD ;Start processing commands
389
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 9
NFT MAC 22-Feb-82 10:30 Parser and Command dispatch
390 SUBTTL Parser and Command dispatch
391
392 000043'00 200 17 0 00 004217' REE: MOVE P,[IOWD PDLEN,PDL] ;REENTER ADDRESS
393 000044'00 336 00 0 00 000000# SKIPN TAKFLG ;DOING A TAKE?
394 000045'00 254 00 0 00 000067' JRST PARSER ;NO..JUST PROCESS COMMANDS
395 000046'00 254 00 0 00 003531' JRST CMDEOF ;YES..FORCE TERMINATION
396
397 000047'00 260 17 0 00 003402' DOCMD: $CALL CMDINI ;DISPLAY AND INITIALIZE
398 000050'00 322 00 0 00 000067' JUMPF PARSER
399 000051'00 260 17 0 00 003616' $CALL CLRGJF ;CLEAR JFN BLOCK
400 000052'00 205 01 0 00 100000 MOVX S1,GJ%OLD ;File must exist
401 000053'00 202 01 0 00 000000# MOVEM S1,GJFBLK ;SAVE FOR GTJFN
402 000054'00 200 01 0 00 000000# MOVE S1,LOCNOD
403 000055'00 561 01 0 01 000024 HRROI S1,ND$USR(S1) ;Point to logged in directory
404 000056'00 202 01 0 00 000000# MOVEM S1,.GJDIR+GJFBLK ;Save in GTFJN block
405 000057'00 201 01 0 00 000000# MOVEI S1,GJFBLK ;Point to block
406 000060'00 200 02 0 00 004223' MOVX S2,TXT(PS:NFT.INIT) ;Get initialization file name
407 000061'00 104 00 0 00 000020 GTJFN
408 000062'00 320 16 0 00 000067' ERJMP PARSER
409 000063'00 202 01 0 00 000000# MOVEM S1,CMDJFN ;Save JFN
410 000064'00 400 06 0 00 000000 SETZ T4, ;Clear display flag
411 000065'00 260 17 0 00 002246' $CALL TAKINI ;[0071]Take the file
412 000066'00 402 00 0 00 000000# SETZM INIFLG ;[0071]Clear the NFT.INIT flag
413
414 000067'00 260 17 0 00 004100' PARSER: $CALL CNODIS ;TURN OF ^O PROCESSING
415 000070'00 561 01 0 00 004165' HRROI S1,PRMPT ;YES..SET THE PROMPT
416 000071'00 260 17 0 00 003473' $CALL DPROMPT ;INITIAL SBK
417 000072'00 260 17 0 00 003624' $CALL RELJFN ;RELEASE UNOPEN JFN'S
418 000073'00 260 17 0 00 004032' $CALL RELNOD ;Release temporary nodes
419 000074'00 201 01 0 00 000105' MOVEI S1,KEYFDB ;POINT TO COMMAND WORDS
420 000075'00 260 17 0 00 003516' $CALL RFIELD ;PARSE COMMAND WORD
421 000076'00 550 03 0 02 000000 HRRZ T1,(S2) ;Save routine address
422 000077'00 201 01 0 00 000517 MOVEI S1,FNCSIZ ;Get size of function area
423 000100'00 201 02 0 00 000000# MOVEI S2,FNCBEG ;Point to it
424 000101'00 260 17 0 00 000000* $CALL .ZCHNK ;Clear it
425 000102'00 260 17 0 00 003333' $CALL TAKTST ;Display command if doing take
426 000103'00 260 17 0 03 000000 $CALL 0(T1) ;Call proper processor
427 000104'00 254 00 0 00 000067' JRST PARSER
428
429 000105'00 000000 000000 KEYFDB: FLD(.CMKEY,CM%FNC+CM%BRK) ;KEYWORD FUNCTION
430 000106'00 000000 000116' CMDTBL ;FROM COMMAND TABLE
431 000107'00 000000 000000 0
432 000110'00 000000 000000 0
433 000111'00 000000 000112' CMDBRK
434
435 000112'00 777777 777760 CMDBRK: 777777,,777760 ;Break on all control
436 000113'00 777773 777760 777773,,777760 ;Allow /
437 000114'00 400000 000760 400000,,000760 ;Allow A-Z
438 000115'00 400000 000760 400000,,000760 ;Allow Lower case a-z
439
440 000116'00 000014 000015 CMDTBL: CMDSIZ-1,, CMDSIZ ;CURRENT,,MAX SIZE OF COMMAND TABLE
441 000117'00 004224' 000133' T (COPY) ;COPY (FROM) (TO)
442 000120'00 004225' 000525' T (DELETE) ;DELETE (REMOTE FILES)
443 000121'00 004227' 000533' T (DIRECTORY) ;DIRECTORY (OF REMOTE FILES)
444 000122'00 004231' 001057' T (EXIT) ;EXIT TO MONITOR
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 9-1
NFT MAC 22-Feb-82 10:30 Parser and Command dispatch
445 000123'00 004232' 001070' T (HELP) ;OUTPUT HELP MESSAGE
446 000124'00 004233' 001114' T (INFORMATION)
447 000125'00 004236' 000541' T (PRINT) ;PRINT REMOTE FILE
448 000126'00 004240' 001235' T (SET) ;SET MODES COMMAND
449 000127'00 004241' 000547' T (SUBMIT) ;SUBMIT (REMOTE FILES)
450 000130'00 004243' 002175' T (TAKE) ;TAKE (COMMAND FROM) FILESPEC
451 [CM%FW+CM%INV
452 000131'00 004244' 000555' ASCIZ /TRACE/],,.TRACE ;TRACE (MESSAGES) invisible command
453 000132'00 004247' 000565' T (TYPE) ;TYPE (REMOTE FILES)
454
455 000015 CMDSIZ== .-CMDTBL
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 10
NFT MAC 22-Feb-82 10:30 COPY command
456 SUBTTL COPY command
457
458 000133'00 260 17 0 00 000000* .COPY: STKVAR <<SRCDEF,DEFSIZ>> ;TEMP AREA TO SAVE DEFAULTS
459 000134'00 000060 000060
460 000135'00 260 17 0 00 004253' NOISE (FROM)
461 000136'00 201 01 0 00 000370' MOVEI S1,CPYRTN ;Get co-routine address
462 000137'00 202 01 0 00 000000# STORE S1,,DPRTN ;Save for D$FUNC
463 000140'00 260 17 0 00 003616' $CALL CLRGJF ;CLEAR JFN BLOCK
464 000141'00 205 01 0 00 100100 MOVX S1,GJ%IFG+GJ%OLD ;Allow wild cards
465 000142'00 202 01 0 00 000000# MOVEM S1,GJFBLK
466 000143'00 561 01 0 00 000000# HRROI S1,SRCNAM ;Place to store node stuff
467 000144'00 561 02 0 00 000000# HRROI S2,SRCFIL ;Place to store file string
468 000145'00 200 03 0 00 004260' MOVX T1,TXT(input filespec)
469 000146'00 402 00 0 00 000000# SETZM SRCPFL ;[0061] ALLOW CONVERSION
470 000147'00 260 17 0 00 001315' $CALL PARFIL ;Get a file spec
471 000150'00 202 01 0 00 000000# MOVEM S1,SRCNOD ;Save source node
472 000151'00 202 02 0 00 000000# MOVEM S2,SRCJFN ;Save source JFN
473 000152'00 200 02 0 00 004265' MOVX S2,TXT(input file switches) ;Get help text
474 000153'00 260 17 0 00 001561' $CALL PARSWS ;Look for switches if any
475 JUMPF [MOVX S1,TXT(?Illegal switch:) ;[0057]Give error message...
476 $CALL TSTCOL ;[0057]...for bad switches
477 $CALL TYPATM ;[0057]
478 $CALL RELJFN ;[0057]
479 000154'00 322 00 0 00 004273' JRST CMDER1] ;[0057]
480 000155'00 200 01 0 00 000000# MOVE S1,FILATT ;Get file format switches
481 000156'00 202 01 0 00 000000# MOVEM S1,SRCSWS ;Save as source switches
482 000157'00 505 01 0 00 000000# HRLI S1,DEFBEG ;GET SOURCE ADDRESS
483 000160'00 541 01 0 17 777717 HRRI S1,SRCDEF ;GET DEST ADDRESS
484 000161'00 251 01 0 17 777776 BLT S1,DEFSIZ-1+SRCDEF ;SAVE THE DEFAUTLS
485 000162'00 260 17 0 00 004303' NOISE (TO)
486
487 000163'00 561 01 0 00 000000# HRROI S1,SRCFIL ;POINT TO SOURCE NAME
488 000164'00 205 02 0 00 440140 MOVX S2,GJ%OFG+GJ%FOU+GJ%IFG+GJ%MSG ;ALLOW WILD CARDS
489 000165'00 260 17 0 00 002733' $CALL FILDEF ;SET UP OUTPUT NAME DEFAULTS
490 000166'00 402 00 0 00 000000# SETZM GJFBLK+.GJDEV ;DON'T DEFAULT DEVICE
491 000167'00 402 00 0 00 000000# SETZM GJFBLK+.GJDIR ;OR DIRECTORY
492 000170'00 561 01 0 00 000000# HRROI S1,DSTNAM ;Place to store dest node name
493 000171'00 561 02 0 00 000000# HRROI S2,DSTFIL ;Place to store dest file name
494 000172'00 200 03 0 00 004311' MOVX T1,TXT(output filespec)
495 000173'00 402 00 0 00 000000# SETZM DSTPFL ;[0061]ALLOW CONVERSION
496 000174'00 260 17 0 00 001315' $CALL PARFIL ;Get a filespec
497 000175'00 202 01 0 00 000000# MOVEM S1,DSTNOD ;Save destination node
498 000176'00 202 02 0 00 000000# MOVEM S2,DSTJFN ;Save destination JFN
499 000177'00 200 02 0 00 004317' MOVX S2,TXT(output file switches) ;Get help text
500 000200'00 260 17 0 00 001561' $CALL PARSWS ;LOOK FOR OPTIONAL SWITCHES
501 JUMPF [MOVX S1,TXT(?Illegal switch:) ;[0057]Give error messages...
502 $CALL TSTCOL ;[0057]...for bad switches
503 $CALL TYPATM ;[0057]
504 $CALL RELJFN ;[0057]
505 000201'00 322 00 0 00 004273' JRST CMDER1] ;[0057]
506 000202'00 200 01 0 00 000000# MOVE S1,FILATT ;Get file format switches
507 000203'00 202 01 0 00 000000# MOVEM S1,DSTSWS ;Save for destination file
508 000204'00 260 17 0 00 004321' CONFRM
509
510 000205'00 476 00 0 00 000000# COPY40: SETOM NAMFLG ;Say name is not displayed
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 10-1
NFT MAC 22-Feb-82 10:30 COPY command
511 000206'00 336 00 0 00 000000# SKIPN SRCNOD ;[0062]IF BOTH SOURCE...
512 000207'00 332 00 0 00 000000# SKIPE DSTNOD ;[0062]...AND DEST ARE UNTYPED
513 000210'00 254 00 0 00 000215' JRST COPY45 ;[0062]
514 000211'00 200 01 0 00 000000# MOVE S1,LOCNOD ;[0062]THEN MARK DEST AS REMOTE
515 000212'00 202 01 0 00 000000# MOVEM S1,DSTNOD ;[0062]
516 000213'00 260 17 0 00 000034* $TEXT (,<%No remote node specified, assuming destination file is remote>) ;[77]
517 000215'00 336 00 0 00 000000# COPY45: SKIPN SRCNOD ;Source node local
518 000216'00 254 00 0 00 000227' JRST COPY60 ;Yes..send the files
519 000217'00 336 00 0 00 000000# SKIPN DSTNOD ;Destination node local
520 000220'00 254 00 0 00 000316' JRST COPY70 ;Yes..recieve a file
521 000221'00 200 01 0 00 000000# MOVE S1,LOCNOD ;[0062]
522 000222'00 316 01 0 00 000000# CAMN S1,SRCNOD ;[0062]SOURCE REALLY LOCAL?
523 JRST [SETZM SRCNOD ;[0062]
524 $TEXT (,<%No local node specified, assuming source file is local>) ;[77]
525 000223'00 254 00 0 00 004364' JRST COPY40] ;[0062]
526 000224'00 316 01 0 00 000000# CAMN S1,DSTNOD ;[0062]DEST REALLY LOCAL?
527 JRST [SETZM DSTNOD ;[0062]
528 $TEXT (,<%No local node specified, assuming destination file is local>) ;[77
529 ]
530 000225'00 254 00 0 00 004411' JRST COPY40] ;[0062]
531 000226'00 254 00 0 00 004427' REPARS (Remote to Remote transfers not supported)
532
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 11
NFT MAC 22-Feb-82 10:30 COPY command
533 ;COPY60 Routine to send files to remote node
534
535 000227'00 476 00 0 00 000000# COPY60: SETOM SNDFLG ;Remember we are sending
536 000230'00 201 01 0 00 000002 MOVX S1,AF$CRE ;Function is create remote file
537 000231'00 137 01 0 00 004431' STORE S1,,DPFNC
538 000232'00 201 01 0 00 000001 MOVEI S1,DAPLNK ;Get requested link
539 000233'00 137 01 0 00 004432' STORE S1,,DPLNK ;Save it
540 000234'00 200 01 0 00 000000# MOVE S1,SRCSWS ;Get source switches
541 000235'00 202 01 0 00 000000# STORE S1,,DPLFA ;Save local file attributes
542 000236'00 561 01 0 00 000000# HRROI S1,SRCFIL ;Point to local filespec
543 000237'00 202 01 0 00 000000# STORE S1,,DPLFS ;Save for D$FUNC
544 000240'00 200 01 0 00 000000# MOVE S1,DSTSWS ;Get destination file switches
545 000241'00 202 01 0 00 000000# STORE S1,,DPRFA ;Save remote file attributes
546 000242'00 561 01 0 00 000000# HRROI S1,DSTFIL ;Point to dest file name
547 000243'00 202 01 0 00 000000# STORE S1,,DPRFS ;Save for D$FUNC
548 000244'00 200 01 0 00 004433' MOVE S1,[POINT 7,DSTFIL] ;Check what user typed
549 000245'00 260 17 0 00 002515' $CALL OUTFLG
550 000246'00 124 01 0 00 000000# DMOVEM S1,DSTFLG ;Save for call to OUTNAM
551 000247'00 200 01 0 00 000000# MOVE S1,SRCJFN ;GET SOURCE JFN
552 000250'00 332 02 0 00 000000# SKIPE S2,DSTNOD ;Get destination node
553 000251'00 260 17 0 00 004057' $CALL NODOFF ;Mark node off-line
554 000252'00 202 02 0 00 000000# MOVEM S2,REMNOD ;Save for call to GETUSR
555 000253'00 200 01 0 00 000000# MOVE S1,SRCJFN ;Get source JFN
556 000254'00 607 01 0 00 570000 TXNN S1,GJ%DEV+GJ%DIR+GJ%NAM+GJ%EXT+GJ%VER ;Wild cards?
557 000255'00 254 00 0 00 000261' JRST COPY61 ;No..Check for output wild cards
558 000256'00 332 01 0 00 000000# SKIPE S1,DSTJFN ;Must have Destination JFN
559 000257'00 607 01 0 00 570000 TXNN S1,GJ%DEV+GJ%DIR+GJ%NAM+GJ%EXT+GJ%VER ;and must be wild
560 000260'00 254 00 0 00 003305' JRST WLDERR
561 000261'00 200 01 0 00 004434' COPY61: MOVE S1,[DSTFIL,,TMPFIL] ;HACK TO SAVE DST ACROSS
562 000262'00 251 01 0 00 000000# BLT S1,TMPFIL+FILSIZ-1 ;CALLS TO DAP OPEN
563 000263'00 561 01 0 00 000000# COPY62: HRROI S1,SRCFIL ;Point to source file storage
564 000264'00 550 02 0 00 000000# HRRZ S2,SRCJFN ;Expand without wild cards
565 000265'00 200 03 0 00 004435' MOVX T1,FFSPEC
566 000266'00 104 00 0 00 000030 JFNS ;Get current file name
567 000267'00 200 01 0 00 004436' MOVE S1,[TMPFIL,,DSTFIL]
568 000270'00 251 01 0 00 000000# BLT S1,DSTFIL+FILSIZ-1
569 000271'00 120 01 0 00 000000# COPY63: DMOVE S1,DSTFLG ;Get dest pointer and flags
570 000272'00 260 17 0 00 002371' $CALL OUTNAM ;Yes..Get output filename
571 000273'00 322 00 0 00 003305' JUMPF WLDERR ;Bad wild cards
572 000274'00 332 00 0 00 000000# SKIPE DSTNOD ;Expand file name if local
573 000275'00 254 00 0 00 000301' JRST COPY64 ;No..don't expand local name
574 000276'00 205 01 0 00 400001 MOVX S1,GJ%SHT+GJ%FOU
575 000277'00 561 02 0 00 000000# HRROI S2,DSTFIL
576 000300'00 260 17 0 00 002502' $CALL NAMEXT
577 000301'00 260 17 0 00 003242' COPY64: $CALL DAPOPN ;Make sure link is OPEN
578 000302'00 201 01 0 00 000000# MOVEI S1,DSTFIL ;[0061]DEST STRING
579 000303'00 332 00 0 00 000000# SKIPE DSTPFL ;[0061]NEED RECONVERSION?
580 000304'00 260 17 0 00 001463' $CALL RESNAM ;YES
581 000305'00 260 17 0 00 003300' $CALL DAPFNC ;Do the function
582 000306'00 200 01 0 00 000000# MOVE S1,SRCJFN ;Get source JFN
583 000307'00 104 00 0 00 000017 GNJFN ;Do the next file
584 000310'00 254 00 0 00 003306' JRST DAPCLS ;Finish up
585 000311'00 200 01 0 00 000000# MOVE S1,REMNOD ;Get pointer to remote node
586 000312'00 550 01 0 01 000003 HRRZ S1,ND$OST(S1) ;Get system type
587 000313'00 306 01 0 00 000004 CAIN S1,.OSRXM ;RSX?
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 11-1
NFT MAC 22-Feb-82 10:30 COPY command
588 000314'00 260 17 0 00 003306' $CALL DAPCLS ;Yes..close link each time
589 000315'00 254 00 0 00 000263' JRST COPY62 ;Do the next file
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 12
NFT MAC 22-Feb-82 10:30 COPY command
590 ;COPY70 Routine to recieve files from remote node
591
592 000316'00 402 00 0 00 000000# COPY70: SETZM SNDFLG ;Remember we are recieving
593 000317'00 201 01 0 00 000001 MOVX S1,AF$OPN ;Function is read remote file
594 000320'00 137 01 0 00 004437' STORE S1,,DPFNC
595 000321'00 201 01 0 00 000001 MOVEI S1,DAPLNK ;Get requested link
596 000322'00 137 01 0 00 004440' STORE S1,,DPLNK ;Save it
597 000323'00 200 01 0 00 000000# MOVE S1,SRCSWS ;Get source file switches
598 000324'00 202 01 0 00 000000# STORE S1,,DPRFA ;Save remote file attributes
599 000325'00 561 01 0 00 000000# HRROI S1,SRCFIL ;Point to source file name
600 000326'00 202 01 0 00 000000# STORE S1,,DPRFS ;Save for D$FUNC
601 000327'00 332 00 0 00 000000# SKIPE SRCNOD ;Source node local?
602 000330'00 254 00 0 00 000334' JRST COPY72 ;No..dont expand file name
603 000331'00 205 01 0 00 100101 MOVX S1,GJ%SHT+GJ%OLD+GJ%IFG ;Get JFN flags
604 000332'00 561 02 0 00 000000# HRROI S2,SRCFIL ;Point to destination
605 000333'00 260 17 0 00 002502' $CALL NAMEXT ;Expand the name
606 000334'00 200 01 0 00 004441' COPY72: MOVE S1,[POINT 7,DSTFIL] ;Point to user input
607 000335'00 260 17 0 00 002515' $CALL OUTFLG ;Find out what they typed
608 000336'00 124 01 0 00 000000# DMOVEM S1,DSTFLG ;Save for call to OUTNAM
609 000337'00 200 01 0 00 000000# MOVE S1,DSTSWS ;Get destination switches
610 000340'00 202 01 0 00 000000# STORE S1,,DPLFA ;Save local file attributes
611 000341'00 561 01 0 00 000000# HRROI S1,DSTFIL ;Point to destination file name
612 000342'00 202 01 0 00 000000# STORE S1,,DPLFS ;Save as local filespec
613 000343'00 332 02 0 00 000000# SKIPE S2,SRCNOD ;Get source node
614 000344'00 260 17 0 00 004057' $CALL NODOFF ;Mark node off-line
615 000345'00 202 02 0 00 000000# MOVEM S2,REMNOD ;Save for Call to GETUSR
616 000346'00 505 01 0 17 777717 HRLI S1,SRCDEF ;Reclaim source defaults
617 000347'00 541 01 0 00 000000# HRRI S1,DEFBEG
618 000350'00 251 01 0 00 000000# BLT S1,DEFSIZ-1+DEFBEG ;For GETUSR
619 000351'00 120 01 0 00 000000# DMOVE S1,DSTFLG ;Get destination flags
620 000352'00 200 03 0 00 000000# MOVE T1,DSTJFN ;GET DESTINATION JFN
621 000353'00 661 02 0 00 100000 TXO S2,GJ%DIR ;[0054]ALWAYS GET DIR TO MAKE
622 ;[0054]LOGICAL NAMES WORK
623 000354'00 260 17 0 00 002371' $CALL OUTNAM ;Yes..Generate output filename
624 000355'00 322 00 0 00 003305' JUMPF WLDERR ;Bad wild cards
625 000356'00 205 01 0 00 400001 MOVX S1,GJ%SHT+GJ%FOU ;File for output
626 000357'00 561 02 0 00 000000# HRROI S2,DSTFIL
627 000360'00 260 17 0 00 002502' $CALL NAMEXT ;Expand output file name
628 000361'00 255 00 0 00 000000 JFCL ;Don't care if this fails
629 000362'00 260 17 0 00 003242' $CALL DAPOPN ;Make sure link is open
630 000363'00 201 01 0 00 000000# MOVEI S1,SRCFIL ;[0061]ADDRESS OF SOURCE FILE STRING
631 000364'00 332 00 0 00 000000# SKIPE SRCPFL ;[0061]NEED RECONVERSION?
632 000365'00 260 17 0 00 001463' $CALL RESNAM ;[0061]YES
633 000366'00 260 17 0 00 003300' $CALL DAPFNC
634 000367'00 254 00 0 00 003306' JRST DAPCLS
635
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 13
NFT MAC 22-Feb-82 10:30 COPY command
636 000370'00 306 01 0 00 000006 CPYRTN: CAIN S1,.DMACK ;ACK FOR ACCESS?
637 000371'00 324 17 0 00 000403' PJRST CPYACK ;Yes..check for file display
638 000372'00 306 01 0 00 000007 CAIN S1,.DMACP ;ACCESS COMPLETE?
639 000373'00 254 00 0 00 000420' JRST CPYACP ;Yes..display [OK]
640 000374'00 275 01 0 00 000017 SUBI S1,.DMNAM ;Try for name message
641 000375'00 602 01 0 00 777777 TRNE S1,-1
642 000376'00 324740 000000* $RETT ;Return for all else
643 000377'00 260 17 0 00 001007' $CALL SAVNAM ;Store name
644 000400'00 336 00 0 00 000000# SKIPT SNDFLG ;Sending files?
645 000401'00 254 00 0 00 000433' JRST CPYRCV ;No..must be recieving
646 000402'00 254 00 0 00 000424' JRST CPYSND ;Yes..setup proper text
647
648 000403'00 352 00 0 00 000000# CPYACK: AOSE NAMFLG ;File text displayed?
649 000404'00 324740 000376* $RETT ;Yes..just return
650 000405'00 332 01 0 00 000000# SKIPE S1,SRCNOD ;Source node local?
651 000406'00 260 17 0 00 000213* $TEXT (,^T/@S1/::^A) ;no..display it
652 000410'00 260 17 0 00 000406* $TEXT (,^T/SRCFIL/^T/FROMTO/^A);Display source file
653 000412'00 332 01 0 00 000000# SKIPE S1,DSTNOD ;Destination node local?
654 000413'00 260 17 0 00 000410* $TEXT (,^T/@S1/::^A) ;no..display it
655 000415'00 260 17 0 00 000413* $TEXT (,^T/DSTFIL/^A) ;Display destination file
656 000417'00 324740 000404* $RETT
657
658 000420'00 260 17 0 00 000415* CPYACP: $TEXT (, [OK]) ;Display OK
659 000422'00 476 00 0 00 000000# SETOM NAMFLG ;Say name is not displayed
660 000423'00 324740 000417* $RETT ;Return
661
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 14
NFT MAC 22-Feb-82 10:30 COPY command
662 000424'00 603 01 0 00 000001 CPYSND: TLNE S1,NA$FSP ;Actual remote filespec?
663 000425'00 260 17 0 00 000420* $TEXT (<-1,,DSTFIL>,<^Q/S2/^0>) ;Yes..save as destination file
664 000427'00 336 00 0 00 000001 SKIPN S1 ;Expanded local filespec?
665 000430'00 260 17 0 00 000425* $TEXT (<-1,,SRCFIL>,<^Q/S2/^0>) ;Yes..save as source file
666 000432'00 324740 000423* $RETT
667
668 000433'00 603 01 0 00 000001 CPYRCV: TLNE S1,NA$FSP ;Actual remote filespec?
669 000434'00 260 17 0 00 000430* $TEXT (<-1,,SRCFIL>,<^Q/S2/^0>) ;Yes..save as source file
670 000436'00 336 00 0 00 000001 SKIPN S1 ;Expaned local filespec?
671 000437'00 260 17 0 00 000434* $TEXT (<-1,,DSTFIL>,<^Q/S2/^0>) ;Yes..save as destination file
672 000441'00 607 01 0 00 000002 TLNN S1,NA$FNM ;Doing wild operation?
673 000442'00 324740 000432* $RETT ;No..just return
674 000443'00 260 17 0 00 000437* $TEXT (<-1,,SRCFIL>,^T/VOLNAM/^T/DIRNAM/^T/FILNAM/^0)
675 000445'00 331 00 0 00 000000# SKIPL NAMFLG ;Name displayed?
676 000446'00 260 17 0 00 000420' $CALL CPYACP ;Yes..display [ok]
677 000447'00 261 17 0 00 000010 PUSH P,P2 ;[0061]Convert names supplied...
678 000450'00 200 01 0 00 004540' MOVE S1,[POINT 7,SRCFIL] ;[0061]...in a name message
679 000451'00 201 10 0 00 000000# MOVEI P2,SRCFIL ;[0061]
680 000452'00 260 17 0 00 001435' $CALL COVNAM ;[0061]
681 000453'00 262 17 0 00 000010 POP P,P2 ;[0061]
682 000454'00 205 01 0 00 000041 MOVX S1,GJ%SHT+GJ%OFG ;Get parse only JFN for name
683 000455'00 561 02 0 00 000000# HRROI S2,SRCFIL
684 000456'00 104 00 0 00 000020 GTJFN
685 000457'00 320 16 0 00 000461' ERJMP CPYNA1 ;Try file name only
686 000460'00 254 00 0 00 000465' JRST CPYNA2 ;Generate output filename
687 000461'00 205 01 0 00 000041 CPYNA1: MOVX S1,GJ%SHT+GJ%OFG
688 000462'00 561 02 0 00 000000# HRROI S2,FILNAM
689 000463'00 104 00 0 00 000020 GTJFN
690 000464'00 320 16 0 00 000000* ERJMP .RETF ;Fail if JFN not assigned
691 000465'00 552 01 0 00 000000# CPYNA2: HRRZM S1,REMJFN ;Save JFN for OUTNAM
692 000466'00 561 01 0 00 000000# HRROI S1,DSTFIL ;Generate destination name
693 000467'00 205 02 0 00 070000 MOVX S2,GJ%NAM+GJ%EXT+GJ%VER ;[0054]
694 000470'00 200 03 0 00 000000# MOVE T1,DSTFLG+1 ;See what caller typed
695 000471'00 630 03 0 00 004541' ANDX T1,GJ%DEV+GJ%DIR
696 000472'00 434 02 0 00 000003 IOR S2,T1 ;Generate required fields
697 000473'00 261 17 0 00 000001 PUSH P,S1 ;[54]SAVE ACS
698 000474'00 261 17 0 00 000002 PUSH P,S2 ;[54]
699 000475'00 261 17 0 00 000003 PUSH P,T1 ;[54]
700 000476'00 261 17 0 00 000004 PUSH P,T2 ;[54]
701 000477'00 200 02 0 00 000000# MOVE S2,DSTJFN ;[54]DOES THIS FILE SPEC...
702 000500'00 205 03 0 00 010000 MOVX T1,FLD(1,JS%DIR) ;[54]HAVE A DIR FIELD?
703 000501'00 400 04 0 00 000000 SETZ T2, ;[54]
704 000502'00 104 00 0 00 000030 JFNS ;[54]
705 000503'00 262 17 0 00 000004 POP P,T2 ;[54]
706 000504'00 262 17 0 00 000003 POP P,T1 ;[54]
707 000505'00 262 17 0 00 000002 POP P,S2 ;[54]
708 000506'00 312 01 0 00 004542' CAME S1,[-1,,DSTFIL] ;[54]
709 000507'00 661 02 0 00 100000 TXO S2,GJ%DIR ;[0054]ALWAYS GET DIR TO MAKE
710 ;[0054]LOGICAL NAMES WORK
711 000510'00 262 17 0 00 000001 POP P,S1 ;[54]
712 000511'00 260 17 0 00 002371' $CALL OUTNAM ;Generate output name
713 000512'00 205 01 0 00 400001 MOVX S1,GJ%SHT+GJ%FOU ;File for output
714 000513'00 561 02 0 00 000000# HRROI S2,DSTFIL ;Store in DSTFIL
715 000514'00 260 17 0 00 002502' $CALL NAMEXT ;Expand the name
716 000515'00 200 01 0 00 000000# MOVE S1,REMJFN
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 14-1
NFT MAC 22-Feb-82 10:30 COPY command
717 000516'00 104 00 0 00 000023 RLJFN ;Release the JFN
718 000517'00 320 16 0 00 000520' ERJMP .+1
719 000520'00 402 00 0 00 000000# SETZM REMJFN ;Null the JFN
720 000521'00 201 01 0 00 000000# MOVEI S1,SRCFIL ;[0061]
721 000522'00 332 00 0 00 000000# SKIPE SRCPFL ;[0061]Need reconversion?
722 000523'00 260 17 0 00 001463' $CALL RESNAM ;[0061]Yes, reconvert file name
723 000524'00 263 17 0 00 000000 $RET ;Return True/false per OUTNAM
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 15
NFT MAC 22-Feb-82 10:30 DELETE DIRECTORY SUBMIT TRACE and TYPE commands
741 SUBTTL DELETE DIRECTORY SUBMIT TRACE and TYPE commands
742
743 000525'00 260 17 0 00 004550' .DELET: NOISE (REMOTE FILES)
744 000526'00 201 01 0 00 000004 MOVX S1,AF$ERA ;Function is delete remote files
745 000527'00 201 02 0 00 000724' MOVEI S2,REMRTN ;General Co-routine
746 000530'00 200 03 0 00 004552' MOVX T1,TXT<> ;No default name or extenstion
747 000531'00 205 04 0 00 100100 MOVX T2,GJ%IFG+GJ%OLD ;Allow wild cards
748 000532'00 254 00 0 00 000603' JRST REMFIL ;Enter common Code
749
750 000533'00 260 17 0 00 004561' .DIREC: NOISE (OF REMOTE FILES)
751 000534'00 201 01 0 00 000006 MOVX S1,AF$DIR ;Function is directory
752 000535'00 201 02 0 00 000655' MOVEI S2,DIRRTN ;Directory Co-routine
753 000536'00 200 03 0 00 004564' MOVX T1,TXT(*.*) ;Default name and ext
754 000537'00 200 04 0 00 004565' MOVX T2,GJ%IFG+GJ%OLD+.GJALL ;Wild and * for version
755 000540'00 254 00 0 00 000603' JRST REMFIL ;Enter common code
756
757 000541'00 260 17 0 00 004550' .PRINT: NOISE (REMOTE FILES) ;Function is print remote files
758 000542'00 201 01 0 00 000102 MOVX S1,AF$PRN ;At remote node
759 000543'00 201 02 0 00 000724' MOVEI S2,REMRTN
760 000544'00 200 03 0 00 004552' MOVX T1,TXT()
761 000545'00 205 04 0 00 100100 MOVX T2,GJ%IFG+GJ%OLD
762 000546'00 254 00 0 00 000603' JRST REMFIL
763
764 000547'00 260 17 0 00 004550' .SUBMI: NOISE (REMOTE FILES)
765 000550'00 201 01 0 00 000010 MOVX S1,AF$EXE ;Function is submit remote files
766 000551'00 201 02 0 00 000724' MOVEI S2,REMRTN ;General Co-routine
767 000552'00 200 03 0 00 004567' MOVX T1,TXT(.CTL) ;Default extention is .CTL
768 000553'00 205 04 0 00 100100 MOVX T2,GJ%IFG+GJ%OLD ;Allow wild cards
769 000554'00 254 00 0 00 000603' JRST REMFIL ;Enter common code
770
771 000555'00 260 17 0 00 004575' .TRACE: NOISE (DAP MESSAGES)
772 000556'00 260 17 0 00 004321' CONFRM
773 000557'00 201 01 0 00 000101 MOVEI S1,.PRIOU
774 000560'00 202 01 0 00 000012' MOVEM S1,DAPIB+.DIMSG ;Store for output
775 000561'00 201 01 0 00 000002 MOVEI S1,.DISIZ
776 000562'00 201 02 0 00 000011' MOVEI S2,DAPIB
777 000563'00 260 17 0 00 000040* $CALL D$INIT ;Re-initialize DAPLIB
778 000564'00 324740 000442* $RETT
779
780 000565'00 260 17 0 00 004550' .TYPE: NOISE (REMOTE FILES)
781 000566'00 201 01 0 00 000101 MOVX S1,AF$TYP ;Function is type remote files
782 000567'00 201 02 0 00 000765' MOVEI S2,TYPRTN ;General Co-routine
783 000570'00 200 03 0 00 004552' MOVX T1,TXT() ;No default name or extenstion
784 000571'00 205 04 0 00 100100 MOVX T2,GJ%IFG+GJ%OLD ;Allow wild cards
785 000572'00 476 00 0 00 000000# SETOM CNOFLG ;Request control O processing
786 000573'00 254 00 0 00 000603' JRST REMFIL ;Enter common code
787
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 16
NFT MAC 22-Feb-82 10:30 REMFIL Common parsing routine for remote filespec
788 SUBTTL REMFIL Common parsing routine for remote filespec
789
790 000574'00 010000 000575' REMFSW: FLD(.CMCFM,CM%FNC)+REMFS1
791
792 000575'00 003000 000000 REMFS1: FLD(.CMSWI,CM%FNC)
793 000576'00 000000 000577' REMSWS
794
795
796 000577'00 000003 000003 REMSWS: REMSIZ,,REMSIZ
797 000600'00 004577' 001613' SV (ACCOUNT)
798 000601'00 004601' 001633' SV (PASSWORD)
799 000602'00 004603' 001656' SV (USER)
800 000003 REMSIZ==.-REMSWS-1
801
802 000603'00 137 01 0 00 004605' REMFIL: STORE S1,,DPFNC ;Save requested function
803 000604'00 202 02 0 00 000000# STORE S2,,DPRTN ;Save for D$FUNC
804 000605'00 201 01 0 00 000001 MOVEI S1,DAPLNK ;Get requested link
805 000606'00 137 01 0 00 004606' STORE S1,,DPLNK ;Save it
806 000607'00 120 01 0 00 000003 DMOVE S1,T1 ;Get Defaults
807 000610'00 260 17 0 00 002733' $CALL FILDEF ;Set them up
808 000611'00 561 01 0 00 000000# HRROI S1,SRCNAM ;Point to destination for NODE
809 000612'00 561 02 0 00 000000# HRROI S2,SRCFIL ;Point to destination for file
810 000613'00 200 03 0 00 004613' MOVX T1,TXT(remote filespec)
811 000614'00 260 17 0 00 001315' $CALL PARFIL ;Parse a file spec
812 000615'00 202 01 0 00 000000# MOVEM S1,SRCNOD ;Save source node
813 000616'00 202 02 0 00 000000# MOVEM S2,SRCJFN ;Save JFN
814 000617'00 201 01 0 00 000000# MOVEI S1,SRCFIL ;[0061]
815 000620'00 332 00 0 00 000000# SKIPE SRCPFL ;[0061]WAS FILE NAME CHANGED?
816 000621'00 260 17 0 00 001463' $CALL RESNAM ;[0061]RESTORE TRUE FILE NAME
817 000622'00 201 01 0 00 000574' REMF20: MOVEI S1,REMFSW ;Point to Delete switches
818 000623'00 260 17 0 00 003516' $CALL RFIELD
819 000624'00 306 04 0 00 000010 CAIN T2,.CMCFM ;Parse a confirm?
820 000625'00 254 00 0 00 000631' JRST REMF30 ;Yes..go finish up
821 000626'00 550 02 0 02 000000 HRRZ S2,0(S2) ;No..must be a switch
822 000627'00 260 17 0 02 000000 PUSHJ P,0(S2) ;Call the processor
823 000630'00 254 00 0 00 000622' JRST REMF20 ;Look for confirm
824
825 000631'00 402 00 0 00 000000# REMF30: SETZM NAMFLG ;Say name not yet displayed
826 000632'00 402 00 0 00 000000# SETZM VOLNAM ;Null volume name
827 000633'00 402 00 0 00 000000# SETZM DIRNAM ;Null directory name
828 000634'00 402 00 0 00 000000# SETZM FILNAM ;Null file name
829 000635'00 402 00 0 00 000000# SETZM FILSPC ;Null file spec
830 000636'00 402 00 0 00 000000# SETZM FILNAM ;Say file name is missing
831 000637'00 332 02 0 00 000000# SKIPE S2,SRCNOD ;Get source node
832 000640'00 260 17 0 00 004057' $CALL NODOFF ;Mark node off-line
833 000641'00 202 02 0 00 000000# MOVEM S2,REMNOD ;Save for Call to GETUSR
834 000642'00 561 01 0 00 000000# HRROI S1,SRCFIL ;Point to file name
835 000643'00 202 01 0 00 000000# STORE S1,,DPRFS ;Save for D$FUNC
836 000644'00 200 02 0 00 000000# MOVE S2,SRCJFN ;Get source JFN
837 000645'00 200 03 0 00 004435' MOVX T1,FFSPEC ;Do full name expansion if local
838 000646'00 336 00 0 00 000000# SKIPN SRCNOD
839 000647'00 104 00 0 00 000030 JFNS
840
841 000650'00 332 00 0 00 000000# REMF40: SKIPF CNOFLG ;Want control O interrupts?
842 000651'00 260 17 0 00 004074' $CALL CNOENA ;Yes..enable them
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 16-1
NFT MAC 22-Feb-82 10:30 REMFIL Common parsing routine for remote filespec
843 000652'00 260 17 0 00 003242' $CALL DAPOPN ;Make sure link is open
844 000653'00 260 17 0 00 003300' $CALL DAPFNC ;Do the function
845 000654'00 254 00 0 00 003306' JRST DAPCLS ;Finish up nicely
846
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 17
NFT MAC 22-Feb-82 10:30 DIRRTN Co-routine for Directory command
847 SUBTTL DIRRTN Co-routine for Directory command
848
849 ;DIRRTN is called from DAPLIB durring function execution
850
851 ;ACCEPTS S1/ [Flags],,DAP message
852 ; S2/ [Arguments]
853
854
855 000655'00 302 01 0 00 000002 DIRRTN: CAIE S1,.DMATT ;Attributes?
856 000656'00 306 01 0 00 000006 CAIN S1,.DMACK ; Or ACK?
857 000657'00 254 00 0 00 000676' JRST DIRATT ;Yes..process it
858 000660'00 275 01 0 00 000017 SUBI S1,.DMNAM ;Try for name message
859 000661'00 602 01 0 00 777777 TRNE S1,-1 ;Is it some type of name?
860 000662'00 324740 000564* $RETT ;No..just return
861 000663'00 260 17 0 00 001007' $CALL SAVNAM ;Yes..store the pointer
862 000664'00 607 01 0 00 000004 TLNN S1,NA$DIR ;[0066]DIRECTORY NAME?
863 000665'00 332 00 0 00 000000# SKIPE NAMFLG ;[0066]OR VOL NAME?
864 000666'00 254 00 0 00 000672' JRST DOHDR ;[0066]YES
865 000667'00 603 01 0 00 000010 TLNE S1,NA$VOL ;[0066]VOL NAME?
866 000670'00 476 00 0 00 000000# SETOM NAMFLG ;[0066]FLAG IT FOR NEXT TIME
867 000671'00 324740 000662* $RETT ;No..just return
868 000672'00 260 17 0 00 000443* DOHDR: $TEXT (,^M^J ^T/@REMNOD/::^T/VOLNAM/^T/DIRNAM/)
869 000674'00 402 00 0 00 000000# SETZM NAMFLG ;[0066]CLEAR VOL NAME SEEN FLAG
870 000675'00 324740 000671* $RETT
871
872 ;DIRATT is called with address of remote files FDB in S2
873 000676'00 336 00 0 00 000000# DIRATT: SKIPN FILNAM ;Was filename returned?
874 000677'00 260 17 0 00 000672* $TEXT (<-1,,FILNAM>,<^T/SRCFIL/^0>)
875 000701'00 260 17 0 00 000677* $TEXT (<-1,,DIRTXT>,<^T/FILNAM/;P^O6L/.FBPRT(S2)/^0>)
876 $TEXT (<-1,,DIRTX1>,<^D4R /.FBBYV(S2),FB%PGC/ ^D/.FBSIZ(S2)/(^D/.FBBYV(S2),FB%BSZ/
877 000703'00 260 17 0 00 000701* )^0>)
878 000705'00 260 17 0 00 000703* $TEXT (,<^T30L /DIRTXT/^T15L /DIRTX1/^A>)
879 000707'00 336 00 0 02 000014 SKIPN .FBWRT(S2) ;[67]
880 000710'00 254 00 0 00 000716' JRST DIRAT1 ;[67]
881 000711'00 260 17 0 00 000705* $TEXT (,< ^H/.FBWRT(S2)/^A>) ;Yes..display it
882 000713'00 260 17 0 00 000711* $TEXT (,) ;Do final crlf
883 000715'00 324740 000675* $RETT
884 000716'00 332 00 0 02 000013 DIRAT1: SKIPE .FBCRV(S2) ;[67]
885 000717'00 260 17 0 00 000713* $TEXT (,< ^H/.FBCRV(S2)/^A>) ;[67]
886 000721'00 260 17 0 00 000717* $TEXT (,) ;[67]
887 000723'00 324740 000715* $RETT ;[67]
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 18
NFT MAC 22-Feb-82 10:30 REMRTN Common Co-routine for DELETE and SUBMIT commands
888 SUBTTL REMRTN Common Co-routine for DELETE and SUBMIT commands
889
890 ;ACCEPTS S1/ [Flags],,msg type
891 ; S2/ [Argument pointer]
892
893 000724'00 306 01 0 00 000007 REMRTN: CAIN S1,.DMACP ;Access complete?
894 000725'00 324 17 0 00 000755' PJRST REMACP ;Yes..process it
895 000726'00 275 01 0 00 000017 SUBI S1,.DMNAM ;Check for name function
896 000727'00 602 01 0 00 777777 TRNE S1,-1 ;Was it?
897 000730'00 324740 000723* $RETT ;No..just return
898
899 000731'00 260 17 0 00 001007' REMNAM: $CALL SAVNAM ;Yes..store the pointers
900 000732'00 603 01 0 00 000002 TLNE S1,NA$FNM ;File name?
901 000733'00 254 00 0 00 000747' JRST REMFNM ;Yes..process it
902 000734'00 607 01 0 00 000001 TLNN S1,NA$FSP ;File spec?
903 000735'00 324740 000730* $RETT ;No..just return
904 000736'00 336 00 0 00 000000# SKIPN DIRNAM ;Wild operation?
905 000737'00 332 00 0 00 000000# SKIPE FILNAM
906 000740'00 324740 000735* $RETT ;Yes..ignore NA$FSP
907 000741'00 332 00 0 00 000000# SKIPE NAMFLG ;Been here before?
908 000742'00 260 17 0 00 000761' $CALL REMSOK ;Yes..display previous [OK]
909 000743'00 260 17 0 00 000721* $TEXT (,^T/@REMNOD/::^Q/S2/^A);No..type the filespec
910 000745'00 476 00 0 00 000000# SETOM NAMFLG ;Say weve been here before
911 000746'00 324740 000740* $RETT ;And return
912
913 000747'00 332 00 0 00 000000# REMFNM: SKIPE NAMFLG ;Been here before?
914 000750'00 260 17 0 00 000761' $CALL REMSOK ;Yes..display [OK]
915 000751'00 260 17 0 00 000743* $TEXT (,^T/@REMNOD/::^T/VOLNAM/^T/DIRNAM/^T/FILNAM/^A)
916 000753'00 476 00 0 00 000000# SETOM NAMFLG ;Say weve been here before
917 000754'00 324740 000746* $RETT
918
919 000755'00 332 00 0 00 000000# REMACP: SKIPE NAMFLG ;Has name been displayed?
920 000756'00 254 00 0 00 000761' JRST REMSOK ;Yes..display final OK
921 000757'00 260 17 0 00 000751* $TEXT (,^T/@REMNOD/::^T/SRCFIL/^A) ;No..display original name
922 000761'00 260 17 0 00 000757* REMSOK: $TEXT (, [OK]) ;Display ok message
923 000763'00 402 00 0 00 000000# SETZM NAMFLG ;Ready for next name display
924 000764'00 324740 000754* $RETT
925
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 19
NFT MAC 22-Feb-82 10:30 TYPRTN Co-routine for TYPE command
926 SUBTTL TYPRTN Co-routine for TYPE command
927
928 ;ACCEPTS S1/ [Flags],,msg type
929 ; S2/ [Argument pointer]
930
931 000765'00 275 01 0 00 000017 TYPRTN: SUBI S1,.DMNAM ;Check for name function
932 000766'00 602 01 0 00 777777 TRNE S1,-1 ;Was it?
933 000767'00 324740 000764* $RETT ;No..just return
934
935 000770'00 260 17 0 00 001007' TYPNAM: $CALL SAVNAM ;Yes..store the pointers
936 000771'00 607 01 0 00 000002 TLNN S1,NA$FNM ;File name?
937 000772'00 324740 000767* $RETT ;No..just return
938 000773'00 332 00 0 00 000000# SKIPF CNOFLG ;Trapping Control-O?
939 000774'00 260 17 0 00 004103' $CALL SUPOFF ;Yes..turn suppress bit off
940 000775'00 260 17 0 00 001002' $CALL TYPCRL ;Type CRLF if needed
941 000776'00 260 17 0 00 000761* $TEXT (, ^T/@REMNOD/::^T/VOLNAM/^T/DIRNAM/^T/FILNAM/^M^J)
942 001000'00 476 00 0 00 000000# SETOM NAMFLG ;Say name has been displayed
943 001001'00 324740 000772* $RETT
944
945 001002'00 336 00 0 00 000000# TYPCRL: SKIPN NAMFLG ;Has name been displayed?
946 001003'00 324740 001001* $RETT ;No..Just return
947 001004'00 260 17 0 00 000776* $TEXT ;Yes..display CRLF
948 001006'00 324740 001003* $RETT
949
950 ;SAVNAM is called with S1 containing flag indicating type of name msg
951 ; S2 containing pointer to the asciz name string
952
953 001007'00 120 04 0 00 000001 SAVNAM: DMOVE T2,S1 ;Save flags and pointer
954 001010'00 400 01 0 00 000000 SETZ S1, ;Clear destination pointer
955 001011'00 603 04 0 00 000010 TLNE T2,NA$VOL ;Is it structure?
956 001012'00 561 01 0 00 000000# HRROI S1,VOLNAM ;Yes..store in volume name
957 001013'00 603 04 0 00 000004 TLNE T2,NA$DIR ;Directory?
958 001014'00 561 01 0 00 000000# HRROI S1,DIRNAM ;Yes..store in directory name
959 001015'00 603 04 0 00 000002 TLNE T2,NA$FNM ;File name?
960 001016'00 561 01 0 00 000000# HRROI S1,FILNAM ;Yes..store in filename
961 001017'00 603 04 0 00 000001 TLNE T2,NA$FSP ;Full file spec?
962 001020'00 561 01 0 00 000000# HRROI S1,FILSPC ;Yes..store in filespec
963 001021'00 332 00 0 00 000001 SKIPE S1 ;Destination specified?
964 001022'00 260 17 0 00 003377' $CALL STOSTR ;Yes..store the name
965 001023'00 120 01 0 00 000004 DMOVE S1,T2 ;Restore flags and pointer
966 001024'00 324740 001006* $RETT ;Return
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 20
NFT MAC 22-Feb-82 10:30 OUTDEF Routine to default output file name
967 SUBTTL OUTDEF Routine to default output file name
968
969 001025'00 260 17 0 00 003616' OUTDEF: $CALL CLRGJF ;Clear file parse block
970 001026'00 336 01 0 00 000000# SKIPN S1,SRCJFN ;Source JFN given?
971 001027'00 324740 001024* $RETT ;No..just return
972 001030'00 200 06 0 00 004777' MOVE T4,[-3,,1] ;Set up for <Dir>nam.ext
973 001031'00 607 01 0 00 100000 TXNN S1,GJ%DIR ;Directory have wild cards?
974 001032'00 253 06 0 00 001033' AOBJN T4,.+1 ;No..skip it
975 001033'00 205 01 0 00 400040 MOVX S1,GJ%FOU+GJ%OFG ;Allow wild + file for output
976 001034'00 202 01 0 00 000000# MOVEM S1,GJFBLK+.GJGEN ;Store the flags
977 001035'00 510 01 0 06 001045' OUTD.1: HLLZ S1,FSTRT(T4) ;GET FIELD
978 001036'00 200 03 0 06 001052' MOVE T1,FFLDT(T4) ;Get the offset of bits
979 001037'00 560 01 0 06 001045' HRRO S1,FSTRT(T4) ;POINT TO DESTINATION FOR STRING
980 001040'00 202 01 0 06 000000# MOVEM S1,GJFBLK+.GJDEV(T4) ;STORE THE POINTER
981 001041'00 200 02 0 00 000000# MOVE S2,SRCJFN ;PICK UP SOURCE JFN
982 001042'00 104 00 0 00 000030 JFNS ;Copy spec from souce
983 001043'00 253 06 0 00 001035' OUTD.4: AOBJN T4,OUTD.1 ;NEXT FIELD
984 001044'00 324740 001027* $RETT
985
986
987 001045'00 000000000000# FSTRT: GJ%DEV+DEFDEV ;DEVICE STRING STORAGE
988 001046'00 000000000000# GJ%DIR+DEFDIR ;DIRECTORY STRING STORAGE
989 001047'00 000000000000# GJ%NAM+DEFNAM ;FILENAME STRING STORAGE
990 001050'00 000000000000# GJ%EXT+DEFEXT ;EXTENTION STRING STORAGE
991 001051'00 000000000000# GJ%VER+DEFVER ;VERSION STRING STORAGE
992
993 001052'00 100000 000000 FFLDT: FLD(.JSAOF,JS%DEV) ;JFNS PRINT DEVICE
994 001053'00 010000 000000 FLD(.JSAOF,JS%DIR) ;JFNS PRNT DIR
995 000002 NIFLD==.-FFLDT ;NUMBER OF INPUT FIELDS
996
997 001054'00 001000 000000 FLD(.JSAOF,JS%NAM) ;JFNS PRINT NAME
998 001055'00 000100 000000 FLD(.JSAOF,JS%TYP) ;JFNS PRINT EXTENTION
999 001056'00 000010 000000 FLD(.JSAOF,JS%GEN) ;JFNS PRINT VERSION
1000 000005 NFFLD=.-FFLDT ;NUMBER OF OUTPUT FIELDS
1001
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 21
NFT MAC 22-Feb-82 10:30 HELP and EXIT commands
1002 SUBTTL HELP and EXIT commands
1003
1004 ; EXIT COMMAND
1005
1006 001057'00 260 17 0 00 005005' .EXIT: NOISE (TO MONITOR)
1007 001060'00 260 17 0 00 004321' CONFRM
1008 001061'00 104 00 0 00 000170 HALTF ;Exit to monitor
1009 001062'00 324740 001044* $RETT ;Return to parser if continued
1010
1011 ; HELP COMMAND
1012
1013 001063'00 HLPFOB: $BUILD (FOB.SZ)
1014 $SET (FOB.FD,,[$FD(HLP:NFT.HLP)])
1015 $SET (FOB.CW,FB.BSZ,7)
1016 $SET (FOB.CW,FB.LSN,1)
1017 $EOB
1018
1019 001070'00 260 17 0 00 005017' .HELP: NOISE (WITH NFT)
1020 001071'00 260 17 0 00 004321' CONFRM
1021 001072'00 260 17 0 00 000133* STKVAR <HLPIFN> ;IFN FOR HELP FILE
1022 001073'00 000001 000001
1023 001074'00 120 01 0 00 005021' DMOVE S1,[EXP FOB.SZ,HLPFOB] ;POINT TO FILE INFO
1024 001075'00 260 17 0 00 000000* $CALL F%IOPN ;OPEN THE FILE
1025 001076'00 322 00 0 00 001111' JUMPF NOHELP
1026 001077'00 202 01 0 17 777776 MOVEM S1,HLPIFN ;STORE THE IFN
1027
1028 001100'00 200 01 0 17 777776 HELP1: MOVE S1,HLPIFN
1029 001101'00 260 17 0 00 000000* $CALL F%IBYT
1030 001102'00 322 00 0 00 001106' JUMPF HELP2 ;FINISHED ON EOF
1031 001103'00 550 01 0 00 000000# HRRZ S1,SBK+.CMIOJ ;GET OUTPUT JFN
1032 001104'00 104 00 0 00 000051 BOUT
1033 001105'00 254 00 0 00 001100' JRST HELP1 ;FINISH THE FILE
1034
1035 001106'00 200 01 0 17 777776 HELP2: MOVE S1,HLPIFN ;GET THE IFN
1036 001107'00 260 17 0 00 000000* $CALL F%REL ;CLOSE THE FILE
1037 001110'00 324740 001062* $RETT ;And return
1038
1039 ;HERE ON ERROR WITH HELP FILE
1040 001111'00 200 01 0 00 005027' NOHELP: MOVX S1,TXT(No HELP available)
1041 001112'00 260 17 0 00 000000* $CALL K%SOUT ;DUMP THE MESSAGE
1042 001113'00 324740 000464* $RETF ;GO PARSE NEXT COMMAND
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 22
NFT MAC 22-Feb-82 10:30 INFORMATION command dispatch
1043 SUBTTL INFORMATION command dispatch
1044
1045 001114'00 260 17 0 00 005034' .INFOR: NOISE (ABOUT)
1046 001115'00 201 01 0 00 001122' MOVEI S1,INFFDB ;INFORMATION KEYTAB
1047 001116'00 260 17 0 00 003542' $CALL CFIELD ;Get keyword and confirmation
1048 001117'00 550 02 0 02 000000 HRRZ S2,(S2) ;GET DISPATCH ADDRESS
1049 001120'00 260 17 0 02 000000 PUSHJ P,0(S2) ;CALL THE ROUTINE
1050 001121'00 324740 001110* $RETT ;RETURN TO CALLER
1051
1052 001122'00 000002 000000 INFFDB: FLD(.CMKEY,CM%FNC)+CM%DPP ;DEFAULT POINTER
1053 001123'00 000000 001126' INFTBL ;KEYWORD TABLE
1054 001124'00 000000 000000 0 ;HELP
1055 001125'00 44 07 0 00 005036' TXT (DECNET) ;Default is INF DECNET
1056
1057 001126'00 000002 000002 INFTBL: INFSIZ,,INFSIZ
1058 001127'00 005036' 001131' T (DECNET,INFDNT) ;Information about DECNET
1059 001130'00 005040' 001201' T (DEFAULTS,INFDEF) ;Information about DEFAUTLS
1060 000002 INFSIZ==.-INFTBL-1
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 23
NFT MAC 22-Feb-82 10:30 Information about DECNET
1061 SUBTTL Information about DECNET
1062
1063 001131'00 260 17 0 00 000000* INFDNT: $SAVE <P1,P2,P3> ;[0073]
1064 001132'00 260 17 0 00 003636' $CALL NODGET ;GET CURRENT NODE INFO
1065 JUMPF [$TEXT (,<?Error getting list of available nodes>)
1066 001133'00 322 00 0 00 005056' $RETF]
1067 001134'00 200 10 0 00 000000# MOVE P2,NODTBL ;[0073]
1068 001135'00 554 07 0 10 000000 HLRZ P1,0(P2) ;[0073]TABLE SIZE
1069 001136'00 322 07 0 00 001150' JUMPE P1,INFDN2 ;[0073]EMPTY TABLE
1070 001137'00 271 10 0 00 000001 ADDI P2,1 ;[0073]
1071 001140'00 550 02 0 10 000000 INFDN1: HRRZ S2,0(P2) ;[0073]
1072 001141'00 200 01 0 02 000002 MOVE S1,ND$STA(S2) ; AND IT'S STATUS
1073 001142'00 306 01 0 00 000000 CAIN S1,.NDSON ;IS IT ONLINE?
1074 001143'00 254 00 0 00 001153' JRST INFDN3 ;YES..TELL THEM
1075 001144'00 271 10 0 00 000001 ADDI P2,1 ;[0073]
1076 001145'00 275 07 0 00 000001 SUBI P1,1 ;[0073]
1077 001146'00 322 07 0 00 001150' JUMPE P1,INFDN2 ;[0073]
1078 001147'00 254 00 0 00 001140' JRST INFDN1 ;[0073]
1079 001150'00 260 17 0 00 001004* INFDN2: $TEXT (,< No DECNET nodes are accessible>)
1080 001152'00 324740 001113* $RETF ;RETURN FAILURE
1081
1082 001153'00 260 17 0 00 001150* INFDN3: $TEXT (,< Accessible DECNET nodes are: ^A>)
1083 001155'00 201 11 0 00 000005 MOVEI P3,5 ;[0073]
1084 001156'00 254 00 0 00 001166' JRST INFDN5
1085
1086 001157'00 200 01 0 02 000002 INFDN4: MOVE S1,ND$STA(S2) ;GET NODE STATUS
1087 001160'00 302 01 0 00 000000 CAIE S1,.NDSON ;IS IT ON LINE?
1088 001161'00 254 00 0 00 001170' JRST INFDN6 ;NO..CHECK THE NEXT
1089 001162'00 260 17 0 00 001153* $TEXT (,< ^A>) ;YES..DISPLAY A COMMA
1090 001164'00 377 00 0 00 000011 SOSG P3 ;[0073]
1091 JRST [$TEXT ;[0073]
1092 MOVEI P3,^D9 ;[0073]
1093 001165'00 254 00 0 00 005116' JRST .+1] ;[0073]
1094 001166'00 260 17 0 00 001162* INFDN5: $TEXT (,<^T/ND$NAM(S2)/^A>) ;DISPLAY THE NODE NAME
1095 001170'00 271 10 0 00 000001 INFDN6: ADDI P2,1 ;[0073]
1096 001171'00 275 07 0 00 000001 SUBI P1,1 ;[0073]
1097 001172'00 322 07 0 00 001176' JUMPE P1,INFDN7 ;[0073]END OF LIST
1098 001173'00 550 02 0 10 000000 HRRZ S2,0(P2) ;[0073]
1099 001174'00 254 00 0 00 001157' JRST INFDN4 ;[0073]
1100 001175'00 326 00 0 00 001157' JUMPT INFDN4 ;PROCESS IT
1101
1102 001176'00 260 17 0 00 001166* INFDN7: $TEXT ;DISPLAY A CRLF
1103 001200'00 324740 001121* $RETT ;AND RETURN
1104
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 24
NFT MAC 22-Feb-82 10:30 Information about DEFAULTS
1105 SUBTTL Information about DEFAULTS
1106
1107 001201'00 200 01 0 00 000000# INFDEF: MOVE S1,NODLST ;POINT TO NODE LIST
1108 001202'00 260 17 0 00 000000* $CALL L%FIRST ;POINT TO FIRST ENTRY
1109 001203'00 322 00 0 00 001200* INFDE1: JUMPF .RETT ;QUIT AT END OF LIST
1110 001204'00 200 01 0 00 000002 MOVE S1,S2 ;PUT ADDRESS IN S1
1111 001205'00 260 17 0 00 001211' $CALL INFNOD ;DISPLAY THE DEFAULTS
1112 001206'00 200 01 0 00 000000# MOVE S1,NODLST ;POINT TO NODE LIST
1113 001207'00 260 17 0 00 000000* $CALL L%NEXT ;GET THE NEXT ENTRY
1114 001210'00 254 00 0 00 001203' JRST INFDE1 ;LOOP THRU THEM ALL
1115
1116
1117 ;INFNOD Routine to display node and user information
1118
1119 ;ACCEPTS S1/ Base of node data
1120
1121 ;RETURNS TRUE Information has been displayed
1122
1123
1124 001211'00 201 02 0 00 000001 INFNOD: MOVEI S2,1B35 ;Get String valid bit
1125 001212'00 616 02 0 01 000024 TDNN S2,ND$USR(S1) ;User or account string valid?
1126 001213'00 612 02 0 01 000044 TDNE S2,ND$ACT(S1)
1127 001214'00 254 00 0 00 001217' JRST INFNO1 ;Yes..display the info
1128 001215'00 336 00 0 01 000003 SKIPN ND$OST(S1) ;OSTYPE Specified?
1129 001216'00 324740 001203* $RETT ;No..just return
1130 001217'00 260 17 0 00 001176* INFNO1: $TEXT (,<Node ^T/ND$NAM(S1)/::^A>) ;DISPLAY THE NODE NAME
1131 001221'00 612 02 0 01 000024 TDNE S2,ND$USR(S1) ;Display only valid defaults
1132 001222'00 260 17 0 00 001217* $TEXT (,</USER:^T/ND$USR(S1)/^A>) ;YES..DISPLAY IT
1133 001224'00 612 02 0 01 000044 TDNE S2,ND$ACT(S1) ;Display only valid defaults
1134 001225'00 260 17 0 00 001222* $TEXT (,</ACCOUNT:^T/ND$ACT(S1)/^A>) ;YES..DISPLAY IT
1135 001227'00 332 00 0 01 000003 SKIPE ND$OST(S1) ;OSTYPE KNOWN?
1136 001230'00 260 17 0 00 001225* $TEXT (,</OSTYPE:^Q/ND$OST(S1),LHMASK/^A>) ;YES..DISPLAY IT
1137 001232'00 260 17 0 00 001230* $TEXT ;CRLF
1138 001234'00 324740 001216* $RETT ;NO..JUST RETURN
1139
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 25
NFT MAC 22-Feb-82 10:30 SET defaults command
1140 SUBTTL SET defaults command
1141
1142 001235'00 201 01 0 00 001307' .SET: MOVEI S1,SETFDB ;KEYWORD -- DEFAULT
1143 001236'00 260 17 0 00 003521' $CALL PARSE ;PARSE THE KEYWORD
1144 001237'00 336 00 0 00 000000 SKIPT ;PARSE OK?
1145 001240'00 254 00 0 00 005202' REPARS (Invalid set command) ;NO..ERROR
1146 001241'00 550 02 0 02 000000 HRRZ S2,(S2) ;GET DISPATCH ADDRESS
1147 001242'00 260 17 0 02 000000 PUSHJ P,0(S2) ;DO THE ROUTINE
1148 001243'00 324740 001234* $RETT
1149
1150 001244'00 260 17 0 00 000000* SEDEFA: $SAVE <P1,P2>
1151 001245'00 260 17 0 00 005210' NOISE (FOR NODE)
1152 001246'00 561 01 0 00 000000# HRROI S1,SRCNAM ;Point to node text
1153 001247'00 200 02 0 00 005214' MOVX S2,TXT(NODE::) ;Get help text
1154 001250'00 260 17 0 00 001531' $CALL PARNOD
1155 001251'00 336 00 0 00 000001 SKIPN S1 ;Node specified?
1156 001252'00 200 01 0 00 000000# MOVE S1,LOCNOD ;No..use local node
1157 001253'00 202 01 0 00 000000# MOVEM S1,SRCNOD ;Save as source node
1158 001254'00 200 07 0 00 000001 MOVE P1,S1 ;Save for OSTYPE switch
1159 001255'00 402 00 0 00 000010 SETZM P2 ;Clear count of switches specified
1160 001256'00 201 01 0 00 001277' SEDEF1: MOVEI S1,DEFASW ;POINT TO OUR SWITCH FDB
1161 001257'00 260 17 0 00 003516' $CALL RFIELD ;PARSE THE FIELD
1162 001260'00 306 04 0 00 000010 CAIN T2,.CMCFM ;PARSE CONFIRMATION?
1163 001261'00 254 00 0 00 001265' JRST SEDEF2 ;YES..FINISH UP
1164 001262'00 550 02 0 02 000000 HRRZ S2,(S2) ;NO..GET PROCESSOR ADDRESS
1165 001263'00 260 17 0 02 000000 PUSHJ P,0(S2) ;CALL THE PROCESSOR
1166 001264'00 344 10 0 00 001256' AOJA P2,SEDEF1 ;LOOK FOR CONFIRM
1167
1168 SEDEF2: JUMPE P2,[MOVEI S2,1 ;Any switches specified?
1169 ANDCAM S2,REMUSR ;NO..CLEAR VALID BIT FOR USER
1170 ANDCAM S2,REMACT ;CLEAR VALID BIT FOR ACCOUNT
1171 ANDCAM S2,REMPSW ;CLEAR VALID BIT FOR PASSWORD
1172 001265'00 322 10 0 00 005215' JRST .+1]
1173 001266'00 200 01 0 00 000000# MOVE S1,SRCNOD ;Get address of source node
1174 001267'00 201 02 0 00 000001 MOVEI S2,.NDSOF ;Get off-line status
1175 001270'00 335 00 0 01 000002 SKIPGE ND$STA(S1) ;Status already known?
1176 001271'00 202 02 0 01 000002 MOVEM S2,ND$STA(S1) ;No..assume off-line
1177 001272'00 505 02 0 00 000000# HRLI S2,REMUSR ;Copy defaults obtained from switches
1178 001273'00 541 02 0 01 000024 HRRI S2,ND$USR(S1)
1179 001274'00 200 01 0 00 000002 MOVE S1,S2
1180 001275'00 251 01 0 02 000057 BLT S1,DEFSIZ-1(S2)
1181 001276'00 324740 001243* $RETT
1182
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 26
NFT MAC 22-Feb-82 10:30 SET defaults command
1183 001277'00 010000 001300' DEFASW: FLD(.CMCFM,CM%FNC)+DEFAS1 ;CONFIRM OR SWITCH
1184
1185 001300'00 003000 000000 DEFAS1: FLD(.CMSWI,CM%FNC) ;PARSE SWITCHES
1186 001301'00 000000 001302' DEFSWS ;FILE SWITCH TABLE
1187
1188 001302'00 000004 000004 DEFSWS: XWD DFSSIZ,DFSSIZ ;DEFAULT SWITCH TABLE SIZE
1189 001303'00 004577' 001613' SV (ACCOUNT)
1190 001304'00 005222' 002007' SV (OSTYPE)
1191 001305'00 004601' 001633' SV (PASSWORD)
1192 001306'00 004603' 001656' SV (USER)
1193 000004 DFSSIZ==.-DEFSWS-1
1194
1195 001307'00 000002 000000 SETFDB: FLD(.CMKEY,CM%FNC)+CM%DPP ;DEFAULT POINTER PRESENT
1196 001310'00 000000 001313' SETTBL ;SET KEYWORD TABLE
1197 001311'00 000000 000000 0 ;NO HELP
1198 001312'00 44 07 0 00 005040' TXT (DEFAULTS) ;DEFAULT IS "DEFAULT"
1199
1200 001313'00 000001 000001 SETTBL: SETSIZ,,SETSIZ
1201 001314'00 005040' 001244' T (DEFAULTS,SEDEFA)
1202 000001 SETSIZ==.-SETTBL-1
1203
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 27
NFT MAC 22-Feb-82 10:30 PARFIL Routine to parse a network file specification
1204 SUBTTL PARFIL Routine to parse a network file specification
1205
1206 ;ACCEPTS S1/ Destination pointer for node string
1207 ; S2/ Destination pointer for file spec string
1208 ; T1/ Pointer to help text for this parse
1209 ; GJFBLK/ Flags and defaults established
1210
1211 ;RETURNS TRUE S1/ Address of node data if node exists
1212 ; or 0 if node wasn't typed or local node was specified
1213 ; or -1 if a new node was typed
1214 ; S2/ JFN acquired on behalf of the filespec
1215 ; or 0 if no JFN was obtained
1216
1217
1218 200000 000000 P%%PPN==1B1 ;We saw [P,PN]
1219 100000 000000 P%%GEN==1B2 ;We saw ;GEN
1220
1221
1222 001315'00 260 17 0 00 000000* PARFIL: $SAVE <P1,P2,P3,P4> ;Save some Ac's
1223 001316'00 120 07 0 00 000001 DMOVE P1,S1 ;Save calling pointers
1224 001317'00 202 03 0 00 000000# MOVEM T1,CMDFDB+.CMHLP ;Save help pointer
1225 001320'00 200 03 0 00 001434' MOVE T1,FILFDB+.CMFLG ;Get our file function
1226 001321'00 202 03 0 00 000000# MOVEM T1,CMDFDB+.CMFLG ;Save it for COMND
1227 001322'00 201 01 0 00 000000# PARFI1: MOVEI S1,CMDFDB ;Point to our FDB
1228 001323'00 260 17 0 00 003521' $CALL RFLDE ;Try for a file
1229 001324'00 326 00 0 00 001405' JUMPT PARFI5 ;We found a local file
1230 001325'00 322 07 0 00 003556' JUMPE P1,CMDERR ;The file must be remote
1231 001326'00 200 03 0 00 000000# MOVE T1,SBK+.CMPTR ;Get pointer to characters
1232 001327'00 200 04 0 00 000000# MOVE T2,SBK+.CMINC ;Get unparsed count
1233 001330'00 200 05 0 00 005224' MOVE T3,[POINT 7,ATMBUF] ;Point to destination
1234 001331'00 201 06 0 00 000006 MOVEI T4,^D6 ;Allow six characters
1235
1236 001332'00 260 17 0 00 001416' PARFI2: $CALL PARFI9 ;Get character
1237 001333'00 302 01 0 00 000040 CAIE S1," " ;Ignore spaces and tabs
1238 001334'00 306 01 0 00 000011 CAIN S1,.CHTAB
1239 001335'00 254 00 0 00 001332' JRST PARFI2 ;Back for more
1240 001336'00 334 00 0 00 000000 SKIPA ;We have the character
1241 001337'00 260 17 0 00 001416' PARFI3: $CALL PARFI9 ;Get character
1242 001340'00 306 01 0 00 000072 CAIN S1,":" ;Node terminator?
1243 001341'00 254 00 0 00 001356' JRST PARFI4 ;Yes..go check for next ":"
1244 001342'00 136 01 0 00 000005 IDPB S1,T3 ;No..store the character
1245 001343'00 301 01 0 00 000060 CAIL S1,"0" ;Check proper node syntax
1246 001344'00 303 01 0 00 000071 CAILE S1,"9"
1247 001345'00 334 00 0 00 000000 SKIPA ;Not numeric..check alpha
1248 001346'00 254 00 0 00 001354' JRST PARFIX ;[0063]Back for next character
1249 001347'00 301 01 0 00 000141 CAIL S1,"a" ;Upper case?
1250 001350'00 275 01 0 00 000040 SUBI S1,40 ;Convert it to upper
1251 001351'00 301 01 0 00 000101 CAIL S1,"A" ;has to be alpha
1252 001352'00 303 01 0 00 000132 CAILE S1,"Z"
1253 001353'00 324 17 0 00 001421' PJRST BADNOD ;[0063]
1254 001354'00 365 06 0 00 001337' PARFIX: SOJGE T4,PARFI3 ;[0063]Back for rest of node
1255 001355'00 324 17 0 00 001421' PJRST BADNOD ;[0063]
1256
1257 001356'00 260 17 0 00 001416' PARFI4: $CALL PARFI9 ;Get next character
1258 001357'00 302 01 0 00 000072 CAIE S1,":" ;Second delimiter for NODE::?
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 27-1
NFT MAC 22-Feb-82 10:30 PARFIL Routine to parse a network file specification
1259 001360'00 324 17 0 00 001421' PJRST BADNOD ;[0063]
1260 001361'00 400 01 0 00 000000 SETZ S1, ;Get a null
1261 001362'00 136 01 0 00 000005 IDPB S1,T3 ;Terminate atom
1262 001363'00 202 03 0 00 000000# MOVEM T1,SBK+.CMPTR ;We've just parsed the node
1263 001364'00 202 04 0 00 000000# MOVEM T2,SBK+.CMINC ;Save count of unparsed chars
1264 001365'00 260 17 0 00 001542' $CALL PARNO1 ;Get the node index
1265 001366'00 200 07 0 00 000001 MOVE P1,S1 ;[0062]Remember node index for return
1266 001367'00 200 01 0 00 001434' MOVE S1,FILFDB ;[0062]GET REMOTE FILE SPEC
1267 001370'00 202 01 0 00 000000# MOVEM S1,CMDFDB+.CMFLG ;Save for PARSE
1268 001371'00 200 01 0 00 000000# MOVE S1,GJFBLK ;Get starting flags
1269 001372'00 621 01 0 00 140100 TXZ S1,GJ%IFG+GJ%OLD+GJ%MSG ;Clear wild input flag
1270 001373'00 661 01 0 00 000040 TXO S1,GJ%OFG ;Get parse only flag
1271 001374'00 202 01 0 00 000000# MOVEM S1,GJFBLK ;Save for next parse
1272 001375'00 205 01 0 00 004000 PARFI6: MOVX S1,G1%SLN ;Suppress logical name expansion
1273 001376'00 436 01 0 00 000000# IORM S1,GJFBLK+.GJF2 ;Set for GTJFN
1274 001377'00 200 01 0 00 000000# MOVE S1,SBK+.CMPTR ;[0061]
1275 001400'00 260 17 0 00 001435' $CALL COVNAM ;[0061]Convert non-20 style file names
1276 001401'00 201 01 0 00 000000# MOVEI S1,CMDFDB ;[0061]
1277 001402'00 260 17 0 00 003521' $CALL RFLDE ;[0061]Now parse it as a 20 filename
1278 JUMPF [HRROI S1,[ASCIZ/
1279 ?Syntax error in remote file name - /]
1280 PSOUT ;[0063]
1281 MOVEI S1,.PRIOU ;[0063]
1282 MOVE S2,[.FHSLF,,-1] ;[0063]
1283 SETZ T1, ;[0063]
1284 ERSTR ;[0063]PRINT LAST ERROR IN THIS PROCESS
1285 JFCL ;[0063]
1286 JFCL ;[0063]
1287 HRROI S1,[ASCIZ /
1288 /]
1289 PSOUT ;[0063]
1290 001403'00 322 00 0 00 005236' JRST CMDER1] ;[0063]
1291 001404'00 334 00 0 00 000000 SKIPA ;Remember, we parsed a node!
1292 001405'00 400 07 0 00 000000 PARFI5: SETZ P1, ;We parsed local node
1293 001406'00 200 01 0 00 000010 MOVE S1,P2 ;Get file destination pointer
1294 001407'00 200 10 0 00 000002 MOVE P2,S2 ;Save JFN for return
1295 001410'00 260 17 0 00 003376' $CALL STOATM
1296 001411'00 200 01 0 00 000007 MOVE S1,P1 ;[0062]
1297 001412'00 336 00 0 00 000007 SKIPN P1 ;Parse a node?
1298 001413'00 260 17 0 00 001552' $CALL PARNO2 ;Yes..copy local defaults
1299 001414'00 120 01 0 00 000007 DMOVE S1,P1 ;Return node and JFN
1300 001415'00 324740 001276* $RETT ;Hurray..we've got it
1301
1302 001416'00 134 01 0 00 000003 PARFI9: ILDB S1,T1 ;Get next comnd byte
1303 001417'00 370 00 0 00 000004 SOS T2 ;Decr unparsed count
1304 001420'00 263 17 0 00 000000 $RET ;Return
1305
1306 001421'00 BADNOD: HRROI S1,[ASCIZ /
1307 ?Syntax error in node name or error in local file specification
1308 001421'00 561 01 0 00 005251' (/]
1309 001422'00 104 00 0 00 000076 PSOUT ;[0063]
1310 001423'00 201 01 0 00 000101 MOVEI S1,.PRIOU ;[0063]
1311 001424'00 200 02 0 00 005235' MOVE S2,[.FHSLF,,-1] ;[0063]
1312 001425'00 400 03 0 00 000000 SETZ T1, ;[0063]
1313 001426'00 104 00 0 00 000011 ERSTR ;[0063]LAST ERROR IN THIS PROCESS
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 27-2
NFT MAC 22-Feb-82 10:30 PARFIL Routine to parse a network file specification
1314 001427'00 255 00 0 00 000000 JFCL ;[0063]
1315 001430'00 255 00 0 00 000000 JFCL ;[0063]
1316 HRROI S1,[ASCIZ /)
1317 001431'00 561 01 0 00 005267' /]
1318 001432'00 104 00 0 00 000076 PSOUT ;[0063]
1319 001433'00 254 00 0 00 003570' JRST CMDER1 ;[0063]
1320
1321 001434'00 006005 000000 FILFDB: FLD(.CMFIL,CM%FNC)+CM%SDH+CM%HPP ;LOCAL FILESPEC
1322
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 28
NFT MAC 22-Feb-82 10:30 COVNAM Routine to make a file spec TOPS-20 compatible
1323 SUBTTL COVNAM Routine to make a file spec TOPS-20 compatible
1324
1325 ; This entire routine is part of edit 0061
1326
1327 ;ACCEPTS S1/ Pointer to file spec string
1328 ; P2/ ADDRESS OF DESTINATION STRING
1329
1330 ;RETURN S1/ SAME POINTER TO UPDATED FILE SPEC STRING
1331 ; -1(P2)/ BITS SET TO SHOW ANY CHANGES MADE
1332
1333 001435'00 304 00 0 00 000000 COVNAM: $SAVE <S2,T1>
1334 001442'00 200 02 0 00 000001 MOVE S2,S1 ;STRING POINTER
1335 001443'00 400 01 0 00 000000 SETZ S1, ;FLAG WORD
1336 001444'00 134 03 0 00 000002 CN.0: ILDB T1,S2 ;GET A BYTE
1337 001445'00 302 03 0 00 000057 CAIE T1,"/"
1338 001446'00 336 00 0 00 000003 SKIPN T1
1339 JRST [MOVEM S1,-1(P2) ;SAVE THE BITS
1340 001447'00 254 00 0 00 005276' $RETT] ;RETURN
1341 001450'00 302 03 0 00 000073 CAIE T1,";" ;SEMI COLON?
1342 001451'00 254 00 0 00 001455' JRST CN.1 ;NO
1343 001452'00 661 01 0 00 100000 TXO S1,P%%GEN ;SEMI SEEN
1344 001453'00 201 03 0 00 000056 MOVEI T1,"." ;CONVERT TO...
1345 001454'00 137 03 0 00 000002 DPB T1,S2 ;A PERIOD
1346 001455'00 302 03 0 00 000054 CN.1: CAIE T1,"," ;SEEN A COMMA?
1347 001456'00 254 00 0 00 001444' JRST CN.0 ;NO
1348 001457'00 661 01 0 00 200000 TXO S1,P%%PPN ;SET THE FLAG
1349 001460'00 201 03 0 00 000055 MOVEI T1,"-" ;CONVERT TO A DASH
1350 001461'00 137 03 0 00 000002 DPB T1,S2
1351 001462'00 254 00 0 00 001444' JRST CN.0
1352
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 29
NFT MAC 22-Feb-82 10:30 RESNAM Routine to restore file spec to original condition
1353 SUBTTL RESNAM Routine to restore file spec to original condition
1354
1355 ; This entire routine is part of edit 0061
1356
1357 ;ACCEPTS S1/ ADDRESS OF STRING
1358
1359 ;RETURNS S1/ ADDRESS OF UPDATED STRING
1360
1361 001463'00 304 00 0 00 000000 RESNAM: $SAVE <S2,T1>
1362 001470'00 200 02 0 01 777777 MOVE S2,-1(S1) ;GET FLAG BITS
1363 001471'00 500 01 0 00 005300' HLL S1,[POINT 7,0] ;MAKE A BYTE POINTER
1364 001472'00 134 03 0 00 000001 RN.2: ILDB T1,S1 ;GET A BYTE
1365 001473'00 302 03 0 00 000057 CAIE T1,"/"
1366 001474'00 336 00 0 00 000003 SKIPN T1 ;END OF STRING?
1367 001475'00 324740 001415* $RETT ;YES
1368 001476'00 302 03 0 00 000133 CAIE T1,"[" ;DIRECTORY?
1369 001477'00 306 03 0 00 000074 CAIN T1,"<" ;?
1370 001500'00 254 00 0 00 001515' JRST RN.0 ;YES
1371 001501'00 302 03 0 00 000056 CAIE T1,"." ;PERIOD?
1372 001502'00 254 00 0 00 001472' JRST RN.2 ;NO
1373 001503'00 134 03 0 00 000001 RN.3: ILDB T1,S1 ;GET A BYTE
1374 001504'00 302 03 0 00 000057 CAIE T1,"/"
1375 001505'00 336 00 0 00 000003 SKIPN T1 ;END OF STRING?
1376 001506'00 324740 001475* $RETT ;YES, RETURN
1377 001507'00 302 03 0 00 000056 CAIE T1,"." ;YES, IT MUST BE THE VERSION
1378 001510'00 254 00 0 00 001503' JRST RN.3 ;NOT VERSION, KEEP LOOKING
1379 001511'00 201 03 0 00 000073 MOVEI T1,";" ;TURN . INTO ;
1380 001512'00 603 02 0 00 100000 TXNE S2,P%%GEN ;WAS A ; TURNED INTO A DOT?
1381 001513'00 137 03 0 00 000001 DPB T1,S1 ;YES, TURN IT BACK
1382 001514'00 324740 001506* $RETT
1383 001515'00 201 03 0 00 000133 RN.0: MOVEI T1,"[" ;ALWAYS USE SQUARE BRACKETS
1384 001516'00 137 03 0 00 000001 DPB T1,S1 ;CHANGE < TO [
1385 001517'00 134 03 0 00 000001 RN.1: ILDB T1,S1 ;GET A BYTE
1386 001520'00 302 03 0 00 000135 CAIE T1,"]" ;WAS IT END OF DIR NAME?
1387 001521'00 306 03 0 00 000076 CAIN T1,">"
1388 JRST [MOVEI T1,"]" ;YES, MAKE IT A SQUARE BRACKET
1389 DPB T1,S1
1390 001522'00 254 00 0 00 005301' JRST RN.2]
1391 001523'00 302 03 0 00 000055 CAIE T1,"-" ;WAS IT A DASH?
1392 001524'00 254 00 0 00 001517' JRST RN.1 ;NO, KEEP LOOKING
1393 001525'00 201 03 0 00 000054 MOVEI T1,"," ;TURN . INTO ,
1394 001526'00 603 02 0 00 200000 TXNE S2,P%%PPN ;WAS A , TURNED INTO A DOT?
1395 001527'00 137 03 0 00 000001 DPB T1,S1 ;YES, RESTORE IT
1396 001530'00 254 00 0 00 001517' JRST RN.1
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 30
NFT MAC 22-Feb-82 10:30 PARNOD Routine to parse NODE::
1397 SUBTTL PARNOD Routine to parse NODE::
1398
1399 ;ACCEPTS S1/ Pointer to destination for parsed node string
1400 ; S2/ Pointer to help text
1401
1402 ;RETURNS TRUE S1/ Address of node data
1403 ; or 0 if local node specified
1404
1405 ; FALSE S1/ 0 (local node implied)
1406
1407 001531'00 260 17 0 00 000000* PARNOD: $SAVE <P1> ;Preserve an AC
1408 001532'00 200 07 0 00 000001 MOVE P1,S1 ;Save destination pointer
1409 001533'00 202 02 0 00 000000# MOVEM S2,CMDFDB+.CMHLP ;Save help pointer
1410 001534'00 200 02 0 00 001560' MOVE S2,NODFDB+.CMFLG ;Get Node function
1411 001535'00 661 02 0 00 000005 TXO S2,CM%HPP+CM%SDH ;Say help is here
1412 001536'00 202 02 0 00 000000# MOVEM S2,CMDFDB+.CMFLG ;Save the function word
1413 001537'00 201 01 0 00 000000# MOVEI S1,CMDFDB ;Point to our FDB
1414 001540'00 260 17 0 00 003521' $CALL RFLDE ;Parse the field
1415 JUMPF [SETZ S1, ;[0062]No node was parsed
1416 001541'00 322 00 0 00 005304' JRST PARNO2] ;[0062]
1417 001542'00 200 01 0 00 000007 PARNO1: MOVE S1,P1 ;Get destination pointer
1418 001543'00 260 17 0 00 003376' $CALL STOATM ;Save the parsed node
1419 001544'00 200 01 0 00 000000# MOVE S1,NODTBL ;Point to node table
1420 001545'00 200 02 0 00 000007 MOVE S2,P1 ;Get destination pointer
1421 001546'00 260 17 0 00 000000* $CALL S%TBLK ;Look for it
1422 001547'00 607 02 0 00 040000 TXNN S2,TL%EXM ;Is it there?
1423 JRST [MOVE S1,P1 ;Point to node name
1424 $CALL NODADD ;Add it to table
1425 001550'00 254 00 0 00 005306' JRST .+1] ;Continue
1426 001551'00 550 01 0 01 000000 HRRZ S1,0(S1) ;Yes..return node data address
1427 001552'00 336 02 0 00 000001 PARNO2: SKIPN S2,S1 ;Local node?
1428 001553'00 200 02 0 00 000000# MOVE S2,LOCNOD ;Yes..get local defaults
1429 001554'00 505 02 0 02 000024 HRLI S2,ND$USR(S2) ;Point to node defaults
1430 001555'00 541 02 0 00 000000# HRRI S2,DEFBEG ;Point to destination
1431 001556'00 251 02 0 00 000000# BLT S2,DEFBEG+DEFSIZ-1 ;Copy the defaults
1432 001557'00 263 17 0 00 000000 $RET ;Return True if node parsed
1433
1434 001560'00 026011 000000 NODFDB: FLD(.CMNOD,CM%FNC)+CM%SDH+CM%PO
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 31
NFT MAC 22-Feb-82 10:30 PARSWS Routine to parse switches
1435 SUBTTL PARSWS Routine to parse switches
1436
1437 001561'00 402 00 0 00 000000# PARSWS: SETZM FILATT ;CLEAR FILE FORMAT SWITCHES
1438 001562'00 200 01 0 00 001603' MOVE S1,SWTFDB ;POINT TO SWITCH FDB
1439 001563'00 202 01 0 00 000000# MOVEM S1,CMDFDB ;Store in private FDB
1440 001564'00 200 01 0 00 001604' MOVE S1,SWTFDB+.CMDAT ;Get table address
1441 001565'00 202 01 0 00 000000# MOVEM S1,CMDFDB+.CMDAT ;Save for parse
1442 001566'00 202 02 0 00 000000# MOVEM S2,CMDFDB+.CMHLP ;Save help pointer
1443 001567'00 201 01 0 00 000000# PARSW1: MOVEI S1,CMDFDB ;Point to our FDB
1444 001570'00 200 02 0 00 000000# MOVE S2,SBK+.CMPTR ;Get pointer to next character
1445 001571'00 134 02 0 00 000002 ILDB S2,S2 ;Get it
1446 001572'00 302 02 0 00 000057 CAIE S2,"/" ;Beginning of a switch?
1447 001573'00 324740 001514* $RETT ;No..just return
1448 001574'00 260 17 0 00 003521' PARSW2: $CALL RFLDE ;PARSE A FIELD
1449 001575'00 322 00 0 00 001152* JUMPF .RETF ;RETURN IF NO PARSE
1450 001576'00 302 04 0 00 000003 CAIE T2,.CMSWI ;WAS IT A SWITCH?
1451 001577'00 324740 001573* $RETT ;NO..RETURN
1452 001600'00 550 02 0 02 000000 HRRZ S2,0(S2) ;YES..GET PROCESSOR ADDRESS
1453 001601'00 260 17 0 02 000000 PUSHJ P,0(S2) ;CALL THE PROCESSOR
1454 001602'00 254 00 0 00 001567' JRST PARSW1 ;Back for more switches
1455
1456 001603'00 003004 000575' SWTFDB: FLD(.CMSWI,CM%FNC)+CM%HPP+REMFS1 ;PARSE SWITCHES
1457 001604'00 000000 001605' FILSWS ;FILE SWITCH TABLE
1458 ;HELP SUPPLIED BY CALLER
1459
1460 001605'00 000005 000005 FILSWS: SWSSIZ,,SWSSIZ
1461 001606'00 005311' 001677' SW (ASCII)
1462 001607'00 005313' 001704' SV (FIXED)
1463 001610'00 005315' 001715' SW (IMAGE)
1464 001611'00 005317' 001722' SW (MACY11)
1465 001612'00 005321' 001727' SV (VARIABLE)
1466 000005 SWSSIZ==.-FILSWS-1
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 32
NFT MAC 22-Feb-82 10:30 Switch processors
1467 SUBTTL Switch processors
1468
1469 001613'00 201 02 0 00 000001 .SWACC: MOVEI S2,1 ;Clear account valid bit
1470 001614'00 412 02 0 00 000000# ANDCAM S2,REMACT
1471 001615'00 607 01 0 00 020000 TXNN S1,CM%SWT ;TERMINATED BY A COLON?
1472 001616'00 324740 001577* $RETT ;No..return and prompt for it
1473 001617'00 436 02 0 00 000000# IORM S2,REMACT ;Yes..whatever we parse is valid
1474 001620'00 201 01 0 00 001744' MOVEI S1,ACT001 ;PARSE ACCOUNT
1475 001621'00 261 17 0 00 000000# PUSH P,SBK+.CMCNT ;[0063]
1476 001622'00 260 17 0 00 003521' $CALL PARSE
1477 JUMPF [POP P,S1
1478 001623'00 322 00 0 00 005333' REPARS (Invalid account string)]
1479 001624'00 262 17 0 00 000001 POP P,S1 ;[0063]
1480 001625'00 274 01 0 00 000000# SUB S1,SBK+.CMCNT ;[0063] SIZE OF STRING
1481 001626'00 303 01 0 00 000047 CAILE S1,^D39 ;[0063]TOO LONG?
1482 001627'00 254 00 0 00 005352' JRST [REPARS (Length of account string exceeds 39 characters)]
1483 001630'00 561 01 0 00 000000# HRROI S1,REMACT ;POINT TO DESTINATION
1484 001631'00 260 17 0 00 003376' $CALL STOATM ;STORE THE ATOM
1485 001632'00 324740 001616* $RETT ;AND RETURN
1486
1487
1488 001633'00 402 00 0 00 000000# .SWPAS: SETZM REMPSW ;Clear password value
1489 001634'00 607 01 0 00 020000 TXNN S1,CM%SWT ;Switch terminator?
1490 001635'00 324740 001632* $RETT ;No..return and prompt for it
1491 001636'00 201 01 0 00 001766' MOVEI S1,PSW001 ;[0064]Yes..point to password function
1492 001637'00 261 17 0 00 000000# PUSH P,SBK+.CMCNT ;[0063]
1493 001640'00 260 17 0 00 003521' $CALL PARSE
1494 JUMPF [POP P,S1
1495 001641'00 322 00 0 00 005362' REPARS (Invalid password)]
1496 001642'00 262 17 0 00 000001 POP P,S1 ;[0063]
1497 001643'00 274 01 0 00 000000# SUB S1,SBK+.CMCNT ;[0063]LENGTH OF STRING
1498 001644'00 303 01 0 00 000047 CAILE S1,^D39 ;[0063]TOO LONG?
1499 001645'00 254 00 0 00 005401' JRST [REPARS (Length of password string exceeds 39 characters)]
1500 001646'00 561 01 0 00 000000# HRROI S1,REMPSW ;Point to password storage
1501 001647'00 260 17 0 00 003376' $CALL STOATM ;Save the string
1502 001650'00 201 01 0 00 000001 MOVEI S1,1 ;Get valid bit
1503 001651'00 436 01 0 00 000000# IORM S1,REMPSW ;Yes..set the valid bit
1504 001652'00 332 00 0 00 000000# SKIPE PASFLG ;[76]PASSWORD UNSECURE?
1505 $TEXT (,<%Password found in command or NFT.INIT file which has world read access>)
1506 001653'00 260 17 0 00 001232* ;[76]
1507 001655'00 324740 001635* $RETT ;Return
1508
1509 001656'00 201 02 0 00 000001 .SWUSE: MOVEI S2,1 ;Clear user valid bit
1510 001657'00 412 02 0 00 000000# ANDCAM S2,REMUSR
1511 001660'00 412 02 0 00 000000# andcam s2,rempsw ;
1512 001661'00 607 01 0 00 020000 TXNN S1,CM%SWT ;TERMINATED BY A COLON?
1513 001662'00 324740 001655* $RETT ;No..return and prompt for it
1514 001663'00 436 02 0 00 000000# IORM S2,REMUSR ;Yes..user is valid
1515 001664'00 201 01 0 00 001755' MOVEI S1,USR001 ;[0064]
1516 001665'00 261 17 0 00 000000# PUSH P,SBK+.CMCNT ;[0063]
1517 001666'00 260 17 0 00 003521' $CALL PARSE
1518 JUMPF [POP P,S1
1519 001667'00 322 00 0 00 005433' REPARS (Invalid userid)]
1520 001670'00 262 17 0 00 000001 POP P,S1 ;[0063]
1521 001671'00 274 01 0 00 000000# SUB S1,SBK+.CMCNT ;[0063]
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 32-1
NFT MAC 22-Feb-82 10:30 Switch processors
1522 001672'00 303 01 0 00 000047 CAILE S1,^D39 ;[0063]TOO LONG?
1523 001673'00 254 00 0 00 005452' JRST [REPARS (Length of userid string exceeds 39 characters)]
1524 001674'00 561 01 0 00 000000# HRROI S1,REMUSR ;POINT TO DESTINATION
1525 001675'00 260 17 0 00 003376' $CALL STOATM ;STORE THE ATOM
1526 001676'00 324740 001662* $RETT
1527
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 33
NFT MAC 22-Feb-82 10:30 Switch processors
1528 001677'00 201 02 0 00 000001 .SWASC: MOVX S2,DT$ASC ;ASCII MODE
1529 001700'00 137 02 0 00 005453' STORE S2,FILATT,DF%DAT ;STORE THE MODE
1530 001701'00 603 01 0 00 020000 TXNE S1,CM%SWT ;COLON?
1531 001702'00 254 00 0 00 005463' REPARS (Invalid switch terminator)
1532 001703'00 324740 001676* $RETT
1533
1534
1535 001704'00 201 02 0 00 000001 .SWFIX: MOVX S2,FB$FIX ;FIXED LENGTH RECORD FORMAT
1536 001705'00 137 02 0 00 005465' STORE S2,FILATT,DF%RFM ;STORE THE FORMAT
1537 001706'00 607 01 0 00 020000 TXNN S1,CM%SWT ;TERMINATED WITH A COLON?
1538 001707'00 324740 001703* $RETT ;NO..USE THE DEFAULT
1539 001710'00 201 01 0 00 001777' MOVEI S1,FRLFDB ;PARSE RECORD LENGTH
1540 001711'00 260 17 0 00 003521' $CALL PARSE
1541 001712'00 322 00 0 00 005476' JUMPF [REPARS (Invalid record length)]
1542 001713'00 137 02 0 00 005477' STORE S2,FILATT,DF%MRS ;Store maximum record size
1543 001714'00 324740 001707* $RETT
1544
1545 001715'00 201 02 0 00 000002 .SWIMA: MOVX S2,DT$IMA ;IMAGE MODE
1546 001716'00 137 02 0 00 005500' STORE S2,FILATT,DF%DAT ;Store the mode
1547 001717'00 603 01 0 00 020000 TXNE S1,CM%SWT ;COLON?
1548 001720'00 254 00 0 00 005463' REPARS (Invalid switch terminator)
1549 001721'00 324740 001714* $RETT
1550
1551 001722'00 201 02 0 00 000200 .SWMAC: MOVX S2,FB$MCY ;MACY11 MODE
1552 001723'00 137 02 0 00 005501' STORE S2,FILATT,DF%RAT ;STORE THE RECORD ATTRIBUTE
1553 001724'00 603 01 0 00 020000 TXNE S1,CM%SWT ;COLON?
1554 001725'00 254 00 0 00 005463' REPARS (Invalid switch terminator)
1555 001726'00 324740 001721* $RETT
1556
1557
1558 001727'00 201 02 0 00 000002 .SWVAR: MOVX S2,FB$VAR ;VARIABLE LENGTH RECORD FORMAT
1559 001730'00 137 02 0 00 005502' STORE S2,FILATT,DF%RFM ;Store the record format
1560 001731'00 607 01 0 00 020000 TXNN S1,CM%SWT ;TERMINATED BY A COLON?
1561 001732'00 324740 001726* $RETT ;NO..USE DEFAULT
1562 001733'00 201 01 0 00 002003' MOVEI S1,VRLFDB ;PARSE VARIABLE RECORD LENGTH
1563 001734'00 260 17 0 00 003521' $CALL PARSE
1564 001735'00 322 00 0 00 005476' JUMPF [REPARS (Invalid record length)]
1565 001736'00 137 02 0 00 005503' STORE S2,FILATT,DF%MRS ;Store maximum record size
1566 001737'00 324740 001732* $RETT
1567
1568 CONT. (SWITCH)
1569 PAGE; (SWITCH Continued on next page)
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 33-1
NFT MAC 22-Feb-82 10:30 Switch processors
1570 SALL; (SWITCH Continued from previous page)
1571
1572
1573 001740'00 010001 001744' ACTFDB: FLD(.CMCFM,CM%FNC)+CM%SDH+ACT001
1574 001741'00 000000 000000 0
1575 001742'00 000000 000000 0
1576 001743'00 000000 000000 0 ;[0064]
1577
1578 001744'00 007024 000000 ACT001: FLD(.CMFLD,CM%FNC)+CM%BRK+CM%HPP
1579 001745'00 000000 001773' USRBRK ;For .CMUQS (if REL3A)
1580 001746'00 44 07 0 00 005504' TXT(Account designator for remote system)
1581 001747'00 000000 000000 0
1582 001750'00 000000 001773' USRBRK
1583
1584 001751'00 010001 001755' USRFDB: FLD(.CMCFM,CM%FNC)+CM%SDH+USR001
1585 001752'00 000000 000000 0
1586 001753'00 000000 000000 0
1587 001754'00 000000 000000 0
1588
1589 001755'00 007024 000000 USR001: FLD(.CMFLD,CM%FNC)+CM%HPP+CM%BRK
1590 001756'00 000000 001773' USRBRK ;For .CMUQS (if REL3A)
1591 001757'00 44 07 0 00 005514' TXT(User name or identification for remote system)
1592 001760'00 000000 000000 0
1593 001761'00 000000 001773' USRBRK
1594
1595 001762'00 010001 001766' PSWFDB: FLD(.CMCFM,CM%FNC)+CM%SDH+PSW001
1596 001763'00 000000 000000 0
1597 001764'00 000000 000000 0
1598 001765'00 000000 000000 0
1599
1600 001766'00 007024 000000 PSW001: FLD(.CMFLD,CM%FNC)+CM%HPP+CM%BRK
1601 001767'00 000000 001773' USRBRK ;For .CMUQS (if REL3A)
1602 001770'00 44 07 0 00 005526' TXT(Password required to access remote system)
1603 001771'00 000000 000000 0
1604 001772'00 000000 001773' USRBRK
1605
1606 001773'00 777777 777760 USRBRK: 777777,,777760 ;BREAK ON ALL CONTROL
1607 001774'00 745504 001760 745504,,001760 ;[0060] allow dollar sign
1608 001775'00 400000 000240 400000,,000240 ;[0060] allow underscore
1609 001776'00 400000 000760 400000,,000760
1610
1611 001777'00 001007 000000 FRLFDB: FLD(.CMNUM,CM%FNC)+CM%SDH+CM%HPP+CM%DPP
1612 002000'00 000000 000012 ^D10 ;RADIX
1613 002001'00 44 07 0 00 005537' TXT (Record length)
1614 002002'00 44 07 0 00 005542' TXT (512) ;DEFAULT
1615
1616 002003'00 001007 000000 VRLFDB: FLD(.CMNUM,CM%FNC)+CM%SDH+CM%HPP+CM%DPP
1617 002004'00 000000 000012 ^D10 ;RADIX
1618 002005'00 44 07 0 00 005543' TXT (Maximum record length) ;HELP
1619 002006'00 44 07 0 00 005542' TXT (512) ;DEFAULT
1620
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 34
NFT MAC 22-Feb-82 10:30 OSTYPE Switch processor
1621 SUBTTL OSTYPE Switch processor
1622
1623 002007'00 402 00 0 07 000003 .SWOST: SETZM ND$OST(P1) ;CLEAR OSTYPE
1624 002010'00 607 01 0 00 020000 TXNN S1,CM%SWT ;SWITCH TERMINATOR?
1625 002011'00 324740 001737* $RETT ;NO..JUST RETURN
1626 002012'00 201 01 0 00 002017' MOVEI S1,OSTFDB ;POINT TO OSTYPE FUNCTION BLOCK
1627 002013'00 260 17 0 00 003516' $CALL RFIELD
1628 002014'00 200 02 0 02 000000 MOVE S2,0(S2) ;GET OSTYPE
1629 002015'00 202 02 0 07 000003 MOVEM S2,ND$OST(P1) ;SAVE IT
1630 002016'00 324740 002011* $RETT
1631
1632 002017'00 000006 000000 OSTFDB: FLD(.CMKEY,CM%FNC)+CM%DPP+CM%HPP
1633 002020'00 000000 002023' OSTTBL ;POINT TO TYPE TABLE
1634 002021'00 44 07 0 00 005550' TXT(System type) ;HELP TEXT
1635 002022'00 44 07 0 00 005553' TXT(TOPS20) ;DEFAULT TO TOPS20
1636
1637 002023'00 000007 000007 OSTTBL: XWD OSTSIZ,OSTSIZ ;ARGUMENTS FOR /OSTYPE
1638 002024'00 005555' 000006 T (IAS,.OSIAS) ;Operating system type
1639 ; T (OS-8,.OSOS8)
1640 002025'00 005556' 000002 T (RSTS,.OSRST)
1641 002026'00 005557' 000004 T (RSX11,.OSRXM)
1642 002027'00 005561' 000001 T (RT11,.OSRT)
1643 002030'00 005562' 000011 T (TOPS10,.OSTP10)
1644 002031'00 005553' 000010 T (TOPS20,.OSTP20)
1645 002032'00 005564' 000007 T (VMS,.OSVAX)
1646 000007 OSTSIZ==.-OSTTBL-1
1647
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 35
NFT MAC 22-Feb-82 10:30 GETUSR routine to ensure we have a user,account and password
1648 SUBTTL GETUSR routine to ensure we have a user,account and password
1649
1650 002033'00 304 00 0 00 000000 GETUSR: $SAVE <P1,SBK+.CMIOJ> ;Preserve an AC and JFNs
1651 002040'00 200 01 0 00 000000# MOVE S1,LOCNOD
1652 002041'00 337 00 0 00 000000# SKIPG REMNOD ;Remote node given?
1653 002042'00 202 01 0 00 000000# MOVEM S1,REMNOD
1654 002043'00 201 07 0 00 000001 MOVEI P1,1 ;Get string valid bit
1655 002044'00 404 07 0 00 000000# AND P1,REMUSR ;Test all strings for valid bit
1656 002045'00 404 07 0 00 000000# AND P1,REMACT
1657 002046'00 404 07 0 00 000000# AND P1,REMPSW
1658 002047'00 326 07 0 00 002016* JUMPN P1,.RETT ;All strings valid?
1659 002050'00 260 17 0 00 002161' GETUS1: $CALL HLPUSR ;No..display access info prompt
1660 002051'00 200 01 0 00 005573' MOVE S1,[.PRIIN,,.PRIOU] ;Must come from TTY
1661 002052'00 202 01 0 00 000000# MOVEM S1,SBK+.CMIOJ ;Tell comnd
1662 002053'00 260 17 0 00 003402' $CALL CMDINI ;Init cmd for this level
1663 002054'00 322 00 0 00 001575* JUMPF .RETF ;False return on EOF
1664 002055'00 201 07 0 00 000001 MOVEI P1,1 ;Get string valid bit
1665 002056'00 612 07 0 00 000000# TDNE P1,REMUSR ;Is user specified?
1666 002057'00 254 00 0 00 002102' JRST GETUS2 ;Yes..check account
1667 002060'00 260 17 0 00 005577' PROMPT (User: )
1668 002061'00 201 01 0 00 001751' MOVEI S1,USRFDB
1669 002062'00 402 00 0 00 000000# SETZM ATMBUF ;[0064]
1670 002063'00 261 17 0 00 000000# PUSH P,SBK+.CMCNT ;[0063]
1671 002064'00 260 17 0 00 003521' $CALL PARSE
1672 JUMPF [POP P,S1 ;[0063]
1673 002065'00 322 00 0 00 005433' REPARS (Invalid userid)]
1674 002066'00 262 17 0 00 000001 POP P,S1 ;[0063]
1675 002067'00 274 01 0 00 000000# SUB S1,SBK+.CMCNT ;[0063]Length of string
1676 002070'00 261 17 0 00 000001 PUSH P,S1 ;[0063]
1677 002071'00 302 04 0 00 000010 CAIE T2,.CMCFM ;[0064]CONFIRMED?
1678 002072'00 260 17 0 00 004321' CONFRM
1679 002073'00 262 17 0 00 000001 POP P,S1 ;[0063]
1680 002074'00 303 01 0 00 000047 CAILE S1,^D39 ;[0063]is string too long?
1681 002075'00 254 00 0 00 005452' JRST [REPARS (Length of userid string exceeds 39 characters)]
1682 002076'00 561 01 0 00 000000# HRROI S1,REMUSR ;Point to destination
1683 002077'00 260 17 0 00 003376' $CALL STOATM ;Store the userid
1684 002100'00 436 07 0 00 000000# IORM P1,REMUSR ;Set valid bit
1685 002101'00 412 07 0 00 000000# ANDCAM P1,REMPSW ;Clear password valid bit
1686 002102'00 612 07 0 00 000000# GETUS2: TDNE P1,REMACT ;Is account specified?
1687 002103'00 254 00 0 00 002125' JRST GETUS3 ;Yes..check password
1688 002104'00 260 17 0 00 005604' PROMPT (Account: ) ;YES..GET ACCOUNT STRING
1689 002105'00 201 01 0 00 001740' MOVEI S1,ACTFDB
1690 002106'00 402 00 0 00 000000# SETZM ATMBUF ;Clear account string
1691 002107'00 261 17 0 00 000000# PUSH P,SBK+.CMCNT ;[0063]
1692 002110'00 260 17 0 00 003521' $CALL PARSE
1693 JUMPF [POP P,S1 ;[0063]
1694 002111'00 322 00 0 00 005333' REPARS (Invalid account string)]
1695 002112'00 262 17 0 00 000001 POP P,S1 ;[0063]
1696 002113'00 274 01 0 00 000000# SUB S1,SBK+.CMCNT ;[0063]Length of string
1697 002114'00 261 17 0 00 000001 PUSH P,S1 ;[0063]
1698 002115'00 302 04 0 00 000010 CAIE T2,.CMCFM ;Confirmed?
1699 002116'00 260 17 0 00 004321' CONFRM ;No..get confirmation
1700 002117'00 262 17 0 00 000001 POP P,S1 ;[0063]
1701 002120'00 303 01 0 00 000047 CAILE S1,^D39 ;[0063]Is string too long?
1702 002121'00 254 00 0 00 005352' JRST [REPARS (Length of account string exceeds 39 characters)]
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 35-1
NFT MAC 22-Feb-82 10:30 GETUSR routine to ensure we have a user,account and password
1703 002122'00 561 01 0 00 000000# HRROI S1,REMACT ;Point to destination
1704 002123'00 260 17 0 00 003376' $CALL STOATM ;Store the account
1705 002124'00 436 07 0 00 000000# IORM P1,REMACT ;Set the valid bit
1706 002125'00 612 07 0 00 000000# GETUS3: TDNE P1,REMPSW ;Is password specified?
1707 002126'00 254 00 0 00 002154' JRST GETUS4 ;Yes..exit
1708 002127'00 260 17 0 00 003312' $CALL TSTCOL
1709 002130'00 260 17 0 00 005612' PROMPT (Password: )
1710 002131'00 260 17 0 00 003630' $CALL ECHOOF
1711 002132'00 201 01 0 00 001762' MOVEI S1,PSWFDB
1712 002133'00 402 00 0 00 000000# SETZM ATMBUF ;[0064]
1713 002134'00 261 17 0 00 000000# PUSH P,SBK+.CMCNT ;[0063]
1714 002135'00 260 17 0 00 003521' $CALL PARSE
1715 JUMPF [POP P,S1 ;[0063]
1716 $CALL ECHOON ;BAD PARSE..RESTORE ECHOS
1717 002136'00 322 00 0 00 005614' REPARS (Invalid password)]
1718 002137'00 262 17 0 00 000001 POP P,S1 ;[0063]
1719 002140'00 274 01 0 00 000000# SUB S1,SBK+.CMCNT ;[0063]Length of string
1720 002141'00 261 17 0 00 000001 PUSH P,S1 ;[0063]
1721 002142'00 302 04 0 00 000010 CAIE T2,.CMCFM ;[0064]CONFIRMED?
1722 002143'00 260 17 0 00 004321' CONFRM
1723 002144'00 260 17 0 00 003627' $CALL ECHOON
1724 002145'00 260 17 0 00 003312' $CALL TSTCOL
1725 002146'00 262 17 0 00 000001 POP P,S1 ;[0063]
1726 002147'00 303 01 0 00 000047 CAILE S1,^D39 ;[0063]Is string too long?
1727 002150'00 254 00 0 00 005401' JRST [REPARS (Length of password string exceeds 39 characters)]
1728 002151'00 561 01 0 00 000000# HRROI S1,REMPSW ;Point to destination
1729 002152'00 260 17 0 00 003376' $CALL STOATM ;Copy the string
1730 002153'00 436 07 0 00 000000# IORM P1,REMPSW ;Set the valid bit
1731 002154'00 200 01 0 00 000000# GETUS4: MOVE S1,REMNOD ;Point to remote node data
1732 002155'00 505 02 0 00 000000# HRLI S2,REMUSR ;Copy defaults obtained from prompt
1733 002156'00 541 02 0 01 000024 HRRI S2,ND$USR(S1)
1734 002157'00 251 02 0 01 000103 BLT S2,DEFSIZ-1+ND$USR(S1)
1735 002160'00 324740 002047* $RETT
1736
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 36
NFT MAC 22-Feb-82 10:30 HLPUSR Routine to display access information for a node
1737 SUBTTL HLPUSR Routine to display access information for a node
1738
1739 002161'00 260 17 0 00 001653* HLPUSR: $TEXT (T%TTY,<Access information for node ^T/@REMNOD/::^A>)
1740 002163'00 201 01 0 00 000001 MOVEI S1,1B35 ;Get string valid bit
1741 002164'00 612 01 0 00 000000# TDNE S1,REMUSR ;Display only valid strings
1742 002165'00 260 17 0 00 002161* $TEXT (T%TTY,</USER:^T/REMUSR/^A>)
1743 002167'00 612 01 0 00 000000# TDNE S1,REMACT
1744 002170'00 260 17 0 00 002165* $TEXT (T%TTY,</ACCOUNT:^T/REMACT/^A>)
1745 002172'00 260 17 0 00 002170* $TEXT (T%TTY,<>) ;Send a CRLF
1746 002174'00 324740 002160* $RETT
1747
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 37
NFT MAC 22-Feb-82 10:30 TAKE command
1748 SUBTTL TAKE command
1749
1750 002175'00 260 17 0 00 005663' .TAKE: NOISE (COMMANDS FROM)
1751 002176'00 400 06 0 00 000000 SETZ T4, ;SET DEFAULT TO NOECHO
1752 002177'00 260 17 0 00 003616' $CALL CLRGJF ;GO CLEAR GTJFN BLOCK
1753 002200'00 205 01 0 00 100000 MOVX S1,GJ%OLD ;GET EXISTING FILE FLAG
1754 002201'00 202 01 0 00 000000# MOVEM S1,GJFBLK+.GJGEN ;STORE GTJFN FLAGS
1755 002202'00 561 01 0 00 005665' HRROI S1,[ASCIZ/CMD/] ;GET DEFAULT FILE TYPE FIELD
1756 002203'00 202 01 0 00 000000# MOVEM S1,GJFBLK+.GJEXT ;STORE DEFAULT EXTENSION
1757 002204'00 201 01 0 00 002351' MOVEI S1,TAK010 ;PARSE FILE SPEC
1758 002205'00 260 17 0 00 003516' $CALL RFIELD
1759 002206'00 306 04 0 00 000006 CAIN T2,.CMFIL ;PARSE A FILE SPEC?
1760 002207'00 254 00 0 00 002211' JRST TAKE10 ;Yes..Save input JFN
1761 002210'00 254 00 0 00 003531' JRST CMDEOF ;NO..TERMINATE THIS COMMAND FILE
1762
1763 ; HERE ON A GOOD INPUT FILE SPEC
1764
1765 002211'00 202 02 0 00 000000# TAKE10: MOVEM S2,CMDJFN ;SAVE INPUT JFN FOR COMMANDS
1766 002212'00 260 17 0 00 005674' NOISE (LOGGING OUTPUT ON)
1767 002213'00 260 17 0 00 003616' $CALL CLRGJF ;GO CLEAR GTJFN BLOCK USED BY COMND JSYS
1768 002214'00 205 01 0 00 400000 MOVX S1,GJ%FOU ;GET FLAG SAYING FILEIS FOR OUTPUT USE
1769 002215'00 202 01 0 00 000000# MOVEM S1,GJFBLK+.GJGEN ;SAVE GTJFN FLAGS
1770 002216'00 402 00 0 00 000000# SETZM SRCFIL ;INITIALIZE FILENAME BUFFER
1771 002217'00 561 01 0 00 000000# HRROI S1,SRCFIL ;GET POINTER TO WHERE FILENAME IS TO GO
1772 002220'00 200 02 0 00 000000# MOVE S2,CMDJFN ;GET INPUT JFN
1773 002221'00 205 03 0 00 001000 MOVX T1,<FLD(.JSAOF,JS%NAM)> ;GET FLAG BITS SAYING OUTPUT NAME ONLY
1774 002222'00 104 00 0 00 000030 JFNS ;GET FILE NAME OF INPUT FILE
1775 002223'00 561 01 0 00 000000# HRROI S1,SRCFIL ;GET A POINTER TO FILE NAME FOR INPUT
1776 002224'00 202 01 0 00 000000# MOVEM S1,GJFBLK+.GJNAM ;STORE DEFAULT NAME OF OUTPUT FILE
1777 002225'00 561 01 0 00 005676' HRROI S1,[ASCIZ/LOG/] ;GET DEFAULT FILE TYPE OF OUTPUT FILE
1778 002226'00 202 01 0 00 000000# MOVEM S1,GJFBLK+.GJEXT ;STORE DEFAULT EXTENSION
1779 002227'00 402 00 0 00 000000# SETZM LOGJFN ;CLEAR LOG JFN
1780 002230'00 201 01 0 00 002355' MOVEI S1,TAK020 ;PARSE FILE SPEC OR CONFIRM
1781 002231'00 260 17 0 00 003516' $CALL RFIELD
1782 002232'00 306 04 0 00 000010 CAIN T2,.CMCFM ;PARSE CONFIRM?
1783 002233'00 254 00 0 00 002247' JRST TAKE25 ;YES..FINISH UP
1784 002234'00 306 04 0 00 000003 CAIN T2,.CMSWI ;PARSE A SWITCH
1785 002235'00 254 00 0 00 002243' JRST TAKE22 ;YES..GO PROCESS IT
1786 002236'00 202 02 0 00 000000# MOVEM S2,LOGJFN ;SAVE LOGGIN FILE JFN
1787
1788 002237'00 201 01 0 00 002357' TAKE20: MOVEI S1,TAK040 ;PARSE CONFIRM OR SWITCHES
1789 002240'00 260 17 0 00 003516' $CALL RFIELD
1790 002241'00 306 04 0 00 000010 CAIN T2,.CMCFM ;PARSE CONFIRM?
1791 002242'00 254 00 0 00 002247' JRST TAKE25 ;YES..FINISH UP
1792
1793 002243'00 550 02 0 02 000000 TAKE22: HRRZ S2,0(S2) ;NO..MUST BE SWITCH
1794 002244'00 260 17 0 02 000000 PUSHJ P,0(S2) ;CALL THE PROCESSOR
1795 002245'00 254 00 0 00 002237' JRST TAKE20 ;GET CONFIRMATION
1796
1797 CONT. (Take command)
1798 PAGE; (Take command Continued on next page)
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 37-1
NFT MAC 22-Feb-82 10:30 TAKE command
1799 SALL; (Take command Continued from previous page)
1800
1801 ; OPEN INPUT AND OUTPUT FILES
1802
1803 002246'00 476 00 0 00 000000# TAKINI: SETOM INIFLG ;[0071]Now taking NFT.INIT
1804 002247'00 200 01 0 00 000000# TAKE25: MOVE S1,CMDJFN ;GET INPUT JFN
1805 002250'00 200 02 0 00 005677' MOVE S2,[7B5+OF%RD] ;7 BIT BYTES, READ ACCESS
1806 002251'00 104 00 0 00 000021 OPENF ;OPEN INPUT FILE
1807 JRST [SKIPN INIFLG ;[0071]
1808 REPARS (Cannot OPEN command file)
1809 $TEXT (,<?Cannot OPEN PS:NFT.INIT>)
1810 $TEXT (,)
1811 002252'00 254 00 0 00 005721' $RETF] ;RETURN FAIL
1812 002253'00 332 01 0 00 000000# SKIPE S1,LOGJFN ;GET OUTPUT JFN
1813 002254'00 306 01 0 00 000101 CAIN S1,.PRIOU ;STILL PRIMARY OUTPUT JFN ?
1814 002255'00 254 00 0 00 002266' JRST TAKE30 ;NO OUTPUT JFN, GO ON
1815
1816 002256'00 104 00 0 00 000117 DVCHR ;Get log device characteristics
1817 002257'00 135 01 0 00 005730' LOAD S1,S2,DV%TYP ;Extract device type
1818 002260'00 302 01 0 00 000000 CAIE S1,.DVDSK ;Device DSK:?
1819 002261'00 400 06 0 00 000000 SETZ T4, ;No..clear display flag
1820 002262'00 200 01 0 00 000000# MOVE S1,LOGJFN ;Get logfile JFN
1821 002263'00 200 02 0 00 005731' MOVE S2,[7B5+OF%APP] ;7 BIT BYTES, WRITE ACCESS
1822 002264'00 104 00 0 00 000021 OPENF ;OPEN OUTPUT FILE
1823 002265'00 254 00 0 00 005740' REPARS (Cannot OPEN logging file)
1824
1825 ; NOW SAVE NEW JFN'S AND RETURN TO PARSER
1826
1827 002266'00 304 00 0 00 000000 TAKE30: $SAVE <SBK+.CMIOJ,LOGJFN,DSPFLG,PASFLG> ;[76]STACK CURRENT STUFF
1828 002275'00 403 01 0 00 000003 SETZB S1,T1 ;[76]
1829 002276'00 200 02 0 00 000000# MOVE S2,CMDJFN ;[76]JFN OF COMMAND FILE
1830 002277'00 104 00 0 00 000553 RCDIR ;[76]DIR NUM THAT CMD FILE IS IN
1831 002300'00 320 16 0 00 002323' ERJMP PASOK ;[76]IGNORE ERRORS
1832 002301'00 201 01 0 00 000011 MOVEI S1,^D9 ;[76]
1833 002302'00 202 01 0 00 000000# MOVEM S1,TMPFIL+.CDLEN ;[76]
1834 002303'00 402 00 0 00 000000# SETZM TMPFIL+.CDPSW ;[76]
1835 002304'00 200 01 0 00 000003 MOVE S1,T1 ;[76]
1836 002305'00 201 02 0 00 000000# MOVEI S2,TMPFIL ;[76]
1837 002306'00 400 03 0 00 000000 SETZ T1, ;[76]
1838 002307'00 104 00 0 00 000241 GTDIR ;[76]PROT OF THAT DIR
1839 002310'00 320 16 0 00 002323' ERJMP PASOK ;[76]IGNORE ERRORS
1840 002311'00 200 01 0 00 000000# MOVE S1,TMPFIL+.CDDPT ;[76]
1841 002312'00 606 01 0 00 000040 TRNN S1,40 ;[76]WORLD ACCESS TO DIR?
1842 002313'00 254 00 0 00 002323' JRST PASOK ;[76]NO, NO PROBLEM
1843 002314'00 200 01 0 00 000000# MOVE S1,CMDJFN ;[76]
1844 002315'00 200 02 0 00 005752' MOVE S2,[1,,.FBPRT] ;[76]
1845 002316'00 201 03 0 00 000004 MOVEI T1,T2 ;[76]
1846 002317'00 104 00 0 00 000063 GTFDB ;[76]
1847 002320'00 320 16 0 00 002323' ERJMP PASOK ;[76]IGNORE ERRORS
1848 002321'00 476 00 0 00 000000# SETOM PASFLG ;[76]ASSUME WORLD HAS READ ACCESS
1849 ;[76]TO DIR AND FILE
1850 002322'00 606 04 0 00 000040 TRNN T2,40 ;[76]DOES WORLD HAVE READ ACCESS?
1851 002323'00 402 00 0 00 000000# PASOK: SETZM PASFLG ;[76]NO
1852 002324'00 202 06 0 00 000000# MOVEM T4,DSPFLG ;SAVE ECHO/NOECHO VALUE
1853 002325'00 550 01 0 00 000000# HRRZ S1,SBK+.CMIOJ ;GET CURRENT OUTPUT JFN
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 37-2
NFT MAC 22-Feb-82 10:30 TAKE command
1854 002326'00 336 00 0 00 000000# SKIPN LOGJFN ;GET OUTPUT JFN IF ANY
1855 002327'00 202 01 0 00 000000# MOVEM S1,LOGJFN ;SAVE CURRENT JFN FOR OUTPUT
1856 002330'00 540 01 0 00 000000# HRR S1,LOGJFN ;GET OUTPUT JFN
1857 002331'00 504 01 0 00 000000# HRL S1,CMDJFN ;GET INPUT JFN
1858 002332'00 250 01 0 00 000000# EXCH S1,SBK+.CMIOJ ;SAVE NEW JFN'S AND GET OLD
1859 002333'00 552 01 0 00 000000# HRRZM S1,LOGJFN ;SAVE OLD OUTPUT JFN
1860 002334'00 350 00 0 00 000000# AOS TAKFLG ;BUMP TAKE LEVEL
1861 002335'00 260 17 0 00 003402' $CALL CMDINI ;STACK THIS LEVEL
1862 002336'00 322 00 0 00 002340' JUMPF TAKE40 ;CLOSE FILES AND RETURN ON EOF
1863 002337'00 254 00 0 00 000067' JRST PARSER ;BACK FOR SOME MORE COMMANDS
1864
1865 002340'00 554 01 0 00 000000# TAKE40: HLRZ S1,SBK+.CMIOJ ;GET INPUT JFN
1866 002341'00 104 00 0 00 000022 CLOSF
1867 002342'00 255 00 0 00 000000 JFCL
1868 002343'00 550 01 0 00 000000# HRRZ S1,SBK+.CMIOJ ;GET OUTPUT JFN
1869 002344'00 312 01 0 00 000000# CAME S1,LOGJFN ;SAME AS BEFORE?
1870 002345'00 104 00 0 00 000022 CLOSF ;NO..CLOSE THE FILE
1871 002346'00 255 00 0 00 000000 JFCL ;YES..DON'T CLOSE IT
1872 002347'00 370 00 0 00 000000# SOS TAKFLG ;DECR TAKE LEVEL
1873 002350'00 324740 002174* $RETT
1874
1875 CONT. (Take command)
1876 PAGE; (Take command Continued on next page)
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 37-3
NFT MAC 22-Feb-82 10:30 TAKE command
1877 SALL; (Take command Continued from previous page)
1878
1879 002351'00 006000 002352' TAK010: FLD(.CMFIL,CM%FNC)+TAK015 ;CMD FILE FDB
1880 002352'00 010005 000000 TAK015: FLD(.CMCFM,CM%FNC)+CM%HPP+CM%SDH
1881 002353'00 000000 000000 0
1882 002354'00 44 07 0 00 005753' TXT(Carriage return to terminate current command file)
1883
1884 002355'00 010000 002356' TAK020: FLD(.CMCFM,CM%FNC)+TAK030 ;CONFIRM, FILE OR SWITCH
1885 002356'00 006000 002360' TAK030: FLD(.CMFIL,CM%FNC)+TAK050
1886 002357'00 010000 002360' TAK040: FLD(.CMCFM,CM%FNC)+TAK050 ;CONFIRM OR SWITCHES
1887 002360'00 003000 000000 TAK050: FLD(.CMSWI,CM%FNC)
1888 002361'00 000000 002362' TAKSWS
1889
1890
1891 002362'00 000002 000002 TAKSWS: TAKSIZ,,TAKSIZ
1892 002363'00 005765' 002365' SW (DISPLAY)
1893 002364'00 005767' 002367' SW (NODISPLAY)
1894 000002 TAKSIZ==.-TAKSWS-1
1895
1896 002365'00 476 00 0 00 000006 .SWDIS: SETOM T4 ;SET DISPLAY FLAG
1897 002366'00 324740 002350* $RETT
1898
1899 002367'00 402 00 0 00 000006 .SWNOD: SETZM T4 ;CLEAR DISPLAY FLAG
1900 002370'00 324740 002366* $RETT
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 38
NFT MAC 22-Feb-82 10:30 OUTNAM Routine to generate output file spec
1901 SUBTTL OUTNAM Routine to generate output file spec
1902
1903 ;ACCEPTS S1/ Pointer to destination string
1904 ; S2/ Requested field flags (GJ%DIR etc)
1905
1906 ;RETURNS TRUE Output file name stored
1907 ; FALSE Illegal wild card syntax
1908
1909 002371'00 260 17 0 00 001531* OUTNAM: $SAVE <P1> ;Preserve an ac
1910 002372'00 260 17 0 00 001072* STKVAR <DSTPTR,DSTFLD,<SRCWLD,8>,<SRCFLD,8>,<DSTWLD,8>>
1911 002373'00 000032 000032
1912 002374'00 200 07 0 00 000001 MOVE P1,S1 ;Copy destination pointer
1913 002375'00 201 01 0 00 005771' MOVEI S1,[EXP P1,0] ;Make sure it's a valid pointer
1914 002376'00 260 17 0 00 003207' $CALL CHKPTR
1915 002377'00 202 07 0 17 777776 MOVEM P1,DSTPTR ;Save destination pointer
1916 002400'00 607 02 0 00 130000 TXNN S2,GJ%DIR+GJ%EXT+GJ%VER ;Any flags set?
1917 002401'00 434 02 0 00 005773' OR S2,[GJ%NAM] ;[0056]Request name
1918 002402'00 434 02 0 00 005774' OR S2,[GJ%EXT] ;[0056]Always request extension
1919 002403'00 202 02 0 17 777775 MOVEM S2,DSTFLD ;Save requested fields
1920 002404'00 332 01 0 00 000000# SKIPE S1,SRCJFN ;Must have source JFN
1921 002405'00 336 02 0 00 000000# SKIPN S2,DSTJFN ;And destination JFN
1922 002406'00 324740 002054* $RETF ;Else fail
1923 002407'00 200 01 0 00 000000# MOVE S1,DSTJFN ;Get destination JFN
1924 002410'00 630 01 0 17 777775 TDZ S1,DSTFLD ;Clear common flags
1925 002411'00 603 01 0 00 170000 TXNE S1,GJ%DIR+GJ%NAM+GJ%EXT+GJ%VER
1926 002412'00 324740 002406* $RETF ;Too many wild destination flags
1927 002413'00 200 01 0 00 000000# MOVE S1,SRCJFN ;Get wild source flags
1928 002414'00 630 01 0 17 777775 TDZ S1,DSTFLD ;Clear common flags
1929 002415'00 603 01 0 00 170000 TXNE S1,GJ%DIR+GJ%NAM+GJ%EXT+GJ%VER
1930 002416'00 324740 002412* $RETF ;Too many wild source fields
1931 002417'00 205 07 0 00 777773 MOVSI P1,-NFFLD ;Get count of requested fields
1932 002420'00 510 04 0 07 001045' OUTN1: HLLZ T2,FSTRT(P1) ;Get bit for field
1933 002421'00 616 04 0 17 777775 TDNN T2,DSTFLD ;This field requested?
1934 002422'00 254 00 0 00 002472' JRST OUTN4 ;No..on to next field
1935 002423'00 554 02 0 07 002475' HLRZ S2,PNCTAB(P1) ;Yes..get prefix punctuation
1936 002424'00 332 00 0 00 000002 SKIPE S2 ;Don't store null
1937 002425'00 136 02 0 17 777776 IDPB S2,DSTPTR ;Store it
1938 002426'00 616 04 0 00 000000# TDNN T2,DSTJFN ;Is this field wild?
1939 002427'00 254 00 0 00 002453' JRST OUTN2 ;No..just store dest field
1940 002430'00 561 01 0 17 777765 HRROI S1,SRCWLD ;Point to wild source field
1941 002431'00 200 02 0 00 000000# MOVE S2,SRCJFN ;Get wild source JFN
1942 002432'00 200 03 0 07 001052' MOVE T1,FFLDT(P1) ;Get bits for this field
1943 002433'00 104 00 0 00 000030 JFNS ;Store the field
1944 002434'00 561 01 0 17 777755 HRROI S1,SRCFLD ;Point to source field
1945 002435'00 336 02 0 00 000000# SKIPN S2,REMJFN ;Get remote JFN (via Name msg)
1946 002436'00 550 02 0 00 000000# HRRZ S2,SRCJFN ;Else use non-wild source JFN
1947 002437'00 104 00 0 00 000030 JFNS
1948 002440'00 561 01 0 17 777745 HRROI S1,DSTWLD ;Point to wild dest field
1949 002441'00 200 02 0 00 000000# MOVE S2,DSTJFN
1950 002442'00 104 00 0 00 000030 JFNS
1951 CONT. (OUTNAM)
1952 PAGE; (OUTNAM Continued on next page)
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 38-1
NFT MAC 22-Feb-82 10:30 OUTNAM Routine to generate output file spec
1953 SALL; (OUTNAM Continued from previous page)
1954 002443'00 561 01 0 17 777765 HRROI S1,SRCWLD ;Setup for wild call
1955 002444'00 561 02 0 17 777755 HRROI S2,SRCFLD
1956 002445'00 561 03 0 17 777745 HRROI T1,DSTWLD
1957 002446'00 200 04 0 17 777776 MOVE T2,DSTPTR
1958 002447'00 260 17 0 00 002550' $CALL WILD
1959 002450'00 322 00 0 00 002416* JUMPF .RETF ;Return if false
1960 002451'00 202 04 0 17 777776 MOVEM T2,DSTPTR ;Save updated pointer
1961 002452'00 254 00 0 00 002460' JRST OUTN3 ;Store suffix punctuation
1962
1963 002453'00 200 01 0 17 777776 OUTN2: MOVE S1,DSTPTR ;Get output pointer
1964 002454'00 200 02 0 00 000000# MOVE S2,DSTJFN
1965 002455'00 510 03 0 07 001052' HLLZ T1,FFLDT(P1) ;Get bits for this field
1966 002456'00 104 00 0 00 000030 JFNS
1967 002457'00 202 01 0 17 777776 MOVEM S1,DSTPTR ;Save updated pointer
1968 002460'00 135 01 0 17 777776 OUTN3: LDB S1,DSTPTR ;[0056]GET THE LAST SAVED BYTE
1969 002461'00 302 01 0 00 000074 CAIE S1,"<" ;[0056]WAS IT BEGINNING OF DIRECTORY?
1970 002462'00 254 00 0 00 002467' JRST OUTN25 ;[0056]NO, GO ON
1971 002463'00 571 01 0 00 777777 HRREI S1,-1 ;[0056]-1
1972 002464'00 133 01 0 17 777776 ADJBP S1,DSTPTR ;[0056]MOVE BACK ONE BYTE
1973 002465'00 202 01 0 17 777776 MOVEM S1,DSTPTR ;[0056]RESTORE THE NEW POINTER
1974 002466'00 254 00 0 00 002472' JRST OUTN4 ;[0056]
1975 002467'00 550 02 0 07 002475' OUTN25: HRRZ S2,PNCTAB(P1) ;Get suffix punctuation
1976 002470'00 332 00 0 00 000002 SKIPE S2 ;Don't store null
1977 002471'00 136 02 0 17 777776 IDPB S2,DSTPTR ;Store it
1978 002472'00 253 07 0 00 002420' OUTN4: AOBJN P1,OUTN1 ;On to next field
1979 002473'00 200 03 0 17 777776 MOVE T1,DSTPTR ;Return updated pointer
1980 002474'00 324740 002370* $RETT
1981
1982 002475'00 000000 000072 PNCTAB: BYTE(18) 0,":" ;Device prefix,suffix
1983 002476'00 000074 000076 BYTE(18) "<",">" ;Directory prefix suffix
1984 002477'00 000000 000000 BYTE(18) 0,0 ;Name prefix,suffix
1985 002500'00 000056 000000 BYTE(18) "." ;Extension prefix
1986 002501'00 000056 000000 BYTE(18) "." ;Generation prefix
1987
1988
1989 SUBTTL NAMEXT Routine to expand full file name
1990
1991 ;Accepts S1/ GTJFN flags
1992 ; S2/ Pointer to name string storage
1993
1994 ;Returns Expanded local file name stored per S2
1995
1996 002502'00 200 06 0 00 000002 NAMEXT: MOVE T4,S2 ;Save pointer to destination
1997 002503'00 104 00 0 00 000020 GTJFN ;Get full JFN for name
1998 002504'00 320 16 0 00 002450* ERJMP .RETF
1999 002505'00 200 02 0 00 000001 MOVE S2,S1 ;JFN to S2
2000 002506'00 200 01 0 00 000006 MOVE S1,T4 ;Destination to S1
2001 002507'00 200 03 0 00 004435' MOVX T1,FFSPEC ;Get full expansion flags
2002 002510'00 104 00 0 00 000030 JFNS ;Expand the name
2003 002511'00 200 01 0 00 000002 MOVE S1,S2 ;JFN to S1
2004 002512'00 104 00 0 00 000023 RLJFN ;Release it
2005 002513'00 320 16 0 00 002504* ERJMP .RETF
2006 002514'00 324740 002474* $RETT
2007
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 39
NFT MAC 22-Feb-82 10:30 OUTFLG Routine to set flags per what user typed
2008 SUBTTL OUTFLG Routine to set flags per what user typed
2009
2010 ;ACCEPTS S1/ Pointer to file string
2011
2012 ;RETURNS S1/ Updated pointer
2013 ; S2/ Flags set per user input
2014
2015
2016 002515'00 200 04 0 00 000001 OUTFLG: MOVE T2,S1 ;Copy original pointer
2017 002516'00 205 02 0 00 060000 MOVX S2,GJ%NAM+GJ%EXT ;Require name and extension
2018 002517'00 134 03 0 00 000004 ILDB T1,T2 ;Get character
2019 002520'00 322 03 0 00 002514* JUMPE T1,.RETT ;Return on null
2020 002521'00 625 02 0 00 020000 TXZA S2,GJ%EXT ;Clear extention flag
2021 002522'00 134 03 0 00 000004 OUTFL1: ILDB T1,T2 ;Get next byte
2022 002523'00 322 03 0 00 002520* JUMPE T1,.RETT ;Return on null
2023 002524'00 306 03 0 00 000072 CAIN T1,":" ;Was it a device terminator?
2024 JRST [TXO S2,GJ%DEV ;Yes..set the flag
2025 002525'00 254 00 0 00 005775' JRST OUTFL1] ;Get next character
2026 002526'00 302 03 0 00 000074 CAIE T1,"<" ;Was it a directory
2027 002527'00 306 03 0 00 000133 CAIN T1,"["
2028 002530'00 254 00 0 00 002541' JRST OUTFL3 ;Yes..get the field
2029 002531'00 302 03 0 00 000056 CAIE T1,"." ;Was it extension or generation?
2030 002532'00 254 00 0 00 002522' JRST OUTFL1 ;No..get next character
2031 002533'00 661 02 0 00 020000 TXO S2,GJ%EXT ;Set extension flag
2032 002534'00 134 03 0 00 000004 OUTFL2: ILDB T1,T2 ;Get next byte
2033 002535'00 322 03 0 00 002523* JUMPE T1,.RETT ;Return
2034 002536'00 306 03 0 00 000056 CAIN T1,"." ;Generation?
2035 002537'00 661 02 0 00 010000 TXO S2,GJ%VER ;Yes..set the flag
2036 002540'00 254 00 0 00 002534' JRST OUTFL2 ;Back for next character
2037
2038 002541'00 134 03 0 00 000004 OUTFL3: ILDB T1,T2 ;Get next character of directory
2039 002542'00 322 03 0 00 002513* JUMPE T1,.RETF ;Fail on null
2040 002543'00 302 03 0 00 000076 CAIE T1,">" ;Terminator?
2041 002544'00 306 03 0 00 000135 CAIN T1,"]"
2042 002545'00 665 02 0 00 100000 TXOA S2,GJ%DIR ;Yes..Say they typed directory
2043 002546'00 254 00 0 00 002541' JRST OUTFL3 ;No..finish directory
2044 002547'00 254 00 0 00 002522' JRST OUTFL1 ;Back for rest of name
2045
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 40
NFT MAC 22-Feb-82 10:30 Routine to build destination string from wild information
2046 SUBTTL Routine to build destination string from wild information
2047
2048 ;WILD Build destination string
2049
2050 ;CALL S1/ Wild source string pointer
2051 ; S2/ Source string pointer
2052 ; T1/ Wild destination string pointer
2053 ; T2/ Destination string pointer
2054
2055 002550'00 260 17 0 00 001315* WILD:: $SAVE <P1,P2,P3,P4> ;PRESERVE SOME ACS
2056 002551'00 260 17 0 00 000000* TRVAR <DSTSIZ,DSTTRM,<SRCTRM,8>> ;TEMP VARIABLES
2057 002552'00 000012 000012
2058 002553'00 120 07 0 00 000001 DMOVE P1,S1 ;SAVE SOURCE STUFF
2059 002554'00 120 11 0 00 000003 DMOVE P3,T1 ;SAVE DEST STUFF
2060 002555'00 201 01 0 00 005777' MOVEI S1,[EXP P1,P2,P3,P4,0] ;Get list of pointers
2061 002556'00 260 17 0 00 003207' $CALL CHKPTR ;Make real pointers
2062 002557'00 200 01 0 00 000007 MOVE S1,P1 ;Get wild source pointer
2063 002560'00 200 02 0 00 000011 MOVE S2,P3 ;Get wild dest pointer
2064 002561'00 260 17 0 00 002671' $CALL CHKWLD ;Check construction
2065 002562'00 322 00 0 00 002542* JUMPF .RETF ;Fail now if bad construction
2066 002563'00 326 04 0 00 002574' JUMPN T2,WILD1 ;Was dst-msk = "*"
2067 002564'00 200 01 0 00 000010 MOVE S1,P2 ;Yes..point to src-str
2068 002565'00 200 02 0 00 000012 MOVE S2,P4 ; point to dst-str
2069 002566'00 260 17 0 00 003145' $CALL CPYSTR ;Copy the field
2070 002567'00 200 04 0 00 000002 MOVE T2,S2 ;Return updated pointers
2071 002570'00 200 02 0 00 000001 MOVE S2,S1
2072 002571'00 200 01 0 00 000007 MOVE S1,P1
2073 002572'00 200 03 0 00 000011 MOVE T1,P3
2074 002573'00 324740 002535* $RETT ;Return
2075
2076 002574'00 200 01 0 00 000011 WILD1: MOVE S1,P3 ;Point to dst-msk
2077 002575'00 200 02 0 00 000012 MOVE S2,P4 ;Point to dst-str
2078 002576'00 260 17 0 00 003145' $CALL CPYSTR ;Copy the field
2079 002577'00 200 12 0 00 000002 MOVE P4,S2 ;Save the dst-str pointer
2080 002600'00 260 17 0 00 003166' $CALL MSKSIZ ;Get mask size
2081 002601'00 200 11 0 00 000001 MOVE P3,S1 ;Save the dst-msk pointer
2082 002602'00 202 02 0 16 000001 MOVEM S2,DSTSIZ ;Save it
2083 002603'00 202 03 0 16 000002 MOVEM T1,DSTTRM ;Save terminating character
2084 002604'00 134 03 0 00 000007 WILD2: ILDB T1,P1 ;Get src-msk byte
2085 002605'00 134 04 0 00 000010 ILDB T2,P2 ;Get src-str byte
2086 002606'00 316 03 0 00 000004 CAMN T1,T2 ;Match?
2087 002607'00 326 03 0 00 002604' JUMPN T1,WILD2 ;Yes..find first non-match
2088 002610'00 200 01 0 00 000010 MOVE S1,P2 ;Get src-str pointer
2089 002611'00 260 17 0 00 003201' $CALL DPB ;Decrement it
2090 002612'00 200 10 0 00 000001 MOVE P2,S1 ;Put it back
2091 002613'00 200 01 0 00 000007 MOVE S1,P1 ;Get src-mask pointer
2092 002614'00 260 17 0 00 003201' $CALL DPB ;Decrement the pointer
2093 002615'00 260 17 0 00 003166' $CALL MSKSIZ ;Get src-msk size
2094 002616'00 313 02 0 16 000001 CAMLE S2,DSTSIZ ;Fit into dst-msk?
2095 002617'00 324740 002562* $RETF ;No..give up
2096 002620'00 200 07 0 00 000001 MOVE P1,S1 ;Save src-msk pointer
2097 002621'00 200 01 0 00 000010 MOVE S1,P2 ;Get src-str pointer
2098 002622'00 400 04 0 00 000000 SETZ T2, ;Clear count
2099 CONT. (WILD)
2100 PAGE; (WILD Continued on next page)
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 40-1
NFT MAC 22-Feb-82 10:30 Routine to build destination string from wild information
2101 SALL; (WILD Continued from previous page)
2102
2103 002623'00 134 02 0 00 000001 WILD3: ILDB S2,S1 ;Get byte from src-str
2104 002624'00 316 02 0 00 000003 CAMN S2,T1 ;Terminator?
2105 002625'00 254 00 0 00 002630' JRST WILD4 ;Yes..copy src-msk terminator
2106 002626'00 136 02 0 00 000012 IDPB S2,P4 ;No..put it in dst-str
2107 002627'00 344 04 0 00 002623' AOJA T2,WILD3 ;Find terminator
2108 002630'00 260 17 0 00 003201' WILD4: $CALL DPB ;Decrement src-str pointer
2109 002631'00 200 10 0 00 000001 MOVE P2,S1 ;Put it back
2110 002632'00 200 01 0 00 000007 MOVE S1,P1 ;Get src-msk pointer
2111 002633'00 200 02 0 00 006004' MOVE S2,[POINT 7,SRCTRM] ;Yes..copy the terminator string
2112 002634'00 260 17 0 00 003145' $CALL CPYSTR ;Copy termination string
2113 002635'00 200 07 0 00 000001 MOVE P1,S1 ;Save src-msk pointer
2114 002636'00 200 01 0 00 006004' WILD5: MOVE S1,[POINT 7,SRCTRM] ;Point to src-msk terminator
2115 002637'00 200 02 0 00 000010 MOVE S2,P2 ;Point to src-str
2116 002640'00 104 00 0 00 000540 STCMP ;Look for terminator string
2117 002641'00 332 00 0 00 000001 SKIPE S1 ;Exact match
2118 002642'00 603 01 0 00 200000 TXNE S1,SC%SUB ; or subset?
2119 002643'00 254 00 0 00 002650' JRST WILD6 ;Yes..we found it
2120 002644'00 134 03 0 00 000010 ILDB T1,P2 ;No..copy src-str byte
2121 002645'00 322 03 0 00 002651' JUMPE T1,WILD7 ;Exit on null src-str byte
2122 002646'00 136 03 0 00 000012 IDPB T1,P4 ; to dst-str
2123 002647'00 344 04 0 00 002636' AOJA T2,WILD5 ;Try again for a match
2124 002650'00 200 10 0 00 000002 WILD6: MOVE P2,S2 ;Save src-str pointer
2125 002651'00 200 01 0 00 000010 WILD7: MOVE S1,P2 ;Decrement source string pointer
2126 002652'00 260 17 0 00 003201' $CALL DPB
2127 002653'00 200 10 0 00 000001 MOVE P2,S1 ;Put it back
2128 002654'00 550 01 0 16 000001 HRRZ S1,DSTSIZ ;Get min dst-msk size
2129 002655'00 554 02 0 16 000001 HLRZ S2,DSTSIZ ;Get max dst-msk size
2130 002656'00 311 04 0 00 000001 CAML T2,S1 ;Check range
2131 002657'00 313 04 0 00 000002 CAMLE T2,S2
2132 002660'00 324740 002617* $RETF ;Bad..fail
2133 002661'00 200 04 0 00 000012 MOVE T2,P4 ;Get pointer to dest
2134 002662'00 400 03 0 00 000000 SETZ T1, ;Get a null
2135 002663'00 136 03 0 00 000004 IDPB T1,T2 ;Ensure a null
2136 002664'00 332 00 0 16 000002 SKIPE DSTTRM ;At end of destination?
2137 002665'00 254 00 0 00 002574' JRST WILD1 ;No..process next field
2138 002666'00 120 01 0 00 000007 DMOVE S1,P1 ;Yes..Return updated pointers
2139 002667'00 120 03 0 00 000011 DMOVE T1,P3
2140 002670'00 324740 002573* $RETT
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 41
NFT MAC 22-Feb-82 10:30 CHKWLD Routine to validate wild construction
2141 SUBTTL CHKWLD Routine to validate wild construction
2142
2143 ;CALL S1/ Source wild pointer
2144 ; S2/ Destination wild pointer
2145
2146 ;RETURN TRUE Valid construction
2147 ; FALSE Invalid construction
2148
2149 002671'00 260 17 0 00 002550* CHKWLD: $SAVE <P1,P2,P3,P4>
2150 002672'00 120 07 0 00 000001 DMOVE P1,S1 ;Save the pointers
2151 002673'00 400 04 0 00 000000 SETZ T2,
2152 002674'00 134 03 0 00 000010 CHKW1: ILDB T1,P2 ;Get destination byte
2153 002675'00 322 03 0 00 002702' JUMPE T1,CHKW2 ;Onward on null
2154 002676'00 302 03 0 00 000052 CAIE T1,"*"
2155 002677'00 306 03 0 00 000045 CAIN T1,"%"
2156 002700'00 254 00 0 00 002702' JRST CHKW2 ;Onward on wild
2157 002701'00 344 04 0 00 002674' AOJA T2,CHKW1 ;Look for wild card or null
2158
2159 002702'00 200 01 0 00 000010 CHKW2: MOVE S1,P2 ;Get destination pointer
2160 002703'00 260 17 0 00 003201' $CALL DPB ;Decrement it
2161 002704'00 260 17 0 00 003166' $CALL MSKSIZ ;Get mask size
2162 002705'00 200 10 0 00 000001 MOVE P2,S1 ;Save updated pointer
2163 002706'00 120 11 0 00 000002 DMOVE P3,S2 ;Save size and terminator
2164 002707'00 326 04 0 00 002712' JUMPN T2,CHKW3 ;Onward if any characters seen
2165 002710'00 316 02 0 00 006005' CAMN S2,[377,,0] ;Was wild card "*"
2166 002711'00 322 03 0 00 002670* JUMPE T1,.RETT ; and terminator null?
2167
2168 002712'00 134 03 0 00 000007 CHKW3: ILDB T1,P1 ;Get source byte
2169 002713'00 322 03 0 00 002720' JUMPE T1,CHKW4 ;Onward on null
2170 002714'00 302 03 0 00 000052 CAIE T1,"*"
2171 002715'00 306 03 0 00 000045 CAIN T1,"%"
2172 002716'00 254 00 0 00 002720' JRST CHKW4 ;Onward on wild card
2173 002717'00 344 04 0 00 002712' AOJA T2,CHKW3
2174
2175 002720'00 200 01 0 00 000007 CHKW4: MOVE S1,P1 ;Get source pointer
2176 002721'00 260 17 0 00 003201' $CALL DPB ;Decrement it
2177 002722'00 260 17 0 00 003166' $CALL MSKSIZ ;Get the size
2178 002723'00 313 02 0 00 000011 CAMLE S2,P3 ;Will source always fit dest?
2179 002724'00 324740 002660* $RETF ;No..fail now
2180 002725'00 200 07 0 00 000001 MOVE P1,S1 ;Save updated pointer
2181
2182 002726'00 332 00 0 00 000003 SKIPE T1 ;Src term null
2183 JRST [JUMPN P4,CHKW1 ;Look for the end
2184 002727'00 254 00 0 00 006006' $RETF] ;Not the same number of wilds
2185 002730'00 332 00 0 00 000012 SKIPE P4 ;Dest term null
2186 002731'00 324740 002724* $RETF ;Not the same number of wilds
2187 002732'00 324740 002711* $RETT
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 42
NFT MAC 22-Feb-82 10:30 FILDEF Routine to setup GTJFN file defaults
2188 SUBTTL FILDEF Routine to setup GTJFN file defaults
2189
2190 ;CALL S1/ POINTER TO SOURCE STRING
2191 ; S2/ FLAGS TO STORE IN GTJFN BLOCK
2192
2193 ;RETURNS S1/ UPDATED POINTER
2194 ; S2/ FLAGS INDICATING WHAT WAS PARSED
2195
2196 002733'00 260 17 0 00 001244* FILDEF: $SAVE <P1,P2> ;PRESERVE SOME AC'S
2197 002734'00 641 01 0 00 777777 TLC S1,-1 ;FIX -1 TYPE POINTERS
2198 002735'00 647 01 0 00 777777 TLCN S1,-1
2199 002736'00 505 01 0 00 440700 HRLI S1,(POINT 7)
2200 002737'00 120 07 0 00 000001 DMOVE P1,S1 ;PRESERVE CALLING ARGS
2201 002740'00 260 17 0 00 003616' $CALL CLRGJF ;CLEAR GTJFN BLOCK
2202 002741'00 250 10 0 00 000000# EXCH P2,GJFBLK+.GJGEN ;STORE CALLING FLAGS
2203 002742'00 200 01 0 00 000007 MOVE S1,P1 ;GET CALLING POINTER
2204 002743'00 561 02 0 00 000000# HRROI S2,DEFDEV ;POINT TO DEVICE STORAGE
2205 002744'00 201 03 0 00 003035' MOVEI T1,DEVBRK ;POINT TO BREAK SET
2206 002745'00 260 17 0 00 003055' $CALL CPYFLD ;COPY THE DEVICE
2207 002746'00 302 03 0 00 000072 CAIE T1,":" ;PROPER TERMIEATION?
2208 002747'00 254 00 0 00 002754' JRST FILDE1 ;NO..TRY DIRECTORY
2209 002750'00 661 10 0 00 400000 TXO P2,GJ%DEV ;YES..SET DEVICE FLAG
2210 002751'00 561 02 0 00 000000# HRROI S2,DEFDEV ;POINT TO STRING
2211 002752'00 202 02 0 00 000000# MOVEM S2,GJFBLK+.GJDEV ;STORE FOR GTJFN
2212 002753'00 334 07 0 00 000001 SKIPA P1,S1 ;SAVE UPDATED POINTER
2213 002754'00 200 01 0 00 000007 FILDE1: MOVE S1,P1 ;GET CALLING POINTER
2214 002755'00 134 02 0 00 000001 ILDB S2,S1 ;GET FIRST BYTE
2215 002756'00 400 03 0 00 000000 SETZ T1, ;CLEAR BREAK ADDRESS
2216 002757'00 302 02 0 00 000074 CAIE S2,"<" ;LOOK LIKE DIRECTORY?
2217 002760'00 306 02 0 00 000133 CAIN S2,"[" ;OR UIC?
2218 002761'00 201 03 0 00 003041' MOVEI T1,DIRBRK ;YES..POINT TO DIR BREAK SET
2219 002762'00 322 03 0 00 002775' JUMPE T1,FILDE2 ;NO..ON TO CHECK FILENAME
2220 002763'00 561 02 0 00 000000# HRROI S2,DEFDIR ;POINT TO DIRECTORY STORAGE
2221 002764'00 260 17 0 00 003055' $CALL CPYFLD ;YES..PARSE IT
2222 002765'00 302 03 0 00 000076 CAIE T1,">" ;UIC OR DIRECTORY TERMINATOR?
2223 002766'00 306 03 0 00 000135 CAIN T1,"]"
2224 002767'00 334 00 0 00 000000 SKIPA ;YES..SAY WE PARSED DIRECTORY
2225 002770'00 324740 002731* $RETF ;WE TRIED, BUT LOST
2226 002771'00 661 10 0 00 100000 TXO P2,GJ%DIR ;SET DIRECTORY FLAG
2227 002772'00 561 02 0 00 000000# HRROI S2,DEFDIR ;POINT TO DIRECTORY STORAGE
2228 002773'00 202 02 0 00 000000# MOVEM S2,GJFBLK+.GJDIR ;SAVE FOR GTJFN
2229 002774'00 334 07 0 00 000001 SKIPA P1,S1 ;SAVE UPDATED POINTER
2230 002775'00 200 01 0 00 000007 FILDE2: MOVE S1,P1 ;GET UPDATED POINTER
2231 002776'00 561 02 0 00 000000# HRROI S2,DEFNAM ;POINT TO DEFAULT NAME STORAGE
2232 002777'00 201 03 0 00 003045' MOVEI T1,NAMBRK ;POINT TO NAME BREAK SET
2233 003000'00 260 17 0 00 003055' $CALL CPYFLD ;COPY THE FIELD
2234 003001'00 336 00 0 00 000000# SKIPN DEFNAM ;ANYTHING STORED?
2235 003002'00 254 00 0 00 003006' JRST FILDE3 ;NO..CHECK EXTENTION
2236 003003'00 661 10 0 00 040000 TXO P2,GJ%NAM ;SET NAME FLAG
2237 003004'00 561 02 0 00 000000# HRROI S2,DEFNAM ;POINT TO STORAGE
2238 003005'00 202 02 0 00 000000# MOVEM S2,GJFBLK+.GJNAM ;SAVE FOR GTJFN
2239
2240 CONT. (FILDEF routine)
2241 PAGE; (FILDEF routine Continued on next page)
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 42-1
NFT MAC 22-Feb-82 10:30 FILDEF Routine to setup GTJFN file defaults
2242 SALL; (FILDEF routine Continued from previous page)
2243 003006'00 302 03 0 00 000056 FILDE3: CAIE T1,"." ;EXTENTION PREFIX?
2244 003007'00 254 00 0 00 003016' JRST FILDE4 ;NO..CHECK GENERATION
2245 003010'00 561 02 0 00 000000# HRROI S2,DEFEXT ;POINT TO DEFAULT EXT STORAGE
2246 003011'00 201 03 0 00 003045' MOVEI T1,NAMBRK ;SAME AS NAME
2247 003012'00 260 17 0 00 003055' $CALL CPYFLD ;STORE IT
2248 003013'00 661 10 0 00 020000 TXO P2,GJ%EXT ;SAY WE PARSED EXTENTION
2249 003014'00 561 02 0 00 000000# HRROI S2,DEFEXT ;POINT TO IT
2250 003015'00 202 02 0 00 000000# MOVEM S2,GJFBLK+.GJEXT ;SAVE FOR GTJFN
2251 003016'00 302 03 0 00 000056 FILDE4: CAIE T1,"." ;VERSION PREFIX?
2252 003017'00 306 03 0 00 000073 CAIN T1,";" ;(FOR VAX)
2253 003020'00 334 00 0 00 000000 SKIPA ;YES..
2254 003021'00 254 00 0 00 003030' JRST FILDE5 ;NO..CHECK PROPER TERMINATION
2255 003022'00 561 02 0 00 000000# HRROI S2,DEFVER ;POINT TO DEFAULT VER STORAGE
2256 003023'00 201 03 0 00 003051' MOVEI T1,NUMBRK ;POINT TO NUMBER BREAK SET
2257 003024'00 260 17 0 00 003055' $CALL CPYFLD ;COPY THE FIELD
2258 003025'00 336 00 0 00 000000# SKIPN DEFVER ;ANYTHING PARSED?
2259 003026'00 254 00 0 00 003030' JRST FILDE5 ;NO..CHECK TERMINATION
2260 003027'00 661 10 0 00 010000 TXO P2,GJ%VER ;SAY WE PARSED IT
2261 003030'00 200 02 0 00 000010 FILDE5: MOVE S2,P2 ;RETURN PARSED FLAGS
2262 003031'00 302 03 0 00 000000 CAIE T1,0 ;NULL TERMINATOR
2263 003032'00 306 03 0 00 000073 CAIN T1,";" ;OR ATTRIBUTES?
2264 003033'00 324740 002732* $RETT ;YES..RETURN SUCCESS
2265 003034'00 324740 002770* $RETF ;NO..FAIL
2266
2267 003035'00 777777 777760 DEVBRK: 777777,,777760 ;BREAK ON ALL CONTROL
2268 003036'00 757754 001760 757754,,001760 ;[0074]ALLOW 0-9 $-
2269 003037'00 400000 000740 400000,,000740 ;[0074]ALLOW A-Z _
2270 003040'00 400000 000760 400000,,000760 ;ALLOW LC A-Z
2271
2272 003041'00 777777 777760 DIRBRK: 777777,,777760 ;BREAK ON ALL CONTROL
2273 003042'00 747504 001760 747504,,001760 ;ALLOW $%*,-. 0-9
2274 003043'00 400000 000740 400000,,000740 ;ALLOW A-Z _
2275 003044'00 400000 000760 400000,,000760 ;ALLOW LC A-Z
2276
2277 003045'00 777777 777760 NAMBRK: 777777,,777760 ;BREAK ON ALL CONTROL
2278 003046'00 747554 001760 747554,,001760 ;ALLOW $%*- 0-9
2279 003047'00 400000 000740 400000,,000740 ;ALLOW A-Z _
2280 003050'00 400000 000760 400000,,000760 ;ALLOW LC A-Z
2281
2282 003051'00 777777 777760 NUMBRK: 777777,,777760 ;BREAK ON ALL CONTROL
2283 003052'00 777774 001760 777774,,001760 ;ALLOW 0-9
2284 003053'00 000000 000000 0
2285 003054'00 000000 000000 0
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 43
NFT MAC 22-Feb-82 10:30 CPYFLD ROUTINE TO COPY A STRING UNTIL BREAK CHARACTER
2286 SUBTTL CPYFLD ROUTINE TO COPY A STRING UNTIL BREAK CHARACTER
2287
2288 ;CALL S1/ SOURCE POINTER
2289 ; S2/ DESTINATION POINTER
2290 ; T1/ ADDRESS OF BREAK TABLE
2291
2292 ;RETURNS S1/ UPDATED POINTER
2293 ; S2/ UPDATED POINTER
2294 ; T1/ BREAK CHARACTER
2295
2296 003055'00 641 01 0 00 777777 CPYFLD: TLC S1,-1 ;FIX -1 TYPE POINTERS
2297 003056'00 647 01 0 00 777777 TLCN S1,-1
2298 003057'00 505 01 0 00 440700 HRLI S1,(POINT 7)
2299 003060'00 641 02 0 00 777777 TLC S2,-1
2300 003061'00 647 02 0 00 777777 TLCN S2,-1
2301 003062'00 505 02 0 00 440700 HRLI S2,(POINT 7)
2302 003063'00 540 06 0 00 000003 HRR T4,T1 ;GET ADDRESS OF BREAK SET
2303 003064'00 505 06 0 00 000004 HRLI T4,T2 ;MAKE IT INDEXED BY T2
2304 003065'00 134 03 0 00 000001 CPYFL1: ILDB T1,S1 ;GET A SOURCE BYTE
2305 003066'00 200 04 0 00 000003 MOVE T2,T1 ;GET A COPY OF IT
2306 003067'00 231 04 0 00 000040 IDIVI T2,40 ;GET BREAK WORD,,BIT
2307 003070'00 200 05 0 05 003101' MOVE T3,BITS(T3) ;GET PROPER BIT MASK
2308 003071'00 612 05 1 00 000006 TDNE T3,@T4 ;BREAK CHARACTER?
2309 003072'00 254 00 0 00 003075' JRST CPYFL2 ;YES..RETURN NOW
2310 003073'00 136 03 0 00 000002 IDPB T1,S2 ;NO..STORE THE CHARACTER
2311 003074'00 254 00 0 00 003065' JRST CPYFL1 ;BACK FOR NEXT CHARACTER
2312 003075'00 200 04 0 00 000002 CPYFL2: MOVE T2,S2 ;COPY DEST POINTER
2313 003076'00 400 05 0 00 000000 SETZ T3, ;GET A NULL
2314 003077'00 136 05 0 00 000004 IDPB T3,T2 ;TERMINATE WITH A NULL
2315 003100'00 324740 003033* $RETT ;RETURN TO CALLER
2316
2317 ;BIT TABLE FOR CPYFLD BREAK CHARACTER CHECKING
2318
2319 000000 XX==0
2320 003101'00 BITS: LSTOF.
2321 LSTON.
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 44
NFT MAC 22-Feb-82 10:30 CPYFLD ROUTINE TO COPY A STRING UNTIL BREAK CHARACTER
2322
2323 ;CPYSTR Routine to copy a string until mask character
2324
2325 ;CALL S1/ Source pointer
2326 ; S2/ Destination pointer
2327
2328 ;RETURN S1/ Updated pointer
2329 ; S2/ Updated pointer
2330 ; T1/ String terminator character
2331
2332 003145'00 134 03 0 00 000001 CPYSTR: ILDB T1,S1 ;GET THE CHARACTER
2333 003146'00 322 03 0 00 003154' JUMPE T1,CPYS1 ;TERMINATE ON NULL
2334 003147'00 302 03 0 00 000052 CAIE T1,"*" ;MASK CHARACTER?
2335 003150'00 306 03 0 00 000045 CAIN T1,"%"
2336 003151'00 254 00 0 00 003154' JRST CPYS1 ;YES..RETURN CORRECT POINTER
2337 003152'00 136 03 0 00 000002 IDPB T1,S2 ;NO..STORE CHARACTER
2338 003153'00 254 00 0 00 003145' JRST CPYSTR ;LOOP UNTIL MASK FOUND
2339
2340 003154'00 304 00 0 00 000000 CPYS1: $SAVE <T1,T2> ;Save terminator and T2
2341 003161'00 260 17 0 00 003201' $CALL DPB ;BACK UP SOURCE POINTER
2342 003162'00 200 04 0 00 000002 MOVE T2,S2 ;GET DESTINATION POINTER
2343 003163'00 400 03 0 00 000000 SETZ T1, ;GET A NULL
2344 003164'00 136 03 0 00 000004 IDPB T1,T2 ;TERMINATE DEST STRING
2345 003165'00 254 00 0 00 003100* JRST .RETT ;RETURN TO CALLER
2346
2347
2348 ;MSKSIZ Return the mask limits
2349
2350 ;CALL S1/ Pointer to mask
2351
2352 ;RETURN S1/ Updated pointer
2353 ; S2/ max length,,min length
2354 ; T1/ Mask terminator character
2355
2356 003166'00 400 02 0 00 000000 MSKSIZ: SETZ S2, ;CLEAR THE COUNT
2357 003167'00 134 03 0 00 000001 MSKS1: ILDB T1,S1 ;GET A BYTE FROM STRING
2358 003170'00 322 03 0 00 003177' JUMPE T1,MSKS2 ;EXIT IF NULL FOUND
2359 003171'00 306 03 0 00 000052 CAIN T1,"*" ;IS IT A WILD MASK CHARACTER?
2360 003172'00 505 02 0 00 000377 HRLI S2,377 ;YES..MAKE SIZE MAXIMUM
2361 003173'00 306 03 0 00 000045 CAIN T1,"%" ;IS IT CHARACTER MASK?
2362 003174'00 344 02 0 00 003167' AOJA S2,MSKS1 ;YES..ADJ MIN LENGTH
2363 003175'00 306 03 0 00 000052 CAIN T1,"*" ;WAS IT A WILD MASK CHARACTER?
2364 003176'00 254 00 0 00 003167' JRST MSKS1 ;YES..GET NEXT CHARACTER
2365 003177'00 607 02 0 00 000377 MSKS2: TLNN S2,377 ;WAS "*" SEEN?
2366 003200'00 504 02 0 00 000002 HRL S2,S2 ;NO.. MAX==MIN
2367 003201'00 370 00 0 00 000001 DPB: SOS S1 ;DECREMENT BYTE POINTER
2368 003202'00 133 00 0 00 000001 IBP S1
2369 003203'00 133 00 0 00 000001 IBP S1
2370 003204'00 133 00 0 00 000001 IBP S1
2371 003205'00 133 00 0 00 000001 IBP S1
2372 003206'00 254 00 0 00 003165* JRST .RETT ;RETURN TO CALLER
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 45
NFT MAC 22-Feb-82 10:30 CHKPTR Routine to fix -1 type pointers
2373 SUBTTL CHKPTR Routine to fix -1 type pointers
2374
2375 ;ACCEPTS S1/ Address of list of pointer address
2376
2377 ;RETURNS TRUE Pointers are valid pointers
2378
2379 003207'00 304 00 0 00 000000 CHKPTR: $SAVE <S2> ;[0055]
2380 003213'00 336 02 0 01 000000 SKIPN S2,(S1) ;Get pointer address
2381 003214'00 324740 003206* $RETT ;Return on 0 address
2382 003215'00 200 03 1 00 000002 MOVE T1,@S2 ;Get the pointer
2383 003216'00 641 03 0 00 777777 TLC T1,-1 ;Is LH = 0
2384 003217'00 647 03 0 00 777777 TLCN T1,-1 ; or -1 ?
2385 003220'00 505 03 0 00 440700 HRLI T1,(POINT 7,0) ;Yes..make full word pointer
2386 003221'00 541 03 1 00 000003 HRRI T1,@T1 ;Remove indexing and indirect
2387 003222'00 621 03 0 00 000037 TLZ T1,37 ;Clear the bits
2388 003223'00 202 03 1 00 000002 MOVEM T1,@S2 ;Store the pointer
2389 003224'00 344 01 0 00 003207' AOJA S1,CHKPTR ;Do next pointer
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 46
NFT MAC 22-Feb-82 10:30 DAPOPN Routine to Open logical link
2390 SUBTTL DAPOPN Routine to Open logical link
2391
2392 003225'00 DAPIOB: $BUILD (.DOSIZ) ;Dap link open block
2393 $SET (.DOFLG,DO%LNK,DAPLNK) ;Request first link
2394 $SET (.DOFLG,DO%PSI,1) ;Use PSI
2395 $SET (.DOFLG,DO%WCN,1) ;Wait for connection
2396 $SET (.DOPSI,DO%CDN,.ICCDN) ;Connect/Disconnect channel
2397 $SET (.DOPSI,DO%DAV,.ICDAV) ;Data available
2398 $SET (.DOPSI,DO%INA,.ICIMA) ;Interrupt message
2399 $SET (.DOOBJ,,<POINT 7,OBJNAM>) ;Requested object
2400 $SET (.DOUSR,,<POINT 7,REMUSR>) ;User string
2401 $SET (.DOPSW,,<POINT 7,REMPSW>) ;Password string
2402 $SET (.DOACT,,<POINT 7,REMACT>) ;Account string
2403 $EOB
2404
2405 003242'00 201 01 0 00 000001 DAPOPN: MOVEI S1,DAPLNK ;Get proper index
2406 003243'00 260 17 0 00 000000* $CALL D$STAT ;Get the status
2407 003244'00 322 00 0 00 003251' JUMPF DAPO20 ;Go open it
2408 003245'00 324740 003214* $RETT ;All is well
2409
2410 003246'00 201 01 0 00 000001 DAPO10: MOVEI S1,DAPLNK ;Get link index
2411 003247'00 201 02 0 00 006023' MOVEI S2,[EXP .DCX42] ;Confirm DI request
2412 003250'00 260 17 0 00 000000* $CALL D$CLOS
2413
2414 003251'00 260 17 0 00 002033' DAPO20: $CALL GETUSR ;Get missing info
2415 003252'00 200 01 0 00 006024' MOVE S1,[DAPIOB,,DAPOB] ;Move initial parameters
2416 003253'00 251 01 0 00 000000# BLT S1,DAPOB+.DOSIZ-1 ; to Dap open block
2417 003254'00 560 01 0 00 000000# HRRO S1,REMNOD ;Get pointer to remote node
2418 003255'00 202 01 0 00 000000# MOVEM S1,DAPOB+.DONOD ;Store in open block
2419 003256'00 201 01 0 00 000015 MOVEI S1,.DOSIZ ;Get size of open block
2420 003257'00 201 02 0 00 000000# MOVEI S2,DAPOB
2421 003260'00 260 17 0 00 000000* $CALL D$OPEN ;Open the link
2422 003261'00 322 00 0 00 003266' JUMPF DAPERR ;Display failure
2423 003262'00 200 01 0 00 000000# MOVE S1,REMNOD ;Point to node data
2424 003263'00 201 02 0 00 000000 MOVX S2,.NDSON ;Indicate node is accessible
2425 003264'00 202 02 0 01 000002 MOVEM S2,ND$STA(S1)
2426 003265'00 324740 003245* $RETT ;Return sucess
2427
2428 003266'00 201 01 0 00 000001 DAPERR: MOVEI S1,DAPLNK ;Get link status
2429 003267'00 260 17 0 00 003243* $CALL D$STAT
2430 003270'00 621 01 0 00 777777 ANDX S1,777777 ;Get disconnect reason
2431 003271'00 200 02 0 00 000000# MOVE S2,REMNOD ;Point to remote node data
2432 003272'00 201 03 0 00 000001 MOVEI T1,1 ;Get string valid bit
2433 003273'00 306 01 0 00 000042 CAIN S1,.DCX34 ;Was it bad user or password?
2434 JRST [ANDCAM T1,ND$USR(S2) ;Yes..clear user valid
2435 ANDCAM T1,ND$PSW(S2) ;Clear password valid
2436 003274'00 254 00 0 00 006025' JRST DAPER1]
2437 003275'00 306 01 0 00 000044 CAIN S1,.DCX36 ;Was it bad account?
2438 003276'00 412 03 0 02 000044 ANDCAM T1,ND$ACT(S2) ;Yes..clear account valid.
2439 003277'00 254 00 0 00 003570' DAPER1: JRST CMDER1 ;FORCE REPARSE
2440
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 47
NFT MAC 22-Feb-82 10:30 DAPFNC Routine to perform one DAP function
2441 SUBTTL DAPFNC Routine to perform one DAP function
2442
2443 ;ACCEPTS S1/ address of initial function block
2444
2445 ;RETURNS TRUE Function accomplished
2446 ;RETURNS FALSE Error during function
2447
2448
2449 003300'00 201 01 0 00 000012 DAPFNC: MOVEI S1,.DFSIZ ;Get size of function block
2450 003301'00 201 02 0 00 000000# MOVEI S2,FNCBLK ;Point to it
2451 003302'00 260 17 0 00 000000* $CALL D$FUNC ;PERFORM FUNCTION
2452 003303'00 322 00 0 00 003266' JUMPF DAPERR ;Report DAP error
2453 003304'00 324740 003265* $RETT ;Return success
2454
2455 003305'00 254 00 0 00 006037' WLDERR: REPARS (Invalid use of wild cards)
2456
2457 003306'00 201 01 0 00 000001 DAPCLS: MOVEI S1,DAPLNK ;Get the link index
2458 003307'00 201 02 0 00 004237' MOVEI S2,[EXP .DCX0] ;Normal close
2459 003310'00 260 17 0 00 003250* $CALL D$CLOS
2460 003311'00 324740 003304* $RETT ;GIVE GOOD RETURN
2461
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 48
NFT MAC 22-Feb-82 10:30 COMMAND ERROR SUBROUTINES
2462 SUBTTL COMMAND ERROR SUBROUTINES
2463
2464
2465 ; SUBROUTINE TO TEST COLUMN POSITION AND OUTPUT CRLF IF NEEDED
2466
2467 003312'00 304 00 0 00 000000 TSTCOL: $SAVE <S1,S2> ;PRESERVE ACS ACROSS CALL
2468 003317'00 550 01 0 00 000000# HRRZ S1,SBK+.CMIOJ ;GET OUTPUT JFN
2469 003320'00 104 00 0 00 000111 RFPOS ;READ FILE POSITION
2470 003321'00 550 02 0 00 000002 HRRZ S2,S2 ;KEEP JUST THE COLUMN POSITION
2471 003322'00 322 02 0 00 003034* JUMPE S2,.RETF ;IF AT COLUMN 1 DO NOT OUTPUT CRLF
2472 003323'00 201 02 0 00 000015 MOVEI S2,.CHCRT ;Get crlf
2473 003324'00 104 00 0 00 000051 BOUT ;Out put it
2474 003325'00 201 02 0 00 000012 MOVEI S2,.CHLFD ;Get line feed
2475 003326'00 104 00 0 00 000051 BOUT ;Out put it
2476 003327'00 324740 003311* $RETT ;RETURN TO WHENCE WE CAME ...
2477
2478
2479 ; ROUTINE TO OUTPUT THE JSYS MESSAGE ON AN ERROR FROM A GTJFN OR OPENF
2480 ;
2481 ; CALL: CALL PUTERR
2482 ;RETURNS TRUE ALWAYS
2483
2484 003330'00 260 17 0 00 002172* PUTERR: $TEXT (,<^E/[-2]/>) ;Display last error
2485 003332'00 324740 003322* $RETF ;RETURN TO WHENCE WE CAME ...
2486
2487 ; ROUTINE TO OUTPUT PROPER STUFF WHILE DOING A TAKE
2488
2489 ; CALL: CALL TAKTST
2490 ;RETURNS TRUE ALWAYS
2491
2492
2493 003333'00 332 00 0 00 000000# TAKTST: SKIPE TAKFLG ;Doing a TAKE?
2494 003334'00 336 00 0 00 000000# SKIPN DSPFLG ; and displaying output?
2495 003335'00 324740 003327* $RETT ;No..just return
2496 003336'00 260 17 0 00 003330* $TEXT (,<^Q/DPRMPT/^T/CMDBUF/^A>) ;Yes..Log command
2497 003340'00 324740 003335* $RETT
2498
2499 003341'00 302 01 0 00 000077 LOGCHR: CAIE S1,"?" ;Error character?
2500 003342'00 306 01 0 00 000045 CAIN S1,"%" ; or warning character?
2501 $CALL [$SAVE <S1,S2,T1>
2502 $CALL SUPOFF ;Yes..clear output suppression
2503 $CALL CHKPOS ;do <CRLF> if needed
2504 003343'00 260 17 0 00 006074' $RETT] ;Continue
2505 003344'00 350 00 0 00 000000# LOGCH1: AOS LOGPOS ;Increment position
2506 003345'00 306 01 0 00 000015 CAIN S1,.CHCRT ;Carriage return?
2507 003346'00 476 00 0 00 000000# SETOM LOGPOS ;Yes..reset position
2508 003347'00 200 02 0 00 000001 MOVE S2,S1 ;Put character in S2
2509 003350'00 550 01 0 00 000000# HRRZ S1,SBK+.CMIOJ ;Get output JFN
2510 003351'00 104 00 0 00 000051 BOUT ;Write the character
2511 003352'00 302 01 0 00 000101 CAIE S1,.PRIOU ;Primary output?
2512 003353'00 336 00 0 00 000000# SKIPN DSPFLG ; not displaying take stuff?
2513 003354'00 324740 003340* $RETT ;Yes..just return
2514 003355'00 201 01 0 00 000101 MOVEI S1,.PRIOU ;Display on terminal for take
2515 003356'00 104 00 0 00 000051 BOUT
2516 003357'00 324740 003354* $RETT
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 48-1
NFT MAC 22-Feb-82 10:30 COMMAND ERROR SUBROUTINES
2517
2518
2519 003360'00 337 00 0 00 000000# CHKPOS: SKIPG LOGPOS ;At column 0?
2520 003361'00 324740 003357* $RETT ;Yes..just return
2521 003362'00 304 00 0 00 000000 $SAVE <S1> ;No..save calling character
2522 003366'00 201 01 0 00 000015 MOVEI S1,.CHCRT ;Send a carriage return
2523 003367'00 260 17 0 00 003344' $CALL LOGCH1
2524 003370'00 201 01 0 00 000012 MOVEI S1,.CHLFD ;Send a line feed
2525 003371'00 260 17 0 00 003344' $CALL LOGCH1
2526 003372'00 324740 003361* $RETT ;RETTurn original character
2527
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 49
NFT MAC 22-Feb-82 10:30 COMMAND ERROR SUBROUTINES
2528 ;TYPATM - ROUTINE TO TYPE THE CONTENTS OF THE ATOM BUFFER
2529 ;
2530 ;ACCEPTS IN S1/ POINTER TO ASCIZ PREFIX STRING TO BE TYPED
2531 ; CALL TYPATM
2532 ;RETURNS TRUE ALWAYS
2533
2534 003373'00 260 17 0 00 003336* TYPATM: $TEXT (T%TTY,<^Q/S1/ "^T/ATMBUF/">)
2535 003375'00 324740 003372* $RETT
2536
2537 ;STOATM - ROUTINE TO COPY ATOM
2538 ;STOSTR - ROUTINE TO COPY AN ASCIZ STRING
2539
2540 ;ACCEPTS S1/ DESTINATION DESIGNATOR
2541 ; S2/ SOURCE DESIGNATOR (STOSTR ONLY)
2542
2543 ;RETURNS TRUE
2544
2545 003376'00 561 02 0 00 000000# STOATM: HRROI S2,ATMBUF ;POINT TO ATOM
2546 003377'00 400 03 0 00 000000 STOSTR: SETZ T1, ;TERMINATE ON NULL
2547 003400'00 104 00 0 00 000053 SOUT
2548 003401'00 324740 003375* $RETT
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 50
NFT MAC 22-Feb-82 10:30 CMDINI Command parsing initialization routine
2549 SUBTTL CMDINI Command parsing initialization routine
2550
2551 ;ALWAYS CALL THIS ROUTINE AT A LESS-THAN-OR-EQUALLY NESTED LOCATION
2552 ;WITHIN THE PROGRAM IN COMPARISON WITH ANY SUBSEQUENT CALL TO THE COMND
2553 ;JSYS EXECUTION ROUTINES
2554
2555 003402'00 262 17 0 00 000003 CMDINI: POP P,T1 ;REMEMBER EOF ADDRESS
2556 003403'00 317 17 0 00 000000# CAMG P,CMDFRM ;NEED TO SAVE CONTEXT?
2557 003404'00 254 00 0 00 003430' JRST CMDIN1 ;NO..JUST SAVE EOF STUFF
2558 003405'00 304 00 0 00 000000 $SAVE <CMDFRM,CMDPDL,SBK+.CMRTY,REPADR,EOFADR,NOPRMT>
2559 003416'00 260 17 0 00 002372* STKVAR <<SAVACS,20>> ;SAVE THE CONTEXT AC'S
2560 003417'00 000020 000020
2561 003420'00 505 01 0 00 000000# HRLI S1,CMDACS
2562 003421'00 541 01 0 17 777757 HRRI S1,SAVACS
2563 003422'00 251 01 0 17 777776 BLT S1,17+SAVACS
2564 003423'00 554 01 0 00 000000# HLRZ S1,CMDPDL ;GET SAVED STACK SIZE
2565 003424'00 270 01 0 00 000000# ADD S1,CMDPDL ;OFFSET SAVED WORDS
2566 003425'00 552 01 0 00 000000# HRRZM S1,CMDPDL ;SET SAVE STACK SIZE TO ZERO
2567 003426'00 554 02 0 00 000001 HLRZ S2,S1
2568 003427'00 261 17 0 00 006137' PUSH P,[CMDIN2] ;SAVE FIXUP ADDRESS
2569 003430'00 202 03 0 00 000000# CMDIN1: MOVEM T1,EOFADR ;SAVE EOF ADDRESS
2570 003431'00 202 17 0 00 000000# MOVEM P,CMDFRM ;REMEMBER BEGINNING OF STACK
2571 003432'00 201 01 0 00 003607' MOVEI S1,REPAR ;REPARSE ADDRESS
2572 003433'00 202 01 0 00 000000# MOVEM S1,SBK+.CMFLG
2573 003434'00 201 01 0 00 000000# MOVEI S1,CMDPDL+1
2574 003435'00 336 00 0 00 000000# SKIPN CMDPDL ;FIRST PASS
2575 003436'00 202 01 0 00 000000# MOVEM S1,CMDPDL ;YES..INIT CMD STACK STORAGE
2576 003437'00 200 01 0 00 005573' MOVE S1,[.PRIIN,,.PRIOU]
2577 003440'00 336 00 0 00 000000# SKIPN SBK+.CMIOJ
2578 003441'00 202 01 0 00 000000# MOVEM S1,SBK+.CMIOJ ;STORE THE JFN'S
2579 003442'00 554 01 0 00 000000# HLRZ S1,SBK+.CMIOJ ;GET INPUT JFN
2580 003443'00 104 00 0 00 000117 DVCHR ;FIND OUT WHAT IT IS
2581 003444'00 135 02 0 00 005730' LOAD S2,S2,DV%TYP ;GET DEVICE TYPE
2582 003445'00 476 00 0 00 000000# SETOM NOPRMT ;ASSUME NULL PROMPT
2583 003446'00 302 02 0 00 000012 CAIE S2,.DVTTY ;IS IT TTY?
2584 003447'00 306 02 0 00 000013 CAIN S2,.DVPTY ; OR PTY?
2585 003450'00 402 00 0 00 000000# SETZM NOPRMT ;YES..WE NEED THE PROMPT
2586 003451'00 261 17 0 00 000000# PUSH P,EOFADR ;RETURN TO CALLER
2587 003452'00 254 00 0 00 003456' JRST CMDIN3 ;INIT SBK AND RETURN
2588
2589 ;HERE TO RESTORE PREVIOUS CONTEXT
2590 003453'00 505 01 0 17 777757 CMDIN2: HRLI S1,SAVACS
2591 003454'00 541 01 0 00 000000# HRRI S1,CMDACS
2592 003455'00 251 01 0 00 000000# BLT S1,CMDACS+17 ;RESTORE THEM ALL
2593 003456'00 200 01 0 00 006140' CMDIN3: MOVX S1,<POINT 7,CMDBUF> ;POINTER TO COMMAND BUFFER
2594 003457'00 202 01 0 00 000000# MOVEM S1,SBK+.CMBFP
2595 003460'00 202 01 0 00 000000# MOVEM S1,SBK+.CMPTR ;POINTER TO NEXT FIELD
2596 003461'00 201 01 0 00 000745 MOVEI S1,CMDBLN*5 ;ROOM FOR TYPIN
2597 003462'00 202 01 0 00 000000# MOVEM S1,SBK+.CMCNT
2598 003463'00 402 00 0 00 000000# SETZM SBK+.CMINC ;NO UNPARSED CHARACTERS YET
2599 003464'00 200 01 0 00 006141' MOVX S1,<POINT 7,ATMBUF> ;POINTER TO ATOM BUFFER
2600 003465'00 202 01 0 00 000000# MOVEM S1,SBK+.CMABP
2601 003466'00 201 01 0 00 000745 MOVEI S1,ATMBLN*5
2602 003467'00 202 01 0 00 000000# MOVEM S1,SBK+.CMABC ;ROOM IN ATOM BUFFER
2603 003470'00 201 01 0 00 000000# MOVEI S1,GJFBLK ;POINTER TO JFN BLOCK
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 50-1
NFT MAC 22-Feb-82 10:30 CMDINI Command parsing initialization routine
2604 003471'00 202 01 0 00 000000# MOVEM S1,SBK+.CMGJB
2605 003472'00 324740 003401* $RETT
2606
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 51
NFT MAC 22-Feb-82 10:30 Command field parsing routines
2607 SUBTTL Command field parsing routines
2608
2609 ;COME HERE TO PROMPT FOR NEW COMMAND OR NEW PROMPT LINE OF COMMAND.
2610 ;CALL THIS ROUTINE WITH POINTER TO PROMPT IN S1, OR 0 IF NO PROMPT.
2611
2612 003473'00 202 01 0 00 000000# DPROMP: MOVEM S1,DPRMPT ;SAVE PROMPT POINTER FOR TAKTST
2613 003474'00 336 00 0 00 000000# SKIPN NOPRMT ;WANT ANY PROMPT?
2614 003475'00 306 01 0 00 000000 CAIN S1,0 ;YES..ANY PROMPT SPECIFIED?
2615 003476'00 561 01 0 00 004237' HRROI S1,[0] ;NO, POINT TO A NULL STRING
2616 003477'00 202 01 0 00 000000# MOVEM S1,SBK+.CMRTY ;SAVE POINTER TO PROMPT
2617 003500'00 262 17 0 00 000000# POP P,REPADR ;REMEMBER REPARSE ADDRESS
2618 003501'00 124 00 0 00 000000# DMOVEM 0,CMDACS+0 ;SAVE AC'S
2619 003502'00 200 01 0 00 006142' MOVE 1,[2,,CMDACS+2]
2620 003503'00 251 01 0 00 000000# BLT 1,CMDACS+17
2621 003504'00 504 01 0 00 000000# HRL S1,CMDFRM ;SAVE FROM BOTTOM OF STACK
2622 003505'00 540 01 0 00 000000# HRR S1,CMDPDL ;MOVE DATA TO COMND PDL AREA
2623 003506'00 550 02 0 00 000017 HRRZ S2,P ;SEE WHERE TOP OF STACK IS NOW
2624 003507'00 274 02 0 00 000000# SUB S2,CMDFRM ;CALCULATE NUMBER OF WORDS
2625 003510'00 506 02 0 00 000000# HRLM S2,CMDPDL ;SAVE SIZE OF SAVED STACK
2626 003511'00 251 01 0 02 000000# BLT S1,CMDPDL(S2) ;SAVE THE STACK
2627 003512'00 261 17 0 00 000000# PUSH P,REPADR ;MAKE STACK LIKE IT WAS
2628 003513'00 201 01 0 00 006143' MOVEI S1,[FLD(.CMINI,CM%FNC)] ;TYPE PROMPT
2629 003514'00 260 17 0 00 003516' $CALL RFIELD ;YES..DO IT
2630 003515'00 324740 003472* $RETT ;RETURN TO CALLER
2631
2632 ;READ A FIELD ROUTINE. GIVE IT ADDRESS OF FUNCTION BLOCK IN A.
2633 ;JRSTS TO CMDERR IF ERROR. S1 AND S2 WILL HAVE
2634 ;RESULT OF COMND JSYS IN THEM.
2635
2636 003516'00 260 17 0 00 003521' RFIELD: $CALL RFLDE ;READ FIELT2, SKIP IF SUCCESS
2637 003517'00 322 00 0 00 003556' JUMPF CMDERR ;FAILED, GO PROCESS ERROR
2638 003520'00 324740 003515* $RETT ;SUCCESS
2639
2640 ;ROUTINE TO READ A FIELD AND SKIP IFF SUCCESSFUL. S1,S2, AND C WILL HAVE
2641 ;RESULT OF COMND JSYS IN THEM UPON RETURN.
2642
2643 003521'00 PARSE:
2644 003521'00 200 02 0 00 000001 RFLDE: MOVE S2,S1 ;PUT FUNCTION BLOCK POINTER IN B
2645 003522'00 201 01 0 00 000000# MOVEI S1,SBK ;POINTER TO STATE BLOCK IN A
2646 003523'00 104 00 0 00 000544 COMND ;READ FIELD OF COMND
2647 ERJMP [HLRZ S1,SBK+.CMIOJ ;[100]
2648 GTSTS ;[100]
2649 TXNE S2,GS%EOF ;[100]
2650 JRST CMDEOF ;[100]EOF
2651 $TEXT (,<?Command JSYS failed, type CONTINUE to try again>)
2652 ;[100]
2653 HALTF ;[100]
2654 003524'00 320 16 0 00 006162' JRST CMDEOF] ;[100]
2655 003525'00 603 01 0 00 200000 TXNE S1,CM%NOP ;DID COMMAND PARSE CORRECTLY?
2656 003526'00 324740 003332* $RETF ;NO SINGLE RETURN
2657 003527'00 135 04 0 00 006172' LOAD T2,.CMFNP(T1),CM%FNC ;GET THE PARSED FUNCTION
2658 003530'00 324740 003520* $RETT ;YES, SKIP RETURN
2659 003531'00 554 01 0 00 000000# CMDEOF: HLRZ S1,SBK+.CMIOJ ;GET COMND INPUT JFN
2660 003532'00 104 00 0 00 000024 GTSTS ;READ THE STATUS
2661 003533'00 200 17 0 00 000000# MOVE P,CMDFRM ;RESTORE FRAME
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 51-1
NFT MAC 22-Feb-82 10:30 Command field parsing routines
2662 003534'00 261 17 0 00 000000# PUSH P,EOFADR ;RETURN FALSE AFTER CMDINI
2663 003535'00 400 01 0 00 000000 SETZ S1, ;CLEAR ERROR REASON
2664 003536'00 607 02 0 00 001000 TXNN S2,GS%EOF ;WAS ERROR EOF?
2665 003537'00 324740 003526* $RETF ;NO..JUST RETURN ERROR
2666 003540'00 260 17 0 00 000000* $RETE (EOF) ;YES..RETURN EOF
2667
2668 ;READ A FIELD AND REQUIRE CARRIAGE RETURN AFTER IT FOR CONFIRMATION
2669
2670 003542'00 260 17 0 00 003416* CFIELD: STKVAR <<VALUES,2>>
2671 003543'00 000002 000002
2672 003544'00 260 17 0 00 003516' $CALL RFIELD ;READ THE FIELD
2673 003545'00 124 01 0 17 777775 DMOVEM S1,VALUES ;SAVE DATA FROM FIELD
2674 003546'00 260 17 0 00 004321' CONFRM ;GET CONFIRMATION
2675 003547'00 120 01 0 17 777775 DMOVE S1,VALUES ;GET VALUES OF FIELD
2676 003550'00 324740 003530* $RETT ;RETURN TO CALLER
2677
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 52
NFT MAC 22-Feb-82 10:30 Command parsing error and reparse routines
2678 SUBTTL Command parsing error and reparse routines
2679
2680 003551'00 260 17 0 00 003312' .REPAR: $CALL TSTCOL ;CRLF IF NEEDED
2681 003552'00 260 17 0 00 003373* $TEXT (T%TTY,<?^T/0(S1)/>) ;DISPLAY MESSAGE
2682 003554'00 260 17 0 00 003624' $CALL RELJFN
2683 003555'00 254 00 0 00 003570' JRST CMDER1 ;BACK TO THE BEGINNING
2684
2685 ;GET HERE ON COMND JSYS ERROR. LET USER TRY AGAIN.
2686
2687 000030 MESLN==30
2688 003556'00 260 17 0 00 003542* CMDERR: STKVAR <<ERMES,MESLN>>
2689 003557'00 000030 000030
2690 003560'00 561 01 0 17 777747 HRROI S1,ERMES ;POINT TO MESSAGE AREA
2691 003561'00 200 02 0 00 005235' MOVE S2,[.FHSLF,,-1] ;OURSELF, MOST RECENT ERROR
2692 003562'00 205 03 0 00 777610 MOVSI T1,-MESLN*5 ;MAXIMUM STRING WE'VE ROOM FOR
2693 003563'00 104 00 0 00 000011 ERSTR ;GET ERROR STRING
2694 003564'00 255 00 0 00 000000 JFCL
2695 003565'00 255 00 0 00 000000 JFCL ;UNEXPECTED ERRORS
2696 003566'00 561 01 0 17 777747 HRROI S1,ERMES ;POINT AT STRING
2697 003567'00 104 00 0 00 000313 ESOUT ;PRINT IT IN STANDARD MANNER
2698 ;...
2699
2700 ;COME HERE TO LET USER FIX HIS ERROR (BY TYPING ^H) OR ISSUE ANOTHER
2701 ;COMMAND
2702 ;PRINT ERROR MESSAGE BEFORE TRANSFERRING HERE
2703
2704 ;...
2705 003570'00 336 00 0 00 000000# CMDER1: SKIPN TAKFLG ;ARE WE IN A TAKE
2706 003571'00 254 00 0 00 003605' JRST CMDER2 ;NO..JUST REPARSE
2707 003572'00 554 01 0 00 000000# HLRZ S1,SBK+.CMIOJ ;GET INPUT JFN
2708 003573'00 306 01 0 00 000100 CAIN S1,.PRIIN ;READING FROM TERMINAL?
2709 003574'00 254 00 0 00 003605' JRST CMDER2 ;YES..JUST REPARS
2710 003575'00 260 17 0 00 003312' $CALL TSTCOL ;BACK TO FIRST COLUMN
2711 003576'00 336 00 0 00 000000# SKIPN INIFLG ;[0071]
2712 003577'00 260 17 0 00 003552* $TEXT (T%TTY,<?Error during take file, aborting TAKE command>)
2713 003601'00 332 00 0 00 000000# SKIPE INIFLG ;[0071]
2714 003602'00 260 17 0 00 003577* $TEXT (T%TTY,<?Error processing PS:NFT.INIT, aborting processing>)
2715 003604'00 254 00 0 00 003531' JRST CMDEOF ;Force exit from take
2716
2717 003605'00 370 00 0 00 000000# CMDER2: SOS REPADR ;MODIFY REPARSE ADDRESS SO REPROMPT HAPPENS
2718 003606'00 254 00 0 00 003607' JRST REPAR
2719
2720 ;PLACE TO TRANSFER IF USER EDITS PREVIOUSLY PARSED FIELDS
2721
2722 003607'00 200 17 0 00 000000# REPAR: MOVE P,CMDACS+P ;RESTORE P FOR SIZE CALCULATION
2723 003610'00 504 01 0 00 000000# HRL S1,CMDPDL ;RESTORE STACK FROM SAVED STACK
2724 003611'00 540 01 0 00 000000# HRR S1,CMDFRM ;COPY TO BOTTOM OF STACK
2725 003612'00 251 01 0 17 000000 BLT S1,(P) ;RESTORE THE STACK
2726 003613'00 205 16 0 00 000000# MOVSI 16,CMDACS ;MAKE BLT POINTER
2727 003614'00 251 16 0 00 000016 BLT 16,16 ;RESTORE REST OF AC'S
2728 003615'00 254 02 1 00 000000# JRSTF @REPADR ;BACK TO END OF PROMPT CALL
2729
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 53
NFT MAC 22-Feb-82 10:30 GENERAL SUBROUTINES
2730 SUBTTL GENERAL SUBROUTINES
2731
2732 ; ROUTINE TO CLEAR GTJFN BLOCK USED BY COMND JSYS
2733 ;
2734 ; CALL: CALL CLRGJF
2735
2736 003616'00 200 01 0 00 006237' CLRGJF: MOVE S1,[GJFBLK,,GJFBLK+1] ;SET UP TO CLEAR GTJFN BLOCK
2737 003617'00 402 00 0 00 000000# SETZM GJFBLK ;CLEAR FIRST WORD OF BLOCK
2738 003620'00 251 01 0 00 000000# BLT S1,GJFBLK+GJFLEN-1 ;CLEAR GTJFN BLOCK
2739 003621'00 200 01 0 00 006240' MOVE S1,[.NULIO,,.NULIO] ;GET NULL IO DEVICE
2740 003622'00 202 01 0 00 000000# MOVEM S1,.GJSRC+GJFBLK ;SAVE IT
2741 003623'00 324740 003550* $RETT ;RETURN TO WHENCE WE CAME ...
2742
2743 ;RELJFN QUICKY ROUTINE TO RELEASE ALL NON-OPEN JFNS
2744 ;ACCEPTS NO ARGUMENTS
2745 ;RETURNS TRUE ALWAYS
2746
2747 003624'00 200 01 0 00 006241' RELJFN::MOVX S1,CZ%NCL!.FHSLF ;RELEASE ALL NON-OPEN JFNS
2748 003625'00 104 00 0 00 000034 CLZFF
2749 003626'00 324740 003623* $RETT ;RETURN
2750
2751 ;ECHOON AND ECHOOF - ROUTINES TO TURN ECHOING ON AND OFF
2752 ;ACCEPTS NO ARGUMENTS
2753 ;RETURNS TRUE ALWAYS
2754
2755 003627'00 334 03 0 00 006242' ECHOON: SKIPA T1,[TXO S2,TT%ECO] ;GET INSTRUCTION
2756 003630'00 200 03 0 00 006243' ECHOOF: MOVE T1,[TXZ S2,TT%ECO] ;OR OTHER ONE
2757 003631'00 201 01 0 00 000100 MOVEI S1,.PRIIN ;PRIMARY INPUT
2758 003632'00 104 00 0 00 000107 RFMOD ;READ STATUS OF TERMINAL
2759 003633'00 256 00 0 00 000003 XCT T1 ;TURN ON OR OFF ECHO BIT
2760 003634'00 104 00 0 00 000110 SFMOD ;SET TERMINAL TO NEW STATUS
2761 003635'00 324740 003626* $RETT ;RETURN
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 54
NFT MAC 22-Feb-82 10:30 NODGET Routine to build node recognition table
2762 SUBTTL NODGET Routine to build node recognition table
2763
2764 003636'00 260 17 0 00 002733* NODGET: $SAVE <P1,P2> ;PRESERVE SOME AC'S
2765 003637'00 201 01 0 00 000002 MOVEI S1,2 ;[0073]
2766 003640'00 260 17 0 00 000000* $CALL M%AQNP ;[0073]GET 2 PAGES
2767 003641'00 242 01 0 00 000011 LSH S1,11 ;[0073]
2768 003642'00 200 04 0 00 000001 MOVE T2,S1 ;[0073]SAVE ADDRESS OF PAGE
2769 003643'00 332 00 0 00 000000# SKIPE NODTBL ;FIRST TIME HERE?
2770 003644'00 254 00 0 00 003666' JRST NODGE1 ;NO..SKIP CREATION STUFF
2771 003645'00 402 00 0 04 000000 SETZM 0(T2) ;[0073]
2772 003646'00 505 01 0 04 000000 HRLI S1,0(T2) ;[0073]CLEAR NODE DATA BASE
2773 003647'00 541 01 0 04 000001 HRRI S1,1(T2) ;[0073]
2774 003650'00 251 01 0 04 001777 BLT S1,^D1023(T2) ;[0073]
2775 003651'00 260 17 0 00 000000* $CALL L%CLST ;YES..CREATE THE NODE LIST
2776 003652'00 202 01 0 00 000000# MOVEM S1,NODLST ;SAVE THE INDEX
2777 003653'00 201 01 0 00 000001 MOVEI S1,.NDGLN ;GET LOCAL HOST NAME
2778 003654'00 201 02 0 04 000000 MOVEI S2,0(T2) ;[0073]POINT TO ARG BLOCK
2779 003655'00 561 03 0 00 000000# HRROI T1,DEFNOD
2780 003656'00 202 03 0 02 000000 MOVEM T1,.NDNOD(S2) ;STORE POINTER IN BLOCK
2781 003657'00 104 00 0 00 000567 NODE
2782 ERJMP [MOVEI S1,2 ;[0073]
2783 MOVE S2,T2 ;[0073]
2784 LSH S2,-11 ;[0073]
2785 $CALL M%RLNP ;[0073]
2786 003660'00 320 16 0 00 006244' $RETF]
2787 003661'00 561 01 0 00 000000# HRROI S1,DEFNOD ;Point to the name
2788 003662'00 261 17 0 00 000004 PUSH P,T2 ;[0073]
2789 003663'00 260 17 0 00 003731' $CALL NODADD ;Add local node to table
2790 003664'00 262 17 0 00 000004 POP P,T2 ;[0073]
2791 003665'00 202 02 0 00 000000# MOVEM S2,LOCNOD ;SAVE THE ENTRY ADDRESS
2792
2793 003666'00 200 02 0 00 000000# NODGE1: MOVE S2,NODTBL ;[0072]NODE TABLE
2794 003667'00 554 01 0 02 000000 HLRZ S1,0(S2) ;[0072]COUNT OF ENTRIES
2795 003670'00 322 01 0 00 003701' JUMPE S1,NODGE3 ;[0072]NONE THERE?
2796 003671'00 350 00 0 00 000002 NODGE2: AOS S2 ;[0072]POINT AT NEXT ENTRY
2797 003672'00 554 03 0 02 000000 HLRZ T1,0(S2) ;[0072]POINT TO ENTRY
2798 003673'00 261 17 0 00 000004 PUSH P,T2 ;[0072]
2799 003674'00 201 04 0 00 000001 MOVEI T2,.NDSOF ;[0072]GET OFFLINE STATUS
2800 003675'00 202 04 0 03 000002 MOVEM T2,ND$STA(T1) ;[0072]SET IT OFFLINE
2801 003676'00 262 17 0 00 000004 POP P,T2 ;[0072]
2802 003677'00 372 00 0 00 000001 SOSE S1 ;[0072] ANY MORE?
2803 003700'00 254 00 0 00 003671' JRST NODGE2 ;[0072] YES, KEEP GOING
2804 003701'00 201 01 0 00 001777 NODGE3: MOVEI S1,^D1023 ;[0073]GET ARGBLK LENGTH
2805 003702'00 202 01 0 04 000000 MOVEM S1,0(T2) ;[0073]SAVE FOR NODE JSYS
2806 003703'00 201 01 0 00 000010 MOVEI S1,.NDGNT ;GET THE FUNCTION
2807 003704'00 201 02 0 04 000000 MOVEI S2,0(T2) ;[0073]AND ADDR OF ARG BLOCK
2808 003705'00 104 00 0 00 000567 NODE ;READ THE NAMES
2809 ERJMP [MOVEI S1,2 ;[0073]
2810 MOVE S2,T2 ;[0073]
2811 LSH S2,-11 ;[0073]
2812 $CALL M%RLNP ;[0073]
2813 003706'00 320 16 0 00 006244' $RETF]
2814 003707'00 510 07 0 04 000000 HLLZ P1,.NDNND(T2) ;[0073]GET COUNT OF NODES
2815 003710'00 210 07 0 00 000007 MOVN P1,P1 ;NEGATE IT
2816 003711'00 541 07 0 04 000002 HRRI P1,.NDBK1(T2) ;[0073]GET ADDRESS OF FIRST BLOCK
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 54-1
NFT MAC 22-Feb-82 10:30 NODGET Routine to build node recognition table
2817 003712'00 200 10 0 07 000000 NODGE4: MOVE P2,(P1) ;GET CURRENT BLOCK ADDRESS IN P2
2818 003713'00 200 01 0 00 000000# MOVE S1,NODTBL ;POINT TO NODE TABLE
2819 003714'00 200 02 0 10 000000 MOVE S2,.NDNAM(P2) ;GET POINTER TO NAME STRING
2820 003715'00 104 00 0 00 000537 TBLUK ;FIND THE NODE
2821 003716'00 603 02 0 00 600000 TXNE S2,TL%NOM+TL%AMB ;AMBIGUOUS OR NO MATCH?
2822 JRST [MOVE S1,.NDNAM(P2) ;YES..ADD IT TO THE TABLE
2823 PUSH P,T2 ;[0073]
2824 $CALL NODADD
2825 POP P,T2 ;[0073]
2826 003717'00 254 00 0 00 006251' JRST .+1] ;FINISH ALL THE REST
2827 003720'00 200 01 0 01 000000 MOVE S1,(S1) ;YES -- GET NODE INFO ADDRESS
2828 003721'00 200 02 0 10 000001 MOVE S2,.NDSTA(P2) ;Get on or off-line status
2829 003722'00 202 02 0 01 000002 MOVEM S2,ND$STA(S1) ;Store it
2830 003723'00 253 07 0 00 003712' AOBJN P1,NODGE4 ;DO ALL NODES
2831 003724'00 201 01 0 00 000002 MOVEI S1,2 ;[0073]
2832 003725'00 200 02 0 00 000004 MOVE S2,T2 ;[0073]
2833 003726'00 242 02 0 00 777767 LSH S2,-11 ;[0073]
2834 003727'00 260 17 0 00 000000* $CALL M%RLNP ;[0073]
2835 003730'00 324740 003635* $RETT ;RETURN
2836
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 55
NFT MAC 22-Feb-82 10:30 NODADD Routine to add an entry to node table
2837 SUBTTL NODADD Routine to add an entry to node table
2838
2839 ;ACCEPTS S1/ pointer to node name string to be added
2840
2841 ;RETURNS S1/ address of table entry
2842 ; S2/ address of node data
2843
2844 003731'00 260 17 0 00 002371* NODADD: $SAVE <P1> ;REMEMBER CALLING ARG
2845 003732'00 200 07 0 00 000001 MOVE P1,S1
2846 003733'00 200 01 0 00 000000# MOVE S1,NODLST ;GET NODE LIST INDEX
2847 003734'00 201 02 0 00 000104 MOVEI S2,ND$LEN ;GET REQUIRED SIZE FOR ENTRY
2848 003735'00 260 17 0 00 000000* $CALL L%CENT ;CREATE AN ENTRY
2849 003736'00 200 06 0 00 000002 MOVE T4,S2 ;REMEMBER ENTRY ADDRESS
2850 003737'00 561 01 0 02 000000 HRROI S1,ND$NAM(S2) ;POINT TO STORAGE FOR STRING
2851 003740'00 200 02 0 00 000007 MOVE S2,P1 ;GET POINTER TO NAME
2852 003741'00 260 17 0 00 003377' $CALL STOSTR ;COPY THE NAME
2853 003742'00 260 17 0 00 004002' $CALL NODEXP ;CHECK TABLE SIZE
2854 003743'00 200 02 0 00 000006 MOVE S2,T4 ;GET ENTRY ADDRESS
2855 003744'00 505 02 0 02 000000 HRLI S2,ND$NAM(S2) ;POINT TO NAME STRING
2856 003745'00 200 01 0 00 000000# MOVE S1,NODTBL
2857 003746'00 104 00 0 00 000536 TBADD ;ADD IT TO TABLE
2858 003747'00 200 07 0 00 000001 MOVE P1,S1 ;REMEMBER WHERE IT WENT
2859 003750'00 336 05 0 00 000000# SKIPN T3,LOCNOD ;Is this the local node?
2860 003751'00 254 00 0 00 003762' JRST NODAD1 ;Yes..get local defaults
2861 003752'00 476 00 0 06 000002 SETOM ND$STA(T4) ;No..Mark temporary status
2862 003753'00 561 01 0 06 000024 HRROI S1,ND$USR(T4) ;Copy local default USER
2863 003754'00 561 02 0 05 000024 HRROI S2,ND$USR(T3) ;...
2864 003755'00 260 17 0 00 003377' $CALL STOSTR
2865 003756'00 561 01 0 06 000044 HRROI S1,ND$ACT(T4) ;Copy local default ACCOUNT
2866 003757'00 561 02 0 05 000044 HRROI S2,ND$ACT(T3) ;...
2867 003760'00 260 17 0 00 003377' $CALL STOSTR
2868 003761'00 254 00 0 00 003777' JRST NODAD2 ;Return Node entry address
2869 003762'00 200 01 0 00 006256' NODAD1: MOVE S1,[[ASCIZ/TOPS20/],,.OSTP20] ;Get local defaults
2870 003763'00 202 01 0 06 000003 MOVEM S1,ND$OST(T4) ;Set TOPS10 ostype
2871 003764'00 104 00 0 00 000013 GJINF ;Get user number
2872 003765'00 200 02 0 00 000001 MOVE S2,S1 ;Store user name
2873 003766'00 561 01 0 06 000024 HRROI S1,ND$USR(T4) ;...
2874 003767'00 104 00 0 00 000041 DIRST ;...
2875 003770'00 320 16 0 00 003772' ERJMP .+2
2876 003771'00 350 00 0 06 000024 AOS ND$USR(T4) ;Set user valid
2877 003772'00 474 01 0 00 000000 SETO S1, ;Get account string
2878 003773'00 561 02 0 06 000044 HRROI S2,ND$ACT(T4) ;Store account string
2879 003774'00 104 00 0 00 000546 GACCT ;...
2880 003775'00 320 16 0 00 003777' ERJMP .+2
2881 003776'00 350 00 0 06 000044 AOS ND$ACT(T4) ;Set account valid
2882 003777'00 200 01 0 00 000007 NODAD2: MOVE S1,P1 ;Return Node entry address
2883 004000'00 550 02 0 01 000000 HRRZ S2,0(S1) ;Return Node data address
2884 004001'00 324740 003730* $RETT
2885
2886 004002'00 336 01 0 00 000000# NODEXP: SKIPN S1,NODTBL ;Have a node table yet?
2887 004003'00 254 00 0 00 004010' JRST NODEX1 ;No..go create one
2888 004004'00 550 01 1 00 000000# HRRZ S1,@NODTBL ;Get maximum entry count
2889 004005'00 554 02 1 00 000000# HLRZ S2,@NODTBL ;Get actual entry count
2890 004006'00 312 01 0 00 000002 CAME S1,S2 ;Is table full?
2891 004007'00 324740 004001* $RETT ;No..just return
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 55-1
NFT MAC 22-Feb-82 10:30 NODADD Routine to add an entry to node table
2892 004010'00 271 01 0 00 000201 NODEX1: ADDI S1,MAXNOD+1 ;Yes..get more room
2893 004011'00 260 17 0 00 000000* $CALL M%GMEM
2894 004012'00 200 00 0 00 000000# MOVE TF,NODTBL ;Save source address
2895 004013'00 275 01 0 00 000001 SUBI S1,1 ;Say MAXNOD entries allowed
2896 004014'00 202 01 0 02 000000 MOVEM S1,0(S2) ;Store in table header
2897 004015'00 202 02 0 00 000000# MOVEM S2,NODTBL ;Save new pointer
2898 004016'00 322 00 0 00 004031' JUMPF TF,NODEX2 ;Return if no previous table
2899 004017'00 554 01 1 00 000000 HLRZ S1,@TF ;Get current entry count
2900 004020'00 506 01 1 00 000000# HRLM S1,@NODTBL ;Save in new table
2901 004021'00 504 02 0 00 000000 HRL S2,TF ;Get source,,dest
2902 004022'00 252 02 0 00 004023' AOBJP S2,.+1 ;Point past header
2903 004023'00 270 01 0 00 000002 ADD S1,S2 ;Get final destination address
2904 004024'00 251 02 0 01 000000 BLT S2,0(S1) ;Copy the table
2905 004025'00 550 01 1 00 000000 HRRZ S1,@TF ;Get old table size
2906 004026'00 271 01 0 00 000001 ADDI S1,1 ;Plus header word
2907 004027'00 200 02 0 00 000000 MOVE S2,TF ;Get old table address
2908 004030'00 260 17 0 00 000000* $CALL M%RMEM ;Release the memory
2909 004031'00 324740 004007* NODEX2: $RETT
2910
2911
2912
2913
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 56
NFT MAC 22-Feb-82 10:30 RELNOD Routine to delete temporary node info
2914 SUBTTL RELNOD Routine to delete temporary node info
2915
2916 ;Accepts No arguments
2917
2918 004032'00 200 01 0 00 000000# RELNOD: MOVE S1,NODLST ;Position to first list entry
2919 004033'00 260 17 0 00 001202* $CALL L%FIRST
2920 004034'00 326 00 0 00 004041' JUMPT RELNO2
2921 004035'00 324740 004031* $RETT
2922
2923 004036'00 200 01 0 00 000000# RELNO1: MOVE S1,NODLST ;Position to next list entry
2924 004037'00 260 17 0 00 001207* $CALL L%NEXT
2925 004040'00 322 00 0 00 004035* JUMPF .RETT ;Return on last entry
2926 004041'00 335 00 0 02 000002 RELNO2: SKIPGE ND$STA(S2) ;Node data termporary?
2927 004042'00 260 17 0 00 004044' $CALL DELNOD ;Yes..delete the entry
2928 004043'00 254 00 0 00 004036' JRST RELNO1 ;Check all list entries
2929
2930
2931 SUBTTL DELNOD Routine to delete node entry
2932
2933 ;Accepts S2/ Address of node data
2934
2935 004044'00 200 01 0 00 000000# DELNOD: MOVE S1,NODTBL ;Get table entry address
2936 004045'00 561 02 0 02 000000 HRROI S2,ND$NAM(S2)
2937 004046'00 104 00 0 00 000537 TBLUK
2938 004047'00 607 02 0 00 040000 TXNN S2,TL%EXM ;Find it?
2939 004050'00 324740 003537* $RETF ;No..return failure
2940 004051'00 200 02 0 00 000001 MOVE S2,S1 ;Delete table entry
2941 004052'00 200 01 0 00 000000# MOVE S1,NODTBL
2942 004053'00 104 00 0 00 000535 TBDEL
2943 004054'00 200 01 0 00 000000# MOVE S1,NODLST ;Delete list entry
2944 004055'00 260 17 0 00 000000* $CALL L%DENT
2945 004056'00 324740 004040* $RETT
2946
2947 SUBTTL NODOFF Put node in off-line status
2948
2949 ;Accepts S2/ Address of node data
2950
2951 004057'00 201 01 0 00 000001 NODOFF: MOVEI S1,.NDSOF ;Get off-line status
2952 004060'00 202 01 0 02 000002 MOVEM S1,ND$STA(S2)
2953 004061'00 324740 004056* $RETT
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 57
NFT MAC 22-Feb-82 10:30 PSIINI Software interrupt system initialization
2954 SUBTTL PSIINI Software interrupt system initialization
2955
2956 004062'00 201 01 0 00 400000 PSIINI: MOVEI S1,.FHSLF ;Initialize for me
2957 004063'00 200 02 0 00 006257' MOVE S2,[LEVTAB,,CHNTAB] ;Point to tables
2958 004064'00 104 00 0 00 000125 SIR
2959 004065'00 200 01 0 00 005752' MOVE S1,[.TICCA,,4] ;[0075]
2960 004066'00 104 00 0 00 000137 ATI ;[0075]
2961 004067'00 201 01 0 00 400000 MOVEI S1,.FHSLF ;[0075]
2962 004070'00 205 02 0 00 760000 MOVX S2,1B<.ICCDN>!1B<.ICDAV>!1B<.ICIMA>!1B<.ICCNO>!1B4 ;[0075]
2963 004071'00 104 00 0 00 000131 AIC ;Turn on selected channels
2964 004072'00 104 00 0 00 000126 EIR ;Enable requests
2965 004073'00 324740 004061* $RETT
2966
2967 004074'00 476 00 0 00 000000# CNOENA: SETOM CNOFLG ;We are processing control O
2968 004075'00 200 01 0 00 006260' MOVE S1,[.CHCNO,,.ICCNO] ;Get control O channel
2969 004076'00 104 00 0 00 000137 ATI ;Attatch it
2970 004077'00 324740 004073* $RETT
2971
2972 004100'00 402 00 0 00 000000# CNODIS: SETZM CNOFLG ;No control O processing
2973 004101'00 201 01 0 00 000017 MOVEI S1,.CHCNO ;Get control O character
2974 004102'00 104 00 0 00 000140 DTI ;Detatch it
2975 004103'00 550 01 0 00 000000# SUPOFF: HRRZ S1,SBK+.CMIOJ ;Clear suppress output flag
2976 004104'00 104 00 0 00 000107 RFMOD
2977 004105'00 621 02 0 00 400000 TXZ S2,TT%OSP
2978 004106'00 104 00 0 00 000110 SFMOD
2979 004107'00 324740 004077* $RETT
2980
2981 SUBTTL Interrupt service routines
2982
2983 004110'00 260 17 0 00 000000* INTCTA: $BGINT 2 ;[0075]
2984 004111'00 200 03 0 00 000000* MOVE T1,LLSTAT ;[0075]
2985 004112'00 607 03 0 00 400000 TXNN T1,MO%CON ;[0075]LINK CONNECTED?
2986 JRST [$TEXT (,<[No logical link established]>) ;[0075]
2987 004113'00 254 00 0 00 006273' $DEBRK] ;[0075]
2988 004114'00 260 17 0 00 003602* $TEXT (,<[^D/MESIN/ messages received, ^D/MESOUT/ messages sent^A>)
2989 004116'00 550 01 0 00 000000* HRRZ S1,LOCJFN ;[0075]
2990 004117'00 104 00 0 00 000024 GTSTS ;[0075]
2991 004120'00 603 02 0 00 400000 TXNE S2,GS%OPN ;[0075]FILE OPEN?
2992 004121'00 336 00 0 00 000000* SKIPN PAGFLG ;[0075]DISK FILE USING PMAPS
2993 JRST [$TEXT (,<]>) ;[0075]NO
2994 004122'00 254 00 0 00 006327' $DEBRK] ;[0075]
2995 004123'00 260 17 0 00 004114* $TEXT (,<, local file open at page ^D/PAGNUM/]>) ;[0075]
2996 004125'00 263 17 0 00 000000 $DEBRK
2997
2998 004126'00 260 17 0 00 000000* INTCNO: $BGINT 1
2999 004127'00 336 00 0 00 000000# SKIPT CNOFLG ;Processing control-O?
3000 004130'00 254 00 0 00 004144' JRST INTCN1 ;No..just debrk
3001 004131'00 550 01 0 00 000000# HRRZ S1,SBK+.CMIOJ ;Get output JFN
3002 004132'00 104 00 0 00 000107 RFMOD
3003 004133'00 643 02 0 00 400000 TXCE S2,TT%OSP ;Already suppressing?
3004 JRST [SFMOD ;Yes..compliment the state
3005 004134'00 254 00 0 00 006347' JRST INTCN1] ;And proceed
3006 004135'00 104 00 0 00 000101 CFOBF ;No..clear output buffer
3007 004136'00 260 17 0 00 004123* $TEXT (,< ^^O...>) ;Say we did it
3008 004140'00 104 00 0 00 000110 SFMOD ;Suppress output
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 57-1
NFT MAC 22-Feb-82 10:30 Interrupt service routines
3009 004141'00 201 01 0 00 000001 MOVEI S1,DAPLNK ;Get link index
3010 004142'00 201 02 0 00 000004 MOVEI S2,.DIACP ;Force access complete
3011 004143'00 260 17 0 00 000000* $CALL D$INTR
3012 004144'00 263 17 0 00 000000 INTCN1: $DEBRK
3013
3014 004145'00 260 17 0 00 004126* INTCDN: $BGINT 1
3015 004146'00 201 01 0 00 000001 MOVEI S1,DAPLNK ;Get link index
3016 004147'00 201 02 0 00 000001 MOVEI S2,.DICDN ;Get interrupt cause
3017 004150'00 260 17 0 00 004143* $CALL D$INTR
3018 004151'00 263 17 0 00 000000 $DEBRK
3019
3020 004152'00 260 17 0 00 004145* INTDAV: $BGINT 1
3021 004153'00 201 01 0 00 000001 MOVEI S1,DAPLNK ;Get link index
3022 004154'00 201 02 0 00 000003 MOVEI S2,.DIDAV ;Get interrupt cause
3023 004155'00 260 17 0 00 004150* $CALL D$INTR
3024 004156'00 263 17 0 00 000000 $DEBRK
3025
3026 004157'00 260 17 0 00 004152* INTINA: $BGINT 1
3027 004160'00 201 01 0 00 000001 MOVEI S1,DAPLNK ;Get the link index
3028 004161'00 201 02 0 00 000002 MOVEI S2,.DIINA ;Get interrupt cause
3029 004162'00 260 17 0 00 004155* $CALL D$INTR
3030 004163'00 263 17 0 00 000000 $DEBRK
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 58
NFT MAC 22-Feb-82 10:30 Literals
3031 SUBTTL Literals
3032
3033
3034 004164'00 040 075 076 040 000 FROMTO: ASCIZ / => / ;LITERAL TO SHOW FILE FROM, TO
3035 004165'00 116 106 124 076 000 PRMPT: ASCIZ /NFT>/ ;PROMPT FOR COMMANDS
3036
3037
3038 LSTOF. ;Expand the literals
3039 LSTON.
3040
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 59
NFT MAC 22-Feb-82 10:30 Interrupt tables
3041 SUBTTL Interrupt tables
3042
3043 .PSECT DATA ;Load into impure storage
3044
3045 000000'01 000000 001035' LEVTAB: LEV1PC
3046 000001'01 000000 001036' LEV2PC ;[0075]
3047 000002'01 000000 000000 EXP 0
3048
3049 ;INTERRUPT CHANNELS
3050
3051 RADIX 5+5
3052
3053 000003'01 CHNTAB:
3054 000003'01 000001 000000# ICHESC: 1,,INTCNO ;Control-O channel
3055 000004'01 000001 000000# ICHCDN: 1,,INTCDN ;Connect/Disconnect
3056 000005'01 000001 000000# ICHDAV: 1,,INTDAV ;Data available
3057 000006'01 000001 000000# ICHINA: 1,,INTINA ;Interrupt message
3058 000007'01 000002 000000# ICH004: 2,,INTCTA ;[0075]^A
3059 000010'01 ICH005: BLOCK 1 ;ASSIGNABLE CHANNEL 5
3060 000011'01 ICHAOV: BLOCK 1 ;ARITHMETIC OVERFLOW
3061 000012'01 ICHFOV: BLOCK 1 ;FLOATING OVERFLOW
3062 000013'01 ICH008: BLOCK 1 ;RESERVED
3063 000014'01 ICHPOV: BLOCK 1 ;PDL OVERFLOW
3064 000015'01 ICHEOF: BLOCK 1 ;END OF FILE
3065 000016'01 ICHDAE: BLOCK 1 ;DATA ERROR
3066 000017'01 ICHQTA: BLOCK 1 ;QUOTA EXCEEDED
3067 000020'01 ICH013: BLOCK 1 ;RESERVED
3068 000021'01 ICHTOD: BLOCK 1 ;TIME OF DAY (RESERVED)
3069 000022'01 ICHILI: BLOCK 1 ;ILLEG INSTRUCTION
3070 000023'01 ICHIRD: BLOCK 1 ;ILLEGAL READ
3071 000024'01 ICHIWR: BLOCK 1 ;ILLEGAL WRITE
3072 000025'01 ICHIEX: BLOCK 1 ;ILLEGAL EXECUTE (RESERVED)
3073 000026'01 ICHIFT: BLOCK 1 ;INFERIOR FORK TERMINATION
3074 000027'01 ICHMSE: BLOCK 1 ;MACHINE SIZE EXCEEDED
3075 000030'01 ICHTRU: BLOCK 1 ;TRAP TO USER (RESERVED)
3076 000031'01 ICHNXP: BLOCK 1 ;NONEXISTENT PAGE REFERENCED
3077 000032'01 ICH023: BLOCK 1 ;ASSIGNABLE CHANNEL 23
3078 000033'01 ICH024: BLOCK 1 ;ASSIGNABLE CHANNEL 24
3079 000034'01 ICH025: BLOCK 1 ;ASSIGNABLE CHANNEL 25
3080 000035'01 ICH026: BLOCK 1 ;ASSIGNABLE CHANNEL 26
3081 000036'01 ICH027: BLOCK 1 ;ASSIGNABLE CHANNEL 27
3082 000037'01 ICH028: BLOCK 1 ;ASSIGNABLE CHANNEL 28
3083 000040'01 ICH029: BLOCK 1 ;ASSIGNABLE CHANNEL 29
3084 000041'01 ICH030: BLOCK 1 ;ASSIGNABLE CHANNEL 30
3085 000042'01 ICH031: BLOCK 1 ;ASSIGNABLE CHANNEL 31
3086 000043'01 ICH032: BLOCK 1 ;ASSIGNABLE CHANNEL 32
3087 000044'01 ICH033: BLOCK 1 ;ASSIGNABLE CHANNEL 33
3088 000045'01 ICH034: BLOCK 1 ;ASSIGNABLE CHANNEL 34
3089 000046'01 ICH035: BLOCK 1 ;ASSIGNABLE CHANNEL 35
3090
3091 RADIX 8
3092
3093 .ENDPS DATA
3094
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 60
NFT MAC 22-Feb-82 10:30 Impure storage
3095 SUBTTL Impure storage
3096
3097
3098 .PSECT DATA
3099
3100 DEFINE $DATA (NAME,SIZE<1>) <
3101 NAME: BLOCK SIZE
3102 ..LOC==.>
3103
3104 ;Command parsing storage
3105
3106
3107 000141 CMDBLN==:<^D80*6>/5+1 ;ROOM FOR SIX LINE COMMAND
3108 000141 ATMBLN==:CMDBLN
3109
3110
3111 000047'01 DATORG: ;Start of impure storage to be cleared
3112
3113 000063' $DATA CONBLK,14 ;[70]
3114 000224' $DATA CMDBUF,CMDBLN
3115 000244' $DATA CMDACS,20 ;SAVED AC'S FROM BEGINNING OF COMMAND LINE
3116 000245' $DATA EOFADR,1 ;EOF DISPATCH ADDRESS
3117 000406' $DATA ATMBUF,ATMBLN ;HOLDS LAST PARSED FIELD
3118 000426' $DATA SBK,20 ;COMND JSYS STATE BLOCK
3119 000427' $DATA REPADR,1 ;Reparse address for comnd
3120 000430' $DATA CMDFRM,1 ;Frame pointer for parse routines
3121 001030' $DATA CMDPDL,PDLEN ;ROOM TO SAVE PDL
3122
3123 001035' $DATA CMDFDB,5 ;Temporary FDB used by PARFIL
3124
3125 ;Interrupt PC locations
3126
3127 001035'01 $GDATA LEV1PC,1 ;RETURN PC FOR INTERRUPT LEVEL 1
3128 001036'01 $GDATA LEV2PC,1 ;[0075]RETURN PC FOR LEV 2 INT
3129
3130 001040' $DATA LOCNOD,1 ;LOCAL NODE TABLE ENTRY
3131 001042' $DATA DEFNOD,2 ;Default node name
3132
3133 001062' $DATA OBJNAM,NAMSIZ ;Object name text
3134
3135 001062' $DATA FNCBEG,0 ;Start of parsing area
3136
3137 001074' $DATA FNCBLK,.DFSIZ ;Dap function block
3138
3139 001075' $DATA SRCNOD,1 ;SOURCE NODE TABLE ENTRY
3140 001077' $DATA SRCNAM,2 ;Source node name
3141 001100' $DATA SRCJFN,1 ;SOURCE FILE JFN
3142 001101' $DATA SRCPFL,1 ;NON TOPS-20 FILE SPEC FLAG
3143 001141' $DATA SRCFIL,FILSIZ ;SOURCE FILE NAME STRING
3144 001142' $DATA SRCSWS,1 ;SOURCE FILE SWITCHES
3145
3146 001144' $DATA DSTFLG,2 ;DESTINATION BLOCK POINTER
3147 001145' $DATA DSTNOD,1 ;DESTINATION NODE TABLE ENTRY
3148 001147' $DATA DSTNAM,2 ;Destination node name
3149 001150' $DATA DSTJFN,1 ;DESTINATION FILE JFN
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 60-1
NFT MAC 22-Feb-82 10:30 Impure storage
3150 001151' $DATA DSTPFL,1 ;NON TOPS-20 FILE SPEC FLAG
3151 001211' $DATA DSTFIL,FILSIZ ;DESTINATION FILE NAME STRING
3152 001251' $DATA TMPFIL,FILSIZ ;TEMPORARY SAVE FOR DESTINATION FILE
3153 001252' $DATA DSTSWS,1 ;DESTINATION FILE SWITCHES
3154
3155 001253' $DATA REMNOD,1 ;Remote node data address
3156 001254' $DATA REMJFN,1 ;Remote JFN from Name message
3157
3158 001261' $DATA NODHLP,5 ;Node help string
3159
3160 001261' $DATA DEFBEG,0 ;* Order must agree with mode *
3161 001301' $DATA REMUSR,NAMSIZ ;Remote user name
3162 001321' $DATA REMACT,NAMSIZ ;Remote account string
3163 001341' $DATA REMPSW,NAMSIZ ;Remote password string
3164 000060 DEFSIZ==.-DEFBEG ;Size of default save area
3165
3166 001361' $DATA REMOPD,NAMSIZ ;Remote optional data
3167 001362' $DATA FILATT,1 ;File attribute switches
3168
3169 001402' $DATA GJFBLK,GJFSIZ ;GTJFN BLOCK FOR COMND JSYS
3170
3171 001422' $DATA DEFDEV,NAMSIZ ;DEFAULT OUTPUT DEVICE STORAGE
3172 001442' $DATA DEFDIR,NAMSIZ ;DEFAULT DIRECTORY STRING
3173 001462' $DATA DEFNAM,NAMSIZ ;DEFAULT FILENAME STORAGE
3174 001502' $DATA DEFEXT,NAMSIZ ;DEFAULT EXTENSION STORAGE
3175 001522' $DATA DEFVER,NAMSIZ ;DEFAULT VERSION STORAGE
3176 000140 GJFLEN==.-GJFBLK ;LENGTH TO CLEAR FOR CLRGJF
3177
3178 001523' $DATA CNOFLG,1 ;-1 if Control-O being trapped
3179 001524' $DATA NAMFLG,1 ;-1 If file name displayed
3180 001525' $DATA SNDFLG,1 ;-1 if sending files to remote node
3181 001535' $DATA VOLNAM,8 ;Pointer to current volume name
3182 001545' $DATA DIRNAM,8 ;Pointer to current direct name
3183 001555' $DATA FILNAM,8 ;Pointer to current file name
3184 001601' $DATA FILSPC,^D20 ;Pointer to current filespec
3185 000517 FNCSIZ==.-FNCBEG ;SIZE OF COPY AREA
3186
3187 001651' $DATA DIRTXT,^D40 ;Storage for NAME;PROTECTION
3188 001675' $DATA DIRTX1,^D20 ;Storage for n nnnn(n)
3189
3190 002275' $DATA PDL,PDLEN ;PUSH DOWN POINTER
3191 002276' $DATA CMDJFN,1 ;INPUT JFN FOR TAKE COMMAND
3192 002277' $DATA LOGJFN,1 ;OUTPUT JFN FOR TAKE COMMAND
3193 002300' $DATA LOGPOS,1 ;Current logfile (or terminal) position
3194 002301' $DATA INIFLG,1 ;[0071]NON-ZERO IF READING NFT.INIT
3195 002302' $DATA TAKFLG,1 ;NON-ZERO IF PROCESSING INDIRECT FILE
3196 002303' $DATA DSPFLG,1 ;NON-ZERO IF DISPLAYING TAKE
3197 002304' $DATA PASFLG,1 ;[76]-1 IF COMMAND FILE HAS WORLD READ ACCESS
3198 002305' $DATA NOPRMT,1 ;NON-ZERO IF NULL PROMPT WANTED
3199 002306' $DATA DPRMPT,1 ;PROMPT POINTER
3200
3201
3202 002323' $DATA DAPOB,.DOSIZ ;Dap Open block
3203
3204 ;Node data base storage
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page 60-2
NFT MAC 22-Feb-82 10:30 Impure storage
3205
3206 002324' $DATA NODLST,1 ;NODE LIST INDEX
3207 002325' $DATA NODTBL,1 ;Address of node recognition table
3208 002325' $DATA NFTEND,0 ;End of impure storage
3209
3210 .ENDPS DATA ;Back to normal storage
3211
3212 000003 000000' END <3,,ENTVEC>
NO ERRORS DETECTED
PROGRAM BREAK IS 006451
PSECT 1 BREAK IS 002325 FOR DATA
CPU TIME USED 01:37.573
127P CORE USED
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page S-1
NFT MAC 22-Feb-82 10:30 SYMBOL TABLE
ACT001 001744' COPY61 000261' DIRBRK 003041' FROMTO 004164'
ACTFDB 001740' COPY62 000263' DIRRTN 000655' FSTRT 001045'
AF$CRE 000002 spd COPY63 000271' DIRST 104000 000041 int FTJSYS 777777 777777 sin
AF$DIR 000006 spd COPY64 000301' DO%LNK 000077 spd FTUUOS 000000 sin
AF$ERA 000004 spd COPY70 000316' DO%PSI 200000 000000 spd FWMASK 777777 777777 spd
AF$EXE 000010 spd COPY72 000334' DO%WCN 100000 000000 spd G1%SLN 004000 000000 sin
AF$OPN 000001 spd COVNAM 001435' DOCMD 000047' GACCT 104000 000546 int
AF$PRN 000102 spd CPYACK 000403' DOHDR 000672' GETUS1 002050'
AF$TYP 000101 spd CPYACP 000420' DPB 003201' GETUS2 002102'
AIC 104000 000131 int CPYFL1 003065' DPFNC 777000 000000 spd GETUS3 002125'
ATI 104000 000137 int CPYFL2 003075' DPLFA 777777 777777 spd GETUS4 002154'
BADNOD 001421' CPYFLD 003055' DPLFS 777777 777777 spd GETUSR 002033'
BITS 003101' CPYNA1 000461' DPLNK 000077 spd GJ%DEV 400000 000000 sin
BOUT 104000 000051 int CPYNA2 000465' DPRFA 777777 777777 spd GJ%DIR 100000 000000 sin
CFIELD 003542' CPYRCV 000433' DPRFS 777777 777777 spd GJ%EXT 020000 000000 sin
CFOBF 104000 000101 int CPYRTN 000370' DPROMP 003473' GJ%FOU 400000 000000 sin
CHKPOS 003360' CPYS1 003154' DPRTN 777777 777777 spd GJ%IFG 000100 000000 sin
CHKPTR 003207' CPYSND 000424' DT$ASC 000001 spd GJ%MSG 040000 000000 sin
CHKW1 002674' CPYSTR 003145' DT$IMA 000002 spd GJ%NAM 040000 000000 sin
CHKW2 002702' CZ%NCL 040000 000000 sin DTI 104000 000140 int GJ%OFG 000040 000000 sin
CHKW3 002712' D$CLOS 003310' ext DV%TYP 000777 000000 sin GJ%OLD 100000 000000 sin
CHKW4 002720' D$FUNC 003302' ext DVCHR 104000 000117 int GJ%SHT 000001 000000 sin
CHKWLD 002671' D$INIT 000563' ext ECHOOF 003630' GJ%VER 010000 000000 sin
CLOSF 104000 000022 int D$INTR 004162' ext ECHOON 003627' GJFSIZ 000020 sin
CLRGJF 003616' D$OPEN 003260' ext EIR 104000 000126 int GJINF 104000 000013 int
CLZFF 104000 000034 int D$STAT 003267' ext ENTVEC 000000' GLXVRS 000100 001124 spd
CM%BRK 000020 000000 sin DAPCLS 003306' EREOF$ 000001 spd GNJFN 104000 000017 int
CM%DPP 000002 000000 sin DAPEDT 000000 ext ERJMP 320700 000000 int GS%EOF 001000 000000 sin
CM%FNC 777000 000000 sin DAPER1 003277' ERSTR 104000 000011 int GS%OPN 400000 000000 sin
CM%FW 002000 000000 sin DAPERR 003266' ESOUT 104000 000313 int GTDIR 104000 000241 int
CM%HPP 000004 000000 sin DAPFNC 003300' F%IBYT 001101' ext GTFDB 104000 000063 int
CM%INV 000001 sin DAPIB 000011' F%IOPN 001075' ext GTJFN 104000 000020 int
CM%NOP 200000 000000 sin DAPIOB 003225' F%REL 001107' ext GTSTS 104000 000024 int
CM%PO 000010 000000 sin DAPLNK 000001 sin FB$FIX 000001 spd HALTF 104000 000170 int
CM%SDH 000001 000000 sin DAPO10 003246' FB$MCY 000200 spd HELP1 001100'
CM%SWT 020000 000000 sin DAPO20 003251' FB$VAR 000002 spd HELP2 001106'
CMDBRK 000112' DAPOPN 003242' FB%BSZ 007700 000000 sin HLPFOB 001063'
CMDEOF 003531' DATA 000000 ext FB%PGC 777777 sin HLPUSR 002161'
CMDER1 003570' DATEND 000000 ext FB.BSZ 000077 spd I%INIT 000027' ext
CMDER2 003605' DEBUGW 000135 sin FB.LSN 000200 spd I%INT1 004157' ext
CMDERR 003556' DEFAS1 001300' FFLDT 001052' I%INT2 004110' ext
CMDIN1 003430' DEFASW 001277' FFSPEC 111110 000001 sin IB 000003'
CMDIN2 003453' DEFSWS 001302' FILDE1 002754' IB.INT 000002 spd
CMDIN3 003456' DELNOD 004044' FILDE2 002775' IB.OUT 000000 spd
CMDINI 003402' DEVBRK 003035' FILDE3 003006' IB.PRG 000005 spd
CMDSIZ 000015 spd DF%ACC 777000 000000 spd FILDE4 003016' IB.SZ 000006 spd
CMDTBL 000116' DF%DAT 776000 000000 spd FILDE5 003030' INFDE1 001203'
CN.0 001444' DF%LNK 000077 spd FILDEF 002733' INFDEF 001201'
CN.1 001455' DF%MRS 177777 spd FILFDB 001434' INFDN1 001140'
CNODIS 004100' DF%RAT 000177 400000 spd FILSIZ 000040 sin INFDN2 001150'
CNOENA 004074' DF%RFM 001600 000000 spd FILSWS 001605' INFDN3 001153'
COMND 104000 000544 int DFSSIZ 000004 spd FOB.CW 000001 spd INFDN4 001157'
COPY40 000205' DI%CNT 000077 spd FOB.FD 000000 spd INFDN5 001166'
COPY45 000215' DIRAT1 000716' FOB.SZ 000005 spd INFDN6 001170'
COPY60 000227' DIRATT 000676' FRLFDB 001777' INFDN7 001176'
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page S-2
NFT MAC 22-Feb-82 10:30 SYMBOL TABLE
INFDNT 001131' NAMBRK 003045' P%%GEN 100000 000000 spd REPAR 003607'
INFFDB 001122' NAMEXT 002502' P%%PPN 200000 000000 spd RESET 104000 000147 int
INFNO1 001217' NAMSIZ 000020 sin P1 000007 spd RESNAM 001463'
INFNOD 001211' ND$ACT 000044 P2 000010 spd RFIELD 003516'
INFSIZ 000002 spd ND$DEV 000004 P3 000011 spd RFLDE 003521'
INFTBL 001126' ND$LEN 000104 spd P4 000012 spd RFMOD 104000 000107 int
INT.LV 000003 spd ND$NAM 000000 PAGFLG 004121' ext RFPOS 104000 000111 int
INTCDN 004145' ND$OST 000003 PAGNUM 006344' ext RLJFN 104000 000023 int
INTCN1 004144' ND$PSW 000064 PARFI1 001322' RN.0 001515'
INTCNO 004126' ND$STA 000002 PARFI2 001332' RN.1 001517'
INTCTA 004110' ND$USR 000024 PARFI3 001337' RN.2 001472'
INTDAV 004152' NFFLD 000005 PARFI4 001356' RN.3 001503'
INTINA 004157' NFT 000013' PARFI5 001405' S%TBLK 001546' ext
JFNS 104000 000030 int NFTEDT 000100 spd PARFI6 001375' S1 000001 spd
JRSTF 254100 000000 NFTMIN 000000 spd PARFI9 001416' S2 000002 spd
JS%DEV 700000 000000 sin NFTVER 000002 spd PARFIL 001315' SAVNAM 001007'
JS%DIR 070000 000000 sin NFTWHO 000000 spd PARFIX 001354' SC%SUB 200000 000000 sin
JS%GEN 000070 000000 sin NIFLD 000002 spd PARNO1 001542' SEDEF1 001256'
JS%NAM 007000 000000 sin NODAD1 003762' PARNO2 001552' SEDEF2 001265'
JS%PAF 000001 sin NODAD2 003777' PARNOD 001531' SEDEFA 001244'
JS%TYP 000700 000000 sin NODADD 003731' PARSE 003521' SETFDB 001307'
JUMPF 322000 000000 spd NODE 104000 000567 int PARSER 000067' SETSIZ 000001 spd
JUMPT 326000 000000 spd NODEX1 004010' PARSW1 001567' SETTBL 001313'
K%SOUT 001112' ext NODEX2 004031' PARSW2 001574' SFMOD 104000 000110 int
KEYFDB 000105' NODEXP 004002' PARSWS 001561' SIR 104000 000125 int
L%CENT 003735' ext NODFDB 001560' PASOK 002323' SKIPF 332000 000000 spd
L%CLST 003651' ext NODGE1 003666' PDLEN 000400 spd SKIPT 336000 000000 spd
L%DENT 004055' ext NODGE2 003671' PJRST 324740 000000 SOUT 104000 000053 int
L%FIRS 004033' ext NODGE3 003701' PMRFLG 000020' ext STCMP 104000 000540 int
L%NEXT 004037' ext NODGE4 003712' PNCTAB 002475' STOATM 003376'
LHMASK 777777 000000 spd NODGET 003636' PRMPT 004165' STOSTR 003377'
LLSTAT 004111' ext NODOFF 004057' PSIINI 004062' SUPOFF 004103'
LOCJFN 004116' ext NOHELP 001111' PSOUT 104000 000076 int SWSSIZ 000005 spd
LOGCH1 003344' NOPMR 000025' PSW001 001766' SWTFDB 001603'
LOGCHR 003341' NUMBRK 003051' PSWFDB 001762' T%TEXT 006327' ext
LSTIN. 000000 spd OF%APP 020000 sin PUTERR 003330' T%TTY 000000 ext
M%AQNP 003640' ext OF%RD 200000 sin RCDIR 104000 000553 int T1 000003 spd
M%GMEM 004011' ext OPENF 104000 000021 int REE 000043' T2 000004 spd
M%RLNP 006247' ext OSTFDB 002017' RELJFN 003624' int T3 000005 spd
M%RMEM 004030' ext OSTSIZ 000007 spd RELNO1 004036' T4 000006 spd
MAXNOD 000200 sin OSTTBL 002023' RELNO2 004041' TAK010 002351'
MESIN 006313' ext OUTD.1 001035' RELNOD 004032' TAK015 002352'
MESLN 000030 spd OUTD.4 001043' REMACP 000755' TAK020 002355'
MESOUT 006316' ext OUTDEF 001025' REMF20 000622' TAK030 002356'
MO%CDN 777000 000000 sin OUTFL1 002522' REMF30 000631' TAK040 002357'
MO%CON 400000 000000 sin OUTFL2 002534' REMF40 000650' TAK050 002360'
MO%DAV 777000 sin OUTFL3 002541' REMFIL 000603' TAKE10 002211'
MO%INA 000777 000000 sin OUTFLG 002515' REMFNM 000747' TAKE20 002237'
MSKS1 003167' OUTN1 002420' REMFS1 000575' TAKE22 002243'
MSKS2 003177' OUTN2 002453' REMFSW 000574' TAKE25 002247'
MSKSIZ 003166' OUTN25 002467' REMNAM 000731' TAKE30 002266'
NA$DIR 000004 spd OUTN3 002460' REMRTN 000724' TAKE40 002340'
NA$FNM 000002 spd OUTN4 002472' REMSIZ 000003 spd TAKINI 002246'
NA$FSP 000001 spd OUTNAM 002371' REMSOK 000761' TAKSIZ 000002 spd
NA$VOL 000010 spd P 000017 spd REMSWS 000577' TAKSWS 002362'
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page S-3
NFT MAC 22-Feb-82 10:30 SYMBOL TABLE
TAKTST 003333' %%.MOD 564664 000000 spd .CMFLD 000007 sin .FBPRT 000004 sin
TBADD 104000 000536 int ..0001 001132' spd .CMFLG 000000 sin .FBSIZ 000012 sin
TBDEL 104000 000535 int ..0002 001245' spd .CMFNP 000000 sin .FBWRT 000014 sin
TBLUK 104000 000537 int ..0003 001316' spd .CMGJB 000011 sin .FHSLF 400000 sin
TF 000000 spd ..0004 001442' spd .CMHLP 000002 sin .FP 000016 spd
TL%AMB 200000 000000 sin ..0005 001470' spd .CMINC 000006 sin .GJALL 777775 sin
TL%EXM 040000 000000 sin ..0006 001532' spd .CMINI 000014 sin .GJDEV 000002 sin
TL%NOM 400000 000000 sin ..0007 002040' spd .CMIOJ 000001 sin .GJDIR 000003 sin
TSTCOL 003312' ..0010 002275' spd .CMKEY 000000 sin .GJEXT 000005 sin
TT%ECO 004000 sin ..0011 002372' spd .CMNOD 000026 sin .GJF2 000011 sin
TT%OSP 400000 000000 sin ..0012 002551' spd .CMNOI 000002 sin .GJGEN 000000 sin
TXT.AD 000400 000000 spd ..0013 002672' spd .CMNUM 000001 sin .GJNAM 000004 sin
TXT.FC 000377 spd ..0014 002734' spd .CMPTR 000004 sin .GJSRC 000001 sin
TXT.FN 077000 000000 spd ..0015 003161' spd .CMRTY 000002 sin .HELP 001070'
TXT.JU 000140 000000 spd ..0016 003213' spd .CMSWI 000003 sin .ICCDN 000001 sin
TXT.WD 000003 770000 spd ..0017 003317' spd .COPY 000133' .ICCNO 000000 sin
TYPATM 003373' ..0020 006102' spd .DCX0 000000 sin .ICDAV 000002 sin
TYPCRL 001002' ..0021 003366' spd .DCX34 000042 sin .ICIMA 000003 sin
TYPNAM 000770' ..0022 003416' spd .DCX36 000044 sin .INFOR 001114'
TYPRTN 000765' ..0023 003637' spd .DCX42 000052 sin .JBVER 000137
USR001 001755' ..0024 003732' spd .DELET 000525' .JSAOF 000001 sin
USRBRK 001773' ..CSC 000004 spd .DFFLG 000000 spd .NDBK1 000002 spd
USRFDB 001751' ..CSN 000003 spd .DFLFA 000002 spd .NDGLN 000001 sin
VNFT 000000000000# pol ..IFT 000000 spd .DFLFS 000003 spd .NDGNT 000010 sin
VRLFDB 002003' ..PST 000000 spd .DFRFA 000004 spd .NDNAM 000000 sin
WILD 002550' int ..TXB 000136 spd .DFRFS 000006 spd .NDNND 000000 sin
WILD1 002574' ..TXC 000056 spd .DFRTN 000001 spd .NDNOD 000000 sin
WILD2 002604' ..TXEF 000000 spd .DFSIZ 000012 spd .NDSOF 000001 sin
WILD3 002623' ..TXEG 000000 spd .DIACP 000004 spd .NDSON 000000 sin
WILD4 002630' ..TXF 000000 spd .DICDN 000001 spd .NDSTA 000001 sin
WILD5 002636' ..TXFC 000000 spd .DIDAV 000003 spd .NULIO 377777 sin
WILD6 002650' ..TXJU 000000 spd .DIFLG 000000 spd .NVR 000000 spd
WILD7 002651' ..TXP 000000 spd .DIINA 000002 spd .OSIAS 000006 spd
WLDERR 003305' ..TXPT 000001 spd .DIMSG 000001 spd .OSRST 000002 spd
XX 000044 spd ..TXWD 000000 spd .DIREC 000533' .OSRT 000001 spd
$CALL 260740 000000 spd .A13 000013 spd .DISIZ 000002 spd .OSRXM 000004 spd
$DSTFL 000017 777775 spd .A14 000014 spd .DMACK 000006 spd .OSTP1 000011 spd
$DSTPT 000017 777776 spd .A15 000015 spd .DMACP 000007 spd .OSTP2 000010 spd
$DSTSI 000016 000001 spd .A16 000016 spd .DMATT 000002 spd .OSVAX 000007 spd
$DSTTR 000016 000002 spd .ACB 000001 spd .DMNAM 000017 spd .POPJ 000000 ext
$DSTWL 000017 777745 spd .ACM 000000 spd .DNINI 000023' ext .PRIIN 000100 sin
$ERMES 000017 777747 spd .CDDPT 000010 sin .DOACT 000007 spd .PRINT 000541'
$HLPIF 000017 777776 spd .CDLEN 000000 sin .DOFLG 000000 spd .PRIOU 000101 sin
$RET 263740 000000 spd .CDPSW 000001 sin .DONOD 000001 spd .REPAR 003551'
$RETF 324740 000000* spd .CHCNO 000017 spd .DOOBJ 000002 spd .RETE 003540' ext
$RETIF 322000 000000* spd .CHCRT 000015 spd .DOPSI 000012 spd .RETF 006250' ext
$RETIT 326000 000000* spd .CHLFD 000012 spd .DOPSW 000006 spd .RETT 006104' ext
$RETT 324740 000000* spd .CHTAB 000011 spd .DOSIZ 000015 spd .SAVE1 003731' ext
$SAVAC 000017 777757 spd .CMABC 000010 sin .DOUSR 000005 spd .SAVE2 003636' ext
$SRCDE 000017 777717 spd .CMABP 000007 sin .DVDSK 000000 sin .SAVE3 001131' ext
$SRCFL 000017 777755 spd .CMBFP 000003 sin .DVPTY 000013 sin .SAVE4 002671' ext
$SRCTR 000016 000003 spd .CMCFM 000010 sin .DVTTY 000012 sin .SET 001235'
$SRCWL 000017 777765 spd .CMCNT 000005 sin .EXIT 001057' .STKST 003556' ext
$VALUE 000017 777775 spd .CMDAT 000001 sin .FBBYV 000011 sin .SUBMI 000547'
%%.GLX 000010 spd .CMFIL 000006 sin .FBCRV 000013 sin .SWACC 001613'
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page S-4
NFT MAC 22-Feb-82 10:30 SYMBOL TABLE
.SWASC 001677'
.SWDIS 002365'
.SWFIX 001704'
.SWIMA 001715'
.SWMAC 001722'
.SWNOD 002367'
.SWOST 002007'
.SWPAS 001633'
.SWUSE 001656'
.SWVAR 001727'
.TAKE 002175'
.TICCA 000001 sin
.TQCH0 000024 spd
.TQCHA 000023 spd
.TQCHD 000002 000003 spd
.TQCHE 000002 000015 spd
.TQCHH 000002 000013 spd
.TQCHJ 000020 spd
.TQCHM 000017 spd
.TQCHO 000002 000002 spd
.TQCHQ 000002 000030 spd
.TQCHT 000002 000001 spd
.TRACE 000555'
.TRSET 002551' ext
.TXTJL 000001 spd
.TXTJR 000002 spd
.TYPE 000565'
.ZCHNK 000101' ext
NFT Network file transfer utility for TOPS20 DECNET MACRO %53B(1215) 09:57 6-May-82 Page S-5
NFT MAC 22-Feb-82 10:30 SYMBOL TABLE FOR PSECT DATA
ATMBLN 000141 sin ICH031 000042' TAKFLG 002301'
ATMBUF 000245' ICH032 000043' TMPFIL 001211'
CHNTAB 000003' ICH033 000044' VOLNAM 001525'
CMDACS 000224' ICH034 000045' ..LOC 002325' spd
CMDBLN 000141 sin ICH035 000046'
CMDBUF 000063' ICHAOV 000011'
CMDFDB 001030' ICHCDN 000004'
CMDFRM 000427' ICHDAE 000016'
CMDJFN 002275' ICHDAV 000005'
CMDPDL 000430' ICHEOF 000015'
CNOFLG 001522' ICHESC 000003'
CONBLK 000047' ICHFOV 000012'
DAPOB 002306' ICHIEX 000025'
DATORG 000047' ICHIFT 000026'
DEFBEG 001261' ICHILI 000022'
DEFDEV 001402' ICHINA 000006'
DEFDIR 001422' ICHIRD 000023'
DEFEXT 001462' ICHIWR 000024'
DEFNAM 001442' ICHMSE 000027'
DEFNOD 001040' ICHNXP 000031'
DEFSIZ 000060 spd ICHPOV 000014'
DEFVER 001502' ICHQTA 000017'
DIRNAM 001535' ICHTOD 000021'
DIRTX1 001651' ICHTRU 000030'
DIRTXT 001601' INIFLG 002300'
DPRMPT 002305' LEV1PC 001035' int
DSPFLG 002302' LEV2PC 001036' int
DSTFIL 001151' LEVTAB 000000'
DSTFLG 001142' LOCNOD 001037'
DSTJFN 001147' LOGJFN 002276'
DSTNAM 001145' LOGPOS 002277'
DSTNOD 001144' NAMFLG 001523'
DSTPFL 001150' NFTEND 002325'
DSTSWS 001251' NODHLP 001254'
EOFADR 000244' NODLST 002323'
FILATT 001361' NODTBL 002324'
FILNAM 001545' NOPRMT 002304'
FILSPC 001555' OBJNAM 001042'
FNCBEG 001062' PASFLG 002303'
FNCBLK 001062' PDL 001675'
FNCSIZ 000517 spd REMACT 001301'
GJFBLK 001362' REMJFN 001253'
GJFLEN 000140 spd REMNOD 001252'
ICH004 000007' REMOPD 001341'
ICH005 000010' REMPSW 001321'
ICH008 000013' REMUSR 001261'
ICH013 000020' REPADR 000426'
ICH023 000032' SBK 000406'
ICH024 000033' SNDFLG 001524'
ICH025 000034' SRCFIL 001101'
ICH026 000035' SRCJFN 001077'
ICH027 000036' SRCNAM 001075'
ICH028 000037' SRCNOD 001074'
ICH029 000040' SRCPFL 001100'
ICH030 000041' SRCSWS 001141'
ACT001 1474 1573 1578#
ACTFDB 1573# 1689
AF$CRE 536
AF$DIR 751
AF$ERA 744
AF$EXE 765
AF$OPN 593
AF$PRN 758
AF$TYP 781
ATMBLN 2601 3108# 3117
ATMBUF 1233 1669 1690 1712 2545 2599 3117#
BADNOD 1253 1255 1259 1306#
BITS 2307 2320#
CFIELD 1047 2670#
CHKPOS 2503 2519#
CHKPTR 1914 2061 2379# 2389
CHKW1 2152# 2157 2183
CHKW2 2153 2156 2159#
CHKW3 2164 2168# 2173
CHKW4 2169 2172 2175#
CHKWLD 2064 2149#
CHNTAB 354 2957 3053#
CLRGJF 399 463 969 1752 1767 2201 2736#
CM%BRK 429 1578 1589 1600
CM%DPP 1052 1195 1611 1616 1632
CM%FNC 429 460 485 508 743 750 757 764 771 772 780 790 792 1006
1007 1019 1020 1045 1052 1151 1183 1185 1195 1321 1434 1456 1573 1578
1584 1589 1595 1600 1611 1616 1632 1678 1699 1722 1750 1766 1879 1880
1884 1885 1886 1887 2628 2657 2674
CM%FW 451
CM%HPP 1321 1411 1456 1578 1589 1600 1611 1616 1632 1880
CM%INV 451
CM%NOP 2655
CM%PO 1434
CM%SDH 1321 1411 1434 1573 1584 1595 1611 1616 1880
CM%SWT 1471 1489 1512 1530 1537 1547 1553 1560 1624
CMDACS 2561 2591 2592 2618 2619 2620 2722 2726 3115#
CMDBLN 2596 3107# 3108 3114
CMDBRK 433 435#
CMDBUF 2593 3114#
CMDEOF 395 1761 2650 2654 2659# 2715
CMDER1 479 505 1290 1319 2439 2683 2705#
CMDER2 2706 2709 2717#
CMDERR 1230 2637 2688#
CMDFDB 1224 1226 1227 1267 1276 1409 1412 1413 1439 1441 1442 1443 3123#
CMDFRM 2556 2558 2559 2570 2621 2624 2661 2724 3120#
CMDIN1 2557 2569#
CMDIN2 2568 2590#
CMDIN3 2587 2593#
CMDINI 397 1662 1861 2555#
CMDJFN 409 1765 1772 1804 1829 1843 1857 3191#
CMDPDL 2559 2564 2565 2566 2573 2574 2575 2622 2625 2626 2723 3121#
CMDSIZ 440 455#
CMDTBL 430 440# 455
CN.0 1336# 1347 1351
CN.1 1342 1346#
CNODIS 414 2972#
CNOENA 842 2967#
CNOFLG 785 841 938 2967 2972 2999 3178#
CONBLK 370 3113#
COPY40 510# 525 530
COPY45 513 517#
COPY60 518 535#
COPY61 557 561#
COPY62 563# 589
COPY63 569#
COPY64 573 577#
COPY70 520 592#
COPY72 602 606#
COVNAM 680 1275 1333#
CPYACK 637 648#
CPYACP 639 658# 676
CPYFL1 2304# 2311
CPYFL2 2309 2312#
CPYFLD 2206 2221 2233 2247 2257 2296#
CPYNA1 685 687#
CPYNA2 686 691#
CPYRCV 645 668#
CPYRTN 461 636#
CPYS1 2333 2336 2340#
CPYSND 646 662#
CPYSTR 2069 2078 2112 2332# 2338
CZ%NCL 2747
D$CLOS 2412 2459
D$FUNC 2451
D$INIT 386 777
D$INTR 3011 3017 3023 3029
D$OPEN 2421
D$STAT 2406 2429
DAPCLS 584 588 634 845 2457#
DAPEDT 41 41# 43
DAPER1 2436 2439#
DAPERR 2422 2428# 2452
DAPFNC 581 633 844 2449#
DAPIB 357# 385 774 776
DAPIOB 2392# 2415
DAPLNK 248# 538 595 804 2393 2405 2410 2428 2457 3009 3015 3021 3027
DAPO10 2410#
DAPO20 2407 2414#
DAPOB 2415 2416 2418 2420 3202#
DAPOPN 577 629 843 2405#
DATEND 244 244# 367
DATORG 365 366 3111#
DEBUGW 249# 381
DEFAS1 1183 1185#
DEFASW 1160 1183#
DEFBEG 482 617 618 1430 1431 3160# 3164
DEFDEV 987 2204 2210 3171#
DEFDIR 988 2220 2227 3172#
DEFEXT 990 2245 2249 3174#
DEFNAM 989 2231 2234 2237 3173#
DEFNOD 2779 2787 3131#
DEFSIZ 458 484 618 1180 1431 1734 3164#
DEFSWS 1186 1188# 1193
DEFVER 991 2255 2258 3175#
DELNOD 2927 2935#
DEVBRK 2205 2267#
DF%ACC 280
DF%DAT 1529 1546
DF%LNK 281
DF%MRS 1542 1565
DF%RAT 1552
DF%RFM 1536 1559
DFSSIZ 1188 1193#
DI%CNT 358
DIRAT1 880 884#
DIRATT 857 873#
DIRBRK 2218 2272#
DIRNAM 827 904 958 3182#
DIRRTN 752 855#
DIRTX1 3188#
DIRTXT 3187#
DO%CDN 2396
DO%DAV 2397
DO%INA 2398
DO%LNK 2393
DO%PSI 2394
DO%WCN 2395
DOCMD 388 397#
DOHDR 864 868#
DPB 2089 2092 2108 2126 2160 2176 2341 2367#
DPFNC 280# 537 594 802
DPLFA 282# 541 610
DPLFS 283# 543 612
DPLNK 281# 539 596 805
DPRFA 285# 545 598
DPRFS 286# 547 600 835
DPRMPT 2612 3199#
DPROMP 416 1667 1688 1709 2612#
DPRTN 284# 462 803
DSPFLG 1828 1852 2494 2512 3196#
DSTFIL 493 546 548 561 567 568 575 578 606 611 626 692 708 714
3151#
DSTFLD 1910
DSTFLG 550 569 608 619 694 3146#
DSTJFN 498 558 620 701 1921 1923 1938 1949 1964 3149#
DSTNAM 492 3148#
DSTNOD 497 512 515 519 526 527 552 572 653 3147#
DSTPFL 495 579 3150#
DSTPTR 1910
DSTSIZ 2056
DSTSWS 507 544 609 3153#
DSTTRM 2056
DSTWLD 1910
DT$ASC 1528
DT$IMA 1545
DV%TYP 1817 2581
ECHOOF 1710 2756#
ECHOON 1716 1723 2755#
ENTVEC 345# 3212
EOFADR 2559 2569 2586 2662 3116#
EREOF$ 2667
ERMES 2688
F%IBYT 1029
F%IOPN 1024
F%REL 1036
FB$FIX 1535
FB$MCY 1551
FB$VAR 1558
FB.BSZ 1015
FB.LSN 1016
FFLDT 978 993# 995 1000 1942 1965
FFSPEC 255# 565 837 2001
FILATT 480 506 1437 1529 1536 1542 1546 1552 1559 1565 3167#
FILDE1 2208 2213#
FILDE2 2219 2230#
FILDE3 2235 2243#
FILDE4 2244 2251#
FILDE5 2254 2259 2261#
FILDEF 489 807 2196#
FILFDB 1225 1266 1321#
FILNAM 688 828 830 873 905 960 3183#
FILSIZ 253# 562 568 3143 3151 3152
FILSPC 829 962 3184#
FILSWS 1457 1460# 1466
FNCBEG 423 3135# 3185
FNCBLK 462 537 539 541 543 545 547 594 596 598 600 610 612 802
803 805 835 2450 3137#
FNCSIZ 422 3185#
FOB.CW 1015 1016
FOB.FD 1014
FOB.SZ 1013 1023
FRLFDB 1539 1611#
FROMTO 3034#
FSTRT 977 979 987# 1932
FWMASK 352 353 354 1014 2399 2400 2401 2402
G1%SLN 1272
GETUS1 1659#
GETUS2 1666 1686#
GETUS3 1687 1706#
GETUS4 1707 1731#
GETUSR 1650# 2414
GJ%DEV 556 559 695 987 2024 2209
GJ%DIR 556 559 621 695 709 973 988 1916 1925 1929 2042 2226
GJ%EXT 556 559 693 990 1916 1918 1925 1929 2017 2020 2031 2248
GJ%FOU 488 574 625 713 975 1768
GJ%IFG 464 488 603 747 754 761 768 784 1269
GJ%MSG 488 1269
GJ%NAM 556 559 693 989 1917 1925 1929 2017 2236
GJ%OFG 488 682 687 975 1270
GJ%OLD 400 464 603 747 754 761 768 784 1269 1753
GJ%SHT 574 603 625 682 687 713
GJ%VER 556 559 693 991 1916 1925 1929 2035 2260
GJFBLK 401 404 405 465 490 491 976 980 1268 1271 1273 1754 1756 1769
1776 1778 2202 2211 2228 2238 2250 2603 2736 2737 2738 2740 3169# 3176
GJFLEN 2738 3176#
GJFSIZ 252# 3169
GS%EOF 2649 2664
GS%OPN 2991
HELP1 1028# 1033
HELP2 1030 1035#
HLPFOB 1013# 1023
HLPIFN 1021
HLPUSR 1659 1739#
I%INIT 378
I%INT1 2998 3014 3020 3026
I%INT2 2983
IB 351# 377
IB.INT 354
IB.OUT 353
IB.PRG 352
IB.SZ 351 376
ICH004 3058#
ICH005 3059#
ICH008 3062#
ICH013 3067#
ICH023 3077#
ICH024 3078#
ICH025 3079#
ICH026 3080#
ICH027 3081#
ICH028 3082#
ICH029 3083#
ICH030 3084#
ICH031 3085#
ICH032 3086#
ICH033 3087#
ICH034 3088#
ICH035 3089#
ICHAOV 3060#
ICHCDN 3055#
ICHDAE 3065#
ICHDAV 3056#
ICHEOF 3064#
ICHESC 3054#
ICHFOV 3061#
ICHIEX 3072#
ICHIFT 3073#
ICHILI 3069#
ICHINA 3057#
ICHIRD 3070#
ICHIWR 3071#
ICHMSE 3074#
ICHNXP 3076#
ICHPOV 3063#
ICHQTA 3066#
ICHTOD 3068#
ICHTRU 3075#
INFDE1 1109# 1114
INFDEF 1059 1107#
INFDN1 1071# 1078
INFDN2 1069 1077 1079#
INFDN3 1074 1082#
INFDN4 1086# 1099 1100
INFDN5 1084 1094#
INFDN6 1088 1095#
INFDN7 1097 1102#
INFDNT 1058 1063#
INFFDB 1046 1052#
INFNO1 1127 1130#
INFNOD 1111 1124#
INFSIZ 1057 1060#
INFTBL 1053 1057# 1060
INIFLG 412 1803 1807 2711 2713 3194#
INT.LV 2983 2998 3014 3020 3026
INTCDN 3014# 3055
INTCN1 3000 3005 3012#
INTCNO 2998# 3054
INTCTA 2983# 3058
INTDAV 3020# 3056
INTINA 3026# 3057
JS%DEV 993
JS%DIR 702 994
JS%GEN 999
JS%NAM 997 1773
JS%PAF 255
JS%TYP 998
K%SOUT 1041
KEYFDB 419 429#
L%CENT 2848
L%CLST 2775
L%DENT 2944
L%FIRS 1108 2919
L%NEXT 1113 2924
LEV1PC 3045 3127 3127#
LEV2PC 3046 3128 3128#
LEVTAB 354 2957 3045#
LLSTAT 242# 2984
LOCJFN 241# 2989
LOCNOD 402 514 521 1156 1428 1651 2791 2859 3130#
LOGCH1 2505# 2523 2525
LOGCHR 353 2499#
LOGJFN 1779 1786 1812 1820 1828 1854 1855 1856 1859 1869 3192#
LOGPOS 2505 2507 2519 3193#
LSTIN. 30 355 356 356# 359 360 360# 384 517 524 529 652 653 655
656 659 664 666 670 672 675 869 875 876 878 879 882 883
886 887 910 916 922 923 942 948 1017 1018 1018# 1064 1065 1080
1083 1090 1091 1095 1103 1131 1133 1135 1137 1138 1151 1223 1334 1334#
1362 1362# 1408 1507 1651 1651# 1740 1743 1745 1746 1809 1810 1828 1828#
1910 2056 2150 2197 2320 2321 2321# 2341 2341# 2380 2380# 2403 2404 2404#
2468 2468# 2485 2497 2501 2501# 2522 2522# 2535 2559 2559# 2651 2667 2667#
2682 2713 2715 2765 2845 2986 2989 2993 2996 3008 3038 3039 3039#
M%AQNP 2766
M%GMEM 2893
M%RLNP 2785 2812 2834
M%RMEM 2908
MAXNOD 250# 2892
MESIN 241#
MESLN 2687# 2688 2692
MESOUT 241#
MO%CDN 2396
MO%CON 2985
MO%DAV 2397
MO%INA 2398
MSKS1 2357# 2362 2364
MSKS2 2358 2365#
MSKSIZ 2080 2093 2161 2177 2356#
NA$DIR 862 957
NA$FNM 672 900 936 959
NA$FSP 662 668 902 961
NA$VOL 865 955
NAMBRK 2232 2246 2277#
NAMEXT 576 605 627 715 1996#
NAMFLG 510 648 659 675 825 863 866 869 907 910 913 916 919 923
942 945 3179#
NAMSIZ 254# 270 271 272 273 3133 3161 3162 3163 3166 3171 3172 3173 3174
3175
ND$ACT 272# 1126 1133 2438 2865 2866 2878 2881
ND$DEV 270#
ND$LEN 274# 2847
ND$NAM 267# 2850 2855 2936
ND$OST 269# 586 1128 1135 1623 1629 2870
ND$PSW 273# 2435
ND$STA 268# 1072 1086 1175 1176 2425 2800 2829 2861 2926 2952
ND$USR 271# 403 1125 1131 1178 1429 1733 1734 2434 2862 2863 2873 2876
NFFLD 1000# 1931
NFT 345 363#
NFTEDT 38# 43
NFTEND 3208#
NFTMIN 37# 43
NFTVER 36# 43
NFTWHO 39# 43
NIFLD 995#
NODAD1 2860 2869#
NODAD2 2868 2882#
NODADD 1424 2789 2824 2844#
NODEX1 2887 2892#
NODEX2 2898 2909#
NODEXP 2853 2886#
NODFDB 1410 1434#
NODGE1 2770 2793#
NODGE2 2796# 2803
NODGE3 2795 2804#
NODGE4 2817# 2830
NODGET 387 1064 2764#
NODHLP 3158#
NODLST 1107 1112 2776 2846 2918 2923 2943 3206#
NODOFF 553 614 832 2951#
NODTBL 1067 1419 2769 2793 2818 2856 2886 2888 2889 2894 2897 2900 2935 2941
3207#
NOHELP 1025 1040#
NOPMR 369 376#
NOPRMT 2559 2582 2585 2613 3198#
NUMBRK 2256 2282#
OBJNAM 2399 3133#
OF%APP 1821
OF%RD 1805
OSTFDB 1626 1632#
OSTSIZ 1637 1646#
OSTTBL 1633 1637# 1646
OUTD.1 977# 983
OUTD.4 983#
OUTDEF 969#
OUTFL1 2021# 2025 2030 2044
OUTFL2 2032# 2036
OUTFL3 2028 2038# 2043
OUTFLG 549 607 2016#
OUTN1 1932# 1978
OUTN2 1939 1963#
OUTN25 1970 1975#
OUTN3 1961 1968#
OUTN4 1934 1974 1978#
OUTNAM 570 623 712 1909#
P 30 364 392 458 483 484 616 677 681 697 698 699 700 705
706 707 711 822 1021 1026 1028 1035 1049 1147 1165 1334 1362 1453
1475 1477 1479 1492 1494 1496 1516 1518 1520 1651 1670 1672 1674 1676
1679 1691 1693 1695 1697 1700 1713 1715 1718 1720 1725 1794 1828 1910
1915 1919 1924 1928 1933 1937 1940 1944 1948 1954 1955 1956 1957 1960
1963 1967 1968 1972 1973 1977 1979 2341 2380 2468 2501 2522 2555 2556
2559 2562 2563 2568 2570 2586 2590 2617 2623 2627 2661 2662 2670 2673
2675 2688 2690 2696 2722 2725 2788 2790 2798 2801 2823 2825
P%%GEN 1219# 1343 1380
P%%PPN 1218# 1348 1394
P1 1063 1064 1068 1069 1076 1077 1096 1097 1150 1151 1158 1222 1223 1230
1265 1292 1296 1297 1299 1333 1361 1407 1408 1417 1420 1423 1623 1629
1650 1654 1655 1656 1657 1658 1664 1665 1684 1685 1686 1705 1706 1730
1909 1912 1913 1915 1931 1932 1935 1942 1965 1975 1978 2055 2056 2058
2060 2062 2072 2084 2091 2096 2110 2113 2138 2149 2150 2168 2175 2180
2196 2197 2200 2203 2212 2213 2229 2230 2340 2379 2467 2501 2521 2764
2765 2814 2815 2816 2817 2830 2844 2845 2851 2858 2882
P2 677 679 681 1063 1064 1067 1068 1070 1071 1075 1095 1098 1150 1159
1166 1168 1222 1223 1293 1294 1333 1339 1361 1407 1909 2055 2056 2060
2067 2085 2088 2090 2097 2109 2115 2120 2124 2125 2127 2149 2150 2152
2159 2162 2196 2202 2209 2226 2236 2248 2260 2261 2340 2379 2467 2501
2521 2764 2817 2819 2822 2828 2844
P3 1063 1083 1090 1092 1150 1222 1223 1333 1361 1407 1651 1909 2055 2056
2059 2060 2063 2073 2076 2081 2139 2149 2150 2163 2178 2196 2340 2379
2467 2501 2521 2764 2844
P4 1063 1150 1222 1333 1361 1407 1651 1909 2055 2060 2068 2077 2079 2106
2122 2133 2149 2183 2185 2196 2340 2379 2467 2501 2521 2764 2844
PAGFLG 241# 2992
PAGNUM 241#
PARFI1 1227#
PARFI2 1236# 1239
PARFI3 1241# 1254
PARFI4 1243 1257#
PARFI5 1229 1292#
PARFI6 1272#
PARFI9 1236 1241 1257 1302#
PARFIL 470 496 811 1222#
PARFIX 1248 1254#
PARNO1 1264 1417#
PARNO2 1298 1416 1427#
PARNOD 1154 1407#
PARSE 1143 1476 1493 1517 1540 1563 1671 1692 1714 2643#
PARSER 394 398 408 414# 427 1863
PARSW1 1443# 1454
PARSW2 1448#
PARSWS 474 500 1437#
PASFLG 1504 1828 1848 1851 3197#
PASOK 1831 1839 1842 1847 1851#
PDL 364 392 3190#
PDLEN 251 251# 364 392 3121 3190
PMRFLG 241# 368
PNCTAB 1935 1975 1982#
PRMPT 415 3035#
PSIINI 379 2956#
PSW001 1491 1595 1600#
PSWFDB 1595# 1711
PUTERR 2484#
REE 346 392#
RELJFN 417 478 504 2682 2747#
RELNO1 2923# 2928
RELNO2 2920 2926#
RELNOD 418 2918#
REMACP 894 919#
REMACT 1170 1470 1473 1483 1656 1686 1703 1705 1743 2402 3162#
REMF20 817# 823
REMF30 820 825#
REMF40 841#
REMFIL 748 755 762 769 786 802#
REMFNM 901 913#
REMFS1 790 792# 1456
REMFSW 790# 817
REMJFN 691 716 719 1945 3156#
REMNAM 899#
REMNOD 554 585 615 833 1652 1653 1731 2417 2423 2431 3155#
REMOPD 3166#
REMPSW 1171 1488 1500 1503 1511 1657 1685 1706 1728 1730 2401 3163#
REMRTN 745 759 766 893#
REMSIZ 796 800#
REMSOK 908 914 920 922#
REMSWS 793 796# 800
REMUSR 1169 1177 1510 1514 1524 1655 1665 1682 1684 1732 1741 2400 3161#
REPADR 2559 2617 2627 2717 2728 3119#
REPAR 2571 2718 2722#
RESNAM 580 632 722 816 1361#
RFIELD 420 460 485 508 743 750 757 764 771 772 780 818 1006 1007
1019 1020 1045 1151 1161 1627 1678 1699 1722 1750 1758 1766 1781 1789
2629 2636# 2672 2674
RFLDE 1228 1277 1414 1448 2636 2644#
RN.0 1370 1383#
RN.1 1385# 1392 1396
RN.2 1364# 1372 1390
RN.3 1373# 1378
S%TBLK 1421
S1 366 367 370 372 376 380 382 384 400 401 402 403 404 405
409 415 419 422 460 461 462 464 465 466 471 475 480 481
482 483 484 485 487 492 497 501 506 507 508 514 515 521
522 526 531 536 537 538 539 540 541 542 543 544 545 546
547 548 550 551 555 556 558 559 561 562 563 567 568 569
574 578 582 585 586 587 593 594 595 596 597 598 599 600
603 606 608 609 610 611 612 616 617 618 619 625 630 636
638 640 641 650 653 662 664 668 670 672 678 682 687 691
692 697 708 711 713 716 720 743 744 750 751 757 758 764
765 771 772 773 774 775 780 781 802 804 805 806 808 812
814 817 834 835 855 856 858 859 862 865 893 895 896 900
902 931 932 936 953 954 956 958 960 962 963 965 970 973
975 976 977 979 980 1006 1007 1019 1020 1023 1026 1028 1031 1035
1040 1045 1046 1072 1073 1086 1087 1107 1110 1112 1125 1126 1128 1131
1133 1135 1142 1145 1151 1152 1155 1156 1157 1158 1160 1173 1175 1176
1178 1179 1180 1223 1227 1237 1238 1242 1244 1245 1246 1249 1250 1251
1252 1258 1260 1261 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274
1276 1278 1281 1287 1293 1296 1299 1302 1306 1310 1316 1334 1335 1339
1343 1348 1362 1363 1364 1373 1381 1384 1385 1389 1395 1408 1413 1415
1417 1419 1423 1426 1427 1438 1439 1440 1441 1443 1471 1474 1477 1478
1479 1480 1481 1482 1483 1489 1491 1494 1495 1496 1497 1498 1499 1500
1502 1503 1512 1515 1518 1519 1520 1521 1522 1523 1524 1530 1531 1537
1539 1541 1547 1548 1553 1554 1560 1562 1564 1624 1626 1651 1653 1660
1661 1667 1668 1672 1673 1674 1675 1676 1678 1679 1680 1681 1682 1688
1689 1693 1694 1695 1696 1697 1699 1700 1701 1702 1703 1709 1711 1715
1717 1718 1719 1720 1722 1725 1726 1727 1728 1731 1733 1734 1740 1741
1743 1750 1753 1754 1755 1756 1757 1766 1768 1769 1771 1775 1776 1777
1778 1780 1788 1804 1808 1812 1813 1817 1818 1820 1823 1828 1832 1833
1835 1840 1841 1843 1853 1855 1856 1857 1858 1859 1865 1868 1869 1912
1913 1920 1923 1924 1925 1927 1928 1929 1940 1944 1948 1954 1963 1967
1968 1969 1971 1972 1973 1999 2000 2003 2016 2058 2060 2062 2067 2071
2072 2076 2081 2088 2090 2091 2096 2097 2103 2109 2110 2113 2114 2117
2118 2125 2127 2128 2130 2138 2150 2159 2162 2175 2180 2197 2198 2199
2200 2203 2212 2213 2214 2229 2230 2296 2297 2298 2304 2332 2357 2367
2368 2369 2370 2371 2380 2389 2405 2410 2415 2416 2417 2418 2419 2423
2425 2428 2430 2433 2437 2449 2455 2457 2467 2468 2499 2500 2501 2506
2508 2509 2511 2514 2521 2522 2524 2561 2562 2563 2564 2565 2566 2567
2571 2572 2573 2575 2576 2578 2579 2590 2591 2592 2593 2594 2595 2596
2597 2599 2600 2601 2602 2603 2604 2612 2614 2615 2616 2621 2622 2626
2628 2644 2645 2647 2655 2659 2663 2673 2674 2675 2690 2696 2707 2708
2723 2724 2725 2736 2738 2739 2740 2747 2757 2765 2767 2768 2772 2773
2774 2776 2777 2782 2787 2794 2795 2802 2804 2805 2806 2809 2818 2822
2827 2829 2831 2845 2846 2850 2856 2858 2862 2865 2869 2870 2872 2873
2877 2882 2883 2886 2888 2890 2892 2895 2896 2899 2900 2903 2904 2905
2906 2918 2923 2935 2940 2941 2943 2951 2952 2956 2959 2961 2968 2973
2975 2989 3001 3009 3015 3021 3027
S2 377 385 406 421 423 467 472 473 488 493 498 499 552 554
564 575 604 613 615 621 626 683 688 693 696 698 701 707
709 714 745 752 759 766 776 782 803 809 813 821 822 831
833 836 879 884 981 1048 1049 1071 1072 1086 1098 1110 1124 1125
1126 1131 1133 1146 1147 1153 1164 1165 1168 1169 1170 1171 1174 1176
1177 1178 1179 1180 1282 1294 1311 1333 1334 1336 1345 1350 1361 1362
1380 1394 1409 1410 1411 1412 1420 1422 1427 1428 1429 1430 1431 1442
1444 1445 1446 1452 1453 1469 1470 1473 1509 1510 1511 1514 1528 1529
1535 1536 1542 1545 1546 1551 1552 1558 1559 1565 1628 1629 1732 1733
1734 1765 1772 1786 1793 1794 1805 1817 1821 1829 1836 1844 1916 1917
1918 1919 1921 1935 1936 1937 1941 1945 1946 1949 1955 1964 1975 1976
1977 1996 1999 2003 2017 2020 2024 2031 2035 2042 2063 2068 2070 2071
2077 2079 2082 2094 2103 2104 2106 2111 2115 2124 2129 2131 2163 2165
2178 2204 2210 2211 2214 2216 2217 2220 2227 2228 2231 2237 2238 2245
2249 2250 2255 2261 2299 2300 2301 2310 2312 2337 2342 2356 2360 2362
2365 2366 2379 2380 2382 2388 2411 2420 2424 2425 2431 2434 2435 2438
2450 2458 2467 2470 2471 2472 2474 2501 2508 2545 2567 2581 2583 2584
2623 2624 2625 2626 2644 2649 2664 2691 2755 2756 2778 2780 2783 2784
2791 2793 2794 2796 2797 2807 2810 2811 2819 2821 2828 2829 2832 2833
2847 2849 2850 2851 2854 2855 2863 2866 2872 2878 2883 2889 2890 2896
2897 2901 2902 2903 2904 2907 2926 2936 2938 2940 2952 2957 2962 2977
2991 3003 3010 3016 3022 3028
SAVACS 2559
SAVNAM 643 861 899 935 953#
SBK 1031 1231 1232 1262 1263 1274 1444 1475 1480 1492 1497 1516 1521 1650
1651 1661 1670 1675 1691 1696 1713 1719 1827 1828 1853 1858 1865 1868
2468 2509 2559 2572 2577 2578 2579 2594 2595 2597 2598 2600 2602 2604
2616 2645 2647 2659 2707 2975 3001 3118#
SC%SUB 2118
SEDEF1 1160# 1166
SEDEF2 1163 1168#
SEDEFA 1150# 1201
SETFDB 1142 1195#
SETSIZ 1200 1202#
SETTBL 1196 1200# 1202
SNDFLG 535 592 644 3180#
SRCDEF 458
SRCFIL 467 487 542 563 599 604 630 678 679 683 720 809 814 834
1770 1771 1775 3143#
SRCFLD 1910
SRCJFN 472 551 555 564 582 813 836 970 981 1920 1927 1941 1946 3141#
SRCNAM 466 808 1152 3140#
SRCNOD 471 511 517 522 523 601 613 650 812 831 838 1157 1173 3139#
SRCPFL 469 631 721 815 3142#
SRCSWS 481 540 597 3144#
SRCTRM 2056
SRCWLD 1910
STOATM 1295 1418 1484 1501 1525 1683 1704 1729 2545#
STOSTR 964 2546# 2852 2864 2867
SUPOFF 939 2502 2975#
SWSSIZ 1460 1466#
SWTFDB 1438 1440 1456#
T%TEXT 383 516 524 529 651 652 654 655 658 663 665 669 671 674
868 874 875 877 878 881 882 885 886 909 915 921 922 941
947 1065 1079 1082 1089 1091 1094 1102 1130 1132 1134 1136 1137 1506
1739 1742 1744 1745 1809 1810 2484 2496 2534 2651 2681 2712 2714 2986
2988 2993 2995 3007
T1 421 426 468 494 565 620 694 695 696 699 702 706 746 753
760 767 783 806 810 837 978 1224 1225 1226 1231 1262 1283 1302
1312 1333 1336 1337 1338 1341 1344 1345 1346 1349 1350 1361 1364 1365
1366 1368 1369 1371 1373 1374 1375 1377 1379 1381 1383 1384 1385 1386
1387 1388 1389 1391 1393 1395 1773 1828 1835 1837 1845 1942 1956 1965
1979 2001 2018 2019 2021 2022 2023 2026 2027 2029 2032 2033 2034 2038
2039 2040 2041 2059 2073 2083 2084 2086 2087 2104 2120 2121 2122 2134
2135 2139 2152 2153 2154 2155 2166 2168 2169 2170 2171 2182 2205 2207
2215 2218 2219 2222 2223 2232 2243 2246 2251 2252 2256 2262 2263 2302
2304 2305 2310 2332 2333 2334 2335 2337 2340 2343 2344 2357 2358 2359
2361 2363 2382 2383 2384 2385 2386 2387 2388 2432 2434 2435 2438 2501
2546 2555 2569 2657 2692 2755 2756 2759 2779 2780 2797 2800 2984 2985
T2 700 703 705 747 754 761 768 784 819 953 955 957 959 961
965 1162 1232 1263 1303 1450 1677 1698 1721 1759 1782 1784 1790 1845
1850 1932 1933 1938 1957 1960 2016 2018 2021 2032 2038 2066 2070 2085
2086 2098 2107 2123 2130 2131 2133 2135 2151 2157 2164 2173 2303 2305
2306 2312 2314 2340 2342 2344 2657 2768 2771 2772 2773 2774 2778 2783
2788 2790 2798 2799 2800 2801 2805 2807 2810 2814 2816 2823 2825 2832
T3 1233 1244 1261 2307 2308 2313 2314 2859 2863 2866
T4 410 972 974 977 978 979 980 983 1063 1150 1222 1234 1254 1333
1361 1407 1651 1751 1819 1852 1896 1899 1909 1996 2000 2055 2149 2196
2302 2303 2308 2340 2379 2467 2501 2521 2764 2844 2849 2854 2861 2862
2865 2870 2873 2876 2878 2881
TAK010 1757 1879#
TAK015 1879 1880#
TAK020 1780 1884#
TAK030 1884 1885#
TAK040 1788 1886#
TAK050 1885 1886 1887#
TAKE10 1760 1765#
TAKE20 1788# 1795
TAKE22 1785 1793#
TAKE25 1783 1791 1804#
TAKE30 1814 1827#
TAKE40 1862 1865#
TAKFLG 393 1860 1872 2493 2705 3195#
TAKINI 411 1803#
TAKSIZ 1891 1894#
TAKSWS 1888 1891# 1894
TAKTST 425 2493#
TF 2894 2898 2899 2901 2905 2907
TL%AMB 2821
TL%EXM 1422 2938
TL%NOM 2821
TMPFIL 561 562 567 1833 1834 1836 1840 3152#
TSTCOL 476 502 1708 1724 2467# 2680 2710
TT%ECO 2755 2756
TT%OSP 2977 3003
TYPATM 477 503 2534#
TYPCRL 940 945#
TYPNAM 935#
TYPRTN 782 931#
USR001 1515 1584 1589#
USRBRK 1579 1582 1590 1593 1601 1604 1606#
USRFDB 1584# 1668
VALUES 2670
VNFT 43# 340 347
VOLNAM 826 956 3181#
VRLFDB 1562 1616#
WILD 1958 2055#
WILD1 2066 2076# 2137
WILD2 2084# 2087
WILD3 2103# 2107
WILD4 2105 2108#
WILD5 2114# 2123
WILD6 2119 2124#
WILD7 2121 2125#
WLDERR 560 571 624 2455#
XX 2319# 2321 2321#
$DSTFL 1910#
$DSTPT 1910#
$DSTSI 2056#
$DSTTR 2056#
$DSTWL 1910#
$ERMES 2688#
$HLPIF 1021#
$RETF 30 1042 1066 1080 1811 1922 1926 1930 2095 2132 2179 2184 2186 2225
2265 2485 2656 2665 2786 2813 2939
$RETIF 30
$RETIT 30
$RETT 30 642 649 656 660 666 673 778 860 867 870 883 887 897
903 906 911 917 924 933 937 943 946 948 966 971 984 1009
1037 1050 1103 1129 1138 1148 1181 1300 1340 1367 1376 1382 1447 1451
1472 1485 1490 1507 1513 1526 1532 1538 1543 1549 1555 1561 1566 1625
1630 1735 1746 1873 1897 1900 1980 2006 2074 2140 2187 2264 2315 2381
2408 2426 2453 2460 2476 2495 2497 2504 2513 2516 2520 2526 2535 2548
2605 2630 2638 2658 2676 2741 2749 2761 2835 2884 2891 2909 2921 2945
2953 2965 2970 2979
$SAVAC 2559#
$SRCDE 458#
$SRCFL 1910#
$SRCTR 2056#
$SRCWL 1910#
$VALUE 2670#
%CM%FN 2657 2658
%DF%DA 1529 1530 1546 1547
%DF%MR 1542 1543 1565 1566
%DF%RA 1552 1553
%DF%RF 1536 1537 1559 1560
%DI%CN 358
%DO%CD 2396
%DO%DA 2397
%DO%IN 2398
%DO%LN 2393
%DO%PS 2394
%DO%WC 2395
%DPFNC 537 594 802
%DPLFA 541 610
%DPLFS 543 612
%DPLNK 539 596 805
%DPRFA 545 598
%DPRFS 547 600 835
%DPRTN 462 803
%DV%TY 1817 1818 2581 2582
%FB.BS 1015
%FB.LS 1016
%FWMAS 352 353 354 1014 2399 2400 2401 2402
..0001 1064#
..0002 1151#
..0003 1223#
..0004 1334 1334#
..0005 1362 1362#
..0006 1408#
..0007 1651 1651#
..0010 1828 1828#
..0011 1910#
..0012 2056#
..0013 2150#
..0014 2197#
..0015 2341 2341#
..0016 2380 2380#
..0017 2468 2468#
..0020 2501 2501# 2504
..0021 2522 2522#
..0022 2559 2559#
..0023 2765#
..0024 2845#
..BLOC 351# 355 356 357# 359 360 1013# 1017 1018 2392# 2403 2404
..BSIZ 351 351# 352 353 354 355 356 357 357# 358 359 360 1013 1013#
1014 1015 1016 1017 1018 2392 2392# 2393 2394 2395 2396 2397 2398 2399
2400 2401 2402 2403 2404
..CSC 462# 462 463 463# 537# 537 538 538# 539# 539 540 540# 541# 541
542 542# 543# 543 544 544# 545# 545 546 546# 547# 547 548 548#
594# 594 595 595# 596# 596 597 597# 598# 598 599 599# 600# 600
601 601# 610# 610 611 611# 612# 612 613 613# 802# 802 803 803#
804 804# 805# 805 806 806# 835# 835 836 836# 1529# 1529 1530 1530#
1536# 1536 1537 1537# 1542# 1542 1543 1543# 1546# 1546 1547 1547# 1552# 1552
1553 1553# 1559# 1559 1560 1560# 1565# 1565 1566 1566# 1817# 1817 1818 1818#
2581# 2581 2582 2582# 2657# 2657 2658 2658#
..CSN 462# 462 537# 537 539# 539 541# 541 543# 543 545# 545 547# 547
594# 594 596# 596 598# 598 600# 600 610# 610 612# 612 802# 802
803# 803 805# 805 835# 835 1529# 1529 1536# 1536 1542# 1542 1546# 1546
1552# 1552 1559# 1559 1565# 1565 1817# 1817 2581# 2581 2657# 2657
..LOC 3113# 3114# 3115# 3116# 3117# 3118# 3119# 3120# 3121# 3123# 3127# 3128# 3130# 3131#
3133# 3135# 3137# 3139# 3140# 3141# 3142# 3143# 3144# 3146# 3147# 3148# 3149# 3150#
3151# 3152# 3153# 3155# 3156# 3158# 3160# 3161# 3162# 3163# 3166# 3167# 3169# 3171#
3172# 3173# 3174# 3175# 3178# 3179# 3180# 3181# 3182# 3183# 3184# 3187# 3188# 3190#
3191# 3192# 3193# 3194# 3195# 3196# 3197# 3198# 3199# 3202# 3206# 3207# 3208#
..MX1 380# 381 382# 383 400# 400 401 406# 407 464# 464 465 468# 469
473# 474 475# 475 488# 488 489 494# 495 499# 500 501# 501 531#
531 536# 536 537 565# 565 566 574# 574 575 593# 593 594 603#
603 604 625# 625 626 682# 682 683 687# 687 688 693# 693 694
702# 702 703 713# 713 714 744# 744 745 746# 747 747# 748 751#
751 752 753# 754 754# 755 758# 758 759 760# 761 761# 762 765#
765 766 767# 768 768# 769 781# 781 782 783# 784 784# 785 810#
811 837# 837 838 975# 975 976 1040# 1041 1145# 1145 1153# 1154 1272#
1272 1273 1478# 1478 1482# 1482 1495# 1495 1499# 1499 1519# 1519 1523# 1523
1528# 1528 1529 1531# 1531 1535# 1535 1536 1541# 1541 1545# 1545 1546 1548#
1548 1551# 1551 1552 1554# 1554 1558# 1558 1559 1564# 1564 1667# 1667 1673#
1673 1681# 1681 1688# 1688 1694# 1694 1702# 1702 1709# 1709 1717# 1717 1727#
1727 1753# 1753 1754 1768# 1768 1769 1773# 1773 1774 1808# 1808 1823# 1823
2001# 2001 2002 2017# 2017 2018 2424# 2424 2425 2455# 2455 2593# 2594 2599#
2600 2747# 2747 2748 2962# 2962 2963
..MX2 400# 400 401 464# 464 465 488# 488 489 536# 537 565# 565 566
574# 574 575 593# 594 603# 603 604 625# 625 626 682# 682 683
687# 687 688 693# 693 694 702# 702 703 713# 713 714 744# 745
747# 747 748 751# 752 754# 754 755 758# 759 761# 761 762 765#
766 768# 768 769 781# 782 784# 784 785 837# 837 838 975# 975
976 1272# 1272 1273 1528# 1529 1535# 1536 1545# 1546 1551# 1552 1558# 1559
1753# 1753 1754 1768# 1768 1769 1773# 1773 1774 2001# 2001 2002 2017# 2017
2018 2424# 2425 2747# 2747 2748 2962# 2962 2963
..NV 2056# 2056 2057 2058
..PST 462# 462 537# 537 539# 539 541# 541 543# 543 545# 545 547# 547
594# 594 596# 596 598# 598 600# 600 610# 610 612# 612 802# 802
803# 803 805# 805 835# 835 1529# 1529 1536# 1536 1542# 1542 1546# 1546
1552# 1552 1559# 1559 1565# 1565 1817# 1817 2581# 2581 2657# 2657
..STKN 458# 458 459 460 1021# 1021 1022 1023 1910# 1910 1911 1912 2559# 2559
2560 2561 2670# 2670 2671 2672 2688# 2688 2689 2690
..STKQ 458# 458 460 1021# 1021 1023 1910# 1910 1912 2559# 2559 2561 2670# 2670
2672 2688# 2688 2690
..STKR 458# 460 1021# 1023 1910# 1912 2559# 2561 2670# 2672 2688# 2690
..T 356# 356 360# 360 1018# 1018 2404# 2404
..T0 351# 353 353# 356 357# 358 358# 360 1013# 1014 1014# 1018 2392# 2393
2393# 2394 2394# 2395 2395# 2404
..T1 351# 356 357# 360 1013# 1015 1015# 1016 1016# 1018 2392# 2404
..T10 2392# 2404
..T11 2392# 2404
..T12 2392# 2396 2396# 2397 2397# 2398 2398# 2404
..T13 2392# 2404
..T14 2392# 2404
..T2 351# 354 354# 356 1013# 1018 2392# 2399 2399# 2404
..T3 351# 356 1013# 1018 2392# 2404
..T4 351# 356 1013# 1018 2392# 2404
..T5 351# 352 352# 356 2392# 2400 2400# 2404
..T6 2392# 2401 2401# 2404
..T7 2392# 2402 2402# 2404
..TMSK 352# 352 353# 353 354# 354 358# 358 1014# 1014 1015# 1015 1016# 1016
2393# 2393 2394# 2394 2395# 2395 2396# 2396 2397# 2397 2398# 2398 2399# 2399
2400# 2400 2401# 2401 2402# 2402
..TRR 2056# 2058
..TSA1 1063# 1063 1150# 1150 1222# 1222 1333# 1333 1361# 1361 1407# 1407 1650# 1650
1827# 1827 1828# 1828 1909# 1909 2055# 2055 2149# 2149 2196# 2196 2340# 2340
2379# 2379 2467# 2467 2501# 2501 2521# 2521 2558# 2558 2559# 2559 2764# 2764
2844# 2844
..TVAL 352# 352 353# 353 354# 354 358# 358 1014# 1014 1015# 1015 1016# 1016
2393# 2393 2394# 2394 2395# 2395 2396# 2396 2397# 2397 2398# 2398 2399# 2399
2400# 2400 2401# 2401 2402# 2402
..TX1 556# 556 557 559# 559 560 621# 621 622 695# 695 696 709# 709
710 973# 973 974 1269# 1269 1270 1270# 1271 1343# 1343 1344 1348# 1348
1349 1380# 1380 1381 1394# 1394 1395 1411# 1411 1412 1422# 1422 1423 1471#
1471 1472 1489# 1489 1490 1512# 1512 1513 1530# 1530 1531 1537# 1537 1538
1547# 1547 1548 1553# 1553 1554 1560# 1560 1561 1624# 1624 1625 1916# 1916
1917 1925# 1925 1926 1929# 1929 1930 2020# 2020 2021 2024# 2024 2031# 2031
2032 2035# 2035 2036 2042# 2042 2043 2118# 2118 2119 2209# 2209 2210 2226#
2226 2227 2236# 2236 2237 2248# 2248 2249 2260# 2260 2261 2430# 2430 2431
2649# 2649 2655# 2655 2656 2664# 2664 2665 2755# 2755 2756# 2756 2821# 2821
2822 2938# 2938 2939 2977# 2977 2978 2985# 2985 2986 2991# 2991 2992 3003#
3003 3004
..TX2 556# 556 557 559# 559 560 621# 621 622 695# 695 696 709# 709
710 973# 973 974 1269# 1269 1270 1270# 1271 1343# 1343 1344 1348# 1348
1349 1380# 1380 1381 1394# 1394 1395 1411# 1411 1412 1422# 1422 1423 1471#
1471 1472 1489# 1489 1490 1512# 1512 1513 1530# 1530 1531 1537# 1537 1538
1547# 1547 1548 1553# 1553 1554 1560# 1560 1561 1624# 1624 1625 1916# 1916
1917 1925# 1925 1926 1929# 1929 1930 2020# 2020 2021 2024# 2024 2031# 2031
2032 2035# 2035 2036 2042# 2042 2043 2118# 2118 2119 2209# 2209 2210 2226#
2226 2227 2236# 2236 2237 2248# 2248 2249 2260# 2260 2261 2430# 2430 2431
2649# 2649 2655# 2655 2656 2664# 2664 2665 2755# 2755 2756# 2756 2821# 2821
2822 2938# 2938 2939 2977# 2977 2978 2985# 2985 2986 2991# 2991 2992 3003#
3003 3004
.A13 1064 1151 1223 1333 1361 1408 1910 2056 2150 2197 2340 2379 2467 2501
2521 2765 2845
.A14 1064 1151 1223 1333 1361 1408 1910 2056 2150 2197 2340 2379 2467 2501
2521 2765 2845
.A15 1064 1151 1223 1333 1361 1408 1910 2056 2150 2197 2340 2379 2467 2501
2521 2765 2845
.A16 1063 1064 1150 1151 1222 1223 1333 1361 1407 1408 1651 1909 1910 2055
2056 2149 2150 2196 2197 2340 2379 2467 2501 2521 2764 2765 2844 2845
.ACB 1063# 1063 1150# 1150 1222# 1222 1333# 1333 1334# 1334 1361# 1361 1362# 1362
1407# 1407 1650# 1650 1651# 1651 1827# 1827 1828# 1828 1909# 1909 2055# 2055
2149# 2149 2196# 2196 2340# 2340 2341# 2341 2379# 2379 2380# 2380 2467# 2467
2468# 2468 2501# 2501 2521# 2521 2522# 2522 2558# 2558 2559# 2559 2764# 2764
2844# 2844
.ACM 1063# 1063 1064 1150# 1150 1151 1222# 1222 1223 1333# 1333 1334 1361# 1361
1362 1407# 1407 1408 1650# 1650 1651 1827# 1828 1909# 1909 1910 2055# 2055
2056 2149# 2149 2150 2196# 2196 2197 2340# 2340 2341 2379# 2379 2380 2467#
2467 2468 2501# 2501 2521# 2521 2522 2558# 2559 2764# 2764 2765 2844# 2844
2845
.CDDPT 1840
.CDLEN 1833
.CDPSW 1834
.CHCNO 2968 2973
.CHCRT 2472 2506 2522
.CHLFD 2474 2524
.CHTAB 1238
.CMABC 2602
.CMABP 2600
.CMBFP 2594
.CMCFM 508 772 790 819 1007 1020 1162 1183 1573 1584 1595 1677 1678 1698
1699 1721 1722 1782 1790 1880 1884 1886 2674
.CMCNT 1475 1480 1492 1497 1516 1521 1670 1675 1691 1696 1713 1719 2597
.CMDAT 1440 1441
.CMFIL 1321 1759 1879 1885
.CMFLD 1578 1589 1600
.CMFLG 1225 1226 1267 1410 1412 2572
.CMFNP 2657
.CMGJB 2604
.CMHLP 1224 1409 1442
.CMINC 1232 1263 2598
.CMINI 2628
.CMIOJ 1031 1650 1651 1661 1827 1828 1853 1858 1865 1868 2468 2509 2577 2578
2579 2647 2659 2707 2975 3001
.CMKEY 429 1052 1195 1632
.CMNOD 1434
.CMNOI 460 485 743 750 757 764 771 780 1006 1019 1045 1151 1750 1766
.CMNUM 1611 1616
.CMPTR 1231 1262 1274 1444 2595
.CMRTY 2559 2616
.CMSWI 792 1185 1450 1456 1784 1887
.COPY 441 458#
.DCX0 2458
.DCX34 2433
.DCX36 2437
.DCX42 2411
.DELET 442 743#
.DFFLG 537 539 594 596 802 805
.DFLFA 541 610
.DFLFS 543 612
.DFRFA 545 598
.DFRFS 547 600 835
.DFRTN 462 803
.DFSIZ 2449 3137
.DIACP 3010
.DICDN 3016
.DIDAV 3022
.DIFLG 358
.DIINA 3028
.DIMSG 774
.DIREC 443 750#
.DISIZ 357 384 775
.DMACK 636 856
.DMACP 638 893
.DMATT 855
.DMNAM 640 858 895 931
.DNINI 241# 371
.DOACT 2402
.DOFLG 2393 2394 2395
.DONOD 2418
.DOOBJ 2399
.DOPSI 2396 2397 2398
.DOPSW 2401
.DOSIZ 2392 2416 2419 3202
.DOUSR 2400
.DVDSK 1818
.DVPTY 2584
.DVTTY 2583
.EXIT 444 1006#
.FBCRV 884
.FBPRT 1844
.FBWRT 879
.FHSLF 1282 1311 2691 2747 2956 2961
.FP 2056 2082 2083 2094 2111 2114 2128 2129 2136
.GJALL 754
.GJDEV 490 980 2211
.GJDIR 404 491 2228
.GJEXT 1756 1778 2250
.GJF2 1273
.GJGEN 976 1754 1769 2202
.GJNAM 1776 2238
.GJSRC 2740
.HELP 445 1019#
.ICCDN 260# 2396 2962
.ICCNO 259# 2962 2968
.ICDAV 261# 2397 2962
.ICIMA 262# 2398 2962
.INFOR 446 1045#
.JBVER 340#
.JSAOF 993 994 997 998 999 1773
.NDBK1 2816
.NDGLN 2777
.NDGNT 2806
.NDNAM 2819 2822
.NDNND 2814
.NDNOD 2780
.NDSOF 1174 2799 2951
.NDSON 1073 1087 2424
.NDSTA 2828
.NULIO 2739
.NVR 1063# 1064 1150# 1150 1151 1222# 1223 1333# 1333 1334 1334# 1361# 1361 1362
1362# 1407# 1407 1408 1650# 1650 1651 1651# 1827# 1827 1828 1828# 1909# 1909
1910 2055# 2056 2149# 2150 2196# 2196 2197 2340# 2340 2341 2341# 2379# 2379
2380 2380# 2467# 2467 2468 2468# 2501# 2501 2521# 2521 2522 2522# 2558# 2558
2559 2559# 2764# 2764 2765 2844# 2844 2845
.OSIAS 1638
.OSRST 1640
.OSRT 1642
.OSRXM 587 1641
.OSTP1 1643
.OSTP2 1644 2869
.OSVAX 1645
.POPJ 30
.PRIIN 1660 2576 2708 2757
.PRINT 447 757#
.PRIOU 773 1281 1310 1660 1813 2511 2514 2576
.PSECT 380 381 382 383 400 401 406 407 464 465 468 469 473 474
475 488 489 494 495 499 500 501 531 536 537 556 557 559
560 565 566 574 575 593 594 603 604 621 622 625 626 682
683 687 688 693 694 695 696 702 703 709 710 713 714 744
745 746 747 748 751 752 753 754 755 758 759 760 761 762
765 766 767 768 769 781 782 783 784 785 810 811 837 838
973 974 975 976 1040 1041 1063 1145 1150 1153 1154 1222 1269 1270
1271 1272 1273 1333 1343 1344 1348 1349 1361 1380 1381 1394 1395 1407
1411 1412 1422 1423 1471 1472 1478 1482 1489 1490 1495 1499 1512 1513
1519 1523 1528 1529 1530 1531 1535 1536 1537 1538 1541 1545 1546 1547
1548 1551 1552 1553 1554 1558 1559 1560 1561 1564 1624 1625 1650 1667
1673 1681 1688 1694 1702 1709 1717 1727 1753 1754 1768 1769 1773 1774
1808 1823 1827 1828 1909 1916 1917 1925 1926 1929 1930 2001 2002 2017
2018 2020 2021 2024 2031 2032 2035 2036 2042 2043 2055 2118 2119 2149
2196 2209 2210 2226 2227 2236 2237 2248 2249 2260 2261 2340 2379 2424
2425 2430 2431 2455 2467 2501 2521 2558 2559 2593 2594 2599 2600 2649
2655 2656 2664 2665 2747 2748 2755 2756 2764 2821 2822 2844 2938 2939
2962 2963 2977 2978 2985 2986 2991 2992 3003 3004
.REPAR 531 1145 1478 1482 1495 1499 1519 1523 1531 1541 1548 1554 1564 1673
1681 1694 1702 1717 1727 1808 1823 2455 2680#
.RETE 2666
.RETF 30 690 1449 1663 1959 1998 2005 2039 2065 2471
.RETT 30 1109 1658 2019 2022 2033 2166 2345 2372 2925
.SAVE1 1407 1909 2844
.SAVE2 1150 2196 2764
.SAVE3 1063
.SAVE4 1222 2055 2149
.SET 448 1142#
.STKST 458 1021 1910 2559 2670 2688
.SUBMI 449 764#
.SWACC 797 1189 1469#
.SWASC 1461 1528#
.SWDIS 1892 1896#
.SWFIX 1462 1535#
.SWIMA 1463 1545#
.SWMAC 1464 1551#
.SWNOD 1893 1899#
.SWOST 1190 1623#
.SWPAS 798 1191 1488#
.SWUSE 799 1192 1509#
.SWVAR 1465 1558#
.TAKE 450 1750#
.TICCA 2959
.TRACE 452 771#
.TRSET 2056
.TYPE 453 780#
.ZCHNK 424
AIC 2963
ANDX 695 2430
ATI 2960 2969
BLD0. 351 356 357 360 1013 1018 2392 2404
BOUT 1032 2473 2475 2510 2515
CFOBF 3006
CLOSF 1866 1870
CLZFF 2748
COMND 2646
CONFRM 321# 508 772 1007 1020 1678 1699 1722 2674
CONT. 1568 1797 1875 1951 2099 2240
DIRST 2874
DO%CDN 2396
DO%DAV 2397
DO%INA 2398
DSTFLD 1910# 1910 1919 1924 1928 1933
DSTPTR 1910# 1910 1915 1937 1957 1960 1963 1967 1968 1972 1973 1977 1979
DSTSIZ 2056# 2056 2082 2094 2128 2129
DSTTRM 2056# 2056 2083 2136
DSTWLD 1910# 1910 1948 1956
DTI 2974
DVCHR 1816 2580
EIR 2964
ERJMP 408 685 690 718 1831 1839 1847 1998 2005 2647 2782 2809 2875 2880
ERMES 2688# 2688 2690 2696
ERSTR 1284 1313 2693
ESOUT 2697
FLD 352 353 354 358 429 460 485 508 702 743 750 757 764 771
772 780 790 792 993 994 997 998 999 1006 1007 1014 1015 1016
1019 1020 1045 1052 1151 1183 1185 1195 1321 1434 1456 1573 1578 1584
1589 1595 1600 1611 1616 1632 1678 1699 1722 1750 1766 1773 1879 1880
1884 1885 1886 1887 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402
2628 2674
GACCT 2879
GJINF 2871
GLOB 30 41 244
GNJFN 583
GTDIR 1838
GTFDB 1846
GTJFN 407 684 689 1997
GTSTS 2648 2660 2990
HALTF 375 1008 2653
HLPIFN 1021# 1021 1026 1028 1035
JFNS 566 704 839 982 1774 1943 1947 1950 1966 2002
JRSTF 2728
JUMPF 30 398 475 501 571 624 1025 1030 1065 1109 1278 1415 1449 1477
1494 1518 1541 1564 1663 1672 1693 1715 1862 1959 2065 2407 2422 2452
2637 2898 2925
JUMPT 30 1100 1229 2920
LOAD 1817 2581 2657
LSTOF. 30 355 359 384 517 524 529 652 653 655 656 659 664 666
670 672 675 869 875 876 878 879 882 883 886 887 910 916
922 923 942 948 1017 1065 1080 1083 1090 1091 1095 1103 1131 1133
1135 1137 1138 1334 1362 1507 1651 1740 1743 1745 1746 1809 1810 1828
2320 2341 2380 2403 2468 2485 2497 2501 2522 2535 2559 2651 2667 2682
2713 2715 2986 2989 2993 2996 3008 3038
LSTON. 356 360 1018 1064 1151 1223 1334 1362 1408 1651 1828 1910 2056 2150
2197 2321 2341 2380 2404 2468 2501 2522 2559 2667 2765 2845 3039
MOVX 380 382 400 406 464 468 473 475 488 494 499 501 531 536
565 574 593 603 625 682 687 693 702 713 744 746 747 751
753 754 758 760 761 765 767 768 781 783 784 810 837 975
1040 1145 1153 1272 1478 1482 1495 1499 1519 1523 1528 1531 1535 1541
1545 1548 1551 1554 1558 1564 1667 1673 1681 1688 1694 1702 1709 1717
1727 1753 1768 1773 1808 1823 2001 2017 2424 2455 2593 2599 2747 2962
MSKSTR 280 281 282 283 284 285 286
ND 251
NODE 2781 2808
NOISE 314# 460 485 743 750 757 764 771 780 1006 1019 1045 1151 1750
1766
OPENF 1806 1822
PJRST 30 460 485 508 637 743 750 757 764 771 772 780 894 1006
1007 1019 1020 1045 1151 1253 1255 1259 1667 1678 1688 1699 1709 1722
1750 1766 2674
POINTR 537 539 594 596 802 805 1529 1536 1542 1546 1552 1559 1565 1817
2581 2657
POS 352 353 354 358 429 460 485 508 537 539 594 596 702 743
750 757 764 771 772 780 790 792 802 805 993 994 997 998
999 1006 1007 1014 1015 1016 1019 1020 1045 1052 1151 1183 1185 1195
1321 1434 1456 1529 1536 1542 1546 1552 1559 1565 1573 1578 1584 1589
1595 1600 1611 1616 1632 1678 1699 1722 1750 1766 1773 1817 1879 1880
1884 1885 1886 1887 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402
2581 2628 2657 2674
PROLOG 29
PROMPT 306# 1667 1688 1709
PSOUT 374 1280 1289 1309 1318
RCDIR 1830
REPARS 300# 531 1145 1478 1482 1495 1499 1519 1523 1531 1541 1548 1554 1564
1673 1681 1694 1702 1717 1727 1808 1823 2455
RESET 363
RFMOD 2758 2976 3002
RFPOS 2469
RLJFN 717 2004
SAVACS 2559# 2559 2562 2563 2590
SET0. 352 353 354 358 1014 1015 1016 2393 2394 2395 2396 2397 2398 2399
2400 2401 2402
SFMOD 2760 2978 3004 3008
SIR 2958
SKIPF 841 938
SKIPT 644 1144 2999
SOUT 2547
SRCDEF 458# 458 483 484 616
SRCFLD 1910# 1910 1944 1955
SRCTRM 2056# 2056 2111 2114
SRCWLD 1910# 1910 1940 1954
STCMP 2116
STKVAR 458 1021 1910 2559 2670 2688
STORE 462 537 539 541 543 545 547 594 596 598 600 610 612 802
803 805 835 1529 1536 1542 1546 1552 1559 1565
SV 336# 797 798 799 1189 1190 1191 1192 1462 1465
SW 335# 1461 1463 1464 1892 1893
T 328# 441 442 443 444 445 446 447 448 449 450 453 1058 1059
1201 1638 1640 1641 1642 1643 1644 1645
TBADD 2857
TBDEL 2942
TBLUK 2820 2937
TRVAR 2056
TXCE 3003
TXNE 1380 1394 1530 1547 1553 1925 1929 2118 2649 2655 2821 2991
TXNN 556 559 973 1422 1471 1489 1512 1537 1560 1624 1916 2664 2938 2985
TXO 621 709 1270 1343 1348 1411 2024 2031 2035 2209 2226 2236 2248 2260
2755
TXOA 2042
TXT 292# 380 382 406 460 468 473 475 485 494 499 501 531 743
746 750 753 757 760 764 767 771 780 783 810 1006 1019 1040
1045 1055 1145 1151 1153 1198 1478 1482 1495 1499 1519 1523 1531 1541
1548 1554 1564 1580 1591 1602 1613 1614 1618 1619 1634 1635 1667 1673
1681 1688 1694 1702 1709 1717 1727 1750 1766 1808 1823 1882 2455
TXZ 695 1269 2430 2756 2977
TXZA 2020
VALUES 2670# 2670 2673 2675
VRSN. 43
WID 537 539 594 596 802 805 1529 1536 1542 1546 1552 1559 1565 1817
2581 2657
XP 248 249 250 252 253 254 255 259 260 261 262
$BGINT 2983 2998 3014 3020 3026
$BUILD 351 357 1013 2392
$CALL 371 378 379 383 386 387 397 399 411 414 416 417 418 420
424 425 426 458 460 463 470 474 476 477 478 485 489 496
500 502 503 504 508 516 524 529 549 553 570 576 577 580
581 588 605 607 614 623 627 629 632 633 643 651 652 654
655 658 663 665 669 671 674 676 680 712 715 722 743 750
757 764 771 772 777 780 807 811 816 818 832 842 843 844
861 868 874 875 877 878 881 882 885 886 899 908 909 914
915 921 922 935 939 940 941 947 964 969 1006 1007 1019 1020
1021 1024 1029 1036 1041 1045 1047 1063 1064 1065 1079 1082 1089 1091
1094 1102 1108 1111 1113 1130 1132 1134 1136 1137 1143 1150 1151 1154
1161 1222 1228 1236 1241 1257 1264 1275 1277 1295 1298 1407 1414 1418
1421 1424 1448 1476 1484 1493 1501 1506 1517 1525 1540 1563 1627 1659
1662 1667 1671 1678 1683 1688 1692 1699 1704 1708 1709 1710 1714 1716
1722 1723 1724 1729 1739 1742 1744 1745 1750 1752 1758 1766 1767 1781
1789 1809 1810 1861 1909 1910 1914 1958 2055 2056 2061 2064 2069 2078
2080 2089 2092 2093 2108 2112 2126 2149 2160 2161 2176 2177 2196 2201
2206 2221 2233 2247 2257 2341 2406 2412 2414 2421 2429 2451 2459 2484
2496 2501 2502 2503 2523 2525 2534 2559 2629 2636 2651 2666 2670 2672
2674 2680 2681 2682 2688 2710 2712 2714 2764 2766 2775 2785 2789 2812
2824 2834 2844 2848 2852 2853 2864 2867 2893 2908 2919 2924 2927 2944
2983 2986 2988 2993 2995 2998 3007 3011 3014 3017 3020 3023 3026 3029
$DATA 3100# 3113 3114 3115 3116 3117 3118 3119 3120 3121 3123 3127 3128 3130
3131 3133 3135 3137 3139 3140 3141 3142 3143 3144 3146 3147 3148 3149
3150 3151 3152 3153 3155 3156 3158 3160 3161 3162 3163 3166 3167 3169
3171 3172 3173 3174 3175 3178 3179 3180 3181 3182 3183 3184 3187 3188
3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3202 3206 3207 3208
$DEBRK 2987 2994 2996 3012 3018 3024 3030
$EOB 355 359 1017 2403
$FD 294# 1014
$GDATA 3127 3128
$RET 30# 30 723 1304 1432 2987 2994 2996 3012 3018 3024 3030
$RETE 2666
$RETF 30#
$RETIF 30#
$RETIT 30#
$RETT 30#
$SAVE 1063 1150 1222 1333 1361 1407 1650 1827 1909 2055 2149 2196 2340 2379
2467 2501 2521 2558 2764 2844
$SET 352 353 354 358 1014 1015 1016 2393 2394 2395 2396 2397 2398 2399
2400 2401 2402
$TEXT 383 516 524 528 651 652 654 655 658 663 665 669 671 674
868 874 875 876 878 881 882 885 886 909 915 921 922 941
947 1065 1079 1082 1089 1091 1094 1102 1130 1132 1134 1136 1137 1505
1739 1742 1744 1745 1809 1810 2484 2496 2534 2651 2681 2712 2714 2986
2988 2993 2995 3007
%DPFNC 280# 537 594 802
%DPLFA 282# 541 610
%DPLFS 283# 543 612
%DPLNK 281# 539 596 805
%DPRFA 285# 545 598
%DPRFS 286# 547 600 835
%DPRTN 284# 462 803
..CAS1 462 537 539 541 543 545 547 594 596 598 600 610 612 802
803 805 835 1529 1536 1542 1546 1552 1559 1565 1817 2581 2657
..DPB 462 537 539 541 543 545 547 594 596 598 600 610 612 802
803 805 835 1529 1536 1542 1546 1552 1559 1565
..LDB 1817 2581 2657
..POP 1334 1362 1651 1828 2341 2380 2468 2501 2522 2559
..PUSH 1334 1362 1651 1828 2341 2380 2468 2501 2522 2559
..SET 352 353 354 358 1014 1015 1016 2393 2394 2395 2396 2397 2398 2399
2400 2401 2402
..STR0 352 353 354 358 462 537 539 541 543 545 547 594 596 598
600 610 612 802 803 805 835 1014 1015 1016 1529 1536 1542 1546
1552 1559 1565 1817 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402
2581 2657
..TSAC 1063 1150 1222 1333 1361 1407 1650 1827 1828 1909 2055 2149 2196 2340
2379 2467 2501 2521 2558 2559 2764 2844
..TSIZ 462 537 539 541 543 545 547 594 596 598 600 610 612 802
803 805 835 1529 1536 1542 1546 1552 1559 1565 1817 2581 2657
..TX 556 559 621 695 709 973 1269 1270 1343 1348 1380 1394 1411 1422
1471 1489 1512 1530 1537 1547 1553 1560 1624 1916 1925 1929 2020 2024
2031 2035 2042 2118 2209 2226 2236 2248 2260 2430 2649 2655 2664 2755
2756 2821 2938 2977 2985 2991 3003
.BGINT 2983 2998 3014 3020 3026
.CASE 462 537 539 541 543 545 547 594 596 598 600 610 612 802
803 805 835 1529 1536 1542 1546 1552 1559 1565 1817 2581 2657
.NV1 1334# 1334 1362# 1362 1651# 1651 1828# 1828 2341# 2341 2380# 2380 2468# 2468
2501# 2501 2522# 2522 2559# 2559
.NV2 1334# 1334 1362# 1362 1651# 1651 1828# 1828 2341# 2341 2468# 2468 2501# 2501
2559# 2559
.NV3 1828# 1828 2501# 2501 2559# 2559
.NV4 1828# 1828 2559# 2559
.NV5 2559# 2559
.NV6 2559# 2559
.STKV1 458 1021 1910 2559 2670 2688
.STKV2 458 1021 1910 2559 2670 2688
.STKV3 458 1021 1910 2559 2670 2688
.TRV1 2056
.TRV2 2056
.TRV3 2056