Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/utilities/fal.list
There are no other files named fal.list in the archive.
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 1
FAL	MAC	14-Jan-82 08:35		D. Oran	- P.J. Taylor /POM/CLB/ 17-Nov-81

     1					TITLE	FAL	Network file transfer utility for TOPS20 DECNET
     2					SUBTTL	D. Oran	- P.J. Taylor /POM/CLB/ 17-Nov-81
     3
     4					;
     5					;
     6					;
     7					;	    COPYRIGHT (c) 1978,1979,1980
     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						SEARCH	GLXMAC			;Get Galaxy symbols
    27						PROLOG	(FAL)^
    28					^
    29
    30						SEARCH DAPSYM			;Get DAPLIB symbols
    31						SEARCH	QSRMAC			;Get quasars symbols
    32
    33					;Version Information
    34
    35		   	   000002		FALVER==2			;MAJOR VERSION OF FAL
    36		   	   000000		FALMIN==0			;MINOR VERSION OF FAL
    37		   	   000025		FALEDT==25			;EDIT LEVEL
    38		   	   000000		FALWHO==0			;WHO LAST EDITED (0=DEC DEVELOPMENT)
    39
    40						GLOB	DAPEDT
    41
    42		   000000000000#		VFAL==<VRSN.(FAL)>+DAPEDT	;Get the version level
    43
    44						EXTERN	.JBFF			;ADDRESS OF FIRST FREE LOCATION
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 2
FAL	MAC	14-Jan-82 08:35		Table of contents

    45					SUBTTL	Table of contents
    46
    47					;               TABLE OF CONTENTS FOR FAL
    48					;
    49					;
    50					;                        SECTION                                   PAGE
    51					;    1. Title page................................................   1
    52					;    2. Table of contents.........................................   2
    53					;    3. Revision History..........................................   3
    54					;    4. Constants and assembly parameters.........................   4
    55					;    5. LOCAL MACROS..............................................   5
    56					;    6. Job version and entry vector..............................   6
    57					;    7. Initialization blocks.....................................   6
    58					;    8. MAIN ENTRY POINT AND INITIALIZATION.......................   7
    59					;    9. CHKQUE  Routine to process IPCF messages..................   8
    60					;   10. LOG  message processing...................................   9
    61					;   11. CHKFRK  Routine to check fork status......................  10
    62					;   12. SERVER initializtion......................................  11
    63					;   13. SERVER Listening loop.....................................  12
    64					;   14. SERVER Connection verification routine....................  13
    65					;   15. CREFRK  Fork creation and initializtion...................  14
    66					;   16. KILFRK  Routine to kill a server..........................  15
    67					;   17. LOGSNM  Routine to log system name........................  16
    68					;   18. LOGMSG and LOGCHR Logfile output routines.................  17
    69					;   19. MSGCHR Text output routine for inferior servers...........  18
    70					;   20. SNDFAL  Routine to send IPCF packet to FAL................  19
    71					;   21. CLSJFN, RELJFN, CPYSTR....................................  19
    72					;   22. PSIINI  Software interrupt system initialization..........  20
    73					;   23. Interrupt service routines................................  20
    74					;   24. Pure data storage.........................................  21
    75					;   25. Interrupt tables..........................................  22
    76					;   26. Impure Data storage.......................................  23
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 3
FAL	MAC	14-Jan-82 08:35		Revision History

    77					SUBTTL	Revision History
    78
    79					COMMENT \
    80
    81					Edit	Comment
    82
    83					0020	First field test of FAL 2(20)
    84					0021	Fix FAL to check for network support before starting forks
    85						Fix logging from forks
    86					0022	Add interrupt reason to D$INTR calls so it doesn't interrogate
    87						link status for each interrupt
    88					0023	Make DIRPSW large enough to accommadate 39 character passwords
    89						so stack won't get destroyed.  Also get default account for
    90						login so that a null account string will be allowed.
    91					0024	Process all interrupts as level 1 and make LEV1PC global to
    92						allow access from D$INTR in DAPLIB
    93
    94					*** Edits for DECnet-20 V3.0 begin here
    95	
    96					0025	Implement logging of activity in PS:<SPOOL>FAL.LOG. If this file
    97						exists it will be appended to. If the file does not exist, no
    98						logging will be done.
    99
   100					\ ;end revision history
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 4
FAL	MAC	14-Jan-82 08:35		Constants and assembly parameters

   101					SUBTTL	Constants and assembly parameters
   102
   103					; ACCUMULATOR DEFINITIONS
   104
   105
   106		   	   000013		P5==13				;EXTRA PERMANENT AC
   107		   	   000014		M==14				;IPCF message address
   108
   109					;Constants
   110
   111		   	   000001		XP	SRVLNK,1		;Server link index is 1
   112
   113		   	   000003		XP	MINSRV,3		;Minimum number of forks
   114		   	   000004		XP	MAXSRV,4		;Maximum number of forks
   115
   116		   	   000020		XP	MAXNOD,20		;Maximum number of nodes
   117		   	   000400		XP	PDLEN,MAXNOD*20		;Size of the stack
   118		   	   000020		XP	GJFSIZ,20		;Size of the GTJFN block
   119		   	   000020		XP	FILSIZ,20		;Maximum size of a file name
   120		   	   000005		XP	CHKLEN,.CKAUD+1		;Length of CHKAC arg block
   121
   122		   	   004703		XP	MSGSIZ,^D500*5-1	;Maximum count of logcharacters
   123
   124
   125					;Interrupt channel assignments
   126
   127		   	   000000		XP	.ICIPC,0		;IPCF channel
   128		   	   000001		XP	.ICDAV,1		;Data available
   129		   	   000002		XP	.ICCDN,2		;Connect/Disconnect
   130		   	   000003		XP	.ICIMA,3		;Interrupt message
   131
   132						GLOB	DATEND			;Last location of DAP storage
   133
   134		   000000000000#		NFKPGS==<DATEND/1000>+1		;Number of fork pages
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 5
FAL	MAC	14-Jan-82 08:35		LOCAL MACROS

   135					SUBTTL LOCAL MACROS
   136
   137					DEFINE TXT(TEXT) <POINT 7,[ASCIZ\TEXT\]>
   138
   139					DEFINE $FD(NAME) <
   140						XWD 10,0
   141						ASCIZ\NAME\>
   142
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 6
FAL	MAC	14-Jan-82 08:35		Job version and entry vector

   143					SUBTTL	Job version and entry vector
   144
   145	000137   				LOC	137			;SET THE VERSION
   146	000137     000000000000#	.JBVER:	EXP	VFAL
   147	000000'00				RELOC
   148
   149					; ENTRY VECTOR DEFINITION
   150
   151	000000'00  254 00 0 00 000051'	ENTVEC:	JRST FAL			;MAIN ENTRY POINT
   152	000001'00  254 00 0 00 000051'		JRST FAL			;REENTER ENTRY POINT
   153	000002'00  000000000000#		EXP VFAL			;VERSION OF FAL PROGRAM
   154
   155					SUBTTL	Initialization blocks
   156
   157	000003'00			FALIB:	$BUILD	(IB.SZ)
   158						  $SET	(IB.PRG,,%%.MOD)	;Program name is FAL
   159						  $SET	(IB.OUT,,LOGMSG)	;Default output routine
   160						  $SET	(IB.INT,,<LEVTAB,,CHNTAB>)	;Point to PSI stuff
   161						  $SET	(IB.PIB,,FALPIB)	;Point to IPCF stuff
   162						$EOB
   163
   164	000011'00			FALPIB:	$BUILD	(PB.MXS)		;Pid info
   165						  $SET	(PB.HDR,PB.LEN,PB.MXS)	;Length
   166						  $SET	(PB.INT,IP.CHN,.ICIPC)	;IPCF channel
   167						  $SET	(PB.FLG,IP.PSI,1)	;Use PSI for IPCF
   168						  $SET	(PB.SYS,IP.MNP,MAXSRV)	;Number of pids required
   169						  $SET	(PB.NAM,,<POINT 7,SRVOBJ>)
   170						$EOB
   171
   172	000021'00			SRVIB:	$BUILD	(IB.SZ)
   173						  $SET	(IB.PRG,,'FALSRV')	;Program name is FALSRV
   174						  $SET	(IB.OUT,,MSGCHR)	;Default output routine
   175						  $SET	(IB.INT,,<LEVTAB,,CHNTAB>)	;Point to PSI stuff
   176						  $SET	(IB.PIB,,SRVPIB)	;Point to IPCF stuff
   177						$EOB
   178
   179	000027'00			SRVPIB:	$BUILD	(PB.MXS)		;Pid info
   180						  $SET	(PB.HDR,PB.LEN,PB.MXS)	;Length
   181						  $SET	(PB.INT,IP.CHN,.ICIPC)	;IPCF channel
   182						  $SET	(PB.FLG,IP.PSI,1)	;Use PSI for IPCF
   183						$EOB
   184
   185	000037'00			LOGFOB:	$BUILD	(FOB.SZ)
   186						  $SET	(FOB.FD,,[$FD(PS:<SPOOL>FAL.LOG)])
   187						  $SET	(FOB.CW,FB.BSZ,7)
   188						$EOB
   189
   190	000044'00			LOGDBG:	$BUILD	(FOB.SZ)
   191						  $SET	(FOB.FD,,[$FD(DSK:FAL.LOG)])
   192						  $SET	(FOB.CW,FB.BSZ,7)
   193						$EOB
   194
   195
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 7
FAL	MAC	14-Jan-82 08:35		MAIN ENTRY POINT AND INITIALIZATION

   196					SUBTTL	MAIN ENTRY POINT AND INITIALIZATION
   197
   198	000051'00  104 00 0 00 000147 	FAL:	RESET				;Clean up from last start
   199	000052'00  200 17 0 00 000676'		MOVE P,[IOWD PDLEN,PDL]		;SET UP STACK
   200	000053'00  402 00 0 00 000000#		SETZM	DATORG			;Clear impure storage
   201	000054'00  200 01 0 00 000677'		MOVE	S1,[DATORG,,DATORG+1]
   202	000055'00  251 01 0 00 000000#		BLT	S1,DATEND-1
   203	000056'00  561 01 0 00 000000#		HRROI	S1,SRVOBJ		;Point to my object name
   204	000057'00  200 02 0 00 000701'		MOVX	S2,TXT(FAL)
   205	000060'00  332 00 0 00 000135 		SKIPE	DEBUGW
   206	000061'00  200 02 0 00 000704'		MOVX	S2,TXT(FAL-DEBUG)
   207	000062'00  260 17 0 00 000626'		$CALL	CPYSTR			;Store the name
   208	000063'00  201 01 0 00 000006 		MOVEI	S1,IB.SZ
   209	000064'00  201 02 0 00 000003'		MOVEI	S2,FALIB		;POINT TO IB
   210	000065'00  260 17 0 00 000000*		$CALL	I%INIT			;GET THE LIBRARY
   211	000066'00  561 01 0 00 000705'		HRROI	S1,[ASCIZ/DCN:/]
   212	000067'00  104 00 0 00 000120 		STDEV
   213	000070'00  320 16 0 00 000716'		 ERJMP	[$FATAL (No network support)]
   214	000071'00  200 02 0 00 000012'		MOVE	S2,FALPIB+PB.PID	;Get my PIB
   215	000072'00  202 02 0 00 000000#		MOVEM	S2,FALPID		;Say I am FAL
   216	000073'00  551 01 0 00 000016 		HRRZI	S1,.MSIIC		;BYPASS MOUNT COUNTS
   217	000074'00  104 00 0 00 000555 		MSTR
   218	000075'00  320 16 0 00 000076'		 ERJMP	.+1
   219	000076'00  260 17 0 00 000631'		$CALL	PSIINI			;INITIALIZE PSI SYSTEM
   220	000077'00  205 01 0 00 100001 		MOVX	S1,GJ%SHT+GJ%OLD	;[0025]IS LOG FILE AROUND?
   221	000100'00  561 02 0 00 000666'		HRROI	S2,[ASCIZ/PS:<SPOOL>FAL.LOG/] ;[0025]
   222	000101'00  104 00 0 00 000020 		GTJFN				;[0025]
   223	000102'00  320 16 0 00 000114'		 ERJMP	NOLOG			;[0025] DON'T LOG ANYTHING
   224	000103'00  104 00 0 00 000023 		RLJFN				;[0025]RELEASE THE JFN
   225	000104'00  255 00 0 00 000000 		JFCL				;[0025]DONT CARE ABOUT ERRORS
   226	000105'00  201 01 0 00 000005 		MOVEI	S1,FOB.SZ		;[0025]LENGTH OF THE FOB
   227	000106'00  201 02 0 00 000037'		MOVEI	S2,LOGFOB		;[0025]ADDRESS OF THE FOB
   228	000107'00  332 00 0 00 000135 		SKIPE	DEBUGW			;[0025]DEBUGGING?
   229	000110'00  201 02 0 00 000044'		MOVEI	S2,LOGDBG		;[0025]ADDRESS OF DEBUG FOB
   230	000111'00  260 17 0 00 000000*		$CALL	F%AOPN			;[0025]APPEND OPEN
   231	000112'00  202 01 0 00 000000#		MOVEM	S1,LOGIFN		;[0025]SAVE THE NEW IFN
   232	000113'00  336 00 0 00 000000 		SKIPT				;[0025]FILE OPENED OK?
   233	000114'00  476 00 0 00 000000#	NOLOG:	SETOM	LOGIFN			;[0025]NO, FORGET IT
   234	000115'00  476 00 0 00 000000#		SETOM	FRKFLG			;SET TO CREATE INITIAL FORKS
   235	000116'00  332 00 0 00 000135 		SKIPE	DEBUGW			;AM I DEBUGGING?
   236	000117'00  254 00 0 00 000252'		JRST	SRVINI			;YES..JUST BECOME LISTENER
   237
   238	000120'00  402 00 0 00 000000#	MAIN:	SETZM	SLPTIM			;ASSUME WE'LL WAIT FOR INTERRUPT
   239	000121'00  260 17 0 00 000131'		$CALL	CHKQUE			;PROCESS IPCF MESSAGES
   240	000122'00  356 00 0 00 000000#		AOSN	FRKFLG			;CHECK FORKS?
   241	000123'00  260 17 0 00 000170'		$CALL	CHKFRK			;YES..CHECK OUR FORKS
   242	000124'00  331 01 0 00 000000#		SKIPL	S1,LOGIFN		;GET LOGFILE IFN
   243	000125'00  260 17 0 00 000000*		$CALL	F%CHKP			;CHECK POINT IT
   244	000126'00  200 01 0 00 000000#		MOVE	S1,SLPTIM		;GET MAX SLEEP TIME
   245	000127'00  260 17 0 00 000000*		$CALL	I%SLP			;WAIT FOR INTERRUPT
   246	000130'00  254 00 0 00 000120'		JRST	MAIN
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 8
FAL	MAC	14-Jan-82 08:35		CHKQUE	Routine to process IPCF messages

   247					SUBTTL	CHKQUE	Routine to process IPCF messages
   248
   249	000131'00			CHKQUE:
   250
   251	000131'00  403 14 0 00 000000#	CHKQ.1:	SETZB	M,MESSAG		;ZERO MESSAGE ADDRESS
   252	000132'00  260 17 0 00 000000*		$CALL	C%RECV			;RECEIVE A MESSAGE?
   253	000133'00  326 00 0 00 000135'		JUMPT	CHKQ.9			;[0025]YES..CHECK IT OUT
   254	000134'00  324740  000000*		$RETF				;NO..NOTHING THERE
   255
   256	000135'00  550 14 0 01 000003 	CHKQ.9:	LOAD	M,MDB.MS(S1),MD.ADR	;GET THE MESSAGE ADDRESS
   257	000136'00  202 14 0 00 000000#		MOVEM	M,MESSAG		;SAVE ADDRESS
   258	000137'00  550 01 0 14 000000 		LOAD	S1,.MSTYP(M),MS.TYP	;GET THE MESSAGE TYPE
   259	000140'00  205 04 0 00 777777 		MOVSI	T2,-NMSGT		;NO -- SEARCH QUASAR TYPES
   260
   261	000141'00  550 03 0 04 000152'	CHKQ.3:	HRRZ	T1,MSGTBL(T2)		;GET A MESSAGE TYPE
   262	000142'00  316 01 0 00 000003 		CAMN	S1,T1			;MATCH?
   263	000143'00  254 00 0 00 000146'		JRST	CHKQ.4			;YES, WIN
   264	000144'00  253 04 0 00 000141'		AOBJN	T2,CHKQ.3		;NO, LOOP
   265	000145'00  254 00 0 00 000150'		JRST	CHKQ.5			;UNKNOWN TYPE -- IGNORE IT
   266
   267	000146'00  554 03 0 04 000152'	CHKQ.4:	HLRZ	T1,MSGTBL(T2)		;GET THE ROUTINE ADDRESS
   268	000147'00  260 17 0 03 000000 		PUSHJ	P,0(T1)			;DISPATCH
   269
   270	000150'00  260 17 0 00 000000*	CHKQ.5:	$CALL	C%REL			;RELEASE MESSAGE
   271	000151'00  254 00 0 00 000131'	CHKQ.6:	JRST	CHKQ.1			;GET NEXT MESSAGE
   272
   273
   274	000152'00  000153'  700000	MSGTBL:	XWD	LOG,MT.TXT		;Log from FAL or QUASAR ACK
   275
   276		   	   000001		NMSGT==.-MSGTBL
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 9
FAL	MAC	14-Jan-82 08:35		LOG  message processing

   277					SUBTTL	LOG  message processing
   278
   279	000153'00  304 00 0 00 000000 	LOG:	$SAVE	<STREAM>		;Preserve our stream
   280	000157'00  200 01 0 14 000002 		MOVE	S1,.MSCOD(M)		;Get stream number from message
   281	000160'00  202 01 0 00 000000#		MOVEM	S1,STREAM
   282	000161'00  561 01 0 14 000000#		HRROI	S1,MSGTXT-MSGHDR(M)	;Point to text
   283	000162'00  554 02 0 14 000000#		HLRZ	S2,MSGARH-MSGHDR(M)	;Get argument length
   284	000163'00  307 02 0 00 000001 		CAIG	S2,1			;Any text to log?
   285	000164'00  324740  000000*		 $RETT				;No..just return
   286	000165'00  260 17 0 00 000000*		$TEXT	(,<^Q/S1/^0>)	;Log it
   287	000167'00  324740  000164*		$RETT
   288
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 10
FAL	MAC	14-Jan-82 08:35		CHKFRK	Routine to check fork status

   289					SUBTTL	CHKFRK	Routine to check fork status
   290
   291	000170'00  260 17 0 00 000000*	CHKFRK:	$SAVE	<P1>
   292	000171'00  402 00 0 00 000000#		SETZM	FRKFLG			;Clear flag to say we've been here
   293	000172'00  205 07 0 00 777774 		MOVSI	P1,-MAXSRV		;Get maximum fork number
   294	000173'00  550 01 0 07 000000#	CHKFR1:	HRRZ	S1,FRKTBL(P1)		;Get fork handle
   295	000174'00  322 01 0 00 000211'		JUMPE	S1,CHKFR2		;Next fork if handle is nill
   296	000175'00  104 00 0 00 000156 		RFSTS				;Read fork status
   297	000176'00  135 03 0 00 000733'		LOAD	T1,S1,RF%STS		;Get status field
   298	000177'00  302 03 0 00 000002 		CAIE	T1,.RFHLT		;Is fork halted
   299	000200'00  306 03 0 00 000003 		CAIN	T1,.RFFPT		; or forced to terminate?
   300	000201'00  334 00 0 00 000000 		SKIPA				;Yes..process the error
   301	000202'00  254 00 0 00 000211'		JRST	CHKFR2			;No..check next fork
   302	000203'00  260 17 0 00 000165*		$TEXT	(,<Abnormal process termination at PC ^O/S2,RHMASK/>)
   303	000205'00  260 17 0 00 000203*		$TEXT	(,<Status: ^O/S1/^0>)
   304	000207'00  550 01 0 00 000007 		HRRZ	S1,P1			;Get the fork index
   305	000210'00  260 17 0 00 000470'		$CALL	KILFRK			;Kill the dead fork
   306	000211'00  253 07 0 00 000173'	CHKFR2:	AOBJN	P1,CHKFR1		;Check the next fork
   307
   308	000212'00  200 01 0 00 000000#		MOVE	S1,FRKCNT		;Get active fork count
   309	000213'00  301 01 0 00 000003 	CHKFR3:	CAIL	S1,MINSRV		;Do we have enough forks?
   310	000214'00  324740  000167*		$RETT				;Yes..just return
   311	000215'00  260 17 0 00 000437'		$CALL	CREFRK			;No..create a fork
   312	000216'00  326 00 0 00 000213'		JUMPT	CHKFR3			;Check count again
   313	000217'00  201 01 0 00 000074 		MOVEI	S1,^D60			;Set sleep time to a minute
   314	000220'00  202 01 0 00 000000#		MOVEM	S1,SLPTIM
   315	000221'00  476 00 0 00 000000#		SETOM	FRKFLG			;Request another check
   316	000222'00  324740  000134*		$RETF
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 11
FAL	MAC	14-Jan-82 08:35		SERVER initializtion

   317					SUBTTL	SERVER initializtion
   318
   319	000223'00			DAPIB:	$BUILD	(.DISIZ)		;Dap initialization block
   320						  $SET	(.DIFLG,DI%CNT,1)	;Request 1 link
   321						$EOB
   322
   323	000225'00  104 00 0 00 000147 	SRV:	RESET				;Clean up from last start
   324	000226'00  200 17 0 00 000763'		MOVE P,[IOWD PDLEN,PDL]		;SET UP STACK
   325	000227'00  402 00 0 00 000000#		SETZM	DATORG			;Clear impure storage
   326	000230'00  200 01 0 00 000764'		MOVE	S1,[DATORG,,DATORG+1]
   327	000231'00  251 01 0 00 000000#		BLT	S1,DATEND-1
   328	000232'00  552 04 0 00 000000#		HRRZM	T2,STREAM		;[0025]STREAM NUMBER-1
   329	000233'00  350 00 0 00 000000#		AOS	STREAM			;[0025]STREAM NUMBER
   330	000234'00  561 01 0 00 000000#		HRROI	S1,SRVOBJ		;Point to server name
   331	000235'00  200 02 0 00 000701'		MOVX	S2,TXT(FAL)		;GET OBJECT NAME
   332	000236'00  332 00 0 00 000135 		SKIPE	DEBUGW
   333	000237'00  200 02 0 00 000704'		MOVX	S2,TXT(FAL-DEBUG)
   334	000240'00  260 17 0 00 000626'		$CALL	CPYSTR			;Copy the string
   335	000241'00  201 01 0 00 000006 		MOVEI	S1,IB.SZ
   336	000242'00  201 02 0 00 000021'		MOVEI	S2,SRVIB		;POINT TO IB
   337	000243'00  260 17 0 00 000065*		$CALL	I%INIT			;GET THE LIBRARY
   338	000244'00  551 01 0 00 000016 		HRRZI	S1,.MSIIC		;BYPASS MOUNTS
   339	000245'00  104 00 0 00 000555 		MSTR
   340	000246'00  320 16 0 00 000247'		 ERJMP	.+1
   341	000247'00  260 17 0 00 000631'		$CALL	PSIINI			;INITIALIZE PSI SYSTEM
   342	000250'00  476 00 0 00 000000#		SETOM	LOGIFN			;Not to write in logfile
   343	000251'00  402 00 0 00 000000#		SETZM	FRKCNT			;I don't have any inferiors
   344
   345	000252'00  201 01 0 00 000002 	SRVINI:	MOVEI	S1,.DISIZ
   346	000253'00  201 02 0 00 000223'		MOVEI	S2,DAPIB
   347	000254'00  260 17 0 00 000000*		$CALL	D$INIT			;Init DAPLIB
   348	000255'00  336 00 0 00 000000 		SKIPT
   349	000256'00  260 17 0 00 000000*		$FATAL	(Can't initialize DAPLIB)
   350	000260'00  254 00 0 00 000310'		JRST	LISTEN
   351
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 12
FAL	MAC	14-Jan-82 08:35		SERVER Listening loop

   352					SUBTTL	SERVER Listening loop
   353
   354	000261'00			DAPOB:	$BUILD	(.DOSIZ)		;Dap link open block
   355						  $SET	(.DOFLG,DO%SRV,1)	;Become server
   356						  $SET	(.DOFLG,DO%WCN,1)	;Wait for connection
   357						  $SET	(.DOFLG,DO%PSI,1)	;Use PSI
   358						  $SET	(.DOFLG,DO%LNK,SRVLNK)	;Use servers link
   359						  $SET	(.DOPSI,DO%CDN,.ICCDN)	;Connect/Disconnect channel
   360						  $SET	(.DOPSI,DO%DAV,.ICDAV)	;Data available
   361						  $SET	(.DOPSI,DO%INA,.ICIMA)	;Interrupt message
   362						  $SET	(.DOCID,,CHKUSR)		;Connect verification
   363						  $SET	(.DONOD,,<POINT 7,SRVNOD>)	;Remote node name
   364						  $SET	(.DOOBJ,,<POINT 7,SRVOBJ>)	;Requested object name
   365						  $SET	(.DOUSR,,<POINT 7,SRVUSR>)	;User string
   366						  $SET	(.DOPSW,,<POINT 7,SRVPSW>)	;Password string
   367						  $SET	(.DOACT,,<POINT 7,SRVACT>)	;Account string
   368						  $SET	(.DOOPD,,<POINT 7,SRVOPD>)	;Optional data
   369						$EOB
   370
   371	000276'00			DAPSRV:	$BUILD	(.DFSIZ)
   372						  $SET	(.DFFLG,DF%LNK,SRVLNK)
   373						  $SET	(.DFLFS,,<POINT 7,SRVFIL>)
   374						$EOB
   375
   376	000310'00  335 00 0 00 000000#	LISTEN:	SKIPGE	LOGIFN			;Am I the master?
   377	000311'00  260 17 0 00 000621'		$CALL	CLSJFN			;Yes..close all JFN's
   378	000312'00  201 01 0 00 000066 		MOVEI	S1,SRVSIZ		;Get size of server data
   379	000313'00  201 02 0 00 000000#		MOVEI	S2,SRVBEG		;Get start of area to clear
   380	000314'00  260 17 0 00 000000*		$CALL	.ZCHNK			;Clear it
   381	000315'00  201 01 0 00 000015 		MOVEI	S1,.DOSIZ		;Get size of open block
   382	000316'00  201 02 0 00 000261'		MOVEI	S2,DAPOB		;Point to open block
   383	000317'00  260 17 0 00 000000*		$CALL	D$OPEN
   384	000320'00  322 00 0 00 000345'		JUMPF	LISTE5			;Close our end on failure
   385	000321'00  260 17 0 00 000205*		$TEXT	(,Connection from node ^T/SRVNOD/ for ^T/SRVUSR/)
   386
   387	000323'00  260 17 0 00 000622'	LISTE1:	$CALL	RELJFN			;Release unopen JFNS
   388	000324'00  201 01 0 00 000012 		MOVEI	S1,.DFSIZ
   389	000325'00  201 02 0 00 000276'		MOVEI	S2,DAPSRV
   390	000326'00  201 03 0 00 000005 		MOVEI	T1,^D5			;Timer retry to wait for access
   391	000327'00  260 17 0 00 000000*		$CALL	D$FUNC			;Do one function
   392	000330'00  322 00 0 00 000333'		JUMPF	LISTE3			;Check link status on failure
   393	000331'00  201 01 0 00 000024 	LISTE2:	MOVEI	S1,^D20			;Wait twenty seconds
   394	000332'00  260 17 0 00 000127*		$CALL	I%SLP
   395	000333'00  201 01 0 00 000001 	LISTE3:	MOVEI	S1,SRVLNK		;Get the link index
   396	000334'00  260 17 0 00 000000*		$CALL	D$STAT			;Check link status
   397	000335'00  603 01 0 00 020000 		TXNE	S1,MO%EOM		;Message available?
   398	000336'00  326 00 0 00 000323'		JUMPT	LISTE1			;Yes..go process it
   399	000337'00  607 01 0 00 014000 		TXNN	S1,MO%SYN!MO%ABT	;Disconnected or aborted?
   400	000340'00  607 01 0 00 400000 		TXNN	S1,MO%CON		; and still connected?
   401	000341'00  254 00 0 00 000345'		JRST	LISTE5			;No..close our end
   402	000342'00  603 01 0 00 020000 		TXNE	S1,MO%EOM		;Have a message available?
   403	000343'00  254 00 0 00 000323'		JRST	LISTE1			;Yes..process it
   404	000344'00  367 03 0 00 000331'		SOJG	T1,LISTE2		;No..try again
   405	000345'00  201 01 0 00 000001 	LISTE5:	MOVEI	S1,SRVLNK		;Point to our link
   406	000346'00  201 02 0 00 001016'		MOVEI	S2,[.DCX38]		;Abort close
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 12-1
FAL	MAC	14-Jan-82 08:35		SERVER Listening loop

   407	000347'00  260 17 0 00 000000*		$CALL	D$CLOS			;Close or abort the link
   408	000350'00  260 17 0 00 000321*		$TEXT	(,^0)			;CLOSE THE LOG ENTRY
   409	000352'00  254 00 0 00 000310'		JRST	LISTEN			;Wait for new connection
   410
   411	000353'00  44 07 0 00 001023'	FNCTBL:	TXT(Unknown)
   412	000354'00  44 07 0 00 001025'		TXT(Read)
   413	000355'00  44 07 0 00 001026'		TXT(Write)
   414	000356'00  44 07 0 00 001030'		TXT(Rename)
   415	000357'00  44 07 0 00 001032'		TXT(Delete)			;Directory connect
   416	000360'00  44 07 0 00 001023'		TXT(Unknown)
   417	000361'00  44 07 0 00 001034'		TXT(Directory)
   418	000362'00  44 07 0 00 001036'		TXT(Submit)
   419	000363'00  44 07 0 00 001040'		TXT(Execute)
   420
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 13
FAL	MAC	14-Jan-82 08:35		CHKUSR Connection verification routine

   421					SUBTTL	CHKUSR Connection verification routine
   422
   423					;CHKUSR - Called at interrupt level from D$OPEN to validate connect
   424
   425					;ACCEPTS	Connect info stored per pointers in D$OPEN request
   426
   427					;Returns TRUE	S1/ User number
   428					;		S2/ Directory number
   429
   430					;	 FALSE	S1/ NSP reason code
   431					;		S2/ Pointer to reason string
   432
   433	000364'00  260 17 0 00 000000*	CHKUSR:	STKVAR	<DIRNUM,USRNUM,<DIRPSW,10>>
   434	000365'00  000012  000012
   435	000366'00  205 01 0 00 000001 		MOVX	S1,RC%EMO		;Require exact match
   436	000367'00  561 02 0 00 000000#		HRROI	S2,SRVUSR		;POINT TO USER NAME GIVEN
   437	000370'00  402 00 0 00 000003 		SETZM	T1			;GOOD FORM
   438	000371'00  104 00 0 00 000554 		RCUSR				;CHECK USER NUMBER
   439	000372'00  320 16 0 00 000430'		  ERJMP	CKUER1			;BAD USER NAME
   440	000373'00  322 03 0 00 000430'		JUMPE	T1,CKUER1		;...
   441	000374'00  202 03 0 17 777775 		MOVEM	T1,USRNUM		;SAVE USER NUMBER FOR CHKACC
   442	000375'00  200 02 0 00 000003 		MOVE	S2,T1			;GET IN PROPER AC FOR RCDIR
   443	000376'00  402 00 0 00 000003 		SETZM	T1			;GOOD FORM
   444	000377'00  104 00 0 00 000553 		RCDIR				;GET DIRECTORY FOR THIS USER
   445	000400'00  320 16 0 00 000430'		  ERJMP	CKUER1			;CAN'T HAPPEN
   446	000401'00  322 03 0 00 000430'		JUMPE	T1,CKUER1		;BAD DIRECTORY HERE
   447	000402'00  202 03 0 17 777776 		MOVEM	T1,DIRNUM		;SAVE DIRECTORY NUMBER
   448	000403'00  200 01 0 17 777776 		MOVE	S1,DIRNUM		;GET DIRECTORY NUMBER
   449	000404'00  201 02 0 00 000000#		MOVEI	S2,DIRBLK		;POINT TO THE BLOCK
   450	000405'00  201 03 0 00 000020 		MOVEI	T1,.CDDAC+1		;GET LENGTH OF ARGUMENT BLOCK
   451	000406'00  202 03 0 02 000000 		MOVEM	T1,.CDLEN(S2)		;SAVE FOR THE CALL
   452	000407'00  561 03 0 00 000000#		HRROI	T1,SRVACT		;POINT TO ACCOUNT STRING
   453	000410'00  336 00 0 00 000000#		SKIPN	SRVACT			;ALREADY SPECIFIED?
   454	000411'00  202 03 0 02 000017 		MOVEM	T1,.CDDAC(S2)		;NO, GET DEFAULT FROM DIRECTORY IF ANY
   455	000412'00  561 03 0 17 777765 		HRROI	T1,DIRPSW		;POINT TO PASSWORD STRING
   456	000413'00  104 00 0 00 000241 		GTDIR				;GET ALL THE DIRECTORY STUFF
   457	000414'00  320 16 0 00 000430'		  ERJMP	CKUER1			;GIVE UP
   458
   459					;HERE TO CHECK PASSWORD
   460	000415'00  561 01 0 17 777765 	CHKUPW:	HRROI	S1,DIRPSW
   461	000416'00  561 02 0 00 000000#		HRROI	S2,SRVPSW
   462	000417'00  104 00 0 00 000540 		STCMP
   463	000420'00  326 01 0 00 000431'		JUMPN	S1,CKUER2		;FAIL IF NOT EXACT
   464
   465					;HERE IF PASSWORDS MATCH TO VALIDATE THE ACCOUNTING DATA
   466	000421'00  200 01 0 17 777776 	CHKUAC:	MOVE	S1,DIRNUM		;GET DIRECTORY NUMBER
   467	000422'00  561 02 0 00 000000#		HRROI	S2,SRVACT		;POINT TO REMOTE ACCOUNT STRING
   468	000423'00  104 00 0 00 000566 		VACCT				;VALIDATE THE ACCOUNT
   469	000424'00  320 16 0 00 000434'		  ERJMP	CKUER3			;NOT VALID
   470	000425'00  200 01 0 17 777775 		MOVE	S1,USRNUM		;Return user number
   471	000426'00  200 02 0 17 777776 		MOVE	S2,DIRNUM		;Return directory number
   472	000427'00  324740  000214*		$RETT				;Return success
   473
   474
   475					;HERE IF ERROR VALIDATING USER
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 13-1
FAL	MAC	14-Jan-82 08:35		CHKUSR Connection verification routine

   476	000430'00  334 02 0 00 001046'	CKUER1:	SKIPA	S2,[TXT(Invalid user-id)]
   477	000431'00  200 02 0 00 001053'	CKUER2:	MOVX	S2,TXT(Invalid password)
   478	000432'00  201 01 0 00 000042 		MOVX	S1,.DCX34		;Generic error type
   479	000433'00  324740  000222*		$RETF				;Return the failure
   480
   481	000434'00  201 01 0 00 000044 	CKUER3:	MOVX	S1,.DCX36		;ERROR FOR BAD ACCOUNT
   482	000435'00  200 02 0 00 001060'		MOVX	S2,TXT(Invalid account)
   483	000436'00  324740  000433*		$RETF				;Return the failure
   484
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 14
FAL	MAC	14-Jan-82 08:35		CREFRK	Fork creation and initializtion

   485					SUBTTL	CREFRK	Fork creation and initializtion
   486
   487					;ACCEPTS	No arguments
   488
   489					;RETURNS TRUE	S1/ Count of active forks
   490					;		    Fork has been started
   491
   492					;	 FALSE	Server fork could not be started
   493
   494	000437'00  205 04 0 00 777774 	CREFRK:	MOVSI	T2,-MAXSRV
   495	000440'00  336 00 0 04 000000#		SKIPN	FRKTBL(T2)		;Fork available?
   496	000441'00  254 00 0 00 000444'		JRST	CREFR1			;Yes..use it
   497	000442'00  253 04 0 00 000440'		AOBJN	T2,.-2			;No..look at next slot
   498	000443'00  324740  000436*		$RETF				;No more forks available
   499
   500	000444'00  205 01 0 00 240000 	CREFR1:	MOVX	S1,CR%CAP+CR%ACS	;[0025]Allow forks capabilities
   501	000445'00  400 02 0 00 000000 		SETZ	S2,			;[0025]POINT AT MY ACS
   502	000446'00  104 00 0 00 000152 		CFORK
   503	000447'00  320 16 0 00 000443*		 ERJMP	.RETF			;Give Up if CFORK fails
   504	000450'00  350 00 0 00 000000#		AOS	FRKCNT			;Bump active fork count
   505	000451'00  202 01 0 04 000000#		MOVEM	S1,FRKTBL(T2)		;Save fork handle
   506	000452'00  514 02 0 00 000001 		HRLZ	S2,S1			;Set up to Map my pages
   507	000453'00  205 01 0 00 400000 		MOVSI	S1,.FHSLF		;Map my address space
   508	000454'00  200 03 0 00 001061'		MOVX	T1,PM%RD!PM%EX!PM%CPY!PM%CNT!NFKPGS
   509	000455'00  104 00 0 00 000056 		PMAP
   510	000456'00  320 16 0 00 000465'		 ERJMP	CREFR2
   511	000457'00  550 01 0 04 000000#		HRRZ	S1,FRKTBL(T2)		;Start the fork as a server
   512	000460'00  201 02 0 00 001062'		MOVEI	S2,[JRST SRV]
   513	000461'00  104 00 0 00 000157 		SFORK
   514	000462'00  320 16 0 00 000465'		 ERJMP	CREFR2
   515	000463'00  200 01 0 00 000000#		MOVE	S1,FRKCNT		;Return count of active forks
   516	000464'00  324740  000427*		$RETT
   517
   518	000465'00  550 01 0 00 000004 	CREFR2:	HRRZ	S1,T2			;Get fork index
   519	000466'00  260 17 0 00 000470'		$CALL	KILFRK			;Kill the fork
   520	000467'00  324740  000447*		$RETF				;Return the failure
   521
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 15
FAL	MAC	14-Jan-82 08:35		KILFRK	Routine to kill a server

   522					SUBTTL	KILFRK	Routine to kill a server
   523
   524					;ACCEPTS	S1/ index into FRKTBL
   525
   526					;RETURNS TRUE	S1/ Number of active forks
   527					;		Fork has been killed
   528
   529	000470'00  400 04 0 00 000000 	KILFRK:	SETZ	T2,			;Set up to clear and fetch
   530	000471'00  250 04 0 01 000000#		EXCH	T2,FRKTBL(S1)		;Get the fork stuff
   531	000472'00  550 01 0 00 000004 		HRRZ	S1,T2			;Get the fork handle
   532	000473'00  554 02 0 00 000004 		HLRZ	S2,T2			;Get offset to page
   533	000474'00  104 00 0 00 000153 		KFORK
   534	000475'00  320 16 0 00 000476'		 ERJMP	.+1			;Can't happen
   535	000476'00  370 01 0 00 000000#	KILFR1:	SOS	S1,FRKCNT		;Decr active fork count
   536	000477'00  324740  000464*		$RETT				;Return
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 16
FAL	MAC	14-Jan-82 08:35		LOGSNM	Routine to log system name

   537					SUBTTL	LOGSNM	Routine to log system name
   538
   539	000500'00  260 17 0 00 000364*	LOGSNM:	STKVAR	<<SYSNAM,20>>		;Get some space for system name
   540	000501'00  000020  000020
   541	000502'00  200 01 0 00 001063'		MOVX	S1,'SYSVER'		;NAME OF GETTAB FOR SYSNAME
   542	000503'00  104 00 0 00 000016 		SYSGT				;GET IT
   543	000504'00  514 03 0 00 000002 		HRLZ	T1,S2			;GET TABLE#,,0
   544	000505'00  201 04 0 17 777757 		MOVEI	T2,SYSNAM		;Point to name storage
   545	000506'00  505 04 0 00 777760 		HRLI	T2,-20			;GET COUNT
   546	000507'00  204 01 0 00 000003 	LOGSN1:	MOVS	S1,T1			;GET N,,TABLE#
   547	000510'00  104 00 0 00 000010 		GETAB				;GET THE ENTRY
   548	000511'00  201 01 0 00 000000 		  MOVEI	S1,0			;USE ZERO IF LOSING
   549	000512'00  202 01 0 04 000000 		MOVEM	S1,(T2)			;STORE THE RESULT
   550	000513'00  271 03 0 00 000001 		ADDI	T1,1			;POINT TO NEXT ENTRY
   551	000514'00  253 04 0 00 000507'		AOBJN	T2,LOGSN1		;GET IT
   552	000515'00  561 01 0 17 777757 		HRROI	S1,SYSNAM		;POINT TO THE NAME
   553	000516'00  260 17 0 00 000350*		$TEXT	(,<^Q/S1/>)
   554	000520'00  324740  000477*		$RETT				;RETURN TRUE
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 17
FAL	MAC	14-Jan-82 08:35		LOGMSG	Text output routine for Superior FAL

   555					SUBTTL	LOGMSG	Text output routine for Superior FAL
   556
   557	000521'00  332 00 0 00 000000#	LOGMSG:	SKIPE	LOGHDR			;First time here
   558	000522'00  254 00 0 00 000534'		JRST	LOGMS1			;No..proceed
   559	000523'00  260 17 0 00 000516*		$TEXT	(LOGCHR,<^H/[-1]/^A>)	;Yes..write the header
   560	000525'00  332 00 0 00 000000#		SKIPE	STREAM			;Am I inferior?
   561	000526'00  260 17 0 00 000523*		$TEXT	(LOGCHR,< SRV-^D1/STREAM/  ^A>) ;Yes..log srv-n
   562	000530'00  336 00 0 00 000000#		SKIPN	STREAM
   563	000531'00  260 17 0 00 000526*		$TEXT	(LOGCHR,<	^A>)	;No..display a tab
   564	000533'00  476 00 0 00 000000#		SETOM	LOGHDR
   565	000534'00  322 01 0 00 000544'	LOGMS1:	JUMPE	S1,LOGMS2		;End of message?
   566	000535'00  331 00 0 00 000000#		SKIPL	LOGHDR			;Ready for indention?
   567	000536'00  260 17 0 00 000531*		$TEXT	(LOGCHR,<		^A>) ;yes..do it
   568	000540'00  476 00 0 00 000000#		SETOM	LOGHDR			;Clear indention flag
   569	000541'00  306 01 0 00 000012 		CAIN	S1,.CHLFD		;Unless this is a line feed
   570	000542'00  213 00 0 00 000000#		MOVNS	LOGHDR			; Store a +1
   571	000543'00  324 17 0 00 000551'		PJRST	LOGCHR			;Log the character and return
   572
   573	000544'00  337 00 0 00 000000#	LOGMS2:	SKIPG	LOGHDR			;Was the last thing a line feed?
   574	000545'00  260 17 0 00 000536*		$TEXT	(LOGCHR,<>)		;No..write one
   575	000547'00  402 00 0 00 000000#		SETZM	LOGHDR			;Clear the header flag
   576	000550'00  324740  000520*		$RETT				;And return
   577
   578	000551'00  200 02 0 00 000001 	LOGCHR:	MOVE	S2,S1			;No..move character to S2
   579	000552'00  331 01 0 00 000000#		SKIPL	S1,LOGIFN
   580	000553'00  260 17 0 00 000000*		$CALL	F%OBYT			;Write the character
   581	000554'00  324740  000550*		$RETT
   582
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 18
FAL	MAC	14-Jan-82 08:35		MSGCHR	Text output routine routine for inferior servers

   583					SUBTTL	MSGCHR	Text output routine routine for inferior servers
   584
   585	000555'00  332 00 0 00 000000#	MSGCHR:	SKIPE	LOGHDR			;First time here?
   586	000556'00  254 00 0 00 000564'		JRST	MSGCH1			;Store the character
   587	000557'00  200 02 0 00 001132'		MOVE	S2,[POINT 7,MSGTXT]	;Point to IPCF message block
   588	000560'00  202 02 0 00 000000#		MOVEM	S2,MSGPTR		;Store the pointer
   589	000561'00  201 02 0 00 004703 		MOVEI	S2,MSGSIZ		;Get max character count
   590	000562'00  202 02 0 00 000000#		MOVEM	S2,MSGCNT		;Store the count
   591	000563'00  476 00 0 00 000000#		SETOM	LOGHDR			;Flag headers set
   592	000564'00  373 00 0 00 000000#	MSGCH1:	SOSLE	MSGCNT			;Bump character count
   593	000565'00  133 00 0 00 000000#		IBP	MSGPTR			;Bump the pointer
   594	000566'00  137 01 0 00 000000#		DPB	S1,MSGPTR		;Store the character
   595	000567'00  326 01 0 00 000554*		JUMPN	S1,.RETT		;Return if not null
   596	000570'00  136 01 0 00 000000#		IDPB	S1,MSGPTR		;Store the null
   597	000571'00  402 00 0 00 000000#		SETZM	LOGHDR			;Clear the log header flag
   598	000572'00  201 01 0 00 700000 	MSGCH2:	MOVEI	S1,MT.TXT		;Get text message type
   599	000573'00  202 01 0 00 000000#		MOVEM	S1,MSGHDR		;Store it in header
   600	000574'00  201 01 0 00 000017 		MOVEI	S1,.CMTXT		;Get text argument type
   601	000575'00  202 01 0 00 000000#		MOVEM	S1,MSGARH		;Store in Argument header
   602	000576'00  200 01 0 00 000000#		MOVE	S1,MSGPTR		;Get message pointer
   603	000577'00  201 01 0 01 000000#		MOVEI	S1,-MSGARC(S1)		;Get argument length
   604	000600'00  506 01 0 00 000000#		HRLM	S1,MSGARH		;Save size in arg header
   605	000601'00  350 00 0 00 000000#		AOS	MSGARC			;Increment argument count
   606	000602'00  271 01 0 00 000000#		ADDI	S1,MSGARH-MSGHDR	;Get size of message
   607	000603'00  506 01 0 00 000000#		HRLM	S1,MSGHDR		;Save in the header
   608	000604'00  201 02 0 00 000000#		MOVEI	S2,MSGHDR		;Point to the message
   609	000605'00  324 17 0 00 000607'		PJRST	SNDFAL			;Send the message to FAL
   610	000606'00  324740  000567*		$RETT
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 19
FAL	MAC	14-Jan-82 08:35		SNDFAL	Routine to send IPCF packet to FAL

   611					SUBTTL	SNDFAL	Routine to send IPCF packet to FAL
   612
   613					;ACCEPTS	S1/ Length of message
   614					;		S2/ Address of message
   615
   616	000607'00  200 03 0 00 000000#	SNDFAL:	MOVE	T1,FALPID
   617	000610'00  202 03 0 00 000000#		MOVEM	T1,SNDSAB+SAB.PD	;Send only to FAL
   618	000611'00  200 03 0 00 000000#	SNDMSG:	MOVE	T1,STREAM		;Get my stream number
   619	000612'00  202 03 0 02 000002 		MOVEM	T1,.MSCOD(S2)		;Save in message
   620	000613'00  202 01 0 00 000000#		MOVEM	S1,SNDSAB+SAB.LN	;Store the length
   621	000614'00  202 02 0 00 000000#		MOVEM	S2,SNDSAB+SAB.MS	;Store the address
   622	000615'00  201 01 0 00 000005 		MOVEI	S1,SAB.SZ
   623	000616'00  201 02 0 00 000000#		MOVEI	S2,SNDSAB
   624	000617'00  260 17 0 00 000000*		$CALL	C%SEND
   625	000620'00  324740  000606*		$RETT				;Don't care about failures
   626	
   627					;RELJFN		QUICKY ROUTINE TO RELEASE ALL NON-OPEN JFNS
   628					;ACCEPTS	NO ARGUMENTS
   629					;RETURNS	TRUE ALWAYS
   630
   631	000621'00  334 01 0 00 001133'	CLSJFN::SKIPA	S1,[EXP CZ%ABT!.FHSLF]	;ABORT ALL FILE OPERATIONS
   632	000622'00  200 01 0 00 001134'	RELJFN::MOVX	S1,CZ%NCL!.FHSLF	;RELEASE ALL NON-OPEN JFNS
   633	000623'00  104 00 0 00 000034 		CLZFF
   634	000624'00  320 16 0 00 000625'		 ERJMP	.+1			;Ignore any errors
   635	000625'00  324740  000620*		$RETT				;RETURN
   636
   637					;CPYSTR		QUICKY ROUTINE TO COPY ASCIZ TEXT
   638
   639					;ACCEPTS	S1/ DESTINATION POINTER
   640					;		S2/ SOURCE POINTER
   641
   642	000626'00  400 03 0 00 000000 	CPYSTR:	SETZ	T1,			;Terminate on Null
   643	000627'00  104 00 0 00 000053 		SOUT
   644	000630'00  263 17 0 00 000000 		$RET
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 20
FAL	MAC	14-Jan-82 08:35		PSIINI	Software interrupt system initialization

   645					SUBTTL	PSIINI	Software interrupt system initialization
   646
   647	000631'00  201 01 0 00 400000 	PSIINI:	MOVEI	S1,.FHSLF		;Initialize for me
   648	000632'00  200 02 0 00 001135'		MOVE	S2,[LEVTAB,,CHNTAB]	;Point to tables
   649	000633'00  104 00 0 00 000125 		SIR
   650	000634'00  200 02 0 00 001136'		MOVX	S2,1B<.ICIPC>!1B<.ICCDN>!1B<.ICDAV>!1B<.ICIMA>!1B<.ICIFT>
   651	000635'00  104 00 0 00 000131 		AIC				;Turn on selected channels
   652	000636'00  104 00 0 00 000126 		EIR				;Enable requests
   653	000637'00  324740  000625*		$RETT
   654
   655					SUBTTL	Interrupt service routines
   656
   657	000640'00  260 17 0 00 000000*	INTPSI:	$BGINT	1
   658	000641'00  260 17 0 00 000000*		$CALL	C%INTR			;Flag the message
   659	000642'00  263 17 0 00 000000 		$DEBRK
   660
   661	000643'00  260 17 0 00 000640*	INTCDN:	$BGINT	1
   662	000644'00  201 01 0 00 000001 		MOVEI	S1,SRVLNK		;POINT TO OUR LINK
   663	000645'00  201 02 0 00 000001 		MOVEI	S2,.DICDN		;Get interrupt cause
   664	000646'00  260 17 0 00 000000*		$CALL	D$INTR
   665	000647'00  263 17 0 00 000000 		$DEBRK
   666
   667	000650'00  260 17 0 00 000643*	INTDAV:	$BGINT	1
   668	000651'00  201 01 0 00 000001 		MOVEI	S1,SRVLNK		;POINT TO OUR LINK
   669	000652'00  201 02 0 00 000003 		MOVEI	S2,.DIDAV		;Get interrupt cause
   670	000653'00  260 17 0 00 000646*		$CALL	D$INTR
   671	000654'00  263 17 0 00 000000 		$DEBRK
   672
   673	000655'00  260 17 0 00 000650*	INTINA:	$BGINT	1
   674	000656'00  201 01 0 00 000001 		MOVEI	S1,SRVLNK		;POINT TO OUR LINK
   675	000657'00  201 02 0 00 000002 		MOVEI	S2,.DIINA		;Get interrupt cause
   676	000660'00  260 17 0 00 000653*		$CALL	D$INTR
   677	000661'00  263 17 0 00 000000 		$DEBRK
   678
   679	000662'00  260 17 0 00 000655*	INTIFT:	$BGINT	1			;Inferior fork termination
   680	000663'00  476 00 0 00 000000#		SETOM	FRKFLG			;Request fork status check
   681	000664'00  263 17 0 00 000000 		$DEBRK				;Dismiss for now
   682
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 21
FAL	MAC	14-Jan-82 08:35		Literals

   683					SUBTTL	Literals
   684
   685					;Dump the literals
   686
   687						LSTOF.
   688						LSTON.
   689
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 22
FAL	MAC	14-Jan-82 08:35		Interrupt tables

   690					SUBTTL	Interrupt tables
   691
   692						.PSECT	DATA			;Load into impure storage
   693
   694	000000'01  000000  000062'	LEVTAB:	LEV1PC
   695	000001'01  000000  000000		EXP  0
   696	000002'01  000000  000000		EXP  0
   697
   698					;INTERRUPT CHANNELS
   699
   700					RADIX 5+5
   701
   702	000003'01			CHNTAB:
   703	000003'01  000001  000000#	ICHPSI:	1,,INTPSI			;PSI interrupts
   704	000004'01  000001  000000#	ICHDAV:	1,,INTDAV			;Data available
   705	000005'01  000001  000000#	ICHCDN:	1,,INTCDN			;Connect/Disconnect
   706	000006'01  000001  000000#	ICHINA:	1,,INTINA			;Interrupt message
   707	000007'01			ICH004:	BLOCK 1				;ASSIGNABLE CHANNEL 4
   708	000010'01			ICH005:	BLOCK 1				;ASSIGNABLE CHANNEL 5
   709	000011'01			ICHAOV:	BLOCK 1				;ARITHMETIC OVERFLOW
   710	000012'01			ICHFOV:	BLOCK 1				;FLOATING OVERFLOW
   711	000013'01			ICH008:	BLOCK 1				;RESERVED
   712	000014'01			ICHPOV:	BLOCK 1				;PDL OVERFLOW
   713	000015'01			ICHEOF:	BLOCK 1				;END OF FILE
   714	000016'01			ICHDAE:	BLOCK 1				;DATA ERROR
   715	000017'01			ICHQTA:	BLOCK 1				;QUOTA EXCEEDED
   716	000020'01			ICH013:	BLOCK 1				;RESERVED
   717	000021'01			ICHTOD:	BLOCK 1				;TIME OF DAY (RESERVED)
   718	000022'01			ICHILI:	BLOCK 1				;ILLEG INSTRUCTION
   719	000023'01			ICHIRD:	BLOCK 1				;ILLEGAL READ
   720	000024'01			ICHIWR:	BLOCK 1				;ILLEGAL WRITE
   721	000025'01			ICHIEX:	BLOCK 1				;ILLEGAL EXECUTE (RESERVED)
   722	000026'01  000001  000000#	ICHIFT:	1,,INTIFT			;INFERIOR FORK TERMINATION
   723	000027'01			ICHMSE:	BLOCK 1				;MACHINE SIZE EXCEEDED
   724	000030'01			ICHTRU:	BLOCK 1				;TRAP TO USER (RESERVED)
   725	000031'01			ICHNXP:	BLOCK 1				;NONEXISTENT PAGE REFERENCED
   726	000032'01			ICH023:	BLOCK 1				;ASSIGNABLE CHANNEL 23
   727	000033'01			ICH024:	BLOCK 1				;ASSIGNABLE CHANNEL 24
   728	000034'01			ICH025:	BLOCK 1				;ASSIGNABLE CHANNEL 25
   729	000035'01			ICH026:	BLOCK 1				;ASSIGNABLE CHANNEL 26
   730	000036'01			ICH027:	BLOCK 1				;ASSIGNABLE CHANNEL 27
   731	000037'01			ICH028:	BLOCK 1				;ASSIGNABLE CHANNEL 28
   732	000040'01			ICH029:	BLOCK 1				;ASSIGNABLE CHANNEL 29
   733	000041'01			ICH030:	BLOCK 1				;ASSIGNABLE CHANNEL 30
   734	000042'01			ICH031:	BLOCK 1				;ASSIGNABLE CHANNEL 31
   735	000043'01			ICH032:	BLOCK 1				;ASSIGNABLE CHANNEL 32
   736	000044'01			ICH033:	BLOCK 1				;ASSIGNABLE CHANNEL 33
   737	000045'01			ICH034:	BLOCK 1				;ASSIGNABLE CHANNEL 34
   738	000046'01			ICH035:	BLOCK 1				;ASSIGNABLE CHANNEL 35
   739
   740					RADIX 8
   741
   742						.ENDPS	DATA
   743
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 23
FAL	MAC	14-Jan-82 08:35		IMPURE	Storage

   744					SUBTTL	IMPURE	Storage
   745
   746						.PSECT	DATA
   747
   748					DEFINE	$DATA (NAME,SIZE<1>) <
   749					 NAME:	BLOCK SIZE
   750						 ..LOC==.>
   751
   752
   753		   	   000053'	$DATA	FRKTBL,MAXSRV			;LH offset to fork data pages
   754		   	   000054'	$DATA	STREAM,1			;My stream number
   755		   	   000055'	$DATA	FALPID,1			;Fal's pid
   756		   	   000056'	$DATA	MESSAG,1			;Address of latest IPCF message
   757		   	   000057'	$DATA	FRKFLG,1			;-1 to check fork status
   758		   	   000060'	$DATA	FRKCNT,1			;Count of active forks
   759		   	   000061'	$DATA	SLPTIM,1			;Max time to sleep in main loop
   760		   	   000062'	$DATA	LOGIFN,1			;Logfile IFN
   761										;RH fork handle
   762
   763		   	   000062'	$DATA	DATORG,0				;Start of area to clear
   764
   765					;Interrupt PC locations
   766
   767	000062'01			$GDATA	LEV1PC,1			;RETURN PC FOR INTERRUPT LEVEL 1
   768
   769		   	   000463'	$DATA	PDL,PDLEN			;PUSH DOWN POINTER
   770
   771		   	   000470'	$DATA	SRVOBJ,5			;Requested object name
   772
   773		   	   000470'	$DATA	SRVBEG,0			;Start of area to clear for SRV
   774		   	   000472'	$DATA	SRVNOD,2			;Remote node name
   775		   	   000477'	$DATA	SRVUSR,5			;Remote user name
   776		   	   000504'	$DATA	SRVPSW,5			;Remote password string
   777		   	   000511'	$DATA	SRVACT,5			;Remote account string
   778		   	   000516'	$DATA	SRVOPD,5			;Optional data
   779		   	   000536'	$DATA	SRVFIL,FILSIZ			;Remote file spec
   780		   	   000556'	$DATA	DIRBLK,.CDDAC+1			;Size of directory storage
   781		   	   000066		SRVSIZ==.-SRVBEG
   782
   783		   	   000557'	$DATA	REMSWS,1			;Remote file switches
   784
   785
   786		   	   000564'	$DATA	SNDSAB,SAB.SZ
   787		   	   000565'	$DATA	MSGPTR,1			;Pointer to log message char
   788		   	   000566'	$DATA	MSGCNT,1			;Remaining room in MSGTXT
   789
   790					;IPCF message area
   791
   792		   	   000571'	$DATA	MSGHDR,MSHSIZ			;Message header area
   793		   	   000572'	$DATA	MSGARF				;Message argument flags
   794		   	   000573'	$DATA	MSGARC				;Message argument count
   795		   	   000574'	$DATA	MSGARH				;Message argument header
   796		   	   001560'	$DATA	MSGTXT,<MSGSIZ/5+1>		;Message body goes here
   797		   	   001616'	$DATA	ERRTXT,^D30			;Room to store error text
   798
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page 23-1
FAL	MAC	14-Jan-82 08:35		IMPURE	Storage

   799		   	   001617'	$DATA	LOGHDR,1			;LOG HEADER FLAG
   800
   801						.ENDPS	DATA			;End of Impure storage
   802
   803		   000003  000000'		END	<3,,ENTVEC>

