;   0001  0	MODULE KERMIT (IDENT = '3.2.074',
;   0002  0			MAIN = MAIN_ROUTINE
;   0003  0			) =
;   0004  1	BEGIN
;   0005  1	
;   0006  1	BIND
;   0007  1	    IDENT_STRING = %ASCID'VMS Kermit-32 version 3.2.074';	![012] Ident message
;   0008  1	
;   0009  1	!++
;   0010  1	! FACILITY:
;   0011  1	!   KERMIT-32
;   0012  1	!
;   0013  1	! ABSTRACT:
;   0014  1	!   KERMIT-32 is an implementation of the KERMIT protocal to allow the
;   0015  1	!   transfer of files from micro computers to the DECsystem-10, DECSYSTEM-20
;   0016  1	!   and now the VAX/VMS systems.
;   0017  1	!
;   0018  1	! ENVIRONMENT:
;   0019  1	!   User mode
;   0020  1	!
;   0021  1	! AUTHOR: Robert C. McQueen, CREATION DATE: 24-January-1983
;   0022  1	!
;   0023  1	! MODIFIED BY:
;   0024  1	!
;   0025  1	!--
;   0026  1	
;   0027  1	%SBTTL 'Table of Contents'
;   0028  1	%SBTTL 'Revision History'
;   0029  1	
;   0030  1	!++
;   0031  1	! Start of version 1.
;   0032  1	!
;   0033  1	! 1.0.000	By: Robert C. McQueen		On: 4-Jan-1983
;   0034  1	!		Create this program.
;   0035  1	!
;   0036  1	! 1.0.001	By: Robert C. McQueen		On: 4-May-1983
;   0037  1	!		Allow RECEIVE without a file specification to mean
;   0038  1	!		use what ever the remote says.
;   0039  1	!
;   0040  1	! 1.1.002	By: W. Hom			On: 6-July-1983
;   0041  1	!		Implement CONNECT command.
;   0042  1	!
;   0043  1	! 1.2.003	By: Robert C. McQueen		On: 15-Aug-1983
;   0044  1	!		Add SET PARITY command and SHOW PARITY to support
;   0045  1	!		eight bit quoting.
;   0046  1	!
;   0047  1	! 1.2.004	By: Robert C. McQueen		On: 23-August-1983
;   0048  1	!		Add dummy routine SY_TIME.
;   0049  1	!
;   0050  1	! 1.2.005	By: Robert C. McQueen		On: 23-August-1983
;   0051  1	!		Add SET [SEND | RECEIVE] EIGHT-BIT-QUOTE <octal>
;   0052  1	!		command.  Add message for SHOW RECEIVE and SHOW SEND parameters
;   0053  1	!
;   0054  1	! 1.2.006	By: Robert C. McQueen		On: 26-August-1983
;   0055  1	!		Add BYE, FINISH and LOGOUT commands.  These commands call
;   0056  1	!		DO_GENERIC to send generic functions to remote servers.
;   0057  1	!
;   0058  1	! 1.2.007	By: Robert C. McQueen		On: 16-September-1983
;   0059  1	!		Implement SY_TIME, and XFR_STATUS routines.
;   0060  1	!		Add more stat type out.
;   0061  1	!
;   0062  1	! 1.2.008	By: Robert C. McQueen		On: 19-September-1983
;   0063  1	!		Add the SET RETRY command and the SHOW RETRY command.
;   0064  1	!
;   0065  1	! 1.2.009	By: Robert C. McQueen		On: 20-September-1983
;   0066  1	!		Add CRCCLC routine for calculating CRC-CCITT.
;   0067  1	!		Set SET BLOCK_CHECK_TYPE and SHOW BLOCK_CHECK_TYPE commands.
;   0068  1	!
;   0069  1	! 1.2.010	By: Nick Bush			On: 3-October-1983
;   0070  1	!		SERVER (in KERMSG) actually returns a value.  If it
;   0071  1	!		is "ABORTED", then we should prompt again.  This allows
;   0072  1	!		a ^Y typed to the server to put it back into command
;   0073  1	!		level.  (If you want to type out statistics or whatever).
;   0074  1	!
;   0075  1	! 2.0.011	Release VAX/VMS Kermit-32 version 2.0
;   0076  1	!
;   0077  1	! 2.0.012	By: Nick Bush			On: 10-Nov-1983
;   0078  1	!		Add type out of version number.  Also fix some
;   0079  1	!		problems with IBM mode and local echo.
;   0080  1	!
;   0081  1	! 2.0.013	By: Nick Bush			On: 11-Nov-1983
;   0082  1	!		Change how debugging output is done so that it
;   0083  1	!		can be redirected to the logical device KER$DEBUG.
;   0084  1	!		If the logical name is defined to be something other
;   0085  1	!		that SYS$OUTPUT, KERMIT will send any debugging output
;   0086  1	!		there.
;   0087  1	!
;   0088  1	! 2.0.014	By: Robert C. McQueen		On: 16-Nov-1983
;   0089  1	!		Make sure all message number checks are mod 64.  There
;   0090  1	!		were four that weren't.
;   0091  1	!
;   0092  1	! 2.0.015	By: Nick Bush			On: 17-Nov-1983
;   0093  1	!		Always clear purge typeahead when posting receive QIO.
;   0094  1	!		Also, clear any typeahead just before sending a packet.
;   0095  1	!
;   0096  1	! 2.0.016	By: Nick Bush			On: 4-Dec-1983
;   0097  1	!		Change how binary files are written to (hopefully) improve
;   0098  1	!		the performance.  We will now use 510 records and only
;   0099  1	!		write out the record when it is filled (instead of writing
;   0100  1	!		one record per packet).  This should cut down on the overhead
;   0101  1	!		substantially.
;   0102  1	!
;   0103  1	! 2.0.017	By: Nick Bush			On: 9-Dec-1983
;   0104  1	!		Fix processing for VFC format files.  Also fix GET_ASCII
;   0105  1	!		for PRN and FTN record types.  Change GET_ASCII so that
;   0106  1	!		'normal' CR records get sent with trailing CRLF's instead
;   0107  1	!		of <LF>record<CR>.  That was confusing too many people.
;   0108  1	!
;   0109  1	! 2.0.020	By: Nick Bush			On: 9-Dec-1983
;   0110  1	!		Only abort (when remote) if we seen two control-Y's in
;   0111  1	!		succession.  This way a single glitch does not kill us.
;   0112  1	!
;   0113  1	! 2.0.021	By: Nick Bush			On: 12-Dec-1983
;   0114  1	!		Add status type-out character (^A), debug toggle
;   0115  1	!		character (^D), and force timeout character (^M)
;   0116  1	!		to those accepted during a transfer when we are remote.
;   0117  1	!
;   0118  1	! 2.0.022	By: Nick Bush			On: 15-Dec-1983
;   0119  1	!		Add Fixed record size (512 byte) format for writing files.
;   0120  1	!		This can be used for .EXE files.  Also clean up writing
;   0121  1	!		ASCII files so that we don't lose any characters.
;   0122  1	!
;   0123  1	! 2.0.023	By: Nick Bush			On: 16-Dec-1983
;   0124  1	!		Add a default terminal name for the communications line.
;   0125  1	!		If KER$COMM is defined, that will be the default.
;   0126  1	!
;   0127  1	! 2.0.025	By: Robert C. McQueen		On: 22-Dec-1983
;   0128  1	!		Use RMSG_COUNT and SMSG_COUNT now.
;   0129  1	!
;   0130  1	! 2.0.026	By: Nick Bush			On: 3-Jan-1984
;   0131  1	!		Add options for format of file specification to be
;   0132  1	!		sent in file header packets.  Also type out full file
;   0133  1	!		specification being sent/received instead of just
;   0134  1	!		the name we are telling the other end to use.
;   0135  1	!
;   0136  1	! 2.0.027	By: Nick Bush			On: 20-Jan-1984
;   0137  1	!		Fix reset of parity to use the correct field in the
;   0138  1	!		IO status block from the IO$_SENSEMODE.  It was using
;   0139  1	!		the LF fill count instead.
;   0140  1	!
;   0141  1	! 2.0.030	By: Nick Bush			On: 3-Feb-1984
;   0142  1	!		Add the capability of receiving a file with a different
;   0143  1	!		name than given by KERMSG.  The RECEIVE and GET commands
;   0144  1	!		now really are different.
;   0145  1	!
;   0146  1	! 2.0.031	By: Nick Bush			On: 4-Feb-1984
;   0147  1	!		Change connect code to improve response (hopefully
;   0148  1	!		without worsening throughput or runtime requirements).
;   0149  1	!		When either terminal is idle we will be waiting for
;   0150  1	!		a single character with a larger buffered read queued
;   0151  1	!		up immediately after it.
;   0152  1	!
;   0153  1	! 2.0.032	By: Nick Bush			On: 25-Feb-1984
;   0154  1	!		Add code for LOCAL and REMOTE commands.  These depend
;   0155  1	!		upon support in KERMSG and KERSYS.
;   0156  1	!
;   0157  1	! 2.0.033	By: Nick Bush			On: 6-March-1984
;   0158  1	!		Change command input and terminal processing so that
;   0159  1	!		we will always have SYS$OUTPUT and SYS$COMMAND open
;   0160  1	!		when they are terminals, and will also always have
;   0161  1	!		the transfer terminal line open.  This makes it
;   0162  1	!		unnecessary for the user to allocate a dialup line
;   0163  1	!		in order to go between CONNECT and a transfer command,
;   0164  1	!		and keep anyone else from grabbing the line between
;   0165  1	!		commands.
;   0166  1	!		Also add the command parsing for the rest of the LOCAL/REMOTE
;   0167  1	!		commands.  This makes use of the fact that we have
;   0168  1	!		SYS$COMMAND open to allow us to read passwords without echo.
;   0169  1	!		Commands which should only be done when Kermit is local
;   0170  1	!		(GET, BYE, etc.) will now give an error if the transfer
;   0171  1	!		line is the same as the controlling terminal.
;   0172  1	!		SEND will now check for the files existance before calling
;   0173  1	!		KERMSG to send it.
;   0174  1	!
;   0175  1	! 2.0.034	By: Nick Bush				On: 7-March-1984
;   0176  1	!		Default the parity type to be that of the default transfer
;   0177  1	!		line.  This should make things simpler for systems which use
;   0178  1	!		parity by default.
;   0179  1	!
;   0180  1	! 2.0.035	By: Nick Bush				On: 8-March-1984
;   0181  1	!		Add LOG SESSION command to set a log file for CONNECT.
;   0182  1	!		While we are doing so, clean up the command parsing a little
;   0183  1	!		so that we don't have as many COPY_xxx routines.
;   0184  1	!
;   0185  1	! 2.0.036	By: Nick Bush				On: 15-March-1984
;   0186  1	!		Fix PUT_FILE to correctly handle carriage returns which are
;   0187  1	!		not followed by line feeds.  Count was being decremented
;   0188  1	!		Instead of incremented.
;   0189  1	!
;   0190  1	! 2.0.037	By: Robert C. McQueen			On: 20-March-1984
;   0191  1	!		Fix call to LOG_OPEN for debug log file.
;   0192  1	!		Module: KERTRM.
;   0193  1	!
;   0194  1	! 2.0.040	By: Nick Bush				On: 22-March-1984
;   0195  1	!		Fix processing of FORTRAN carriage control to handle lines
;   0196  1	!		which do not contain the carriage control character (i.e., zero
;   0197  1	!		length records).  Previously, this type of record was sending
;   0198  1	!		infinite nulls.
;   0199  1	!
;   0200  1	! 2.0.041	By: Nick Bush				On: 26-March-1984
;   0201  1	!		Add SET PROMPT command.
;   0202  1	!
;   0203  1	! 2.0.042	By: Nick Bush				On: 26-March-1984
;   0204  1	!		Fix connect processing to make it easy to type messages
;   0205  1	!		on the user's terminal while connected.  Use this
;   0206  1	!		to type messages when log file stopped and started.
;   0207  1	!		Include the node name in the messages to keep
;   0208  1	!		users who are running through multiple Kermit's from
;   0209  1	!		getting confused.
;   0210  1	!
;   0211  1	! 2.0.043	By: Nick Bush				On: 28-March-1984
;   0212  1	!		Fix SET PARITY ODD to work.  Somehow, the table entry
;   0213  1	!		had PR_NONE instead of PR_ODD.  Also add status type
;   0214  1	!		out and help message to connect command.
;   0215  1	!
;   0216  1	! 2.0.044	By: Nick Bush				On: 28-March-1984
;   0217  1	!		Fix SET SEND START_OF_PACKET to store in SND_SOH instead
;   0218  1	!		of RCV_SOH.  Also, set TY_FIL false before calling FILE_OPEN
;   0219  1	!		to check for existence of send files.
;   0220  1	!
;   0221  1	! 3.0.045	Start of version 3.
;   0222  1	!
;   0223  1	! 3.0.046	By: Nick Bush				On: 29-March-1984
;   0224  1	!		Fix debugging log file to correctly set/clear file open
;   0225  1	!		flag.  Also make log files default to .LOG.
;   0226  1	!
;   0227  1	! 3.0.047	By: Nick Bush				On: 30-March-1984
;   0228  1	!		Fix SEND command processing to save and restore the file
;   0229  1	!		specification over the call to FILE_OPEN, since FILE_OPEN
;   0230  1	!		rewrites it with the resulting file name, losing any
;   0231  1	!		wild-cards.
;   0232  1	!
;   0233  1	! 3.0.050	By: Nick Bush				On: 2-April-1984
;   0234  1	!		Add SET SERVER_TIMER to determine period between idle naks.
;   0235  1	!		Also allow for a routine to process file specs before
;   0236  1	!		FILE_OPEN uses them.  This allows individual sites to
;   0237  1	!		restrict the format of file specifications used by Kermit.
;   0238  1	!
;   0239  1	! 3.0.051	By: Nick Bush				On: 2-April-1984
;   0240  1	!		Fix command scanning to correctly exit after performing
;   0241  1	!		a single command when entered with a command present.
;   0242  1	!
;   0243  1	! 3.1.052	By: Nick Bush				On: 3-July-1984
;   0244  1	!		Fix KERCOM's definition of MAX_MSG to allow for all characters
;   0245  1	!		of packet to fit into buffers, not just the counted ones.
;   0246  1	!
;   0247  1	! 3.1.053	By: Robert C. McQueen			On: 9-July-1984
;   0248  1	!		Fix FORTRAN carriage control processing to pass along
;   0249  1	!		any character from the carriage control column that is
;   0250  1	!		not really carriage control.
;   0251  1	!
;   0252  1	! 3.1.054	By: Nick Bush				On: 13-July-1984
;   0253  1	!		Change TERM_OPEN to take an argument which determines
;   0254  1	!		whether it should post any QIO's.  This makes it unnecessary
;   0255  1	!		for TERM_CONNECT to cancel the QIO's, and avoids problems
;   0256  1	!		with DECnet remote terminals.
;   0257  1	!
;   0258  1	! 3.1.055	By: Nick Bush				On: 27-August-1984
;   0259  1	!		Clear out FILE_SIZE before processing a RECEIVE command to
;   0260  1	!		ensure that KERMSG doesn't perform a GET.
;   0261  1	!
;   0262  1	! 3.1.056	By: Nick Bush				On: 28-August-1984
;   0263  1	!		Add a TAKE (or @) command.  Also perform an initialization
;   0264  1	!		file on startup.  This file is either VMSKERMIT.INI or
;   0265  1	!		whatever file is pointed to by the logical name VMSKERMIT.
;   0266  1	!
;   0267  1	! 3.1.057	By: Nick Bush				On: 21-Feb-1985
;   0268  1	!		Determine VMS version on startup and remember for later
;   0269  1	!		use.  Use it in KERSYS to determine whether we will need
;   0270  1	!		to force an end-of-file on the mailbox when the subprocess
;   0271  1	!		on the other end goes away.
;   0272  1	!
;   0273  1	! 3.1.060	By: Nick Bush				On: 16-March-1985
;   0274  1	!		Increase size of terminal name buffers to account for large
;   0275  1	!		unit numbers (most likely seen with VTA's).
;   0276  1	!
;   0277  1	! 3.1.061	By: Nick Bush				On: 16-March-1985
;   0278  1	!		Only attempt to set parity back when closing terminal.
;   0279  1	!
;   0280  1	! 3.1.062	By: Nick Bush				On: 16-March-1985
;   0281  1	!		Previous edit broke remote commands - must post QIO's
;   0282  1	!		when opening terminals for these.
;   0283  1	!
;   0284  1	! 3.1.063	By: Nick Bush				On: 16-March-1985
;   0285  1	!		Fix status command to output right headers over data.
;   0286  1	!
;   0287  1	! 3.1.064	By: Nick Bush				On: 30-March-1985
;   0288  1	!		Fix LIB$SPAWN call to set SYS$INPUT for the subprocess
;   0289  1	!		to be NLA0: so that it doesn't try to input from the
;   0290  1	!		terminal.
;   0291  1	!
;   0292  1	! 3.1.065	By: Nick Bush				On: 10-April-1985
;   0293  1	!		Split IBM handshaking from parity and local echo.  Allow
;   0294  1	!		link time setting of IBM_MODE defaults by defining symbols:
;   0295  1	!
;   0296  1	!		IBM_MODE_CHARACTER = character value of handshake character
;   0297  1	!		IBM_MODE_ECHO = 1 for local echo, 2 for no local echo
;   0298  1	!		IBM_MODE_PARITY = (0 = none), (1 = mark), (2 = even),
;   0299  1	!		    (3 = odd), (4 = space).
;   0300  1	!
;   0301  1	!		If not specified, Kermit will continue to use DC1, local echo
;   0302  1	!		and odd parity for IBM_MODE.
;   0303  1	!
;   0304  1	! 3.1.066	By: Nick Bush				On: 22-April-1985
;   0305  1	!		Don't use NLA0: as SYS$INPUT when spawning things under VMS 3.
;   0306  1	!
;   0307  1	!
;   0308  1	! Start version 3.2 on 8-May-1985
;   0309  1	!
;   0310  1	! 3.2.067	By: Robert McQueen			On: 8-May-1985
;   0311  1	!		Use $GETJPIW and $GETDVIW instead of $GETJPI and $GETDVI.
;   0312  1	!		Module: KERTRM, KERFIL
;   0313  1	!
;   0314  1	! 3.2.070	By: Robert McQueen			On: 17-Dec-1985
;   0315  1	!		Fix a problem with CRC calculations when 8 bit data and not
;   0316  1	!		8 bit quoting.
;   0317  1	!
;   0318  1	! 3.2.071	By: Robert McQueen			On: 11-March-1986
;   0319  1	!		Fix a problem were KERMSG didn't allow for a line termination
;   0320  1	!		character in the buffer.
;   0321  1	!
;   0322  1	! 3.2.072	By: Robert McQueen			On: 11-March-1986
;   0323  1	!		Allow 0 as a valid value for SET SEND PADDING command.
;   0324  1	!
;   0325  1	! 3.2.073	By: Robert McQueen			On: 11-March-1986
;   0326  1	!		Fix a problem restoring the terminal characteristics under
;   0327  1	!		VMS 4.x
;   0328  1	!
;   0329  1	! 3.2.074	By: Robert McQueen			On: 11-March-1986
;   0330  1	!		Put MAX_MSG back the way it was and fix the problem correctly
;   0331  1	!		in KERMSG.
;   0332  1	!--
;   0333  1	
;   0334  1	%SBTTL 'Routine definitions -- Forwards'
;   0335  1	!<BLF/NOFORMAT>
;   0336  1	!
;   0337  1	! Forward definitions
;   0338  1	!
;   0339  1	
;   0340  1	! Command processing routines
;   0341  1	
;   0342  1	FORWARD ROUTINE
;   0343  1	    COMND,			! Process a command
;   0344  1	    COMND_ERROR : NOVALUE,	! Give error for command
;   0345  1	    COMND_FILE,			! Process command file
;   0346  1	    DO_COMND,			! Parse and dispatch one command
;   0347  1	    COMND_HELP	: NOVALUE,	! Process the HELP command
;   0348  1	    COMND_SHOW	: NOVALUE,	! Process the SHOW command
;   0349  1	    COMND_STATUS : NOVALUE,	! Process the STATUS command
;   0350  1	    COMND_REMOTE : NOVALUE,	! Process the REMOTE command
;   0351  1	    COMND_LOCAL : NOVALUE,	! Process the LOCAL commands
;   0352  1	    GET_REM_ARGS,		! Get arguments for REMOTE/LOCAL commands
;   0353  1	    STORE_TEXT,			! Routine to store a file name
;   0354  1	    COPY_TERM_NAME,		! Copy device name (TERM_xxxx)
;   0355  1	    COPY_DESC,			! Copy file name (FILE_xxx)
;   0356  1	    COPY_ALT_FILE,		! Copy to alternate file name (ALT_FILE_xxx)
;   0357  1	    COPY_GEN_1DATA,		! Copy to GEN_1DATA (generic command argument)
;   0358  1	    STORE_DEBUG,		! Store the debuging flag
;   0359  1	    STORE_FTP,			! Store the file type
;   0360  1	    STORE_FNM,			! Store the file name form
;   0361  1	    STORE_ECHO,			! Store the local echo flag
;   0362  1	    STORE_PARITY,		! Store the parity type
;   0363  1	    STORE_CHK,			! This routine will store the checksum type.
;   0364  1	    STORE_ABT,			! This routine will store the aborted file disposition
;   0365  1	    STORE_IBM,			! Store IBM flag
;   0366  1	    STORE_MSG_FIL,		! Store TY_FIL
;   0367  1	    STORE_MSG_PKT,		! Store TY_PKT
;   0368  1	    CHECK_PACKET_LEN,		! Validate PACKET length given
;   0369  1	    CHECK_NPAD,			! Validate the number of pad characters
;   0370  1	    CHECK_PAD_CHAR,		! Validate the padding character being set
;   0371  1	    CHECK_EOL,			! Validate EOL character given.
;   0372  1	    CHECK_QUOTE,		! Validate quoting character
;   0373  1	    CHECK_SOH,			! Validate the start of packet character given
;   0374  1	    KEY_ERROR;			! Return correct keyword error value
;   0375  1	
;   0376  1	!
;   0377  1	! Error handling routines
;   0378  1	!
;   0379  1	
;   0380  1	FORWARD ROUTINE
;   0381  1	    KERM_HANDLER;			! Condition handler
;   0382  1		%SBTTL	'Include files'
;   0383  1	
;   0384  1	!
;   0385  1	! INCLUDE FILES:
;   0386  1	!
;   0387  1	
;   0388  1	LIBRARY 'SYS$LIBRARY:STARLET';
;   0389  1	
;   0390  1	LIBRARY 'SYS$LIBRARY:TPAMAC';
;   0391  1	
;   0392  1	REQUIRE 'KERCOM';				! Common definitions
;   0600  1	
;   0601  1	REQUIRE 'KERERR';				! Error message symbol definitions
;   0666  1	
;   0667  1	%SBTTL 'Macro definitions'
;   0668  1	
;   0669  1	!
;   0670  1	! MACROS:
;   0671  1	!
;   0672  1	
;   0673  1	MACRO
; M 0674  1	    TPARSE_ARGS =
; M 0675  1		    BUILTIN AP;
; M 0676  1		    MAP AP : REF BLOCK [,BYTE];
;   0677  1		%;
;   0678  1	
;   0679  1	!
;   0680  1	! Macro to initialize a string descriptor
;   0681  1	!
;   0682  1	MACRO
; M 0683  1	    INIT_STR_DESC (DESC, BUFFER, SIZE) =
; M 0684  1	    BEGIN
; M 0685  1	!    MAP
; M 0686  1	!	DESC : BLOCK [8, BYTE];
; M 0687  1	    DESC [DSC$B_CLASS] = DSC$K_CLASS_S;
; M 0688  1	    DESC [DSC$B_DTYPE] = DSC$K_DTYPE_T;
; M 0689  1	    DESC [DSC$W_LENGTH] = SIZE;
; M 0690  1	    DESC [DSC$A_POINTER] = BUFFER;
; M 0691  1	    END
;   0692  1	    %;
;   0693  1		%SBTTL	'Equated symbols -- Command types'
;   0694  1	
;   0695  1	!
;   0696  1	! EQUATED SYMBOLS:
;   0697  1	!
;   0698  1	! Command offsets
;   0699  1	
;   0700  1	LITERAL
;   0701  1	    CMD_MIN = 1,				! Minimum value
;   0702  1	    CMD_CONN = 1,				! Connect command
;   0703  1	    CMD_EXIT = 2,				! Exit command
;   0704  1	    CMD_HELP = 3,				! Help command
;   0705  1	    CMD_RECEIVE = 4,				! Receive command
;   0706  1	    CMD_SET = 5,				! Set command
;   0707  1	    CMD_SEND = 6,				! Send command
;   0708  1	    CMD_SHOW = 7,				! Show command
;   0709  1	    CMD_SERVER = 8,				! SERVER command
;   0710  1	    CMD_STATUS = 9,				! STATUS command
;   0711  1	    CMD_LOGOUT = 10,				! Generic LOGOUT command
;   0712  1	    CMD_BYE = 11,				! Generic LOGOUT command and EXIT
;   0713  1	    CMD_FINISH = 12,				! Generic EXIT command
;   0714  1	    CMD_GET = 13,				! Get command
;   0715  1	    CMD_REMOTE = 14,				! Remote command
;   0716  1	    CMD_LOCAL = 15,				! Local command
;   0717  1	    CMD_PUSH = 16,				! PUSH command (spawn new DCL)
;   0718  1	    CMD_NULL = 17,				! Any command which is done
;   0719  1	    						! totally by the LIB$TPARSE call
;   0720  1	    CMD_TAKE = 18,				! Take command
;   0721  1	    CMD_MAX = 18;				! Maximum command value
;   0722  1	! Items to show
;   0723  1	
;   0724  1	LITERAL
;   0725  1	    SHOW_ALL = 1,				! Show everything
;   0726  1	    SHOW_DEB = 2,				! Show debugging flag
;   0727  1	    SHOW_DEL = 3,				! Show delay
;   0728  1	    SHOW_ESC = 4,				! Show ESCAPE character
;   0729  1	    SHOW_TIM = 5,				! Show random timing
;   0730  1	    SHOW_LIN = 6,				! Show the line we are using
;   0731  1	    SHOW_ECH = 7,				! Show the echo flag
;   0732  1	    SHOW_SEN = 8,				! Show send parameters
;   0733  1	    SHOW_REC = 9,				! Show the receive parameters
;   0734  1	    SHOW_PAR = 10,				! Show the parity setting
;   0735  1	    SHOW_RTY = 11,				! Show retry counters
;   0736  1	    SHOW_CHK = 12,				! Show block-check-type
;   0737  1	    SHOW_ABT = 13,				! Show aborted file disposition
;   0738  1	    SHOW_FIL = 14,				! Show file parameters
;   0739  1	    SHOW_PAC = 15,				! Show packet parameters
;   0740  1	    SHOW_COM = 16,				! Show communications parameters
;   0741  1	    SHOW_VER = 17;				![012] Show version
;   0742  1		%SBTTL	'Equated symbols -- Constants'
;   0743  1	
;   0744  1	! Constants
;   0745  1	
;   0746  1	LITERAL
;   0747  1	    CMD_BFR_LENGTH = 132,			! Command buffer length
;   0748  1	    OUT_BFR_LENGTH = 80,			! Output buffer length (SHOW cmd)
;   0749  1	    HELP_LENGTH = 132,				! Length of the help buffer
;   0750  1	    TEMP_LENGTH = 132;				! Length of the temporary area
;   0751  1	!
;   0752  1	! The default prompt
;   0753  1	!
;   0754  1	BIND
;   0755  1	    DEFAULT_PROMPT = %ASCID'Kermit-32>';
;   0756  1	
;   0757  1	MAP
;   0758  1	    DEFAULT_PROMPT : BLOCK [8, BYTE];	! This is a descriptor
;   0759  1		%SBTTL	'Storage -- Global'
;   0760  1	
;   0761  1	!<BLF/NOFORMAT>
;   0762  1	!
;   0763  1	! GLOBAL STORAGE:
;   0764  1	!
;   0765  1	
;   0766  1	    GLOBAL
;   0767  1		TRANSACTION_DESC : BLOCK [8, BYTE],	! Descriptor for transaction log file
;   0768  1		TRANSACTION_OPEN,			! File open flag
;   0769  1		TRANSACTION_FAB : $FAB_DECL,		! Transaction file FAB
;   0770  1		TRANSACTION_RAB : $RAB_DECL,		! Transaction file RAB
;   0771  1		ESCAPE_CHR,				! Escape character for CONNECT
;   0772  1		ALT_FILE_SIZE,				! Number of characters in FILE_NAME
;   0773  1		ALT_FILE_NAME : VECTOR [CH$ALLOCATION (MAX_FILE_NAME)]; ! Storage
;   0774  1		%SBTTL	'Storage -- Local'
;   0775  1	
;   0776  1	!
;   0777  1	! OWN STORAGE:
;   0778  1	!
;   0779  1	
;   0780  1	    OWN
;   0781  1	
;   0782  1	! Command scanning information
;   0783  1	
;   0784  1		TPARSE_BLOCK	: BLOCK [TPA$K_LENGTH0, BYTE]
;   0785  1			INITIAL (TPA$K_COUNT0,		! Longword count
;   0786  1				TPA$M_ABBREV),		! Allow abbreviations
;   0787  1		BAD_CMD_DESC : BLOCK [8, BYTE],		! Descriptor for bad command field
;   0788  1		COMMAND,				! Type of command we are doing
;   0789  1		SHOW_TYPE,				! Type of show command
;   0790  1		REM_TYPE,				! Type of REMOTE command
;   0791  1		TAKE_DISPLAY,				! Display commands being TAKEn
;   0792  1	!
;   0793  1	! Output data area
;   0794  1	!
;   0795  1		OUTPUT_LINE : VECTOR [OUT_BFR_LENGTH, BYTE, UNSIGNED],
;   0796  1		OUTPUT_DESC : BLOCK [8, BYTE],
;   0797  1		OUTPUT_SIZE : WORD UNSIGNED,
;   0798  1	
;   0799  1	! Misc constants.
;   0800  1	
;   0801  1		TRANSACTION_NAME : VECTOR [CH$ALLOCATION(MAX_FILE_NAME)],
;   0802  1		PROMPT_DESC : BLOCK [8, BYTE],		! Descriptor for prompt
;   0803  1		PROMPT_TEXT : VECTOR [CH$ALLOCATION(TEMP_LENGTH)], ! Storage for prompt
;   0804  1		CRC_TABLE : BLOCK [16, LONG],		! CRC-CCITT table
;   0805  1		TAK_FIL_DESC	: BLOCK [8, BYTE],	! Take file descriptor
;   0806  1		TAK_FIL_NAME	: BLOCK [CH$ALLOCATION(MAX_FILE_NAME)],
;   0807  1		TEMP_DESC	: BLOCK [8, BYTE],	! Temporary descriptor
;   0808  1		TEMP_NAME	: VECTOR [CH$ALLOCATION(TEMP_LENGTH)];
;   0809  1	
;   0810  1	
;   0811  1	!<BLF/FORMAT>
;   0812  1	%SBTTL 'External routines'
;   0813  1	!
;   0814  1	! EXTERNAL REFERENCES:
;   0815  1	!
;   0816  1	
;   0817  1	EXTERNAL ROUTINE
;   0818  1	!
;   0819  1	! Library routines
;   0820  1	!
;   0821  1	    LIB$GET_INPUT : ADDRESSING_MODE (GENERAL),
;   0822  1	    LIB$PUT_OUTPUT : ADDRESSING_MODE (GENERAL),
;   0823  1	    LIB$TPARSE : ADDRESSING_MODE (GENERAL),
;   0824  1	    LIB$CRC_TABLE : ADDRESSING_MODE (GENERAL),
;   0825  1	    LIB$CRC : ADDRESSING_MODE (GENERAL),
;   0826  1	    LIB$SIGNAL : ADDRESSING_MODE (GENERAL) NOVALUE,
;   0827  1	    LIB$ESTABLISH : ADDRESSING_MODE (GENERAL),
;   0828  1	    LIB$ATTACH : ADDRESSING_MODE (GENERAL),
;   0829  1	    LIB$SPAWN : ADDRESSING_MODE (GENERAL),
;   0830  1	!
;   0831  1	! KERMSG - KERMIT Message processing routines
;   0832  1	!
;   0833  1	    SEND_SWITCH,				! Send a file
;   0834  1	    REC_SWITCH,					! Receive a file
;   0835  1	    DO_GENERIC,					! Send generic functions
;   0836  1	    SERVER,					! Server mode processing
;   0837  1	    SND_ERROR : NOVALUE,			! Send E packet to remote
;   0838  1	    MSG_INIT : NOVALUE,				! Initialization routine
;   0839  1	!
;   0840  1	! KERFIL - File processing.
;   0841  1	!
;   0842  1	    FILE_INIT : NOVALUE,			! Initialization routine
;   0843  1	!
;   0844  1	! KERSYS - System subroutines for KERMSG
;   0845  1	!
;   0846  1	    SY_INIT : NOVALUE,				! Initialization routine
;   0847  1	!
;   0848  1	! KERTRM - Terminal processing.
;   0849  1	!
;   0850  1	    TERM_INIT : NOVALUE,			! Initialize the terminal processing
;   0851  1	    TERM_OPEN,					! Open the terminal line
;   0852  1	    TERM_CLOSE,					! Close the terminal line
;   0853  1	    TERM_CONNECT,				! Impliments CONNECT command
;   0854  1	    SET_TRANS_TERM,				! Set new transfer terminal
;   0855  1	!
;   0856  1	! KERTT - Text processing
;   0857  1	!
;   0858  1	    TT_INIT : NOVALUE,				! Initialization routine
;   0859  1	    TT_TEXT : NOVALUE,				! Output a text string
;   0860  1	    TT_NUMBER : NOVALUE,			! Output a number
;   0861  1	    TT_CHAR : NOVALUE,				! Output a single character
;   0862  1	    TT_OUTPUT : NOVALUE,			! Routine to dump the current
;   0863  1	    						!  text line.
;   0864  1	    TT_CRLF : NOVALUE;				! Output the line
;   0865  1	
;   0866  1	%SBTTL 'External storage'
;   0867  1	!
;   0868  1	! EXTERNAL Storage:
;   0869  1	!
;   0870  1	
;   0871  1	EXTERNAL
;   0872  1	!
;   0873  1	! KERMSG storage
;   0874  1	!
;   0875  1	! Receive parameters
;   0876  1	    RCV_PKT_SIZE,				! Receive packet size
;   0877  1	    RCV_NPAD,					! Padding length
;   0878  1	    RCV_PADCHAR,				! Padding character
;   0879  1	    RCV_TIMEOUT,				! Time out
;   0880  1	    RCV_EOL,					! EOL character
;   0881  1	    RCV_QUOTE_CHR,				! Quote character
;   0882  1	    RCV_8QUOTE_CHR,				! 8-bit quoting character
;   0883  1	    RCV_SOH,					! Start of packet header
;   0884  1	!
;   0885  1	! Send parameters
;   0886  1	!
;   0887  1	    SND_PKT_SIZE,				! Send packet size
;   0888  1	    SND_NPAD,					! Padding length
;   0889  1	    SND_PADCHAR,				! Padding character
;   0890  1	    SND_TIMEOUT,				! Time out
;   0891  1	    SND_EOL,					! EOL character
;   0892  1	    SND_QUOTE_CHR,				! Quote character
;   0893  1	    SND_SOH,					! Packet start of header
;   0894  1	!
;   0895  1	! Server parameters
;   0896  1	!
;   0897  1	    SRV_TIMEOUT,				! Time between idle naks in server
;   0898  1	!
;   0899  1	! Misc. packet parameters
;   0900  1	!
;   0901  1	    SET_REPT_CHR,				! Desired repeat character
;   0902  1	!
;   0903  1	! Statistics
;   0904  1	!
;   0905  1	    SND_TOTAL_CHARS,				! Total characters sent
;   0906  1	    RCV_TOTAL_CHARS,				! Total characters received
;   0907  1	    SND_DATA_CHARS,				! Total number of data characters sent
;   0908  1	    RCV_DATA_CHARS,				! Total number of data characters received
;   0909  1	    SMSG_TOTAL_CHARS,				! Total chars sent this file xfer
;   0910  1	    RMSG_TOTAL_CHARS,				! Total chars rcvd this file xfer
;   0911  1	    SMSG_DATA_CHARS,				! Total data chars this file xfer
;   0912  1	    RMSG_DATA_CHARS,				! Total data chars this file xfer
;   0913  1	    RCV_NAKS,					! Total number of NAKs received
;   0914  1	    SND_NAKS,					! Total number of NAKs sent
;   0915  1	    RMSG_NAKS,					! Number of NAKs received
;   0916  1	    SMSG_NAKS,					! Number of NAKs sent
;   0917  1	    RCV_COUNT,					! Total number of packets received
;   0918  1	    SND_COUNT,					! Total number of packets sent
;   0919  1	    RMSG_COUNT,					! Number of packets received
;   0920  1	    SMSG_COUNT,					! Number of packets sent
;   0921  1	    XFR_TIME,					! Amount of time the last transfer took
;   0922  1	    TOTAL_TIME,					! Total time the transfers have taken
;   0923  1	    LAST_ERROR : VECTOR [CH$ALLOCATION (MAX_MSG + 1)],	! Last error message
;   0924  1	    TY_PKT,					! Flag that packet numbers should be typed
;   0925  1	    TY_FIL,					! Flag that file names should be typed
;   0926  1	    GEN_1DATA : VECTOR [CH$ALLOCATION (MAX_MSG)],	! Data for generic command
;   0927  1	    GEN_1SIZE,					! Size of data in GEN_1DATA
;   0928  1	    GEN_2DATA : VECTOR [CH$ALLOCATION (MAX_MSG)],	! Second argument for generic command
;   0929  1	    GEN_2SIZE,					! Size of data in GEN_2DATA
;   0930  1	    GEN_3DATA : VECTOR [CH$ALLOCATION (MAX_MSG)],	! Third arg for generic command
;   0931  1	    GEN_3SIZE,					! Size of data in GEN_3DATA
;   0932  1	!
;   0933  1	! Misc constants.
;   0934  1	!
;   0935  1	    FILE_SIZE,					! Number of characters in FILE_NAME
;   0936  1	    FILE_NAME : VECTOR [CH$ALLOCATION (MAX_FILE_NAME)],
;   0937  1	    SI_RETRIES,					! Initial connection max retries
;   0938  1	    PKT_RETRIES,				! Packet max retries
;   0939  1	    DELAY,					! Amount of time to delay
;   0940  1	    DEBUG_FLAG,					! Debugging mode on/off
;   0941  1	    CHKTYPE,					! Type of block-check-type wanted
;   0942  1	    ABT_FLAG,					! Aborted file disposition
;   0943  1	!    IBM_FLAG,					! IBM mode flag
;   0944  1	    IBM_CHAR,					! Handshaking character
;   0945  1	    WARN_FLAG,					! File warning flag
;   0946  1	    FIL_NORMAL_FORM,				! File name type to send
;   0947  1	    PARITY_TYPE,				! Type of parity we are using
;   0948  1	    ECHO_FLAG,					! Local echo flag
;   0949  1	    CONNECT_FLAG;				! True if SYS$OUTPUT and line
;   0950  1	
;   0951  1							! xfering over are the same.
;   0952  1	!
;   0953  1	! KERFIL storage
;   0954  1	!
;   0955  1	
;   0956  1	EXTERNAL
;   0957  1	    FILE_TYPE,					! Type of file being processed
;   0958  1	    FILE_DESC : BLOCK [8, BYTE];		! Descriptor for the file name
;   0959  1	
;   0960  1	!
;   0961  1	! KERTRM storage
;   0962  1	!
;   0963  1	
;   0964  1	EXTERNAL
;   0965  1	    SESSION_DESC : BLOCK [8, BYTE],		! Session log file name
;   0966  1	    DEBUG_DESC : BLOCK [8, BYTE],		! Debugging log file name
;   0967  1	    TERM_DESC : BLOCK [8, BYTE],		! Terminal name descriptor
;   0968  1	    TERM_FLAG;					! Terminal open flag
;   0969  1	
;   0970  1	%SBTTL 'Command parsing tables'
;   0971  1	!<BLF/NOFORMAT>
;   0972  1	!++
;   0973  1	!
;   0974  1	!The following are the command state tables for the KERMIT-32
;   0975  1	!command processing.
;   0976  1	!
;   0977  1	!--
;   0978  1	
;   0979  1	$INIT_STATE	(KERMIT_STATE,	KERMIT_KEY);
;   0980  1	
; P 0981  1	$STATE	(START,
; P 0982  1		('BYE',		DONE_STATE,	,	CMD_BYE,	COMMAND),
; P 0983  1		('CONNECT',	CONN_STATE,	,	CMD_CONN,	COMMAND),
; P 0984  1		('EXIT',	DONE_STATE,	,	CMD_EXIT,	COMMAND),
; P 0985  1		('FINISH',	DONE_STATE,	,	CMD_FINISH,	COMMAND),
; P 0986  1		('GET',		GET_STATE,	,	CMD_GET,	COMMAND),
; P 0987  1		('HELP',	HELP_STATE,	,	CMD_HELP,	COMMAND),
; P 0988  1		('LOCAL',	REM_STATE,	,	CMD_LOCAL,	COMMAND),
; P 0989  1		('LOG',		LOG_STATE,	,	CMD_NULL,	COMMAND),
; P 0990  1		('LOGOUT',	DONE_STATE,	,	CMD_LOGOUT,	COMMAND),
; P 0991  1		('PUSH',	DONE_STATE,	,	CMD_PUSH,	COMMAND),
; P 0992  1		('QUIT',	DONE_STATE,	,	CMD_EXIT,	COMMAND),
; P 0993  1		('RECEIVE',	REC_STATE,	,	CMD_RECEIVE,	COMMAND),
; P 0994  1		('REMOTE',	REM_STATE,	,	CMD_REMOTE,	COMMAND),
; P 0995  1		('SET',		SET_STATE,	,	CMD_SET,	COMMAND),
; P 0996  1		('SEND',	SEND_STATE,	,	CMD_SEND,	COMMAND),
; P 0997  1		('SERVER',	DONE_STATE,	,	CMD_SERVER,	COMMAND),
; P 0998  1		('SHOW',	SHOW_STATE,	,	CMD_SHOW,	COMMAND),
; P 0999  1		('STATUS',	DONE_STATE,	,	CMD_STATUS,	COMMAND),
; P 1000  1		('TAKE',	TAKE_STATE,	,	CMD_TAKE,	COMMAND),
; P 1001  1		('@',		TAKE_STATE,	,	CMD_TAKE,	COMMAND),
; P 1002  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1003  1		)
;   1004  1	
;   1005  1	!++
;   1006  1	! CONNECT command.  Format is:
;   1007  1	!
;   1008  1	!	Kermit-32>CONNECT device
;   1009  1	!
;   1010  1	! Where:
;   1011  1	!	Device - Terminal line to connect to
;   1012  1	!
;   1013  1	!--
;   1014  1	
; P 1015  1	$STATE	(CONN_STATE,
; P 1016  1		(TPA$_EOS, DONE_STATE),
; P 1017  1		(TPA$_LAMBDA, SET_LIN_STATE)
;   1018  1		)
;   1019  1	
;   1020  1	!++
;   1021  1	! EXIT command.  Format is:
;   1022  1	!
;   1023  1	!	Kermit-32>EXIT
;   1024  1	!
;   1025  1	! Just exit back to VMS.
;   1026  1	!
;   1027  1	!--
;   1028  1	
;   1029  1	!++
;   1030  1	! HELP command.  Format is:
;   1031  1	!
;   1032  1	!	Kermit-32>HELP
;   1033  1	!
;   1034  1	! Do HELP processing for KERMIT-32.
;   1035  1	!
;   1036  1	!--
;   1037  1	
; P 1038  1	$STATE	(HELP_STATE,
; P 1039  1		(TPA$_ANY,	HELP_STATE,	STORE_TEXT),
; P 1040  1		(TPA$_LAMBDA,	DONE_STATE)
;   1041  1	)
;   1042  1	
;   1043  1		%SBTTL	'QUIT command table'
;   1044  1	
;   1045  1	!++
;   1046  1	! QUIT command.  Format is:
;   1047  1	!
;   1048  1	!	Kermit-32>QUIT
;   1049  1	!
;   1050  1	! This command will just exit back to VMS.
;   1051  1	!
;   1052  1	!--
;   1053  1		%SBTTL	'GET command table'
;   1054  1	
;   1055  1	!++
;   1056  1	! GET command.  Format is:
;   1057  1	!
;   1058  1	!	Kermit-32>GET file-specification
;   1059  1	!
;   1060  1	! This command will cause KERMIT to get a file from the micro.
;   1061  1	! It will assume that it is to used what ever line it currently is
;   1062  1	! associated with (CONNECT or SET LINE).
;   1063  1	!
;   1064  1	!--
;   1065  1	
; P 1066  1	$STATE	(GET_STATE,
; P 1067  1		(TPA$_ANY,	GET_STATE,	STORE_TEXT),
; P 1068  1		(TPA$_LAMBDA,	DONE_STATE,	COPY_DESC,	,	,FILE_DESC)
;   1069  1		)
;   1070  1		%SBTTL	'RECEIVE command table'
;   1071  1	
;   1072  1	!++
;   1073  1	! RECEIVE command.  Format is:
;   1074  1	!
;   1075  1	!	Kermit-32>RECEIVE file-specification
;   1076  1	!
;   1077  1	! This command will cause KERMIT to receive a file from the micro.
;   1078  1	! It will assume that it is to used what ever line it currently is
;   1079  1	! associated with (CONNECT or SET LINE).
;   1080  1	!
;   1081  1	!--
;   1082  1	
; P 1083  1	$STATE	(REC_STATE,
; P 1084  1		(TPA$_ANY,	REC1_STATE,	STORE_TEXT),
; P 1085  1		(TPA$_LAMBDA,	DONE_STATE)
;   1086  1		)
;   1087  1	
;   1088  1	
; P 1089  1	$STATE	(REC1_STATE,
; P 1090  1		(TPA$_ANY,	REC1_STATE,	STORE_TEXT),
; P 1091  1		(TPA$_LAMBDA,	DONE_STATE,	COPY_ALT_FILE)
;   1092  1		)
;   1093  1		%SBTTL	'REMOTE command tables'
;   1094  1	
;   1095  1	!++
;   1096  1	! REMOTE command.  This command will allow the local Kermit user to
;   1097  1	! request the server Kermit to perform some action.
;   1098  1	!
;   1099  1	!	Kermit-32>REMOTE keyword arguments
;   1100  1	!
;   1101  1	! Where:
;   1102  1	!
;   1103  1	!	Keyword is one of:
;   1104  1	!		DELETE
;   1105  1	!		DIRECTORY
;   1106  1	!		DISK_USAGE
;   1107  1	!		HELP
;   1108  1	!		SPACE
;   1109  1	!		TYPE
;   1110  1	!--
; P 1111  1	$STATE	(REM_STATE,
; P 1112  1		('COPY',	REM2_STATE,	,GC_COPY,	REM_TYPE),
; P 1113  1		('CWD',		REM1_STATE,	,GC_CONNECT,	REM_TYPE),
; P 1114  1		('DELETE',	REM2_STATE,	,GC_DELETE,	REM_TYPE),
; P 1115  1		('DIRECTORY',	REM1_STATE,	,GC_DIRECTORY,	REM_TYPE),
; P 1116  1		('DISK_USAGE',	REM1_STATE,	,GC_DISK_USAGE,	REM_TYPE),
; P 1117  1		('EXIT',	DONE_STATE,	,GC_EXIT,	REM_TYPE),
; P 1118  1		('HELP',	REM1_STATE,	,GC_HELP,	REM_TYPE),
; P 1119  1		('HOST',	REM2_STATE,	,GC_COMMAND,	REM_TYPE),
; P 1120  1		('LOGIN',	REM2_STATE,	,GC_LGN,	REM_TYPE),
; P 1121  1		('LOGOUT',	DONE_STATE,	,GC_LOGOUT,	REM_TYPE),
; P 1122  1		('RENAME',	REM2_STATE,	,GC_RENAME,	REM_TYPE),
; P 1123  1		('SEND_MESSAGE',REM2_STATE,	,GC_SEND_MSG,	REM_TYPE),
; P 1124  1		('SPACE',	REM1_STATE,	,GC_DISK_USAGE,	REM_TYPE),
; P 1125  1		('STATUS',	DONE_STATE,	,GC_STATUS,	REM_TYPE),
; P 1126  1		('TYPE',	REM2_STATE,	,GC_TYPE,	REM_TYPE),
; P 1127  1		('WHO',		REM1_STATE,	,GC_WHO,	REM_TYPE),
; P 1128  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1129  1		)
;   1130  1	
;   1131  1	! State to allow for either no arguments or a text string
;   1132  1	
; P 1133  1	$STATE	(REM1_STATE,
; P 1134  1		(TPA$_ANY,	REM2_STATE,	STORE_TEXT),
; P 1135  1		(TPA$_LAMBDA,	DONE_STATE)
;   1136  1		)
;   1137  1	
;   1138  1	! State to require a text string argument
;   1139  1	
; P 1140  1	$STATE	(REM2_STATE,
; P 1141  1		(TPA$_ANY,	REM2_STATE,	STORE_TEXT),
; P 1142  1		(TPA$_LAMBDA,	DONE_STATE,	COPY_GEN_1DATA)
;   1143  1		)
;   1144  1		%SBTTL	'SET command tables'
;   1145  1	
;   1146  1	!++
;   1147  1	! SET command.  Format is:
;   1148  1	!
;   1149  1	!	Kermit-32>SET parameter
;   1150  1	!
;   1151  1	! Where:
;   1152  1	!	Parameter - One of many keywords
;   1153  1	!
;   1154  1	!--
;   1155  1	
; P 1156  1	$STATE	(SET_STATE,
; P 1157  1		('BLOCK_CHECK_TYPE', SET_CHK_STATE),
; P 1158  1		('DEBUGGING',	SET_DEB_STATE),
; P 1159  1		('DELAY',	SET_DEL_STATE),
; P 1160  1		('ESCAPE',	SET_ESC_STATE),
; P 1161  1		('FILE',	SET_FIL_STATE),
; P 1162  1		('HANDSHAKE',	SET_HAN_STATE),
; P 1163  1		('IBM_MODE',	SET_IBM_STATE),
; P 1164  1		('INCOMPLETE_FILE_DISPOSITION', SET_ABT_STATE),
; P 1165  1		('LINE',	SET_LIN_STATE),
; P 1166  1		('LOCAL_ECHO',	SET_ECH_STATE),
; P 1167  1		('MESSAGE',	SET_MSG_STATE),
; P 1168  1		('PARITY',	SET_PAR_STATE),
; P 1169  1		('PROMPT',	SET_PMT_STATE),
; P 1170  1		('RECEIVE',	SET_REC_STATE),
; P 1171  1		('REPEAT_QUOTE',SET_RPT_STATE),
; P 1172  1		('RETRY',	SET_RTY_STATE),
; P 1173  1		('SEND',	SET_SND_STATE),
; P 1174  1		('SERVER_TIMER',SET_SRV_STATE),
; P 1175  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1176  1		)
;   1177  1	
;   1178  1	!++
;   1179  1	!
;   1180  1	! SET INCOMPLETE_FILE [disposition] command.  The possible arguments are
;   1181  1	!	KEEP or DISCARD.
;   1182  1	!
;   1183  1	!--
;   1184  1	
; P 1185  1	$STATE	(SET_ABT_STATE,
; P 1186  1		('DISCARD', DONE_STATE,	STORE_ABT,,	,TRUE),
; P 1187  1		('KEEP',    DONE_STATE,	STORE_ABT,,	,FALSE),
; P 1188  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1189  1		)
;   1190  1	
;   1191  1	!++
;   1192  1	!
;   1193  1	! SET BLOCK_CHECK_TYPE [type] command.  The format is:
;   1194  1	!
;   1195  1	!	Kermit-32>SET BLOCK_CHECK_TYPE [1_CHARACTER_CHECKSUM | ....]
;   1196  1	!
;   1197  1	!--
;   1198  1	
; P 1199  1	$STATE	(SET_CHK_STATE,
; P 1200  1		('1_CHARACTER_CHECKSUM', DONE_STATE,	STORE_CHK,,	,CHK_1CHAR),
; P 1201  1		('2_CHARACTER_CHECKSUM', DONE_STATE,	STORE_CHK,,	,CHK_2CHAR),
; P 1202  1		('3_CHARACTER_CRC_CCITT', DONE_STATE,	STORE_CHK,,	,CHK_CRC),
; P 1203  1		('ONE_CHARACTER_CHECKSUM', DONE_STATE,	STORE_CHK,,	,CHK_1CHAR),
; P 1204  1		('THREE_CHARACTER_CRC_CCITT', DONE_STATE, STORE_CHK,,	,CHK_CRC),
; P 1205  1		('TWO_CHARACTER_CHECKSUM', DONE_STATE,	STORE_CHK,,	,CHK_2CHAR),
; P 1206  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1207  1		)
;   1208  1	
;   1209  1	!++
;   1210  1	!
;   1211  1	! SET DEBUGGING command.  The format is:
;   1212  1	!
;   1213  1	!	Kermit-32>SET DEBUGGING (on/off)
;   1214  1	!
;   1215  1	! Where:
;   1216  1	!	on/off is either the ON or OFF keyword.
;   1217  1	!
;   1218  1	!--
;   1219  1	
; P 1220  1	$STATE	(SET_DEB_STATE,
; P 1221  1		('OFF',		DONE_STATE,	STORE_DEBUG,	,	,FALSE),
; P 1222  1		('ON',		DONE_STATE,	STORE_DEBUG,	,	,TRUE),
; P 1223  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1224  1		)
;   1225  1	
;   1226  1	!++
;   1227  1	!
;   1228  1	! SET IBM_MODE command.  The format is:
;   1229  1	!
;   1230  1	!	Kermit-32>SET IBM_MODE (on/off)
;   1231  1	!
;   1232  1	! Where:
;   1233  1	!	on/off is either the ON or OFF keyword.
;   1234  1	!
;   1235  1	!--
;   1236  1	
; P 1237  1	$STATE	(SET_IBM_STATE,
; P 1238  1		('OFF',		DONE_STATE,	STORE_IBM,	,	,FALSE),
; P 1239  1		('ON',		DONE_STATE,	STORE_IBM,	,	,TRUE),
; P 1240  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1241  1		)
;   1242  1	!++
;   1243  1	!
;   1244  1	! SET HANDSHAKE command.  The format is:
;   1245  1	!
;   1246  1	!	Kermit-32>SET HANDSHAKE <octal>
;   1247  1	!
;   1248  1	! Where:
;   1249  1	!	<octal> is the octal number representing the handshake character
;   1250  1	!	for file transfers.
;   1251  1	!
;   1252  1	! Negative values indicate no handshaking.
;   1253  1	!--
;   1254  1	
; P 1255  1	$STATE	(SET_HAN_STATE,
; P 1256  1		('NONE',	DONE_STATE,	,   -1	,IBM_CHAR),
; P 1257  1		(TPA$_OCTAL,	DONE_STATE,	,	,IBM_CHAR)
;   1258  1		)
;   1259  1	
;   1260  1	!++
;   1261  1	!
;   1262  1	! SET DELAY command.  The format is:
;   1263  1	!
;   1264  1	!	Kermit-32>SET DELAY <dec>
;   1265  1	!
;   1266  1	! Where:
;   1267  1	!	<dec> is the number of seconds to delay before sending the
;   1268  1	!	SEND-INIT packet.
;   1269  1	!--
;   1270  1	
; P 1271  1	$STATE	(SET_DEL_STATE,
; P 1272  1		(TPA$_DECIMAL,	DONE_STATE,	,	,DELAY)
;   1273  1		)
;   1274  1	
;   1275  1	!++
;   1276  1	!
;   1277  1	! SET ESCAPE command.  The format is:
;   1278  1	!
;   1279  1	!	Kermit-32>SET ESCAPE <octal>
;   1280  1	!
;   1281  1	! Where:
;   1282  1	!	<octal> is the octal number representing the escape character
;   1283  1	!	for the CONNECT command processing.  The default escape character
;   1284  1	!	is Control-].
;   1285  1	!--
;   1286  1	
; P 1287  1	$STATE	(SET_ESC_STATE,
; P 1288  1		(TPA$_OCTAL,	DONE_STATE,	,	,ESCAPE_CHR)
;   1289  1		)
;   1290  1	!++
;   1291  1	!
;   1292  1	! SET FILE xxx command.  The format is:
;   1293  1	!
;   1294  1	!	Kermit-32>SET FILE <item> <args>
;   1295  1	!
;   1296  1	! Where:
;   1297  1	!	<item> is one of:
;   1298  1	!		NAMING - Type of file name to send
;   1299  1	!		TYPE - Type of file to create on receive (or send in certain cases)
;   1300  1	!
;   1301  1	!--
; P 1302  1	$STATE	(SET_FIL_STATE,
; P 1303  1		('NAMING',	SET_FNM_STATE),
; P 1304  1		('TYPE',	SET_FTP_STATE),
; P 1305  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1306  1		)
;   1307  1	
;   1308  1	!++
;   1309  1	!
;   1310  1	! SET FILE NAMING command.  The format is:
;   1311  1	!
;   1312  1	!	Kermit-32>SET FILE NAMING <type>
;   1313  1	!
;   1314  1	! Where:
;   1315  1	!	<type> is one of:
;   1316  1	!		FULL   - Send complete file specification, including device and
;   1317  1	!			directory
;   1318  1	!		NORMAL_FORM - Send only name.type
;   1319  1	!		UNTRANSLATED - Send name.type, but don't do any fixups on it
;   1320  1	!--
;   1321  1	
; P 1322  1	$STATE (SET_FNM_STATE,
; P 1323  1		('FULL',	DONE_STATE,	STORE_FNM,	,	,FNM_FULL),
; P 1324  1		('NORMAL_FORM',	DONE_STATE,	STORE_FNM,	,	,FNM_NORMAL),
; P 1325  1		('UNTRANSLATED',DONE_STATE,	STORE_FNM,	,	,FNM_UNTRAN),
; P 1326  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1327  1		)
;   1328  1	!++
;   1329  1	!
;   1330  1	! SET FILE TYPE command.  The format is:
;   1331  1	!
;   1332  1	!	Kermit-32>SET FILE TYPE <type>
;   1333  1	!
;   1334  1	! Where:
;   1335  1	!	<Type> is one of the following:
;   1336  1	!		ASCII - Normal ASCII file (stream ascii)
;   1337  1	!		BINARY - Micro binary file.
;   1338  1	!--
;   1339  1	
; P 1340  1	$STATE	(SET_FTP_STATE,
; P 1341  1		('ASCII',	DONE_STATE,	STORE_FTP,	,	,FILE_ASC),
; P 1342  1		('BINARY',	DONE_STATE,	STORE_FTP,	,	,FILE_BIN),
; P 1343  1		('BLOCK',	DONE_STATE,	STORE_FTP,	,	,FILE_BLK),
; P 1344  1		('FIXED',	DONE_STATE,	STORE_FTP,	,	,FILE_FIX),
; P 1345  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1346  1		)
;   1347  1	
;   1348  1	!++
;   1349  1	! SET LINE command.  Format is:
;   1350  1	!
;   1351  1	!	Kermit-32>SET LINE terminal-device:
;   1352  1	!
;   1353  1	! Where:
;   1354  1	!	Terminal-device: is the terminal line to use to the transfer of
;   1355  1	!	the data and to use in the CONNECT command.
;   1356  1	!
;   1357  1	!--
;   1358  1	
; P 1359  1	$STATE	(SET_LIN_STATE,
; P 1360  1		(TPA$_ANY,	SET_LIN_STATE,	STORE_TEXT),
; P 1361  1		(TPA$_LAMBDA,	DONE_STATE,	COPY_TERM_NAME)
;   1362  1		)
;   1363  1	
;   1364  1	!++
;   1365  1	! SET LOCAL-ECHO command.  Format is:
;   1366  1	!
;   1367  1	!	Kermit-32>SET LOCAL-ECHO state
;   1368  1	!
;   1369  1	! Where:
;   1370  1	!	STATE is either the keyword ON or OFF.
;   1371  1	!
;   1372  1	!-
;   1373  1	
; P 1374  1	$STATE	(SET_ECH_STATE,
; P 1375  1		('OFF',		DONE_STATE,	STORE_ECHO,	,	,FALSE),
; P 1376  1		('ON',		DONE_STATE,	STORE_ECHO,	,	,TRUE),
; P 1377  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1378  1		)
;   1379  1	
;   1380  1	
;   1381  1	!++
;   1382  1	! SET MESSAGE command. Format is:
;   1383  1	!
;   1384  1	!	Kermit-32>SET MESSAGE <keyword>
;   1385  1	!
;   1386  1	! Where the keyword is:
;   1387  1	!
;   1388  1	!	FILE_NAMES - Type out file names being transferred
;   1389  1	!	PACKET_NUMBERS - Type out packet counts
;   1390  1	!--
;   1391  1	
; P 1392  1	$STATE	(SET_MSG_STATE,
; P 1393  1		('FILE_NAMES',		SET_MSG_FIL_STATE),
; P 1394  1		('PACKET_NUMBERS',	SET_MSG_PKT_STATE),
; P 1395  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1396  1		)
;   1397  1	
; P 1398  1	$STATE	(SET_MSG_FIL_STATE,
; P 1399  1		('OFF',		DONE_STATE,	STORE_MSG_FIL,	,	,FALSE),
; P 1400  1		('ON',		DONE_STATE,	STORE_MSG_FIL,	,	,TRUE),
; P 1401  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1402  1		)
;   1403  1	
; P 1404  1	$STATE	(SET_MSG_PKT_STATE,
; P 1405  1		('OFF',		DONE_STATE,	STORE_MSG_PKT,	,	,FALSE),
; P 1406  1		('ON',		DONE_STATE,	STORE_MSG_PKT,	,	,TRUE),
; P 1407  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1408  1		)
;   1409  1	
;   1410  1	!++
;   1411  1	! SET PROMPT command.
;   1412  1	!
;   1413  1	!	Kermit-32>SET PROMPT new-prompt-text
;   1414  1	!
;   1415  1	!--
;   1416  1	
; P 1417  1	$STATE	(SET_PMT_STATE,
; P 1418  1		(TPA$_ANY,	SET_PMT_STATE,	STORE_TEXT),
; P 1419  1		(TPA$_LAMBDA,	DONE_STATE,	COPY_DESC,	,	,PROMPT_DESC)
;   1420  1		)
;   1421  1	
;   1422  1	!++
;   1423  1	! SET REPEAT_QUOTE command.  Format is:
;   1424  1	!
;   1425  1	!	Kermit-32>SET REPEAT_QUOTE <character value>
;   1426  1	!
;   1427  1	!--
;   1428  1	
; P 1429  1	$STATE	(SET_RPT_STATE,
; P 1430  1		(TPA$_OCTAL,	DONE_STATE,	CHECK_QUOTE,	,SET_REPT_CHR)
;   1431  1		)
;   1432  1	
;   1433  1	!++
;   1434  1	! SET RETRY command.  Format is:
;   1435  1	!
;   1436  1	!	Kermit-32>SET RETRY <keyword>
;   1437  1	!
;   1438  1	! Where the keyword is:
;   1439  1	!
;   1440  1	!	INITIAL_CONNECTION - set number of initial connection retries.
;   1441  1	!	PACKET - set the number of packet retries.
;   1442  1	!--
;   1443  1	
; P 1444  1	$STATE	(SET_RTY_STATE,
; P 1445  1		('INITIAL_CONNECTION',	SET_RTY_INI_STATE),
; P 1446  1		('PACKET',		SET_RTY_PKT_STATE),
; P 1447  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1448  1		)
;   1449  1	
;   1450  1	
; P 1451  1	$STATE	(SET_RTY_INI_STATE,
; P 1452  1		(TPA$_DECIMAL,	DONE_STATE,	,	,SI_RETRIES)
;   1453  1		)
;   1454  1	
; P 1455  1	$STATE	(SET_RTY_PKT_STATE,
; P 1456  1		(TPA$_DECIMAL,	DONE_STATE,	,	,PKT_RETRIES)
;   1457  1		)
;   1458  1		%SBTTL	'SET PARITY type'
;   1459  1	
;   1460  1	!++
;   1461  1	! SET PARITY command.  Format is:
;   1462  1	!
;   1463  1	!	Kermit-32>SET PARITY type
;   1464  1	!
;   1465  1	! The type can be:
;   1466  1	!
;   1467  1	!	NONE - No parity processing
;   1468  1	!	MARK - Mark parity
;   1469  1	!	SPACE - Space parity
;   1470  1	!	EVEN - Even parity
;   1471  1	!	ODD - Odd parity
;   1472  1	!
;   1473  1	!--
;   1474  1	
; P 1475  1	$STATE	(SET_PAR_STATE,
; P 1476  1		('EVEN',	DONE_STATE,	STORE_PARITY,	,	,PR_EVEN),
; P 1477  1		('MARK',	DONE_STATE,	STORE_PARITY,	,	,PR_MARK),
; P 1478  1		('NONE',	DONE_STATE,	STORE_PARITY,	,	,PR_NONE),
; P 1479  1		('ODD',		DONE_STATE,	STORE_PARITY,	,	,PR_ODD),
; P 1480  1		('SPACE',	DONE_STATE,	STORE_PARITY,	,	,PR_SPACE),
; P 1481  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1482  1		)
;   1483  1		%SBTTL	'SET RECEIVE table'
;   1484  1	
;   1485  1	!++
;   1486  1	! SET RECEIVE command.  Format is:
;   1487  1	!
;   1488  1	!	Kermit-32>SET RECEIVE item
;   1489  1	!
;   1490  1	! Where:
;   1491  1	!	Item - One of the following:
;   1492  1	!		PACKET-LENGTH <dec>
;   1493  1	!		PADDING <dec>
;   1494  1	!		PADCHAR <chr>
;   1495  1	!		TIMEOUT <dec>
;   1496  1	!		END-OF-LINE <oct>
;   1497  1	!		QUOTE <chr>
;   1498  1	!
;   1499  1	!--
;   1500  1	
; P 1501  1	$STATE	(SET_REC_STATE,
; P 1502  1		('EIGHT-BIT-QUOTE',	SR_8QU_STATE),
; P 1503  1		('END_OF_LINE',		SR_EOL_STATE),
; P 1504  1		('PACKET_LENGTH',	SR_PKT_STATE),
; P 1505  1		('PADCHAR',		SR_PDC_STATE),
; P 1506  1		('PADDING',		SR_PAD_STATE),
; P 1507  1		('QUOTE',		SR_QUO_STATE),
; P 1508  1		('START_OF_PACKET',	SR_SOH_STATE),
; P 1509  1		('TIMEOUT',		SR_TIM_STATE),
; P 1510  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1511  1		)
;   1512  1	
;   1513  1	!++
;   1514  1	!
;   1515  1	! SET RECEIVE PACKET-LENGTH command.  Format is:
;   1516  1	!
;   1517  1	!	Kermit-32>SET RECEIVE PACKET-LENGTH <dec>
;   1518  1	!
;   1519  1	! Where:
;   1520  1	!	<Dec> is a decimal number that specifies the length of a
;   1521  1	!	receive packet.
;   1522  1	!
;   1523  1	!--
;   1524  1	
; P 1525  1	$STATE	(SR_PKT_STATE,
; P 1526  1		(TPA$_DECIMAL,	DONE_STATE,	CHECK_PACKET_LEN,	,RCV_PKT_SIZE)
;   1527  1		)
;   1528  1	
;   1529  1	
;   1530  1	!++
;   1531  1	!
;   1532  1	! SET RECEIVE PADDING command.  The format of this command is:
;   1533  1	!
;   1534  1	!	Kermit-32>SET RECEIVE PADDING <dec>
;   1535  1	!
;   1536  1	! Where:
;   1537  1	!	<dec> is the decimal number of padding characters to output.
;   1538  1	!
;   1539  1	!--
;   1540  1	
; P 1541  1	$STATE	(SR_PAD_STATE,
; P 1542  1		(TPA$_DECIMAL,	DONE_STATE,	CHECK_NPAD,	,RCV_NPAD)
;   1543  1		)
;   1544  1	
;   1545  1	!++
;   1546  1	!
;   1547  1	! SET RECEIVE PADCHAR command.  Format is:
;   1548  1	!
;   1549  1	!	Kermit-32>SET RECEIVE PADCHAR <oct>
;   1550  1	!
;   1551  1	! Where:
;   1552  1	!	<oct> is the octal representation of the padding character
;   1553  1	!	that is to be used.
;   1554  1	!
;   1555  1	!--
;   1556  1	
; P 1557  1	$STATE	(SR_PDC_STATE,
; P 1558  1		(TPA$_OCTAL,	DONE_STATE,	CHECK_PAD_CHAR,	,RCV_PADCHAR)
;   1559  1		)
;   1560  1	!++
;   1561  1	!
;   1562  1	! SET RECEIVE START_OF_PACKET command.  Format is:
;   1563  1	!
;   1564  1	!	Kermit-32>SET RECEIVE START_OF_PACKET <oct>
;   1565  1	!
;   1566  1	! Where:
;   1567  1	!	<oct> is the octal representation of the padding character
;   1568  1	!	that is to be used.
;   1569  1	!
;   1570  1	!--
;   1571  1	
; P 1572  1	$STATE	(SR_SOH_STATE,
; P 1573  1		(TPA$_OCTAL,	DONE_STATE,	CHECK_SOH,	,RCV_SOH)
;   1574  1		)
;   1575  1	
;   1576  1	!++
;   1577  1	!
;   1578  1	! SET RECEIVE TIMEOUT command.  The format is:
;   1579  1	!
;   1580  1	!	Kermit-32>SET RECEIVE TIMEOUT <dec>
;   1581  1	!
;   1582  1	! Where:
;   1583  1	!	<dec> is the number of seconds before KERMIT-32 should time out
;   1584  1	!	attempting to receive a correct message.
;   1585  1	!
;   1586  1	!--
;   1587  1	
; P 1588  1	$STATE	(SR_TIM_STATE,
; P 1589  1		(TPA$_DECIMAL,	DONE_STATE,	,	,RCV_TIMEOUT)
;   1590  1		)
;   1591  1	
;   1592  1	!++
;   1593  1	! SET END-OF-LINE command.  Format is:
;   1594  1	!
;   1595  1	!	Kermit-32>SET RECEIVE END-OF-LINE <octal>
;   1596  1	!
;   1597  1	! Where:
;   1598  1	!	<octal> is the octal number representation of the character
;   1599  1	!	that is the end of line character.
;   1600  1	!
;   1601  1	!--
;   1602  1	
; P 1603  1	$STATE	(SR_EOL_STATE,
; P 1604  1		(TPA$_OCTAL,	DONE_STATE,	CHECK_EOL,	,RCV_EOL)
;   1605  1		)
;   1606  1	
;   1607  1	!++
;   1608  1	! SET RECEIVE QUOTE command.  The format is:
;   1609  1	!
;   1610  1	!	Kermit-32>SET RECEIVE QUOTE <octal>
;   1611  1	!
;   1612  1	! Where:
;   1613  1	!	<octal> is the octal number representing the quoting character.
;   1614  1	!
;   1615  1	!--
;   1616  1	
; P 1617  1	$STATE	(SR_QUO_STATE,
; P 1618  1		(TPA$_OCTAL,	DONE_STATE,	CHECK_QUOTE,	,RCV_QUOTE_CHR)
;   1619  1		)
;   1620  1		%SBTTL	'SET RECEIVE EIGHT-BIT-QUOTE'
;   1621  1	
;   1622  1	!++
;   1623  1	! This routine will handle the setting of the eight bit quoting character.
;   1624  1	!
;   1625  1	!	Kermit-32>SET RECEIVE EIGHT-BIT-QUOTE <octal>
;   1626  1	!
;   1627  1	! Where:
;   1628  1	!	<octal> is the octal number representing the quoting character.
;   1629  1	!
;   1630  1	!--
;   1631  1	
; P 1632  1	$STATE	(SR_8QU_STATE,
; P 1633  1		(TPA$_OCTAL,	DONE_STATE,	CHECK_QUOTE,	,RCV_8QUOTE_CHR)
;   1634  1		)
;   1635  1		%SBTTL	'SET SEND tables'
;   1636  1	
;   1637  1	!++
;   1638  1	! SET SEND command.  Format is:
;   1639  1	!
;   1640  1	!	Kermit-32>SET SEND item
;   1641  1	!
;   1642  1	! Where:
;   1643  1	!	Item - One of the following:
;   1644  1	!		PACKET-LENGTH <dec>
;   1645  1	!		PADDING <dec>
;   1646  1	!		PADCHAR <chr>
;   1647  1	!		TIMEOUT <dec>
;   1648  1	!		END-OF-LINE <oct>
;   1649  1	!		QUOTE <chr>
;   1650  1	!
;   1651  1	!--
;   1652  1	
; P 1653  1	$STATE	(SET_SND_STATE,
; P 1654  1		('END_OF_LINE',		SS_EOL_STATE),
; P 1655  1		('PACKET_LENGTH',	SS_PKT_STATE),
; P 1656  1		('PADCHAR',		SS_PDC_STATE),
; P 1657  1		('PADDING',		SS_PAD_STATE),
; P 1658  1		('QUOTE',		SS_QUO_STATE),
; P 1659  1		('START_OF_PACKET',	SS_SOH_STATE),
; P 1660  1		('TIMEOUT',		SS_TIM_STATE),
; P 1661  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1662  1		)
;   1663  1	
;   1664  1	
;   1665  1	
;   1666  1	!++
;   1667  1	!
;   1668  1	! SET SEND PACKET-LENGTH command.  Format is:
;   1669  1	!
;   1670  1	!	Kermit-32>SET SEND PACKET-LENGTH <dec>
;   1671  1	!
;   1672  1	! Where:
;   1673  1	!	<Dec> is a decimal number that specifies the length of a
;   1674  1	!	receive packet.
;   1675  1	!
;   1676  1	!--
;   1677  1	
; P 1678  1	$STATE	(SS_PKT_STATE,
; P 1679  1		(TPA$_DECIMAL,	DONE_STATE,	CHECK_PACKET_LEN,	,SND_PKT_SIZE)
;   1680  1		)
;   1681  1	
;   1682  1	
;   1683  1	!++
;   1684  1	!
;   1685  1	! SET SEND PADDING command.  The format of this command is:
;   1686  1	!
;   1687  1	!	Kermit-32>SET SEND PADDING <dec>
;   1688  1	!
;   1689  1	! Where:
;   1690  1	!	<dec> is the decimal number of padding characters to output.
;   1691  1	!
;   1692  1	!--
;   1693  1	
; P 1694  1	$STATE	(SS_PAD_STATE,
; P 1695  1		(TPA$_DECIMAL,	DONE_STATE,	CHECK_NPAD,	,SND_NPAD)
;   1696  1		)
;   1697  1	
;   1698  1	!++
;   1699  1	!
;   1700  1	! SET SEND PADCHAR command.  Format is:
;   1701  1	!
;   1702  1	!	Kermit-32>SET SEND PADCHAR <oct>
;   1703  1	!
;   1704  1	! Where:
;   1705  1	!	<oct> is the octal representation of the padding character
;   1706  1	!	that is to be used.
;   1707  1	!
;   1708  1	!--
;   1709  1	
; P 1710  1	$STATE	(SS_PDC_STATE,
; P 1711  1		(TPA$_OCTAL,	DONE_STATE,	CHECK_PAD_CHAR,	,SND_PADCHAR)
;   1712  1		)
;   1713  1	!++
;   1714  1	!
;   1715  1	! SET RECEIVE START_OF_PACKET command.  Format is:
;   1716  1	!
;   1717  1	!	Kermit-32>SET RECEIVE START_OF_PACKET <oct>
;   1718  1	!
;   1719  1	! Where:
;   1720  1	!	<oct> is the octal representation of the padding character
;   1721  1	!	that is to be used.
;   1722  1	!
;   1723  1	!--
;   1724  1	
; P 1725  1	$STATE	(SS_SOH_STATE,
; P 1726  1		(TPA$_OCTAL,	DONE_STATE,	CHECK_SOH,	,SND_SOH)
;   1727  1		)
;   1728  1	
;   1729  1	!++
;   1730  1	!
;   1731  1	! SET SEND TIMEOUT command.  The format is:
;   1732  1	!
;   1733  1	!	Kermit-32>SET SEND TIMEOUT <dec>
;   1734  1	!
;   1735  1	! Where:
;   1736  1	!	<dec> is the number of seconds before KERMIT-32 should time out
;   1737  1	!	attempting to receive a correct message.
;   1738  1	!
;   1739  1	!--
;   1740  1	
; P 1741  1	$STATE	(SS_TIM_STATE,
; P 1742  1		(TPA$_DECIMAL,	DONE_STATE,	,	,SND_TIMEOUT)
;   1743  1		)
;   1744  1	
;   1745  1	!++
;   1746  1	! SET SEND END-OF-LINE command.  Format is:
;   1747  1	!
;   1748  1	!	Kermit-32>SET SEND END-OF-LINE <octal>
;   1749  1	!
;   1750  1	! Where:
;   1751  1	!	<octal> is the octal number representation of the character
;   1752  1	!	that is the end of line character.
;   1753  1	!
;   1754  1	!--
;   1755  1	
; P 1756  1	$STATE	(SS_EOL_STATE,
; P 1757  1		(TPA$_OCTAL,	DONE_STATE,	CHECK_EOL,	,SND_EOL)
;   1758  1		)
;   1759  1	
;   1760  1	!++
;   1761  1	! SET SEND QUOTA command.  The format is:
;   1762  1	!
;   1763  1	!	Kermit-32>SET SEND QUOTA <octal>
;   1764  1	!
;   1765  1	! Where:
;   1766  1	!	<octal> is the octal number representing the quoting character.
;   1767  1	!
;   1768  1	!--
;   1769  1	
; P 1770  1	$STATE	(SS_QUO_STATE,
; P 1771  1		(TPA$_OCTAL,	DONE_STATE,	CHECK_QUOTE,	,SND_QUOTE_CHR)
;   1772  1		)
;   1773  1	
;   1774  1	!++
;   1775  1	! SET SERVER_TIMER command.
;   1776  1	!
;   1777  1	! This sets the time between naks send when server is idle.
;   1778  1	!--
;   1779  1	
; P 1780  1	$STATE	(SET_SRV_STATE,
; P 1781  1		(TPA$_DECIMAL,	DONE_STATE,	,	,SRV_TIMEOUT)
;   1782  1		)
;   1783  1		%SBTTL	'SEND command'
;   1784  1	
;   1785  1	!++
;   1786  1	! SEND command.  The format is:
;   1787  1	!
;   1788  1	!	Kermit-32>SEND file-specification
;   1789  1	!
;   1790  1	! Where:
;   1791  1	!	FILE-SPECIFICATION is any valid VAX/VMS file specification.
;   1792  1	!
;   1793  1	!--
;   1794  1	
; P 1795  1	$STATE	(SEND_STATE,
; P 1796  1		(TPA$_ANY,	SEND_STATE,	STORE_TEXT),
; P 1797  1		(TPA$_LAMBDA,	DONE_STATE,	COPY_DESC,	,	,FILE_DESC)
;   1798  1		)
;   1799  1		%SBTTL	'SHOW command'
;   1800  1	
;   1801  1	!++
;   1802  1	! SHOW command.  The format is:
;   1803  1	!
;   1804  1	!	Kermit-32>SHOW <parameter>
;   1805  1	!
;   1806  1	! Where:
;   1807  1	!	<Parameter> is one of the following:
;   1808  1	!		SEND - Send parameters
;   1809  1	!		RECEIVE - Receive parameters
;   1810  1	!		DEBUGGING - State of the debugging flag
;   1811  1	!		FILE-TYPE - Type of the file
;   1812  1	!		LOCAL-ECHO - Local echo flag
;   1813  1	!		LINE - Current line associated
;   1814  1	!		ESCAPE - Current escape character
;   1815  1	!		DELAY  - Delay parameter.
;   1816  1	!
;   1817  1	!--
;   1818  1	
; P 1819  1	$STATE	(SHOW_STATE,
; P 1820  1		('ALL',			DONE_STATE,	,SHOW_ALL,	SHOW_TYPE),
; P 1821  1		('BLOCK_CHECK_TYPE',	DONE_STATE,	,SHOW_CHK,	SHOW_TYPE),
; P 1822  1		('COMMUNICATIONS',	DONE_STATE,	,SHOW_COM,	SHOW_TYPE),
; P 1823  1		('DEBUGGING',		DONE_STATE,	,SHOW_DEB,	SHOW_TYPE),
; P 1824  1		('DELAY',		DONE_STATE,	,SHOW_DEL,	SHOW_TYPE),
; P 1825  1		('ESCAPE',		DONE_STATE,	,SHOW_ESC,	SHOW_TYPE),
; P 1826  1		('FILE_PARAMETERS',	DONE_STATE,	,SHOW_FIL,	SHOW_TYPE),
; P 1827  1		('INCOMPLETE_FILE_DISPOSITION',DONE_STATE,	,SHOW_ABT,	SHOW_TYPE),
; P 1828  1		('LINE',		DONE_STATE,	,SHOW_LIN,	SHOW_TYPE),
; P 1829  1		('LOCAL_ECHO',		DONE_STATE,	,SHOW_ECH,	SHOW_TYPE),
; P 1830  1		('PACKET',		DONE_STATE,	,SHOW_PAC,	SHOW_TYPE),
; P 1831  1		('PARITY',		DONE_STATE,	,SHOW_PAR,	SHOW_TYPE),
; P 1832  1		('SEND',		DONE_STATE,	,SHOW_SEN,	SHOW_TYPE),
; P 1833  1		('TIMING',		DONE_STATE,	,SHOW_TIM,	SHOW_TYPE),
; P 1834  1		('RECEIVE',		DONE_STATE,	,SHOW_REC,	SHOW_TYPE),
; P 1835  1		('RETRY',		DONE_STATE,	,SHOW_RTY,	SHOW_TYPE),
; P 1836  1		('VERSION',		DONE_STATE,	,SHOW_VER,	SHOW_TYPE),
; P 1837  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1838  1		)
;   1839  1		%SBTTL	'LOG command'
;   1840  1	
;   1841  1	!++
;   1842  1	! The LOG command allows the specification of a session or transaction
;   1843  1	!log file.
;   1844  1	!--
;   1845  1	
; P 1846  1	$STATE	(LOG_STATE,
; P 1847  1		('DEBUGGING',	DBG_STATE),
; P 1848  1		('SESSION',	SES_STATE),
; P 1849  1		('TRANSACTIONS',TRN_STATE),
; P 1850  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1851  1		)
;   1852  1	
; P 1853  1	$STATE	(DBG_STATE,
; P 1854  1		(TPA$_ANY,	DBG_STATE,	STORE_TEXT),
; P 1855  1		(TPA$_LAMBDA,	DONE_STATE,	COPY_DESC,	,	,DEBUG_DESC)
;   1856  1		)
;   1857  1	
; P 1858  1	$STATE	(SES_STATE,
; P 1859  1		(TPA$_ANY,	SES_STATE,	STORE_TEXT),
; P 1860  1		(TPA$_LAMBDA,	DONE_STATE,	COPY_DESC,	,	,SESSION_DESC)
;   1861  1		)
;   1862  1	
; P 1863  1	$STATE	(TRN_STATE,
; P 1864  1		(TPA$_ANY,	TRN_STATE,	STORE_TEXT),
; P 1865  1		(TPA$_LAMBDA,	DONE_STATE,	COPY_DESC,	,	,TRANSACTION_DESC)
;   1866  1		)
;   1867  1	
;   1868  1	
;   1869  1		%SBTTL	'Take command tables'
;   1870  1	
;   1871  1	!++
;   1872  1	! The following describes the TAKE (or @) command.
;   1873  1	!--
;   1874  1	
; P 1875  1	$STATE	(TAKE_STATE,
; P 1876  1		('/',		TAK_SWT_STATE,	COPY_DESC,	,	,TAK_FIL_DESC),
; P 1877  1		(TPA$_ANY,	TAKE_STATE,	STORE_TEXT),
; P 1878  1		(TPA$_LAMBDA,	DONE_STATE,	COPY_DESC,	,	,TAK_FIL_DESC)
;   1879  1		)
;   1880  1	
; P 1881  1	$STATE	(TAK_SWT_STATE,
; P 1882  1		('DISPLAY',		DONE_STATE,	,TRUE,		TAKE_DISPLAY),
; P 1883  1		(TPA$_SYMBOL,	TPA$_FAIL,	KEY_ERROR)
;   1884  1		)
;   1885  1		%SBTTL	'Done state'
;   1886  1	
;   1887  1	!++
;   1888  1	! This is the single state that is the required CONFIRM for the end
;   1889  1	! of the commands.
;   1890  1	!--
;   1891  1	
; P 1892  1	$STATE	(DONE_STATE,
; P 1893  1		(TPA$_EOS,	TPA$_EXIT)
;   1894  1		)
;   1895  1	
;   1896  1	!++
;   1897  1	!
;   1898  1	! End of the KERMIT-32 command definitions
;   1899  1	!
;   1900  1	!--
;   1901  1	
;   1902  1	PSECT	OWN = $OWN$;
;   1903  1	PSECT	GLOBAL = $GLOBAL$;
;   1904  1	
;   1905  1	!<BLF/FORMAT>
;   1906  1	ROUTINE MAIN_ROUTINE : NOVALUE =
;   1907  1	
;   1908  1	!++
;   1909  1	! FUNCTIONAL DESCRIPTION:
;   1910  1	!
;   1911  1	!	This is the main routine for KERMIT-32.  This routine will
;   1912  1	!	initialize the various parameters and then call the command
;   1913  1	!	scanner to process commands.
;   1914  1	!
;   1915  1	! FORMAL PARAMETERS:
;   1916  1	!
;   1917  1	!	None.
;   1918  1	!
;   1919  1	! IMPLICIT INPUTS:
;   1920  1	!
;   1921  1	!	None.
;   1922  1	!
;   1923  1	! IMPLICIT OUTPUTS:
;   1924  1	!
;   1925  1	!	None.
;   1926  1	!
;   1927  1	! ROUTINE VALUE and
;   1928  1	! COMPLETION CODES:
;   1929  1	!
;   1930  1	!	None.
;   1931  1	!
;   1932  1	! SIDE EFFECTS:
;   1933  1	!
;   1934  1	!	None.
;   1935  1	!
;   1936  1	!--
;   1937  1	
;   1938  2	    BEGIN
;   1939  2	
;   1940  2	    LOCAL
;   1941  2		STATUS,					! Returned status
;   1942  2		CRC_BIT_MASK,				! Bit mask for CRC initialization
;   1943  2		LOOP_FLAG;
;   1944  2	
;   1945  2	!
;   1946  2	! Initialize some variables
;   1947  2	!
;   1948  2	    STATUS = LIB$PUT_OUTPUT (IDENT_STRING);	![012] Say who we are
;   1949  2	    MSG_INIT ();				! Initialize message processing
;   1950  2	    TERM_INIT ();				! Init terminal processing
;   1951  2	    TT_INIT ();					! Init text processing
;   1952  2	    FILE_INIT ();				! Init file processing
;   1953  2	    SY_INIT ();					! Init system routines
;   1954  2	    ESCAPE_CHR = CHR_ESCAPE;
;   1955  2	!
;   1956  2	! Initialize some VAX/VMS interface items
;   1957  2	!
;   1958  2	    CRC_BIT_MASK = %O'102010';			! CRC bit mask
;   1959  2	    LIB$CRC_TABLE (CRC_BIT_MASK, CRC_TABLE);
;   1960  2	    LIB$ESTABLISH (KERM_HANDLER);
;   1961  2	!
;   1962  2	! Initialize transaction log file descriptor
;   1963  2	!
;   1964  2	    INIT_STR_DESC (TRANSACTION_DESC, TRANSACTION_NAME, 0);
;   1965  2	!
;   1966  2	! Initialize take file descriptor
;   1967  2	!
;   1968  2	    INIT_STR_DESC (TAK_FIL_DESC, TAK_FIL_NAME, 0);
;   1969  2	!
;   1970  2	! Initialize prompt descriptor
;   1971  2	!
;   1972  2	    INIT_STR_DESC (PROMPT_DESC, PROMPT_TEXT, 0);
;   1973  2	!
;   1974  2	! Take initialization file
;   1975  2	!
;   1976  2	    COMND_FILE (%ASCID'VMSKERMIT', %ASCID'.INI;0', TRUE, FALSE);
;   1977  2	!
;   1978  2	! Main command loop
;   1979  2	!
;   1980  2	    COMND ();
;   1981  1	    END;					! end of routine MAIN_ROUTINE


	.TITLE  KERMIT
	.IDENT  \3.2.074\

	.PSECT  _LIB$KEY1$,NOWRT,  SHR,  PIC,1

;TPA$KEYST0
U.63:	.BLKB   0
;TPA$KEYST
U.65:	.ASCII  \BYE\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.71:	.BLKB   0
;TPA$KEYST
U.73:	.ASCII  \CONNECT\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.79:	.BLKB   0
;TPA$KEYST
U.81:	.ASCII  \EXIT\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.86:	.BLKB   0
;TPA$KEYST
U.88:	.ASCII  \FINISH\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.93:	.BLKB   0
;TPA$KEYST
U.95:	.ASCII  \GET\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.101:	.BLKB   0
;TPA$KEYST
U.103:	.ASCII  \HELP\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.109:	.BLKB   0
;TPA$KEYST
U.111:	.ASCII  \LOCAL\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.117:	.BLKB   0
;TPA$KEYST
U.119:	.ASCII  \LOG\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.125:	.BLKB   0
;TPA$KEYST
U.127:	.ASCII  \LOGOUT\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.132:	.BLKB   0
;TPA$KEYST
U.134:	.ASCII  \PUSH\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.139:	.BLKB   0
;TPA$KEYST
U.141:	.ASCII  \QUIT\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.146:	.BLKB   0
;TPA$KEYST
U.148:	.ASCII  \RECEIVE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.154:	.BLKB   0
;TPA$KEYST
U.156:	.ASCII  \REMOTE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.161:	.BLKB   0
;TPA$KEYST
U.163:	.ASCII  \SET\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.169:	.BLKB   0
;TPA$KEYST
U.171:	.ASCII  \SEND\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.177:	.BLKB   0
;TPA$KEYST
U.179:	.ASCII  \SERVER\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.184:	.BLKB   0
;TPA$KEYST
U.186:	.ASCII  \SHOW\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.192:	.BLKB   0
;TPA$KEYST
U.194:	.ASCII  \STATUS\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.199:	.BLKB   0
;TPA$KEYST
U.201:	.ASCII  \TAKE\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.214:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.245:	.BLKB   0
;TPA$KEYST
U.247:	.ASCII  \COPY\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.253:	.BLKB   0
;TPA$KEYST
U.255:	.ASCII  \CWD\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.261:	.BLKB   0
;TPA$KEYST
U.263:	.ASCII  \DELETE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.268:	.BLKB   0
;TPA$KEYST
U.270:	.ASCII  \DIRECTORY\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.275:	.BLKB   0
;TPA$KEYST
U.277:	.ASCII  \DISK_USAGE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.282:	.BLKB   0
;TPA$KEYST
U.284:	.ASCII  \EXIT\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.289:	.BLKB   0
;TPA$KEYST
U.291:	.ASCII  \HELP\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.296:	.BLKB   0
;TPA$KEYST
U.298:	.ASCII  \HOST\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.303:	.BLKB   0
;TPA$KEYST
U.305:	.ASCII  \LOGIN\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.310:	.BLKB   0
;TPA$KEYST
U.312:	.ASCII  \LOGOUT\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.317:	.BLKB   0
;TPA$KEYST
U.319:	.ASCII  \RENAME\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.324:	.BLKB   0
;TPA$KEYST
U.326:	.ASCII  \SEND_MESSAGE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.331:	.BLKB   0
;TPA$KEYST
U.333:	.ASCII  \SPACE\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.338:	.BLKB   0
;TPA$KEYST
U.340:	.ASCII  \STATUS\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.345:	.BLKB   0
;TPA$KEYST
U.347:	.ASCII  \TYPE\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.352:	.BLKB   0
;TPA$KEYST
U.354:	.ASCII  \WHO\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.362:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.374:	.BLKB   0
;TPA$KEYST
U.376:	.ASCII  \BLOCK_CHECK_TYPE\		     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.380:	.BLKB   0
;TPA$KEYST
U.382:	.ASCII  \DEBUGGING\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.386:	.BLKB   0
;TPA$KEYST
U.388:	.ASCII  \DELAY\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.392:	.BLKB   0
;TPA$KEYST
U.394:	.ASCII  \ESCAPE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.398:	.BLKB   0
;TPA$KEYST
U.400:	.ASCII  \FILE\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.404:	.BLKB   0
;TPA$KEYST
U.406:	.ASCII  \HANDSHAKE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.410:	.BLKB   0
;TPA$KEYST
U.412:	.ASCII  \IBM_MODE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.416:	.BLKB   0
;TPA$KEYST
U.418:	.ASCII  \INCOMPLETE_FILE_DISPOSITION\	     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.422:	.BLKB   0
;TPA$KEYST
U.424:	.ASCII  \LINE\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.427:	.BLKB   0
;TPA$KEYST
U.429:	.ASCII  \LOCAL_ECHO\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.433:	.BLKB   0
;TPA$KEYST
U.435:	.ASCII  \MESSAGE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.439:	.BLKB   0
;TPA$KEYST
U.441:	.ASCII  \PARITY\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.445:	.BLKB   0
;TPA$KEYST
U.447:	.ASCII  \PROMPT\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.451:	.BLKB   0
;TPA$KEYST
U.453:	.ASCII  \RECEIVE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.457:	.BLKB   0
;TPA$KEYST
U.459:	.ASCII  \REPEAT_QUOTE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.463:	.BLKB   0
;TPA$KEYST
U.465:	.ASCII  \RETRY\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.469:	.BLKB   0
;TPA$KEYST
U.471:	.ASCII  \SEND\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.475:	.BLKB   0
;TPA$KEYST
U.477:	.ASCII  \SERVER_TIMER\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.484:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.485:	.BLKB   0
;TPA$KEYST
U.487:	.ASCII  \DISCARD\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.493:	.BLKB   0
;TPA$KEYST
U.495:	.ASCII  \KEEP\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.504:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.505:	.BLKB   0
;TPA$KEYST
U.507:	.ASCII  \1_CHARACTER_CHECKSUM\		     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.513:	.BLKB   0
;TPA$KEYST
U.515:	.ASCII  \2_CHARACTER_CHECKSUM\		     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.521:	.BLKB   0
;TPA$KEYST
U.523:	.ASCII  \3_CHARACTER_CRC_CCITT\		     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.529:	.BLKB   0
;TPA$KEYST
U.531:	.ASCII  \ONE_CHARACTER_CHECKSUM\	     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.537:	.BLKB   0
;TPA$KEYST
U.539:	.ASCII  \THREE_CHARACTER_CRC_CCITT\	     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.545:	.BLKB   0
;TPA$KEYST
U.547:	.ASCII  \TWO_CHARACTER_CHECKSUM\	     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.556:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.557:	.BLKB   0
;TPA$KEYST
U.559:	.ASCII  \OFF\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.565:	.BLKB   0
;TPA$KEYST
U.567:	.ASCII  \ON\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.576:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.577:	.BLKB   0
;TPA$KEYST
U.579:	.ASCII  \OFF\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.585:	.BLKB   0
;TPA$KEYST
U.587:	.ASCII  \ON\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.596:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.597:	.BLKB   0
;TPA$KEYST
U.599:	.ASCII  \NONE\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.607:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.614:	.BLKB   0
;TPA$KEYST
U.616:	.ASCII  \NAMING\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.620:	.BLKB   0
;TPA$KEYST
U.622:	.ASCII  \TYPE\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.629:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.630:	.BLKB   0
;TPA$KEYST
U.632:	.ASCII  \FULL\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.638:	.BLKB   0
;TPA$KEYST
U.640:	.ASCII  \NORMAL_FORM\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.646:	.BLKB   0
;TPA$KEYST
U.648:	.ASCII  \UNTRANSLATED\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.657:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.658:	.BLKB   0
;TPA$KEYST
U.660:	.ASCII  \ASCII\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.666:	.BLKB   0
;TPA$KEYST
U.668:	.ASCII  \BINARY\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.674:	.BLKB   0
;TPA$KEYST
U.676:	.ASCII  \BLOCK\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.682:	.BLKB   0
;TPA$KEYST
U.684:	.ASCII  \FIXED\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.693:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.700:	.BLKB   0
;TPA$KEYST
U.702:	.ASCII  \OFF\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.708:	.BLKB   0
;TPA$KEYST
U.710:	.ASCII  \ON\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.719:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.720:	.BLKB   0
;TPA$KEYST
U.722:	.ASCII  \FILE_NAMES\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.726:	.BLKB   0
;TPA$KEYST
U.728:	.ASCII  \PACKET_NUMBERS\		     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.735:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.736:	.BLKB   0
;TPA$KEYST
U.738:	.ASCII  \OFF\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.744:	.BLKB   0
;TPA$KEYST
U.746:	.ASCII  \ON\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.755:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.756:	.BLKB   0
;TPA$KEYST
U.758:	.ASCII  \OFF\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.764:	.BLKB   0
;TPA$KEYST
U.766:	.ASCII  \ON\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.775:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.788:	.BLKB   0
;TPA$KEYST
U.790:	.ASCII  \INITIAL_CONNECTION\		     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.794:	.BLKB   0
;TPA$KEYST
U.796:	.ASCII  \PACKET\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.803:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.810:	.BLKB   0
;TPA$KEYST
U.812:	.ASCII  \EVEN\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.818:	.BLKB   0
;TPA$KEYST
U.820:	.ASCII  \MARK\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.826:	.BLKB   0
;TPA$KEYST
U.828:	.ASCII  \NONE\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.834:	.BLKB   0
;TPA$KEYST
U.836:	.ASCII  \ODD\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.842:	.BLKB   0
;TPA$KEYST
U.844:	.ASCII  \SPACE\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.853:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.854:	.BLKB   0
;TPA$KEYST
U.856:	.ASCII  \EIGHT-BIT-QUOTE\		     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.860:	.BLKB   0
;TPA$KEYST
U.862:	.ASCII  \END_OF_LINE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.866:	.BLKB   0
;TPA$KEYST
U.868:	.ASCII  \PACKET_LENGTH\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.872:	.BLKB   0
;TPA$KEYST
U.874:	.ASCII  \PADCHAR\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.878:	.BLKB   0
;TPA$KEYST
U.880:	.ASCII  \PADDING\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.884:	.BLKB   0
;TPA$KEYST
U.886:	.ASCII  \QUOTE\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.890:	.BLKB   0
;TPA$KEYST
U.892:	.ASCII  \START_OF_PACKET\		     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.896:	.BLKB   0
;TPA$KEYST
U.898:	.ASCII  \TIMEOUT\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.905:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.937:	.BLKB   0
;TPA$KEYST
U.939:	.ASCII  \END_OF_LINE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.943:	.BLKB   0
;TPA$KEYST
U.945:	.ASCII  \PACKET_LENGTH\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.949:	.BLKB   0
;TPA$KEYST
U.951:	.ASCII  \PADCHAR\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.955:	.BLKB   0
;TPA$KEYST
U.957:	.ASCII  \PADDING\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.961:	.BLKB   0
;TPA$KEYST
U.963:	.ASCII  \QUOTE\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.967:	.BLKB   0
;TPA$KEYST
U.969:	.ASCII  \START_OF_PACKET\		     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.973:	.BLKB   0
;TPA$KEYST
U.975:	.ASCII  \TIMEOUT\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.982:	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1021: .BLKB   0
;TPA$KEYST
U.1023: .ASCII  \ALL\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1028: .BLKB   0
;TPA$KEYST
U.1030: .ASCII  \BLOCK_CHECK_TYPE\		     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1035: .BLKB   0
;TPA$KEYST
U.1037: .ASCII  \COMMUNICATIONS\		     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1042: .BLKB   0
;TPA$KEYST
U.1044: .ASCII  \DEBUGGING\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1049: .BLKB   0
;TPA$KEYST
U.1051: .ASCII  \DELAY\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1056: .BLKB   0
;TPA$KEYST
U.1058: .ASCII  \ESCAPE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1063: .BLKB   0
;TPA$KEYST
U.1065: .ASCII  \FILE_PARAMETERS\		     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1070: .BLKB   0
;TPA$KEYST
U.1072: .ASCII  \INCOMPLETE_FILE_DISPOSITION\	     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1077: .BLKB   0
;TPA$KEYST
U.1079: .ASCII  \LINE\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1084: .BLKB   0
;TPA$KEYST
U.1086: .ASCII  \LOCAL_ECHO\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1091: .BLKB   0
;TPA$KEYST
U.1093: .ASCII  \PACKET\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1098: .BLKB   0
;TPA$KEYST
U.1100: .ASCII  \PARITY\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1105: .BLKB   0
;TPA$KEYST
U.1107: .ASCII  \SEND\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1112: .BLKB   0
;TPA$KEYST
U.1114: .ASCII  \TIMING\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1119: .BLKB   0
;TPA$KEYST
U.1121: .ASCII  \RECEIVE\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1126: .BLKB   0
;TPA$KEYST
U.1128: .ASCII  \RETRY\				     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1133: .BLKB   0
;TPA$KEYST
U.1135: .ASCII  \VERSION\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.1143: .BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1144: .BLKB   0
;TPA$KEYST
U.1146: .ASCII  \DEBUGGING\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1150: .BLKB   0
;TPA$KEYST
U.1152: .ASCII  \SESSION\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1156: .BLKB   0
;TPA$KEYST
U.1158: .ASCII  \TRANSACTIONS\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.1165: .BYTE   -1				     ;									      ;
;TPA$KEYST0
U.1204: .BLKB   0
;TPA$KEYST
U.1206: .ASCII  \DISPLAY\			     ;									      ;
	.BYTE   -1				     ;									      ;
;TPA$KEYFILL
U.1214: .BYTE   -1				     ;									      ;

	.PSECT  _LIB$STATE$,NOWRT,  SHR,  PIC,1

KERMIT_STATE::
	.BLKB   0
START:	.BLKB   0
;TPA$TYPE
U.66:	.WORD   28928				     ;									      ;
;TPA$ADDR
U.67:	.LONG   <<U.46-U.67>-4>			     ;									      ;
;TPA$MASK
U.68:	.LONG   11				     ;									      ;
;TPA$TARGET
U.70:	.WORD   <<U.69-U.70>-2>			     ;									      ;
;TPA$TYPE
U.74:	.WORD   28929				     ;									      ;
;TPA$ADDR
U.75:	.LONG   <<U.46-U.75>-4>			     ;									      ;
;TPA$MASK
U.76:	.LONG   1				     ;									      ;
;TPA$TARGET
U.78:	.WORD   <<U.77-U.78>-2>			     ;									      ;
;TPA$TYPE
U.82:	.WORD   28930				     ;									      ;
;TPA$ADDR
U.83:	.LONG   <<U.46-U.83>-4>			     ;									      ;
;TPA$MASK
U.84:	.LONG   2				     ;									      ;
;TPA$TARGET
U.85:	.WORD   <<U.69-U.85>-2>			     ;									      ;
;TPA$TYPE
U.89:	.WORD   28931				     ;									      ;
;TPA$ADDR
U.90:	.LONG   <<U.46-U.90>-4>			     ;									      ;
;TPA$MASK
U.91:	.LONG   12				     ;									      ;
;TPA$TARGET
U.92:	.WORD   <<U.69-U.92>-2>			     ;									      ;
;TPA$TYPE
U.96:	.WORD   28932				     ;									      ;
;TPA$ADDR
U.97:	.LONG   <<U.46-U.97>-4>			     ;									      ;
;TPA$MASK
U.98:	.LONG   13				     ;									      ;
;TPA$TARGET
U.100:	.WORD   <<U.99-U.100>-2>		     ;									      ;
;TPA$TYPE
U.104:	.WORD   28933				     ;									      ;
;TPA$ADDR
U.105:	.LONG   <<U.46-U.105>-4>		     ;									      ;
;TPA$MASK
U.106:	.LONG   3				     ;									      ;
;TPA$TARGET
U.108:	.WORD   <<U.107-U.108>-2>		     ;									      ;
;TPA$TYPE
U.112:	.WORD   28934				     ;									      ;
;TPA$ADDR
U.113:	.LONG   <<U.46-U.113>-4>		     ;									      ;
;TPA$MASK
U.114:	.LONG   15				     ;									      ;
;TPA$TARGET
U.116:	.WORD   <<U.115-U.116>-2>		     ;									      ;
;TPA$TYPE
U.120:	.WORD   28935				     ;									      ;
;TPA$ADDR
U.121:	.LONG   <<U.46-U.121>-4>		     ;									      ;
;TPA$MASK
U.122:	.LONG   17				     ;									      ;
;TPA$TARGET
U.124:	.WORD   <<U.123-U.124>-2>		     ;									      ;
;TPA$TYPE
U.128:	.WORD   28936				     ;									      ;
;TPA$ADDR
U.129:	.LONG   <<U.46-U.129>-4>		     ;									      ;
;TPA$MASK
U.130:	.LONG   10				     ;									      ;
;TPA$TARGET
U.131:	.WORD   <<U.69-U.131>-2>		     ;									      ;
;TPA$TYPE
U.135:	.WORD   28937				     ;									      ;
;TPA$ADDR
U.136:	.LONG   <<U.46-U.136>-4>		     ;									      ;
;TPA$MASK
U.137:	.LONG   16				     ;									      ;
;TPA$TARGET
U.138:	.WORD   <<U.69-U.138>-2>		     ;									      ;
;TPA$TYPE
U.142:	.WORD   28938				     ;									      ;
;TPA$ADDR
U.143:	.LONG   <<U.46-U.143>-4>		     ;									      ;
;TPA$MASK
U.144:	.LONG   2				     ;									      ;
;TPA$TARGET
U.145:	.WORD   <<U.69-U.145>-2>		     ;									      ;
;TPA$TYPE
U.149:	.WORD   28939				     ;									      ;
;TPA$ADDR
U.150:	.LONG   <<U.46-U.150>-4>		     ;									      ;
;TPA$MASK
U.151:	.LONG   4				     ;									      ;
;TPA$TARGET
U.153:	.WORD   <<U.152-U.153>-2>		     ;									      ;
;TPA$TYPE
U.157:	.WORD   28940				     ;									      ;
;TPA$ADDR
U.158:	.LONG   <<U.46-U.158>-4>		     ;									      ;
;TPA$MASK
U.159:	.LONG   14				     ;									      ;
;TPA$TARGET
U.160:	.WORD   <<U.115-U.160>-2>		     ;									      ;
;TPA$TYPE
U.164:	.WORD   28941				     ;									      ;
;TPA$ADDR
U.165:	.LONG   <<U.46-U.165>-4>		     ;									      ;
;TPA$MASK
U.166:	.LONG   5				     ;									      ;
;TPA$TARGET
U.168:	.WORD   <<U.167-U.168>-2>		     ;									      ;
;TPA$TYPE
U.172:	.WORD   28942				     ;									      ;
;TPA$ADDR
U.173:	.LONG   <<U.46-U.173>-4>		     ;									      ;
;TPA$MASK
U.174:	.LONG   6				     ;									      ;
;TPA$TARGET
U.176:	.WORD   <<U.175-U.176>-2>		     ;									      ;
;TPA$TYPE
U.180:	.WORD   28943				     ;									      ;
;TPA$ADDR
U.181:	.LONG   <<U.46-U.181>-4>		     ;									      ;
;TPA$MASK
U.182:	.LONG   8				     ;									      ;
;TPA$TARGET
U.183:	.WORD   <<U.69-U.183>-2>		     ;									      ;
;TPA$TYPE
U.187:	.WORD   28944				     ;									      ;
;TPA$ADDR
U.188:	.LONG   <<U.46-U.188>-4>		     ;									      ;
;TPA$MASK
U.189:	.LONG   7				     ;									      ;
;TPA$TARGET
U.191:	.WORD   <<U.190-U.191>-2>		     ;									      ;
;TPA$TYPE
U.195:	.WORD   28945				     ;									      ;
;TPA$ADDR
U.196:	.LONG   <<U.46-U.196>-4>		     ;									      ;
;TPA$MASK
U.197:	.LONG   9				     ;									      ;
;TPA$TARGET
U.198:	.WORD   <<U.69-U.198>-2>		     ;									      ;
;TPA$TYPE
U.202:	.WORD   28946				     ;									      ;
;TPA$ADDR
U.203:	.LONG   <<U.46-U.203>-4>		     ;									      ;
;TPA$MASK
U.204:	.LONG   18				     ;									      ;
;TPA$TARGET
U.206:	.WORD   <<U.205-U.206>-2>		     ;									      ;
;TPA$TYPE
U.207:	.WORD   28736				     ;									      ;
;TPA$ADDR
U.208:	.LONG   <<U.46-U.208>-4>		     ;									      ;
;TPA$MASK
U.209:	.LONG   18				     ;									      ;
;TPA$TARGET
U.210:	.WORD   <<U.205-U.210>-2>		     ;									      ;
;TPA$TYPE
U.211:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.212:	.LONG   <<U.33-U.212>-4>		     ;									      ;
;TPA$TARGET
U.213:	.WORD   -2				     ;									      ;
;CONN_STATE
U.77:	.BLKB   0
;TPA$TYPE
U.215:	.WORD   4599				     ;									      ;
;TPA$TARGET
U.216:	.WORD   <<U.69-U.216>-2>		     ;									      ;
;TPA$TYPE
U.217:	.WORD   5622				     ;									      ;
;TPA$TARGET
U.219:	.WORD   <<U.218-U.219>-2>		     ;									      ;
;HELP_STATE
U.107:	.BLKB   0
;TPA$TYPE
U.220:	.WORD   -28179				     ;									      ;
;TPA$ACTION
U.221:	.LONG   <<U.12-U.221>-4>		     ;									      ;
;TPA$TARGET
U.222:	.WORD   <<U.107-U.222>-2>		     ;									      ;
;TPA$TYPE
U.223:	.WORD   5622				     ;									      ;
;TPA$TARGET
U.224:	.WORD   <<U.69-U.224>-2>		     ;									      ;
;GET_STATE
U.99:	.BLKB   0
;TPA$TYPE
U.225:	.WORD   -28179				     ;									      ;
;TPA$ACTION
U.226:	.LONG   <<U.12-U.226>-4>		     ;									      ;
;TPA$TARGET
U.227:	.WORD   <<U.99-U.227>-2>		     ;									      ;
;TPA$TYPE
U.228:	.WORD   -26634				     ;									      ;
;TPA$FLAGS2
U.229:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.230:	.ADDRESS FILE_DESC			     ;									      ;
;TPA$ACTION
U.231:	.LONG   <<U.14-U.231>-4>		     ;									      ;
;TPA$TARGET
U.232:	.WORD   <<U.69-U.232>-2>		     ;									      ;
;REC_STATE
U.152:	.BLKB   0
;TPA$TYPE
U.233:	.WORD   -28179				     ;									      ;
;TPA$ACTION
U.234:	.LONG   <<U.12-U.234>-4>		     ;									      ;
;TPA$TARGET
U.236:	.WORD   <<U.235-U.236>-2>		     ;									      ;
;TPA$TYPE
U.237:	.WORD   5622				     ;									      ;
;TPA$TARGET
U.238:	.WORD   <<U.69-U.238>-2>		     ;									      ;
;REC1_STATE
U.235:	.BLKB   0
;TPA$TYPE
U.239:	.WORD   -28179				     ;									      ;
;TPA$ACTION
U.240:	.LONG   <<U.12-U.240>-4>		     ;									      ;
;TPA$TARGET
U.241:	.WORD   <<U.235-U.241>-2>		     ;									      ;
;TPA$TYPE
U.242:	.WORD   -27146				     ;									      ;
;TPA$ACTION
U.243:	.LONG   <<U.15-U.243>-4>		     ;									      ;
;TPA$TARGET
U.244:	.WORD   <<U.69-U.244>-2>		     ;									      ;
;REM_STATE
U.115:	.BLKB   0
;TPA$TYPE
U.248:	.WORD   28947				     ;									      ;
;TPA$ADDR
U.249:	.LONG   <<U.48-U.249>-4>		     ;									      ;
;TPA$MASK
U.250:	.LONG   11				     ;									      ;
;TPA$TARGET
U.252:	.WORD   <<U.251-U.252>-2>		     ;									      ;
;TPA$TYPE
U.256:	.WORD   28948				     ;									      ;
;TPA$ADDR
U.257:	.LONG   <<U.48-U.257>-4>		     ;									      ;
;TPA$MASK
U.258:	.LONG   9				     ;									      ;
;TPA$TARGET
U.260:	.WORD   <<U.259-U.260>-2>		     ;									      ;
;TPA$TYPE
U.264:	.WORD   28949				     ;									      ;
;TPA$ADDR
U.265:	.LONG   <<U.48-U.265>-4>		     ;									      ;
;TPA$MASK
U.266:	.LONG   4				     ;									      ;
;TPA$TARGET
U.267:	.WORD   <<U.251-U.267>-2>		     ;									      ;
;TPA$TYPE
U.271:	.WORD   28950				     ;									      ;
;TPA$ADDR
U.272:	.LONG   <<U.48-U.272>-4>		     ;									      ;
;TPA$MASK
U.273:	.LONG   2				     ;									      ;
;TPA$TARGET
U.274:	.WORD   <<U.259-U.274>-2>		     ;									      ;
;TPA$TYPE
U.278:	.WORD   28951				     ;									      ;
;TPA$ADDR
U.279:	.LONG   <<U.48-U.279>-4>		     ;									      ;
;TPA$MASK
U.280:	.LONG   3				     ;									      ;
;TPA$TARGET
U.281:	.WORD   <<U.259-U.281>-2>		     ;									      ;
;TPA$TYPE
U.285:	.WORD   28952				     ;									      ;
;TPA$ADDR
U.286:	.LONG   <<U.48-U.286>-4>		     ;									      ;
;TPA$MASK
U.287:	.LONG   1				     ;									      ;
;TPA$TARGET
U.288:	.WORD   <<U.69-U.288>-2>		     ;									      ;
;TPA$TYPE
U.292:	.WORD   28953				     ;									      ;
;TPA$ADDR
U.293:	.LONG   <<U.48-U.293>-4>		     ;									      ;
;TPA$MASK
U.294:	.LONG   6				     ;									      ;
;TPA$TARGET
U.295:	.WORD   <<U.259-U.295>-2>		     ;									      ;
;TPA$TYPE
U.299:	.WORD   28954				     ;									      ;
;TPA$ADDR
U.300:	.LONG   <<U.48-U.300>-4>		     ;									      ;
;TPA$MASK
U.301:	.LONG   15				     ;									      ;
;TPA$TARGET
U.302:	.WORD   <<U.251-U.302>-2>		     ;									      ;
;TPA$TYPE
U.306:	.WORD   28955				     ;									      ;
;TPA$ADDR
U.307:	.LONG   <<U.48-U.307>-4>		     ;									      ;
;TPA$MASK
U.308:	.LONG   8				     ;									      ;
;TPA$TARGET
U.309:	.WORD   <<U.251-U.309>-2>		     ;									      ;
;TPA$TYPE
U.313:	.WORD   28956				     ;									      ;
;TPA$ADDR
U.314:	.LONG   <<U.48-U.314>-4>		     ;									      ;
;TPA$MASK
U.315:	.LONG   7				     ;									      ;
;TPA$TARGET
U.316:	.WORD   <<U.69-U.316>-2>		     ;									      ;
;TPA$TYPE
U.320:	.WORD   28957				     ;									      ;
;TPA$ADDR
U.321:	.LONG   <<U.48-U.321>-4>		     ;									      ;
;TPA$MASK
U.322:	.LONG   10				     ;									      ;
;TPA$TARGET
U.323:	.WORD   <<U.251-U.323>-2>		     ;									      ;
;TPA$TYPE
U.327:	.WORD   28958				     ;									      ;
;TPA$ADDR
U.328:	.LONG   <<U.48-U.328>-4>		     ;									      ;
;TPA$MASK
U.329:	.LONG   13				     ;									      ;
;TPA$TARGET
U.330:	.WORD   <<U.251-U.330>-2>		     ;									      ;
;TPA$TYPE
U.334:	.WORD   28959				     ;									      ;
;TPA$ADDR
U.335:	.LONG   <<U.48-U.335>-4>		     ;									      ;
;TPA$MASK
U.336:	.LONG   3				     ;									      ;
;TPA$TARGET
U.337:	.WORD   <<U.259-U.337>-2>		     ;									      ;
;TPA$TYPE
U.341:	.WORD   28960				     ;									      ;
;TPA$ADDR
U.342:	.LONG   <<U.48-U.342>-4>		     ;									      ;
;TPA$MASK
U.343:	.LONG   14				     ;									      ;
;TPA$TARGET
U.344:	.WORD   <<U.69-U.344>-2>		     ;									      ;
;TPA$TYPE
U.348:	.WORD   28961				     ;									      ;
;TPA$ADDR
U.349:	.LONG   <<U.48-U.349>-4>		     ;									      ;
;TPA$MASK
U.350:	.LONG   5				     ;									      ;
;TPA$TARGET
U.351:	.WORD   <<U.251-U.351>-2>		     ;									      ;
;TPA$TYPE
U.355:	.WORD   28962				     ;									      ;
;TPA$ADDR
U.356:	.LONG   <<U.48-U.356>-4>		     ;									      ;
;TPA$MASK
U.357:	.LONG   12				     ;									      ;
;TPA$TARGET
U.358:	.WORD   <<U.259-U.358>-2>		     ;									      ;
;TPA$TYPE
U.359:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.360:	.LONG   <<U.33-U.360>-4>		     ;									      ;
;TPA$TARGET
U.361:	.WORD   -2				     ;									      ;
;REM1_STATE
U.259:	.BLKB   0
;TPA$TYPE
U.363:	.WORD   -28179				     ;									      ;
;TPA$ACTION
U.364:	.LONG   <<U.12-U.364>-4>		     ;									      ;
;TPA$TARGET
U.365:	.WORD   <<U.251-U.365>-2>		     ;									      ;
;TPA$TYPE
U.366:	.WORD   5622				     ;									      ;
;TPA$TARGET
U.367:	.WORD   <<U.69-U.367>-2>		     ;									      ;
;REM2_STATE
U.251:	.BLKB   0
;TPA$TYPE
U.368:	.WORD   -28179				     ;									      ;
;TPA$ACTION
U.369:	.LONG   <<U.12-U.369>-4>		     ;									      ;
;TPA$TARGET
U.370:	.WORD   <<U.251-U.370>-2>		     ;									      ;
;TPA$TYPE
U.371:	.WORD   -27146				     ;									      ;
;TPA$ACTION
U.372:	.LONG   <<U.16-U.372>-4>		     ;									      ;
;TPA$TARGET
U.373:	.WORD   <<U.69-U.373>-2>		     ;									      ;
;SET_STATE
U.167:	.BLKB   0
;TPA$TYPE
U.377:	.WORD   4387				     ;									      ;
;TPA$TARGET
U.379:	.WORD   <<U.378-U.379>-2>		     ;									      ;
;TPA$TYPE
U.383:	.WORD   4388				     ;									      ;
;TPA$TARGET
U.385:	.WORD   <<U.384-U.385>-2>		     ;									      ;
;TPA$TYPE
U.389:	.WORD   4389				     ;									      ;
;TPA$TARGET
U.391:	.WORD   <<U.390-U.391>-2>		     ;									      ;
;TPA$TYPE
U.395:	.WORD   4390				     ;									      ;
;TPA$TARGET
U.397:	.WORD   <<U.396-U.397>-2>		     ;									      ;
;TPA$TYPE
U.401:	.WORD   4391				     ;									      ;
;TPA$TARGET
U.403:	.WORD   <<U.402-U.403>-2>		     ;									      ;
;TPA$TYPE
U.407:	.WORD   4392				     ;									      ;
;TPA$TARGET
U.409:	.WORD   <<U.408-U.409>-2>		     ;									      ;
;TPA$TYPE
U.413:	.WORD   4393				     ;									      ;
;TPA$TARGET
U.415:	.WORD   <<U.414-U.415>-2>		     ;									      ;
;TPA$TYPE
U.419:	.WORD   4394				     ;									      ;
;TPA$TARGET
U.421:	.WORD   <<U.420-U.421>-2>		     ;									      ;
;TPA$TYPE
U.425:	.WORD   4395				     ;									      ;
;TPA$TARGET
U.426:	.WORD   <<U.218-U.426>-2>		     ;									      ;
;TPA$TYPE
U.430:	.WORD   4396				     ;									      ;
;TPA$TARGET
U.432:	.WORD   <<U.431-U.432>-2>		     ;									      ;
;TPA$TYPE
U.436:	.WORD   4397				     ;									      ;
;TPA$TARGET
U.438:	.WORD   <<U.437-U.438>-2>		     ;									      ;
;TPA$TYPE
U.442:	.WORD   4398				     ;									      ;
;TPA$TARGET
U.444:	.WORD   <<U.443-U.444>-2>		     ;									      ;
;TPA$TYPE
U.448:	.WORD   4399				     ;									      ;
;TPA$TARGET
U.450:	.WORD   <<U.449-U.450>-2>		     ;									      ;
;TPA$TYPE
U.454:	.WORD   4400				     ;									      ;
;TPA$TARGET
U.456:	.WORD   <<U.455-U.456>-2>		     ;									      ;
;TPA$TYPE
U.460:	.WORD   4401				     ;									      ;
;TPA$TARGET
U.462:	.WORD   <<U.461-U.462>-2>		     ;									      ;
;TPA$TYPE
U.466:	.WORD   4402				     ;									      ;
;TPA$TARGET
U.468:	.WORD   <<U.467-U.468>-2>		     ;									      ;
;TPA$TYPE
U.472:	.WORD   4403				     ;									      ;
;TPA$TARGET
U.474:	.WORD   <<U.473-U.474>-2>		     ;									      ;
;TPA$TYPE
U.478:	.WORD   4404				     ;									      ;
;TPA$TARGET
U.480:	.WORD   <<U.479-U.480>-2>		     ;									      ;
;TPA$TYPE
U.481:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.482:	.LONG   <<U.33-U.482>-4>		     ;									      ;
;TPA$TARGET
U.483:	.WORD   -2				     ;									      ;
;SET_ABT_STATE
U.420:	.BLKB   0
;TPA$TYPE
U.488:	.WORD   -27851				     ;									      ;
;TPA$FLAGS2
U.489:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.490:	.LONG   1				     ;									      ;
;TPA$ACTION
U.491:	.LONG   <<U.23-U.491>-4>		     ;									      ;
;TPA$TARGET
U.492:	.WORD   <<U.69-U.492>-2>		     ;									      ;
;TPA$TYPE
U.496:	.WORD   -27850				     ;									      ;
;TPA$FLAGS2
U.497:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.498:	.LONG   0				     ;									      ;
;TPA$ACTION
U.499:	.LONG   <<U.23-U.499>-4>		     ;									      ;
;TPA$TARGET
U.500:	.WORD   <<U.69-U.500>-2>		     ;									      ;
;TPA$TYPE
U.501:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.502:	.LONG   <<U.33-U.502>-4>		     ;									      ;
;TPA$TARGET
U.503:	.WORD   -2				     ;									      ;
;SET_CHK_STATE
U.378:	.BLKB   0
;TPA$TYPE
U.508:	.WORD   -27849				     ;									      ;
;TPA$FLAGS2
U.509:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.510:	.LONG   49				     ;									      ;
;TPA$ACTION
U.511:	.LONG   <<U.22-U.511>-4>		     ;									      ;
;TPA$TARGET
U.512:	.WORD   <<U.69-U.512>-2>		     ;									      ;
;TPA$TYPE
U.516:	.WORD   -27848				     ;									      ;
;TPA$FLAGS2
U.517:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.518:	.LONG   50				     ;									      ;
;TPA$ACTION
U.519:	.LONG   <<U.22-U.519>-4>		     ;									      ;
;TPA$TARGET
U.520:	.WORD   <<U.69-U.520>-2>		     ;									      ;
;TPA$TYPE
U.524:	.WORD   -27847				     ;									      ;
;TPA$FLAGS2
U.525:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.526:	.LONG   51				     ;									      ;
;TPA$ACTION
U.527:	.LONG   <<U.22-U.527>-4>		     ;									      ;
;TPA$TARGET
U.528:	.WORD   <<U.69-U.528>-2>		     ;									      ;
;TPA$TYPE
U.532:	.WORD   -27846				     ;									      ;
;TPA$FLAGS2
U.533:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.534:	.LONG   49				     ;									      ;
;TPA$ACTION
U.535:	.LONG   <<U.22-U.535>-4>		     ;									      ;
;TPA$TARGET
U.536:	.WORD   <<U.69-U.536>-2>		     ;									      ;
;TPA$TYPE
U.540:	.WORD   -27845				     ;									      ;
;TPA$FLAGS2
U.541:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.542:	.LONG   51				     ;									      ;
;TPA$ACTION
U.543:	.LONG   <<U.22-U.543>-4>		     ;									      ;
;TPA$TARGET
U.544:	.WORD   <<U.69-U.544>-2>		     ;									      ;
;TPA$TYPE
U.548:	.WORD   -27844				     ;									      ;
;TPA$FLAGS2
U.549:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.550:	.LONG   50				     ;									      ;
;TPA$ACTION
U.551:	.LONG   <<U.22-U.551>-4>		     ;									      ;
;TPA$TARGET
U.552:	.WORD   <<U.69-U.552>-2>		     ;									      ;
;TPA$TYPE
U.553:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.554:	.LONG   <<U.33-U.554>-4>		     ;									      ;
;TPA$TARGET
U.555:	.WORD   -2				     ;									      ;
;SET_DEB_STATE
U.384:	.BLKB   0
;TPA$TYPE
U.560:	.WORD   -27843				     ;									      ;
;TPA$FLAGS2
U.561:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.562:	.LONG   0				     ;									      ;
;TPA$ACTION
U.563:	.LONG   <<U.17-U.563>-4>		     ;									      ;
;TPA$TARGET
U.564:	.WORD   <<U.69-U.564>-2>		     ;									      ;
;TPA$TYPE
U.568:	.WORD   -27842				     ;									      ;
;TPA$FLAGS2
U.569:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.570:	.LONG   1				     ;									      ;
;TPA$ACTION
U.571:	.LONG   <<U.17-U.571>-4>		     ;									      ;
;TPA$TARGET
U.572:	.WORD   <<U.69-U.572>-2>		     ;									      ;
;TPA$TYPE
U.573:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.574:	.LONG   <<U.33-U.574>-4>		     ;									      ;
;TPA$TARGET
U.575:	.WORD   -2				     ;									      ;
;SET_IBM_STATE
U.414:	.BLKB   0
;TPA$TYPE
U.580:	.WORD   -27841				     ;									      ;
;TPA$FLAGS2
U.581:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.582:	.LONG   0				     ;									      ;
;TPA$ACTION
U.583:	.LONG   <<U.24-U.583>-4>		     ;									      ;
;TPA$TARGET
U.584:	.WORD   <<U.69-U.584>-2>		     ;									      ;
;TPA$TYPE
U.588:	.WORD   -27840				     ;									      ;
;TPA$FLAGS2
U.589:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.590:	.LONG   1				     ;									      ;
;TPA$ACTION
U.591:	.LONG   <<U.24-U.591>-4>		     ;									      ;
;TPA$TARGET
U.592:	.WORD   <<U.69-U.592>-2>		     ;									      ;
;TPA$TYPE
U.593:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.594:	.LONG   <<U.33-U.594>-4>		     ;									      ;
;TPA$TARGET
U.595:	.WORD   -2				     ;									      ;
;SET_HAN_STATE
U.408:	.BLKB   0
;TPA$TYPE
U.600:	.WORD   28993				     ;									      ;
;TPA$ADDR
U.601:	.LONG   <<IBM_CHAR-U.601>-4>		     ;									      ;
;TPA$MASK
U.602:	.LONG   -1				     ;									      ;
;TPA$TARGET
U.603:	.WORD   <<U.69-U.603>-2>		     ;									      ;
;TPA$TYPE
U.604:	.WORD   22004				     ;									      ;
;TPA$ADDR
U.605:	.LONG   <<IBM_CHAR-U.605>-4>		     ;									      ;
;TPA$TARGET
U.606:	.WORD   <<U.69-U.606>-2>		     ;									      ;
;SET_DEL_STATE
U.390:	.BLKB   0
;TPA$TYPE
U.608:	.WORD   22003				     ;									      ;
;TPA$ADDR
U.609:	.LONG   <<DELAY-U.609>-4>		     ;									      ;
;TPA$TARGET
U.610:	.WORD   <<U.69-U.610>-2>		     ;									      ;
;SET_ESC_STATE
U.396:	.BLKB   0
;TPA$TYPE
U.611:	.WORD   22004				     ;									      ;
;TPA$ADDR
U.612:	.LONG   <<ESCAPE_CHR-U.612>-4>		     ;									      ;
;TPA$TARGET
U.613:	.WORD   <<U.69-U.613>-2>		     ;									      ;
;SET_FIL_STATE
U.402:	.BLKB   0
;TPA$TYPE
U.617:	.WORD   4418				     ;									      ;
;TPA$TARGET
U.619:	.WORD   <<U.618-U.619>-2>		     ;									      ;
;TPA$TYPE
U.623:	.WORD   4419				     ;									      ;
;TPA$TARGET
U.625:	.WORD   <<U.624-U.625>-2>		     ;									      ;
;TPA$TYPE
U.626:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.627:	.LONG   <<U.33-U.627>-4>		     ;									      ;
;TPA$TARGET
U.628:	.WORD   -2				     ;									      ;
;SET_FNM_STATE
U.618:	.BLKB   0
;TPA$TYPE
U.633:	.WORD   -27836				     ;									      ;
;TPA$FLAGS2
U.634:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.635:	.LONG   2				     ;									      ;
;TPA$ACTION
U.636:	.LONG   <<U.19-U.636>-4>		     ;									      ;
;TPA$TARGET
U.637:	.WORD   <<U.69-U.637>-2>		     ;									      ;
;TPA$TYPE
U.641:	.WORD   -27835				     ;									      ;
;TPA$FLAGS2
U.642:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.643:	.LONG   1				     ;									      ;
;TPA$ACTION
U.644:	.LONG   <<U.19-U.644>-4>		     ;									      ;
;TPA$TARGET
U.645:	.WORD   <<U.69-U.645>-2>		     ;									      ;
;TPA$TYPE
U.649:	.WORD   -27834				     ;									      ;
;TPA$FLAGS2
U.650:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.651:	.LONG   4				     ;									      ;
;TPA$ACTION
U.652:	.LONG   <<U.19-U.652>-4>		     ;									      ;
;TPA$TARGET
U.653:	.WORD   <<U.69-U.653>-2>		     ;									      ;
;TPA$TYPE
U.654:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.655:	.LONG   <<U.33-U.655>-4>		     ;									      ;
;TPA$TARGET
U.656:	.WORD   -2				     ;									      ;
;SET_FTP_STATE
U.624:	.BLKB   0
;TPA$TYPE
U.661:	.WORD   -27833				     ;									      ;
;TPA$FLAGS2
U.662:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.663:	.LONG   1				     ;									      ;
;TPA$ACTION
U.664:	.LONG   <<U.18-U.664>-4>		     ;									      ;
;TPA$TARGET
U.665:	.WORD   <<U.69-U.665>-2>		     ;									      ;
;TPA$TYPE
U.669:	.WORD   -27832				     ;									      ;
;TPA$FLAGS2
U.670:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.671:	.LONG   2				     ;									      ;
;TPA$ACTION
U.672:	.LONG   <<U.18-U.672>-4>		     ;									      ;
;TPA$TARGET
U.673:	.WORD   <<U.69-U.673>-2>		     ;									      ;
;TPA$TYPE
U.677:	.WORD   -27831				     ;									      ;
;TPA$FLAGS2
U.678:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.679:	.LONG   3				     ;									      ;
;TPA$ACTION
U.680:	.LONG   <<U.18-U.680>-4>		     ;									      ;
;TPA$TARGET
U.681:	.WORD   <<U.69-U.681>-2>		     ;									      ;
;TPA$TYPE
U.685:	.WORD   -27830				     ;									      ;
;TPA$FLAGS2
U.686:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.687:	.LONG   4				     ;									      ;
;TPA$ACTION
U.688:	.LONG   <<U.18-U.688>-4>		     ;									      ;
;TPA$TARGET
U.689:	.WORD   <<U.69-U.689>-2>		     ;									      ;
;TPA$TYPE
U.690:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.691:	.LONG   <<U.33-U.691>-4>		     ;									      ;
;TPA$TARGET
U.692:	.WORD   -2				     ;									      ;
;SET_LIN_STATE
U.218:	.BLKB   0
;TPA$TYPE
U.694:	.WORD   -28179				     ;									      ;
;TPA$ACTION
U.695:	.LONG   <<U.12-U.695>-4>		     ;									      ;
;TPA$TARGET
U.696:	.WORD   <<U.218-U.696>-2>		     ;									      ;
;TPA$TYPE
U.697:	.WORD   -27146				     ;									      ;
;TPA$ACTION
U.698:	.LONG   <<U.13-U.698>-4>		     ;									      ;
;TPA$TARGET
U.699:	.WORD   <<U.69-U.699>-2>		     ;									      ;
;SET_ECH_STATE
U.431:	.BLKB   0
;TPA$TYPE
U.703:	.WORD   -27829				     ;									      ;
;TPA$FLAGS2
U.704:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.705:	.LONG   0				     ;									      ;
;TPA$ACTION
U.706:	.LONG   <<U.20-U.706>-4>		     ;									      ;
;TPA$TARGET
U.707:	.WORD   <<U.69-U.707>-2>		     ;									      ;
;TPA$TYPE
U.711:	.WORD   -27828				     ;									      ;
;TPA$FLAGS2
U.712:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.713:	.LONG   1				     ;									      ;
;TPA$ACTION
U.714:	.LONG   <<U.20-U.714>-4>		     ;									      ;
;TPA$TARGET
U.715:	.WORD   <<U.69-U.715>-2>		     ;									      ;
;TPA$TYPE
U.716:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.717:	.LONG   <<U.33-U.717>-4>		     ;									      ;
;TPA$TARGET
U.718:	.WORD   -2				     ;									      ;
;SET_MSG_STATE
U.437:	.BLKB   0
;TPA$TYPE
U.723:	.WORD   4429				     ;									      ;
;TPA$TARGET
U.725:	.WORD   <<U.724-U.725>-2>		     ;									      ;
;TPA$TYPE
U.729:	.WORD   4430				     ;									      ;
;TPA$TARGET
U.731:	.WORD   <<U.730-U.731>-2>		     ;									      ;
;TPA$TYPE
U.732:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.733:	.LONG   <<U.33-U.733>-4>		     ;									      ;
;TPA$TARGET
U.734:	.WORD   -2				     ;									      ;
;SET_MSG_FIL_STATE
U.724:	.BLKB   0
;TPA$TYPE
U.739:	.WORD   -27825				     ;									      ;
;TPA$FLAGS2
U.740:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.741:	.LONG   0				     ;									      ;
;TPA$ACTION
U.742:	.LONG   <<U.25-U.742>-4>		     ;									      ;
;TPA$TARGET
U.743:	.WORD   <<U.69-U.743>-2>		     ;									      ;
;TPA$TYPE
U.747:	.WORD   -27824				     ;									      ;
;TPA$FLAGS2
U.748:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.749:	.LONG   1				     ;									      ;
;TPA$ACTION
U.750:	.LONG   <<U.25-U.750>-4>		     ;									      ;
;TPA$TARGET
U.751:	.WORD   <<U.69-U.751>-2>		     ;									      ;
;TPA$TYPE
U.752:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.753:	.LONG   <<U.33-U.753>-4>		     ;									      ;
;TPA$TARGET
U.754:	.WORD   -2				     ;									      ;
;SET_MSG_PKT_STATE
U.730:	.BLKB   0
;TPA$TYPE
U.759:	.WORD   -27823				     ;									      ;
;TPA$FLAGS2
U.760:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.761:	.LONG   0				     ;									      ;
;TPA$ACTION
U.762:	.LONG   <<U.26-U.762>-4>		     ;									      ;
;TPA$TARGET
U.763:	.WORD   <<U.69-U.763>-2>		     ;									      ;
;TPA$TYPE
U.767:	.WORD   -27822				     ;									      ;
;TPA$FLAGS2
U.768:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.769:	.LONG   1				     ;									      ;
;TPA$ACTION
U.770:	.LONG   <<U.26-U.770>-4>		     ;									      ;
;TPA$TARGET
U.771:	.WORD   <<U.69-U.771>-2>		     ;									      ;
;TPA$TYPE
U.772:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.773:	.LONG   <<U.33-U.773>-4>		     ;									      ;
;TPA$TARGET
U.774:	.WORD   -2				     ;									      ;
;SET_PMT_STATE
U.449:	.BLKB   0
;TPA$TYPE
U.776:	.WORD   -28179				     ;									      ;
;TPA$ACTION
U.777:	.LONG   <<U.12-U.777>-4>		     ;									      ;
;TPA$TARGET
U.778:	.WORD   <<U.449-U.778>-2>		     ;									      ;
;TPA$TYPE
U.779:	.WORD   -26634				     ;									      ;
;TPA$FLAGS2
U.780:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.781:	.ADDRESS U.54				     ;									      ;
;TPA$ACTION
U.782:	.LONG   <<U.14-U.782>-4>		     ;									      ;
;TPA$TARGET
U.783:	.WORD   <<U.69-U.783>-2>		     ;									      ;
;SET_RPT_STATE
U.461:	.BLKB   0
;TPA$TYPE
U.784:	.WORD   -10764				     ;									      ;
;TPA$ACTION
U.785:	.LONG   <<U.31-U.785>-4>		     ;									      ;
;TPA$ADDR
U.786:	.LONG   <<SET_REPT_CHR-U.786>-4>	     ;									      ;
;TPA$TARGET
U.787:	.WORD   <<U.69-U.787>-2>		     ;									      ;
;SET_RTY_STATE
U.467:	.BLKB   0
;TPA$TYPE
U.791:	.WORD   4435				     ;									      ;
;TPA$TARGET
U.793:	.WORD   <<U.792-U.793>-2>		     ;									      ;
;TPA$TYPE
U.797:	.WORD   4436				     ;									      ;
;TPA$TARGET
U.799:	.WORD   <<U.798-U.799>-2>		     ;									      ;
;TPA$TYPE
U.800:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.801:	.LONG   <<U.33-U.801>-4>		     ;									      ;
;TPA$TARGET
U.802:	.WORD   -2				     ;									      ;
;SET_RTY_INI_STATE
U.792:	.BLKB   0
;TPA$TYPE
U.804:	.WORD   22003				     ;									      ;
;TPA$ADDR
U.805:	.LONG   <<SI_RETRIES-U.805>-4>		     ;									      ;
;TPA$TARGET
U.806:	.WORD   <<U.69-U.806>-2>		     ;									      ;
;SET_RTY_PKT_STATE
U.798:	.BLKB   0
;TPA$TYPE
U.807:	.WORD   22003				     ;									      ;
;TPA$ADDR
U.808:	.LONG   <<PKT_RETRIES-U.808>-4>		     ;									      ;
;TPA$TARGET
U.809:	.WORD   <<U.69-U.809>-2>		     ;									      ;
;SET_PAR_STATE
U.443:	.BLKB   0
;TPA$TYPE
U.813:	.WORD   -27819				     ;									      ;
;TPA$FLAGS2
U.814:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.815:	.LONG   2				     ;									      ;
;TPA$ACTION
U.816:	.LONG   <<U.21-U.816>-4>		     ;									      ;
;TPA$TARGET
U.817:	.WORD   <<U.69-U.817>-2>		     ;									      ;
;TPA$TYPE
U.821:	.WORD   -27818				     ;									      ;
;TPA$FLAGS2
U.822:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.823:	.LONG   1				     ;									      ;
;TPA$ACTION
U.824:	.LONG   <<U.21-U.824>-4>		     ;									      ;
;TPA$TARGET
U.825:	.WORD   <<U.69-U.825>-2>		     ;									      ;
;TPA$TYPE
U.829:	.WORD   -27817				     ;									      ;
;TPA$FLAGS2
U.830:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.831:	.LONG   0				     ;									      ;
;TPA$ACTION
U.832:	.LONG   <<U.21-U.832>-4>		     ;									      ;
;TPA$TARGET
U.833:	.WORD   <<U.69-U.833>-2>		     ;									      ;
;TPA$TYPE
U.837:	.WORD   -27816				     ;									      ;
;TPA$FLAGS2
U.838:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.839:	.LONG   3				     ;									      ;
;TPA$ACTION
U.840:	.LONG   <<U.21-U.840>-4>		     ;									      ;
;TPA$TARGET
U.841:	.WORD   <<U.69-U.841>-2>		     ;									      ;
;TPA$TYPE
U.845:	.WORD   -27815				     ;									      ;
;TPA$FLAGS2
U.846:	.BYTE   1				     ;									      ;
;TPA$PARAM
U.847:	.LONG   4				     ;									      ;
;TPA$ACTION
U.848:	.LONG   <<U.21-U.848>-4>		     ;									      ;
;TPA$TARGET
U.849:	.WORD   <<U.69-U.849>-2>		     ;									      ;
;TPA$TYPE
U.850:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.851:	.LONG   <<U.33-U.851>-4>		     ;									      ;
;TPA$TARGET
U.852:	.WORD   -2				     ;									      ;
;SET_REC_STATE
U.455:	.BLKB   0
;TPA$TYPE
U.857:	.WORD   4442				     ;									      ;
;TPA$TARGET
U.859:	.WORD   <<U.858-U.859>-2>		     ;									      ;
;TPA$TYPE
U.863:	.WORD   4443				     ;									      ;
;TPA$TARGET
U.865:	.WORD   <<U.864-U.865>-2>		     ;									      ;
;TPA$TYPE
U.869:	.WORD   4444				     ;									      ;
;TPA$TARGET
U.871:	.WORD   <<U.870-U.871>-2>		     ;									      ;
;TPA$TYPE
U.875:	.WORD   4445				     ;									      ;
;TPA$TARGET
U.877:	.WORD   <<U.876-U.877>-2>		     ;									      ;
;TPA$TYPE
U.881:	.WORD   4446				     ;									      ;
;TPA$TARGET
U.883:	.WORD   <<U.882-U.883>-2>		     ;									      ;
;TPA$TYPE
U.887:	.WORD   4447				     ;									      ;
;TPA$TARGET
U.889:	.WORD   <<U.888-U.889>-2>		     ;									      ;
;TPA$TYPE
U.893:	.WORD   4448				     ;									      ;
;TPA$TARGET
U.895:	.WORD   <<U.894-U.895>-2>		     ;									      ;
;TPA$TYPE
U.899:	.WORD   4449				     ;									      ;
;TPA$TARGET
U.901:	.WORD   <<U.900-U.901>-2>		     ;									      ;
;TPA$TYPE
U.902:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.903:	.LONG   <<U.33-U.903>-4>		     ;									      ;
;TPA$TARGET
U.904:	.WORD   -2				     ;									      ;
;SR_PKT_STATE
U.870:	.BLKB   0
;TPA$TYPE
U.906:	.WORD   -10765				     ;									      ;
;TPA$ACTION
U.907:	.LONG   <<U.27-U.907>-4>		     ;									      ;
;TPA$ADDR
U.908:	.LONG   <<RCV_PKT_SIZE-U.908>-4>	     ;									      ;
;TPA$TARGET
U.909:	.WORD   <<U.69-U.909>-2>		     ;									      ;
;SR_PAD_STATE
U.882:	.BLKB   0
;TPA$TYPE
U.910:	.WORD   -10765				     ;									      ;
;TPA$ACTION
U.911:	.LONG   <<U.28-U.911>-4>		     ;									      ;
;TPA$ADDR
U.912:	.LONG   <<RCV_NPAD-U.912>-4>		     ;									      ;
;TPA$TARGET
U.913:	.WORD   <<U.69-U.913>-2>		     ;									      ;
;SR_PDC_STATE
U.876:	.BLKB   0
;TPA$TYPE
U.914:	.WORD   -10764				     ;									      ;
;TPA$ACTION
U.915:	.LONG   <<U.29-U.915>-4>		     ;									      ;
;TPA$ADDR
U.916:	.LONG   <<RCV_PADCHAR-U.916>-4>		     ;									      ;
;TPA$TARGET
U.917:	.WORD   <<U.69-U.917>-2>		     ;									      ;
;SR_SOH_STATE
U.894:	.BLKB   0
;TPA$TYPE
U.918:	.WORD   -10764				     ;									      ;
;TPA$ACTION
U.919:	.LONG   <<U.32-U.919>-4>		     ;									      ;
;TPA$ADDR
U.920:	.LONG   <<RCV_SOH-U.920>-4>		     ;									      ;
;TPA$TARGET
U.921:	.WORD   <<U.69-U.921>-2>		     ;									      ;
;SR_TIM_STATE
U.900:	.BLKB   0
;TPA$TYPE
U.922:	.WORD   22003				     ;									      ;
;TPA$ADDR
U.923:	.LONG   <<RCV_TIMEOUT-U.923>-4>		     ;									      ;
;TPA$TARGET
U.924:	.WORD   <<U.69-U.924>-2>		     ;									      ;
;SR_EOL_STATE
U.864:	.BLKB   0
;TPA$TYPE
U.925:	.WORD   -10764				     ;									      ;
;TPA$ACTION
U.926:	.LONG   <<U.30-U.926>-4>		     ;									      ;
;TPA$ADDR
U.927:	.LONG   <<RCV_EOL-U.927>-4>		     ;									      ;
;TPA$TARGET
U.928:	.WORD   <<U.69-U.928>-2>		     ;									      ;
;SR_QUO_STATE
U.888:	.BLKB   0
;TPA$TYPE
U.929:	.WORD   -10764				     ;									      ;
;TPA$ACTION
U.930:	.LONG   <<U.31-U.930>-4>		     ;									      ;
;TPA$ADDR
U.931:	.LONG   <<RCV_QUOTE_CHR-U.931>-4>	     ;									      ;
;TPA$TARGET
U.932:	.WORD   <<U.69-U.932>-2>		     ;									      ;
;SR_8QU_STATE
U.858:	.BLKB   0
;TPA$TYPE
U.933:	.WORD   -10764				     ;									      ;
;TPA$ACTION
U.934:	.LONG   <<U.31-U.934>-4>		     ;									      ;
;TPA$ADDR
U.935:	.LONG   <<RCV_8QUOTE_CHR-U.935>-4>	     ;									      ;
;TPA$TARGET
U.936:	.WORD   <<U.69-U.936>-2>		     ;									      ;
;SET_SND_STATE
U.473:	.BLKB   0
;TPA$TYPE
U.940:	.WORD   4450				     ;									      ;
;TPA$TARGET
U.942:	.WORD   <<U.941-U.942>-2>		     ;									      ;
;TPA$TYPE
U.946:	.WORD   4451				     ;									      ;
;TPA$TARGET
U.948:	.WORD   <<U.947-U.948>-2>		     ;									      ;
;TPA$TYPE
U.952:	.WORD   4452				     ;									      ;
;TPA$TARGET
U.954:	.WORD   <<U.953-U.954>-2>		     ;									      ;
;TPA$TYPE
U.958:	.WORD   4453				     ;									      ;
;TPA$TARGET
U.960:	.WORD   <<U.959-U.960>-2>		     ;									      ;
;TPA$TYPE
U.964:	.WORD   4454				     ;									      ;
;TPA$TARGET
U.966:	.WORD   <<U.965-U.966>-2>		     ;									      ;
;TPA$TYPE
U.970:	.WORD   4455				     ;									      ;
;TPA$TARGET
U.972:	.WORD   <<U.971-U.972>-2>		     ;									      ;
;TPA$TYPE
U.976:	.WORD   4456				     ;									      ;
;TPA$TARGET
U.978:	.WORD   <<U.977-U.978>-2>		     ;									      ;
;TPA$TYPE
U.979:	.WORD   -27151				     ;									      ;
;TPA$ACTION
U.980:	.LONG   <<U.33-U.980>-4>		     ;									      ;
;TPA$TARGET
U.981:	.WORD   -2				     ;									      ;
;SS_PKT_STATE
U.947:	.BLKB   0
;TPA$TYPE
U.983:	.WORD   -10765				     ;									      ;
;TPA$ACTION
U.984:	.LONG   <<U.27-U.984>-4>		     ;									      ;
;TPA$ADDR
U.985:	.LONG   <<SND_PKT_SIZE-U.985>-4>	     ;									      ;
;TPA$TARGET
U.986:	.WORD   <<U.69-U.986>-2>		     ;									      ;
;SS_PAD_STATE
U.959:	.BLKB   0
;TPA$TYPE
U.987:	.WORD   -10765				     ;									      ;
;TPA$ACTION
U.988:	.LONG   <<U.28-U.988>-4>		     ;									      ;
;TPA$ADDR
U.989:	.LONG   <<SND_NPAD-U.989>-4>		     ;									      ;
;TPA$TARGET
U.990:	.WORD   <<U.69-U.990>-2>		     ;									      ;
;SS_PDC_STATE
U.953:	.BLKB   0
;TPA$TYPE
U.991:	.WORD   -10764				     ;									      ;
;TPA$ACTION
U.992:	.LONG   <<U.29-U.992>-4>		     ;									      ;
;TPA$ADDR
U.993:	.LONG   <<SND_PADCHAR-U.993>-4>		     ;									      ;
;TPA$TARGET
U.994:	.WORD   <<U.69-U.994>-2>		     ;									      ;
;SS_SOH_STATE
U.971:	.BLKB   0
;TPA$TYPE
U.995:	.WORD   -10764				     ;									      ;
;TPA$ACTION
U.996:	.LONG   <<U.32-U.996>-4>		     ;									      ;
;TPA$ADDR
U.997:	.LONG   <<SND_SOH-U.997>-4>		     ;									      ;
;TPA$TARGET
U.998:	.WORD   <<U.69-U.998>-2>		     ;									      ;
;SS_TIM_STATE
U.977:	.BLKB   0
;TPA$TYPE
U.999:	.WORD   22003				     ;									      ;
;TPA$ADDR
U.1000: .LONG   <<SND_TIMEOUT-U.1000>-4>	     ;									      ;
;TPA$TARGET
U.1001: .WORD   <<U.69-U.1001>-2>		     ;									      ;
;SS_EOL_STATE
U.941:	.BLKB   0
;TPA$TYPE
U.1002: .WORD   -10764				     ;									      ;
;TPA$ACTION
U.1003: .LONG   <<U.30-U.1003>-4>		     ;									      ;
;TPA$ADDR
U.1004: .LONG   <<SND_EOL-U.1004>-4>		     ;									      ;
;TPA$TARGET
U.1005: .WORD   <<U.69-U.1005>-2>		     ;									      ;
;SS_QUO_STATE
U.965:	.BLKB   0
;TPA$TYPE
U.1006: .WORD   -10764				     ;									      ;
;TPA$ACTION
U.1007: .LONG   <<U.31-U.1007>-4>		     ;									      ;
;TPA$ADDR
U.1008: .LONG   <<SND_QUOTE_CHR-U.1008>-4>	     ;									      ;
;TPA$TARGET
U.1009: .WORD   <<U.69-U.1009>-2>		     ;									      ;
;SET_SRV_STATE
U.479:	.BLKB   0
;TPA$TYPE
U.1010: .WORD   22003				     ;									      ;
;TPA$ADDR
U.1011: .LONG   <<SRV_TIMEOUT-U.1011>-4>	     ;									      ;
;TPA$TARGET
U.1012: .WORD   <<U.69-U.1012>-2>		     ;									      ;
;SEND_STATE
U.175:	.BLKB   0
;TPA$TYPE
U.1013: .WORD   -28179				     ;									      ;
;TPA$ACTION
U.1014: .LONG   <<U.12-U.1014>-4>		     ;									      ;
;TPA$TARGET
U.1015: .WORD   <<U.175-U.1015>-2>		     ;									      ;
;TPA$TYPE
U.1016: .WORD   -26634				     ;									      ;
;TPA$FLAGS2
U.1017: .BYTE   1				     ;									      ;
;TPA$PARAM
U.1018: .ADDRESS FILE_DESC			     ;									      ;
;TPA$ACTION
U.1019: .LONG   <<U.14-U.1019>-4>		     ;									      ;
;TPA$TARGET
U.1020: .WORD   <<U.69-U.1020>-2>		     ;									      ;
;SHOW_STATE
U.190:	.BLKB   0
;TPA$TYPE
U.1024: .WORD   29033				     ;									      ;
;TPA$ADDR
U.1025: .LONG   <<U.47-U.1025>-4>		     ;									      ;
;TPA$MASK
U.1026: .LONG   1				     ;									      ;
;TPA$TARGET
U.1027: .WORD   <<U.69-U.1027>-2>		     ;									      ;
;TPA$TYPE
U.1031: .WORD   29034				     ;									      ;
;TPA$ADDR
U.1032: .LONG   <<U.47-U.1032>-4>		     ;									      ;
;TPA$MASK
U.1033: .LONG   12				     ;									      ;
;TPA$TARGET
U.1034: .WORD   <<U.69-U.1034>-2>		     ;									      ;
;TPA$TYPE
U.1038: .WORD   29035				     ;									      ;
;TPA$ADDR
U.1039: .LONG   <<U.47-U.1039>-4>		     ;									      ;
;TPA$MASK
U.1040: .LONG   16				     ;									      ;
;TPA$TARGET
U.1041: .WORD   <<U.69-U.1041>-2>		     ;									      ;
;TPA$TYPE
U.1045: .WORD   29036				     ;									      ;
;TPA$ADDR
U.1046: .LONG   <<U.47-U.1046>-4>		     ;									      ;
;TPA$MASK
U.1047: .LONG   2				     ;									      ;
;TPA$TARGET
U.1048: .WORD   <<U.69-U.1048>-2>		     ;									      ;
;TPA$TYPE
U.1052: .WORD   29037				     ;									      ;
;TPA$ADDR
U.1053: .LONG   <<U.47-U.1053>-4>		     ;									      ;
;TPA$MASK
U.1054: .LONG   3				     ;									      ;
;TPA$TARGET
U.1055: .WORD   <<U.69-U.1055>-2>		     ;									      ;
;TPA$TYPE
U.1059: .WORD   29038				     ;									      ;
;TPA$ADDR
U.1060: .LONG   <<U.47-U.1060>-4>		     ;									      ;
;TPA$MASK
U.1061: .LONG   4				     ;									      ;
;TPA$TARGET
U.1062: .WORD   <<U.69-U.1062>-2>		     ;									      ;
;TPA$TYPE
U.1066: .WORD   29039				     ;									      ;
;TPA$ADDR
U.1067: .LONG   <<U.47-U.1067>-4>		     ;									      ;
;TPA$MASK
U.1068: .LONG   14				     ;									      ;
;TPA$TARGET
U.1069: .WORD   <<U.69-U.1069>-2>		     ;									      ;
;TPA$TYPE
U.1073: .WORD   29040				     ;									      ;
;TPA$ADDR
U.1074: .LONG   <<U.47-U.1074>-4>		     ;									      ;
;TPA$MASK
U.1075: .LONG   13				     ;									      ;
;TPA$TARGET
U.1076: .WORD   <<U.69-U.1076>-2>		     ;									      ;
;TPA$TYPE
U.1080: .WORD   29041				     ;									      ;
;TPA$ADDR
U.1081: .LONG   <<U.47-U.1081>-4>		     ;									      ;
;TPA$MASK
U.1082: .LONG   6				     ;									      ;
;TPA$TARGET
U.1083: .WORD   <<U.69-U.1083>-2>		     ;									      ;
;TPA$TYPE
U.1087: .WORD   29042				     ;									      ;
;TPA$ADDR
U.1088: .LONG   <<U.47-U.1088>-4>		     ;									      ;
;TPA$MASK
U.1089: .LONG   7				     ;									      ;
;TPA$TARGET
U.1090: .WORD   <<U.69-U.1090>-2>		     ;									      ;
;TPA$TYPE
U.1094: .WORD   29043				     ;									      ;
;TPA$ADDR
U.1095: .LONG   <<U.47-U.1095>-4>		     ;									      ;
;TPA$MASK
U.1096: .LONG   15				     ;									      ;
;TPA$TARGET
U.1097: .WORD   <<U.69-U.1097>-2>		     ;									      ;
;TPA$TYPE
U.1101: .WORD   29044				     ;									      ;
;TPA$ADDR
U.1102: .LONG   <<U.47-U.1102>-4>		     ;									      ;
;TPA$MASK
U.1103: .LONG   10				     ;									      ;
;TPA$TARGET
U.1104: .WORD   <<U.69-U.1104>-2>		     ;									      ;
;TPA$TYPE
U.1108: .WORD   29045				     ;									      ;
;TPA$ADDR
U.1109: .LONG   <<U.47-U.1109>-4>		     ;									      ;
;TPA$MASK
U.1110: .LONG   8				     ;									      ;
;TPA$TARGET
U.1111: .WORD   <<U.69-U.1111>-2>		     ;									      ;
;TPA$TYPE
U.1115: .WORD   29046				     ;									      ;
;TPA$ADDR
U.1116: .LONG   <<U.47-U.1116>-4>		     ;									      ;
;TPA$MASK
U.1117: .LONG   5				     ;									      ;
;TPA$TARGET
U.1118: .WORD   <<U.69-U.1118>-2>		     ;									      ;
;TPA$TYPE
U.1122: .WORD   29047				     ;									      ;
;TPA$ADDR
U.1123: .LONG   <<U.47-U.1123>-4>		     ;									      ;
;TPA$MASK
U.1124: .LONG   9				     ;									      ;
;TPA$TARGET
U.1125: .WORD   <<U.69-U.1125>-2>		     ;									      ;
;TPA$TYPE
U.1129: .WORD   29048				     ;									      ;
;TPA$ADDR
U.1130: .LONG   <<U.47-U.1130>-4>		     ;									      ;
;TPA$MASK
U.1131: .LONG   11				     ;									      ;
;TPA$TARGET
U.1132: .WORD   <<U.69-U.1132>-2>		     ;									      ;
;TPA$TYPE
U.1136: .WORD   29049				     ;									      ;
;TPA$ADDR
U.1137: .LONG   <<U.47-U.1137>-4>		     ;									      ;
;TPA$MASK
U.1138: .LONG   17				     ;									      ;
;TPA$TARGET
U.1139: .WORD   <<U.69-U.1139>-2>		     ;									      ;
;TPA$TYPE
U.1140: .WORD   -27151				     ;									      ;
;TPA$ACTION
U.1141: .LONG   <<U.33-U.1141>-4>		     ;									      ;
;TPA$TARGET
U.1142: .WORD   -2				     ;									      ;
;LOG_STATE
U.123:	.BLKB   0
;TPA$TYPE
U.1147: .WORD   4474				     ;									      ;
;TPA$TARGET
U.1149: .WORD   <<U.1148-U.1149>-2>		     ;									      ;
;TPA$TYPE
U.1153: .WORD   4475				     ;									      ;
;TPA$TARGET
U.1155: .WORD   <<U.1154-U.1155>-2>		     ;									      ;
;TPA$TYPE
U.1159: .WORD   4476				     ;									      ;
;TPA$TARGET
U.1161: .WORD   <<U.1160-U.1161>-2>		     ;									      ;
;TPA$TYPE
U.1162: .WORD   -27151				     ;									      ;
;TPA$ACTION
U.1163: .LONG   <<U.33-U.1163>-4>		     ;									      ;
;TPA$TARGET
U.1164: .WORD   -2				     ;									      ;
;DBG_STATE
U.1148: .BLKB   0
;TPA$TYPE
U.1166: .WORD   -28179				     ;									      ;
;TPA$ACTION
U.1167: .LONG   <<U.12-U.1167>-4>		     ;									      ;
;TPA$TARGET
U.1168: .WORD   <<U.1148-U.1168>-2>		     ;									      ;
;TPA$TYPE
U.1169: .WORD   -26634				     ;									      ;
;TPA$FLAGS2
U.1170: .BYTE   1				     ;									      ;
;TPA$PARAM
U.1171: .ADDRESS DEBUG_DESC			     ;									      ;
;TPA$ACTION
U.1172: .LONG   <<U.14-U.1172>-4>		     ;									      ;
;TPA$TARGET
U.1173: .WORD   <<U.69-U.1173>-2>		     ;									      ;
;SES_STATE
U.1154: .BLKB   0
;TPA$TYPE
U.1174: .WORD   -28179				     ;									      ;
;TPA$ACTION
U.1175: .LONG   <<U.12-U.1175>-4>		     ;									      ;
;TPA$TARGET
U.1176: .WORD   <<U.1154-U.1176>-2>		     ;									      ;
;TPA$TYPE
U.1177: .WORD   -26634				     ;									      ;
;TPA$FLAGS2
U.1178: .BYTE   1				     ;									      ;
;TPA$PARAM
U.1179: .ADDRESS SESSION_DESC			     ;									      ;
;TPA$ACTION
U.1180: .LONG   <<U.14-U.1180>-4>		     ;									      ;
;TPA$TARGET
U.1181: .WORD   <<U.69-U.1181>-2>		     ;									      ;
;TRN_STATE
U.1160: .BLKB   0
;TPA$TYPE
U.1182: .WORD   -28179				     ;									      ;
;TPA$ACTION
U.1183: .LONG   <<U.12-U.1183>-4>		     ;									      ;
;TPA$TARGET
U.1184: .WORD   <<U.1160-U.1184>-2>		     ;									      ;
;TPA$TYPE
U.1185: .WORD   -26634				     ;									      ;
;TPA$FLAGS2
U.1186: .BYTE   1				     ;									      ;
;TPA$PARAM
U.1187: .ADDRESS TRANSACTION_DESC		     ;									      ;
;TPA$ACTION
U.1188: .LONG   <<U.14-U.1188>-4>		     ;									      ;
;TPA$TARGET
U.1189: .WORD   <<U.69-U.1189>-2>		     ;									      ;
;TAKE_STATE
U.205:	.BLKB   0
;TPA$TYPE
U.1190: .WORD   -28113				     ;									      ;
;TPA$FLAGS2
U.1191: .BYTE   1				     ;									      ;
;TPA$PARAM
U.1192: .ADDRESS U.57				     ;									      ;
;TPA$ACTION
U.1193: .LONG   <<U.14-U.1193>-4>		     ;									      ;
;TPA$TARGET
U.1195: .WORD   <<U.1194-U.1195>-2>		     ;									      ;
;TPA$TYPE
U.1196: .WORD   -28179				     ;									      ;
;TPA$ACTION
U.1197: .LONG   <<U.12-U.1197>-4>		     ;									      ;
;TPA$TARGET
U.1198: .WORD   <<U.205-U.1198>-2>		     ;									      ;
;TPA$TYPE
U.1199: .WORD   -26634				     ;									      ;
;TPA$FLAGS2
U.1200: .BYTE   1				     ;									      ;
;TPA$PARAM
U.1201: .ADDRESS U.57				     ;									      ;
;TPA$ACTION
U.1202: .LONG   <<U.14-U.1202>-4>		     ;									      ;
;TPA$TARGET
U.1203: .WORD   <<U.69-U.1203>-2>		     ;									      ;
;TAK_SWT_STATE
U.1194: .BLKB   0
;TPA$TYPE
U.1207: .WORD   29053				     ;									      ;
;TPA$ADDR
U.1208: .LONG   <<U.49-U.1208>-4>		     ;									      ;
;TPA$MASK
U.1209: .LONG   1				     ;									      ;
;TPA$TARGET
U.1210: .WORD   <<U.69-U.1210>-2>		     ;									      ;
;TPA$TYPE
U.1211: .WORD   -27151				     ;									      ;
;TPA$ACTION
U.1212: .LONG   <<U.33-U.1212>-4>		     ;									      ;
;TPA$TARGET
U.1213: .WORD   -2				     ;									      ;
;DONE_STATE
U.69:	.BLKB   0
;TPA$TYPE
U.1215: .WORD   5623				     ;									      ;
;TPA$TARGET
U.1216: .WORD   -1				     ;									      ;

	.PSECT  _LIB$KEY0$,NOWRT,  SHR,  PIC,1

KERMIT_KEY::
	.BLKB   0
;TPA$KEY0
U.62:	.BLKB   0
;TPA$KEY
U.64:	.WORD   <U.63-U.62>			     ;									      ;
;TPA$KEY
U.72:	.WORD   <U.71-U.62>			     ;									      ;
;TPA$KEY
U.80:	.WORD   <U.79-U.62>			     ;									      ;
;TPA$KEY
U.87:	.WORD   <U.86-U.62>			     ;									      ;
;TPA$KEY
U.94:	.WORD   <U.93-U.62>			     ;									      ;
;TPA$KEY
U.102:	.WORD   <U.101-U.62>			     ;									      ;
;TPA$KEY
U.110:	.WORD   <U.109-U.62>			     ;									      ;
;TPA$KEY
U.118:	.WORD   <U.117-U.62>			     ;									      ;
;TPA$KEY
U.126:	.WORD   <U.125-U.62>			     ;									      ;
;TPA$KEY
U.133:	.WORD   <U.132-U.62>			     ;									      ;
;TPA$KEY
U.140:	.WORD   <U.139-U.62>			     ;									      ;
;TPA$KEY
U.147:	.WORD   <U.146-U.62>			     ;									      ;
;TPA$KEY
U.155:	.WORD   <U.154-U.62>			     ;									      ;
;TPA$KEY
U.162:	.WORD   <U.161-U.62>			     ;									      ;
;TPA$KEY
U.170:	.WORD   <U.169-U.62>			     ;									      ;
;TPA$KEY
U.178:	.WORD   <U.177-U.62>			     ;									      ;
;TPA$KEY
U.185:	.WORD   <U.184-U.62>			     ;									      ;
;TPA$KEY
U.193:	.WORD   <U.192-U.62>			     ;									      ;
;TPA$KEY
U.200:	.WORD   <U.199-U.62>			     ;									      ;
;TPA$KEY
U.246:	.WORD   <U.245-U.62>			     ;									      ;
;TPA$KEY
U.254:	.WORD   <U.253-U.62>			     ;									      ;
;TPA$KEY
U.262:	.WORD   <U.261-U.62>			     ;									      ;
;TPA$KEY
U.269:	.WORD   <U.268-U.62>			     ;									      ;
;TPA$KEY
U.276:	.WORD   <U.275-U.62>			     ;									      ;
;TPA$KEY
U.283:	.WORD   <U.282-U.62>			     ;									      ;
;TPA$KEY
U.290:	.WORD   <U.289-U.62>			     ;									      ;
;TPA$KEY
U.297:	.WORD   <U.296-U.62>			     ;									      ;
;TPA$KEY
U.304:	.WORD   <U.303-U.62>			     ;									      ;
;TPA$KEY
U.311:	.WORD   <U.310-U.62>			     ;									      ;
;TPA$KEY
U.318:	.WORD   <U.317-U.62>			     ;									      ;
;TPA$KEY
U.325:	.WORD   <U.324-U.62>			     ;									      ;
;TPA$KEY
U.332:	.WORD   <U.331-U.62>			     ;									      ;
;TPA$KEY
U.339:	.WORD   <U.338-U.62>			     ;									      ;
;TPA$KEY
U.346:	.WORD   <U.345-U.62>			     ;									      ;
;TPA$KEY
U.353:	.WORD   <U.352-U.62>			     ;									      ;
;TPA$KEY
U.375:	.WORD   <U.374-U.62>			     ;									      ;
;TPA$KEY
U.381:	.WORD   <U.380-U.62>			     ;									      ;
;TPA$KEY
U.387:	.WORD   <U.386-U.62>			     ;									      ;
;TPA$KEY
U.393:	.WORD   <U.392-U.62>			     ;									      ;
;TPA$KEY
U.399:	.WORD   <U.398-U.62>			     ;									      ;
;TPA$KEY
U.405:	.WORD   <U.404-U.62>			     ;									      ;
;TPA$KEY
U.411:	.WORD   <U.410-U.62>			     ;									      ;
;TPA$KEY
U.417:	.WORD   <U.416-U.62>			     ;									      ;
;TPA$KEY
U.423:	.WORD   <U.422-U.62>			     ;									      ;
;TPA$KEY
U.428:	.WORD   <U.427-U.62>			     ;									      ;
;TPA$KEY
U.434:	.WORD   <U.433-U.62>			     ;									      ;
;TPA$KEY
U.440:	.WORD   <U.439-U.62>			     ;									      ;
;TPA$KEY
U.446:	.WORD   <U.445-U.62>			     ;									      ;
;TPA$KEY
U.452:	.WORD   <U.451-U.62>			     ;									      ;
;TPA$KEY
U.458:	.WORD   <U.457-U.62>			     ;									      ;
;TPA$KEY
U.464:	.WORD   <U.463-U.62>			     ;									      ;
;TPA$KEY
U.470:	.WORD   <U.469-U.62>			     ;									      ;
;TPA$KEY
U.476:	.WORD   <U.475-U.62>			     ;									      ;
;TPA$KEY
U.486:	.WORD   <U.485-U.62>			     ;									      ;
;TPA$KEY
U.494:	.WORD   <U.493-U.62>			     ;									      ;
;TPA$KEY
U.506:	.WORD   <U.505-U.62>			     ;									      ;
;TPA$KEY
U.514:	.WORD   <U.513-U.62>			     ;									      ;
;TPA$KEY
U.522:	.WORD   <U.521-U.62>			     ;									      ;
;TPA$KEY
U.530:	.WORD   <U.529-U.62>			     ;									      ;
;TPA$KEY
U.538:	.WORD   <U.537-U.62>			     ;									      ;
;TPA$KEY
U.546:	.WORD   <U.545-U.62>			     ;									      ;
;TPA$KEY
U.558:	.WORD   <U.557-U.62>			     ;									      ;
;TPA$KEY
U.566:	.WORD   <U.565-U.62>			     ;									      ;
;TPA$KEY
U.578:	.WORD   <U.577-U.62>			     ;									      ;
;TPA$KEY
U.586:	.WORD   <U.585-U.62>			     ;									      ;
;TPA$KEY
U.598:	.WORD   <U.597-U.62>			     ;									      ;
;TPA$KEY
U.615:	.WORD   <U.614-U.62>			     ;									      ;
;TPA$KEY
U.621:	.WORD   <U.620-U.62>			     ;									      ;
;TPA$KEY
U.631:	.WORD   <U.630-U.62>			     ;									      ;
;TPA$KEY
U.639:	.WORD   <U.638-U.62>			     ;									      ;
;TPA$KEY
U.647:	.WORD   <U.646-U.62>			     ;									      ;
;TPA$KEY
U.659:	.WORD   <U.658-U.62>			     ;									      ;
;TPA$KEY
U.667:	.WORD   <U.666-U.62>			     ;									      ;
;TPA$KEY
U.675:	.WORD   <U.674-U.62>			     ;									      ;
;TPA$KEY
U.683:	.WORD   <U.682-U.62>			     ;									      ;
;TPA$KEY
U.701:	.WORD   <U.700-U.62>			     ;									      ;
;TPA$KEY
U.709:	.WORD   <U.708-U.62>			     ;									      ;
;TPA$KEY
U.721:	.WORD   <U.720-U.62>			     ;									      ;
;TPA$KEY
U.727:	.WORD   <U.726-U.62>			     ;									      ;
;TPA$KEY
U.737:	.WORD   <U.736-U.62>			     ;									      ;
;TPA$KEY
U.745:	.WORD   <U.744-U.62>			     ;									      ;
;TPA$KEY
U.757:	.WORD   <U.756-U.62>			     ;									      ;
;TPA$KEY
U.765:	.WORD   <U.764-U.62>			     ;									      ;
;TPA$KEY
U.789:	.WORD   <U.788-U.62>			     ;									      ;
;TPA$KEY
U.795:	.WORD   <U.794-U.62>			     ;									      ;
;TPA$KEY
U.811:	.WORD   <U.810-U.62>			     ;									      ;
;TPA$KEY
U.819:	.WORD   <U.818-U.62>			     ;									      ;
;TPA$KEY
U.827:	.WORD   <U.826-U.62>			     ;									      ;
;TPA$KEY
U.835:	.WORD   <U.834-U.62>			     ;									      ;
;TPA$KEY
U.843:	.WORD   <U.842-U.62>			     ;									      ;
;TPA$KEY
U.855:	.WORD   <U.854-U.62>			     ;									      ;
;TPA$KEY
U.861:	.WORD   <U.860-U.62>			     ;									      ;
;TPA$KEY
U.867:	.WORD   <U.866-U.62>			     ;									      ;
;TPA$KEY
U.873:	.WORD   <U.872-U.62>			     ;									      ;
;TPA$KEY
U.879:	.WORD   <U.878-U.62>			     ;									      ;
;TPA$KEY
U.885:	.WORD   <U.884-U.62>			     ;									      ;
;TPA$KEY
U.891:	.WORD   <U.890-U.62>			     ;									      ;
;TPA$KEY
U.897:	.WORD   <U.896-U.62>			     ;									      ;
;TPA$KEY
U.938:	.WORD   <U.937-U.62>			     ;									      ;
;TPA$KEY
U.944:	.WORD   <U.943-U.62>			     ;									      ;
;TPA$KEY
U.950:	.WORD   <U.949-U.62>			     ;									      ;
;TPA$KEY
U.956:	.WORD   <U.955-U.62>			     ;									      ;
;TPA$KEY
U.962:	.WORD   <U.961-U.62>			     ;									      ;
;TPA$KEY
U.968:	.WORD   <U.967-U.62>			     ;									      ;
;TPA$KEY
U.974:	.WORD   <U.973-U.62>			     ;									      ;
;TPA$KEY
U.1022: .WORD   <U.1021-U.62>			     ;									      ;
;TPA$KEY
U.1029: .WORD   <U.1028-U.62>			     ;									      ;
;TPA$KEY
U.1036: .WORD   <U.1035-U.62>			     ;									      ;
;TPA$KEY
U.1043: .WORD   <U.1042-U.62>			     ;									      ;
;TPA$KEY
U.1050: .WORD   <U.1049-U.62>			     ;									      ;
;TPA$KEY
U.1057: .WORD   <U.1056-U.62>			     ;									      ;
;TPA$KEY
U.1064: .WORD   <U.1063-U.62>			     ;									      ;
;TPA$KEY
U.1071: .WORD   <U.1070-U.62>			     ;									      ;
;TPA$KEY
U.1078: .WORD   <U.1077-U.62>			     ;									      ;
;TPA$KEY
U.1085: .WORD   <U.1084-U.62>			     ;									      ;
;TPA$KEY
U.1092: .WORD   <U.1091-U.62>			     ;									      ;
;TPA$KEY
U.1099: .WORD   <U.1098-U.62>			     ;									      ;
;TPA$KEY
U.1106: .WORD   <U.1105-U.62>			     ;									      ;
;TPA$KEY
U.1113: .WORD   <U.1112-U.62>			     ;									      ;
;TPA$KEY
U.1120: .WORD   <U.1119-U.62>			     ;									      ;
;TPA$KEY
U.1127: .WORD   <U.1126-U.62>			     ;									      ;
;TPA$KEY
U.1134: .WORD   <U.1133-U.62>			     ;									      ;
;TPA$KEY
U.1145: .WORD   <U.1144-U.62>			     ;									      ;
;TPA$KEY
U.1151: .WORD   <U.1150-U.62>			     ;									      ;
;TPA$KEY
U.1157: .WORD   <U.1156-U.62>			     ;									      ;
;TPA$KEY
U.1205: .WORD   <U.1204-U.62>			     ;									      ;

	.PSECT  $PLIT$,NOWRT,NOEXE,2

P.AAB:	.ASCII  \VMS Kermit-32 version 3.2.074\<0><0><0>
						     ;									      ;
P.AAA:	.LONG   17694749			     ;									      ;
	.ADDRESS P.AAB				     ;									      ;
P.AAD:	.ASCII  \Kermit-32>\<0><0>		     ;									      ;
P.AAC:	.LONG   17694730			     ;									      ;
	.ADDRESS P.AAD				     ;									      ;
P.AAF:	.ASCII  \VMSKERMIT\<0><0><0>		     ;									      ;
P.AAE:	.LONG   17694729			     ;									      ;
	.ADDRESS P.AAF				     ;									      ;
P.AAH:	.ASCII  \.INI;0\<0><0>			     ;									      ;
P.AAG:	.LONG   17694726			     ;									      ;
	.ADDRESS P.AAH				     ;									      ;

	.PSECT  $OWN$,NOEXE,2

;TPARSE_BLOCK
U.44:	.LONG   8, 2				     ;									      ;
	.BLKB   28
;BAD_CMD_DESC
U.45:	.BLKB   8
;COMMAND
U.46:	.BLKB   4
;SHOW_TYPE
U.47:	.BLKB   4
;REM_TYPE
U.48:	.BLKB   4
;TAKE_DISPLAY
U.49:	.BLKB   4
;OUTPUT_LINE
U.50:	.BLKB   80
;OUTPUT_DESC
U.51:	.BLKB   8
;OUTPUT_SIZE
U.52:	.BLKB   2
	.BLKB   2
;TRANSACTION_NAME
U.53:	.BLKB   132
;PROMPT_DESC
U.54:	.BLKB   8
;PROMPT_TEXT
U.55:	.BLKB   132
;CRC_TABLE
U.56:	.BLKB   64
;TAK_FIL_DESC
U.57:	.BLKB   8
;TAK_FIL_NAME
U.58:	.BLKB   132
;TEMP_DESC
U.59:	.BLKB   8
;TEMP_NAME
U.60:	.BLKB   132

	.PSECT  $GLOBAL$,NOEXE,2

TRANSACTION_DESC::
	.BLKB   8
TRANSACTION_OPEN::
	.BLKB   4
TRANSACTION_FAB::
	.BLKB   80
TRANSACTION_RAB::
	.BLKB   68
ESCAPE_CHR::
	.BLKB   4
ALT_FILE_SIZE::
	.BLKB   4
ALT_FILE_NAME::
	.BLKB   132

U.1=		    P.AAA
FNM_NORMAL==	    1
FNM_FULL==	    2
FNM_UNTRAN==	    4
PR_MIN==	    0
PR_NONE==	    0
PR_MARK==	    1
PR_EVEN==	    2
PR_ODD==	    3
PR_SPACE==	    4
PR_MAX==	    4
GC_MIN==	    1
GC_EXIT==	    1
GC_DIRECTORY==	    2
GC_DISK_USAGE==     3
GC_DELETE==	    4
GC_TYPE==	    5
GC_HELP==	    6
GC_LOGOUT==	    7
GC_LGN==	    8
GC_CONNECT==	    9
GC_RENAME==	    10
GC_COPY==	    11
GC_WHO==	    12
GC_SEND_MSG==	    13
GC_STATUS==	    14
GC_COMMAND==	    15
GC_KERMIT==	    16
GC_JOURNAL==	    17
GC_VARIABLE==	    18
GC_PROGRAM==	    19
GC_MAX==	    19
DP_FULL==	    0
DP_HALF==	    1
CHK_1CHAR==	    49
CHK_2CHAR==	    50
CHK_CRC==	    51
MAX_MSG==	    96
U.35=		    P.AAC
	.EXTRN  LIB$GET_INPUT, LIB$PUT_OUTPUT, LIB$TPARSE, LIB$CRC_TABLE, LIB$CRC, LIB$SIGNAL, LIB$ESTABLISH
	.EXTRN  LIB$ATTACH, LIB$SPAWN, SEND_SWITCH, REC_SWITCH, DO_GENERIC, SERVER, SND_ERROR, MSG_INIT
	.EXTRN  FILE_INIT, SY_INIT, TERM_INIT, TERM_OPEN, TERM_CLOSE, TERM_CONNECT, SET_TRANS_TERM
	.EXTRN  TT_INIT, TT_TEXT, TT_NUMBER, TT_CHAR, TT_OUTPUT, TT_CRLF, RCV_PKT_SIZE, RCV_NPAD, RCV_PADCHAR
	.EXTRN  RCV_TIMEOUT, RCV_EOL, RCV_QUOTE_CHR, RCV_8QUOTE_CHR, RCV_SOH, SND_PKT_SIZE, SND_NPAD
	.EXTRN  SND_PADCHAR, SND_TIMEOUT, SND_EOL, SND_QUOTE_CHR, SND_SOH, SRV_TIMEOUT, SET_REPT_CHR
	.EXTRN  SND_TOTAL_CHARS, RCV_TOTAL_CHARS, SND_DATA_CHARS, RCV_DATA_CHARS, SMSG_TOTAL_CHARS
	.EXTRN  RMSG_TOTAL_CHARS, SMSG_DATA_CHARS, RMSG_DATA_CHARS, RCV_NAKS, SND_NAKS, RMSG_NAKS
	.EXTRN  SMSG_NAKS, RCV_COUNT, SND_COUNT, RMSG_COUNT, SMSG_COUNT, XFR_TIME, TOTAL_TIME, LAST_ERROR
	.EXTRN  TY_PKT, TY_FIL, GEN_1DATA, GEN_1SIZE, GEN_2DATA, GEN_2SIZE, GEN_3DATA, GEN_3SIZE, FILE_SIZE
	.EXTRN  FILE_NAME, SI_RETRIES, PKT_RETRIES, DELAY, DEBUG_FLAG, CHKTYPE, ABT_FLAG, IBM_CHAR
	.EXTRN  WARN_FLAG, FIL_NORMAL_FORM, PARITY_TYPE, ECHO_FLAG, CONNECT_FLAG, FILE_TYPE, FILE_DESC
	.EXTRN  SESSION_DESC, DEBUG_DESC, TERM_DESC, TERM_FLAG

	.PSECT  $CODE$,NOWRT,2

MAIN_ROUTINE:
	.WORD   ^M<>				     ;Save nothing							      ; 1906
	SUBL2   #4, SP				     ;#4, SP								      ;
	PUSHAB  W^U.1				     ;U.1								      ; 1948
	CALLS   #1, G^LIB$PUT_OUTPUT		     ;#1, LIB$PUT_OUTPUT						      ;
	CALLS   #0, W^MSG_INIT			     ;#0, MSG_INIT							      ; 1949
	CALLS   #0, W^TERM_INIT			     ;#0, TERM_INIT							      ; 1950
	CALLS   #0, W^TT_INIT			     ;#0, TT_INIT							      ; 1951
	CALLS   #0, W^FILE_INIT			     ;#0, FILE_INIT							      ; 1952
	CALLS   #0, W^SY_INIT			     ;#0, SY_INIT							      ; 1953
	MOVL    #29, W^ESCAPE_CHR		     ;#29, ESCAPE_CHR							      ; 1954
	MOVZWL  #33800, (SP)			     ;#33800, CRC_BIT_MASK						      ; 1958
	PUSHAB  W^U.56				     ;U.56								      ; 1959
	PUSHAB  4(SP)				     ;CRC_BIT_MASK							      ;
	CALLS   #2, G^LIB$CRC_TABLE		     ;#2, LIB$CRC_TABLE							      ;
	PUSHAB  W^U.34				     ;U.34								      ; 1960
	CALLS   #1, G^LIB$ESTABLISH		     ;#1, LIB$ESTABLISH							      ;
	MOVL    #17694720, W^TRANSACTION_DESC	     ;#17694720, TRANSACTION_DESC					      ; 1964
	MOVAB   W^U.53, W^TRANSACTION_DESC+4	     ;U.53, TRANSACTION_DESC+4						      ;
	MOVL    #17694720, W^U.57		     ;#17694720, U.57							      ; 1968
	MOVAB   W^U.58, W^U.57+4		     ;U.58, U.57+4							      ;
	MOVL    #17694720, W^U.54		     ;#17694720, U.54							      ; 1972
	MOVAB   W^U.55, W^U.54+4		     ;U.55, U.54+4							      ;
	MOVQ    #1, -(SP)			     ;#1, -(SP)								      ; 1976
	PUSHAB  W^P.AAG				     ;P.AAG								      ;
	PUSHAB  W^P.AAE				     ;P.AAE								      ;
	CALLS   #4, W^U.4			     ;#4, U.4								      ;
	CALLS   #0, W^U.2			     ;#0, U.2								      ; 1980
	RET     				     ;									      ; 1981

; Routine Size:  146 bytes,    Routine Base:  $CODE$ + 0000


;   1982  1	%SBTTL 'COMND'
;   1983  1	ROUTINE COMND =
;   1984  1	
;   1985  1	!++
;   1986  1	! FUNCTIONAL DESCRIPTION:
;   1987  1	!	This routine will do the command scanning for KERMIT-32.  It
;   1988  1	!	will call the correct routines to process the commands.
;   1989  1	!
;   1990  1	! CALLING SEQUENCE:
;   1991  1	!
;   1992  1	!	COMND();
;   1993  1	!
;   1994  1	! INPUT PARAMETERS:
;   1995  1	!
;   1996  1	!	None.
;   1997  1	!
;   1998  1	! IMPLICIT INPUTS:
;   1999  1	!
;   2000  1	!	None.
;   2001  1	!
;   2002  1	! OUTPUT PARAMETERS:
;   2003  1	!
;   2004  1	!	None.
;   2005  1	!
;   2006  1	! IMPLICIT OUTPUTS:
;   2007  1	!
;   2008  1	!	None.
;   2009  1	!
;   2010  1	! COMPLETION CODES:
;   2011  1	!
;   2012  1	!	None.
;   2013  1	!
;   2014  1	! SIDE EFFECTS:
;   2015  1	!
;   2016  1	!	None.
;   2017  1	!
;   2018  1	!--
;   2019  1	
;   2020  2	    BEGIN
;   2021  2	
;   2022  2	    EXTERNAL ROUTINE
;   2023  2		GET_COMMAND,				! Get line from SYS$COMMAND
;   2024  2		LIB$GET_FOREIGN : ADDRESSING_MODE (GENERAL);	! Get command which started program
;   2025  2	
;   2026  2	    LOCAL
;   2027  2		DESC : BLOCK [8, BYTE],
;   2028  2		CMD_BUF : VECTOR [80, BYTE, UNSIGNED],
;   2029  2		CMD_SIZE : UNSIGNED WORD,
;   2030  2		ONE_COMMAND,				! Only do one command
;   2031  2		STATUS : UNSIGNED LONG;
;   2032  2	
;   2033  2	    ONE_COMMAND = FALSE;			! And many commands
;   2034  2	!
;   2035  2	! Initialize the command string descriptor
;   2036  2	!
;   2037  2	    INIT_STR_DESC (DESC, CMD_BUF, 80);
;   2038  2	!
;   2039  2	! Get the first command string.  If we get something, then we will only
;   2040  2	! want to perform one command, then exit.  Otherwise, we will do commands
;   2041  2	! until something one tells us to exit.
;   2042  2	!
;   2043  2	    STATUS = LIB$GET_FOREIGN (DESC, 0, CMD_SIZE, 0);
;   2044  2	
;   2045  2	    IF .STATUS EQL RMS$_EOF THEN RETURN SS$_NORMAL;
;   2046  2	
;   2047  2	    IF NOT .STATUS
;   2048  2	    THEN
;   2049  3		BEGIN
;   2050  3		LIB$SIGNAL (.STATUS);
;   2051  3		RETURN .STATUS;
;   2052  2		END;
;   2053  2	
;   2054  2	    IF .CMD_SIZE GTR 0 THEN ONE_COMMAND = TRUE;
;   2055  2	
;   2056  2	    WHILE TRUE DO
;   2057  3		BEGIN
;   2058  3	
;   2059  3		IF .CMD_SIZE GTR 0
;   2060  3		THEN
;   2061  4		    BEGIN
;   2062  4		    DESC [DSC$W_LENGTH] = .CMD_SIZE;
;   2063  4	
;   2064  4		    IF .STATUS THEN STATUS = DO_COMND (DESC);
;   2065  4	
;   2066  4		    IF .STATUS EQL KER_EXIT THEN RETURN SS$_NORMAL;
;   2067  4	
;   2068  4		    IF NOT .STATUS AND .STATUS NEQ KER_TAKE_ERROR THEN COMND_ERROR (.STATUS);
;   2069  4	
;   2070  3		    END;
;   2071  3	
;   2072  3	!
;   2073  3	! If we were given command when run, just exit after doing it
;   2074  3	!
;   2075  3	
;   2076  3		IF .ONE_COMMAND THEN RETURN SS$_NORMAL;
;   2077  3	
;   2078  3	!
;   2079  3	! Initialize prompt if null
;   2080  3	!
;   2081  3	
;   2082  3		IF .PROMPT_DESC [DSC$W_LENGTH] LEQ 0
;   2083  3		THEN
;   2084  4		    BEGIN
;   2085  4		    CH$COPY (.DEFAULT_PROMPT [DSC$W_LENGTH], CH$PTR (.DEFAULT_PROMPT [DSC$A_POINTER]), 0,
;   2086  4			TEMP_LENGTH, CH$PTR (PROMPT_TEXT));
;   2087  4		    PROMPT_DESC = .DEFAULT_PROMPT [DSC$W_LENGTH];
;   2088  3		    END;
;   2089  3	
;   2090  3		DESC [DSC$W_LENGTH] = 80;		! Reset length
;   2091  3		STATUS = GET_COMMAND (DESC, PROMPT_DESC, CMD_SIZE, TRUE);
;   2092  3	
;   2093  3		IF .STATUS EQL RMS$_EOF THEN RETURN SS$_NORMAL;
;   2094  3	
;   2095  2		END;					! End of WHILE TRUE DO BEGIN
;   2096  2	
;   2097  2	    RETURN SS$_NORMAL;
;   2098  1	    END;					! End of COMND



	.EXTRN  GET_COMMAND, LIB$GET_FOREIGN

;COMND
U.2:	.WORD   ^M<R2,R3,R4,R5,R6,R7,R8>	     ;Save R2,R3,R4,R5,R6,R7,R8						      ; 1983
	MOVAB   W^U.54, R8			     ;U.54, R8								      ;
	MOVAB   -92(SP), SP			     ;-92(SP), SP							      ;
	CLRL    R7				     ;ONE_COMMAND							      ; 2033
	MOVL    #17694800, 84(SP)		     ;#17694800, DESC							      ; 2037
	MOVAB   4(SP), 88(SP)			     ;CMD_BUF, DESC+4							      ;
	CLRL    -(SP)				     ;-(SP)								      ; 2043
	PUSHAB  4(SP)				     ;CMD_SIZE								      ;
	CLRL    -(SP)				     ;-(SP)								      ;
	PUSHAB  96(SP)				     ;DESC								      ;
	CALLS   #4, G^LIB$GET_FOREIGN		     ;#4, LIB$GET_FOREIGN						      ;
	MOVL    R0, R6				     ;R0, STATUS							      ;
	CMPL    R6, #98938			     ;STATUS, #98938							      ; 2045
	BEQL    4$				     ;4$								      ;
	BLBS    R6, 1$				     ;STATUS, 1$							      ; 2047
	PUSHL   R6				     ;STATUS								      ; 2050
	CALLS   #1, G^LIB$SIGNAL		     ;#1, LIB$SIGNAL							      ;
	MOVL    R6, R0				     ;STATUS, R0							      ; 2051
	RET     				     ;									      ;
1$:	TSTW    (SP)				     ;CMD_SIZE								      ; 2054
	BEQL    2$				     ;2$								      ;
	MOVL    #1, R7				     ;#1, ONE_COMMAND							      ;
2$:	TSTW    (SP)				     ;CMD_SIZE								      ; 2059
	BEQL    5$				     ;5$								      ;
	MOVW    (SP), 84(SP)			     ;CMD_SIZE, DESC							      ; 2062
	BLBC    R6, 3$				     ;STATUS, 3$							      ; 2064
	PUSHAB  84(SP)				     ;DESC								      ;
	CALLS   #1, W^U.5			     ;#1, U.5								      ;
	MOVL    R0, R6				     ;R0, STATUS							      ;
3$:	CMPL    R6, #134316203			     ;STATUS, #134316203						      ; 2066
4$:	BEQL    7$				     ;7$								      ;
	BLBS    R6, 5$				     ;STATUS, 5$							      ; 2068
	CMPL    R6, #134316306			     ;STATUS, #134316306						      ;
	BEQL    5$				     ;5$								      ;
	PUSHL   R6				     ;STATUS								      ;
	CALLS   #1, W^U.3			     ;#1, U.3								      ;
5$:	BLBS    R7, 7$				     ;ONE_COMMAND, 7$							      ; 2076
	TSTW    (R8)				     ;PROMPT_DESC							      ; 2082
	BNEQ    6$				     ;6$								      ;
	MOVC5   W^U.35, @W^U.35+4, #0, #132, 8(R8)   ;U.35, @U.35+4, #0, #132, PROMPT_TEXT				      ; 2086
	MOVZWL  W^U.35, (R8)			     ;U.35, PROMPT_DESC							      ; 2087
6$:	MOVZBW  #80, 84(SP)			     ;#80, DESC								      ; 2090
	PUSHL   #1				     ;#1								      ; 2091
	PUSHAB  4(SP)				     ;CMD_SIZE								      ;
	PUSHL   R8				     ;R8								      ;
	PUSHAB  96(SP)				     ;DESC								      ;
	CALLS   #4, W^GET_COMMAND		     ;#4, GET_COMMAND							      ;
	MOVL    R0, R6				     ;R0, STATUS							      ;
	CMPL    R6, #98938			     ;STATUS, #98938							      ; 2093
	BNEQ    2$				     ;2$								      ;
7$:	MOVL    #1, R0				     ;#1, R0								      ;
	RET     				     ;									      ; 2098

; Routine Size:  189 bytes,    Routine Base:  $CODE$ + 0092


;   2099  1	%SBTTL 'COMND_FILE - Perform take (indirect) file'
;   2100  1	ROUTINE COMND_FILE (TAKE_DESC, DEFAULT_DESC, OK_NONE, DISPLAY_FLAG) =
;   2101  1	
;   2102  1	!++
;   2103  1	! FUNCTIONAL DESCRIPTION:
;   2104  1	!
;   2105  1	! This routine will read a file of commands and perform them.  If any
;   2106  1	! error occurs, it will abort the command processing.
;   2107  1	!
;   2108  1	! CALLING SEQUENCE:
;   2109  1	!
;   2110  1	!	STATUS = COMND_FILE (TAKE_DESC, DEFAULT_DESC, OK_NONE, DISPLAY_FLAG)
;   2111  1	!
;   2112  1	! INPUT PARAMETERS:
;   2113  1	!
;   2114  1	!	TAKE_DESC - String descriptor of file specification
;   2115  1	!	DEFAULT_DESC - Default file specification
;   2116  1	!	OK_NONE - If true, return EOF if file does not exist, otherwise
;   2117  1	!		return error if file does not exist.
;   2118  1	!	DISPLAY_FLAG - If true display commands being executed
;   2119  1	!
;   2120  1	! IMPLICIT INPUTS:
;   2121  1	!
;   2122  1	!	None.
;   2123  1	!
;   2124  1	! OUPTUT PARAMETERS:
;   2125  1	!
;   2126  1	!	None.
;   2127  1	!
;   2128  1	! IMPLICIT OUTPUTS:
;   2129  1	!
;   2130  1	!	None.
;   2131  1	!
;   2132  1	! COMPLETION CODES:
;   2133  1	!
;   2134  1	!	Standard status values
;   2135  1	!
;   2136  1	! SIDE EFFECTS:
;   2137  1	!
;   2138  1	!	None.
;   2139  1	!
;   2140  1	!--
;   2141  1	
;   2142  2	    BEGIN
;   2143  2	
;   2144  2	    EXTERNAL ROUTINE
;   2145  2		STR$UPCASE : ADDRESSING_MODE (GENERAL),	! Upcase a string
;   2146  2		LIB$GET_VM : ADDRESSING_MODE (GENERAL) NOVALUE,
;   2147  2		LIB$FREE_VM : ADDRESSING_MODE (GENERAL) NOVALUE;
;   2148  2	
;   2149  2	    MAP
;   2150  2		TAKE_DESC : REF BLOCK [8, BYTE],
;   2151  2		DEFAULT_DESC : REF BLOCK [8, BYTE];	! The args are descriptors
;   2152  2	
;   2153  2	    LOCAL
;   2154  2		TAKE_FILE_DESC : BLOCK [8, BYTE],	! Descriptor for take file
;   2155  2		TAKE_FILE_NAME : VECTOR [CH$ALLOCATION (MAX_FILE_NAME)],	! Name of take file
;   2156  2		TAKE_FILE_FAB : $FAB_DECL,		! FAB for take file
;   2157  2		TAKE_FILE_RAB : $RAB_DECL,		! RAB for take file
;   2158  2		TAKE_FILE_XABFHC : $XABFHC_DECL,	! XAB for file header items
;   2159  2		TAKE_FILE_BADR,				! Address of take file buffer
;   2160  2		TAKE_FILE_BSIZ,				! Size of take file buffer
;   2161  2		TAKE_FILE_FADR,				! Address of fixed header buffer
;   2162  2		TAKE_FILE_FSIZ,				! size of fixed header buffer
;   2163  2		STATUS,					! Random status values
;   2164  2		CMD_DESC : BLOCK [8, BYTE];		! Descriptor for command
;   2165  2	
;   2166  2	    CH$COPY (.TAKE_DESC [DSC$W_LENGTH], CH$PTR (.TAKE_DESC [DSC$A_POINTER]), 0, MAX_FILE_NAME,
;   2167  2		CH$PTR (TAKE_FILE_NAME));
;   2168  2	    INIT_STR_DESC (TAKE_FILE_DESC, TAKE_FILE_NAME, .TAKE_DESC [DSC$W_LENGTH]);
; P 2169  2	    $FAB_INIT (FAB = TAKE_FILE_FAB, FNA = TAKE_FILE_NAME, FNS = .TAKE_FILE_DESC [DSC$W_LENGTH], FAC = GET,
;   2170  2		XAB = TAKE_FILE_XABFHC, DNA = .DEFAULT_DESC [DSC$A_POINTER], DNS = .DEFAULT_DESC [DSC$W_LENGTH]);
;   2171  2	    $XABFHC_INIT (XAB = TAKE_FILE_XABFHC);
;   2172  2	    STATUS = $OPEN (FAB = TAKE_FILE_FAB);
;   2173  2	
;   2174  2	    IF NOT .STATUS
;   2175  2	    THEN
;   2176  3		BEGIN
;   2177  3	
;   2178  3		IF .STATUS EQL RMS$_FNF AND .OK_NONE THEN RETURN KER_TAKE_EOF;
;   2179  3	
;   2180  3		LIB$SIGNAL (.STATUS);
;   2181  3		RETURN KER_TAKE_ERROR;
;   2182  2		END;
;   2183  2	
;   2184  2	!
;   2185  2	! Allocate a buffer
;   2186  2	!
;   2187  2	    TAKE_FILE_BSIZ = .TAKE_FILE_XABFHC [XAB$W_LRL];
;   2188  2	
;   2189  2	    IF .TAKE_FILE_BSIZ EQL 0 THEN TAKE_FILE_BSIZ = MAX_REC_LENGTH;
;   2190  2	
;   2191  2	    LIB$GET_VM (TAKE_FILE_BSIZ, TAKE_FILE_BADR);
;   2192  2	    INIT_STR_DESC (CMD_DESC, .TAKE_FILE_BADR, .TAKE_FILE_BSIZ);
;   2193  2	!
;   2194  2	! Determine if we need a buffer for the fixed control area
;   2195  2	!
;   2196  2	    TAKE_FILE_FSIZ = .TAKE_FILE_FAB [FAB$B_FSZ];
;   2197  2	
;   2198  2	    IF .TAKE_FILE_FSIZ NEQ 0 THEN LIB$GET_VM (TAKE_FILE_FSIZ, TAKE_FILE_FADR);
;   2199  2	
;   2200  2	!
;   2201  2	! Initialize the RAB for the $CONNECT RMS call
;   2202  2	!
; P 2203  2	    $RAB_INIT (RAB = TAKE_FILE_RAB, FAB = TAKE_FILE_FAB, RAC = SEQ, ROP = NLK, UBF = .TAKE_FILE_BADR,
;   2204  2		USZ = .TAKE_FILE_BSIZ);
;   2205  2	
;   2206  2	    IF .TAKE_FILE_FSIZ NEQ 0 THEN TAKE_FILE_RAB [RAB$L_RHB] = .TAKE_FILE_FADR;
;   2207  2	
;   2208  2	    STATUS = $CONNECT (RAB = TAKE_FILE_RAB);
;   2209  2	
;   2210  2	    IF NOT .STATUS
;   2211  2	    THEN
;   2212  3		BEGIN
;   2213  3		LIB$SIGNAL (.STATUS);
;   2214  3		LIB$FREE_VM (TAKE_FILE_BSIZ, TAKE_FILE_BADR);
;   2215  3	
;   2216  3		IF .TAKE_FILE_FSIZ NEQ 0 THEN LIB$FREE_VM (TAKE_FILE_FSIZ, TAKE_FILE_FADR);
;   2217  3	
;   2218  3		RETURN KER_TAKE_ERROR;
;   2219  2		END;
;   2220  2	
;   2221  2	    WHILE (STATUS = $GET (RAB = TAKE_FILE_RAB)) DO
;   2222  3		BEGIN
;   2223  3	
;   2224  3		IF .TAKE_FILE_RAB [RAB$W_RSZ] GTR 0
;   2225  3		THEN
;   2226  4		    BEGIN
;   2227  4		    CMD_DESC [DSC$W_LENGTH] = .TAKE_FILE_RAB [RAB$W_RSZ];
;   2228  4		    STATUS = STR$UPCASE (CMD_DESC, CMD_DESC);
;   2229  4	
;   2230  4		    IF .DISPLAY_FLAG THEN LIB$PUT_OUTPUT (CMD_DESC);
;   2231  4	
;   2232  4		    STATUS = DO_COMND (CMD_DESC);
;   2233  4	
;   2234  4		    IF NOT .STATUS
;   2235  4		    THEN
;   2236  5			BEGIN
;   2237  5	
;   2238  5			IF .STATUS NEQ KER_TAKE_ERROR
;   2239  5			THEN
;   2240  6			    BEGIN
;   2241  6			    COMND_ERROR (.STATUS);
;   2242  6			    LIB$PUT_OUTPUT (CMD_DESC);
;   2243  6			    STATUS = KER_TAKE_ERROR;	! Indicate we should abort back
;   2244  5			    END;
;   2245  5	
;   2246  5			EXITLOOP;
;   2247  4			END;
;   2248  4	
;   2249  3		    END;
;   2250  3	
;   2251  2		END;					! End of WHILE TRUE DO BEGIN
;   2252  2	
;   2253  2	!
;   2254  2	! When the loop exits, we got some kind of error.  Complain unless end of file.
;   2255  2	!
;   2256  2	
;   2257  2	    IF .STATUS EQL RMS$_EOF THEN STATUS = KER_TAKE_EOF;
;   2258  2	
;   2259  2	    IF .STATUS NEQ KER_EXIT AND .STATUS NEQ KER_TAKE_EOF AND .STATUS NEQ KER_TAKE_ERROR
;   2260  2	    THEN
;   2261  2		LIB$SIGNAL (.STATUS);
;   2262  2	
;   2263  2	!
;   2264  2	! Close the file
;   2265  2	!
;   2266  2	    $DISCONNECT (RAB = TAKE_FILE_RAB);
;   2267  2	    $CLOSE (FAB = TAKE_FILE_FAB);
;   2268  2	!
;   2269  2	! Return any buffers
;   2270  2	!
;   2271  2	    LIB$FREE_VM (TAKE_FILE_BSIZ, TAKE_FILE_BADR);
;   2272  2	
;   2273  2	    IF .TAKE_FILE_FSIZ NEQ 0 THEN LIB$FREE_VM (TAKE_FILE_FSIZ, TAKE_FILE_FADR);
;   2274  2	
;   2275  2	    RETURN .STATUS;
;   2276  1	    END;					! End of COMND_FILE



	.EXTRN  STR$UPCASE, LIB$GET_VM, LIB$FREE_VM, SYS$OPEN, SYS$CONNECT, SYS$GET, SYS$DISCONNECT
	.EXTRN  SYS$CLOSE

;COMND_FILE
U.4:	.WORD   ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10>      ;Save R2,R3,R4,R5,R6,R7,R8,R9,R10					      ; 2100
	MOVAB   G^LIB$PUT_OUTPUT, R10		     ;LIB$PUT_OUTPUT, R10						      ;
	MOVAB   G^LIB$GET_VM, R9		     ;LIB$GET_VM, R9							      ;
	MOVAB   G^LIB$SIGNAL, R8		     ;LIB$SIGNAL, R8							      ;
	MOVAB   G^LIB$FREE_VM, R7		     ;LIB$FREE_VM, R7							      ;
	MOVAB   -356(SP), SP			     ;-356(SP), SP							      ;
	MOVL    4(AP), R6			     ;TAKE_DESC, R6							      ; 2166
	MOVC5   (R6), @4(R6), #0, #132, -140(FP)     ;(R6), @4(R6), #0, #132, TAKE_FILE_NAME				      ; 2167
	MOVW    #270, -6(FP)			     ;#270, TAKE_FILE_DESC+2						      ; 2168
	MOVW    (R6), -8(FP)			     ;(R6), TAKE_FILE_DESC						      ;
	MOVAB   -140(FP), -4(FP)		     ;TAKE_FILE_NAME, TAKE_FILE_DESC+4					      ;
	MOVC5   #0, (SP), #0, #80, 136(SP)	     ;#0, (SP), #0, #80, $RMS_PTR					      ; 2170
	MOVW    #20483, 136(SP)			     ;#20483, $RMS_PTR							      ;
	MOVB    #2, 158(SP)			     ;#2, $RMS_PTR+22							      ;
	MOVB    #2, 167(SP)			     ;#2, $RMS_PTR+31							      ;
	MOVAB   24(SP), 172(SP)			     ;TAKE_FILE_XABFHC, $RMS_PTR+36					      ;
	MOVAB   -140(FP), -176(FP)		     ;TAKE_FILE_NAME, $RMS_PTR+44					      ;
	MOVL    8(AP), R0			     ;DEFAULT_DESC, R0							      ;
	MOVL    4(R0), -172(FP)			     ;4(R0), $RMS_PTR+48						      ;
	MOVB    -8(FP), -168(FP)		     ;TAKE_FILE_DESC, $RMS_PTR+52					      ;
	MOVB    (R0), -167(FP)			     ;(R0), $RMS_PTR+53							      ;
	MOVC5   #0, (SP), #0, #44, 24(SP)	     ;#0, (SP), #0, #44, $RMS_PTR					      ; 2171
	MOVW    #11293, 24(SP)			     ;#11293, $RMS_PTR							      ;
	PUSHAB  136(SP)				     ;TAKE_FILE_FAB							      ; 2172
	CALLS   #1, G^SYS$OPEN			     ;#1, SYS$OPEN							      ;
	MOVL    R0, R6				     ;R0, STATUS							      ;
	BLBS    R6, 2$				     ;STATUS, 2$							      ; 2174
	CMPL    R6, #98962			     ;STATUS, #98962							      ; 2178
	BNEQ    1$				     ;1$								      ;
	BLBC    12(AP), 1$			     ;OK_NONE, 1$							      ;
	MOVL    #134316299, R0			     ;#134316299, R0							      ;
	RET     				     ;									      ;
1$:	PUSHL   R6				     ;STATUS								      ; 2180
	CALLS   #1, (R8)			     ;#1, LIB$SIGNAL							      ;
	BRW     6$				     ;6$								      ; 2181
2$:	MOVZWL  34(SP), 4(SP)			     ;TAKE_FILE_XABFHC+10, TAKE_FILE_BSIZ				      ; 2187
	BNEQ    3$				     ;3$								      ; 2189
	MOVZWL  #4096, 4(SP)			     ;#4096, TAKE_FILE_BSIZ						      ;
3$:	PUSHL   SP				     ;SP								      ; 2191
	PUSHAB  8(SP)				     ;TAKE_FILE_BSIZ							      ;
	CALLS   #2, (R9)			     ;#2, LIB$GET_VM							      ;
	MOVW    #270, 18(SP)			     ;#270, CMD_DESC+2							      ; 2192
	MOVW    4(SP), 16(SP)			     ;TAKE_FILE_BSIZ, CMD_DESC						      ;
	MOVL    (SP), 20(SP)			     ;TAKE_FILE_BADR, CMD_DESC+4					      ;
	MOVZBL  -157(FP), 12(SP)		     ;TAKE_FILE_FAB+63, TAKE_FILE_FSIZ					      ; 2196
	BEQL    4$				     ;4$								      ; 2198
	PUSHAB  8(SP)				     ;TAKE_FILE_FADR							      ;
	PUSHAB  16(SP)				     ;TAKE_FILE_FSIZ							      ;
	CALLS   #2, (R9)			     ;#2, LIB$GET_VM							      ;
4$:	MOVC5   #0, (SP), #0, #68, 68(SP)	     ;#0, (SP), #0, #68, $RMS_PTR					      ; 2204
	MOVW    #17409, 68(SP)			     ;#17409, $RMS_PTR							      ;
	MOVL    #1048576, 72(SP)		     ;#1048576, $RMS_PTR+4						      ;
	CLRB    98(SP)				     ;$RMS_PTR+30							      ;
	MOVW    4(SP), 100(SP)			     ;TAKE_FILE_BSIZ, $RMS_PTR+32					      ;
	MOVL    (SP), 104(SP)			     ;TAKE_FILE_BADR, $RMS_PTR+36					      ;
	MOVAB   136(SP), 128(SP)		     ;TAKE_FILE_FAB, $RMS_PTR+60					      ;
	CLRL    R2				     ;R2								      ; 2206
	TSTL    12(SP)				     ;TAKE_FILE_FSIZ							      ;
	BEQL    5$				     ;5$								      ;
	INCL    R2				     ;R2								      ;
	MOVL    8(SP), 112(SP)			     ;TAKE_FILE_FADR, TAKE_FILE_RAB+44					      ;
5$:	PUSHAB  68(SP)				     ;TAKE_FILE_RAB							      ; 2208
	CALLS   #1, G^SYS$CONNECT		     ;#1, SYS$CONNECT							      ;
	MOVL    R0, R6				     ;R0, STATUS							      ;
	BLBS    R6, 7$				     ;STATUS, 7$							      ; 2210
	PUSHL   R6				     ;STATUS								      ; 2213
	CALLS   #1, (R8)			     ;#1, LIB$SIGNAL							      ;
	PUSHL   SP				     ;SP								      ; 2214
	PUSHAB  8(SP)				     ;TAKE_FILE_BSIZ							      ;
	CALLS   #2, (R7)			     ;#2, LIB$FREE_VM							      ;
	BLBC    R2, 6$				     ;R2, 6$								      ; 2216
	PUSHAB  8(SP)				     ;TAKE_FILE_FADR							      ;
	PUSHAB  16(SP)				     ;TAKE_FILE_FSIZ							      ;
	CALLS   #2, (R7)			     ;#2, LIB$FREE_VM							      ;
6$:	MOVL    #134316306, R0			     ;#134316306, R0							      ; 2218
	RET     				     ;									      ;
7$:	PUSHAB  68(SP)				     ;TAKE_FILE_RAB							      ; 2221
	CALLS   #1, G^SYS$GET			     ;#1, SYS$GET							      ;
	MOVL    R0, R6				     ;R0, STATUS							      ;
	BLBC    R6, 9$				     ;STATUS, 9$							      ;
	TSTW    102(SP)				     ;TAKE_FILE_RAB+34							      ; 2224
	BEQL    7$				     ;7$								      ;
	MOVW    102(SP), 16(SP)			     ;TAKE_FILE_RAB+34, CMD_DESC					      ; 2227
	PUSHAB  16(SP)				     ;CMD_DESC								      ; 2228
	PUSHAB  20(SP)				     ;CMD_DESC								      ;
	CALLS   #2, G^STR$UPCASE		     ;#2, STR$UPCASE							      ;
	MOVL    R0, R6				     ;R0, STATUS							      ;
	BLBC    16(AP), 8$			     ;DISPLAY_FLAG, 8$							      ; 2230
	PUSHAB  16(SP)				     ;CMD_DESC								      ;
	CALLS   #1, (R10)			     ;#1, LIB$PUT_OUTPUT						      ;
8$:	PUSHAB  16(SP)				     ;CMD_DESC								      ; 2232
	CALLS   #1, W^U.5			     ;#1, U.5								      ;
	MOVL    R0, R6				     ;R0, STATUS							      ;
	BLBS    R6, 7$				     ;STATUS, 7$							      ; 2234
	CMPL    R6, #134316306			     ;STATUS, #134316306						      ; 2238
	BEQL    9$				     ;9$								      ;
	PUSHL   R6				     ;STATUS								      ; 2241
	CALLS   #1, W^U.3			     ;#1, U.3								      ;
	PUSHAB  16(SP)				     ;CMD_DESC								      ; 2242
	CALLS   #1, (R10)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVL    #134316306, R6			     ;#134316306, STATUS						      ; 2243
9$:	CMPL    R6, #98938			     ;STATUS, #98938							      ; 2257
	BNEQ    10$				     ;10$								      ;
	MOVL    #134316299, R6			     ;#134316299, STATUS						      ;
10$:	CMPL    R6, #134316203			     ;STATUS, #134316203						      ; 2259
	BEQL    11$				     ;11$								      ;
	CMPL    R6, #134316299			     ;STATUS, #134316299						      ;
	BEQL    11$				     ;11$								      ;
	CMPL    R6, #134316306			     ;STATUS, #134316306						      ;
	BEQL    11$				     ;11$								      ;
	PUSHL   R6				     ;STATUS								      ; 2261
	CALLS   #1, (R8)			     ;#1, LIB$SIGNAL							      ;
11$:	PUSHAB  68(SP)				     ;TAKE_FILE_RAB							      ; 2266
	CALLS   #1, G^SYS$DISCONNECT		     ;#1, SYS$DISCONNECT						      ;
	PUSHAB  136(SP)				     ;TAKE_FILE_FAB							      ; 2267
	CALLS   #1, G^SYS$CLOSE			     ;#1, SYS$CLOSE							      ;
	PUSHL   SP				     ;SP								      ; 2271
	PUSHAB  8(SP)				     ;TAKE_FILE_BSIZ							      ;
	CALLS   #2, (R7)			     ;#2, LIB$FREE_VM							      ;
	TSTL    12(SP)				     ;TAKE_FILE_FSIZ							      ; 2273
	BEQL    12$				     ;12$								      ;
	PUSHAB  8(SP)				     ;TAKE_FILE_FADR							      ;
	PUSHAB  16(SP)				     ;TAKE_FILE_FSIZ							      ;
	CALLS   #2, (R7)			     ;#2, LIB$FREE_VM							      ;
12$:	MOVL    R6, R0				     ;STATUS, R0							      ; 2275
	RET     				     ;									      ; 2276

; Routine Size:  534 bytes,    Routine Base:  $CODE$ + 014F


;   2277  1	%SBTTL 'COMND_ERROR - Give error message for command'
;   2278  1	ROUTINE COMND_ERROR (STATUS) : NOVALUE =
;   2279  1	
;   2280  1	!++
;   2281  1	! FUNCTIONAL DESCRIPTION:
;   2282  1	!
;   2283  1	! This routine will issue an error message for a command parsing error.
;   2284  1	!
;   2285  1	! CALLING SEQUENCE:
;   2286  1	!
;   2287  1	!	COMND_ERROR (.STATUS);
;   2288  1	!
;   2289  1	! INPUT PARAMETERS:
;   2290  1	!
;   2291  1	!	STATUS - The status value returned from DO_COMND
;   2292  1	!
;   2293  1	! IMPLICIT INPUTS:
;   2294  1	!
;   2295  1	!	None.
;   2296  1	!
;   2297  1	! OUPTUT PARAMETERS:
;   2298  1	!
;   2299  1	!	None.
;   2300  1	!
;   2301  1	! IMPLICIT OUTPUTS:
;   2302  1	!
;   2303  1	!	None.
;   2304  1	!
;   2305  1	! COMPLETION CODES:
;   2306  1	!
;   2307  1	!	None.
;   2308  1	!
;   2309  1	! SIDE EFFECTS:
;   2310  1	!
;   2311  1	!	None.
;   2312  1	!
;   2313  1	!--
;   2314  1	
;   2315  2	    BEGIN
;   2316  2	
;   2317  2	    IF .STATUS EQL KER_AMBIGKEY OR .STATUS EQL KER_UNKNOWKEY
;   2318  2	    THEN
;   2319  2		LIB$SIGNAL (.STATUS,
;   2320  2		    TPARSE_BLOCK [TPA$L_TOKENCNT])
;   2321  2	    ELSE
;   2322  3		BEGIN
;   2323  3	
;   2324  3		EXTERNAL LITERAL
;   2325  3		    LIB$_SYNTAXERR;
;   2326  3	
;   2327  3		IF .STATUS EQL LIB$_SYNTAXERR
;   2328  3		THEN
;   2329  3		    LIB$SIGNAL (KER_CMDERR, TPARSE_BLOCK [TPA$L_STRINGCNT])
;   2330  3		ELSE
;   2331  3		    LIB$SIGNAL (.STATUS);
;   2332  3	
;   2333  2		END;
;   2334  2	
;   2335  1	    END;					! End of COMND_ERROR



	.EXTRN  LIB$_SYNTAXERR

;COMND_ERROR
U.3:	.WORD   ^M<R2>				     ;Save R2								      ; 2278
	MOVAB   G^LIB$SIGNAL, R2		     ;LIB$SIGNAL, R2							      ;
	MOVL    4(AP), R0			     ;STATUS, R0							      ; 2317
	CMPL    R0, #134316282			     ;R0, #134316282							      ;
	BEQL    1$				     ;1$								      ;
	CMPL    R0, #134316290			     ;R0, #134316290							      ;
	BNEQ    2$				     ;2$								      ;
1$:	PUSHAB  W^U.44+16			     ;U.44+16								      ; 2320
	PUSHL   R0				     ;R0								      ; 2319
	BRB     3$				     ;3$								      ;
2$:	CMPL    R0, #LIB$_SYNTAXERR		     ;R0, #LIB$_SYNTAXERR						      ; 2327
	BNEQ    4$				     ;4$								      ;
	PUSHAB  W^U.44+8			     ;U.44+8								      ; 2329
	PUSHL   #134316058			     ;#134316058							      ;
3$:	CALLS   #2, (R2)			     ;#2, LIB$SIGNAL							      ;
	RET     				     ;									      ;
4$:	PUSHL   R0				     ;R0								      ; 2331
	CALLS   #1, (R2)			     ;#1, LIB$SIGNAL							      ;
	RET     				     ;									      ; 2335

; Routine Size:  68 bytes,    Routine Base:  $CODE$ + 0365


;   2336  1	%SBTTL 'DO_COMND'
;   2337  1	ROUTINE DO_COMND (CMD_DESC) =
;   2338  1	
;   2339  1	!++
;   2340  1	! FUNCTIONAL DESCRIPTION:
;   2341  1	! This routine will parse and process one Kermit command.
;   2342  1	!
;   2343  1	! CALLING SEQUENCE:
;   2344  1	!
;   2345  1	!	STATUS = DO_COMND(CMD_DESC);
;   2346  1	!
;   2347  1	! INPUT PARAMETERS:
;   2348  1	!
;   2349  1	!	CMD_DESC - Descriptor of command string
;   2350  1	!
;   2351  1	! IMPLICIT INPUTS:
;   2352  1	!
;   2353  1	!	None.
;   2354  1	!
;   2355  1	! OUTPUT PARAMETERS:
;   2356  1	!
;   2357  1	!	None.
;   2358  1	!
;   2359  1	! IMPLICIT OUTPUTS:
;   2360  1	!
;   2361  1	!	None.
;   2362  1	!
;   2363  1	! COMPLETION CODES:
;   2364  1	!
;   2365  1	!	None.
;   2366  1	!
;   2367  1	! SIDE EFFECTS:
;   2368  1	!
;   2369  1	!	None.
;   2370  1	!
;   2371  1	!--
;   2372  1	
;   2373  2	    BEGIN
;   2374  2	
;   2375  2	    BIND
;   2376  2		SERVER_TEXT = %ASCID'Kermit Server running on VAX/VMS host.  Please type your escape sequence to',
;   2377  2		SERVER_TEXT_1 = %ASCID' return to your local machine.  Shut down the server by typing the Kermit BYE',
;   2378  2		SERVER_TEXT_2 = %ASCID' command on your local machine.',
;   2379  2		PUSH_TEXT = %ASCID' Type LOGOUT to return to VMS Kermit';
;   2380  2	
;   2381  2	    MAP
;   2382  2		CMD_DESC : REF BLOCK [8, BYTE];		! Descriptor for command
;   2383  2	
;   2384  2	    LOCAL
;   2385  2		STATUS : UNSIGNED LONG;
;   2386  2	
;   2387  2	! Initialize some per-command data areas.
;   2388  2	    INIT_STR_DESC (TEMP_DESC, TEMP_NAME, 0);
;   2389  2	    COMMAND = 0;
;   2390  2	    SHOW_TYPE = 0;
;   2391  2	    REM_TYPE = 0;
;   2392  2	    FILE_SIZE = 0;
;   2393  2	    ALT_FILE_SIZE = 0;
;   2394  2	    GEN_1SIZE = 0;
;   2395  2	    GEN_2SIZE = 0;
;   2396  2	    GEN_3SIZE = 0;
;   2397  2	    CONNECT_FLAG = FALSE;			! Assume not connected
;   2398  2	    TAKE_DISPLAY = 0;
;   2399  2	    TPARSE_BLOCK [TPA$L_STRINGCNT] = .CMD_DESC [DSC$W_LENGTH];
;   2400  2	    TPARSE_BLOCK [TPA$L_STRINGPTR] = .CMD_DESC [DSC$A_POINTER];
;   2401  2	    TPARSE_BLOCK [TPA$V_BLANKS] = 0;		! Ignore blanks
;   2402  2	    STATUS = LIB$TPARSE (TPARSE_BLOCK, KERMIT_STATE, KERMIT_KEY);
;   2403  2	
;   2404  2	    IF .STATUS
;   2405  2	    THEN
;   2406  3		BEGIN
;   2407  3		FILE_SIZE = .FILE_DESC [DSC$W_LENGTH];	! Copy length in case needed
;   2408  3	
;   2409  3		CASE .COMMAND FROM CMD_MIN TO CMD_MAX OF
;   2410  3		    SET
;   2411  3	
;   2412  3		    [CMD_BYE] :
;   2413  4			BEGIN
;   2414  4	
;   2415  5			IF (STATUS = TERM_OPEN (TRUE))	![054] Open the terminal
;   2416  4			THEN
;   2417  5			    BEGIN
;   2418  5	
;   2419  5			    IF NOT .CONNECT_FLAG THEN DO_GENERIC (GC_LOGOUT) ELSE STATUS = KER_LOCONLY;
;   2420  5	
;   2421  5			    TERM_CLOSE ()
;   2422  4			    END;
;   2423  4	
;   2424  4			IF NOT .STATUS THEN RETURN .STATUS ELSE RETURN KER_EXIT;
;   2425  4	
;   2426  3			END;
;   2427  3	
;   2428  3		    [CMD_CONN] :
;   2429  3			TERM_CONNECT ();
;   2430  3	
;   2431  3		    [CMD_EXIT] :
;   2432  3			RETURN KER_EXIT;
;   2433  3	
;   2434  3		    [CMD_FINISH] :
;   2435  3	
;   2436  4			IF (STATUS = TERM_OPEN (TRUE))	![054] Open the terminal
;   2437  3			THEN
;   2438  4			    BEGIN
;   2439  4	
;   2440  4			    IF NOT .CONNECT_FLAG THEN DO_GENERIC (GC_EXIT) ELSE STATUS = KER_LOCONLY;
;   2441  4	
;   2442  4			    TERM_CLOSE ()
;   2443  3			    END;
;   2444  3	
;   2445  3		    [CMD_GET] :
;   2446  3	
;   2447  4			IF (STATUS = TERM_OPEN (TRUE))	![054] Open the terminal
;   2448  3			THEN
;   2449  4			    BEGIN
;   2450  4	
;   2451  4			    IF NOT .CONNECT_FLAG THEN REC_SWITCH () ELSE STATUS = KER_LOCONLY;
;   2452  4	
;   2453  4			    TERM_CLOSE ();
;   2454  3			    END;
;   2455  3	
;   2456  3		    [CMD_HELP] :
;   2457  3			COMND_HELP ();
;   2458  3	
;   2459  3		    [CMD_LOGOUT] :
;   2460  3	
;   2461  4			IF (STATUS = TERM_OPEN (TRUE))	![054] Open the terminal
;   2462  3			THEN
;   2463  4			    BEGIN
;   2464  4	
;   2465  4			    IF NOT .CONNECT_FLAG THEN DO_GENERIC (GC_LOGOUT) ELSE STATUS = KER_LOCONLY;
;   2466  4	
;   2467  4			    TERM_CLOSE ()
;   2468  3			    END;
;   2469  3	
;   2470  3		    [CMD_RECEIVE] :
;   2471  3	
;   2472  4			IF (STATUS = TERM_OPEN (TRUE))	![054] Open the terminal
;   2473  3			THEN
;   2474  4			    BEGIN
;   2475  4			    FILE_SIZE = 0;		![055] No file to request
;   2476  4			    REC_SWITCH ();
;   2477  4			    TERM_CLOSE ();
;   2478  3			    END;
;   2479  3	
;   2480  3		    [CMD_REMOTE] :
;   2481  3			COMND_REMOTE ();
;   2482  3	
;   2483  3		    [CMD_LOCAL] :
;   2484  3			COMND_LOCAL ();
;   2485  3	
;   2486  3		    [CMD_PUSH] :
;   2487  4			BEGIN
;   2488  4	
;   2489  4			OWN
;   2490  4			    PID : INITIAL (0);
;   2491  4	
;   2492  4			LIB$PUT_OUTPUT (PUSH_TEXT);
;   2493  4	
;   2494  4			IF .PID NEQ 0
;   2495  4			THEN
;   2496  5			    BEGIN
;   2497  5			    STATUS = LIB$ATTACH (PID);
;   2498  5	
;   2499  5			    IF NOT .STATUS THEN PID = 0;
;   2500  5	
;   2501  4			    END;
;   2502  4	
;   2503  4			IF .PID EQL 0 THEN STATUS = LIB$SPAWN (0, 0, 0, 0, 0, PID);	! Just spawn a DCL
;   2504  4	
;   2505  3			END;
;   2506  3	
;   2507  3		    [CMD_SEND] :
;   2508  4			BEGIN
;   2509  4	
;   2510  4			EXTERNAL ROUTINE
;   2511  4			    FILE_OPEN,			! Open file routine
;   2512  4			    FILE_CLOSE;			! Close file routine
;   2513  4	
;   2514  4			LOCAL
;   2515  4			    SAVE_FILE_NAME : VECTOR [CH$ALLOCATION (MAX_FILE_NAME)],
;   2516  4			    SAVE_FILE_SIZE,
;   2517  4			    SAVE_TY_FIL;
;   2518  4	
;   2519  4			SAVE_TY_FIL = .TY_FIL;		! Save current type out flag
;   2520  4			TY_FIL = FALSE;			! Suppress type out of names
;   2521  4			SAVE_FILE_SIZE = .FILE_SIZE;	! Save the file name size
;   2522  4	
;   2523  4			INCR I FROM 0 TO .FILE_SIZE - 1 DO
;   2524  4			    SAVE_FILE_NAME [.I] = .FILE_NAME [.I];
;   2525  4	
;   2526  4			IF FILE_OPEN (FNC_READ)
;   2527  4			THEN
;   2528  5			    BEGIN
;   2529  5			    FILE_SIZE = .SAVE_FILE_SIZE;	! Reset the file name size
;   2530  5	
;   2531  5			    INCR I FROM 0 TO .FILE_SIZE - 1 DO
;   2532  5				FILE_NAME [.I] = .SAVE_FILE_NAME [.I];
;   2533  5	
;   2534  5			    FILE_CLOSE (FALSE);
;   2535  5			    TY_FIL = .SAVE_TY_FIL;	! Reset type out flag
;   2536  5	
;   2537  6			    IF (STATUS = TERM_OPEN (TRUE))	![054] Open the terminal
;   2538  5			    THEN
;   2539  6				BEGIN
;   2540  6				SEND_SWITCH ();
;   2541  6				TERM_CLOSE ();
;   2542  5				END;
;   2543  5	
;   2544  5			    END
;   2545  4			ELSE
;   2546  4			    TY_FIL = .SAVE_TY_FIL;	! Reset type out flag
;   2547  4	
;   2548  3			END;
;   2549  3	
;   2550  3		    [CMD_SERVER] :
;   2551  4			BEGIN
;   2552  4			LIB$PUT_OUTPUT (SERVER_TEXT);
;   2553  4			LIB$PUT_OUTPUT (SERVER_TEXT_1);
;   2554  4			LIB$PUT_OUTPUT (SERVER_TEXT_2);
;   2555  4	
;   2556  5			IF (STATUS = TERM_OPEN (TRUE))	![054] Open the terminal
;   2557  4			THEN
;   2558  5			    BEGIN
;   2559  5			    STATUS = SERVER ();
;   2560  5			    TERM_CLOSE ();
;   2561  5	
;   2562  5			    IF .STATUS NEQ KER_ABORTED THEN RETURN KER_EXIT ELSE RETURN KER_NORMAL;
;   2563  5	
;   2564  4			    END;
;   2565  4	
;   2566  3			END;
;   2567  3	
;   2568  3		    [CMD_SHOW] :
;   2569  3			COMND_SHOW ();
;   2570  3	
;   2571  3		    [CMD_STATUS] :
;   2572  3			COMND_STATUS ();
;   2573  3	
;   2574  3		    [CMD_TAKE] :
;   2575  3			STATUS = COMND_FILE (TAK_FIL_DESC, %ASCID'.COM;0', FALSE, .TAKE_DISPLAY);
;   2576  3	
;   2577  3		    [INRANGE] :
;   2578  3		    TES;
;   2579  3	
;   2580  2		END;
;   2581  2	
;   2582  2	    RETURN .STATUS;
;   2583  1	    END;					! End of DO_COMND



	.PSECT  $PLIT$,NOWRT,NOEXE,2

P.AAJ:	.ASCII  \Kermit Server running on VAX/VMS host.  Please type your escape sequence to\<0>
						     ;									      ;
P.AAI:	.LONG   17694795			     ;									      ;
	.ADDRESS P.AAJ				     ;									      ;
P.AAL:	.ASCII  \ return to your local machine.  Shut down the server by typing the Kermit BYE\<0><0><0>
						     ;									      ;
P.AAK:	.LONG   17694797			     ;									      ;
	.ADDRESS P.AAL				     ;									      ;
P.AAN:	.ASCII  \ command on your local machine.\<0> ;									      ;
P.AAM:	.LONG   17694751			     ;									      ;
	.ADDRESS P.AAN				     ;									      ;
P.AAP:	.ASCII  \ Type LOGOUT to return to VMS Kermit\
						     ;									      ;
P.AAO:	.LONG   17694756			     ;									      ;
	.ADDRESS P.AAP				     ;									      ;
P.AAR:	.ASCII  \.COM;0\<0><0>			     ;									      ;
P.AAQ:	.LONG   17694726			     ;									      ;
	.ADDRESS P.AAR				     ;									      ;

	.PSECT  $OWN$,NOEXE,2

PID:	.LONG   0				     ;									      ;

SERVER_TEXT=	    P.AAI
SERVER_TEXT_1=	    P.AAK
SERVER_TEXT_2=	    P.AAM
PUSH_TEXT=	    P.AAO
	.EXTRN  FILE_OPEN, FILE_CLOSE

	.PSECT  $CODE$,NOWRT,2

;DO_COMND
U.5:	.WORD   ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>  ;Save R2,R3,R4,R5,R6,R7,R8,R9,R10,R11				      ; 2337
	MOVAB   W^TERM_CLOSE, R11		     ;TERM_CLOSE, R11							      ;
	MOVAB   W^TY_FIL, R10			     ;TY_FIL, R10							      ;
	MOVAB   W^CONNECT_FLAG, R9		     ;CONNECT_FLAG, R9							      ;
	MOVAB   W^TERM_OPEN, R8			     ;TERM_OPEN, R8							      ;
	MOVAB   W^FILE_SIZE, R7			     ;FILE_SIZE, R7							      ;
	MOVAB   G^LIB$PUT_OUTPUT, R6		     ;LIB$PUT_OUTPUT, R6						      ;
	MOVAB   W^PID, R5			     ;PID, R5								      ;
	MOVAB   -132(SP), SP			     ;-132(SP), SP							      ;
	MOVL    #17694720, -140(R5)		     ;#17694720, TEMP_DESC						      ; 2388
	MOVAB   -132(R5), -136(R5)		     ;TEMP_NAME, TEMP_DESC+4						      ;
	CLRQ    -724(R5)			     ;COMMAND								      ; 2389
	CLRL    (R7)				     ;FILE_SIZE								      ; 2392
	CLRL    W^ALT_FILE_SIZE			     ;ALT_FILE_SIZE							      ; 2393
	CLRL    W^GEN_1SIZE			     ;GEN_1SIZE								      ; 2394
	CLRL    W^GEN_2SIZE			     ;GEN_2SIZE								      ; 2395
	CLRL    W^GEN_3SIZE			     ;GEN_3SIZE								      ; 2396
	CLRL    (R9)				     ;CONNECT_FLAG							      ; 2397
	CLRQ    -716(R5)			     ;REM_TYPE								      ; 2391
	MOVL    4(AP), R0			     ;CMD_DESC, R0							      ; 2399
	MOVZWL  (R0), -760(R5)			     ;(R0), TPARSE_BLOCK+8						      ;
	MOVL    4(R0), -756(R5)			     ;4(R0), TPARSE_BLOCK+12						      ; 2400
	BICB2   #1, -764(R5)			     ;#1, TPARSE_BLOCK+4						      ; 2401
	PUSHAB  W^KERMIT_KEY			     ;KERMIT_KEY							      ; 2402
	PUSHAB  W^KERMIT_STATE			     ;KERMIT_STATE							      ;
	PUSHAB  -768(R5)			     ;TPARSE_BLOCK							      ;
	CALLS   #3, G^LIB$TPARSE		     ;#3, LIB$TPARSE							      ;
	MOVL    R0, R2				     ;R0, STATUS							      ;
	BLBC    R2, 8$				     ;STATUS, 8$							      ; 2404
	MOVZWL  W^FILE_DESC, (R7)		     ;FILE_DESC, FILE_SIZE						      ; 2407
	CASEL   -724(R5), #1, #17		     ;COMMAND, #1, #17							      ; 2409
1$:	.WORD   5$-1$,-				     ;5$-1$,-								      ;
		30$-1$,-			     ;30$-1$,-								      ;
		10$-1$,-			     ;10$-1$,-								      ;
		15$-1$,-			     ;15$-1$,-								      ;
		36$-1$,-			     ;36$-1$,-								      ;
		22$-1$,-			     ;22$-1$,-								      ;
		32$-1$,-			     ;32$-1$,-								      ;
		29$-1$,-			     ;29$-1$,-								      ;
		33$-1$,-			     ;33$-1$,-								      ;
		11$-1$,-			     ;11$-1$,-								      ;
		2$-1$,-				     ;2$-1$,-								      ;
		6$-1$,-				     ;6$-1$,-								      ;
		7$-1$,-				     ;7$-1$,-								      ;
		17$-1$,-			     ;17$-1$,-								      ;
		18$-1$,-			     ;18$-1$,-								      ;
		20$-1$,-			     ;20$-1$,-								      ;
		36$-1$,-			     ;36$-1$,-								      ;
		34$-1$				     ;34$-1$								      ;
2$:	PUSHL   #1				     ;#1								      ; 2415
	CALLS   #1, (R8)			     ;#1, TERM_OPEN							      ;
	MOVL    R0, R2				     ;R0, STATUS							      ;
	BLBC    R2, 16$				     ;STATUS, 16$							      ;
	BLBS    (R9), 3$			     ;CONNECT_FLAG, 3$							      ; 2419
	PUSHL   #7				     ;#7								      ;
	CALLS   #1, W^DO_GENERIC		     ;#1, DO_GENERIC							      ;
	BRB     4$				     ;4$								      ;
3$:	MOVL    #134316122, R2			     ;#134316122, STATUS						      ;
4$:	CALLS   #0, (R11)			     ;#0, TERM_CLOSE							      ; 2421
	BLBC    R2, 19$				     ;STATUS, 19$							      ; 2424
	BRW     30$				     ;30$								      ;
5$:	CALLS   #0, W^TERM_CONNECT		     ;#0, TERM_CONNECT							      ; 2429
	BRB     19$				     ;19$								      ;
6$:	PUSHL   #1				     ;#1								      ; 2436
	CALLS   #1, (R8)			     ;#1, TERM_OPEN							      ;
	MOVL    R0, R2				     ;R0, STATUS							      ;
	BLBC    R2, 19$				     ;STATUS, 19$							      ;
	BLBS    (R9), 13$			     ;CONNECT_FLAG, 13$							      ; 2440
	PUSHL   #1				     ;#1								      ;
	BRB     12$				     ;12$								      ;
7$:	PUSHL   #1				     ;#1								      ; 2447
	CALLS   #1, (R8)			     ;#1, TERM_OPEN							      ;
	MOVL    R0, R2				     ;R0, STATUS							      ;
8$:	BLBC    R2, 19$				     ;STATUS, 19$							      ;
	BLBS    (R9), 13$			     ;CONNECT_FLAG, 13$							      ; 2451
9$:	CALLS   #0, W^REC_SWITCH		     ;#0, REC_SWITCH							      ;
	BRB     14$				     ;14$								      ;
10$:	CALLS   #0, W^U.6			     ;#0, U.6								      ; 2457
	BRB     19$				     ;19$								      ;
11$:	PUSHL   #1				     ;#1								      ; 2461
	CALLS   #1, (R8)			     ;#1, TERM_OPEN							      ;
	MOVL    R0, R2				     ;R0, STATUS							      ;
	BLBC    R2, 19$				     ;STATUS, 19$							      ;
	BLBS    (R9), 13$			     ;CONNECT_FLAG, 13$							      ; 2465
	PUSHL   #7				     ;#7								      ;
12$:	CALLS   #1, W^DO_GENERIC		     ;#1, DO_GENERIC							      ;
	BRB     14$				     ;14$								      ;
13$:	MOVL    #134316122, R2			     ;#134316122, STATUS						      ;
14$:	BRW     27$				     ;27$								      ; 2467
15$:	PUSHL   #1				     ;#1								      ; 2472
	CALLS   #1, (R8)			     ;#1, TERM_OPEN							      ;
	MOVL    R0, R2				     ;R0, STATUS							      ;
16$:	BLBC    R2, 19$				     ;STATUS, 19$							      ;
	CLRL    (R7)				     ;FILE_SIZE								      ; 2475
	BRB     9$				     ;9$								      ; 2476
17$:	CALLS   #0, W^U.9			     ;#0, U.9								      ; 2481
	BRB     19$				     ;19$								      ;
18$:	CALLS   #0, W^U.10			     ;#0, U.10								      ; 2484
19$:	BRW     36$				     ;36$								      ;
20$:	PUSHAB  W^PUSH_TEXT			     ;PUSH_TEXT								      ; 2492
	CALLS   #1, (R6)			     ;#1, LIB$PUT_OUTPUT						      ;
	TSTL    (R5)				     ;PID								      ; 2494
	BEQL    21$				     ;21$								      ;
	PUSHL   R5				     ;R5								      ; 2497
	CALLS   #1, G^LIB$ATTACH		     ;#1, LIB$ATTACH							      ;
	MOVL    R0, R2				     ;R0, STATUS							      ;
	BLBS    R2, 21$				     ;STATUS, 21$							      ; 2499
	CLRL    (R5)				     ;PID								      ;
21$:	TSTL    (R5)				     ;PID								      ; 2503
	BNEQ    19$				     ;19$								      ;
	PUSHL   R5				     ;R5								      ;
	CLRQ    -(SP)				     ;-(SP)								      ;
	CLRQ    -(SP)				     ;-(SP)								      ;
	CLRL    -(SP)				     ;-(SP)								      ;
	CALLS   #6, G^LIB$SPAWN			     ;#6, LIB$SPAWN							      ;
	BRW     35$				     ;35$								      ;
22$:	MOVL    (R10), R4			     ;TY_FIL, SAVE_TY_FIL						      ; 2519
	CLRL    (R10)				     ;TY_FIL								      ; 2520
	MOVL    (R7), R3			     ;FILE_SIZE, SAVE_FILE_SIZE						      ; 2521
	MNEGL   #1, R0				     ;#1, I								      ; 2523
	BRB     24$				     ;24$								      ;
23$:	MOVL    W^FILE_NAME[R0], (SP)[R0]	     ;FILE_NAME[I], SAVE_FILE_NAME[I]					      ; 2524
24$:	AOBLSS  (R7), R0, 23$			     ;FILE_SIZE, I, 23$							      ;
	CLRL    -(SP)				     ;-(SP)								      ; 2526
	CALLS   #1, W^FILE_OPEN			     ;#1, FILE_OPEN							      ;
	BLBC    R0, 28$				     ;R0, 28$								      ;
	MOVL    R3, (R7)			     ;SAVE_FILE_SIZE, FILE_SIZE						      ; 2529
	MNEGL   #1, R0				     ;#1, I								      ; 2531
	BRB     26$				     ;26$								      ;
25$:	MOVL    (SP)[R0], W^FILE_NAME[R0]	     ;SAVE_FILE_NAME[I], FILE_NAME[I]					      ; 2532
26$:	AOBLSS  (R7), R0, 25$			     ;FILE_SIZE, I, 25$							      ;
	CLRL    -(SP)				     ;-(SP)								      ; 2534
	CALLS   #1, W^FILE_CLOSE		     ;#1, FILE_CLOSE							      ;
	MOVL    R4, (R10)			     ;SAVE_TY_FIL, TY_FIL						      ; 2535
	PUSHL   #1				     ;#1								      ; 2537
	CALLS   #1, (R8)			     ;#1, TERM_OPEN							      ;
	MOVL    R0, R2				     ;R0, STATUS							      ;
	BLBC    R2, 36$				     ;STATUS, 36$							      ;
	CALLS   #0, W^SEND_SWITCH		     ;#0, SEND_SWITCH							      ; 2540
27$:	CALLS   #0, (R11)			     ;#0, TERM_CLOSE							      ; 2541
	BRB     36$				     ;36$								      ; 2526
28$:	MOVL    R4, (R10)			     ;SAVE_TY_FIL, TY_FIL						      ; 2546
	BRB     36$				     ;36$								      ; 2409
29$:	PUSHAB  W^SERVER_TEXT			     ;SERVER_TEXT							      ; 2552
	CALLS   #1, (R6)			     ;#1, LIB$PUT_OUTPUT						      ;
	PUSHAB  W^SERVER_TEXT_1			     ;SERVER_TEXT_1							      ; 2553
	CALLS   #1, (R6)			     ;#1, LIB$PUT_OUTPUT						      ;
	PUSHAB  W^SERVER_TEXT_2			     ;SERVER_TEXT_2							      ; 2554
	CALLS   #1, (R6)			     ;#1, LIB$PUT_OUTPUT						      ;
	PUSHL   #1				     ;#1								      ; 2556
	CALLS   #1, (R8)			     ;#1, TERM_OPEN							      ;
	MOVL    R0, R2				     ;R0, STATUS							      ;
	BLBC    R2, 36$				     ;STATUS, 36$							      ;
	CALLS   #0, W^SERVER			     ;#0, SERVER							      ; 2559
	MOVL    R0, R2				     ;R0, STATUS							      ;
	CALLS   #0, (R11)			     ;#0, TERM_CLOSE							      ; 2560
	CMPL    R2, #134316258			     ;STATUS, #134316258						      ; 2562
	BEQL    31$				     ;31$								      ;
30$:	MOVL    #134316203, R0			     ;#134316203, R0							      ;
	RET     				     ;									      ;
31$:	MOVL    #134316043, R0			     ;#134316043, R0							      ;
	RET     				     ;									      ;
32$:	CALLS   #0, W^U.7			     ;#0, U.7								      ; 2569
	BRB     36$				     ;36$								      ;
33$:	CALLS   #0, W^U.8			     ;#0, U.8								      ; 2572
	BRB     36$				     ;36$								      ;
34$:	PUSHL   -712(R5)			     ;TAKE_DISPLAY							      ; 2575
	CLRL    -(SP)				     ;-(SP)								      ;
	PUSHAB  W^P.AAQ				     ;P.AAQ								      ;
	PUSHAB  -280(R5)			     ;TAK_FIL_DESC							      ;
	CALLS   #4, W^U.4			     ;#4, U.4								      ;
35$:	MOVL    R0, R2				     ;R0, STATUS							      ;
36$:	MOVL    R2, R0				     ;STATUS, R0							      ; 2582
	RET     				     ;									      ; 2583

; Routine Size:  582 bytes,    Routine Base:  $CODE$ + 03A9


;   2584  1	%SBTTL 'Command execution -- COMND_HELP'
;   2585  1	ROUTINE COMND_HELP : NOVALUE =
;   2586  1	
;   2587  1	!++
;   2588  1	! FUNCTIONAL DESCRIPTION:
;   2589  1	!
;   2590  1	!	This routine will do the HELP command processing for KERMIT.  It
;   2591  1	!	will call the library routines.
;   2592  1	!
;   2593  1	! CALLING SEQUENCE:
;   2594  1	!
;   2595  1	!	COMND_HELP();
;   2596  1	!
;   2597  1	! INPUT PARAMETERS:
;   2598  1	!
;   2599  1	!	None.
;   2600  1	!
;   2601  1	! IMPLICIT INPUTS:
;   2602  1	!
;   2603  1	!	None.
;   2604  1	!
;   2605  1	! OUTPUT PARAMETERS:
;   2606  1	!
;   2607  1	!	None.
;   2608  1	!
;   2609  1	! IMPLICIT OUTPUTS:
;   2610  1	!
;   2611  1	!	None.
;   2612  1	!
;   2613  1	! COMPLETION CODES:
;   2614  1	!
;   2615  1	!	None.
;   2616  1	!
;   2617  1	! SIDE EFFECTS:
;   2618  1	!
;   2619  1	!	None.
;   2620  1	!
;   2621  1	!--
;   2622  1	
;   2623  2	    BEGIN
;   2624  2	
;   2625  2	    LOCAL
;   2626  2		STATUS : UNSIGNED LONG;
;   2627  2	
;   2628  2	    EXTERNAL ROUTINE
;   2629  2		LBR$OUTPUT_HELP : ADDRESSING_MODE (GENERAL);
;   2630  2	
;   2631  2	!
;   2632  2	! Do the help processing.
;   2633  2	!
;   2634  2	    STATUS = LBR$OUTPUT_HELP (LIB$PUT_OUTPUT, 0, TEMP_DESC, %ASCID'KERMIT',
;   2635  2		UPLIT (HLP$M_PROMPT + HLP$M_PROCESS + HLP$M_GROUP + HLP$M_SYSTEM), LIB$GET_INPUT);
;   2636  2	
;   2637  2	    IF NOT .STATUS THEN LIB$SIGNAL (.STATUS);
;   2638  2	
;   2639  1	    END;



	.PSECT  $PLIT$,NOWRT,NOEXE,2

P.AAT:	.ASCII  \KERMIT\<0><0>			     ;									      ;
P.AAS:	.LONG   17694726			     ;									      ;
	.ADDRESS P.AAT				     ;									      ;
P.AAU:	.LONG   15				     ;									      ;

	.EXTRN  LBR$OUTPUT_HELP

	.PSECT  $CODE$,NOWRT,2

;COMND_HELP
U.6:	.WORD   ^M<>				     ;Save nothing							      ; 2585
	PUSHAB  G^LIB$GET_INPUT			     ;LIB$GET_INPUT							      ; 2634
	PUSHAB  W^P.AAU				     ;P.AAU								      ; 2635
	PUSHAB  W^P.AAS				     ;P.AAS								      ; 2634
	PUSHAB  W^U.59				     ;U.59								      ;
	CLRL    -(SP)				     ;-(SP)								      ;
	PUSHAB  G^LIB$PUT_OUTPUT		     ;LIB$PUT_OUTPUT							      ;
	CALLS   #6, G^LBR$OUTPUT_HELP		     ;#6, LBR$OUTPUT_HELP						      ;
	BLBS    R0, 1$				     ;STATUS, 1$							      ; 2637
	PUSHL   R0				     ;STATUS								      ;
	CALLS   #1, G^LIB$SIGNAL		     ;#1, LIB$SIGNAL							      ;
1$:	RET     				     ;									      ; 2639

; Routine Size:  48 bytes,    Routine Base:  $CODE$ + 05EF


;   2640  1	%SBTTL 'Command execution -- Support routines -- OUTPUT_LONG_WORD'
;   2641  1	ROUTINE OUTPUT_LONG_WORD (MSG_ADDR, LONG_VALUE) : NOVALUE =
;   2642  1	
;   2643  1	!++
;   2644  1	! FUNCTIONAL DESCRIPTION:
;   2645  1	!	This routine is used to output the various long word parameters
;   2646  1	!	that are shown by the SHOW command.  All text is defined in the level
;   2647  1	!	0 of this program.
;   2648  1	!
;   2649  1	! CALLING SEQUENCE:
;   2650  1	!
;   2651  1	!	OUTPUT_LONG_WORD( MSG_ASCID, LONG_WORD_VALUE_TO_OUTPUT);
;   2652  1	!
;   2653  1	! INPUT PARAMETERS:
;   2654  1	!
;   2655  1	!	MSG_ASCID - %ASCID of the text to use for the $FAO call.
;   2656  1	!
;   2657  1	!	LONG_WORD_VALUE_TO_OUTPUT - Value of the long word to pass to the $FAO.
;   2658  1	!
;   2659  1	! IMPLICIT INPUTS:
;   2660  1	!
;   2661  1	!	None.
;   2662  1	!
;   2663  1	! OUTPUT PARAMETERS:
;   2664  1	!
;   2665  1	!	None.
;   2666  1	!
;   2667  1	! IMPLICIT OUTPUTS:
;   2668  1	!
;   2669  1	!	None.
;   2670  1	!
;   2671  1	! COMPLETION CODES:
;   2672  1	!
;   2673  1	!	None.
;   2674  1	!
;   2675  1	! SIDE EFFECTS:
;   2676  1	!
;   2677  1	!	None.
;   2678  1	!
;   2679  1	!--
;   2680  1	
;   2681  2	    BEGIN
;   2682  2	
;   2683  2	    MAP
;   2684  2		LONG_VALUE : LONG UNSIGNED,
;   2685  2		MSG_ADDR : LONG UNSIGNED;
;   2686  2	
;   2687  2	    LOCAL
;   2688  2		STATUS : UNSIGNED;			! Status return by LIB$xxx
;   2689  2	
;   2690  2	    INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH);
;   2691  2	    $FAO (.MSG_ADDR, OUTPUT_SIZE, OUTPUT_DESC, .LONG_VALUE);
;   2692  2	    OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE;
;   2693  2	    STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC);
;   2694  1	    END;



	.EXTRN  SYS$FAO

OUTPUT_LONG_WORD:
	.WORD   ^M<R2>				     ;Save R2								      ; 2641
	MOVAB   W^U.51, R2			     ;U.51, R2								      ;
	MOVL    #17694800, (R2)			     ;#17694800, OUTPUT_DESC						      ; 2690
	MOVAB   -80(R2), 4(R2)			     ;OUTPUT_LINE, OUTPUT_DESC+4					      ;
	PUSHL   8(AP)				     ;LONG_VALUE							      ; 2691
	PUSHL   R2				     ;R2								      ;
	PUSHAB  8(R2)				     ;OUTPUT_SIZE							      ;
	PUSHL   4(AP)				     ;MSG_ADDR								      ;
	CALLS   #4, G^SYS$FAO			     ;#4, SYS$FAO							      ;
	MOVW    8(R2), (R2)			     ;OUTPUT_SIZE, OUTPUT_DESC						      ; 2692
	PUSHL   R2				     ;R2								      ; 2693
	CALLS   #1, G^LIB$PUT_OUTPUT		     ;#1, LIB$PUT_OUTPUT						      ;
	RET     				     ;									      ; 2694

; Routine Size:  51 bytes,    Routine Base:  $CODE$ + 061F


;   2695  1	%SBTTL 'Command Execution -- COMND_REMOTE'
;   2696  1	ROUTINE COMND_REMOTE : NOVALUE =
;   2697  1	
;   2698  1	!++
;   2699  1	! FUNCTIONAL DESCRIPTION:
;   2700  1	!
;   2701  1	! This routine will handle the REMOTE commands.  It will call KERMSG
;   2702  1	!to perform the command.
;   2703  1	!
;   2704  1	! CALLING SEQUENCE:
;   2705  1	!
;   2706  1	!	COMND_REMOTE ();
;   2707  1	!
;   2708  1	! INPUT PARAMETERS:
;   2709  1	!
;   2710  1	!	None.
;   2711  1	!
;   2712  1	! IMPLICIT INPUTS:
;   2713  1	!
;   2714  1	!	REM_TYPE - type of command to be executed
;   2715  1	!	GEN_xDATA/GEN_xSIZE - arguments for the commands
;   2716  1	!
;   2717  1	! OUPTUT PARAMETERS:
;   2718  1	!
;   2719  1	!	None.
;   2720  1	!
;   2721  1	! IMPLICIT OUTPUTS:
;   2722  1	!
;   2723  1	!	None.
;   2724  1	!
;   2725  1	! COMPLETION CODES:
;   2726  1	!
;   2727  1	!	None.
;   2728  1	!
;   2729  1	! SIDE EFFECTS:
;   2730  1	!
;   2731  1	!	None.
;   2732  1	!
;   2733  1	!--
;   2734  1	
;   2735  2	    BEGIN
;   2736  2	
;   2737  2	    IF GET_REM_ARGS (FALSE)
;   2738  2	    THEN
;   2739  2	
;   2740  2		IF TERM_OPEN (TRUE)			![054] Open the terminal to determine if local
;   2741  2		THEN
;   2742  3		    BEGIN
;   2743  3	
;   2744  3		    IF NOT .CONNECT_FLAG THEN DO_GENERIC (.REM_TYPE) ELSE LIB$SIGNAL (KER_LOCONLY);
;   2745  3	
;   2746  3		    TERM_CLOSE ();
;   2747  2		    END;
;   2748  2	
;   2749  1	    END;					! End of COMND_REMOTE





;COMND_REMOTE
U.9:	.WORD   ^M<>				     ;Save nothing							      ; 2696
	CLRL    -(SP)				     ;-(SP)								      ; 2737
	CALLS   #1, W^U.11			     ;#1, U.11								      ;
	BLBC    R0, 3$				     ;R0, 3$								      ;
	PUSHL   #1				     ;#1								      ; 2740
	CALLS   #1, W^TERM_OPEN			     ;#1, TERM_OPEN							      ;
	BLBC    R0, 3$				     ;R0, 3$								      ;
	BLBS    W^CONNECT_FLAG, 1$		     ;CONNECT_FLAG, 1$							      ; 2744
	PUSHL   W^U.48				     ;U.48								      ;
	CALLS   #1, W^DO_GENERIC		     ;#1, DO_GENERIC							      ;
	BRB     2$				     ;2$								      ;
1$:	PUSHL   #134316122			     ;#134316122							      ;
	CALLS   #1, G^LIB$SIGNAL		     ;#1, LIB$SIGNAL							      ;
2$:	CALLS   #0, W^TERM_CLOSE		     ;#0, TERM_CLOSE							      ; 2746
3$:	RET     				     ;									      ; 2749

; Routine Size:  57 bytes,    Routine Base:  $CODE$ + 0652


;   2750  1	%SBTTL 'Command Execution -- COMND_LOCAL'
;   2751  1	ROUTINE COMND_LOCAL : NOVALUE =
;   2752  1	
;   2753  1	!++
;   2754  1	! FUNCTIONAL DESCRIPTION:
;   2755  1	!
;   2756  1	! This routine will handle the LOCAL commands.  It will call the generic
;   2757  1	!command processor to perform the command, and type the result.
;   2758  1	!
;   2759  1	! CALLING SEQUENCE:
;   2760  1	!
;   2761  1	!	COMND_LOCAL ();
;   2762  1	!
;   2763  1	! INPUT PARAMETERS:
;   2764  1	!
;   2765  1	!	None.
;   2766  1	!
;   2767  1	! IMPLICIT INPUTS:
;   2768  1	!
;   2769  1	!	REM_TYPE - type of command to be executed
;   2770  1	!	GEN_xDATA/GEN_xSIZE - arguments for the commands
;   2771  1	!
;   2772  1	! OUPTUT PARAMETERS:
;   2773  1	!
;   2774  1	!	None.
;   2775  1	!
;   2776  1	! IMPLICIT OUTPUTS:
;   2777  1	!
;   2778  1	!	None.
;   2779  1	!
;   2780  1	! COMPLETION CODES:
;   2781  1	!
;   2782  1	!	None.
;   2783  1	!
;   2784  1	! SIDE EFFECTS:
;   2785  1	!
;   2786  1	!	None.
;   2787  1	!
;   2788  1	!--
;   2789  1	
;   2790  2	    BEGIN
;   2791  2	
;   2792  2	    LOCAL
;   2793  2		SAVED_TY_FIL,				! Saved value from TY_FIL
;   2794  2		STATUS,					! Status values
;   2795  2		FILE_FLAG,				! Flag whether file is open
;   2796  2		CHARACTER,				! Character from get-a-char routine
;   2797  2		STR_LENGTH,				! Length of string
;   2798  2		STR_ADDRESS,				! Address of string
;   2799  2		GET_CHR_RTN;				! Address of routine to get a character
;   2800  2	
;   2801  2	    EXTERNAL ROUTINE
;   2802  2		SY_GENERIC,				! Do a generic command
;   2803  2		GET_FILE,				! Get a character from a file
;   2804  2		FILE_OPEN,				! Open a file
;   2805  2		FILE_CLOSE;				! Close a file
;   2806  2	
;   2807  2	!
;   2808  2	! First get any extra arguments needed
;   2809  2	!
;   2810  2	    STATUS = GET_REM_ARGS (TRUE);
;   2811  2	
;   2812  2	    IF NOT .STATUS THEN RETURN;
;   2813  2	
;   2814  2	!
;   2815  2	! Initialize arguments for SY_GENERIC
;   2816  2	!
;   2817  2	    GET_CHR_RTN = 0;				! No routine
;   2818  2	    STR_LENGTH = 0;				! No length
;   2819  2	    STR_ADDRESS = 0;				! No address
;   2820  2	!
;   2821  2	! Have generic routine do the command
;   2822  2	!
;   2823  2	    STATUS = SY_GENERIC (.REM_TYPE, STR_ADDRESS, STR_LENGTH, GET_CHR_RTN);
;   2824  2	
;   2825  2	    IF NOT .STATUS
;   2826  2	    THEN
;   2827  2		LIB$SIGNAL (.STATUS)
;   2828  2	    ELSE
;   2829  3		BEGIN
;   2830  3	!
;   2831  3	! If we got a string, type it out
;   2832  3	!
;   2833  3	
;   2834  3		IF .STR_LENGTH NEQ 0
;   2835  3		THEN
;   2836  4		    BEGIN
;   2837  4	
;   2838  4		    LOCAL
;   2839  4			POINTER;
;   2840  4	
;   2841  4		    POINTER = CH$PTR (.STR_ADDRESS);
;   2842  4	
;   2843  4		    DECR I FROM .STR_LENGTH TO 1 DO
;   2844  4			TT_CHAR (CH$RCHAR_A (POINTER));
;   2845  4	
;   2846  4		    TT_CRLF ();				! Make sure it gets dumped
;   2847  4		    END
;   2848  3		ELSE
;   2849  3	!
;   2850  3	! Here if we didn't get a string.  Either we need to call the supplied routine
;   2851  3	! or open a file and call GET_FILE for each character.
;   2852  3	!
;   2853  4		    BEGIN
;   2854  4	
;   2855  4		    IF .GET_CHR_RTN NEQ 0
;   2856  4		    THEN
;   2857  4			FILE_FLAG = FALSE		! No file open
;   2858  4		    ELSE
;   2859  5			BEGIN
;   2860  5			FILE_FLAG = TRUE;		! Have a file
;   2861  5			GET_CHR_RTN = GET_FILE;		! This is our get-a-char routine
;   2862  5			SAVED_TY_FIL = .TY_FIL;		! Save current type out flag
;   2863  5			TY_FIL = FALSE;			! Make sure we don't have name typed
;   2864  5			STATUS = FILE_OPEN (FNC_READ);	! Open the file
;   2865  5			TY_FIL = .SAVED_TY_FIL;		! Restore type out value
;   2866  5	
;   2867  5			IF NOT .STATUS			! If we couldn't open the file
;   2868  5			THEN
;   2869  5			    RETURN;			! Just return, (FILE_OPEN reported it)
;   2870  5	
;   2871  4			END;
;   2872  4	
;   2873  4		    DO
;   2874  5			BEGIN
;   2875  5			STATUS = (.GET_CHR_RTN) (CHARACTER);	! Get a character
;   2876  5	
;   2877  5			IF .STATUS AND NOT .STATUS EQL KER_EOF	! Did we get one?
;   2878  5			THEN
;   2879  5			    TT_CHAR (.CHARACTER)	! Yes, type it
;   2880  5			ELSE
;   2881  5	!
;   2882  5	! If no character returned, check for EOF and close file if we opened it
;   2883  5	!
;   2884  5	
;   2885  5			    IF .STATUS EQL KER_EOF AND .FILE_FLAG THEN FILE_CLOSE ();
;   2886  5	
;   2887  5			END
;   2888  4		    UNTIL NOT .STATUS OR .STATUS EQL KER_EOF;	! Loop until we are done
;   2889  4	
;   2890  4		    TT_OUTPUT ();			! Force out last buffer
;   2891  3		    END;
;   2892  3	
;   2893  2		END;
;   2894  2	
;   2895  1	    END;					! End of COMND_LOCAL



	.EXTRN  SY_GENERIC, GET_FILE

;COMND_LOCAL
U.10:	.WORD   ^M<R2,R3,R4,R5>			     ;Save R2,R3,R4,R5							      ; 2751
	MOVAB   W^TY_FIL, R5			     ;TY_FIL, R5							      ;
	SUBL2   #16, SP				     ;#16, SP								      ;
	PUSHL   #1				     ;#1								      ; 2810
	CALLS   #1, W^U.11			     ;#1, U.11								      ;
	MOVL    R0, R4				     ;R0, STATUS							      ;
	BLBC    R4, 6$				     ;STATUS, 6$							      ; 2812
	CLRQ    (SP)				     ;GET_CHR_RTN							      ; 2817
	CLRL    8(SP)				     ;STR_ADDRESS							      ; 2819
	PUSHL   SP				     ;SP								      ; 2823
	PUSHAB  8(SP)				     ;STR_LENGTH							      ;
	PUSHAB  16(SP)				     ;STR_ADDRESS							      ;
	PUSHL   W^U.48				     ;U.48								      ;
	CALLS   #4, W^SY_GENERIC		     ;#4, SY_GENERIC							      ;
	MOVL    R0, R4				     ;R0, STATUS							      ;
	BLBS    R4, 1$				     ;STATUS, 1$							      ; 2825
	PUSHL   R4				     ;STATUS								      ; 2827
	CALLS   #1, G^LIB$SIGNAL		     ;#1, LIB$SIGNAL							      ;
	RET     				     ;									      ;
1$:	TSTL    4(SP)				     ;STR_LENGTH							      ; 2834
	BEQL    4$				     ;4$								      ;
	MOVL    8(SP), R3			     ;STR_ADDRESS, POINTER						      ; 2841
	ADDL3   #1, 4(SP), R2			     ;#1, STR_LENGTH, I							      ; 2843
	BRB     3$				     ;3$								      ;
2$:	MOVZBL  (R3)+, -(SP)			     ;(POINTER)+, -(SP)							      ; 2844
	CALLS   #1, W^TT_CHAR			     ;#1, TT_CHAR							      ;
3$:	SOBGTR  R2, 2$				     ;I, 2$								      ;
	CALLS   #0, W^TT_CRLF			     ;#0, TT_CRLF							      ; 2846
	RET     				     ;									      ; 2834
4$:	TSTL    (SP)				     ;GET_CHR_RTN							      ; 2855
	BEQL    5$				     ;5$								      ;
	CLRL    R3				     ;FILE_FLAG								      ; 2857
	BRB     7$				     ;7$								      ;
5$:	MOVL    #1, R3				     ;#1, FILE_FLAG							      ; 2860
	MOVAB   W^GET_FILE, (SP)		     ;GET_FILE, GET_CHR_RTN						      ; 2861
	MOVL    (R5), R2			     ;TY_FIL, SAVED_TY_FIL						      ; 2862
	CLRL    (R5)				     ;TY_FIL								      ; 2863
	CLRL    -(SP)				     ;-(SP)								      ; 2864
	CALLS   #1, W^FILE_OPEN			     ;#1, FILE_OPEN							      ;
	MOVL    R0, R4				     ;R0, STATUS							      ;
	MOVL    R2, (R5)			     ;SAVED_TY_FIL, TY_FIL						      ; 2865
6$:	BLBC    R4, 11$				     ;STATUS, 11$							      ; 2867
7$:	PUSHAB  12(SP)				     ;CHARACTER								      ; 2875
	CALLS   #1, @4(SP)			     ;#1, @GET_CHR_RTN							      ;
	MOVL    R0, R4				     ;R0, STATUS							      ;
	BLBC    R4, 8$				     ;STATUS, 8$							      ; 2877
	CMPL    R4, #134316131			     ;STATUS, #134316131						      ;
	BEQL    8$				     ;8$								      ;
	PUSHL   12(SP)				     ;CHARACTER								      ; 2879
	CALLS   #1, W^TT_CHAR			     ;#1, TT_CHAR							      ;
	BRB     9$				     ;9$								      ;
8$:	CMPL    R4, #134316131			     ;STATUS, #134316131						      ; 2885
	BNEQ    9$				     ;9$								      ;
	BLBC    R3, 9$				     ;FILE_FLAG, 9$							      ;
	CALLS   #0, W^FILE_CLOSE		     ;#0, FILE_CLOSE							      ;
9$:	BLBC    R4, 10$				     ;STATUS, 10$							      ; 2888
	CMPL    R4, #134316131			     ;STATUS, #134316131						      ;
	BNEQ    7$				     ;7$								      ;
10$:	CALLS   #0, W^TT_OUTPUT			     ;#0, TT_OUTPUT							      ; 2890
11$:	RET     				     ;									      ; 2895

; Routine Size:  198 bytes,    Routine Base:  $CODE$ + 068B


;   2896  1	%SBTTL 'Command execution -- COMND_SHOW'
;   2897  1	ROUTINE COMND_SHOW : NOVALUE =
;   2898  1	
;   2899  1	!++
;   2900  1	! FUNCTIONAL DESCRIPTION:
;   2901  1	!
;   2902  1	!	This routine will process the SHOW command.  This routine
;   2903  1	!	expects that the command has already been processed and that
;   2904  1	!	the type of SHOW command is stored in SHOW_TYPE.
;   2905  1	!
;   2906  1	! CALLING SEQUENCE:
;   2907  1	!
;   2908  1	!	COMND_SHOW();
;   2909  1	!
;   2910  1	! INPUT PARAMETERS:
;   2911  1	!
;   2912  1	!	None.
;   2913  1	!
;   2914  1	! IMPLICIT INPUTS:
;   2915  1	!
;   2916  1	!	None.
;   2917  1	!
;   2918  1	! OUTPUT PARAMETERS:
;   2919  1	!
;   2920  1	!	None.
;   2921  1	!
;   2922  1	! IMPLICIT OUTPUTS:
;   2923  1	!
;   2924  1	!	None.
;   2925  1	!
;   2926  1	! COMPLETION CODES:
;   2927  1	!
;   2928  1	!	None.
;   2929  1	!
;   2930  1	! SIDE EFFECTS:
;   2931  1	!
;   2932  1	!	None.
;   2933  1	!
;   2934  1	!--
;   2935  1	
;   2936  2	    BEGIN
;   2937  2	
;   2938  2	    LOCAL
;   2939  2		STATUS : WORD;				! Status returned
;   2940  2	
;   2941  2	! Bind some addresses to text
;   2942  2	
;   2943  2	    BIND
;   2944  2		OFF_TEXT = %ASCID'OFF',			! Item is off
;   2945  2		ON_TEXT = %ASCID'ON',			! Item is on
;   2946  2		SHOW_ABT_MSG = %ASCID' Incomplete file disposition	!AS',
;   2947  2		ABT_DISCARD = %ASCID'Discard',
;   2948  2		ABT_KEEP = %ASCID'Keep',
;   2949  2		SHOW_CHK_MSG = %ASCID' Block check type		!AS',
;   2950  2		CHK_1CHAR_MSG = %ASCID'One character checksum',
;   2951  2		CHK_2CHAR_MSG = %ASCID'Two character checksum',
;   2952  2		CHK_CRC_MSG = %ASCID'Three character CRC-CCITT',
;   2953  2		SHOW_DEB_MSG = %ASCID' Debugging			!AS',
;   2954  2		SHOW_DEL_MSG = %ASCID' Delay				!ZL (sec)',
;   2955  2		SHOW_SRV_MSG = %ASCID' Server sends NAKs every !ZL seconds while waiting for a command',
;   2956  2		SHOW_ESC_MSG = %ASCID' Escape character		!3OL (octal)',
;   2957  2		SHOW_FTP_MSG = %ASCID' File type			!AS',
;   2958  2		FTP_ASCII = %ASCID'ASCII',
;   2959  2		FTP_BINARY = %ASCID'BINARY',
;   2960  2		FTP_BLOCK = %ASCID'BLOCK',
;   2961  2		FTP_FIXED = %ASCID'FIXED 512 byte records',
;   2962  2		SHOW_FNM_MSG = %ASCID' File naming			!AS',
;   2963  2		FNM_MSG_FULL = %ASCID'Full file specifcation',
;   2964  2		FNM_MSG_NORMAL = %ASCID'Normal form',
;   2965  2		FNM_MSG_UNTRAN = %ASCID'Untranslated',
;   2966  2	!	SHOW_IBM_MSG = %ASCID' IBM mode			!AS',
;   2967  2		SHOW_HAN_MSG = %ASCID' Handshaking character		!3OL (octal)',
;   2968  2		SHOW_HAN_MSG_NONE = %ASCID' Handshaking character		None',
;   2969  2		SHOW_LIN_MSG = %ASCID' Line used			!AS',
;   2970  2		SHOW_ECH_MSG = %ASCID' Local echo			!AS',
;   2971  2		SHOW_PAR_MSG = %ASCID' Parity type			!AS',
;   2972  2		PAR_EVEN = %ASCID'Even',
;   2973  2		PAR_ODD = %ASCID'Odd',
;   2974  2		PAR_MARK = %ASCID'Mark',
;   2975  2		PAR_SPACE = %ASCID'Space',
;   2976  2		PAR_NONE = %ASCID'None',
;   2977  2		SHOW_RTY_HDR = %ASCID' Retry maximums',
;   2978  2		SHOW_RTY_INI_MSG = %ASCID'  Initial connection		!ZL (dec)',
;   2979  2		SHOW_RTY_PKT_MSG = %ASCID'  Sending a packet		!ZL (dec)',
;   2980  2		SHOW_REC_HDR = %ASCID' Receive parameters',
;   2981  2		SHOW_SND_HDR = %ASCID' Send parameters',
;   2982  2		SHOW_PKT_MSG = %ASCID'  Packet length			!ZL (dec)',
;   2983  2		SHOW_PAD_MSG = %ASCID'  Padding length		!ZL (dec)',
;   2984  2		SHOW_PDC_MSG = %ASCID'  Padding character		!3OL (octal)',
;   2985  2		SHOW_TIM_MSG = %ASCID'  Time out			!ZL (sec)',
;   2986  2		SHOW_EOL_MSG = %ASCID'  End of line character		!3OL (octal)',
;   2987  2		SHOW_QUO_MSG = %ASCID'  Quoting character		!3OL (octal)',
;   2988  2		SHOW_SOH_MSG = %ASCID'  Start of packet		!3OL (octal)',
;   2989  2		SHOW_8QU_MSG = %ASCID'  8-bit quoting character	!3OL (octal)',
;   2990  2		SHOW_RPT_MSG = %ASCID' Repeat quoting character	!3OL (octal)';
;   2991  2	
;   2992  2	!++
;   2993  2	! FUNCTIONAL DESCRIPTION:
;   2994  2	!
;   2995  2	!	This routine is used to output the keywords TRUE or FALSE.
;   2996  2	!	All text that this routine uses is defined in the level 0 BEGIN/END
;   2997  2	!	of the program.
;   2998  2	!
;   2999  2	! CALLING SEQUENCE:
;   3000  2	!
;   3001  2	!	OUTPUT_TRUE_FALSE( MSG_ASCID, FLAG_WORD);
;   3002  2	!
;   3003  2	! INPUT PARAMETERS:
;   3004  2	!
;   3005  2	!	MSG_ASCID - %ASCID of the text to use for the $FAO call.
;   3006  2	!
;   3007  2	!	FLAG_WORD - Long word containing the value of either TRUE or FALSE.
;   3008  2	!
;   3009  2	! IMPLICIT INPUTS:
;   3010  2	!
;   3011  2	!	None.
;   3012  2	!
;   3013  2	! OUTPUT PARAMETERS:
;   3014  2	!
;   3015  2	!	None.
;   3016  2	!
;   3017  2	! IMPLICIT OUTPUTS:
;   3018  2	!
;   3019  2	!	None.
;   3020  2	!
;   3021  2	! COMPLETION CODES:
;   3022  2	!
;   3023  2	!	None.
;   3024  2	!
;   3025  2	! SIDE EFFECTS:
;   3026  2	!
;   3027  2	!	None.
;   3028  2	!
;   3029  2	!--
;   3030  2	
;   3031  2	    ROUTINE OUTPUT_TRUE_FALSE (MSG_ADDR, FLAG_ADDR) : NOVALUE =
;   3032  3		BEGIN
;   3033  3	
;   3034  3		MAP
;   3035  3		    FLAG_ADDR : LONG UNSIGNED,
;   3036  3		    MSG_ADDR : LONG UNSIGNED;
;   3037  3	
;   3038  3		LOCAL
;   3039  3		    STATUS : UNSIGNED;			! Status return by LIB$xxx
;   3040  3	
;   3041  3		INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH);
; P 3042  3		$FAO (.MSG_ADDR, OUTPUT_SIZE, OUTPUT_DESC,
; P 3043  3		    (SELECTONE ..FLAG_ADDR OF
; P 3044  3			SET
; P 3045  3			[TRUE] : ON_TEXT;
; P 3046  3			[FALSE] : OFF_TEXT;
;   3047  3			TES));
;   3048  3		OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE;
;   3049  3		STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC);
;   3050  2		END;



	.PSECT  $PLIT$,NOWRT,NOEXE,2

P.AAW:	.ASCII  \OFF\<0>			     ;									      ;
P.AAV:	.LONG   17694723			     ;									      ;
	.ADDRESS P.AAW				     ;									      ;
P.AAY:	.ASCII  \ON\<0><0>			     ;									      ;
P.AAX:	.LONG   17694722			     ;									      ;
	.ADDRESS P.AAY				     ;									      ;
P.ABA:	.ASCII  \ Incomplete file disposition\<9>\!AS\
						     ;									      ;
P.AAZ:	.LONG   17694752			     ;									      ;
	.ADDRESS P.ABA				     ;									      ;
P.ABC:	.ASCII  \Discard\<0>			     ;									      ;
P.ABB:	.LONG   17694727			     ;									      ;
	.ADDRESS P.ABC				     ;									      ;
P.ABE:	.ASCII  \Keep\				     ;									      ;
P.ABD:	.LONG   17694724			     ;									      ;
	.ADDRESS P.ABE				     ;									      ;
P.ABG:	.ASCII  \ Block check type\<9><9>\!AS\<0><0> ;									      ;
P.ABF:	.LONG   17694742			     ;									      ;
	.ADDRESS P.ABG				     ;									      ;
P.ABI:	.ASCII  \One character checksum\<0><0>	     ;									      ;
P.ABH:	.LONG   17694742			     ;									      ;
	.ADDRESS P.ABI				     ;									      ;
P.ABK:	.ASCII  \Two character checksum\<0><0>	     ;									      ;
P.ABJ:	.LONG   17694742			     ;									      ;
	.ADDRESS P.ABK				     ;									      ;
P.ABM:	.ASCII  \Three character CRC-CCITT\<0><0><0> ;									      ;
P.ABL:	.LONG   17694745			     ;									      ;
	.ADDRESS P.ABM				     ;									      ;
P.ABO:	.ASCII  \ Debugging\<9><9><9>\!AS\	     ;									      ;
P.ABN:	.LONG   17694736			     ;									      ;
	.ADDRESS P.ABO				     ;									      ;
P.ABQ:	.ASCII  \ Delay\<9><9><9><9>\!ZL (sec)\<0>   ;									      ;
P.ABP:	.LONG   17694739			     ;									      ;
	.ADDRESS P.ABQ				     ;									      ;
P.ABS:	.ASCII  \ Server sends NAKs every !ZL seconds while waiting for a command\
						     ;									      ;
P.ABR:	.LONG   17694784			     ;									      ;
	.ADDRESS P.ABS				     ;									      ;
P.ABU:	.ASCII  \ Escape character\<9><9>\!3OL (octal)\<0>
						     ;									      ;
P.ABT:	.LONG   17694751			     ;									      ;
	.ADDRESS P.ABU				     ;									      ;
P.ABW:	.ASCII  \ File type\<9><9><9>\!AS\	     ;									      ;
P.ABV:	.LONG   17694736			     ;									      ;
	.ADDRESS P.ABW				     ;									      ;
P.ABY:	.ASCII  \ASCII\<0><0><0>		     ;									      ;
P.ABX:	.LONG   17694725			     ;									      ;
	.ADDRESS P.ABY				     ;									      ;
P.ACA:	.ASCII  \BINARY\<0><0>			     ;									      ;
P.ABZ:	.LONG   17694726			     ;									      ;
	.ADDRESS P.ACA				     ;									      ;
P.ACC:	.ASCII  \BLOCK\<0><0><0>		     ;									      ;
P.ACB:	.LONG   17694725			     ;									      ;
	.ADDRESS P.ACC				     ;									      ;
P.ACE:	.ASCII  \FIXED 512 byte records\<0><0>	     ;									      ;
P.ACD:	.LONG   17694742			     ;									      ;
	.ADDRESS P.ACE				     ;									      ;
P.ACG:	.ASCII  \ File naming\<9><9><9>\!AS\<0><0>   ;									      ;
P.ACF:	.LONG   17694738			     ;									      ;
	.ADDRESS P.ACG				     ;									      ;
P.ACI:	.ASCII  \Full file specifcation\<0><0>	     ;									      ;
P.ACH:	.LONG   17694742			     ;									      ;
	.ADDRESS P.ACI				     ;									      ;
P.ACK:	.ASCII  \Normal form\<0>		     ;									      ;
P.ACJ:	.LONG   17694731			     ;									      ;
	.ADDRESS P.ACK				     ;									      ;
P.ACM:	.ASCII  \Untranslated\			     ;									      ;
P.ACL:	.LONG   17694732			     ;									      ;
	.ADDRESS P.ACM				     ;									      ;
P.ACO:	.ASCII  \ Handshaking character\<9><9>\!3OL (octal)\
						     ;									      ;
P.ACN:	.LONG   17694756			     ;									      ;
	.ADDRESS P.ACO				     ;									      ;
P.ACQ:	.ASCII  \ Handshaking character\<9><9>\None\ ;									      ;
P.ACP:	.LONG   17694748			     ;									      ;
	.ADDRESS P.ACQ				     ;									      ;
P.ACS:	.ASCII  \ Line used\<9><9><9>\!AS\	     ;									      ;
P.ACR:	.LONG   17694736			     ;									      ;
	.ADDRESS P.ACS				     ;									      ;
P.ACU:	.ASCII  \ Local echo\<9><9><9>\!AS\<0><0><0> ;									      ;
P.ACT:	.LONG   17694737			     ;									      ;
	.ADDRESS P.ACU				     ;									      ;
P.ACW:	.ASCII  \ Parity type\<9><9><9>\!AS\<0><0>   ;									      ;
P.ACV:	.LONG   17694738			     ;									      ;
	.ADDRESS P.ACW				     ;									      ;
P.ACY:	.ASCII  \Even\				     ;									      ;
P.ACX:	.LONG   17694724			     ;									      ;
	.ADDRESS P.ACY				     ;									      ;
P.ADA:	.ASCII  \Odd\<0>			     ;									      ;
P.ACZ:	.LONG   17694723			     ;									      ;
	.ADDRESS P.ADA				     ;									      ;
P.ADC:	.ASCII  \Mark\				     ;									      ;
P.ADB:	.LONG   17694724			     ;									      ;
	.ADDRESS P.ADC				     ;									      ;
P.ADE:	.ASCII  \Space\<0><0><0>		     ;									      ;
P.ADD:	.LONG   17694725			     ;									      ;
	.ADDRESS P.ADE				     ;									      ;
P.ADG:	.ASCII  \None\				     ;									      ;
P.ADF:	.LONG   17694724			     ;									      ;
	.ADDRESS P.ADG				     ;									      ;
P.ADI:	.ASCII  \ Retry maximums\<0>		     ;									      ;
P.ADH:	.LONG   17694735			     ;									      ;
	.ADDRESS P.ADI				     ;									      ;
P.ADK:	.ASCII  \  Initial connection\<9><9>\!ZL (dec)\<0>
						     ;									      ;
P.ADJ:	.LONG   17694751			     ;									      ;
	.ADDRESS P.ADK				     ;									      ;
P.ADM:	.ASCII  \  Sending a packet\<9><9>\!ZL (dec)\<0><0><0>
						     ;									      ;
P.ADL:	.LONG   17694749			     ;									      ;
	.ADDRESS P.ADM				     ;									      ;
P.ADO:	.ASCII  \ Receive parameters\<0>	     ;									      ;
P.ADN:	.LONG   17694739			     ;									      ;
	.ADDRESS P.ADO				     ;									      ;
P.ADQ:	.ASCII  \ Send parameters\		     ;									      ;
P.ADP:	.LONG   17694736			     ;									      ;
	.ADDRESS P.ADQ				     ;									      ;
P.ADS:	.ASCII  \  Packet length\<9><9><9>\!ZL (dec)\<0>
						     ;									      ;
P.ADR:	.LONG   17694747			     ;									      ;
	.ADDRESS P.ADS				     ;									      ;
P.ADU:	.ASCII  \  Padding length\<9><9>\!ZL (dec)\<0>
						     ;									      ;
P.ADT:	.LONG   17694747			     ;									      ;
	.ADDRESS P.ADU				     ;									      ;
P.ADW:	.ASCII  \  Padding character\<9><9>\!3OL (octal)\<0><0><0>
						     ;									      ;
P.ADV:	.LONG   17694753			     ;									      ;
	.ADDRESS P.ADW				     ;									      ;
P.ADY:	.ASCII  \  Time out\<9><9><9>\!ZL (sec)\<0><0>
						     ;									      ;
P.ADX:	.LONG   17694742			     ;									      ;
	.ADDRESS P.ADY				     ;									      ;
P.AEA:	.ASCII  \  End of line character\<9><9>\!3OL (octal)\<0><0><0>
						     ;									      ;
P.ADZ:	.LONG   17694757			     ;									      ;
	.ADDRESS P.AEA				     ;									      ;
P.AEC:	.ASCII  \  Quoting character\<9><9>\!3OL (octal)\<0><0><0>
						     ;									      ;
P.AEB:	.LONG   17694753			     ;									      ;
	.ADDRESS P.AEC				     ;									      ;
P.AEE:	.ASCII  \  Start of packet\<9><9>\!3OL (octal)\<0>
						     ;									      ;
P.AED:	.LONG   17694751			     ;									      ;
	.ADDRESS P.AEE				     ;									      ;
P.AEG:	.ASCII  \  8-bit quoting character\<9>\!3OL (octal)\<0><0>
						     ;									      ;
P.AEF:	.LONG   17694758			     ;									      ;
	.ADDRESS P.AEG				     ;									      ;
P.AEI:	.ASCII  \ Repeat quoting character\<9>\!3OL (octal)\<0><0>
						     ;									      ;
P.AEH:	.LONG   17694758			     ;									      ;
	.ADDRESS P.AEI				     ;									      ;

OFF_TEXT=	    P.AAV
ON_TEXT=	    P.AAX
SHOW_ABT_MSG=	    P.AAZ
ABT_DISCARD=	    P.ABB
ABT_KEEP=	    P.ABD
SHOW_CHK_MSG=	    P.ABF
CHK_1CHAR_MSG=	    P.ABH
CHK_2CHAR_MSG=	    P.ABJ
CHK_CRC_MSG=	    P.ABL
SHOW_DEB_MSG=	    P.ABN
SHOW_DEL_MSG=	    P.ABP
SHOW_SRV_MSG=	    P.ABR
SHOW_ESC_MSG=	    P.ABT
SHOW_FTP_MSG=	    P.ABV
FTP_ASCII=	    P.ABX
FTP_BINARY=	    P.ABZ
FTP_BLOCK=	    P.ACB
FTP_FIXED=	    P.ACD
SHOW_FNM_MSG=	    P.ACF
FNM_MSG_FULL=	    P.ACH
FNM_MSG_NORMAL=     P.ACJ
FNM_MSG_UNTRAN=     P.ACL
SHOW_HAN_MSG=	    P.ACN
SHOW_HAN_MSG_NONE=  P.ACP
SHOW_LIN_MSG=	    P.ACR
SHOW_ECH_MSG=	    P.ACT
SHOW_PAR_MSG=	    P.ACV
PAR_EVEN=	    P.ACX
PAR_ODD=	    P.ACZ
PAR_MARK=	    P.ADB
PAR_SPACE=	    P.ADD
PAR_NONE=	    P.ADF
SHOW_RTY_HDR=	    P.ADH
SHOW_RTY_INI_MSG=   P.ADJ
SHOW_RTY_PKT_MSG=   P.ADL
SHOW_REC_HDR=	    P.ADN
SHOW_SND_HDR=	    P.ADP
SHOW_PKT_MSG=	    P.ADR
SHOW_PAD_MSG=	    P.ADT
SHOW_PDC_MSG=	    P.ADV
SHOW_TIM_MSG=	    P.ADX
SHOW_EOL_MSG=	    P.ADZ
SHOW_QUO_MSG=	    P.AEB
SHOW_SOH_MSG=	    P.AED
SHOW_8QU_MSG=	    P.AEF
SHOW_RPT_MSG=	    P.AEH


	.PSECT  $CODE$,NOWRT,2

OUTPUT_TRUE_FALSE:
	.WORD   ^M<R2>				     ;Save R2								      ; 3031
	MOVAB   W^U.51, R2			     ;U.51, R2								      ;
	MOVL    #17694800, (R2)			     ;#17694800, OUTPUT_DESC						      ; 3041
	MOVAB   -80(R2), 4(R2)			     ;OUTPUT_LINE, OUTPUT_DESC+4					      ;
	MOVL    @8(AP), R1			     ;@FLAG_ADDR, R1							      ; 3047
	CMPL    R1, #1				     ;R1, #1								      ;
	BNEQ    1$				     ;1$								      ;
	MOVAB   W^ON_TEXT, R0			     ;ON_TEXT, R0							      ;
	BRB     2$				     ;2$								      ;
1$:	TSTL    R1				     ;R1								      ;
	BNEQ    3$				     ;3$								      ;
	MOVAB   W^OFF_TEXT, R0			     ;OFF_TEXT, R0							      ;
2$:	PUSHL   R0				     ;R0								      ;
	BRB     4$				     ;4$								      ;
3$:	MNEGL   #1, -(SP)			     ;#1, -(SP)								      ;
4$:	PUSHL   R2				     ;R2								      ;
	PUSHAB  8(R2)				     ;OUTPUT_SIZE							      ;
	PUSHL   4(AP)				     ;MSG_ADDR								      ;
	CALLS   #4, G^SYS$FAO			     ;#4, SYS$FAO							      ;
	MOVW    8(R2), (R2)			     ;OUTPUT_SIZE, OUTPUT_DESC						      ; 3048
	PUSHL   R2				     ;R2								      ; 3049
	CALLS   #1, G^LIB$PUT_OUTPUT		     ;#1, LIB$PUT_OUTPUT						      ;
	RET     				     ;									      ; 3050

; Routine Size:  80 bytes,    Routine Base:  $CODE$ + 0751


;   3051  2	
;   3052  2	    SELECT .SHOW_TYPE OF
;   3053  2		SET
;   3054  2	!
;   3055  2	![012] Show version
;   3056  2	!
;   3057  2	
;   3058  2		[SHOW_ALL, SHOW_VER] :
;   3059  2		    STATUS = LIB$PUT_OUTPUT (IDENT_STRING);	! Type our name and version
;   3060  2	
;   3061  2		[SHOW_ALL, SHOW_CHK, SHOW_PAC] :
;   3062  3		    BEGIN
;   3063  3		    INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH);
; P 3064  3		    $FAO (SHOW_CHK_MSG, OUTPUT_SIZE, OUTPUT_DESC,
; P 3065  3			(SELECTONE .CHKTYPE OF
; P 3066  3			    SET
; P 3067  3			    [CHK_1CHAR] : CHK_1CHAR_MSG;
; P 3068  3			    [CHK_2CHAR] : CHK_2CHAR_MSG;
; P 3069  3			    [CHK_CRC] : CHK_CRC_MSG;
;   3070  3			    TES));
;   3071  3		    OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE;
;   3072  3		    STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC);
;   3073  2		    END;
;   3074  2	
;   3075  2		[SHOW_ALL, SHOW_DEB] :
;   3076  2		    OUTPUT_TRUE_FALSE (SHOW_DEB_MSG, DEBUG_FLAG);
;   3077  2	
;   3078  2		[SHOW_ALL, SHOW_DEL, SHOW_COM, SHOW_TIM] :
;   3079  2		    OUTPUT_LONG_WORD (SHOW_DEL_MSG, .DELAY);
;   3080  2	
;   3081  2		[SHOW_ALL, SHOW_TIM] :
;   3082  2		    OUTPUT_LONG_WORD (SHOW_SRV_MSG, .SRV_TIMEOUT);
;   3083  2	
;   3084  2		[SHOW_ALL, SHOW_ESC, SHOW_COM] :
;   3085  2		    OUTPUT_LONG_WORD (SHOW_ESC_MSG, .ESCAPE_CHR);
;   3086  2	
;   3087  2		[SHOW_ALL, SHOW_FIL] : 			![026]
;   3088  3		    BEGIN
;   3089  3		    INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH);
; P 3090  3		    $FAO (SHOW_FTP_MSG, OUTPUT_SIZE, OUTPUT_DESC,
; P 3091  3			(SELECTONE .FILE_TYPE OF
; P 3092  3			    SET
; P 3093  3			    [FILE_ASC] : FTP_ASCII;
; P 3094  3			    [FILE_BIN] : FTP_BINARY;
; P 3095  3			    [FILE_BLK] : FTP_BLOCK;
; P 3096  3			    [FILE_FIX] : FTP_FIXED;
;   3097  3			    TES));
;   3098  3		    OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE;
;   3099  3		    STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC);
;   3100  3	![026]
;   3101  3	![026] Display the file name format
;   3102  3	![026]
;   3103  3		    INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH);
; P 3104  3		    $FAO (SHOW_FNM_MSG, OUTPUT_SIZE, OUTPUT_DESC,
; P 3105  3			(SELECTONE .FIL_NORMAL_FORM OF
; P 3106  3			    SET
; P 3107  3			    [FNM_FULL] : FNM_MSG_FULL;
; P 3108  3			    [FNM_NORMAL] : FNM_MSG_NORMAL;
; P 3109  3			    [FNM_UNTRAN] : FNM_MSG_UNTRAN;
;   3110  3			    TES));
;   3111  3		    OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE;
;   3112  3		    STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC);
;   3113  2		    END;
;   3114  2	
;   3115  2		[SHOW_ALL, SHOW_COM] :
;   3116  2		    IF .IBM_CHAR GEQ 0
;   3117  2		    THEN
;   3118  2			OUTPUT_LONG_WORD (SHOW_HAN_MSG, .IBM_CHAR)
;   3119  2		    ELSE
;   3120  2			STATUS = LIB$PUT_OUTPUT (SHOW_HAN_MSG_NONE);
;   3121  2	
;   3122  2		[SHOW_ALL, SHOW_ABT, SHOW_FIL] :
;   3123  3		    BEGIN
;   3124  3		    INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH);
;   3125  3		    $FAO (SHOW_ABT_MSG, OUTPUT_SIZE, OUTPUT_DESC, (IF .ABT_FLAG THEN ABT_DISCARD ELSE ABT_KEEP));
;   3126  3		    OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE;
;   3127  3		    STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC);
;   3128  2		    END;
;   3129  2	
;   3130  2		[SHOW_ALL, SHOW_LIN, SHOW_COM] :
;   3131  3		    BEGIN
;   3132  3		    INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH);
;   3133  3	
;   3134  3		    IF .TERM_DESC [DSC$W_LENGTH] GTR 0
;   3135  3		    THEN
;   3136  4			$FAO (SHOW_LIN_MSG, OUTPUT_SIZE, OUTPUT_DESC, TERM_DESC)
;   3137  3		    ELSE
;   3138  3			$FAO (SHOW_LIN_MSG, OUTPUT_SIZE, OUTPUT_DESC, %ASCID'none');
;   3139  3	
;   3140  3		    OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE;
;   3141  3		    STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC);
;   3142  2		    END;
;   3143  2	
;   3144  2		[SHOW_ALL, SHOW_ECH, SHOW_COM] :
;   3145  2		    OUTPUT_TRUE_FALSE (SHOW_ECH_MSG, ECHO_FLAG);
;   3146  2	
;   3147  2		[SHOW_ALL, SHOW_PAR, SHOW_COM] :
;   3148  3		    BEGIN
;   3149  3		    INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH);
; P 3150  3		    $FAO (SHOW_PAR_MSG, OUTPUT_SIZE, OUTPUT_DESC,
; P 3151  3			(SELECTONE .PARITY_TYPE OF
; P 3152  3			    SET
; P 3153  3			    [PR_EVEN] : PAR_EVEN;
; P 3154  3			    [PR_ODD] : PAR_ODD;
; P 3155  3			    [PR_NONE] : PAR_NONE;
; P 3156  3			    [PR_MARK] : PAR_MARK;
; P 3157  3			    [PR_SPACE] : PAR_SPACE;
;   3158  3			    TES));
;   3159  3		    OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE;
;   3160  3		    STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC);
;   3161  2		    END;
;   3162  2	
;   3163  2		[SHOW_ALL, SHOW_RTY, SHOW_PAC] :
;   3164  3		    BEGIN
;   3165  3		    STATUS = LIB$PUT_OUTPUT (SHOW_RTY_HDR);
;   3166  3		    OUTPUT_LONG_WORD (SHOW_RTY_INI_MSG, .SI_RETRIES);
;   3167  3		    OUTPUT_LONG_WORD (SHOW_RTY_PKT_MSG, .PKT_RETRIES);
;   3168  2		    END;
;   3169  2	
;   3170  2		[SHOW_ALL, SHOW_SEN, SHOW_PAC] :
;   3171  3		    BEGIN
;   3172  3		    STATUS = LIB$PUT_OUTPUT (SHOW_SND_HDR);
;   3173  3		    OUTPUT_LONG_WORD (SHOW_PKT_MSG, ABS (.SND_PKT_SIZE));
;   3174  3		    OUTPUT_LONG_WORD (SHOW_PAD_MSG, ABS (.SND_NPAD));
;   3175  3		    OUTPUT_LONG_WORD (SHOW_PDC_MSG, ABS (.SND_PADCHAR));
;   3176  3		    OUTPUT_LONG_WORD (SHOW_TIM_MSG, ABS (.SND_TIMEOUT));
;   3177  3		    OUTPUT_LONG_WORD (SHOW_EOL_MSG, ABS (.SND_EOL));
;   3178  3		    OUTPUT_LONG_WORD (SHOW_QUO_MSG, ABS (.SND_QUOTE_CHR));
;   3179  3		    OUTPUT_LONG_WORD (SHOW_SOH_MSG, ABS (.SND_SOH));
;   3180  2		    END;
;   3181  2	
;   3182  2		[SHOW_ALL, SHOW_REC, SHOW_PAC] :
;   3183  3		    BEGIN
;   3184  3		    STATUS = LIB$PUT_OUTPUT (SHOW_REC_HDR);
;   3185  3		    OUTPUT_LONG_WORD (SHOW_PKT_MSG, .RCV_PKT_SIZE);
;   3186  3		    OUTPUT_LONG_WORD (SHOW_PAD_MSG, .RCV_NPAD);
;   3187  3		    OUTPUT_LONG_WORD (SHOW_PDC_MSG, .RCV_PADCHAR);
;   3188  3		    OUTPUT_LONG_WORD (SHOW_TIM_MSG, .RCV_TIMEOUT);
;   3189  3		    OUTPUT_LONG_WORD (SHOW_EOL_MSG, .RCV_EOL);
;   3190  3		    OUTPUT_LONG_WORD (SHOW_QUO_MSG, .RCV_QUOTE_CHR);
;   3191  3		    OUTPUT_LONG_WORD (SHOW_8QU_MSG, .RCV_8QUOTE_CHR);
;   3192  3		    OUTPUT_LONG_WORD (SHOW_SOH_MSG, .RCV_SOH);
;   3193  2		    END;
;   3194  2	
;   3195  2		[SHOW_ALL, SHOW_PAC] :
;   3196  3		    BEGIN
;   3197  3		    OUTPUT_LONG_WORD (SHOW_RPT_MSG, .SET_REPT_CHR);
;   3198  2		    END;
;   3199  2		TES;
;   3200  2	
;   3201  1	    END;					! End of COMND_SHOW



	.PSECT  $PLIT$,NOWRT,NOEXE,2

P.AEK:	.ASCII  \none\				     ;									      ;
P.AEJ:	.LONG   17694724			     ;									      ;
	.ADDRESS P.AEK				     ;									      ;



	.PSECT  $CODE$,NOWRT,2

;COMND_SHOW
U.7:	.WORD   ^M<R2,R3,R4,R5,R6,R7,R8>	     ;Save R2,R3,R4,R5,R6,R7,R8						      ; 2897
	MOVAB   G^SYS$FAO, R8			     ;SYS$FAO, R8							      ;
	MOVAB   G^LIB$PUT_OUTPUT, R7		     ;LIB$PUT_OUTPUT, R7						      ;
	MOVAB   W^OUTPUT_LONG_WORD, R6		     ;OUTPUT_LONG_WORD, R6						      ;
	MOVAB   W^U.51, R5			     ;U.51, R5								      ;
	MOVAB   W^SHOW_PKT_MSG, R4		     ;SHOW_PKT_MSG, R4							      ;
	MOVL    -92(R5), R2			     ;SHOW_TYPE, R2							      ; 3052
	CMPL    R2, #1				     ;R2, #1								      ; 3058
	BEQL    1$				     ;1$								      ;
	CMPL    R2, #17				     ;R2, #17								      ;
	BNEQ    2$				     ;2$								      ;
1$:	PUSHAB  -1356(R4)			     ;IDENT_STRING							      ; 3059
	CALLS   #1, (R7)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVW    R0, R3				     ;R0, STATUS							      ;
2$:	CMPL    R2, #1				     ;R2, #1								      ; 3061
	BEQL    3$				     ;3$								      ;
	CMPL    R2, #12				     ;R2, #12								      ;
	BEQL    3$				     ;3$								      ;
	CMPL    R2, #15				     ;R2, #15								      ;
	BNEQ    9$				     ;9$								      ;
3$:	MOVL    #17694800, (R5)			     ;#17694800, OUTPUT_DESC						      ; 3063
	MOVAB   -80(R5), 4(R5)			     ;OUTPUT_LINE, OUTPUT_DESC+4					      ;
	MOVL    W^CHKTYPE, R0			     ;CHKTYPE, R0							      ; 3070
	CMPL    R0, #49				     ;R0, #49								      ;
	BNEQ    4$				     ;4$								      ;
	MOVAB   -852(R4), R1			     ;CHK_1CHAR_MSG, R1							      ;
	BRB     5$				     ;5$								      ;
4$:	CMPL    R0, #50				     ;R0, #50								      ;
	BNEQ    6$				     ;6$								      ;
	MOVAB   -820(R4), R1			     ;CHK_2CHAR_MSG, R1							      ;
5$:	PUSHL   R1				     ;R1								      ;
	BRB     8$				     ;8$								      ;
6$:	CMPL    R0, #51				     ;R0, #51								      ;
	BNEQ    7$				     ;7$								      ;
	MOVAB   -784(R4), R0			     ;CHK_CRC_MSG, R0							      ;
	PUSHL   R0				     ;R0								      ;
	BRB     8$				     ;8$								      ;
7$:	MNEGL   #1, -(SP)			     ;#1, -(SP)								      ;
8$:	PUSHL   R5				     ;R5								      ;
	PUSHAB  8(R5)				     ;OUTPUT_SIZE							      ;
	PUSHAB  -884(R4)			     ;SHOW_CHK_MSG							      ;
	CALLS   #4, (R8)			     ;#4, SYS$FAO							      ;
	MOVW    8(R5), (R5)			     ;OUTPUT_SIZE, OUTPUT_DESC						      ; 3071
	PUSHL   R5				     ;R5								      ; 3072
	CALLS   #1, (R7)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVW    R0, R3				     ;R0, STATUS							      ;
9$:	TSTL    R2				     ;R2								      ; 3075
	BLEQ    10$				     ;10$								      ;
	CMPL    R2, #2				     ;R2, #2								      ;
	BGTR    10$				     ;10$								      ;
	PUSHAB  W^DEBUG_FLAG			     ;DEBUG_FLAG							      ; 3076
	PUSHAB  -760(R4)			     ;SHOW_DEB_MSG							      ;
	CALLS   #2, 306(R6)			     ;#2, OUTPUT_TRUE_FALSE						      ;
10$:	CMPL    R2, #1				     ;R2, #1								      ; 3078
	BEQL    11$				     ;11$								      ;
	CMPL    R2, #3				     ;R2, #3								      ;
	BEQL    11$				     ;11$								      ;
	CMPL    R2, #5				     ;R2, #5								      ;
	BEQL    11$				     ;11$								      ;
	CMPL    R2, #16				     ;R2, #16								      ;
	BNEQ    12$				     ;12$								      ;
11$:	PUSHL   W^DELAY				     ;DELAY								      ; 3079
	PUSHAB  -732(R4)			     ;SHOW_DEL_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
12$:	CMPL    R2, #1				     ;R2, #1								      ; 3081
	BEQL    13$				     ;13$								      ;
	CMPL    R2, #5				     ;R2, #5								      ;
	BNEQ    14$				     ;14$								      ;
13$:	PUSHL   W^SRV_TIMEOUT			     ;SRV_TIMEOUT							      ; 3082
	PUSHAB  -660(R4)			     ;SHOW_SRV_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
14$:	CMPL    R2, #1				     ;R2, #1								      ; 3084
	BEQL    15$				     ;15$								      ;
	CMPL    R2, #4				     ;R2, #4								      ;
	BEQL    15$				     ;15$								      ;
	CMPL    R2, #16				     ;R2, #16								      ;
	BNEQ    16$				     ;16$								      ;
15$:	PUSHL   W^ESCAPE_CHR			     ;ESCAPE_CHR							      ; 3085
	PUSHAB  -620(R4)			     ;SHOW_ESC_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
16$:	CMPL    R2, #1				     ;R2, #1								      ; 3087
	BEQL    17$				     ;17$								      ;
	CMPL    R2, #14				     ;R2, #14								      ;
	BEQL    17$				     ;17$								      ;
	BRW     29$				     ;29$								      ;
17$:	MOVL    #17694800, (R5)			     ;#17694800, OUTPUT_DESC						      ; 3089
	MOVAB   -80(R5), 4(R5)			     ;OUTPUT_LINE, OUTPUT_DESC+4					      ;
	MOVL    W^FILE_TYPE, R0			     ;FILE_TYPE, R0							      ; 3097
	CMPL    R0, #1				     ;R0, #1								      ;
	BNEQ    18$				     ;18$								      ;
	MOVAB   -580(R4), R1			     ;FTP_ASCII, R1							      ;
	BRB     20$				     ;20$								      ;
18$:	CMPL    R0, #2				     ;R0, #2								      ;
	BNEQ    19$				     ;19$								      ;
	MOVAB   -564(R4), R1			     ;FTP_BINARY, R1							      ;
	BRB     20$				     ;20$								      ;
19$:	CMPL    R0, #3				     ;R0, #3								      ;
	BNEQ    21$				     ;21$								      ;
	MOVAB   -548(R4), R1			     ;FTP_BLOCK, R1							      ;
20$:	PUSHL   R1				     ;R1								      ;
	BRB     23$				     ;23$								      ;
21$:	CMPL    R0, #4				     ;R0, #4								      ;
	BNEQ    22$				     ;22$								      ;
	MOVAB   -516(R4), R0			     ;FTP_FIXED, R0							      ;
	PUSHL   R0				     ;R0								      ;
	BRB     23$				     ;23$								      ;
22$:	MNEGL   #1, -(SP)			     ;#1, -(SP)								      ;
23$:	PUSHL   R5				     ;R5								      ;
	PUSHAB  8(R5)				     ;OUTPUT_SIZE							      ;
	PUSHAB  -596(R4)			     ;SHOW_FTP_MSG							      ;
	CALLS   #4, (R8)			     ;#4, SYS$FAO							      ;
	MOVW    8(R5), (R5)			     ;OUTPUT_SIZE, OUTPUT_DESC						      ; 3098
	PUSHL   R5				     ;R5								      ; 3099
	CALLS   #1, (R7)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVW    R0, R3				     ;R0, STATUS							      ;
	MOVL    #17694800, (R5)			     ;#17694800, OUTPUT_DESC						      ; 3103
	MOVAB   -80(R5), 4(R5)			     ;OUTPUT_LINE, OUTPUT_DESC+4					      ;
	MOVL    W^FIL_NORMAL_FORM, R0		     ;FIL_NORMAL_FORM, R0						      ; 3110
	CMPL    R0, #2				     ;R0, #2								      ;
	BNEQ    24$				     ;24$								      ;
	MOVAB   -456(R4), R1			     ;FNM_MSG_FULL, R1							      ;
	BRB     25$				     ;25$								      ;
24$:	CMPL    R0, #1				     ;R0, #1								      ;
	BNEQ    26$				     ;26$								      ;
	MOVAB   -436(R4), R1			     ;FNM_MSG_NORMAL, R1						      ;
25$:	PUSHL   R1				     ;R1								      ;
	BRB     28$				     ;28$								      ;
26$:	CMPL    R0, #4				     ;R0, #4								      ;
	BNEQ    27$				     ;27$								      ;
	MOVAB   -416(R4), R0			     ;FNM_MSG_UNTRAN, R0						      ;
	PUSHL   R0				     ;R0								      ;
	BRB     28$				     ;28$								      ;
27$:	MNEGL   #1, -(SP)			     ;#1, -(SP)								      ;
28$:	PUSHL   R5				     ;R5								      ;
	PUSHAB  8(R5)				     ;OUTPUT_SIZE							      ;
	PUSHAB  -488(R4)			     ;SHOW_FNM_MSG							      ;
	CALLS   #4, (R8)			     ;#4, SYS$FAO							      ;
	MOVW    8(R5), (R5)			     ;OUTPUT_SIZE, OUTPUT_DESC						      ; 3111
	PUSHL   R5				     ;R5								      ; 3112
	CALLS   #1, (R7)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVW    R0, R3				     ;R0, STATUS							      ;
29$:	CMPL    R2, #1				     ;R2, #1								      ; 3115
	BEQL    30$				     ;30$								      ;
	CMPL    R2, #16				     ;R2, #16								      ;
	BNEQ    32$				     ;32$								      ;
30$:	MOVL    W^IBM_CHAR, R0			     ;IBM_CHAR, R0							      ; 3116
	BLSS    31$				     ;31$								      ;
	PUSHL   R0				     ;R0								      ; 3118
	PUSHAB  -372(R4)			     ;SHOW_HAN_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	BRB     32$				     ;32$								      ;
31$:	PUSHAB  -336(R4)			     ;SHOW_HAN_MSG_NONE							      ; 3120
	CALLS   #1, (R7)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVW    R0, R3				     ;R0, STATUS							      ;
32$:	CMPL    R2, #1				     ;R2, #1								      ; 3122
	BEQL    33$				     ;33$								      ;
	CMPL    R2, #13				     ;R2, #13								      ;
	BLSS    36$				     ;36$								      ;
	CMPL    R2, #14				     ;R2, #14								      ;
	BGTR    36$				     ;36$								      ;
33$:	MOVL    #17694800, (R5)			     ;#17694800, OUTPUT_DESC						      ; 3124
	MOVAB   -80(R5), 4(R5)			     ;OUTPUT_LINE, OUTPUT_DESC+4					      ;
	BLBC    W^ABT_FLAG, 34$			     ;ABT_FLAG, 34$							      ; 3125
	MOVAB   -928(R4), R0			     ;ABT_DISCARD, R0							      ;
	BRB     35$				     ;35$								      ;
34$:	MOVAB   -916(R4), R0			     ;ABT_KEEP, R0							      ;
35$:	PUSHL   R0				     ;R0								      ;
	PUSHL   R5				     ;R5								      ;
	PUSHAB  8(R5)				     ;OUTPUT_SIZE							      ;
	PUSHAB  -944(R4)			     ;SHOW_ABT_MSG							      ;
	CALLS   #4, (R8)			     ;#4, SYS$FAO							      ;
	MOVW    8(R5), (R5)			     ;OUTPUT_SIZE, OUTPUT_DESC						      ; 3126
	PUSHL   R5				     ;R5								      ; 3127
	CALLS   #1, (R7)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVW    R0, R3				     ;R0, STATUS							      ;
36$:	CMPL    R2, #1				     ;R2, #1								      ; 3130
	BEQL    37$				     ;37$								      ;
	CMPL    R2, #6				     ;R2, #6								      ;
	BEQL    37$				     ;37$								      ;
	CMPL    R2, #16				     ;R2, #16								      ;
	BNEQ    40$				     ;40$								      ;
37$:	MOVL    #17694800, (R5)			     ;#17694800, OUTPUT_DESC						      ; 3132
	MOVAB   -80(R5), 4(R5)			     ;OUTPUT_LINE, OUTPUT_DESC+4					      ;
	TSTW    W^TERM_DESC			     ;TERM_DESC								      ; 3134
	BEQL    38$				     ;38$								      ;
	PUSHAB  W^TERM_DESC			     ;TERM_DESC								      ; 3136
	BRB     39$				     ;39$								      ;
38$:	PUSHAB  352(R4)				     ;P.AEJ								      ; 3138
39$:	PUSHL   R5				     ;R5								      ;
	PUSHAB  8(R5)				     ;OUTPUT_SIZE							      ;
	PUSHAB  -312(R4)			     ;SHOW_LIN_MSG							      ;
	CALLS   #4, (R8)			     ;#4, SYS$FAO							      ;
	MOVW    8(R5), (R5)			     ;OUTPUT_SIZE, OUTPUT_DESC						      ; 3140
	PUSHL   R5				     ;R5								      ; 3141
	CALLS   #1, (R7)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVW    R0, R3				     ;R0, STATUS							      ;
40$:	CMPL    R2, #1				     ;R2, #1								      ; 3144
	BEQL    41$				     ;41$								      ;
	CMPL    R2, #7				     ;R2, #7								      ;
	BEQL    41$				     ;41$								      ;
	CMPL    R2, #16				     ;R2, #16								      ;
	BNEQ    42$				     ;42$								      ;
41$:	PUSHAB  W^ECHO_FLAG			     ;ECHO_FLAG								      ; 3145
	PUSHAB  -284(R4)			     ;SHOW_ECH_MSG							      ;
	CALLS   #2, 306(R6)			     ;#2, OUTPUT_TRUE_FALSE						      ;
42$:	CMPL    R2, #1				     ;R2, #1								      ; 3147
	BEQL    43$				     ;43$								      ;
	CMPL    R2, #10				     ;R2, #10								      ;
	BEQL    43$				     ;43$								      ;
	CMPL    R2, #16				     ;R2, #16								      ;
	BNEQ    51$				     ;51$								      ;
43$:	MOVL    #17694800, (R5)			     ;#17694800, OUTPUT_DESC						      ; 3149
	MOVAB   -80(R5), 4(R5)			     ;OUTPUT_LINE, OUTPUT_DESC+4					      ;
	MOVL    W^PARITY_TYPE, R0		     ;PARITY_TYPE, R0							      ; 3158
	CMPL    R0, #2				     ;R0, #2								      ;
	BNEQ    44$				     ;44$								      ;
	MOVAB   -244(R4), R1			     ;PAR_EVEN, R1							      ;
	BRB     47$				     ;47$								      ;
44$:	CMPL    R0, #3				     ;R0, #3								      ;
	BNEQ    45$				     ;45$								      ;
	MOVAB   -232(R4), R1			     ;PAR_ODD, R1							      ;
	BRB     47$				     ;47$								      ;
45$:	TSTL    R0				     ;R0								      ;
	BNEQ    46$				     ;46$								      ;
	MOVAB   -192(R4), R1			     ;PAR_NONE, R1							      ;
	BRB     47$				     ;47$								      ;
46$:	CMPL    R0, #1				     ;R0, #1								      ;
	BNEQ    48$				     ;48$								      ;
	MOVAB   -220(R4), R1			     ;PAR_MARK, R1							      ;
47$:	PUSHL   R1				     ;R1								      ;
	BRB     50$				     ;50$								      ;
48$:	CMPL    R0, #4				     ;R0, #4								      ;
	BNEQ    49$				     ;49$								      ;
	MOVAB   -204(R4), R0			     ;PAR_SPACE, R0							      ;
	PUSHL   R0				     ;R0								      ;
	BRB     50$				     ;50$								      ;
49$:	MNEGL   #1, -(SP)			     ;#1, -(SP)								      ;
50$:	PUSHL   R5				     ;R5								      ;
	PUSHAB  8(R5)				     ;OUTPUT_SIZE							      ;
	PUSHAB  -256(R4)			     ;SHOW_PAR_MSG							      ;
	CALLS   #4, (R8)			     ;#4, SYS$FAO							      ;
	MOVW    8(R5), (R5)			     ;OUTPUT_SIZE, OUTPUT_DESC						      ; 3159
	PUSHL   R5				     ;R5								      ; 3160
	CALLS   #1, (R7)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVW    R0, R3				     ;R0, STATUS							      ;
51$:	CMPL    R2, #1				     ;R2, #1								      ; 3163
	BEQL    52$				     ;52$								      ;
	CMPL    R2, #11				     ;R2, #11								      ;
	BEQL    52$				     ;52$								      ;
	CMPL    R2, #15				     ;R2, #15								      ;
	BNEQ    53$				     ;53$								      ;
52$:	PUSHAB  -168(R4)			     ;SHOW_RTY_HDR							      ; 3165
	CALLS   #1, (R7)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVW    R0, R3				     ;R0, STATUS							      ;
	PUSHL   W^SI_RETRIES			     ;SI_RETRIES							      ; 3166
	PUSHAB  -128(R4)			     ;SHOW_RTY_INI_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^PKT_RETRIES			     ;PKT_RETRIES							      ; 3167
	PUSHAB  -88(R4)				     ;SHOW_RTY_PKT_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
53$:	CMPL    R2, #1				     ;R2, #1								      ; 3170
	BEQL    54$				     ;54$								      ;
	CMPL    R2, #8				     ;R2, #8								      ;
	BEQL    54$				     ;54$								      ;
	CMPL    R2, #15				     ;R2, #15								      ;
	BNEQ    62$				     ;62$								      ;
54$:	PUSHAB  -36(R4)				     ;SHOW_SND_HDR							      ; 3172
	CALLS   #1, (R7)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVW    R0, R3				     ;R0, STATUS							      ;
	PUSHL   W^SND_PKT_SIZE			     ;SND_PKT_SIZE							      ; 3173
	BGEQ    55$				     ;55$								      ;
	MNEGL   (SP), (SP)			     ;(SP), (SP)							      ;
55$:	PUSHL   R4				     ;R4								      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^SND_NPAD			     ;SND_NPAD								      ; 3174
	BGEQ    56$				     ;56$								      ;
	MNEGL   (SP), (SP)			     ;(SP), (SP)							      ;
56$:	PUSHAB  36(R4)				     ;SHOW_PAD_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^SND_PADCHAR			     ;SND_PADCHAR							      ; 3175
	BGEQ    57$				     ;57$								      ;
	MNEGL   (SP), (SP)			     ;(SP), (SP)							      ;
57$:	PUSHAB  80(R4)				     ;SHOW_PDC_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^SND_TIMEOUT			     ;SND_TIMEOUT							      ; 3176
	BGEQ    58$				     ;58$								      ;
	MNEGL   (SP), (SP)			     ;(SP), (SP)							      ;
58$:	PUSHAB  112(R4)				     ;SHOW_TIM_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^SND_EOL			     ;SND_EOL								      ; 3177
	BGEQ    59$				     ;59$								      ;
	MNEGL   (SP), (SP)			     ;(SP), (SP)							      ;
59$:	PUSHAB  160(R4)				     ;SHOW_EOL_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^SND_QUOTE_CHR			     ;SND_QUOTE_CHR							      ; 3178
	BGEQ    60$				     ;60$								      ;
	MNEGL   (SP), (SP)			     ;(SP), (SP)							      ;
60$:	PUSHAB  204(R4)				     ;SHOW_QUO_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^SND_SOH			     ;SND_SOH								      ; 3179
	BGEQ    61$				     ;61$								      ;
	MNEGL   (SP), (SP)			     ;(SP), (SP)							      ;
61$:	PUSHAB  244(R4)				     ;SHOW_SOH_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
62$:	CMPL    R2, #1				     ;R2, #1								      ; 3182
	BEQL    63$				     ;63$								      ;
	CMPL    R2, #9				     ;R2, #9								      ;
	BEQL    63$				     ;63$								      ;
	CMPL    R2, #15				     ;R2, #15								      ;
	BNEQ    64$				     ;64$								      ;
63$:	PUSHAB  -60(R4)				     ;SHOW_REC_HDR							      ; 3184
	CALLS   #1, (R7)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVW    R0, R3				     ;R0, STATUS							      ;
	PUSHL   W^RCV_PKT_SIZE			     ;RCV_PKT_SIZE							      ; 3185
	PUSHL   R4				     ;R4								      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RCV_NPAD			     ;RCV_NPAD								      ; 3186
	PUSHAB  36(R4)				     ;SHOW_PAD_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RCV_PADCHAR			     ;RCV_PADCHAR							      ; 3187
	PUSHAB  80(R4)				     ;SHOW_PDC_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RCV_TIMEOUT			     ;RCV_TIMEOUT							      ; 3188
	PUSHAB  112(R4)				     ;SHOW_TIM_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RCV_EOL			     ;RCV_EOL								      ; 3189
	PUSHAB  160(R4)				     ;SHOW_EOL_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RCV_QUOTE_CHR			     ;RCV_QUOTE_CHR							      ; 3190
	PUSHAB  204(R4)				     ;SHOW_QUO_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RCV_8QUOTE_CHR		     ;RCV_8QUOTE_CHR							      ; 3191
	PUSHAB  292(R4)				     ;SHOW_8QU_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RCV_SOH			     ;RCV_SOH								      ; 3192
	PUSHAB  244(R4)				     ;SHOW_SOH_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
64$:	CMPL    R2, #1				     ;R2, #1								      ; 3195
	BEQL    65$				     ;65$								      ;
	CMPL    R2, #15				     ;R2, #15								      ;
	BNEQ    66$				     ;66$								      ;
65$:	PUSHL   W^SET_REPT_CHR			     ;SET_REPT_CHR							      ; 3197
	PUSHAB  340(R4)				     ;SHOW_RPT_MSG							      ;
	CALLS   #2, (R6)			     ;#2, OUTPUT_LONG_WORD						      ;
66$:	RET     				     ;									      ; 3201

; Routine Size:  1077 bytes,    Routine Base:  $CODE$ + 07A1


;   3202  1	%SBTTL 'Command execution -- COMND_STATUS'
;   3203  1	ROUTINE COMND_STATUS : NOVALUE =
;   3204  1	
;   3205  1	!++
;   3206  1	! FUNCTIONAL DESCRIPTION:
;   3207  1	!
;   3208  1	!	This routine will display the status of Kermit-32.
;   3209  1	!
;   3210  1	! CALLING SEQUENCE:
;   3211  1	!
;   3212  1	!	COMND_STATUS ();
;   3213  1	!
;   3214  1	! INPUT PARAMETERS:
;   3215  1	!
;   3216  1	!	None.
;   3217  1	!
;   3218  1	! IMPLICIT INPUTS:
;   3219  1	!
;   3220  1	!	None.
;   3221  1	!
;   3222  1	! OUTPUT PARAMETERS:
;   3223  1	!
;   3224  1	!	None.
;   3225  1	!
;   3226  1	! IMPLICIT OUTPUTS:
;   3227  1	!
;   3228  1	!	None.
;   3229  1	!
;   3230  1	! COMPLETION CODES:
;   3231  1	!
;   3232  1	!	None.
;   3233  1	!
;   3234  1	! SIDE EFFECTS:
;   3235  1	!
;   3236  1	!	None.
;   3237  1	!
;   3238  1	!--
;   3239  1	
;   3240  2	    BEGIN
;   3241  2	
;   3242  2	    LOCAL
;   3243  2		STATUS,					! Status returned by system call
;   3244  2		POINTER,				! Pointer to the LAST_ERROR text
;   3245  2		CHAR_COUNT;				! Character count
;   3246  2	
;   3247  2	    BIND
;   3248  2		TEXT_CR = %ASCID'',
;   3249  2		TEXT_BAUD = %ASCID' Effective data rate	!ZL baud',
;   3250  2		TEXT_NAKS_SENT = %ASCID' NAKs received		!ZL',
;   3251  2		TEXT_NAKS_RCV = %ASCID' NAKs sent		!ZL',
;   3252  2		TEXT_PKTS_SENT = %ASCID' Packets sent		!ZL',
;   3253  2		TEXT_PKTS_RCV = %ASCID' Packets received	!ZL',
;   3254  2		TEXT_CHR_SENT = %ASCID' Characters sent	!ZL',
;   3255  2		TEXT_DATA_CHAR_SENT = %ASCID' Data characters sent	!ZL',
;   3256  2		TEXT_DATA_CHAR_RCV = %ASCID' Data characters received !ZL',
;   3257  2		TEXT_CHR_RCV = %ASCID' Characters received	!ZL',
;   3258  2		TEXT_TOTAL_HDR = %ASCID'Totals since Kermit was started',
;   3259  2		TEXT_XFR_HDR = %ASCID'Totals for the last transfer';
;   3260  2	
;   3261  2	    STATUS = LIB$PUT_OUTPUT (TEXT_CR);
;   3262  2	    STATUS = LIB$PUT_OUTPUT (TEXT_XFR_HDR);
;   3263  2	    OUTPUT_LONG_WORD (TEXT_CHR_SENT, .SMSG_TOTAL_CHARS);
;   3264  2	    OUTPUT_LONG_WORD (TEXT_DATA_CHAR_SENT, .SMSG_DATA_CHARS);
;   3265  2	    OUTPUT_LONG_WORD (TEXT_NAKS_SENT, .SMSG_NAKS);
;   3266  2	    OUTPUT_LONG_WORD (TEXT_PKTS_SENT, .SMSG_COUNT);
;   3267  2	    OUTPUT_LONG_WORD (TEXT_CHR_RCV, .RMSG_TOTAL_CHARS);
;   3268  2	    OUTPUT_LONG_WORD (TEXT_DATA_CHAR_RCV, .RMSG_DATA_CHARS);
;   3269  2	    OUTPUT_LONG_WORD (TEXT_NAKS_RCV, .RMSG_NAKS);
;   3270  2	    OUTPUT_LONG_WORD (TEXT_PKTS_RCV, .RMSG_COUNT);
;   3271  2	
;   3272  2	    IF .XFR_TIME NEQ 0
;   3273  2	    THEN
;   3274  2		OUTPUT_LONG_WORD (TEXT_BAUD,
;   3275  5		    (((IF .RMSG_DATA_CHARS LEQ .SMSG_DATA_CHARS THEN .SMSG_DATA_CHARS ELSE .RMSG_DATA_CHARS)*10)/((
;   3276  2		    .XFR_TIME + 500)/1000)));
;   3277  2	
;   3278  2	    STATUS = LIB$PUT_OUTPUT (TEXT_CR);
;   3279  2	    STATUS = LIB$PUT_OUTPUT (TEXT_TOTAL_HDR);
;   3280  2	    OUTPUT_LONG_WORD (TEXT_CHR_SENT, .SND_TOTAL_CHARS);
;   3281  2	    OUTPUT_LONG_WORD (TEXT_DATA_CHAR_SENT, .SND_DATA_CHARS);
;   3282  2	    OUTPUT_LONG_WORD (TEXT_NAKS_SENT, .SND_NAKS);
;   3283  2	    OUTPUT_LONG_WORD (TEXT_PKTS_SENT, .SND_COUNT);
;   3284  2	    OUTPUT_LONG_WORD (TEXT_CHR_RCV, .RCV_TOTAL_CHARS);
;   3285  2	    OUTPUT_LONG_WORD (TEXT_DATA_CHAR_RCV, .RCV_DATA_CHARS);
;   3286  2	    OUTPUT_LONG_WORD (TEXT_NAKS_RCV, .RCV_NAKS);
;   3287  2	    OUTPUT_LONG_WORD (TEXT_PKTS_RCV, .RCV_COUNT);
;   3288  2	
;   3289  2	    IF .TOTAL_TIME NEQ 0
;   3290  2	    THEN
;   3291  2		OUTPUT_LONG_WORD (TEXT_BAUD,
;   3292  2		    (((.RCV_DATA_CHARS + .SND_DATA_CHARS)*10)/((.TOTAL_TIME + 500)/1000)));
;   3293  2	
;   3294  2	!
;   3295  2	! Output the error text if there is any
;   3296  2	!
;   3297  2	    POINTER = CH$PTR (LAST_ERROR);
;   3298  2	    CHAR_COUNT = 0;
;   3299  2	
;   3300  2	    WHILE CH$RCHAR_A (POINTER) NEQ CHR_NUL DO
;   3301  2		CHAR_COUNT = .CHAR_COUNT + 1;
;   3302  2	
;   3303  2	    IF .CHAR_COUNT NEQ 0
;   3304  2	    THEN
;   3305  3		BEGIN
;   3306  3		INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH);
;   3307  3		STATUS = $FAO (%ASCID'Last error: !AD', OUTPUT_SIZE, OUTPUT_DESC, .CHAR_COUNT, LAST_ERROR);
;   3308  3	
;   3309  3		IF NOT .STATUS
;   3310  3		THEN
;   3311  3		    LIB$SIGNAL (.STATUS)
;   3312  3		ELSE
;   3313  4		    BEGIN
;   3314  4		    OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE;
;   3315  4		    STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC);
;   3316  4	
;   3317  4		    IF NOT .STATUS THEN LIB$SIGNAL (.STATUS);
;   3318  4	
;   3319  3		    END;
;   3320  3	
;   3321  2		END;
;   3322  2	
;   3323  1	    END;					! End of SHOW_STATUS



	.PSECT  $PLIT$,NOWRT,NOEXE,2

P.AEM:	.BLKB   0				     ;									      ;
P.AEL:	.LONG   17694720			     ;									      ;
	.ADDRESS P.AEM				     ;									      ;
P.AEO:	.ASCII  \ Effective data rate\<9>\!ZL baud\<0><0><0>
						     ;									      ;
P.AEN:	.LONG   17694749			     ;									      ;
	.ADDRESS P.AEO				     ;									      ;
P.AEQ:	.ASCII  \ NAKs received\<9><9>\!ZL\<0>	     ;									      ;
P.AEP:	.LONG   17694739			     ;									      ;
	.ADDRESS P.AEQ				     ;									      ;
P.AES:	.ASCII  \ NAKs sent\<9><9>\!ZL\<0>	     ;									      ;
P.AER:	.LONG   17694735			     ;									      ;
	.ADDRESS P.AES				     ;									      ;
P.AEU:	.ASCII  \ Packets sent\<9><9>\!ZL\<0><0>     ;									      ;
P.AET:	.LONG   17694738			     ;									      ;
	.ADDRESS P.AEU				     ;									      ;
P.AEW:	.ASCII  \ Packets received\<9>\!ZL\<0><0><0> ;									      ;
P.AEV:	.LONG   17694741			     ;									      ;
	.ADDRESS P.AEW				     ;									      ;
P.AEY:	.ASCII  \ Characters sent\<9>\!ZL\	     ;									      ;
P.AEX:	.LONG   17694740			     ;									      ;
	.ADDRESS P.AEY				     ;									      ;
P.AFA:	.ASCII  \ Data characters sent\<9>\!ZL\<0><0><0>
						     ;									      ;
P.AEZ:	.LONG   17694745			     ;									      ;
	.ADDRESS P.AFA				     ;									      ;
P.AFC:	.ASCII  \ Data characters received !ZL\<0><0><0>
						     ;									      ;
P.AFB:	.LONG   17694749			     ;									      ;
	.ADDRESS P.AFC				     ;									      ;
P.AFE:	.ASCII  \ Characters received\<9>\!ZL\	     ;									      ;
P.AFD:	.LONG   17694744			     ;									      ;
	.ADDRESS P.AFE				     ;									      ;
P.AFG:	.ASCII  \Totals since Kermit was started\<0> ;									      ;
P.AFF:	.LONG   17694751			     ;									      ;
	.ADDRESS P.AFG				     ;									      ;
P.AFI:	.ASCII  \Totals for the last transfer\	     ;									      ;
P.AFH:	.LONG   17694748			     ;									      ;
	.ADDRESS P.AFI				     ;									      ;
P.AFK:	.ASCII  \Last error: !AD\<0>		     ;									      ;
P.AFJ:	.LONG   17694735			     ;									      ;
	.ADDRESS P.AFK				     ;									      ;

TEXT_CR=	    P.AEL
TEXT_BAUD=	    P.AEN
TEXT_NAKS_SENT=     P.AEP
TEXT_NAKS_RCV=	    P.AER
TEXT_PKTS_SENT=     P.AET
TEXT_PKTS_RCV=	    P.AEV
TEXT_CHR_SENT=	    P.AEX
TEXT_DATA_CHAR_SENT=P.AEZ
TEXT_DATA_CHAR_RCV= P.AFB
TEXT_CHR_RCV=	    P.AFD
TEXT_TOTAL_HDR=     P.AFF
TEXT_XFR_HDR=	    P.AFH


	.PSECT  $CODE$,NOWRT,2

;COMND_STATUS
U.8:	.WORD   ^M<R2,R3,R4,R5,R6,R7,R8,R9>	     ;Save R2,R3,R4,R5,R6,R7,R8,R9					      ; 3203
	MOVAB   W^RMSG_DATA_CHARS, R9		     ;RMSG_DATA_CHARS, R9						      ;
	MOVAB   W^SMSG_DATA_CHARS, R8		     ;SMSG_DATA_CHARS, R8						      ;
	MOVAB   W^U.51, R7			     ;U.51, R7								      ;
	MOVAB   G^LIB$PUT_OUTPUT, R6		     ;LIB$PUT_OUTPUT, R6						      ;
	MOVAB   W^OUTPUT_LONG_WORD, R5		     ;OUTPUT_LONG_WORD, R5						      ;
	MOVAB   W^TEXT_CR, R4			     ;TEXT_CR, R4							      ;
	PUSHL   R4				     ;R4								      ; 3261
	CALLS   #1, (R6)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVL    R0, R3				     ;R0, STATUS							      ;
	PUSHAB  364(R4)				     ;TEXT_XFR_HDR							      ; 3262
	CALLS   #1, (R6)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVL    R0, R3				     ;R0, STATUS							      ;
	PUSHL   W^SMSG_TOTAL_CHARS		     ;SMSG_TOTAL_CHARS							      ; 3263
	PUSHAB  180(R4)				     ;TEXT_CHR_SENT							      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   (R8)				     ;SMSG_DATA_CHARS							      ; 3264
	PUSHAB  216(R4)				     ;TEXT_DATA_CHAR_SENT						      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^SMSG_NAKS			     ;SMSG_NAKS								      ; 3265
	PUSHAB  68(R4)				     ;TEXT_NAKS_SENT							      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^SMSG_COUNT			     ;SMSG_COUNT							      ; 3266
	PUSHAB  120(R4)				     ;TEXT_PKTS_SENT							      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RMSG_TOTAL_CHARS		     ;RMSG_TOTAL_CHARS							      ; 3267
	PUSHAB  288(R4)				     ;TEXT_CHR_RCV							      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   (R9)				     ;RMSG_DATA_CHARS							      ; 3268
	PUSHAB  256(R4)				     ;TEXT_DATA_CHAR_RCV						      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RMSG_NAKS			     ;RMSG_NAKS								      ; 3269
	PUSHAB  92(R4)				     ;TEXT_NAKS_RCV							      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RMSG_COUNT			     ;RMSG_COUNT							      ; 3270
	PUSHAB  152(R4)				     ;TEXT_PKTS_RCV							      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	MOVL    W^XFR_TIME, R0			     ;XFR_TIME, R0							      ; 3272
	BEQL    3$				     ;3$								      ;
	CMPL    (R9), (R8)			     ;RMSG_DATA_CHARS, SMSG_DATA_CHARS					      ; 3275
	BGTR    1$				     ;1$								      ;
	MOVL    (R8), R1			     ;SMSG_DATA_CHARS, R1						      ;
	BRB     2$				     ;2$								      ;
1$:	MOVL    (R9), R1			     ;RMSG_DATA_CHARS, R1						      ;
2$:	MULL2   #10, R1				     ;#10, R1								      ;
	MOVAB   500(R0), R0			     ;500(R0), R0							      ;
	DIVL2   #1000, R0			     ;#1000, R0								      ; 3276
	DIVL3   R0, R1, -(SP)			     ;R0, R1, -(SP)							      ; 3275
	PUSHAB  40(R4)				     ;TEXT_BAUD								      ; 3274
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
3$:	PUSHL   R4				     ;R4								      ; 3278
	CALLS   #1, (R6)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVL    R0, R3				     ;R0, STATUS							      ;
	PUSHAB  328(R4)				     ;TEXT_TOTAL_HDR							      ; 3279
	CALLS   #1, (R6)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVL    R0, R3				     ;R0, STATUS							      ;
	PUSHL   W^SND_TOTAL_CHARS		     ;SND_TOTAL_CHARS							      ; 3280
	PUSHAB  180(R4)				     ;TEXT_CHR_SENT							      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^SND_DATA_CHARS		     ;SND_DATA_CHARS							      ; 3281
	PUSHAB  216(R4)				     ;TEXT_DATA_CHAR_SENT						      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^SND_NAKS			     ;SND_NAKS								      ; 3282
	PUSHAB  68(R4)				     ;TEXT_NAKS_SENT							      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^SND_COUNT			     ;SND_COUNT								      ; 3283
	PUSHAB  120(R4)				     ;TEXT_PKTS_SENT							      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RCV_TOTAL_CHARS		     ;RCV_TOTAL_CHARS							      ; 3284
	PUSHAB  288(R4)				     ;TEXT_CHR_RCV							      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RCV_DATA_CHARS		     ;RCV_DATA_CHARS							      ; 3285
	PUSHAB  256(R4)				     ;TEXT_DATA_CHAR_RCV						      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RCV_NAKS			     ;RCV_NAKS								      ; 3286
	PUSHAB  92(R4)				     ;TEXT_NAKS_RCV							      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	PUSHL   W^RCV_COUNT			     ;RCV_COUNT								      ; 3287
	PUSHAB  152(R4)				     ;TEXT_PKTS_RCV							      ;
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
	MOVL    W^TOTAL_TIME, R0		     ;TOTAL_TIME, R0							      ; 3289
	BEQL    4$				     ;4$								      ;
	ADDL3   W^SND_DATA_CHARS, W^RCV_DATA_CHARS, -;SND_DATA_CHARS, RCV_DATA_CHARS, R1				      ; 3292
		R1				     ;									      ;
	MULL2   #10, R1				     ;#10, R1								      ;
	MOVAB   500(R0), R0			     ;500(R0), R0							      ;
	DIVL2   #1000, R0			     ;#1000, R0								      ;
	DIVL3   R0, R1, -(SP)			     ;R0, R1, -(SP)							      ;
	PUSHAB  40(R4)				     ;TEXT_BAUD								      ; 3291
	CALLS   #2, (R5)			     ;#2, OUTPUT_LONG_WORD						      ;
4$:	MOVAB   W^LAST_ERROR, R1		     ;LAST_ERROR, POINTER						      ; 3297
	CLRL    R0				     ;CHAR_COUNT							      ; 3298
5$:	MOVZBL  (R1)+, R2			     ;(POINTER)+, R2							      ; 3300
	BEQL    6$				     ;6$								      ;
	INCL    R0				     ;CHAR_COUNT							      ; 3301
	BRB     5$				     ;5$								      ;
6$:	TSTL    R0				     ;CHAR_COUNT							      ; 3303
	BEQL    8$				     ;8$								      ;
	MOVL    #17694800, (R7)			     ;#17694800, OUTPUT_DESC						      ; 3306
	MOVAB   -80(R7), 4(R7)			     ;OUTPUT_LINE, OUTPUT_DESC+4					      ;
	PUSHAB  W^LAST_ERROR			     ;LAST_ERROR							      ; 3307
	PUSHL   R0				     ;CHAR_COUNT							      ;
	PUSHL   R7				     ;R7								      ;
	PUSHAB  8(R7)				     ;OUTPUT_SIZE							      ;
	PUSHAB  388(R4)				     ;P.AFJ								      ;
	CALLS   #5, G^SYS$FAO			     ;#5, SYS$FAO							      ;
	MOVL    R0, R3				     ;R0, STATUS							      ;
	BLBC    R3, 7$				     ;STATUS, 7$							      ; 3309
	MOVW    8(R7), (R7)			     ;OUTPUT_SIZE, OUTPUT_DESC						      ; 3314
	PUSHL   R7				     ;R7								      ; 3315
	CALLS   #1, (R6)			     ;#1, LIB$PUT_OUTPUT						      ;
	MOVL    R0, R3				     ;R0, STATUS							      ;
	BLBS    R3, 8$				     ;STATUS, 8$							      ; 3317
7$:	PUSHL   R3				     ;STATUS								      ;
	CALLS   #1, G^LIB$SIGNAL		     ;#1, LIB$SIGNAL							      ;
8$:	RET     				     ;									      ; 3323

; Routine Size:  406 bytes,    Routine Base:  $CODE$ + 0BD6


;   3324  1	%SBTTL 'GET_REM_ARGS - Get extra arguments for remote commands'
;   3325  1	ROUTINE GET_REM_ARGS (LOCAL_FLAG) =
;   3326  1	
;   3327  1	!++
;   3328  1	! FUNCTIONAL DESCRIPTION:
;   3329  1	!
;   3330  1	! This routine will get any extra arguments required for remote commands.
;   3331  1	!It will prompt the user and get the input from SYS$COMMAND:.
;   3332  1	!
;   3333  1	! CALLING SEQUENCE:
;   3334  1	!
;   3335  1	!	STATUS = GET_REM_ARGS (LOCAL_FLAG);
;   3336  1	!
;   3337  1	! INPUT PARAMETERS:
;   3338  1	!
;   3339  1	!	LOCAL_FLAG - If true, this is for a LOCAL xxx command.  Only get the
;   3340  1	!			arguments we know we need for local commands. Otherwise
;   3341  1	!			get all possible arguments.
;   3342  1	!
;   3343  1	! IMPLICIT INPUTS:
;   3344  1	!
;   3345  1	!	REM_TYPE - Type of remote command to get arguments for.
;   3346  1	!
;   3347  1	! OUPTUT PARAMETERS:
;   3348  1	!
;   3349  1	!	None.
;   3350  1	!
;   3351  1	! IMPLICIT OUTPUTS:
;   3352  1	!
;   3353  1	!	GEN_xDATA, GEN_xSIZE - Text and sizes of arguments
;   3354  1	!
;   3355  1	! COMPLETION CODES:
;   3356  1	!
;   3357  1	!	Status values from subroutines called if in error.
;   3358  1	!
;   3359  1	! SIDE EFFECTS:
;   3360  1	!
;   3361  1	!	None.
;   3362  1	!
;   3363  1	!--
;   3364  1	
;   3365  2	    BEGIN
;   3366  2	
;   3367  2	    EXTERNAL ROUTINE
;   3368  2		GET_COMMAND;				! Get line from SYS$COMMAND:
;   3369  2	
;   3370  2	    LOCAL
;   3371  2		GEN_2DESC : BLOCK [8, BYTE],		! Descriptor for second argument
;   3372  2		GEN_3DESC : BLOCK [8, BYTE],		! Descriptor for third argument
;   3373  2		STATUS;					! Random status values
;   3374  2	
;   3375  2	!
;   3376  2	! Set up descriptors for second and third arguments
;   3377  2	!
;   3378  2	    INIT_STR_DESC (GEN_2DESC, GEN_2DATA, MAX_MSG);
;   3379  2	    INIT_STR_DESC (GEN_3DESC, GEN_3DATA, MAX_MSG);
;   3380  2	
;   3381  2	    SELECTONE .REM_TYPE OF
;   3382  2		SET
;   3383  2	
;   3384  2		[GC_CONNECT] :
;   3385  2	
;   3386  2		    IF NOT .LOCAL_FLAG AND .GEN_1SIZE GTR 0
;   3387  2		    THEN
;   3388  2			RETURN GET_COMMAND (GEN_2DESC, %ASCID'Password: ',
;   3389  2				GEN_2SIZE, FALSE);
;   3390  2	
;   3391  2		[GC_COPY, GC_RENAME] :
;   3392  2	
;   3393  2		    WHILE TRUE DO
;   3394  3			BEGIN
;   3395  3			STATUS = GET_COMMAND (GEN_2DESC, %ASCID'New file: ', GEN_2SIZE, TRUE);
;   3396  3	
;   3397  3			IF NOT .STATUS OR .GEN_2SIZE NEQ 0 THEN RETURN .STATUS;
;   3398  3	
;   3399  2			END;
;   3400  2	
;   3401  2		[GC_LGN] :
;   3402  3		    BEGIN
;   3403  3		    STATUS = GET_COMMAND (GEN_3DESC, %ASCID'Account: ', GEN_3SIZE, TRUE);
;   3404  3	
;   3405  3		    IF NOT .STATUS THEN RETURN .STATUS;
;   3406  3	
;   3407  3		    RETURN GET_COMMAND (GEN_2DESC, %ASCID'Password: ', GEN_2SIZE, FALSE);
;   3408  2		    END;
;   3409  2	
;   3410  2		[GC_SEND_MSG] :
;   3411  2		    RETURN GET_COMMAND (GEN_2DESC, %ASCID'Message: ', GEN_2SIZE, TRUE);
;   3412  2	
;   3413  2		[GC_WHO] :
;   3414  2	
;   3415  2		    IF NOT .LOCAL_FLAG THEN RETURN GET_COMMAND (GEN_2DESC, %ASCID'Options: ', GEN_2SIZE, TRUE);
;   3416  2	
;   3417  2		TES;
;   3418  2	
;   3419  2	!
;   3420  2	! If we fall out of the SELECT, we don't need any arguments
;   3421  2	!
;   3422  2	    RETURN TRUE;
;   3423  1	    END;					! End of GET_REM_ARGS



	.PSECT  $PLIT$,NOWRT,NOEXE,2

P.AFM:	.ASCII  \Password: \<0><0>		     ;									      ;
P.AFL:	.LONG   17694730			     ;									      ;
	.ADDRESS P.AFM				     ;									      ;
P.AFO:	.ASCII  \New file: \<0><0>		     ;									      ;
P.AFN:	.LONG   17694730			     ;									      ;
	.ADDRESS P.AFO				     ;									      ;
P.AFQ:	.ASCII  \Account: \<0><0><0>		     ;									      ;
P.AFP:	.LONG   17694729			     ;									      ;
	.ADDRESS P.AFQ				     ;									      ;
P.AFS:	.ASCII  \Password: \<0><0>		     ;									      ;
P.AFR:	.LONG   17694730			     ;									      ;
	.ADDRESS P.AFS				     ;									      ;
P.AFU:	.ASCII  \Message: \<0><0><0>		     ;									      ;
P.AFT:	.LONG   17694729			     ;									      ;
	.ADDRESS P.AFU				     ;									      ;
P.AFW:	.ASCII  \Options: \<0><0><0>		     ;									      ;
P.AFV:	.LONG   17694729			     ;									      ;
	.ADDRESS P.AFW				     ;									      ;



	.PSECT  $CODE$,NOWRT,2

;GET_REM_ARGS
U.11:	.WORD   ^M<R2,R3,R4>			     ;Save R2,R3,R4							      ; 3325
	MOVAB   W^GET_COMMAND, R4		     ;GET_COMMAND, R4							      ;
	MOVAB   W^P.AFL, R3			     ;P.AFL, R3								      ;
	MOVAB   W^GEN_2SIZE, R2			     ;GEN_2SIZE, R2							      ;
	SUBL2   #12, SP				     ;#12, SP								      ;
	MOVL    #17694816, 4(SP)		     ;#17694816, GEN_2DESC						      ; 3378
	MOVAB   W^GEN_2DATA, 8(SP)		     ;GEN_2DATA, GEN_2DESC+4						      ;
	PUSHL   #17694816			     ;#17694816								      ; 3379
	MOVAB   W^GEN_3DATA, 4(SP)		     ;GEN_3DATA, GEN_3DESC+4						      ;
	MOVL    W^U.48, R1			     ;U.48, R1								      ; 3381
	CMPL    R1, #9				     ;R1, #9								      ; 3384
	BNEQ    1$				     ;1$								      ;
	BLBS    4(AP), 7$			     ;LOCAL_FLAG, 7$							      ; 3386
	TSTL    W^GEN_1SIZE			     ;GEN_1SIZE								      ;
	BLEQ    7$				     ;7$								      ;
	CLRL    -(SP)				     ;-(SP)								      ; 3388
	PUSHL   R2				     ;R2								      ;
	PUSHL   R3				     ;R3								      ;
	BRB     6$				     ;6$								      ;
1$:	CMPL    R1, #10				     ;R1, #10								      ; 3391
	BLSS    3$				     ;3$								      ;
	CMPL    R1, #11				     ;R1, #11								      ;
	BGTR    3$				     ;3$								      ;
2$:	PUSHL   #1				     ;#1								      ; 3395
	PUSHL   R2				     ;R2								      ;
	PUSHAB  20(R3)				     ;P.AFN								      ;
	PUSHAB  20(SP)				     ;GEN_2DESC								      ;
	CALLS   #4, (R4)			     ;#4, GET_COMMAND							      ;
	BLBC    R0, 8$				     ;STATUS, 8$							      ; 3397
	TSTL    (R2)				     ;GEN_2SIZE								      ;
	BEQL    2$				     ;2$								      ;
	RET     				     ;									      ;
3$:	CMPL    R1, #8				     ;R1, #8								      ; 3401
	BNEQ    4$				     ;4$								      ;
	PUSHL   #1				     ;#1								      ; 3403
	PUSHAB  W^GEN_3SIZE			     ;GEN_3SIZE								      ;
	PUSHAB  40(R3)				     ;P.AFP								      ;
	PUSHAB  12(SP)				     ;GEN_3DESC								      ;
	CALLS   #4, (R4)			     ;#4, GET_COMMAND							      ;
	BLBC    R0, 8$				     ;STATUS, 8$							      ; 3405
	CLRL    -(SP)				     ;-(SP)								      ; 3407
	PUSHL   R2				     ;R2								      ;
	PUSHAB  60(R3)				     ;P.AFR								      ;
	BRB     6$				     ;6$								      ;
4$:	CMPL    R1, #13				     ;R1, #13								      ; 3410
	BNEQ    5$				     ;5$								      ;
	PUSHL   #1				     ;#1								      ; 3411
	PUSHL   R2				     ;R2								      ;
	PUSHAB  80(R3)				     ;P.AFT								      ;
	BRB     6$				     ;6$								      ;
5$:	CMPL    R1, #12				     ;R1, #12								      ; 3413
	BNEQ    7$				     ;7$								      ;
	BLBS    4(AP), 7$			     ;LOCAL_FLAG, 7$							      ; 3415
	PUSHL   #1				     ;#1								      ;
	PUSHL   R2				     ;R2								      ;
	PUSHAB  100(R3)				     ;P.AFV								      ;
6$:	PUSHAB  20(SP)				     ;GEN_2DESC								      ;
	CALLS   #4, (R4)			     ;#4, GET_COMMAND							      ;
	RET     				     ;									      ;
7$:	MOVL    #1, R0				     ;#1, R0								      ; 3422
8$:	RET     				     ;									      ; 3423

; Routine Size:  178 bytes,    Routine Base:  $CODE$ + 0D6C


;   3424  1	%SBTTL 'TPARSE support -- STORE_DEBUG'
;   3425  1	ROUTINE STORE_DEBUG =
;   3426  1	
;   3427  1	!++
;   3428  1	! FUNCTIONAL DESCRIPTION:
;   3429  1	!
;   3430  1	!	This routine will store the debug flag into the DEBUG_FLAG
;   3431  1	!	location.
;   3432  1	!
;   3433  1	! CALLING SEQUENCE:
;   3434  1	!
;   3435  1	!	Standard LIB$TPARSE routine call.
;   3436  1	!
;   3437  1	! INPUT PARAMETERS:
;   3438  1	!
;   3439  1	!	None.
;   3440  1	!
;   3441  1	! IMPLICIT INPUTS:
;   3442  1	!
;   3443  1	!	None.
;   3444  1	!
;   3445  1	! OUTPUT PARAMETERS:
;   3446  1	!
;   3447  1	!	None.
;   3448  1	!
;   3449  1	! IMPLICIT OUTPUTS:
;   3450  1	!
;   3451  1	!	None.
;   3452  1	!
;   3453  1	! COMPLETION CODES:
;   3454  1	!
;   3455  1	!	None.
;   3456  1	!
;   3457  1	! SIDE EFFECTS:
;   3458  1	!
;   3459  1	!	None.
;   3460  1	!
;   3461  1	!--
;   3462  1	
;   3463  2	    BEGIN
;   3464  2	    TPARSE_ARGS;
;   3465  2	    DEBUG_FLAG = .AP [TPA$L_PARAM];
;   3466  2	    RETURN SS$_NORMAL;
;   3467  1	    END;					! End of STORE_DEBUG





;STORE_DEBUG
U.17:	.WORD   ^M<>				     ;Save nothing							      ; 3425
	MOVL    32(AP), W^DEBUG_FLAG		     ;32(AP), DEBUG_FLAG						      ; 3465
	MOVL    #1, R0				     ;#1, R0								      ; 3466
	RET     				     ;									      ; 3467

; Routine Size:  12 bytes,    Routine Base:  $CODE$ + 0E1E


;   3468  1	%SBTTL 'TPARSE support -- STORE_IBM'
;   3469  1	ROUTINE STORE_IBM =
;   3470  1	
;   3471  1	!++
;   3472  1	! FUNCTIONAL DESCRIPTION:
;   3473  1	!
;   3474  1	!	This routine will store the IBM flag into the IBM_FLAG
;   3475  1	!	location.
;   3476  1	!
;   3477  1	! CALLING SEQUENCE:
;   3478  1	!
;   3479  1	!	Standard LIB$TPARSE routine call.
;   3480  1	!
;   3481  1	! INPUT PARAMETERS:
;   3482  1	!
;   3483  1	!	None.
;   3484  1	!
;   3485  1	! IMPLICIT INPUTS:
;   3486  1	!
;   3487  1	!	None.
;   3488  1	!
;   3489  1	! OUTPUT PARAMETERS:
;   3490  1	!
;   3491  1	!	None.
;   3492  1	!
;   3493  1	! IMPLICIT OUTPUTS:
;   3494  1	!
;   3495  1	!	None.
;   3496  1	!
;   3497  1	! COMPLETION CODES:
;   3498  1	!
;   3499  1	!	None.
;   3500  1	!
;   3501  1	! SIDE EFFECTS:
;   3502  1	!
;   3503  1	!	None.
;   3504  1	!
;   3505  1	!--
;   3506  1	
;   3507  2	    BEGIN
;   3508  2	
;   3509  2	    EXTERNAL LITERAL
;   3510  2		IBM_MODE_ECHO : WEAK,			! IBM mode echo value
;   3511  2		IBM_MODE_PARITY : WEAK,			! Default parity
;   3512  2		IBM_MODE_CHARACTER : WEAK;		! And handshake character for
;   3513  2	
;   3514  2	    						! IBM mode
;   3515  2	    TPARSE_ARGS;
;   3516  2	
;   3517  2	    IF .AP [TPA$L_PARAM]
;   3518  2	    THEN
;   3519  3		BEGIN
;   3520  3		IBM_CHAR = (IF IBM_MODE_CHARACTER NEQ 0 THEN IBM_MODE_CHARACTER ELSE CHR_DC1);
;   3521  3		PARITY_TYPE = (IF IBM_MODE_PARITY NEQ 0 THEN IBM_MODE_PARITY ELSE PR_MARK);
;   3522  3		ECHO_FLAG = (IF IBM_MODE_ECHO NEQ 0 THEN IBM_MODE_ECHO ELSE TRUE);
;   3523  3		END
;   3524  2	    ELSE
;   3525  3		BEGIN
;   3526  3		IBM_CHAR = -1;				! Turn IBM mode off
;   3527  3		ECHO_FLAG = FALSE;			! No local echo
;   3528  3		PARITY_TYPE = PR_NONE;			! and no parity
;   3529  2		END;
;   3530  2	
;   3531  2	    RETURN SS$_NORMAL;
;   3532  1	    END;					! End of STORE_IBM



	.WEAK   IBM_MODE_ECHO, IBM_MODE_PARITY, IBM_MODE_CHARACTER

;STORE_IBM
U.24:	.WORD   ^M<R2,R3,R4>			     ;Save R2,R3,R4							      ; 3469
	MOVL    #IBM_MODE_CHARACTER, R4		     ;#IBM_MODE_CHARACTER, R4						      ;
	MOVL    #IBM_MODE_ECHO, R3		     ;#IBM_MODE_ECHO, R3						      ;
	MOVL    #IBM_MODE_PARITY, R2		     ;#IBM_MODE_PARITY, R2						      ;
	BLBC    32(AP), 7$			     ;32(AP), 7$							      ; 3517
	TSTL    R4				     ;R4								      ; 3520
	BEQL    1$				     ;1$								      ;
	MOVL    R4, R0				     ;R4, R0								      ;
	BRB     2$				     ;2$								      ;
1$:	MOVL    #17, R0				     ;#17, R0								      ;
2$:	MOVL    R0, W^IBM_CHAR			     ;R0, IBM_CHAR							      ;
	TSTL    R2				     ;R2								      ; 3521
	BEQL    3$				     ;3$								      ;
	MOVL    R2, R0				     ;R2, R0								      ;
	BRB     4$				     ;4$								      ;
3$:	MOVL    #1, R0				     ;#1, R0								      ;
4$:	MOVL    R0, W^PARITY_TYPE		     ;R0, PARITY_TYPE							      ;
	TSTL    R3				     ;R3								      ; 3522
	BEQL    5$				     ;5$								      ;
	MOVL    R3, R0				     ;R3, R0								      ;
	BRB     6$				     ;6$								      ;
5$:	MOVL    #1, R0				     ;#1, R0								      ;
6$:	MOVL    R0, W^ECHO_FLAG			     ;R0, ECHO_FLAG							      ;
	BRB     8$				     ;8$								      ; 3517
7$:	MNEGL   #1, W^IBM_CHAR			     ;#1, IBM_CHAR							      ; 3526
	CLRL    W^ECHO_FLAG			     ;ECHO_FLAG								      ; 3527
	CLRL    W^PARITY_TYPE			     ;PARITY_TYPE							      ; 3528
8$:	MOVL    #1, R0				     ;#1, R0								      ; 3531
	RET     				     ;									      ; 3532

; Routine Size:  97 bytes,    Routine Base:  $CODE$ + 0E2A


;   3533  1	%SBTTL 'TPARSE support -- STORE_ABT'
;   3534  1	ROUTINE STORE_ABT =
;   3535  1	
;   3536  1	!++
;   3537  1	! FUNCTIONAL DESCRIPTION:
;   3538  1	!
;   3539  1	!	This routine will store the aborted file disposition into ABT_FLAG
;   3540  1	!
;   3541  1	! CALLING SEQUENCE:
;   3542  1	!
;   3543  1	!	Standard LIB$TPARSE routine call.
;   3544  1	!
;   3545  1	! INPUT PARAMETERS:
;   3546  1	!
;   3547  1	!	None.
;   3548  1	!
;   3549  1	! IMPLICIT INPUTS:
;   3550  1	!
;   3551  1	!	None.
;   3552  1	!
;   3553  1	! OUTPUT PARAMETERS:
;   3554  1	!
;   3555  1	!	None.
;   3556  1	!
;   3557  1	! IMPLICIT OUTPUTS:
;   3558  1	!
;   3559  1	!	None.
;   3560  1	!
;   3561  1	! COMPLETION CODES:
;   3562  1	!
;   3563  1	!	None.
;   3564  1	!
;   3565  1	! SIDE EFFECTS:
;   3566  1	!
;   3567  1	!	None.
;   3568  1	!
;   3569  1	!--
;   3570  1	
;   3571  2	    BEGIN
;   3572  2	    TPARSE_ARGS;
;   3573  2	    ABT_FLAG = .AP [TPA$L_PARAM];
;   3574  2	    RETURN SS$_NORMAL;
;   3575  1	    END;					! End of STORE_ABT





;STORE_ABT
U.23:	.WORD   ^M<>				     ;Save nothing							      ; 3534
	MOVL    32(AP), W^ABT_FLAG		     ;32(AP), ABT_FLAG							      ; 3573
	MOVL    #1, R0				     ;#1, R0								      ; 3574
	RET     				     ;									      ; 3575

; Routine Size:  12 bytes,    Routine Base:  $CODE$ + 0E8B


;   3576  1	%SBTTL 'TPARSE support -- STORE_CHK'
;   3577  1	ROUTINE STORE_CHK =
;   3578  1	
;   3579  1	!++
;   3580  1	! FUNCTIONAL DESCRIPTION:
;   3581  1	!
;   3582  1	!	This routine will store the block check type into XXXX
;   3583  1	!	location.
;   3584  1	!
;   3585  1	! CALLING SEQUENCE:
;   3586  1	!
;   3587  1	!	Standard LIB$TPARSE routine call.
;   3588  1	!
;   3589  1	! INPUT PARAMETERS:
;   3590  1	!
;   3591  1	!	None.
;   3592  1	!
;   3593  1	! IMPLICIT INPUTS:
;   3594  1	!
;   3595  1	!	None.
;   3596  1	!
;   3597  1	! OUTPUT PARAMETERS:
;   3598  1	!
;   3599  1	!	None.
;   3600  1	!
;   3601  1	! IMPLICIT OUTPUTS:
;   3602  1	!
;   3603  1	!	None.
;   3604  1	!
;   3605  1	! COMPLETION CODES:
;   3606  1	!
;   3607  1	!	None.
;   3608  1	!
;   3609  1	! SIDE EFFECTS:
;   3610  1	!
;   3611  1	!	None.
;   3612  1	!
;   3613  1	!--
;   3614  1	
;   3615  2	    BEGIN
;   3616  2	    TPARSE_ARGS;
;   3617  2	    CHKTYPE = .AP [TPA$L_PARAM];
;   3618  2	    RETURN SS$_NORMAL;
;   3619  1	    END;					! End of STORE_CHK





;STORE_CHK
U.22:	.WORD   ^M<>				     ;Save nothing							      ; 3577
	MOVL    32(AP), W^CHKTYPE		     ;32(AP), CHKTYPE							      ; 3617
	MOVL    #1, R0				     ;#1, R0								      ; 3618
	RET     				     ;									      ; 3619

; Routine Size:  12 bytes,    Routine Base:  $CODE$ + 0E97


;   3620  1	%SBTTL 'TPARSE support -- STORE_FTP - Store file type'
;   3621  1	ROUTINE STORE_FTP =
;   3622  1	
;   3623  1	!++
;   3624  1	! FUNCTIONAL DESCRIPTION:
;   3625  1	!
;   3626  1	!	This routine will store the file type that was specified by the
;   3627  1	!	user for the KERFIL processing.
;   3628  1	!
;   3629  1	! CALLING SEQUENCE:
;   3630  1	!
;   3631  1	!	Standard call from LIB$TPARSE.
;   3632  1	!
;   3633  1	! INPUT PARAMETERS:
;   3634  1	!
;   3635  1	!	None.
;   3636  1	!
;   3637  1	! IMPLICIT INPUTS:
;   3638  1	!
;   3639  1	!	None.
;   3640  1	!
;   3641  1	! OUTPUT PARAMETERS:
;   3642  1	!
;   3643  1	!	None.
;   3644  1	!
;   3645  1	! IMPLICIT OUTPUTS:
;   3646  1	!
;   3647  1	!	None.
;   3648  1	!
;   3649  1	! COMPLETION CODES:
;   3650  1	!
;   3651  1	!	None.
;   3652  1	!
;   3653  1	! SIDE EFFECTS:
;   3654  1	!
;   3655  1	!	None.
;   3656  1	!
;   3657  1	!--
;   3658  1	
;   3659  2	    BEGIN
;   3660  2	    TPARSE_ARGS;
;   3661  2	    FILE_TYPE = .AP [TPA$L_PARAM];
;   3662  2	    RETURN SS$_NORMAL;
;   3663  1	    END;					! End of STORE_FTP





;STORE_FTP
U.18:	.WORD   ^M<>				     ;Save nothing							      ; 3621
	MOVL    32(AP), W^FILE_TYPE		     ;32(AP), FILE_TYPE							      ; 3661
	MOVL    #1, R0				     ;#1, R0								      ; 3662
	RET     				     ;									      ; 3663

; Routine Size:  12 bytes,    Routine Base:  $CODE$ + 0EA3


;   3664  1	%SBTTL 'TPARSE support -- STORE_FNM - Store file type'
;   3665  1	ROUTINE STORE_FNM =
;   3666  1	
;   3667  1	!++
;   3668  1	! FUNCTIONAL DESCRIPTION:
;   3669  1	!
;   3670  1	!	This routine will store the file type that was specified by the
;   3671  1	!	user for the KERFIL processing.
;   3672  1	!
;   3673  1	! CALLING SEQUENCE:
;   3674  1	!
;   3675  1	!	Standard call from LIB$TPARSE.
;   3676  1	!
;   3677  1	! INPUT PARAMETERS:
;   3678  1	!
;   3679  1	!	None.
;   3680  1	!
;   3681  1	! IMPLICIT INPUTS:
;   3682  1	!
;   3683  1	!	None.
;   3684  1	!
;   3685  1	! OUTPUT PARAMETERS:
;   3686  1	!
;   3687  1	!	None.
;   3688  1	!
;   3689  1	! IMPLICIT OUTPUTS:
;   3690  1	!
;   3691  1	!	None.
;   3692  1	!
;   3693  1	! COMPLETION CODES:
;   3694  1	!
;   3695  1	!	None.
;   3696  1	!
;   3697  1	! SIDE EFFECTS:
;   3698  1	!
;   3699  1	!	None.
;   3700  1	!
;   3701  1	!--
;   3702  1	
;   3703  2	    BEGIN
;   3704  2	    TPARSE_ARGS;
;   3705  2	    FIL_NORMAL_FORM = .AP [TPA$L_PARAM];
;   3706  2	    RETURN SS$_NORMAL;
;   3707  1	    END;					! End of STORE_FNM





;STORE_FNM
U.19:	.WORD   ^M<>				     ;Save nothing							      ; 3665
	MOVL    32(AP), W^FIL_NORMAL_FORM	     ;32(AP), FIL_NORMAL_FORM						      ; 3705
	MOVL    #1, R0				     ;#1, R0								      ; 3706
	RET     				     ;									      ; 3707

; Routine Size:  12 bytes,    Routine Base:  $CODE$ + 0EAF


;   3708  1	%SBTTL 'TPARSE support -- STORE_PARITY - Store file type'
;   3709  1	ROUTINE STORE_PARITY =
;   3710  1	
;   3711  1	!++
;   3712  1	! FUNCTIONAL DESCRIPTION:
;   3713  1	!
;   3714  1	!	This routine will store the type of parity to use for the transfer.
;   3715  1	!	If a parity type of other than NONE is specified then we will use
;   3716  1	!	eight-bit quoting to support the transfer.
;   3717  1	!
;   3718  1	! CALLING SEQUENCE:
;   3719  1	!
;   3720  1	!	Standard call from LIB$TPARSE.
;   3721  1	!
;   3722  1	! INPUT PARAMETERS:
;   3723  1	!
;   3724  1	!	None.
;   3725  1	!
;   3726  1	! IMPLICIT INPUTS:
;   3727  1	!
;   3728  1	!	None.
;   3729  1	!
;   3730  1	! OUTPUT PARAMETERS:
;   3731  1	!
;   3732  1	!	None.
;   3733  1	!
;   3734  1	! IMPLICIT OUTPUTS:
;   3735  1	!
;   3736  1	!	None.
;   3737  1	!
;   3738  1	! COMPLETION CODES:
;   3739  1	!
;   3740  1	!	None.
;   3741  1	!
;   3742  1	! SIDE EFFECTS:
;   3743  1	!
;   3744  1	!	None.
;   3745  1	!
;   3746  1	!--
;   3747  1	
;   3748  2	    BEGIN
;   3749  2	    TPARSE_ARGS;
;   3750  2	    PARITY_TYPE = .AP [TPA$L_PARAM];
;   3751  2	    RETURN SS$_NORMAL;
;   3752  1	    END;					! End of STORE_PARITY





;STORE_PARITY
U.21:	.WORD   ^M<>				     ;Save nothing							      ; 3709
	MOVL    32(AP), W^PARITY_TYPE		     ;32(AP), PARITY_TYPE						      ; 3750
	MOVL    #1, R0				     ;#1, R0								      ; 3751
	RET     				     ;									      ; 3752

; Routine Size:  12 bytes,    Routine Base:  $CODE$ + 0EBB


;   3753  1	%SBTTL 'TPARSE support -- STORE_ECHO - Store local echo flag'
;   3754  1	ROUTINE STORE_ECHO =
;   3755  1	
;   3756  1	!++
;   3757  1	! FUNCTIONAL DESCRIPTION:
;   3758  1	!
;   3759  1	!	This routine will store the state of the local echo flag as the
;   3760  1	!	user set it.
;   3761  1	!
;   3762  1	! CALLING SEQUENCE:
;   3763  1	!
;   3764  1	!	Standard TPARSE argument call.
;   3765  1	!
;   3766  1	! INPUT PARAMETERS:
;   3767  1	!
;   3768  1	!	None.
;   3769  1	!
;   3770  1	! IMPLICIT INPUTS:
;   3771  1	!
;   3772  1	!	None.
;   3773  1	!
;   3774  1	! OUTPUT PARAMETERS:
;   3775  1	!
;   3776  1	!	None.
;   3777  1	!
;   3778  1	! IMPLICIT OUTPUTS:
;   3779  1	!
;   3780  1	!	None.
;   3781  1	!
;   3782  1	! COMPLETION CODES:
;   3783  1	!
;   3784  1	!	None.
;   3785  1	!
;   3786  1	! SIDE EFFECTS:
;   3787  1	!
;   3788  1	!	None.
;   3789  1	!
;   3790  1	!--
;   3791  1	
;   3792  2	    BEGIN
;   3793  2	    TPARSE_ARGS;
;   3794  2	    ECHO_FLAG = .AP [TPA$L_PARAM];
;   3795  2	    RETURN SS$_NORMAL;
;   3796  1	    END;					! End of STORE_ECHO





;STORE_ECHO
U.20:	.WORD   ^M<>				     ;Save nothing							      ; 3754
	MOVL    32(AP), W^ECHO_FLAG		     ;32(AP), ECHO_FLAG							      ; 3794
	MOVL    #1, R0				     ;#1, R0								      ; 3795
	RET     				     ;									      ; 3796

; Routine Size:  12 bytes,    Routine Base:  $CODE$ + 0EC7


;   3797  1	%SBTTL 'TPARSE support -- STORE_MSG_FIL - Store file name typeout flag'
;   3798  1	ROUTINE STORE_MSG_FIL =
;   3799  1	
;   3800  1	!++
;   3801  1	! FUNCTIONAL DESCRIPTION:
;   3802  1	!
;   3803  1	!	This routine will store the state of the file name typeout flag as the
;   3804  1	!	user set it.
;   3805  1	!
;   3806  1	! CALLING SEQUENCE:
;   3807  1	!
;   3808  1	!	Standard TPARSE argument call.
;   3809  1	!
;   3810  1	! INPUT PARAMETERS:
;   3811  1	!
;   3812  1	!	None.
;   3813  1	!
;   3814  1	! IMPLICIT INPUTS:
;   3815  1	!
;   3816  1	!	None.
;   3817  1	!
;   3818  1	! OUTPUT PARAMETERS:
;   3819  1	!
;   3820  1	!	None.
;   3821  1	!
;   3822  1	! IMPLICIT OUTPUTS:
;   3823  1	!
;   3824  1	!	None.
;   3825  1	!
;   3826  1	! COMPLETION CODES:
;   3827  1	!
;   3828  1	!	None.
;   3829  1	!
;   3830  1	! SIDE EFFECTS:
;   3831  1	!
;   3832  1	!	None.
;   3833  1	!
;   3834  1	!--
;   3835  1	
;   3836  2	    BEGIN
;   3837  2	    TPARSE_ARGS;
;   3838  2	    TY_FIL = .AP [TPA$L_PARAM];
;   3839  2	    RETURN SS$_NORMAL;
;   3840  1	    END;					! End of STORE_MSG_FIL





;STORE_MSG_FIL
U.25:	.WORD   ^M<>				     ;Save nothing							      ; 3798
	MOVL    32(AP), W^TY_FIL		     ;32(AP), TY_FIL							      ; 3838
	MOVL    #1, R0				     ;#1, R0								      ; 3839
	RET     				     ;									      ; 3840

; Routine Size:  12 bytes,    Routine Base:  $CODE$ + 0ED3


;   3841  1	%SBTTL 'TPARSE support -- STORE_MSG_PKT - Store packet number typeout flag'
;   3842  1	ROUTINE STORE_MSG_PKT =
;   3843  1	
;   3844  1	!++
;   3845  1	! FUNCTIONAL DESCRIPTION:
;   3846  1	!
;   3847  1	!	This routine will store the state of the packet number flag as the
;   3848  1	!	user set it.
;   3849  1	!
;   3850  1	! CALLING SEQUENCE:
;   3851  1	!
;   3852  1	!	Standard TPARSE argument call.
;   3853  1	!
;   3854  1	! INPUT PARAMETERS:
;   3855  1	!
;   3856  1	!	None.
;   3857  1	!
;   3858  1	! IMPLICIT INPUTS:
;   3859  1	!
;   3860  1	!	None.
;   3861  1	!
;   3862  1	! OUTPUT PARAMETERS:
;   3863  1	!
;   3864  1	!	None.
;   3865  1	!
;   3866  1	! IMPLICIT OUTPUTS:
;   3867  1	!
;   3868  1	!	None.
;   3869  1	!
;   3870  1	! COMPLETION CODES:
;   3871  1	!
;   3872  1	!	None.
;   3873  1	!
;   3874  1	! SIDE EFFECTS:
;   3875  1	!
;   3876  1	!	None.
;   3877  1	!
;   3878  1	!--
;   3879  1	
;   3880  2	    BEGIN
;   3881  2	    TPARSE_ARGS;
;   3882  2	    TY_PKT = .AP [TPA$L_PARAM];
;   3883  2	    RETURN SS$_NORMAL;
;   3884  1	    END;					! End of STORE_MSG_PKT





;STORE_MSG_PKT
U.26:	.WORD   ^M<>				     ;Save nothing							      ; 3842
	MOVL    32(AP), W^TY_PKT		     ;32(AP), TY_PKT							      ; 3882
	MOVL    #1, R0				     ;#1, R0								      ; 3883
	RET     				     ;									      ; 3884

; Routine Size:  12 bytes,    Routine Base:  $CODE$ + 0EDF


;   3885  1	%SBTTL 'TPARSE support -- CHECK_EOL'
;   3886  1	ROUTINE CHECK_EOL =
;   3887  1	
;   3888  1	!++
;   3889  1	! FUNCTIONAL DESCRIPTION:
;   3890  1	!
;   3891  1	!	This routine will valid the SEND and RECEIVE eol character that
;   3892  1	!	is being set by the user.
;   3893  1	!
;   3894  1	! CALLING SEQUENCE:
;   3895  1	!
;   3896  1	!	Standard TPARSE routine calling sequence.
;   3897  1	!
;   3898  1	! INPUT PARAMETERS:
;   3899  1	!
;   3900  1	!	None.
;   3901  1	!
;   3902  1	! IMPLICIT INPUTS:
;   3903  1	!
;   3904  1	!	None.
;   3905  1	!
;   3906  1	! OUTPUT PARAMETERS:
;   3907  1	!
;   3908  1	!	None.
;   3909  1	!
;   3910  1	! IMPLICIT OUTPUTS:
;   3911  1	!
;   3912  1	!	None.
;   3913  1	!
;   3914  1	! COMPLETION CODES:
;   3915  1	!
;   3916  1	!	None.
;   3917  1	!
;   3918  1	! SIDE EFFECTS:
;   3919  1	!
;   3920  1	!	None.
;   3921  1	!
;   3922  1	!--
;   3923  1	
;   3924  2	    BEGIN
;   3925  2	    TPARSE_ARGS;
;   3926  2	
;   3927  3	    IF (.AP [TPA$L_NUMBER] LSS %C' ') AND (.AP [TPA$L_NUMBER] GTR 0)
;   3928  2	    THEN
;   3929  2		RETURN SS$_NORMAL
;   3930  2	    ELSE
;   3931  2		RETURN KER_ILLEOL;
;   3932  2	
;   3933  1	    END;					! End of CHECK_EOL





;CHECK_EOL
U.30:	.WORD   ^M<>				     ;Save nothing							      ; 3886
	CMPL    28(AP), #32			     ;28(AP), #32							      ; 3927
	BGEQ    1$				     ;1$								      ;
	TSTL    28(AP)				     ;28(AP)								      ;
	BLEQ    1$				     ;1$								      ;
	MOVL    #1, R0				     ;#1, R0								      ; 3931
	RET     				     ;									      ;
1$:	MOVL    #134316066, R0			     ;#134316066, R0							      ;
	RET     				     ;									      ; 3933

; Routine Size:  25 bytes,    Routine Base:  $CODE$ + 0EEB


;   3934  1	%SBTTL 'TPARSE support -- CHECK_QUOTE'
;   3935  1	ROUTINE CHECK_QUOTE =
;   3936  1	
;   3937  1	!++
;   3938  1	! FUNCTIONAL DESCRIPTION:
;   3939  1	!
;   3940  1	!	This routine will validate the SEND and RECEIVE quoting character that
;   3941  1	!	is being set by the user.
;   3942  1	!
;   3943  1	! CALLING SEQUENCE:
;   3944  1	!
;   3945  1	!	Standard TPARSE routine calling sequence.
;   3946  1	!
;   3947  1	! INPUT PARAMETERS:
;   3948  1	!
;   3949  1	!	None.
;   3950  1	!
;   3951  1	! IMPLICIT INPUTS:
;   3952  1	!
;   3953  1	!	None.
;   3954  1	!
;   3955  1	! OUTPUT PARAMETERS:
;   3956  1	!
;   3957  1	!	None.
;   3958  1	!
;   3959  1	! IMPLICIT OUTPUTS:
;   3960  1	!
;   3961  1	!	None.
;   3962  1	!
;   3963  1	! COMPLETION CODES:
;   3964  1	!
;   3965  1	!	Error code or true value
;   3966  1	!
;   3967  1	! SIDE EFFECTS:
;   3968  1	!
;   3969  1	!	None.
;   3970  1	!
;   3971  1	!--
;   3972  1	
;   3973  2	    BEGIN
;   3974  2	    TPARSE_ARGS;
;   3975  2	
;   3976  3	    IF (.AP [TPA$L_NUMBER] GEQ %C' ' AND .AP [TPA$L_NUMBER] LSS %C'?') OR (.AP [TPA$L_NUMBER] GEQ %C'`' AND
;   3977  3		.AP [TPA$L_NUMBER] LSS CHR_DEL)
;   3978  2	    THEN
;   3979  2		RETURN SS$_NORMAL
;   3980  2	    ELSE
;   3981  2		RETURN KER_ILLQUO;
;   3982  2	
;   3983  1	    END;					! End of CHECK_QUO





;CHECK_QUOTE
U.31:	.WORD   ^M<>				     ;Save nothing							      ; 3935
	CMPL    28(AP), #32			     ;28(AP), #32							      ; 3976
	BLSS    1$				     ;1$								      ;
	CMPL    28(AP), #63			     ;28(AP), #63							      ;
	BLSS    2$				     ;2$								      ;
1$:	CMPL    28(AP), #96			     ;28(AP), #96							      ;
	BLSS    3$				     ;3$								      ;
	CMPL    28(AP), #127			     ;28(AP), #127							      ; 3977
	BGEQ    3$				     ;3$								      ;
2$:	MOVL    #1, R0				     ;#1, R0								      ; 3981
	RET     				     ;									      ;
3$:	MOVL    #134316114, R0			     ;#134316114, R0							      ;
	RET     				     ;									      ; 3983

; Routine Size:  46 bytes,    Routine Base:  $CODE$ + 0F04


;   3984  1	%SBTTL 'TPARSE support -- CHECK_SOH'
;   3985  1	ROUTINE CHECK_SOH =
;   3986  1	
;   3987  1	!++
;   3988  1	! FUNCTIONAL DESCRIPTION:
;   3989  1	!
;   3990  1	!	This routine will valid the SEND and RECEIVE START_OF_PACKET
;   3991  1	!	character that is being set by the user.
;   3992  1	!
;   3993  1	! CALLING SEQUENCE:
;   3994  1	!
;   3995  1	!	Standard TPARSE routine calling sequence.
;   3996  1	!
;   3997  1	! INPUT PARAMETERS:
;   3998  1	!
;   3999  1	!	None.
;   4000  1	!
;   4001  1	! IMPLICIT INPUTS:
;   4002  1	!
;   4003  1	!	None.
;   4004  1	!
;   4005  1	! OUTPUT PARAMETERS:
;   4006  1	!
;   4007  1	!	None.
;   4008  1	!
;   4009  1	! IMPLICIT OUTPUTS:
;   4010  1	!
;   4011  1	!	None.
;   4012  1	!
;   4013  1	! COMPLETION CODES:
;   4014  1	!
;   4015  1	!	None.
;   4016  1	!
;   4017  1	! SIDE EFFECTS:
;   4018  1	!
;   4019  1	!	None.
;   4020  1	!
;   4021  1	!--
;   4022  1	
;   4023  2	    BEGIN
;   4024  2	    TPARSE_ARGS;
;   4025  2	
;   4026  3	    IF (.AP [TPA$L_NUMBER] LSS %C' ') AND (.AP [TPA$L_NUMBER] GTR 0)
;   4027  2	    THEN
;   4028  2		RETURN SS$_NORMAL
;   4029  2	    ELSE
;   4030  2		RETURN KER_ILLSOH;
;   4031  2	
;   4032  1	    END;					! End of CHECK_SOH





;CHECK_SOH
U.32:	.WORD   ^M<>				     ;Save nothing							      ; 3985
	CMPL    28(AP), #32			     ;28(AP), #32							      ; 4026
	BGEQ    1$				     ;1$								      ;
	TSTL    28(AP)				     ;28(AP)								      ;
	BLEQ    1$				     ;1$								      ;
	MOVL    #1, R0				     ;#1, R0								      ; 4030
	RET     				     ;									      ;
1$:	MOVL    #134316106, R0			     ;#134316106, R0							      ;
	RET     				     ;									      ; 4032

; Routine Size:  25 bytes,    Routine Base:  $CODE$ + 0F32


;   4033  1	%SBTTL 'TPARSE support -- CHECK_PAD_CHAR'
;   4034  1	ROUTINE CHECK_PAD_CHAR =
;   4035  1	
;   4036  1	!++
;   4037  1	! FUNCTIONAL DESCRIPTION:
;   4038  1	!
;   4039  1	!	This routine will valid the SEND and RECEIVE eol character that
;   4040  1	!	is being set by the user.
;   4041  1	!
;   4042  1	! CALLING SEQUENCE:
;   4043  1	!
;   4044  1	!	Standard TPARSE routine calling sequence.
;   4045  1	!
;   4046  1	! INPUT PARAMETERS:
;   4047  1	!
;   4048  1	!	None.
;   4049  1	!
;   4050  1	! IMPLICIT INPUTS:
;   4051  1	!
;   4052  1	!	None.
;   4053  1	!
;   4054  1	! OUTPUT PARAMETERS:
;   4055  1	!
;   4056  1	!	None.
;   4057  1	!
;   4058  1	! IMPLICIT OUTPUTS:
;   4059  1	!
;   4060  1	!	None.
;   4061  1	!
;   4062  1	! COMPLETION CODES:
;   4063  1	!
;   4064  1	!	None.
;   4065  1	!
;   4066  1	! SIDE EFFECTS:
;   4067  1	!
;   4068  1	!	None.
;   4069  1	!
;   4070  1	!--
;   4071  1	
;   4072  2	    BEGIN
;   4073  2	    TPARSE_ARGS;
;   4074  2	
;   4075  2	    IF .AP [TPA$L_NUMBER] LSS %C' ' OR .AP [TPA$L_NUMBER] EQL CHR_DEL
;   4076  2	    THEN
;   4077  2		RETURN SS$_NORMAL
;   4078  2	    ELSE
;   4079  2		RETURN KER_ILLPADCHR;
;   4080  2	
;   4081  1	    END;					! End of CHECK_PAD_CHAR





;CHECK_PAD_CHAR
U.29:	.WORD   ^M<>				     ;Save nothing							      ; 4034
	CMPL    28(AP), #32			     ;28(AP), #32							      ; 4075
	BLSS    1$				     ;1$								      ;
	CMPL    28(AP), #127			     ;28(AP), #127							      ;
	BNEQ    2$				     ;2$								      ;
1$:	MOVL    #1, R0				     ;#1, R0								      ; 4079
	RET     				     ;									      ;
2$:	MOVL    #134316082, R0			     ;#134316082, R0							      ;
	RET     				     ;									      ; 4081

; Routine Size:  30 bytes,    Routine Base:  $CODE$ + 0F4B


;   4082  1	%SBTTL 'TPARSE support -- CHECK_NPAD'
;   4083  1	ROUTINE CHECK_NPAD =
;   4084  1	
;   4085  1	!++
;   4086  1	! FUNCTIONAL DESCRIPTION:
;   4087  1	!
;   4088  1	!	This routine will determine if the packet length specified by the
;   4089  1	!	user is valid.
;   4090  1	!
;   4091  1	! CALLING SEQUENCE:
;   4092  1	!
;   4093  1	!	Standard TPARSE calling sequence.
;   4094  1	!
;   4095  1	! INPUT PARAMETERS:
;   4096  1	!
;   4097  1	!	None.
;   4098  1	!
;   4099  1	! IMPLICIT INPUTS:
;   4100  1	!
;   4101  1	!	None.
;   4102  1	!
;   4103  1	! OUTPUT PARAMETERS:
;   4104  1	!
;   4105  1	!	None.
;   4106  1	!
;   4107  1	! IMPLICIT OUTPUTS:
;   4108  1	!
;   4109  1	!	None.
;   4110  1	!
;   4111  1	! COMPLETION CODES:
;   4112  1	!
;   4113  1	!	None.
;   4114  1	!
;   4115  1	! SIDE EFFECTS:
;   4116  1	!
;   4117  1	!	None.
;   4118  1	!
;   4119  1	!--
;   4120  1	
;   4121  2	    BEGIN
;   4122  2	    TPARSE_ARGS;
;   4123  2	
;   4124  2	    IF .AP [TPA$L_NUMBER] LSS 0 THEN RETURN KER_ILLNPAD ELSE RETURN SS$_NORMAL;
;   4125  2	
;   4126  1	    END;					! End of CHECK_NPAD





;CHECK_NPAD
U.28:	.WORD   ^M<>				     ;Save nothing							      ; 4083
	TSTL    28(AP)				     ;28(AP)								      ; 4124
	BGEQ    1$				     ;1$								      ;
	MOVL    #134316090, R0			     ;#134316090, R0							      ;
	RET     				     ;									      ;
1$:	MOVL    #1, R0				     ;#1, R0								      ;
	RET     				     ;									      ; 4126

; Routine Size:  19 bytes,    Routine Base:  $CODE$ + 0F69


;   4127  1	%SBTTL 'TPARSE support -- CHECK_PACKET_LEN'
;   4128  1	ROUTINE CHECK_PACKET_LEN =
;   4129  1	
;   4130  1	!++
;   4131  1	! FUNCTIONAL DESCRIPTION:
;   4132  1	!
;   4133  1	!	This routine will determine if the packet length specified by the
;   4134  1	!	user is valid.
;   4135  1	!
;   4136  1	! CALLING SEQUENCE:
;   4137  1	!
;   4138  1	!	Standard TPARSE calling sequence.
;   4139  1	!
;   4140  1	! INPUT PARAMETERS:
;   4141  1	!
;   4142  1	!	None.
;   4143  1	!
;   4144  1	! IMPLICIT INPUTS:
;   4145  1	!
;   4146  1	!	None.
;   4147  1	!
;   4148  1	! OUTPUT PARAMETERS:
;   4149  1	!
;   4150  1	!	None.
;   4151  1	!
;   4152  1	! IMPLICIT OUTPUTS:
;   4153  1	!
;   4154  1	!	None.
;   4155  1	!
;   4156  1	! COMPLETION CODES:
;   4157  1	!
;   4158  1	!	None.
;   4159  1	!
;   4160  1	! SIDE EFFECTS:
;   4161  1	!
;   4162  1	!	None.
;   4163  1	!
;   4164  1	!--
;   4165  1	
;   4166  2	    BEGIN
;   4167  2	    TPARSE_ARGS;
;   4168  2	
;   4169  3	    IF .AP [TPA$L_NUMBER] LSS 10 OR .AP [TPA$L_NUMBER] GTR (MAX_MSG - 2)
;   4170  2	    THEN
;   4171  2		RETURN KER_ILLPKTLEN
;   4172  2	    ELSE
;   4173  2		RETURN SS$_NORMAL;
;   4174  2	
;   4175  1	    END;					! End of CHECK_PACKET_LEN





;CHECK_PACKET_LEN
U.27:	.WORD   ^M<>				     ;Save nothing							      ; 4128
	CMPL    28(AP), #10			     ;28(AP), #10							      ; 4169
	BLSS    1$				     ;1$								      ;
	CMPL    28(AP), #94			     ;28(AP), #94							      ;
	BLEQ    2$				     ;2$								      ;
1$:	MOVL    #134316074, R0			     ;#134316074, R0							      ; 4173
	RET     				     ;									      ;
2$:	MOVL    #1, R0				     ;#1, R0								      ;
	RET     				     ;									      ; 4175

; Routine Size:  30 bytes,    Routine Base:  $CODE$ + 0F7C


;   4176  1	%SBTTL 'STORE_TEXT'
;   4177  1	ROUTINE STORE_TEXT =
;   4178  1	
;   4179  1	!++
;   4180  1	! FUNCTIONAL DESCRIPTION:
;   4181  1	!
;   4182  1	!	This routine will store a single character of the file specification
;   4183  1	!	that the user gives to the SEND and RECEIVE commands.
;   4184  1	!
;   4185  1	! FORMAL PARAMETERS:
;   4186  1	!
;   4187  1	!	Character that was parsed.
;   4188  1	!
;   4189  1	! IMPLICIT INPUTS:
;   4190  1	!
;   4191  1	!	None.
;   4192  1	!
;   4193  1	! IMPLICIT OUTPUTS:
;   4194  1	!
;   4195  1	!	Character stored into the file specification vector.
;   4196  1	!
;   4197  1	! ROUTINE VALUE and
;   4198  1	! COMPLETION CODES:
;   4199  1	!
;   4200  1	!	None.
;   4201  1	!
;   4202  1	! SIDE EFFECTS:
;   4203  1	!
;   4204  1	!	None.
;   4205  1	!
;   4206  1	!--
;   4207  1	
;   4208  2	    BEGIN
;   4209  2	    TPARSE_ARGS;
;   4210  2	
;   4211  2	    IF (TEMP_DESC [DSC$W_LENGTH] = .TEMP_DESC [DSC$W_LENGTH] + 1) LSS TEMP_LENGTH
;   4212  2	    THEN
;   4213  3		BEGIN
;   4214  3		CH$WCHAR (.AP [TPA$B_CHAR], CH$PTR (TEMP_NAME, .TEMP_DESC [DSC$W_LENGTH] - 1));
;   4215  3		AP [TPA$V_BLANKS] = 1;			! Blanks are significant
;   4216  3		RETURN SS$_NORMAL;
;   4217  3		END
;   4218  2	    ELSE
;   4219  2		RETURN KER_LINTOOLNG;
;   4220  2	
;   4221  1	    END;					! End of STORE_TEXT





;STORE_TEXT
U.12:	.WORD   ^M<R2>				     ;Save R2								      ; 4177
	MOVAB   W^U.59, R2			     ;U.59, R2								      ;
	MOVZWL  (R2), R0			     ;TEMP_DESC, R0							      ; 4211
	INCL    R0				     ;R0								      ;
	MOVW    R0, (R2)			     ;R0, TEMP_DESC							      ;
	CMPL    R0, #132			     ;R0, #132								      ;
	BGEQ    1$				     ;1$								      ;
	MOVZWL  (R2), R0			     ;TEMP_DESC, R0							      ; 4214
	MOVB    24(AP), 7(R2)[R0]		     ;24(AP), TEMP_NAME-1[R0]						      ;
	BISB2   #1, 4(AP)			     ;#1, 4(AP)								      ; 4215
	MOVL    #1, R0				     ;#1, R0								      ; 4219
	RET     				     ;									      ;
1$:	MOVL    #134316098, R0			     ;#134316098, R0							      ;
	RET     				     ;									      ; 4221

; Routine Size:  49 bytes,    Routine Base:  $CODE$ + 0F9A


;   4222  1	%SBTTL 'TPARSE support -- COPY_DESC - Copy string to a descriptor'
;   4223  1	ROUTINE COPY_DESC =
;   4224  1	
;   4225  1	!++
;   4226  1	! FUNCTIONAL DESCRIPTION:
;   4227  1	!
;   4228  1	! This routine will copy a string to the descriptor passed in the TPARSE
;   4229  1	! argument.
;   4230  1	!
;   4231  1	! CALLING SEQUENCE:
;   4232  1	!
;   4233  1	!	COPY_FILE();
;   4234  1	!
;   4235  1	! INPUT PARAMETERS:
;   4236  1	!
;   4237  1	!	None.
;   4238  1	!
;   4239  1	! IMPLICIT INPUTS:
;   4240  1	!
;   4241  1	!	TEMP_DESC and TEMP_NAME set up with the device name and length
;   4242  1	!	in the descriptor.
;   4243  1	!
;   4244  1	! OUTPUT PARAMETERS:
;   4245  1	!
;   4246  1	!	None.
;   4247  1	!
;   4248  1	! IMPLICIT OUTPUTS:
;   4249  1	!
;   4250  1	!	Descriptor fields set up.
;   4251  1	!	TEMP_DESC.
;   4252  1	!
;   4253  1	! COMPLETION CODES:
;   4254  1	!
;   4255  1	!	0 - Failure.
;   4256  1	!	1 - Success.
;   4257  1	!
;   4258  1	! SIDE EFFECTS:
;   4259  1	!
;   4260  1	!	None.
;   4261  1	!
;   4262  1	!--
;   4263  1	
;   4264  2	    BEGIN
;   4265  2	    TPARSE_ARGS;
;   4266  2	
;   4267  2	    LOCAL
;   4268  2		DESC_ADDR;
;   4269  2	
;   4270  2	    DESC_ADDR = .AP [TPA$L_PARAM];
;   4271  3	    BEGIN
;   4272  3	
;   4273  3	    MAP
;   4274  3		DESC_ADDR : REF BLOCK [8, BYTE];
;   4275  3	
;   4276  3	    DESC_ADDR [DSC$W_LENGTH] = .TEMP_DESC [DSC$W_LENGTH];
;   4277  3	    CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1,
;   4278  3		CH$PTR (.DESC_ADDR [DSC$A_POINTER]));
;   4279  2	    END;
;   4280  2	    RETURN SS$_NORMAL;
;   4281  1	    END;					! End of COPY_FILE





;COPY_DESC
U.14:	.WORD   ^M<R2,R3,R4,R5>			     ;Save R2,R3,R4,R5							      ; 4223
	MOVL    32(AP), R0			     ;32(AP), DESC_ADDR							      ; 4270
	MOVZWL  W^U.59, R2			     ;U.59, R2								      ; 4276
	MOVW    R2, (R0)			     ;R2, (DESC_ADDR)							      ;
	MOVAB   1(R2), R1			     ;1(R2), R1								      ; 4277
	MOVC5   R2, W^U.60, #0, R1, @4(R0)	     ;R2, U.60, #0, R1, @4(DESC_ADDR)					      ; 4278
	MOVL    #1, R0				     ;#1, R0								      ; 4280
	RET     				     ;									      ; 4281

; Routine Size:  31 bytes,    Routine Base:  $CODE$ + 0FCB


;   4282  1	%SBTTL 'TPARSE support -- COPY_ALT_FILE - Copy file specification'
;   4283  1	ROUTINE COPY_ALT_FILE =
;   4284  1	
;   4285  1	!++
;   4286  1	! FUNCTIONAL DESCRIPTION:
;   4287  1	!
;   4288  1	!	This routine will copy the file name from the temporary
;   4289  1	!	descriptor to the descriptor that is used for the file name.
;   4290  1	!	(ALT_FILE_NAME).
;   4291  1	!	This is for use by the RECEIVE command so that the user may
;   4292  1	!	specify an alternate file name for the received file.
;   4293  1	!
;   4294  1	! CALLING SEQUENCE:
;   4295  1	!
;   4296  1	!	COPY_ALT_FILE();
;   4297  1	!
;   4298  1	! INPUT PARAMETERS:
;   4299  1	!
;   4300  1	!	None.
;   4301  1	!
;   4302  1	! IMPLICIT INPUTS:
;   4303  1	!
;   4304  1	!	TEMP_DESC and TEMP_NAME set up with the device name and length
;   4305  1	!	in the descriptor.
;   4306  1	!
;   4307  1	! OUTPUT PARAMETERS:
;   4308  1	!
;   4309  1	!	None.
;   4310  1	!
;   4311  1	! IMPLICIT OUTPUTS:
;   4312  1	!
;   4313  1	!	ALT_FILE_NAME set up with what was in TEMP_NAME and
;   4314  1	!	TEMP_DESC.
;   4315  1	!
;   4316  1	! COMPLETION CODES:
;   4317  1	!
;   4318  1	!	0 - Failure.
;   4319  1	!	1 - Success.
;   4320  1	!
;   4321  1	! SIDE EFFECTS:
;   4322  1	!
;   4323  1	!	None.
;   4324  1	!
;   4325  1	!--
;   4326  1	
;   4327  2	    BEGIN
;   4328  2	    ALT_FILE_SIZE = .TEMP_DESC [DSC$W_LENGTH];
;   4329  2	    CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1,
;   4330  2		CH$PTR (ALT_FILE_NAME));
;   4331  2	    RETURN SS$_NORMAL;
;   4332  1	    END;					! End of COPY_ALT_FILE





;COPY_ALT_FILE
U.15:	.WORD   ^M<R2,R3,R4,R5>			     ;Save R2,R3,R4,R5							      ; 4283
	MOVZWL  W^U.59, R1			     ;U.59, R1								      ; 4328
	MOVL    R1, W^ALT_FILE_SIZE		     ;R1, ALT_FILE_SIZE							      ;
	MOVAB   1(R1), R0			     ;1(R1), R0								      ; 4329
	MOVC5   R1, W^U.60, #0, R0, W^ALT_FILE_NAME  ;R1, U.60, #0, R0, ALT_FILE_NAME					      ; 4330
	MOVL    #1, R0				     ;#1, R0								      ; 4331
	RET     				     ;									      ; 4332

; Routine Size:  30 bytes,    Routine Base:  $CODE$ + 0FEA


;   4333  1	%SBTTL 'TPARSE support -- COPY_GEN_1DATA - Copy generic command argument'
;   4334  1	ROUTINE COPY_GEN_1DATA =
;   4335  1	
;   4336  1	!++
;   4337  1	! FUNCTIONAL DESCRIPTION:
;   4338  1	!
;   4339  1	!	This routine will copy the generic command argument from the
;   4340  1	!	temporary descriptor to the global storage for the argument
;   4341  1	!	(GEN_1DATA).
;   4342  1	!
;   4343  1	! CALLING SEQUENCE:
;   4344  1	!
;   4345  1	!	COPY_GEN_1DATA();
;   4346  1	!
;   4347  1	! INPUT PARAMETERS:
;   4348  1	!
;   4349  1	!	None.
;   4350  1	!
;   4351  1	! IMPLICIT INPUTS:
;   4352  1	!
;   4353  1	!	TEMP_DESC and TEMP_NAME set up with the device name and length
;   4354  1	!	in the descriptor.
;   4355  1	!
;   4356  1	! OUTPUT PARAMETERS:
;   4357  1	!
;   4358  1	!	None.
;   4359  1	!
;   4360  1	! IMPLICIT OUTPUTS:
;   4361  1	!
;   4362  1	!	GEN_1DATA and GEN_1SIZE set up with what was in TEMP_NAME and
;   4363  1	!	TEMP_DESC.
;   4364  1	!
;   4365  1	! COMPLETION CODES:
;   4366  1	!
;   4367  1	!	0 - Failure.
;   4368  1	!	1 - Success.
;   4369  1	!
;   4370  1	! SIDE EFFECTS:
;   4371  1	!
;   4372  1	!	None.
;   4373  1	!
;   4374  1	!--
;   4375  1	
;   4376  2	    BEGIN
;   4377  2	    GEN_1SIZE = .TEMP_DESC [DSC$W_LENGTH];
;   4378  2	    CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1,
;   4379  2		CH$PTR (GEN_1DATA));
;   4380  2	    RETURN SS$_NORMAL;
;   4381  1	    END;					! End of COPY_GEN_1DATA





;COPY_GEN_1DATA
U.16:	.WORD   ^M<R2,R3,R4,R5>			     ;Save R2,R3,R4,R5							      ; 4334
	MOVZWL  W^U.59, R1			     ;U.59, R1								      ; 4377
	MOVL    R1, W^GEN_1SIZE			     ;R1, GEN_1SIZE							      ;
	MOVAB   1(R1), R0			     ;1(R1), R0								      ; 4378
	MOVC5   R1, W^U.60, #0, R0, W^GEN_1DATA      ;R1, U.60, #0, R0, GEN_1DATA					      ; 4379
	MOVL    #1, R0				     ;#1, R0								      ; 4380
	RET     				     ;									      ; 4381

; Routine Size:  30 bytes,    Routine Base:  $CODE$ + 1008


;   4382  1	%SBTTL 'TPARSE support -- COPY_GEN_2DATA - Copy generic command argument'
;   4383  1	ROUTINE COPY_GEN_2DATA =
;   4384  1	
;   4385  1	!++
;   4386  1	! FUNCTIONAL DESCRIPTION:
;   4387  1	!
;   4388  1	!	This routine will copy the generic command argument from the
;   4389  1	!	temporary descriptor to the global storage for the argument
;   4390  1	!	(GEN_2DATA).
;   4391  1	!
;   4392  1	! CALLING SEQUENCE:
;   4393  1	!
;   4394  1	!	COPY_GEN_2DATA();
;   4395  1	!
;   4396  1	! INPUT PARAMETERS:
;   4397  1	!
;   4398  1	!	None.
;   4399  1	!
;   4400  1	! IMPLICIT INPUTS:
;   4401  1	!
;   4402  1	!	TEMP_DESC and TEMP_NAME set up with the device name and length
;   4403  1	!	in the descriptor.
;   4404  1	!
;   4405  1	! OUTPUT PARAMETERS:
;   4406  1	!
;   4407  1	!	None.
;   4408  1	!
;   4409  1	! IMPLICIT OUTPUTS:
;   4410  1	!
;   4411  1	!	GEN_2DATA and GEN_2SIZE set up with what was in TEMP_NAME and
;   4412  1	!	TEMP_DESC.
;   4413  1	!
;   4414  1	! COMPLETION CODES:
;   4415  1	!
;   4416  1	!	0 - Failure.
;   4417  1	!	1 - Success.
;   4418  1	!
;   4419  1	! SIDE EFFECTS:
;   4420  1	!
;   4421  1	!	None.
;   4422  1	!
;   4423  1	!--
;   4424  1	
;   4425  2	    BEGIN
;   4426  2	    GEN_2SIZE = .TEMP_DESC [DSC$W_LENGTH];
;   4427  2	    CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1,
;   4428  2		CH$PTR (GEN_2DATA));
;   4429  2	    RETURN SS$_NORMAL;
;   4430  1	    END;					! End of COPY_GEN_2DATA





COPY_GEN_2DATA:
	.WORD   ^M<R2,R3,R4,R5>			     ;Save R2,R3,R4,R5							      ; 4383
	MOVZWL  W^U.59, R1			     ;U.59, R1								      ; 4426
	MOVL    R1, W^GEN_2SIZE			     ;R1, GEN_2SIZE							      ;
	MOVAB   1(R1), R0			     ;1(R1), R0								      ; 4427
	MOVC5   R1, W^U.60, #0, R0, W^GEN_2DATA      ;R1, U.60, #0, R0, GEN_2DATA					      ; 4428
	MOVL    #1, R0				     ;#1, R0								      ; 4429
	RET     				     ;									      ; 4430

; Routine Size:  30 bytes,    Routine Base:  $CODE$ + 1026


;   4431  1	%SBTTL 'TPARSE support -- COPY_GEN_3DATA - Copy generic command argument'
;   4432  1	ROUTINE COPY_GEN_3DATA =
;   4433  1	
;   4434  1	!++
;   4435  1	! FUNCTIONAL DESCRIPTION:
;   4436  1	!
;   4437  1	!	This routine will copy the generic command argument from the
;   4438  1	!	temporary descriptor to the global storage for the argument
;   4439  1	!	(GEN_3DATA).
;   4440  1	!
;   4441  1	! CALLING SEQUENCE:
;   4442  1	!
;   4443  1	!	COPY_GEN_3DATA();
;   4444  1	!
;   4445  1	! INPUT PARAMETERS:
;   4446  1	!
;   4447  1	!	None.
;   4448  1	!
;   4449  1	! IMPLICIT INPUTS:
;   4450  1	!
;   4451  1	!	TEMP_DESC and TEMP_NAME set up with the device name and length
;   4452  1	!	in the descriptor.
;   4453  1	!
;   4454  1	! OUTPUT PARAMETERS:
;   4455  1	!
;   4456  1	!	None.
;   4457  1	!
;   4458  1	! IMPLICIT OUTPUTS:
;   4459  1	!
;   4460  1	!	GEN_3DATA and GEN_3SIZE set up with what was in TEMP_NAME and
;   4461  1	!	TEMP_DESC.
;   4462  1	!
;   4463  1	! COMPLETION CODES:
;   4464  1	!
;   4465  1	!	0 - Failure.
;   4466  1	!	1 - Success.
;   4467  1	!
;   4468  1	! SIDE EFFECTS:
;   4469  1	!
;   4470  1	!	None.
;   4471  1	!
;   4472  1	!--
;   4473  1	
;   4474  2	    BEGIN
;   4475  2	    GEN_3SIZE = .TEMP_DESC [DSC$W_LENGTH];
;   4476  2	    CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1,
;   4477  2		CH$PTR (GEN_3DATA));
;   4478  2	    RETURN SS$_NORMAL;
;   4479  1	    END;					! End of COPY_GEN_3DATA





COPY_GEN_3DATA:
	.WORD   ^M<R2,R3,R4,R5>			     ;Save R2,R3,R4,R5							      ; 4432
	MOVZWL  W^U.59, R1			     ;U.59, R1								      ; 4475
	MOVL    R1, W^GEN_3SIZE			     ;R1, GEN_3SIZE							      ;
	MOVAB   1(R1), R0			     ;1(R1), R0								      ; 4476
	MOVC5   R1, W^U.60, #0, R0, W^GEN_3DATA      ;R1, U.60, #0, R0, GEN_3DATA					      ; 4477
	MOVL    #1, R0				     ;#1, R0								      ; 4478
	RET     				     ;									      ; 4479

; Routine Size:  30 bytes,    Routine Base:  $CODE$ + 1044


;   4480  1	%SBTTL 'COPY_TERM_NAME'
;   4481  1	ROUTINE COPY_TERM_NAME =
;   4482  1	
;   4483  1	!++
;   4484  1	! FUNCTIONAL DESCRIPTION:
;   4485  1	!
;   4486  1	!	This routine will copy the device name from the temporary
;   4487  1	!	descriptor to the descriptor that is used for the terminal name.
;   4488  1	!	(TERM_NAME and TERM_DESC).
;   4489  1	!	It will call KERTRM to validate the name as a usuable terminal.
;   4490  1	!
;   4491  1	! CALLING SEQUENCE:
;   4492  1	!
;   4493  1	!	COPY_TERM_NAME();
;   4494  1	!
;   4495  1	! INPUT PARAMETERS:
;   4496  1	!
;   4497  1	!	None.
;   4498  1	!
;   4499  1	! IMPLICIT INPUTS:
;   4500  1	!
;   4501  1	!	TEMP_DESC and TEMP_NAME set up with the device name and length
;   4502  1	!	in the descriptor.
;   4503  1	!
;   4504  1	! OUTPUT PARAMETERS:
;   4505  1	!
;   4506  1	!	None.
;   4507  1	!
;   4508  1	! IMPLICIT OUTPUTS:
;   4509  1	!
;   4510  1	!	TERM_NAME and TERM_DESC set up with what was in TEMP_NAME and
;   4511  1	!	TEMP_DESC.
;   4512  1	!
;   4513  1	! COMPLETION CODES:
;   4514  1	!
;   4515  1	!	0 - Failure.
;   4516  1	!	1 - Success.
;   4517  1	!
;   4518  1	! SIDE EFFECTS:
;   4519  1	!
;   4520  1	!	None.
;   4521  1	!
;   4522  1	!--
;   4523  1	
;   4524  2	    BEGIN
;   4525  2	
;   4526  2	    EXTERNAL
;   4527  2		JOB_TERM_DESC : BLOCK [8, BYTE];	! Descriptor for jobs contolling terminal
;   4528  2	
;   4529  2	    IF NOT CH$FAIL (CH$FIND_NOT_CH (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (.TEMP_DESC [DSC$A_POINTER]), %C' '))
;   4530  2	    THEN
;   4531  2		RETURN SET_TRANS_TERM (TEMP_DESC)
;   4532  2	    ELSE
;   4533  2	
;   4534  2		IF NOT SET_TRANS_TERM (%ASCID'KER$COMM')
;   4535  2		THEN
;   4536  2	
;   4537  2		    IF NOT SET_TRANS_TERM (%ASCID'SYS$INPUT')
;   4538  2		    THEN
;   4539  2	
;   4540  2			IF NOT SET_TRANS_TERM (%ASCID'SYS$OUTPUT')
;   4541  2			THEN
;   4542  2	
;   4543  2			    IF NOT SET_TRANS_TERM (%ASCID'SYS$COMMAND') THEN RETURN SET_TRANS_TERM (JOB_TERM_DESC);
;   4544  2	
;   4545  2	    RETURN SS$_NORMAL;
;   4546  1	    END;					! End of COPY_TERM_NAME



	.PSECT  $PLIT$,NOWRT,NOEXE,2

P.AFY:	.ASCII  \KER$COMM\			     ;									      ;
P.AFX:	.LONG   17694728			     ;									      ;
	.ADDRESS P.AFY				     ;									      ;
P.AGA:	.ASCII  \SYS$INPUT\<0><0><0>		     ;									      ;
P.AFZ:	.LONG   17694729			     ;									      ;
	.ADDRESS P.AGA				     ;									      ;
P.AGC:	.ASCII  \SYS$OUTPUT\<0><0>		     ;									      ;
P.AGB:	.LONG   17694730			     ;									      ;
	.ADDRESS P.AGC				     ;									      ;
P.AGE:	.ASCII  \SYS$COMMAND\<0>		     ;									      ;
P.AGD:	.LONG   17694731			     ;									      ;
	.ADDRESS P.AGE				     ;									      ;

	.EXTRN  JOB_TERM_DESC

	.PSECT  $CODE$,NOWRT,2

;COPY_TERM_NAME
U.13:	.WORD   ^M<R2>				     ;Save R2								      ; 4481
	MOVAB   W^SET_TRANS_TERM, R2		     ;SET_TRANS_TERM, R2						      ;
	SKPC    #32, W^U.59, @W^U.59+4		     ;#32, U.59, @U.59+4						      ; 4529
	BNEQ    1$				     ;1$								      ;
	CLRL    R1				     ;R1								      ;
1$:	TSTL    R1				     ;R1								      ;
	BEQL    2$				     ;2$								      ;
	PUSHAB  W^U.59				     ;U.59								      ; 4531
	BRB     3$				     ;3$								      ;
2$:	PUSHAB  W^P.AFX				     ;P.AFX								      ; 4534
	CALLS   #1, (R2)			     ;#1, SET_TRANS_TERM						      ;
	BLBS    R0, 4$				     ;R0, 4$								      ;
	PUSHAB  W^P.AFZ				     ;P.AFZ								      ; 4537
	CALLS   #1, (R2)			     ;#1, SET_TRANS_TERM						      ;
	BLBS    R0, 4$				     ;R0, 4$								      ;
	PUSHAB  W^P.AGB				     ;P.AGB								      ; 4540
	CALLS   #1, (R2)			     ;#1, SET_TRANS_TERM						      ;
	BLBS    R0, 4$				     ;R0, 4$								      ;
	PUSHAB  W^P.AGD				     ;P.AGD								      ; 4543
	CALLS   #1, (R2)			     ;#1, SET_TRANS_TERM						      ;
	BLBS    R0, 4$				     ;R0, 4$								      ;
	PUSHAB  W^JOB_TERM_DESC			     ;JOB_TERM_DESC							      ;
3$:	CALLS   #1, (R2)			     ;#1, SET_TRANS_TERM						      ;
	RET     				     ;									      ;
4$:	MOVL    #1, R0				     ;#1, R0								      ; 4545
	RET     				     ;									      ; 4546

; Routine Size:  81 bytes,    Routine Base:  $CODE$ + 1062


;   4547  1	%SBTTL 'KEY_ERROR - Handle keyword errors'
;   4548  1	ROUTINE KEY_ERROR =
;   4549  1	
;   4550  1	!++
;   4551  1	! FUNCTIONAL DESCRIPTION:
;   4552  1	!
;   4553  1	! This routine is called from the command parser (LIB$TPARSE) when a keyword
;   4554  1	! does not match.  It will just return the correct error code.
;   4555  1	!
;   4556  1	! CALLING SEQUENCE:
;   4557  1	!
;   4558  1	!	STATUS = KEY_ERROR ();
;   4559  1	!
;   4560  1	! INPUT PARAMETERS:
;   4561  1	!
;   4562  1	!	None.
;   4563  1	!
;   4564  1	! IMPLICIT INPUTS:
;   4565  1	!
;   4566  1	!	None.
;   4567  1	!
;   4568  1	! OUPTUT PARAMETERS:
;   4569  1	!
;   4570  1	!	None.
;   4571  1	!
;   4572  1	! IMPLICIT OUTPUTS:
;   4573  1	!
;   4574  1	!	None.
;   4575  1	!
;   4576  1	! COMPLETION CODES:
;   4577  1	!
;   4578  1	!	None.
;   4579  1	!
;   4580  1	! SIDE EFFECTS:
;   4581  1	!
;   4582  1	!	None.
;   4583  1	!
;   4584  1	!--
;   4585  1	
;   4586  2	    BEGIN
;   4587  2	    TPARSE_ARGS;
;   4588  2	
;   4589  2	    IF .AP [TPA$V_AMBIG] THEN RETURN KER_AMBIGKEY ELSE RETURN KER_UNKNOWKEY;
;   4590  2	
;   4591  1	    END;					! End of KEY_ERROR





;KEY_ERROR
U.33:	.WORD   ^M<>				     ;Save nothing							      ; 4548
	BLBC    6(AP), 1$			     ;6(AP), 1$								      ; 4589
	MOVL    #134316282, R0			     ;#134316282, R0							      ;
	RET     				     ;									      ;
1$:	MOVL    #134316290, R0			     ;#134316290, R0							      ;
	RET     				     ;									      ; 4591

; Routine Size:  22 bytes,    Routine Base:  $CODE$ + 10B3


;   4592  1	%SBTTL 'XFR_STATUS - Return the transfer status'
;   4593  1	
;   4594  1	GLOBAL ROUTINE XFR_STATUS (TYPE, SUB_TYPE) : NOVALUE =
;   4595  1	
;   4596  1	!++
;   4597  1	! FUNCTIONAL DESCRIPTION:
;   4598  1	!
;   4599  1	!	This routine is called after either a packet has been received
;   4600  1	!	correctly at the receive level, a packet has been sent, or
;   4601  1	!	either a NAK has been sent or received.
;   4602  1	!
;   4603  1	! CALLING SEQUENCE:
;   4604  1	!
;   4605  1	!	XFR_STATUS (Type);
;   4606  1	!
;   4607  1	! INPUT PARAMETERS:
;   4608  1	!
;   4609  1	!	Type - ASCII Characters describing the type of transfer
;   4610  1	!
;   4611  1	! IMPLICIT INPUTS:
;   4612  1	!
;   4613  1	!	None.
;   4614  1	!
;   4615  1	! OUPTUT PARAMETERS:
;   4616  1	!
;   4617  1	!	None.
;   4618  1	!
;   4619  1	! IMPLICIT OUTPUTS:
;   4620  1	!
;   4621  1	!	None.
;   4622  1	!
;   4623  1	! COMPLETION CODES:
;   4624  1	!
;   4625  1	!	None.
;   4626  1	!
;   4627  1	! SIDE EFFECTS:
;   4628  1	!
;   4629  1	!	None.
;   4630  1	!
;   4631  1	!--
;   4632  1	
;   4633  2	    BEGIN
;   4634  2	
;   4635  2	    EXTERNAL ROUTINE
;   4636  2		LOG_FAOL;
;   4637  2	
;   4638  2	!
;   4639  2	! If we have a journal file (transaction log), then say what we are doing.
;   4640  2	!
;   4641  2	
;   4642  2	    IF .TRANSACTION_OPEN AND .TYPE EQL %C'F'
;   4643  2	    THEN
;   4644  3		BEGIN
;   4645  3		FILE_DESC [DSC$W_LENGTH] = .FILE_SIZE;	! Make sure size is right
;   4646  3	
;   4647  3		SELECTONE .SUB_TYPE OF
;   4648  3		    SET
;   4649  3	
;   4650  3		    [%C'S'] :
;   4651  3			LOG_FAOL (%ASCID'!%T!_Sending file !AS!/', UPLIT (0, FILE_DESC), TRANSACTION_RAB);
;   4652  3	
;   4653  3		    [%C'R'] :
;   4654  3			LOG_FAOL (%ASCID'!%T!_Receiving file !AS!/', UPLIT (0, FILE_DESC), TRANSACTION_RAB);
;   4655  3	
;   4656  3		    [%C'C'] :
;   4657  3			LOG_FAOL (%ASCID'!%T!_Closing file !AS!/', UPLIT (0, FILE_DESC), TRANSACTION_RAB);
;   4658  3	
;   4659  3		    [%C'X'] :
;   4660  3			LOG_FAOL (%ASCID'!%T!_Aborting file !AS by user request!/', UPLIT (0, FILE_DESC),
;   4661  3			    TRANSACTION_RAB);
;   4662  3	
;   4663  3		    [%C'Z'] :
;   4664  3			LOG_FAOL (%ASCID'!%T!_Aborting file group !AS by user request!/', UPLIT (0, FILE_DESC),
;   4665  3			    TRANSACTION_RAB);
;   4666  3	
;   4667  3		    [%C'D'] :
;   4668  3			LOG_FAOL (%ASCID'!%T!_Aborting file !AS, partial file saved!/', UPLIT (0, FILE_DESC),
;   4669  3			    TRANSACTION_RAB);
;   4670  3	
;   4671  3		    [%C'A'] :
;   4672  3			LOG_FAOL (%ASCID'!%T!_Aborting file !AS due to protocol error!/', UPLIT (0, FILE_DESC),
;   4673  3			    TRANSACTION_RAB);
;   4674  3		    TES;
;   4675  3	
;   4676  2		END;
;   4677  2	
;   4678  2	    IF .TY_PKT
;   4679  2	    THEN
;   4680  3		BEGIN
;   4681  3	
;   4682  3		SELECTONE .TYPE OF
;   4683  3		    SET
;   4684  3	
;   4685  3		    [%ASCII'R'] :
;   4686  4			BEGIN
;   4687  4	
;   4688  4			IF .SUB_TYPE EQL %C'P'
;   4689  4			THEN
;   4690  5			    BEGIN
;   4691  5			    TT_TEXT (UPLIT (%ASCIZ' R'));
;   4692  5			    TT_NUMBER (.RMSG_COUNT);
;   4693  4			    END;
;   4694  4	
;   4695  4			IF .SUB_TYPE EQL %C'N'
;   4696  4			THEN
;   4697  5			    BEGIN
;   4698  5			    TT_TEXT (UPLIT (%ASCIZ' R%'));
;   4699  5			    TT_NUMBER (.RMSG_NAKS);
;   4700  4			    END;
;   4701  4	
;   4702  3			END;
;   4703  3	
;   4704  3		    [%ASCII'S'] :
;   4705  4			BEGIN
;   4706  4	
;   4707  4			IF .SUB_TYPE EQL %C'P'
;   4708  4			THEN
;   4709  5			    BEGIN
;   4710  5			    TT_TEXT (UPLIT (%ASCIZ' S'));
;   4711  5			    TT_NUMBER (.SMSG_COUNT);
;   4712  4			    END;
;   4713  4	
;   4714  4			IF .SUB_TYPE EQL %C'N'
;   4715  4			THEN
;   4716  5			    BEGIN
;   4717  5			    TT_TEXT (UPLIT (%ASCIZ' S%'));
;   4718  5			    TT_NUMBER (.SMSG_NAKS);
;   4719  4			    END;
;   4720  4	
;   4721  3			END;
;   4722  3		    TES;
;   4723  3	
;   4724  3		TT_OUTPUT ();
;   4725  2		END;
;   4726  2	
;   4727  1	    END;					! End of XFR_STATUS



	.PSECT  $PLIT$,NOWRT,NOEXE,2

P.AGG:	.ASCII  \!%T!_Sending file !AS!/\<0>	     ;									      ;
P.AGF:	.LONG   17694743			     ;									      ;
	.ADDRESS P.AGG				     ;									      ;
P.AGH:	.LONG   0				     ;									      ;
	.ADDRESS FILE_DESC			     ;									      ;
P.AGJ:	.ASCII  \!%T!_Receiving file !AS!/\<0><0><0> ;									      ;
P.AGI:	.LONG   17694745			     ;									      ;
	.ADDRESS P.AGJ				     ;									      ;
P.AGK:	.LONG   0				     ;									      ;
	.ADDRESS FILE_DESC			     ;									      ;
P.AGM:	.ASCII  \!%T!_Closing file !AS!/\<0>	     ;									      ;
P.AGL:	.LONG   17694743			     ;									      ;
	.ADDRESS P.AGM				     ;									      ;
P.AGN:	.LONG   0				     ;									      ;
	.ADDRESS FILE_DESC			     ;									      ;
P.AGP:	.ASCII  \!%T!_Aborting file !AS by user request!/\
						     ;									      ;
P.AGO:	.LONG   17694760			     ;									      ;
	.ADDRESS P.AGP				     ;									      ;
P.AGQ:	.LONG   0				     ;									      ;
	.ADDRESS FILE_DESC			     ;									      ;
P.AGS:	.ASCII  \!%T!_Aborting file group !AS by user request!/\<0><0>
						     ;									      ;
P.AGR:	.LONG   17694766			     ;									      ;
	.ADDRESS P.AGS				     ;									      ;
P.AGT:	.LONG   0				     ;									      ;
	.ADDRESS FILE_DESC			     ;									      ;
P.AGV:	.ASCII  \!%T!_Aborting file !AS, partial file saved!/\
						     ;									      ;
P.AGU:	.LONG   17694764			     ;									      ;
	.ADDRESS P.AGV				     ;									      ;
P.AGW:	.LONG   0				     ;									      ;
	.ADDRESS FILE_DESC			     ;									      ;
P.AGY:	.ASCII  \!%T!_Aborting file !AS due to protocol error!/\<0><0>
						     ;									      ;
P.AGX:	.LONG   17694766			     ;									      ;
	.ADDRESS P.AGY				     ;									      ;
P.AGZ:	.LONG   0				     ;									      ;
	.ADDRESS FILE_DESC			     ;									      ;
P.AHA:	.ASCII  \ R\<0><0>			     ;									      ;
P.AHB:	.ASCII  \ R%\<0>			     ;									      ;
P.AHC:	.ASCII  \ S\<0><0>			     ;									      ;
P.AHD:	.ASCII  \ S%\<0>			     ;									      ;

	.EXTRN  LOG_FAOL

	.PSECT  $CODE$,NOWRT,2

	.ENTRY  XFR_STATUS, ^M<R2,R3,R4,R5,R6>	     ;XFR_STATUS, Save R2,R3,R4,R5,R6					      ; 4594
	MOVAB   W^TT_NUMBER, R6			     ;TT_NUMBER, R6							      ;
	MOVAB   W^TT_TEXT, R5			     ;TT_TEXT, R5							      ;
	MOVAB   W^TRANSACTION_RAB, R4		     ;TRANSACTION_RAB, R4						      ;
	MOVAB   W^P.AGH, R3			     ;P.AGH, R3								      ;
	BLBS    -84(R4), 2$			     ;TRANSACTION_OPEN, 2$						      ; 4642
1$:	BRW     10$				     ;10$								      ;
2$:	CMPL    4(AP), #70			     ;TYPE, #70								      ;
	BNEQ    1$				     ;1$								      ;
	MOVW    W^FILE_SIZE, W^FILE_DESC	     ;FILE_SIZE, FILE_DESC						      ; 4645
	MOVL    8(AP), R2			     ;SUB_TYPE, R2							      ; 4647
	CMPL    R2, #83				     ;R2, #83								      ; 4650
	BNEQ    3$				     ;3$								      ;
	PUSHR   #^M<R3,R4>			     ;#^M<R3,R4>							      ; 4651
	PUSHAB  -8(R3)				     ;P.AGF								      ;
	BRB     9$				     ;9$								      ;
3$:	CMPL    R2, #82				     ;R2, #82								      ; 4653
	BNEQ    4$				     ;4$								      ;
	PUSHL   R4				     ;R4								      ; 4654
	PUSHAB  44(R3)				     ;P.AGK								      ;
	PUSHAB  36(R3)				     ;P.AGI								      ;
	BRB     9$				     ;9$								      ;
4$:	CMPL    R2, #67				     ;R2, #67								      ; 4656
	BNEQ    5$				     ;5$								      ;
	PUSHL   R4				     ;R4								      ; 4657
	PUSHAB  84(R3)				     ;P.AGN								      ;
	PUSHAB  76(R3)				     ;P.AGL								      ;
	BRB     9$				     ;9$								      ;
5$:	CMPL    R2, #88				     ;R2, #88								      ; 4659
	BNEQ    6$				     ;6$								      ;
	PUSHL   R4				     ;R4								      ; 4660
	PUSHAB  140(R3)				     ;P.AGQ								      ;
	PUSHAB  132(R3)				     ;P.AGO								      ;
	BRB     9$				     ;9$								      ;
6$:	CMPL    R2, #90				     ;R2, #90								      ; 4663
	BNEQ    7$				     ;7$								      ;
	PUSHL   R4				     ;R4								      ; 4664
	PUSHAB  204(R3)				     ;P.AGT								      ;
	PUSHAB  196(R3)				     ;P.AGR								      ;
	BRB     9$				     ;9$								      ;
7$:	CMPL    R2, #68				     ;R2, #68								      ; 4667
	BNEQ    8$				     ;8$								      ;
	PUSHL   R4				     ;R4								      ; 4668
	PUSHAB  264(R3)				     ;P.AGW								      ;
	PUSHAB  256(R3)				     ;P.AGU								      ;
	BRB     9$				     ;9$								      ;
8$:	CMPL    R2, #65				     ;R2, #65								      ; 4671
	BNEQ    10$				     ;10$								      ;
	PUSHL   R4				     ;R4								      ; 4672
	PUSHAB  328(R3)				     ;P.AGZ								      ;
	PUSHAB  320(R3)				     ;P.AGX								      ;
9$:	CALLS   #3, W^LOG_FAOL			     ;#3, LOG_FAOL							      ;
10$:	BLBC    W^TY_PKT, 16$			     ;TY_PKT, 16$							      ; 4678
	MOVL    4(AP), R0			     ;TYPE, R0								      ; 4682
	CMPL    R0, #82				     ;R0, #82								      ; 4685
	BNEQ    12$				     ;12$								      ;
	CMPL    8(AP), #80			     ;SUB_TYPE, #80							      ; 4688
	BNEQ    11$				     ;11$								      ;
	PUSHAB  336(R3)				     ;P.AHA								      ; 4691
	CALLS   #1, (R5)			     ;#1, TT_TEXT							      ;
	PUSHL   W^RMSG_COUNT			     ;RMSG_COUNT							      ; 4692
	CALLS   #1, (R6)			     ;#1, TT_NUMBER							      ;
11$:	CMPL    8(AP), #78			     ;SUB_TYPE, #78							      ; 4695
	BNEQ    15$				     ;15$								      ;
	PUSHAB  340(R3)				     ;P.AHB								      ; 4698
	CALLS   #1, (R5)			     ;#1, TT_TEXT							      ;
	PUSHL   W^RMSG_NAKS			     ;RMSG_NAKS								      ; 4699
	BRB     14$				     ;14$								      ;
12$:	CMPL    R0, #83				     ;R0, #83								      ; 4704
	BNEQ    15$				     ;15$								      ;
	CMPL    8(AP), #80			     ;SUB_TYPE, #80							      ; 4707
	BNEQ    13$				     ;13$								      ;
	PUSHAB  344(R3)				     ;P.AHC								      ; 4710
	CALLS   #1, (R5)			     ;#1, TT_TEXT							      ;
	PUSHL   W^SMSG_COUNT			     ;SMSG_COUNT							      ; 4711
	CALLS   #1, (R6)			     ;#1, TT_NUMBER							      ;
13$:	CMPL    8(AP), #78			     ;SUB_TYPE, #78							      ; 4714
	BNEQ    15$				     ;15$								      ;
	PUSHAB  348(R3)				     ;P.AHD								      ; 4717
	CALLS   #1, (R5)			     ;#1, TT_TEXT							      ;
	PUSHL   W^SMSG_NAKS			     ;SMSG_NAKS								      ; 4718
14$:	CALLS   #1, (R6)			     ;#1, TT_NUMBER							      ;
15$:	CALLS   #0, W^TT_OUTPUT			     ;#0, TT_OUTPUT							      ; 4724
16$:	RET     				     ;									      ; 4727

; Routine Size:  319 bytes,    Routine Base:  $CODE$ + 10C9


;   4728  1	
;   4729  1	%SBTTL 'CRCCLC - Calculate the CRC-CCITT for a message'
;   4730  1	
;   4731  1	GLOBAL ROUTINE CRCCLC (POINTER, SIZE) =
;   4732  1	
;   4733  1	!++
;   4734  1	! FUNCTIONAL DESCRIPTION:
;   4735  1	!
;   4736  1	!	This routine will calculate the CRC for a message.  It will use
;   4737  1	!	the VAX LIB$ routine to do all the work.
;   4738  1	!
;   4739  1	! CALLING SEQUENCE:
;   4740  1	!
;   4741  1	!	CRC = CRCCLC(Pointer, Size)
;   4742  1	!
;   4743  1	! INPUT PARAMETERS:
;   4744  1	!
;   4745  1	!	Pointer - Character pointer to the message.
;   4746  1	!	Size - Length of the message.
;   4747  1	!
;   4748  1	! IMPLICIT INPUTS:
;   4749  1	!
;   4750  1	!	None.
;   4751  1	!
;   4752  1	! OUPTUT PARAMETERS:
;   4753  1	!
;   4754  1	!	CRC for the message.
;   4755  1	!
;   4756  1	! IMPLICIT OUTPUTS:
;   4757  1	!
;   4758  1	!	None.
;   4759  1	!
;   4760  1	! COMPLETION CODES:
;   4761  1	!
;   4762  1	!	None.
;   4763  1	!
;   4764  1	! SIDE EFFECTS:
;   4765  1	!
;   4766  1	!	None.
;   4767  1	!
;   4768  1	!--
;   4769  1	
;   4770  2	    BEGIN
;   4771  2	
;   4772  2	    LOCAL
;   4773  2		TEMP_DESC : BLOCK [8, BYTE],		! Temporary descriptor
;   4774  2		CRC_INITIAL;				! Initial CRC value
;   4775  2	
;   4776  2	    CRC_INITIAL = 0;				! Set the initial value
;   4777  2	    INIT_STR_DESC (TEMP_DESC, .POINTER, .SIZE);
;   4778  2	    RETURN LIB$CRC (CRC_TABLE, CRC_INITIAL, TEMP_DESC);
;   4779  1	    END;					! End of CRCCLC





	.ENTRY  CRCCLC, ^M<>			     ;CRCCLC, Save nothing						      ; 4731
	SUBL2   #8, SP				     ;#8, SP								      ;
	CLRL    -(SP)				     ;CRC_INITIAL							      ; 4776
	MOVW    #270, 6(SP)			     ;#270, TEMP_DESC+2							      ; 4777
	MOVW    8(AP), 4(SP)			     ;SIZE, TEMP_DESC							      ;
	MOVL    4(AP), 8(SP)			     ;POINTER, TEMP_DESC+4						      ;
	PUSHAB  4(SP)				     ;TEMP_DESC								      ; 4778
	PUSHAB  4(SP)				     ;CRC_INITIAL							      ;
	PUSHAB  W^U.56				     ;U.56								      ;
	CALLS   #3, G^LIB$CRC			     ;#3, LIB$CRC							      ;
	RET     				     ;									      ; 4779

; Routine Size:  41 bytes,    Routine Base:  $CODE$ + 1208


;   4780  1	
;   4781  1	%SBTTL 'KRM_ERROR - Issue an error message given error code'
;   4782  1	
;   4783  1	GLOBAL ROUTINE KRM_ERROR (ERROR_CODE) : NOVALUE =
;   4784  1	
;   4785  1	!++
;   4786  1	! FUNCTIONAL DESCRIPTION:
;   4787  1	!
;   4788  1	!	This routine will cause an error message to be issued to the
;   4789  1	!	user's terminal and/or a message to be sent to the remote KERMIT.
;   4790  1	!
;   4791  1	! CALLING SEQUENCE:
;   4792  1	!
;   4793  1	!	KRM_ERROR(KER_xxxxxx);
;   4794  1	!
;   4795  1	! INPUT PARAMETERS:
;   4796  1	!
;   4797  1	!	KER_xxxxxx - Error code from KERERR.REQ
;   4798  1	!
;   4799  1	! IMPLICIT INPUTS:
;   4800  1	!
;   4801  1	!	None.
;   4802  1	!
;   4803  1	! OUTPUT PARAMETERS:
;   4804  1	!
;   4805  1	!	None.
;   4806  1	!
;   4807  1	! IMPLICIT OUTPUTS:
;   4808  1	!
;   4809  1	!	None.
;   4810  1	!
;   4811  1	! COMPLETION CODES:
;   4812  1	!
;   4813  1	!	None.
;   4814  1	!
;   4815  1	! SIDE EFFECTS:
;   4816  1	!
;   4817  1	!	None.
;   4818  1	!
;   4819  1	!--
;   4820  1	
;   4821  2	    BEGIN
;   4822  2	    LIB$SIGNAL (.ERROR_CODE);
;   4823  1	    END;					! End of KRM_ERROR





	.ENTRY  KRM_ERROR, ^M<>			     ;KRM_ERROR, Save nothing						      ; 4783
	PUSHL   4(AP)				     ;ERROR_CODE							      ; 4822
	CALLS   #1, G^LIB$SIGNAL		     ;#1, LIB$SIGNAL							      ;
	RET     				     ;									      ; 4823

; Routine Size:  13 bytes,    Routine Base:  $CODE$ + 1231


;   4824  1	
;   4825  1	%SBTTL 'KERM_HANDLER - Condition handler'
;   4826  1	ROUTINE KERM_HANDLER =
;   4827  1	
;   4828  1	!++
;   4829  1	! FUNCTIONAL DESCRIPTION:
;   4830  1	!
;   4831  1	!	This is the condition handler for KERMIT-32.
;   4832  1	!
;   4833  1	! CALLING SEQUENCE:
;   4834  1	!
;   4835  1	!	Called via LIB$SIGNAL.
;   4836  1	!
;   4837  1	! INPUT PARAMETERS:
;   4838  1	!
;   4839  1	!	None.
;   4840  1	!
;   4841  1	! IMPLICIT INPUTS:
;   4842  1	!
;   4843  1	!	None.
;   4844  1	!
;   4845  1	! OUTPUT PARAMETERS:
;   4846  1	!
;   4847  1	!	None.
;   4848  1	!
;   4849  1	! IMPLICIT OUTPUTS:
;   4850  1	!
;   4851  1	!	None.
;   4852  1	!
;   4853  1	! COMPLETION CODES:
;   4854  1	!
;   4855  1	!	None.
;   4856  1	!
;   4857  1	! SIDE EFFECTS:
;   4858  1	!
;   4859  1	!	None.
;   4860  1	!
;   4861  1	!--
;   4862  1	
;   4863  2	    BEGIN
;   4864  2	
;   4865  2	    BIND
;   4866  2		FACILITY_DESC = %ASCID'KERMIT32';
;   4867  2	
;   4868  2	    BUILTIN
;   4869  2		AP;
;   4870  2	
;   4871  2	    LOCAL
;   4872  2		PUTMSG_VECTOR : VECTOR [10, LONG],
;   4873  2		SIGARGLST;				! Address of the signal argument list
;   4874  2	
;   4875  2	    MAP
;   4876  2		AP : REF BLOCK [, BYTE],
;   4877  2		SIGARGLST : REF BLOCK [, BYTE];
;   4878  2	
;   4879  2	!++
;   4880  2	!
;   4881  2	! Routine to do the actual output of the error message
;   4882  2	!
;   4883  2	!--
;   4884  2	
;   4885  2	    ROUTINE HANDLE_MSG =
;   4886  3		BEGIN
;   4887  3	
;   4888  3		EXTERNAL ROUTINE
;   4889  3		    LOG_FAOL;
;   4890  3	
;   4891  3		BUILTIN
;   4892  3		    AP;
;   4893  3	
;   4894  3		LOCAL
;   4895  3		    ERR_DESC,				! Address of the error descriptor
;   4896  3		    POINTER;				! Pointer to get characters
;   4897  3	
;   4898  3		MAP
;   4899  3		    ERR_DESC : REF BLOCK [8, BYTE],
;   4900  3		    AP : REF BLOCK [, BYTE];
;   4901  3	
;   4902  3		ERR_DESC = .AP [4, 0, 32, 0];
;   4903  3	
;   4904  3		IF .TERM_FLAG THEN SND_ERROR (.ERR_DESC [DSC$W_LENGTH], .ERR_DESC [DSC$A_POINTER]);
;   4905  3	
;   4906  3		IF .TRANSACTION_OPEN
;   4907  3		THEN
;   4908  4		    BEGIN
;   4909  4	
;   4910  4		    OWN
;   4911  4			TMP_DESC : BLOCK [8, BYTE];
;   4912  4	
;   4913  4		    INIT_STR_DESC (TMP_DESC, .ERR_DESC [DSC$A_POINTER], .ERR_DESC [DSC$W_LENGTH]);
;   4914  4		    LOG_FAOL (%ASCID'!%T!_!AS!/', UPLIT (0, TMP_DESC), TRANSACTION_RAB);
;   4915  3		    END;
;   4916  3	
;   4917  3		IF NOT .CONNECT_FLAG
;   4918  3		THEN
;   4919  4		    BEGIN
;   4920  4		    POINTER = CH$PTR (.ERR_DESC [DSC$A_POINTER]);
;   4921  4	
;   4922  4		    INCR I FROM 1 TO .ERR_DESC [DSC$W_LENGTH] DO
;   4923  4			TT_CHAR (CH$RCHAR_A (POINTER));
;   4924  4	
;   4925  4		    TT_CRLF ();
;   4926  3		    END;
;   4927  3	
;   4928  3		RETURN 0;
;   4929  2		END;



	.PSECT  $PLIT$,NOWRT,NOEXE,2

P.AHF:	.ASCII  \KERMIT32\			     ;									      ;
P.AHE:	.LONG   17694728			     ;									      ;
	.ADDRESS P.AHF				     ;									      ;
P.AHH:	.ASCII  \!%T!_!AS!/\<0><0>		     ;									      ;
P.AHG:	.LONG   17694730			     ;									      ;
	.ADDRESS P.AHH				     ;									      ;
P.AHI:	.LONG   0				     ;									      ;
	.ADDRESS TMP_DESC			     ;									      ;

	.PSECT  $OWN$,NOEXE,2

TMP_DESC:
	.BLKB   8

FACILITY_DESC=	    P.AHE


	.PSECT  $CODE$,NOWRT,2

HANDLE_MSG:
	.WORD   ^M<R2,R3,R4>			     ;Save R2,R3,R4							      ; 4885
	MOVL    4(AP), R2			     ;4(AP), ERR_DESC							      ; 4902
	BLBC    W^TERM_FLAG, 1$			     ;TERM_FLAG, 1$							      ; 4904
	PUSHL   4(R2)				     ;4(ERR_DESC)							      ;
	MOVZWL  (R2), -(SP)			     ;(ERR_DESC), -(SP)							      ;
	CALLS   #2, W^SND_ERROR			     ;#2, SND_ERROR							      ;
1$:	BLBC    W^TRANSACTION_OPEN, 2$		     ;TRANSACTION_OPEN, 2$						      ; 4906
	MOVW    #270, W^TMP_DESC+2		     ;#270, TMP_DESC+2							      ; 4913
	MOVW    (R2), W^TMP_DESC		     ;(ERR_DESC), TMP_DESC						      ;
	MOVL    4(R2), W^TMP_DESC+4		     ;4(ERR_DESC), TMP_DESC+4						      ;
	PUSHAB  W^TRANSACTION_RAB		     ;TRANSACTION_RAB							      ; 4914
	PUSHAB  W^P.AHI				     ;P.AHI								      ;
	PUSHAB  W^P.AHG				     ;P.AHG								      ;
	CALLS   #3, W^LOG_FAOL			     ;#3, LOG_FAOL							      ;
2$:	BLBS    W^CONNECT_FLAG, 5$		     ;CONNECT_FLAG, 5$							      ; 4917
	MOVL    4(R2), R4			     ;4(ERR_DESC), POINTER						      ; 4920
	MOVZWL  (R2), R3			     ;(ERR_DESC), R3							      ; 4922
	CLRL    R2				     ;I									      ;
	BRB     4$				     ;4$								      ;
3$:	MOVZBL  (R4)+, -(SP)			     ;(POINTER)+, -(SP)							      ; 4923
	CALLS   #1, W^TT_CHAR			     ;#1, TT_CHAR							      ;
4$:	AOBLEQ  R3, R2, 3$			     ;R3, I, 3$								      ;
	CALLS   #0, W^TT_CRLF			     ;#0, TT_CRLF							      ; 4925
5$:	CLRL    R0				     ;R0								      ; 4928
	RET     				     ;									      ; 4929

; Routine Size:  98 bytes,    Routine Base:  $CODE$ + 123E


;   4930  2	    SIGARGLST = .AP [CHF$L_SIGARGLST];
;   4931  2	
;   4932  2	    IF .SIGARGLST [CHF$L_SIG_NAME] GEQ %X'400' AND .SIGARGLST [CHF$L_SIG_NAME] LEQ %X'5FF'
;   4933  2	    THEN
;   4934  2		RETURN SS$_RESIGNAL;
;   4935  2	
;   4936  2	    PUTMSG_VECTOR [0] = .SIGARGLST [CHF$L_SIG_ARGS] - 2;	! No PC and PSL
;   4937  2	    PUTMSG_VECTOR [1] = .SIGARGLST [CHF$L_SIG_NAME];
;   4938  2	    PUTMSG_VECTOR [2] = .SIGARGLST [CHF$L_SIG_ARGS] - 3;
;   4939  2	
;   4940  2	    INCR I FROM 0 TO .SIGARGLST [CHF$L_SIG_ARGS] - 4 DO
;   4941  2		PUTMSG_VECTOR [.I + 3] = .(SIGARGLST [CHF$L_SIG_ARG1] + (.I*4));
;   4942  2	
;   4943  2	    $PUTMSG (MSGVEC = PUTMSG_VECTOR, ACTRTN = HANDLE_MSG, FACNAM = FACILITY_DESC);
;   4944  2	    RETURN SS$_CONTINUE;
;   4945  1	    END;					! End of KERM_HANDLER



	.EXTRN  SYS$PUTMSG

;KERM_HANDLER
U.34:	.WORD   ^M<R2>				     ;Save R2								      ; 4826
	SUBL2   #40, SP				     ;#40, SP								      ;
	MOVL    4(AP), R1			     ;4(AP), SIGARGLST							      ; 4930
	CMPL    4(R1), #1024			     ;4(SIGARGLST), #1024						      ; 4932
	BLSS    1$				     ;1$								      ;
	CMPL    4(R1), #1535			     ;4(SIGARGLST), #1535						      ;
	BGTR    1$				     ;1$								      ;
	MOVZWL  #2328, R0			     ;#2328, R0								      ; 4934
	RET     				     ;									      ;
1$:	SUBL3   #2, (R1), (SP)			     ;#2, (SIGARGLST), PUTMSG_VECTOR					      ; 4936
	MOVL    4(R1), 4(SP)			     ;4(SIGARGLST), PUTMSG_VECTOR+4					      ; 4937
	SUBL3   #3, (R1), 8(SP)			     ;#3, (SIGARGLST), PUTMSG_VECTOR+8					      ; 4938
	SUBL3   #4, (R1), R2			     ;#4, (SIGARGLST), R2						      ; 4940
	MNEGL   #1, R0				     ;#1, I								      ;
	BRB     3$				     ;3$								      ;
2$:	MOVL    8(R1)[R0], 12(SP)[R0]		     ;8(SIGARGLST)[I], PUTMSG_VECTOR+12[I]				      ; 4941
3$:	AOBLEQ  R2, R0, 2$			     ;R2, I, 2$								      ;
	CLRL    -(SP)				     ;-(SP)								      ; 4943
	PUSHAB  W^FACILITY_DESC			     ;FACILITY_DESC							      ;
	PUSHAB  W^HANDLE_MSG			     ;HANDLE_MSG							      ;
	PUSHAB  12(SP)				     ;PUTMSG_VECTOR							      ;
	CALLS   #4, G^SYS$PUTMSG		     ;#4, SYS$PUTMSG							      ;
	MOVL    #1, R0				     ;#1, R0								      ; 4944
	RET     				     ;									      ; 4945

; Routine Size:  93 bytes,    Routine Base:  $CODE$ + 12A0


;   4946  1	%SBTTL 'End of KERMIT.B32'
;   4947  1	END						! End of module
;   4948  1	
;   4949  0	ELUDOM






;				       PSECT SUMMARY
;
;	Name			 Bytes			       Attributes
;
;  $PLIT$			     2768  NOVEC,NOWRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)
;  $GLOBAL$			      300  NOVEC,  WRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)
;  $OWN$			      780  NOVEC,  WRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)
;  _LIB$KEY0$			      252  NOVEC,NOWRT,  RD ,  EXE,  SHR,  LCL,  REL,  CON,  PIC,ALIGN(1)
;  _LIB$STATE$			     1874  NOVEC,NOWRT,  RD ,  EXE,  SHR,  LCL,  REL,  CON,  PIC,ALIGN(1)
;  _LIB$KEY1$			     1111  NOVEC,NOWRT,  RD ,  EXE,  SHR,  LCL,  REL,  CON,  PIC,ALIGN(1)
;  $CODE$			     4861  NOVEC,NOWRT,  RD ,  EXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)
;  .  ABS  .			        0  NOVEC,NOWRT,NORD ,NOEXE,NOSHR,  LCL,  ABS,  CON,NOPIC,ALIGN(0)




;				Library Statistics
;
;					     -------- Symbols --------	    Pages	Processing
;	File				     Total    Loaded   Percent      Mapped	Time
;
;  SYS$COMMON:[SYSLIB]STARLET.L32;1	      9776       114         1       581          00:00.8
;  SYS$COMMON:[SYSLIB]TPAMAC.L32;1	        42        31        73        14          00:00.1







;					COMMAND QUALIFIERS

;	BLISS VMSMIT/LIST=VMSMIT.MAR/MACHINE_CODE=(ASSEM,NOBINARY,UNIQUE)/NOOBJECT/SOURCE=NOHEADER

; Compilation Complete

	.END	MAIN_ROUTINE
