Google
 

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