NO ERRORS DETECTED

PROGRAM BREAK IS 001141
PSECT 1 BREAK IS 001617 FOR  DATA  
CPU TIME USED 00:23.403

113P CORE USED
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page S-1
FAL	MAC	14-Jan-82 08:35		SYMBOL TABLE

AIC	104000	000131	int	ERJMP	320700	000000	int	LOGCHR		000551'		PMAP	104000	000056	int	
C%INTR		000641'	ext	F%AOPN		000111'	ext	LOGDBG		000044'		PSIINI		000631'		
C%RECV		000132'	ext	F%CHKP		000125'	ext	LOGFOB		000037'		RC%EMO	000001	000000	sin	
C%REL		000150'	ext	F%OBYT		000553'	ext	LOGMS1		000534'		RCDIR	104000	000553	int	
C%SEND		000617'	ext	FAL		000051'		LOGMS2		000544'		RCUSR	104000	000554	int	
CFORK	104000	000152	int	FALEDT		000025	spd	LOGMSG		000521'		RELJFN		000622'	int	
CHKFR1		000173'		FALIB		000003'		LOGSN1		000507'		RESET	104000	000147	int	
CHKFR2		000211'		FALMIN		000000	spd	LOGSNM		000500'		RF%STS	377777	000000	sin	
CHKFR3		000213'		FALPIB		000011'		LSTIN.		000000	spd	RFSTS	104000	000156	int	
CHKFRK		000170'		FALVER		000002	spd	M		000014	spd	RHMASK		777777	spd	
CHKLEN		000005	sin	FALWHO		000000	spd	MAIN		000120'		RLJFN	104000	000023	int	
CHKQ.1		000131'		FB.BSZ		000077	spd	MAXNOD		000020	sin	S1		000001	spd	
CHKQ.3		000141'		FILSIZ		000020	sin	MAXSRV		000004	sin	S2		000002	spd	
CHKQ.4		000146'		FNCTBL		000353'		MD.ADR		777777	spd	SAB.LN		000001	spd	
CHKQ.5		000150'		FOB.CW		000001	spd	MDB.MS		000003	spd	SAB.MS		000002	spd	
CHKQ.6		000151'		FOB.FD		000000	spd	MINSRV		000003	sin	SAB.PD		000000	spd	
CHKQ.9		000135'		FOB.SZ		000005	spd	MO%ABT	010000	000000	sin	SAB.SZ		000005	spd	
CHKQUE		000131'		FTJSYS	777777	777777	sin	MO%CDN	777000	000000	sin	SFORK	104000	000157	int	
CHKUAC		000421'		FTUUOS		000000	sin	MO%CON	400000	000000	sin	SIR	104000	000125	int	
CHKUPW		000415'		FWMASK	777777	777777	spd	MO%DAV		777000	sin	SKIPT	336000	000000	spd	
CHKUSR		000364'		GETAB	104000	000010	int	MO%EOM	020000	000000	sin	SNDFAL		000607'		
CKUER1		000430'		GJ%OLD	100000	000000	sin	MO%INA	000777	000000	sin	SNDMSG		000611'		
CKUER2		000431'		GJ%SHT	000001	000000	sin	MO%SYN	004000	000000	sin	SOUT	104000	000053	int	
CKUER3		000434'		GJFSIZ		000020	sin	MS.TYP		777777	spd	SRV		000225'		
CLSJFN		000621'	int	GLXVRS	000100	001124	spd	MSGCH1		000564'		SRVIB		000021'		
CLZFF	104000	000034	int	GTDIR	104000	000241	int	MSGCH2		000572'		SRVINI		000252'		
CPYSTR		000626'		GTJFN	104000	000020	int	MSGCHR		000555'		SRVLNK		000001	sin	
CR%ACS	040000	000000	sin	I%INIT		000243'	ext	MSGSIZ		004703	sin	SRVPIB		000027'		
CR%CAP	200000	000000	sin	I%INT1		000662'	ext	MSGTBL		000152'		STCMP	104000	000540	int	
CREFR1		000444'		I%SLP		000332'	ext	MSHSIZ		000003	spd	STDEV	104000	000120	int	
CREFR2		000465'		IB.INT		000002	spd	MSTR	104000	000555	int	SYSGT	104000	000016	int	
CREFRK		000437'		IB.OUT		000000	spd	MT.TXT		700000	spd	T%TEXT		000545'	ext	
CZ%ABT	004000	000000	sin	IB.PIB		000003	spd	NFKPGS	000000000000#	pol	T1		000003	spd	
CZ%NCL	040000	000000	sin	IB.PRG		000005	spd	NMSGT		000001	spd	T2		000004	spd	
D$CLOS		000347'	ext	IB.SZ		000006	spd	NOLOG		000114'		T4		000006	spd	
D$FUNC		000327'	ext	INT.LV		000003	spd	P		000017	spd	TXT.AD	000400	000000	spd	
D$INIT		000254'	ext	INTCDN		000643'		P1		000007	spd	TXT.FC		000377	spd	
D$INTR		000660'	ext	INTDAV		000650'		P2		000010	spd	TXT.FN	077000	000000	spd	
D$OPEN		000317'	ext	INTIFT		000662'		P3		000011	spd	TXT.JU	000140	000000	spd	
D$STAT		000334'	ext	INTINA		000655'		P4		000012	spd	TXT.WD	000003	770000	spd	
DAPEDT		000000	ext	INTPSI		000640'		P5		000013	spd	VACCT	104000	000566	int	
DAPIB		000223'		IP.CHN		000077	spd	PB.FLG		000002	spd	VFAL	000000000000#	pol	
DAPOB		000261'		IP.MNP	777777	000000	spd	PB.HDR		000000	spd	$CALL	260740	000000	spd	
DAPSRV		000276'		IP.PSI	400000	000000	spd	PB.INT		000003	spd	$DIRNU	000017	777776	spd	
DATA		000000	ext	JUMPF	322000	000000	spd	PB.LEN	777777	000000	spd	$DIRPS	000017	777765	spd	
DATEND		000000	ext	JUMPT	326000	000000	spd	PB.MXS		000010	spd	$RET	263740	000000	spd	
DEBUGW		000135	spd	KFORK	104000	000153	int	PB.NAM		000005	spd	$RETF	324740	000000*	spd	
DF%LNK		000077	spd	KILFR1		000476'		PB.PID		000001	spd	$RETIF	322000	000000*	spd	
DI%CNT		000077	spd	KILFRK		000470'		PB.SYS		000004	spd	$RETIT	326000	000000*	spd	
DO%LNK		000077	spd	LISTE1		000323'		PDLEN		000400	sin	$RETT	324740	000000*	spd	
DO%PSI	200000	000000	spd	LISTE2		000331'		PJRST	324740	000000		$SYSNA	000017	777757	spd	
DO%SRV	400000	000000	spd	LISTE3		000333'		PM%CNT	400000	000000	sin	$USRNU	000017	777775	spd	
DO%WCN	100000	000000	spd	LISTE5		000345'		PM%CPY	000400	000000	sin	%%.GLX		000010	spd	
EIR	104000	000126	int	LISTEN		000310'		PM%EX	020000	000000	sin	%%.MOD	464154	000000	spd	
ENTVEC		000000'		LOG		000153'		PM%RD	100000	000000	sin	..0001		000157'	spd	
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page S-2
FAL	MAC	14-Jan-82 08:35		SYMBOL TABLE

..0002		000171'	spd	.MSCOD		000002	spd	
..CSC		000004	spd	.MSIIC		000016	sin	
..CSN		000003	spd	.MSTYP		000000	spd	
..IFT		000000	spd	.NVR		000000	spd	
..PST		000000	spd	.POPJ		000000	ext	
..TXB		000000	spd	.RETF		000467'	ext	
..TXC		000101	spd	.RETT		000637'	ext	
..TXEF		000000	spd	.RFFPT		000003	sin	
..TXEG		000000	spd	.RFHLT		000002	sin	
..TXF		000000	spd	.SAVE1		000170'	ext	
..TXFC		000000	spd	.STKST		000500'	ext	
..TXJU		000000	spd	.STOP		000716'	ext	
..TXP		000000	spd	.TQCH0		000024	spd	
..TXPT		000000	spd	.TQCHA		000023	spd	
..TXWD		000000	spd	.TQCHD	000002	000003	spd	
.A13		000013	spd	.TQCHH	000002	000013	spd	
.A14		000014	spd	.TQCHO	000002	000002	spd	
.A15		000015	spd	.TQCHQ	000002	000030	spd	
.A16		000016	spd	.TQCHT	000002	000001	spd	
.ACB		000001	spd	.TQDEC	000002	000003	spd	
.ACM		000000	spd	.TQOCT	000002	000002	spd	
.CDDAC		000017	sin	.TXTJL		000001	spd	
.CDLEN		000000	sin	.TXTJR		000002	spd	
.CHLFD		000012	spd	.ZCHNK		000314'	ext	
.CKAUD		000004	sin	
.CMTXT		000017	sin	
.DCX34		000042	sin	
.DCX36		000044	sin	
.DCX38		000046	sin	
.DFFLG		000000	spd	
.DFLFS		000003	spd	
.DFSIZ		000012	spd	
.DICDN		000001	spd	
.DIDAV		000003	spd	
.DIFLG		000000	spd	
.DIINA		000002	spd	
.DISIZ		000002	spd	
.DOACT		000007	spd	
.DOCID		000013	spd	
.DOFLG		000000	spd	
.DONOD		000001	spd	
.DOOBJ		000002	spd	
.DOOPD		000010	spd	
.DOPSI		000012	spd	
.DOPSW		000006	spd	
.DOSIZ		000015	spd	
.DOUSR		000005	spd	
.FHSLF		400000	sin	
.ICCDN		000002	sin	
.ICDAV		000001	sin	
.ICIFT		000023	sin	
.ICIMA		000003	sin	
.ICIPC		000000	sin	
.JBFF		000000	ext	
.JBVER		000137		
FAL	Network file transfer utility for TOPS20 DECNET	MACRO %53B(1215) 10:18  6-May-82 Page S-3
FAL	MAC	14-Jan-82 08:35		SYMBOL TABLE FOR PSECT   DATA  

CHNTAB		000003'		MSGTXT		000574'		
DATORG		000062'		PDL		000063'		
DIRBLK		000536'		REMSWS		000556'		
ERRTXT		001560'		SLPTIM		000060'		
FALPID		000054'		SNDSAB		000557'		
FRKCNT		000057'		SRVACT		000504'		
FRKFLG		000056'		SRVBEG		000470'		
FRKTBL		000047'		SRVFIL		000516'		
ICH004		000007'		SRVNOD		000470'		
ICH005		000010'		SRVOBJ		000463'		
ICH008		000013'		SRVOPD		000511'		
ICH013		000020'		SRVPSW		000477'		
ICH023		000032'		SRVSIZ		000066	spd	
ICH024		000033'		SRVUSR		000472'		
ICH025		000034'		STREAM		000053'		
ICH026		000035'		..LOC		001617'	spd	
ICH027		000036'		
ICH028		000037'		
ICH029		000040'		
ICH030		000041'		
ICH031		000042'		
ICH032		000043'		
ICH033		000044'		
ICH034		000045'		
ICH035		000046'		
ICHAOV		000011'		
ICHCDN		000005'		
ICHDAE		000016'		
ICHDAV		000004'		
ICHEOF		000015'		
ICHFOV		000012'		
ICHIEX		000025'		
ICHIFT		000026'		
ICHILI		000022'		
ICHINA		000006'		
ICHIRD		000023'		
ICHIWR		000024'		
ICHMSE		000027'		
ICHNXP		000031'		
ICHPOV		000014'		
ICHPSI		000003'		
ICHQTA		000017'		
ICHTOD		000021'		
ICHTRU		000030'		
LEV1PC		000062'	int	
LEVTAB		000000'		
LOGHDR		001616'		
LOGIFN		000061'		
MESSAG		000055'		
MSGARC		000572'		
MSGARF		000571'		
MSGARH		000573'		
MSGCNT		000565'		
MSGHDR		000566'		
MSGPTR		000564'		
C%INTR	   658
C%RECV	   252
C%REL	   270
C%SEND	   624
CHKFR1	   294#	   306
CHKFR2	   295	   301	   306#
CHKFR3	   309#	   312
CHKFRK	   241	   291#
CHKLEN	   120#
CHKQ.1	   251#	   271
CHKQ.3	   261#	   264
CHKQ.4	   263	   267#
CHKQ.5	   265	   270#
CHKQ.6	   271#
CHKQ.9	   253	   256#
CHKQUE	   239	   249#
CHKUAC	   466#
CHKUPW	   460#
CHKUSR	   362	   433#
CHNTAB	   160	   175	   648	   702#
CKUER1	   439	   440	   445	   446	   457	   476#
CKUER2	   463	   477#
CKUER3	   469	   481#
CLSJFN	   377	   631#
CPYSTR	   207	   334	   642#
CR%ACS	   500
CR%CAP	   500
CREFR1	   496	   500#
CREFR2	   510	   514	   518#
CREFRK	   311	   494#
CZ%ABT	   631
CZ%NCL	   632
D$CLOS	   407
D$FUNC	   391
D$INIT	   347
D$INTR	   664	   670	   676
D$OPEN	   383
D$STAT	   396
DAPEDT	    40	    40#	    42
DAPIB	   319#	   346
DAPOB	   354#	   382
DAPSRV	   371#	   389
DATEND	   132	   132#	   134	   202	   327
DATORG	   200	   201	   325	   326	   763#
DEBUGW	   205	   228	   235	   332
DF%LNK	   372
DI%CNT	   320
DIRBLK	   449	   780#
DIRNUM	   433
DIRPSW	   433
DO%CDN	   359
DO%DAV	   360
DO%INA	   361
DO%LNK	   358
DO%PSI	   357
DO%SRV	   355
DO%WCN	   356
ENTVEC	   151#	   803
ERRTXT	   797#
F%AOPN	   230
F%CHKP	   243
F%OBYT	   580
FAL	   151	   152	   198#
FALEDT	    37#	    42
FALIB	   157#	   209
FALMIN	    36#	    42
FALPIB	   161	   164#	   214
FALPID	   215	   616	   755#
FALVER	    35#	    42
FALWHO	    38#	    42
FB.BSZ	   187	   192
FILSIZ	   119#	   779
FNCTBL	   411#
FOB.CW	   187	   192
FOB.FD	   186	   191
FOB.SZ	   185	   190	   226
FRKCNT	   308	   343	   504	   515	   535	   758#
FRKFLG	   234	   240	   292	   315	   680	   757#
FRKTBL	   294	   495	   505	   511	   530	   753#
FWMASK	   158	   159	   160	   161	   169	   173	   174	   175	   176	   186	   191	   362	   363	   364
	   365	   366	   367	   368	   373
GJ%OLD	   220
GJ%SHT	   220
GJFSIZ	   118#
I%INIT	   210	   337
I%INT1	   657	   661	   667	   673	   679
I%SLP	   245	   394
IB.INT	   160	   175
IB.OUT	   159	   174
IB.PIB	   161	   176
IB.PRG	   158	   173
IB.SZ	   157	   172	   208	   335
ICH004	   707#
ICH005	   708#
ICH008	   711#
ICH013	   716#
ICH023	   726#
ICH024	   727#
ICH025	   728#
ICH026	   729#
ICH027	   730#
ICH028	   731#
ICH029	   732#
ICH030	   733#
ICH031	   734#
ICH032	   735#
ICH033	   736#
ICH034	   737#
ICH035	   738#
ICHAOV	   709#
ICHCDN	   705#
ICHDAE	   714#
ICHDAV	   704#
ICHEOF	   713#
ICHFOV	   710#
ICHIEX	   721#
ICHIFT	   722#
ICHILI	   718#
ICHINA	   706#
ICHIRD	   719#
ICHIWR	   720#
ICHMSE	   723#
ICHNXP	   725#
ICHPOV	   712#
ICHPSI	   703#
ICHQTA	   715#
ICHTOD	   717#
ICHTRU	   724#
INT.LV	   657	   661	   667	   673	   679
INTCDN	   661#	   705
INTDAV	   667#	   704
INTIFT	   679#	   722
INTINA	   673#	   706
INTPSI	   657#	   703
IP.CHN	   166	   181
IP.MNP	   168
IP.PSI	   167	   182
KILFR1	   535#
KILFRK	   305	   519	   529#
LEV1PC	   694	   767	   767#
LEVTAB	   160	   175	   648	   694#
LISTE1	   387#	   398	   403
LISTE2	   393#	   404
LISTE3	   392	   395#
LISTE5	   384	   401	   405#
LISTEN	   350	   376#	   409
LOG	   274	   279#
LOGCHR	   571	   578#
LOGDBG	   190#	   229
LOGFOB	   185#	   227
LOGHDR	   557	   564	   566	   568	   570	   573	   575	   585	   591	   597	   799#
LOGIFN	   231	   233	   242	   342	   376	   579	   760#
LOGMS1	   558	   565#
LOGMS2	   565	   573#
LOGMSG	   159	   557#
LOGSN1	   546#	   551
LOGSNM	   539#
LSTIN.	    28	   162	   163	   163#	   170	   171	   171#	   177	   178	   178#	   183	   184	   184#	   188
	   189	   189#	   193	   194	   194#	   213	   213#	   280	   280#	   287	   292	   303	   304	   321
	   322	   322#	   350	   350#	   369	   370	   370#	   374	   375	   375#	   386	   409	   554	   560
	   562	   564	   568	   575	   687	   688	   688#
M	   107#	   251	   256	   257	   258	   280	   282	   283
MAIN	   238#	   246
MAXNOD	   116#	   117
MAXSRV	   114#	   168	   293	   494	   753
MD.ADR	   256
MDB.MS	   256
MESSAG	   251	   257	   756#
MINSRV	   113#	   309
MO%ABT	   399
MO%CDN	   359
MO%CON	   400
MO%DAV	   360
MO%EOM	   397	   402
MO%INA	   361
MO%SYN	   399
MS.TYP	   258
MSGARC	   603	   605	   794#
MSGARF	   793#
MSGARH	   283	   601	   604	   606	   795#
MSGCH1	   586	   592#
MSGCH2	   598#
MSGCHR	   174	   585#
MSGCNT	   590	   592	   788#
MSGHDR	   282	   283	   599	   606	   607	   608	   792#
MSGPTR	   588	   593	   594	   596	   602	   787#
MSGSIZ	   122#	   589	   796
MSGTBL	   261	   267	   274#	   276
MSGTXT	   282	   587	   796#
MSHSIZ	   792
MT.TXT	   274	   598
NFKPGS	   134#	   508
NMSGT	   259	   276#
NOLOG	   223	   233#
P	    28	   199	   268	   280	   324	   433	   441	   447	   448	   455	   460	   466	   470	   471
	   539	   544	   552
P1	   291	   293	   294	   304	   306
P2	   291
P3	   291
P4	   291
P5	   106#
PB.FLG	   167	   182
PB.HDR	   165	   180
PB.INT	   166	   181
PB.LEN	   165	   180
PB.MXS	   164	   165	   179	   180
PB.NAM	   169
PB.PID	   214
PB.SYS	   168
PDL	   199	   324	   769#
PDLEN	   117#	   199	   324	   769
PM%CNT	   508
PM%CPY	   508
PM%EX	   508
PM%RD	   508
PSIINI	   219	   341	   647#
RC%EMO	   435
RELJFN	   387	   632#
REMSWS	   783#
RF%STS	   297
S1	   201	   202	   203	   208	   211	   216	   220	   226	   231	   242	   244	   256	   258	   262
	   280	   281	   282	   294	   295	   297	   304	   308	   309	   313	   314	   326	   327	   330
	   335	   338	   345	   378	   381	   388	   393	   395	   397	   399	   400	   402	   405	   435
	   448	   460	   463	   466	   470	   478	   481	   500	   505	   506	   507	   511	   515	   518
	   530	   531	   535	   541	   546	   548	   549	   552	   565	   569	   578	   579	   594	   595
	   596	   598	   599	   600	   601	   602	   603	   604	   606	   607	   620	   622	   631	   632
	   647	   662	   668	   674
S2	   204	   206	   209	   214	   215	   221	   227	   229	   283	   284	   331	   333	   336	   346
	   379	   382	   389	   406	   436	   442	   449	   451	   454	   461	   467	   471	   476	   477
	   482	   501	   506	   512	   532	   543	   578	   587	   588	   589	   590	   608	   619	   621
	   623	   648	   650	   663	   669	   675
SAB.LN	   620
SAB.MS	   621
SAB.PD	   617
SAB.SZ	   622	   786
SLPTIM	   238	   244	   314	   759#
SNDFAL	   609	   616#
SNDMSG	   618#
SNDSAB	   617	   620	   621	   623	   786#
SRV	   323#	   512
SRVACT	   367	   452	   453	   467	   777#
SRVBEG	   379	   773#	   781
SRVFIL	   373	   779#
SRVIB	   172#	   336
SRVINI	   236	   345#
SRVLNK	   111#	   358	   372	   395	   405	   662	   668	   674
SRVNOD	   363	   774#
SRVOBJ	   169	   203	   330	   364	   771#
SRVOPD	   368	   778#
SRVPIB	   176	   179#
SRVPSW	   366	   461	   776#
SRVSIZ	   378	   781#
SRVUSR	   365	   436	   775#
STREAM	   279	   280	   281	   328	   329	   560	   562	   618	   754#
SYSNAM	   539
T%TEXT	   286	   302	   303	   385	   408	   553	   559	   561	   563	   567	   574
T1	   261	   262	   267	   268	   297	   298	   299	   390	   404	   437	   440	   441	   442	   443
	   446	   447	   450	   451	   452	   454	   455	   508	   543	   546	   550	   616	   617	   618
	   619	   642
T2	   259	   261	   264	   267	   328	   494	   495	   497	   505	   511	   518	   529	   530	   531
	   532	   544	   545	   549	   551
T4	   291
TXT.FN	   213	   350
USRNUM	   433
VFAL	    42#	   146	   153
$DIRNU	   433#
$DIRPS	   433#
$RETF	    28	   254	   316	   479	   483	   498	   520
$RETIF	    28
$RETIT	    28
$RETT	    28	   285	   287	   310	   472	   516	   536	   554	   576	   581	   610	   625	   635	   653
$SYSNA	   539#
$USRNU	   433#
%%.MOD	   158	   213	   350
%DF%LN	   372
%DI%CN	   320
%DO%CD	   359
%DO%DA	   360
%DO%IN	   361
%DO%LN	   358
%DO%PS	   357
%DO%SR	   355
%DO%WC	   356
%FB.BS	   187	   192
%FWMAS	   158	   159	   160	   161	   169	   173	   174	   175	   176	   186	   191	   362	   363	   364
	   365	   366	   367	   368	   373
%IP.CH	   166	   181
%IP.MN	   168
%IP.PS	   167	   182
%MD.AD	   256	   257
%MS.TY	   258	   259
%PB.LE	   165	   180
%RF%ST	   297	   298
..0001	   280	   280#
..0002	   292#
..BLOC	   157#	   162	   163	   164#	   170	   171	   172#	   177	   178	   179#	   183	   184	   185#	   188
	   189	   190#	   193	   194	   319#	   321	   322	   354#	   369	   370	   371#	   374	   375
..BSIZ	   157	   157#	   158	   159	   160	   161	   162	   163	   164	   164#	   165	   166	   167	   168
	   169	   170	   171	   172	   172#	   173	   174	   175	   176	   177	   178	   179	   179#	   180
	   181	   182	   183	   184	   185	   185#	   186	   187	   188	   189	   190	   190#	   191	   192
	   193	   194	   319	   319#	   320	   321	   322	   354	   354#	   355	   356	   357	   358	   359
	   360	   361	   362	   363	   364	   365	   366	   367	   368	   369	   370	   371	   371#	   372
	   373	   374	   375
..CSC	   256#	   256	   257	   257#	   258#	   258	   259	   259#	   297#	   297	   298	   298#
..CSN	   256#	   256	   258#	   258	   297#	   297
..LOC	   753#	   754#	   755#	   756#	   757#	   758#	   759#	   760#	   763#	   767#	   769#	   771#	   773#	   774#
	   775#	   776#	   777#	   778#	   779#	   780#	   783#	   786#	   787#	   788#	   792#	   793#	   794#	   795#
	   796#	   797#	   799#
..MX1	   204#	   205	   206#	   207	   220#	   220	   221	   331#	   332	   333#	   334	   435#	   435	   436
	   477#	   478	   478#	   479	   481#	   481	   482	   482#	   483	   500#	   500	   501	   508#	   509
	   541#	   541	   542	   632#	   632	   633	   650#	   650	   651
..MX2	   220#	   220	   221	   435#	   435	   436	   478#	   479	   481#	   482	   500#	   500	   501	   541#
	   541	   542	   632#	   632	   633	   650#	   650	   651
..PST	   256#	   256	   258#	   258	   297#	   297
..STKN	   433#	   433	   434	   435	   539#	   539	   540	   541
..STKQ	   433#	   433	   435	   539#	   539	   541
..STKR	   433#	   435	   539#	   541
..T	   163#	   163	   171#	   171	   178#	   178	   184#	   184	   189#	   189	   194#	   194	   322#	   322
	   370#	   370	   375#	   375
..T0	   157#	   159	   159#	   163	   164#	   165	   165#	   171	   172#	   174	   174#	   178	   179#	   180
	   180#	   184	   185#	   186	   186#	   189	   190#	   191	   191#	   194	   319#	   320	   320#	   322
	   354#	   355	   355#	   356	   356#	   357	   357#	   358	   358#	   370	   371#	   372	   372#	   375
..T1	   157#	   163	   164#	   171	   172#	   178	   179#	   184	   185#	   187	   187#	   189	   190#	   192
	   192#	   194	   319#	   322	   354#	   363	   363#	   370	   371#	   375
..T10	   354#	   368	   368#	   370	   371#	   375
..T11	   354#	   370	   371#	   375
..T12	   354#	   359	   359#	   360	   360#	   361	   361#	   370
..T13	   354#	   362	   362#	   370
..T14	   354#	   370
..T2	   157#	   160	   160#	   163	   164#	   167	   167#	   171	   172#	   175	   175#	   178	   179#	   182
	   182#	   184	   185#	   189	   190#	   194	   354#	   364	   364#	   370	   371#	   375
..T3	   157#	   161	   161#	   163	   164#	   166	   166#	   171	   172#	   176	   176#	   178	   179#	   181
	   181#	   184	   185#	   189	   190#	   194	   354#	   370	   371#	   373	   373#	   375
..T4	   157#	   163	   164#	   168	   168#	   171	   172#	   178	   179#	   184	   185#	   189	   190#	   194
	   354#	   370	   371#	   375
..T5	   157#	   158	   158#	   163	   164#	   169	   169#	   171	   172#	   173	   173#	   178	   179#	   184
	   354#	   365	   365#	   370	   371#	   375
..T6	   164#	   171	   179#	   184	   354#	   366	   366#	   370	   371#	   375
..T7	   164#	   171	   179#	   184	   354#	   367	   367#	   370	   371#	   375
..TMSK	   158#	   158	   159#	   159	   160#	   160	   161#	   161	   165#	   165	   166#	   166	   167#	   167
	   168#	   168	   169#	   169	   173#	   173	   174#	   174	   175#	   175	   176#	   176	   180#	   180
	   181#	   181	   182#	   182	   186#	   186	   187#	   187	   191#	   191	   192#	   192	   320#	   320
	   355#	   355	   356#	   356	   357#	   357	   358#	   358	   359#	   359	   360#	   360	   361#	   361
	   362#	   362	   363#	   363	   364#	   364	   365#	   365	   366#	   366	   367#	   367	   368#	   368
	   372#	   372	   373#	   373
..TSA1	   279#	   279	   291#	   291
..TVAL	   158#	   158	   159#	   159	   160#	   160	   161#	   161	   165#	   165	   166#	   166	   167#	   167
	   168#	   168	   169#	   169	   173#	   173	   174#	   174	   175#	   175	   176#	   176	   180#	   180
	   181#	   181	   182#	   182	   186#	   186	   187#	   187	   191#	   191	   192#	   192	   320#	   320
	   355#	   355	   356#	   356	   357#	   357	   358#	   358	   359#	   359	   360#	   360	   361#	   361
	   362#	   362	   363#	   363	   364#	   364	   365#	   365	   366#	   366	   367#	   367	   368#	   368
	   372#	   372	   373#	   373
..TX1	   397#	   397	   398	   399#	   399	   400	   400#	   401	   402#	   402	   403
..TX2	   397#	   397	   398	   399#	   399	   400	   400#	   401	   402#	   402	   403
..TXB	   213#	   213	   350#	   350
..TXC	   213#	   213	   350#	   350
..TXEF	   213#	   213	   350#	   350
..TXEG	   213#	   213	   350#	   350
..TXF	   213#	   213	   350#	   350
..TXP	   213#	   213	   350#	   350
.A13	   292
.A14	   292
.A15	   292
.A16	   291	   292
.ACB	   279#	   279	   291#	   291
.ACM	   279#	   280	   291#	   291	   292
.CDDAC	   450	   454	   780
.CDLEN	   451
.CHLFD	   569
.CKAUD	   120
.CMTXT	   600
.DCX34	   478
.DCX36	   481
.DCX38	   406
.DFFLG	   372
.DFLFS	   373
.DFSIZ	   371	   388
.DICDN	   663
.DIDAV	   669
.DIFLG	   320
.DIINA	   675
.DISIZ	   319	   345
.DOACT	   367
.DOCID	   362
.DOFLG	   355	   356	   357	   358
.DONOD	   363
.DOOBJ	   364
.DOOPD	   368
.DOPSI	   359	   360	   361
.DOPSW	   366
.DOSIZ	   354	   381
.DOUSR	   365
.FHSLF	   507	   631	   632	   647
.ICCDN	   129#	   359	   650
.ICDAV	   128#	   360	   650
.ICIFT	   650
.ICIMA	   130#	   361	   650
.ICIPC	   127#	   166	   181	   650
.JBFF	    44#
.JBVER	   146#
.MSCOD	   280	   619
.MSIIC	   216	   338
.MSTYP	   258
.NVR	   279#	   279	   280	   280#	   291#	   291	   292
.POPJ	    28
.PSECT	   204	   205	   206	   207	   220	   221	   279	   291	   331	   332	   333	   334	   397	   398
	   399	   400	   401	   402	   403	   435	   436	   477	   478	   479	   481	   482	   483	   500
	   501	   508	   509	   541	   542	   632	   633	   650	   651
.RETF	    28	   503
.RETT	    28	   595
.RFFPT	   299
.RFHLT	   298
.SAVE1	   291
.STKST	   433	   539
.STOP	   213	   349
.TQCHT	   213	   350
.ZCHNK	   380
AIC	   651
BLD0.	   157	   163	   164	   171	   172	   178	   179	   184	   185	   189	   190	   194	   319	   322
	   354	   370	   371	   375
CFORK	   502
CLZFF	   633
DIRNUM	   433#	   433	   447	   448	   466	   471
DIRPSW	   433#	   433	   455	   460
DO%CDN	   359
DO%DAV	   360
DO%INA	   361
EIR	   652
ERJMP	   213	   218	   223	   340	   439	   445	   457	   469	   503	   510	   514	   534	   634
FLD	   158	   159	   160	   161	   165	   166	   167	   168	   169	   173	   174	   175	   176	   180
	   181	   182	   186	   187	   191	   192	   213	   320	   350	   355	   356	   357	   358	   359
	   360	   361	   362	   363	   364	   365	   366	   367	   368	   372	   373
GETAB	   547
GLOB	    28	    40	   132
GTDIR	   456
GTJFN	   222
ITEXT	   213	   350
JUMPF	    28	   384	   392
JUMPT	    28	   253	   312	   398
KFORK	   533
LOAD	   256	   258	   297
LSTOF.	    28	   162	   170	   177	   183	   188	   193	   213	   280	   287	   303	   304	   321	   350
	   369	   374	   386	   409	   554	   560	   562	   564	   568	   575	   687
LSTON.	   163	   171	   178	   184	   189	   194	   213	   280	   292	   322	   350	   370	   375	   688
MOVX	   204	   206	   220	   331	   333	   435	   477	   478	   481	   482	   500	   508	   541	   632
	   650
MSTR	   217	   339
PJRST	    28	   571	   609
PMAP	   509
POINTR	   297
POS	   158	   159	   160	   161	   165	   166	   167	   168	   169	   173	   174	   175	   176	   180
	   181	   182	   186	   187	   191	   192	   213	   297	   320	   350	   355	   356	   357	   358
	   359	   360	   361	   362	   363	   364	   365	   366	   367	   368	   372	   373
PROLOG	    27
RCDIR	   444
RCUSR	   438
RESET	   198	   323
RFSTS	   296
RLJFN	   224
SET0.	   158	   159	   160	   161	   165	   166	   167	   168	   169	   173	   174	   175	   176	   180
	   181	   182	   186	   187	   191	   192	   320	   355	   356	   357	   358	   359	   360	   361
	   362	   363	   364	   365	   366	   367	   368	   372	   373
SFORK	   513
SIR	   649
SKIPT	   232	   348
SOUT	   643
STCMP	   462
STDEV	   212
STKVAR	   433	   539
SYSGT	   542
SYSNAM	   539#	   539	   544	   552
TXNE	   397	   402
TXNN	   399	   400
TXT	   137#	   204	   206	   331	   333	   411	   412	   413	   414	   415	   416	   417	   418	   419
	   476	   477	   482
USRNUM	   433#	   433	   441	   470
VACCT	   468
VRSN.	    42
WID	   297
XP	   111	   113	   114	   116	   117	   118	   119	   120	   122	   127	   128	   129	   130
$BGINT	   657	   661	   667	   673	   679
$BUILD	   157	   164	   172	   179	   185	   190	   319	   354	   371
$CALL	   207	   210	   213	   219	   230	   239	   241	   243	   245	   252	   270	   286	   291	   302
	   303	   305	   311	   334	   337	   341	   347	   349	   377	   380	   383	   385	   387	   391
	   394	   396	   407	   408	   433	   519	   539	   553	   559	   561	   563	   567	   574	   580
	   624	   657	   658	   661	   664	   667	   670	   673	   676	   679
$DATA	   748#	   753	   754	   755	   756	   757	   758	   759	   760	   763	   767	   769	   771	   773
	   774	   775	   776	   777	   778	   779	   780	   783	   786	   787	   788	   792	   793	   794
	   795	   796	   797	   799
$DEBRK	   659	   665	   671	   677	   681
$EOB	   162	   170	   177	   183	   188	   193	   321	   369	   374
$FATAL	   213	   349
$FD	   139#	   186	   191
$GDATA	   767
$RET	    28#	    28	   644	   659	   665	   671	   677	   681
$RETF	    28#
$RETIF	    28#
$RETIT	    28#
$RETT	    28#
$SAVE	   279	   291
$SET	   158	   159	   160	   161	   165	   166	   167	   168	   169	   173	   174	   175	   176	   180
	   181	   182	   186	   187	   191	   192	   320	   355	   356	   357	   358	   359	   360	   361
	   362	   363	   364	   365	   366	   367	   368	   372	   373
$TEXT	   286	   302	   303	   385	   408	   553	   559	   561	   563	   567	   574
..CAS1	   256	   258	   297
..CNS	   213#	   213	   350#	   350
..CNS2	   213#	   213	   350#	   350
..GCNS	   213	   350
..ICNS	   213	   350
..LDB	   256	   258	   297
..POP	   280
..PUSH	   280
..SET	   158	   159	   160	   161	   165	   166	   167	   168	   169	   173	   174	   175	   176	   180
	   181	   182	   186	   187	   191	   192	   320	   355	   356	   357	   358	   359	   360	   361
	   362	   363	   364	   365	   366	   367	   368	   372	   373
..STR0	   158	   159	   160	   161	   165	   166	   167	   168	   169	   173	   174	   175	   176	   180
	   181	   182	   186	   187	   191	   192	   256	   258	   297	   320	   355	   356	   357	   358
	   359	   360	   361	   362	   363	   364	   365	   366	   367	   368	   372	   373
..TEXT	   213	   350
..TSAC	   279	   291
..TSIZ	   256	   258	   297
..TX	   397	   399	   400	   402
..TXC0	   213	   350
..TXC1	   213	   350
..TXQ	   213	   350
..TXQ0	   213	   350
.BGINT	   657	   661	   667	   673	   679
.CASE	   256	   258	   297
.NV1	   280#	   280
.STKV1	   433	   539
.STKV2	   433	   539
.STKV3	   433	   539