; 0001 0 MODULE KERMIT (IDENT = '3.1.066', ; 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.1.066'; ![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 ; 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 record. 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 ; 0309 1 %SBTTL 'Routine definitions -- Forwards' ; 0310 1 ! ; 0311 1 ! ; 0312 1 ! Forward definitions ; 0313 1 ! ; 0314 1 ; 0315 1 ! Command processing routines ; 0316 1 ; 0317 1 FORWARD ROUTINE ; 0318 1 COMND, ! Process a command ; 0319 1 COMND_ERROR : NOVALUE, ! Give error for command ; 0320 1 COMND_FILE, ! Process command file ; 0321 1 DO_COMND, ! Parse and dispatch one command ; 0322 1 COMND_HELP : NOVALUE, ! Process the HELP command ; 0323 1 COMND_SHOW : NOVALUE, ! Process the SHOW command ; 0324 1 COMND_STATUS : NOVALUE, ! Process the STATUS command ; 0325 1 COMND_REMOTE : NOVALUE, ! Process the REMOTE command ; 0326 1 COMND_LOCAL : NOVALUE, ! Process the LOCAL commands ; 0327 1 GET_REM_ARGS, ! Get arguments for REMOTE/LOCAL commands ; 0328 1 STORE_TEXT, ! Routine to store a file name ; 0329 1 COPY_TERM_NAME, ! Copy device name (TERM_xxxx) ; 0330 1 COPY_DESC, ! Copy file name (FILE_xxx) ; 0331 1 COPY_ALT_FILE, ! Copy to alternate file name (ALT_FILE_xxx) ; 0332 1 COPY_GEN_1DATA, ! Copy to GEN_1DATA (generic command argument) ; 0333 1 STORE_DEBUG, ! Store the debuging flag ; 0334 1 STORE_FTP, ! Store the file type ; 0335 1 STORE_FNM, ! Store the file name form ; 0336 1 STORE_ECHO, ! Store the local echo flag ; 0337 1 STORE_PARITY, ! Store the parity type ; 0338 1 STORE_CHK, ! This routine will store the checksum type. ; 0339 1 STORE_ABT, ! This routine will store the aborted file disposition ; 0340 1 STORE_IBM, ! Store IBM flag ; 0341 1 STORE_MSG_FIL, ! Store TY_FIL ; 0342 1 STORE_MSG_PKT, ! Store TY_PKT ; 0343 1 CHECK_PACKET_LEN, ! Validate PACKET length given ; 0344 1 CHECK_NPAD, ! Validate the number of pad characters ; 0345 1 CHECK_PAD_CHAR, ! Validate the padding character being set ; 0346 1 CHECK_EOL, ! Validate EOL character given. ; 0347 1 CHECK_QUOTE, ! Validate quoting character ; 0348 1 CHECK_SOH, ! Validate the start of packet character given ; 0349 1 KEY_ERROR; ! Return correct keyword error value ; 0350 1 ; 0351 1 ! ; 0352 1 ! Error handling routines ; 0353 1 ! ; 0354 1 ; 0355 1 FORWARD ROUTINE ; 0356 1 KERM_HANDLER; ! Condition handler ; 0357 1 %SBTTL 'Include files' ; 0358 1 ; 0359 1 ! ; 0360 1 ! INCLUDE FILES: ; 0361 1 ! ; 0362 1 ; 0363 1 LIBRARY 'SYS$LIBRARY:STARLET'; ; 0364 1 ; 0365 1 LIBRARY 'SYS$LIBRARY:TPAMAC'; ; 0366 1 ; 0367 1 REQUIRE 'KERCOM'; ! Common definitions ; 0572 1 ; 0573 1 REQUIRE 'KERERR'; ! Error message symbol definitions ; 0638 1 ; 0639 1 %SBTTL 'Structure definitions -- $GETDVI arguments' ; 0640 1 ! ; 0641 1 ! $GETDVI interface fields and structure definition ; 0642 1 ! ; 0643 1 ; 0644 1 LITERAL ; 0645 1 DVI_SIZE = 3; ! Length of a DVI item list entry ; 0646 1 ; 0647 1 ! ; 0648 1 ! Fields for accessing the items in a DVI item list ; 0649 1 ! ; 0650 1 ; 0651 1 FIELD ; 0652 1 DVI_FIELDS = ; 0653 1 SET ; 0654 1 DVI_BFR_LENGTH = [0, 0, 16, 0], ; 0655 1 DVI_ITEM_CODE = [0, 16, 16, 0], ; 0656 1 DVI_BFR_ADDRESS = [1, 0, 32, 0], ; 0657 1 DVI_RTN_LENGTH = [2, 0, 32, 0] ; 0658 1 TES; ; 0659 1 ; 0660 1 ! ; 0661 1 ! Structure definition for item list ; 0662 1 ; 0663 1 STRUCTURE ; 0664 1 DVI_ITEM_LIST [I, O, P, S, E; N] = ; 0665 1 [(N + 1)*DVI_SIZE*4] ; 0666 1 (DVI_ITEM_LIST + ((I*DVI_SIZE) + O)*4); ; 0667 1 ; 0668 1 %SBTTL 'Macro definitions' ; 0669 1 ; 0670 1 ! ; 0671 1 ! MACROS: ; 0672 1 ! ; 0673 1 ; 0674 1 MACRO ; M 0675 1 TPARSE_ARGS = ; M 0676 1 BUILTIN AP; ; M 0677 1 MAP AP : REF BLOCK [,BYTE]; ; 0678 1 %; ; 0679 1 ; 0680 1 ! ; 0681 1 ! Macro to initialize a string descriptor ; 0682 1 ! ; 0683 1 MACRO ; M 0684 1 INIT_STR_DESC (DESC, BUFFER, SIZE) = ; M 0685 1 BEGIN ; M 0686 1 ! MAP ; M 0687 1 ! DESC : BLOCK [8, BYTE]; ; M 0688 1 DESC [DSC$B_CLASS] = DSC$K_CLASS_S; ; M 0689 1 DESC [DSC$B_DTYPE] = DSC$K_DTYPE_T; ; M 0690 1 DESC [DSC$W_LENGTH] = SIZE; ; M 0691 1 DESC [DSC$A_POINTER] = BUFFER; ; M 0692 1 END ; 0693 1 %; ; 0694 1 %SBTTL 'Equated symbols -- Command types' ; 0695 1 ; 0696 1 ! ; 0697 1 ! EQUATED SYMBOLS: ; 0698 1 ! ; 0699 1 ! Command offsets ; 0700 1 ; 0701 1 LITERAL ; 0702 1 CMD_MIN = 1, ! Minimum value ; 0703 1 CMD_CONN = 1, ! Connect command ; 0704 1 CMD_EXIT = 2, ! Exit command ; 0705 1 CMD_HELP = 3, ! Help command ; 0706 1 CMD_RECEIVE = 4, ! Receive command ; 0707 1 CMD_SET = 5, ! Set command ; 0708 1 CMD_SEND = 6, ! Send command ; 0709 1 CMD_SHOW = 7, ! Show command ; 0710 1 CMD_SERVER = 8, ! SERVER command ; 0711 1 CMD_STATUS = 9, ! STATUS command ; 0712 1 CMD_LOGOUT = 10, ! Generic LOGOUT command ; 0713 1 CMD_BYE = 11, ! Generic LOGOUT command and EXIT ; 0714 1 CMD_FINISH = 12, ! Generic EXIT command ; 0715 1 CMD_GET = 13, ! Get command ; 0716 1 CMD_REMOTE = 14, ! Remote command ; 0717 1 CMD_LOCAL = 15, ! Local command ; 0718 1 CMD_PUSH = 16, ! PUSH command (spawn new DCL) ; 0719 1 CMD_NULL = 17, ! Any command which is done ; 0720 1 ! totally by the LIB$TPARSE call ; 0721 1 CMD_TAKE = 18, ! Take command ; 0722 1 CMD_MAX = 18; ! Maximum command value ; 0723 1 ! Items to show ; 0724 1 ; 0725 1 LITERAL ; 0726 1 SHOW_ALL = 1, ! Show everything ; 0727 1 SHOW_DEB = 2, ! Show debugging flag ; 0728 1 SHOW_DEL = 3, ! Show delay ; 0729 1 SHOW_ESC = 4, ! Show ESCAPE character ; 0730 1 SHOW_TIM = 5, ! Show random timing ; 0731 1 SHOW_LIN = 6, ! Show the line we are using ; 0732 1 SHOW_ECH = 7, ! Show the echo flag ; 0733 1 SHOW_SEN = 8, ! Show send parameters ; 0734 1 SHOW_REC = 9, ! Show the receive parameters ; 0735 1 SHOW_PAR = 10, ! Show the parity setting ; 0736 1 SHOW_RTY = 11, ! Show retry counters ; 0737 1 SHOW_CHK = 12, ! Show block-check-type ; 0738 1 SHOW_ABT = 13, ! Show aborted file disposition ; 0739 1 SHOW_FIL = 14, ! Show file parameters ; 0740 1 SHOW_PAC = 15, ! Show packet parameters ; 0741 1 SHOW_COM = 16, ! Show communications parameters ; 0742 1 SHOW_VER = 17; ![012] Show version ; 0743 1 %SBTTL 'Equated symbols -- Constants' ; 0744 1 ; 0745 1 ! Constants ; 0746 1 ; 0747 1 LITERAL ; 0748 1 CMD_BFR_LENGTH = 132, ! Command buffer length ; 0749 1 OUT_BFR_LENGTH = 80, ! Output buffer length (SHOW cmd) ; 0750 1 HELP_LENGTH = 132, ! Length of the help buffer ; 0751 1 TEMP_LENGTH = 132; ! Length of the temporary area ; 0752 1 ! ; 0753 1 ! The default prompt ; 0754 1 ! ; 0755 1 BIND ; 0756 1 DEFAULT_PROMPT = %ASCID'Kermit-32>'; ; 0757 1 ; 0758 1 MAP ; 0759 1 DEFAULT_PROMPT : BLOCK [8, BYTE]; ! This is a descriptor ; 0760 1 %SBTTL 'Storage -- Global' ; 0761 1 ; 0762 1 ! ; 0763 1 ! ; 0764 1 ! GLOBAL STORAGE: ; 0765 1 ! ; 0766 1 ; 0767 1 GLOBAL ; 0768 1 TRANSACTION_DESC : BLOCK [8, BYTE], ! Descriptor for transaction log file ; 0769 1 TRANSACTION_OPEN, ! File open flag ; 0770 1 TRANSACTION_FAB : $FAB_DECL, ! Transaction file FAB ; 0771 1 TRANSACTION_RAB : $RAB_DECL, ! Transaction file RAB ; 0772 1 ESCAPE_CHR, ! Escape character for CONNECT ; 0773 1 ALT_FILE_SIZE, ! Number of characters in FILE_NAME ; 0774 1 ALT_FILE_NAME : VECTOR [CH$ALLOCATION (MAX_FILE_NAME)]; ! Storage ; 0775 1 %SBTTL 'Storage -- Local' ; 0776 1 ; 0777 1 ! ; 0778 1 ! OWN STORAGE: ; 0779 1 ! ; 0780 1 ; 0781 1 OWN ; 0782 1 ; 0783 1 ! Command scanning information ; 0784 1 ; 0785 1 TPARSE_BLOCK : BLOCK [TPA$K_LENGTH0, BYTE] ; 0786 1 INITIAL (TPA$K_COUNT0, ! Longword count ; 0787 1 TPA$M_ABBREV), ! Allow abbreviations ; 0788 1 BAD_CMD_DESC : BLOCK [8, BYTE], ! Descriptor for bad command field ; 0789 1 COMMAND, ! Type of command we are doing ; 0790 1 SHOW_TYPE, ! Type of show command ; 0791 1 REM_TYPE, ! Type of REMOTE command ; 0792 1 TAKE_DISPLAY, ! Display commands being TAKEn ; 0793 1 ! ; 0794 1 ! Output data area ; 0795 1 ! ; 0796 1 OUTPUT_LINE : VECTOR [OUT_BFR_LENGTH, BYTE, UNSIGNED], ; 0797 1 OUTPUT_DESC : BLOCK [8, BYTE], ; 0798 1 OUTPUT_SIZE : WORD UNSIGNED, ; 0799 1 ; 0800 1 ! Misc constants. ; 0801 1 ; 0802 1 TRANSACTION_NAME : VECTOR [CH$ALLOCATION(MAX_FILE_NAME)], ; 0803 1 PROMPT_DESC : BLOCK [8, BYTE], ! Descriptor for prompt ; 0804 1 PROMPT_TEXT : VECTOR [CH$ALLOCATION(TEMP_LENGTH)], ! Storage for prompt ; 0805 1 CRC_TABLE : BLOCK [16, LONG], ! CRC-CCITT table ; 0806 1 TAK_FIL_DESC : BLOCK [8, BYTE], ! Take file descriptor ; 0807 1 TAK_FIL_NAME : BLOCK [CH$ALLOCATION(MAX_FILE_NAME)], ; 0808 1 TEMP_DESC : BLOCK [8, BYTE], ! Temporary descriptor ; 0809 1 TEMP_NAME : VECTOR [CH$ALLOCATION(TEMP_LENGTH)]; ; 0810 1 ; 0811 1 ; 0812 1 ! ; 0813 1 %SBTTL 'External routines' ; 0814 1 ! ; 0815 1 ! EXTERNAL REFERENCES: ; 0816 1 ! ; 0817 1 ; 0818 1 EXTERNAL ROUTINE ; 0819 1 ! ; 0820 1 ! Library routines ; 0821 1 ! ; 0822 1 LIB$GET_INPUT : ADDRESSING_MODE (GENERAL), ; 0823 1 LIB$PUT_OUTPUT : ADDRESSING_MODE (GENERAL), ; 0824 1 LIB$TPARSE : ADDRESSING_MODE (GENERAL), ; 0825 1 LIB$CRC_TABLE : ADDRESSING_MODE (GENERAL), ; 0826 1 LIB$CRC : ADDRESSING_MODE (GENERAL), ; 0827 1 LIB$SIGNAL : ADDRESSING_MODE (GENERAL) NOVALUE, ; 0828 1 LIB$ESTABLISH : ADDRESSING_MODE (GENERAL), ; 0829 1 LIB$ATTACH : ADDRESSING_MODE (GENERAL), ; 0830 1 LIB$SPAWN : ADDRESSING_MODE (GENERAL), ; 0831 1 ! ; 0832 1 ! KERMSG - KERMIT Message processing routines ; 0833 1 ! ; 0834 1 SEND_SWITCH, ! Send a file ; 0835 1 REC_SWITCH, ! Receive a file ; 0836 1 DO_GENERIC, ! Send generic functions ; 0837 1 SERVER, ! Server mode processing ; 0838 1 SND_ERROR : NOVALUE, ! Send E packet to remote ; 0839 1 MSG_INIT : NOVALUE, ! Initialization routine ; 0840 1 ! ; 0841 1 ! KERFIL - File processing. ; 0842 1 ! ; 0843 1 FILE_INIT : NOVALUE, ! Initialization routine ; 0844 1 ! ; 0845 1 ! KERSYS - System subroutines for KERMSG ; 0846 1 ! ; 0847 1 SY_INIT : NOVALUE, ! Initialization routine ; 0848 1 ! ; 0849 1 ! KERTRM - Terminal processing. ; 0850 1 ! ; 0851 1 TERM_INIT : NOVALUE, ! Initialize the terminal processing ; 0852 1 TERM_OPEN, ! Open the terminal line ; 0853 1 TERM_CLOSE, ! Close the terminal line ; 0854 1 TERM_CONNECT, ! Impliments CONNECT command ; 0855 1 SET_TRANS_TERM, ! Set new transfer terminal ; 0856 1 ! ; 0857 1 ! KERTT - Text processing ; 0858 1 ! ; 0859 1 TT_INIT : NOVALUE, ! Initialization routine ; 0860 1 TT_TEXT : NOVALUE, ! Output a text string ; 0861 1 TT_NUMBER : NOVALUE, ! Output a number ; 0862 1 TT_CHAR : NOVALUE, ! Output a single character ; 0863 1 TT_OUTPUT : NOVALUE, ! Routine to dump the current ; 0864 1 ! text line. ; 0865 1 TT_CRLF : NOVALUE; ! Output the line ; 0866 1 ; 0867 1 %SBTTL 'External storage' ; 0868 1 ! ; 0869 1 ! EXTERNAL Storage: ; 0870 1 ! ; 0871 1 ; 0872 1 EXTERNAL ; 0873 1 ! ; 0874 1 ! KERMSG storage ; 0875 1 ! ; 0876 1 ! Receive parameters ; 0877 1 RCV_PKT_SIZE, ! Receive packet size ; 0878 1 RCV_NPAD, ! Padding length ; 0879 1 RCV_PADCHAR, ! Padding character ; 0880 1 RCV_TIMEOUT, ! Time out ; 0881 1 RCV_EOL, ! EOL character ; 0882 1 RCV_QUOTE_CHR, ! Quote character ; 0883 1 RCV_8QUOTE_CHR, ! 8-bit quoting character ; 0884 1 RCV_SOH, ! Start of packet header ; 0885 1 ! ; 0886 1 ! Send parameters ; 0887 1 ! ; 0888 1 SND_PKT_SIZE, ! Send packet size ; 0889 1 SND_NPAD, ! Padding length ; 0890 1 SND_PADCHAR, ! Padding character ; 0891 1 SND_TIMEOUT, ! Time out ; 0892 1 SND_EOL, ! EOL character ; 0893 1 SND_QUOTE_CHR, ! Quote character ; 0894 1 SND_SOH, ! Packet start of header ; 0895 1 ! ; 0896 1 ! Server parameters ; 0897 1 ! ; 0898 1 SRV_TIMEOUT, ! Time between idle naks in server ; 0899 1 ! ; 0900 1 ! Misc. packet parameters ; 0901 1 ! ; 0902 1 SET_REPT_CHR, ! Desired repeat character ; 0903 1 ! ; 0904 1 ! Statistics ; 0905 1 ! ; 0906 1 SND_TOTAL_CHARS, ! Total characters sent ; 0907 1 RCV_TOTAL_CHARS, ! Total characters received ; 0908 1 SND_DATA_CHARS, ! Total number of data characters sent ; 0909 1 RCV_DATA_CHARS, ! Total number of data characters received ; 0910 1 SMSG_TOTAL_CHARS, ! Total chars sent this file xfer ; 0911 1 RMSG_TOTAL_CHARS, ! Total chars rcvd this file xfer ; 0912 1 SMSG_DATA_CHARS, ! Total data chars this file xfer ; 0913 1 RMSG_DATA_CHARS, ! Total data chars this file xfer ; 0914 1 RCV_NAKS, ! Total number of NAKs received ; 0915 1 SND_NAKS, ! Total number of NAKs sent ; 0916 1 RMSG_NAKS, ! Number of NAKs received ; 0917 1 SMSG_NAKS, ! Number of NAKs sent ; 0918 1 RCV_COUNT, ! Total number of packets received ; 0919 1 SND_COUNT, ! Total number of packets sent ; 0920 1 RMSG_COUNT, ! Number of packets received ; 0921 1 SMSG_COUNT, ! Number of packets sent ; 0922 1 XFR_TIME, ! Amount of time the last transfer took ; 0923 1 TOTAL_TIME, ! Total time the transfers have taken ; 0924 1 LAST_ERROR : VECTOR [CH$ALLOCATION (MAX_MSG + 1)], ! Last error message ; 0925 1 TY_PKT, ! Flag that packet numbers should be typed ; 0926 1 TY_FIL, ! Flag that file names should be typed ; 0927 1 GEN_1DATA : VECTOR [CH$ALLOCATION (MAX_MSG)], ! Data for generic command ; 0928 1 GEN_1SIZE, ! Size of data in GEN_1DATA ; 0929 1 GEN_2DATA : VECTOR [CH$ALLOCATION (MAX_MSG)], ! Second argument for generic command ; 0930 1 GEN_2SIZE, ! Size of data in GEN_2DATA ; 0931 1 GEN_3DATA : VECTOR [CH$ALLOCATION (MAX_MSG)], ! Third arg for generic command ; 0932 1 GEN_3SIZE, ! Size of data in GEN_3DATA ; 0933 1 ! ; 0934 1 ! Misc constants. ; 0935 1 ! ; 0936 1 FILE_SIZE, ! Number of characters in FILE_NAME ; 0937 1 FILE_NAME : VECTOR [CH$ALLOCATION (MAX_FILE_NAME)], ; 0938 1 SI_RETRIES, ! Initial connection max retries ; 0939 1 PKT_RETRIES, ! Packet max retries ; 0940 1 DELAY, ! Amount of time to delay ; 0941 1 DEBUG_FLAG, ! Debugging mode on/off ; 0942 1 CHKTYPE, ! Type of block-check-type wanted ; 0943 1 ABT_FLAG, ! Aborted file disposition ; 0944 1 ! IBM_FLAG, ! IBM mode flag ; 0945 1 IBM_CHAR, ! Handshaking character ; 0946 1 WARN_FLAG, ! File warning flag ; 0947 1 FIL_NORMAL_FORM, ! File name type to send ; 0948 1 PARITY_TYPE, ! Type of parity we are using ; 0949 1 ECHO_FLAG, ! Local echo flag ; 0950 1 CONNECT_FLAG; ! True if SYS$OUTPUT and line ; 0951 1 ; 0952 1 ! xfering over are the same. ; 0953 1 ! ; 0954 1 ! KERFIL storage ; 0955 1 ! ; 0956 1 ; 0957 1 EXTERNAL ; 0958 1 FILE_TYPE, ! Type of file being processed ; 0959 1 FILE_DESC : BLOCK [8, BYTE]; ! Descriptor for the file name ; 0960 1 ; 0961 1 ! ; 0962 1 ! KERTRM storage ; 0963 1 ! ; 0964 1 ; 0965 1 EXTERNAL ; 0966 1 SESSION_DESC : BLOCK [8, BYTE], ! Session log file name ; 0967 1 DEBUG_DESC : BLOCK [8, BYTE], ! Debugging log file name ; 0968 1 TERM_DESC : BLOCK [8, BYTE], ! Terminal name descriptor ; 0969 1 TERM_FLAG; ! Terminal open flag ; 0970 1 ; 0971 1 %SBTTL 'Command parsing tables' ; 0972 1 ! ; 0973 1 !++ ; 0974 1 ! ; 0975 1 !The following are the command state tables for the KERMIT-32 ; 0976 1 !command processing. ; 0977 1 ! ; 0978 1 !-- ; 0979 1 ; 0980 1 $INIT_STATE (KERMIT_STATE, KERMIT_KEY); ; 0981 1 ; P 0982 1 $STATE (START, ; P 0983 1 ('BYE', DONE_STATE, , CMD_BYE, COMMAND), ; P 0984 1 ('CONNECT', CONN_STATE, , CMD_CONN, COMMAND), ; P 0985 1 ('EXIT', DONE_STATE, , CMD_EXIT, COMMAND), ; P 0986 1 ('FINISH', DONE_STATE, , CMD_FINISH, COMMAND), ; P 0987 1 ('GET', GET_STATE, , CMD_GET, COMMAND), ; P 0988 1 ('HELP', HELP_STATE, , CMD_HELP, COMMAND), ; P 0989 1 ('LOCAL', REM_STATE, , CMD_LOCAL, COMMAND), ; P 0990 1 ('LOG', LOG_STATE, , CMD_NULL, COMMAND), ; P 0991 1 ('LOGOUT', DONE_STATE, , CMD_LOGOUT, COMMAND), ; P 0992 1 ('PUSH', DONE_STATE, , CMD_PUSH, COMMAND), ; P 0993 1 ('QUIT', DONE_STATE, , CMD_EXIT, COMMAND), ; P 0994 1 ('RECEIVE', REC_STATE, , CMD_RECEIVE, COMMAND), ; P 0995 1 ('REMOTE', REM_STATE, , CMD_REMOTE, COMMAND), ; P 0996 1 ('SET', SET_STATE, , CMD_SET, COMMAND), ; P 0997 1 ('SEND', SEND_STATE, , CMD_SEND, COMMAND), ; P 0998 1 ('SERVER', DONE_STATE, , CMD_SERVER, COMMAND), ; P 0999 1 ('SHOW', SHOW_STATE, , CMD_SHOW, COMMAND), ; P 1000 1 ('STATUS', DONE_STATE, , CMD_STATUS, COMMAND), ; P 1001 1 ('TAKE', TAKE_STATE, , CMD_TAKE, COMMAND), ; P 1002 1 ('@', TAKE_STATE, , CMD_TAKE, COMMAND), ; P 1003 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1004 1 ) ; 1005 1 ; 1006 1 !++ ; 1007 1 ! CONNECT command. Format is: ; 1008 1 ! ; 1009 1 ! Kermit-32>CONNECT device ; 1010 1 ! ; 1011 1 ! Where: ; 1012 1 ! Device - Terminal line to connect to ; 1013 1 ! ; 1014 1 !-- ; 1015 1 ; P 1016 1 $STATE (CONN_STATE, ; P 1017 1 (TPA$_EOS, DONE_STATE), ; P 1018 1 (TPA$_LAMBDA, SET_LIN_STATE) ; 1019 1 ) ; 1020 1 ; 1021 1 !++ ; 1022 1 ! EXIT command. Format is: ; 1023 1 ! ; 1024 1 ! Kermit-32>EXIT ; 1025 1 ! ; 1026 1 ! Just exit back to VMS. ; 1027 1 ! ; 1028 1 !-- ; 1029 1 ; 1030 1 !++ ; 1031 1 ! HELP command. Format is: ; 1032 1 ! ; 1033 1 ! Kermit-32>HELP ; 1034 1 ! ; 1035 1 ! Do HELP processing for KERMIT-32. ; 1036 1 ! ; 1037 1 !-- ; 1038 1 ; P 1039 1 $STATE (HELP_STATE, ; P 1040 1 (TPA$_ANY, HELP_STATE, STORE_TEXT), ; P 1041 1 (TPA$_LAMBDA, DONE_STATE) ; 1042 1 ) ; 1043 1 ; 1044 1 %SBTTL 'QUIT command table' ; 1045 1 ; 1046 1 !++ ; 1047 1 ! QUIT command. Format is: ; 1048 1 ! ; 1049 1 ! Kermit-32>QUIT ; 1050 1 ! ; 1051 1 ! This command will just exit back to VMS. ; 1052 1 ! ; 1053 1 !-- ; 1054 1 %SBTTL 'GET command table' ; 1055 1 ; 1056 1 !++ ; 1057 1 ! GET command. Format is: ; 1058 1 ! ; 1059 1 ! Kermit-32>GET file-specification ; 1060 1 ! ; 1061 1 ! This command will cause KERMIT to get a file from the micro. ; 1062 1 ! It will assume that it is to used what ever line it currently is ; 1063 1 ! associated with (CONNECT or SET LINE). ; 1064 1 ! ; 1065 1 !-- ; 1066 1 ; P 1067 1 $STATE (GET_STATE, ; P 1068 1 (TPA$_ANY, GET_STATE, STORE_TEXT), ; P 1069 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,FILE_DESC) ; 1070 1 ) ; 1071 1 %SBTTL 'RECEIVE command table' ; 1072 1 ; 1073 1 !++ ; 1074 1 ! RECEIVE command. Format is: ; 1075 1 ! ; 1076 1 ! Kermit-32>RECEIVE file-specification ; 1077 1 ! ; 1078 1 ! This command will cause KERMIT to receive a file from the micro. ; 1079 1 ! It will assume that it is to used what ever line it currently is ; 1080 1 ! associated with (CONNECT or SET LINE). ; 1081 1 ! ; 1082 1 !-- ; 1083 1 ; P 1084 1 $STATE (REC_STATE, ; P 1085 1 (TPA$_ANY, REC1_STATE, STORE_TEXT), ; P 1086 1 (TPA$_LAMBDA, DONE_STATE) ; 1087 1 ) ; 1088 1 ; 1089 1 ; P 1090 1 $STATE (REC1_STATE, ; P 1091 1 (TPA$_ANY, REC1_STATE, STORE_TEXT), ; P 1092 1 (TPA$_LAMBDA, DONE_STATE, COPY_ALT_FILE) ; 1093 1 ) ; 1094 1 %SBTTL 'REMOTE command tables' ; 1095 1 ; 1096 1 !++ ; 1097 1 ! REMOTE command. This command will allow the local Kermit user to ; 1098 1 ! request the server Kermit to perform some action. ; 1099 1 ! ; 1100 1 ! Kermit-32>REMOTE keyword arguments ; 1101 1 ! ; 1102 1 ! Where: ; 1103 1 ! ; 1104 1 ! Keyword is one of: ; 1105 1 ! DELETE ; 1106 1 ! DIRECTORY ; 1107 1 ! DISK_USAGE ; 1108 1 ! HELP ; 1109 1 ! SPACE ; 1110 1 ! TYPE ; 1111 1 !-- ; P 1112 1 $STATE (REM_STATE, ; P 1113 1 ('COPY', REM2_STATE, ,GC_COPY, REM_TYPE), ; P 1114 1 ('CWD', REM1_STATE, ,GC_CONNECT, REM_TYPE), ; P 1115 1 ('DELETE', REM2_STATE, ,GC_DELETE, REM_TYPE), ; P 1116 1 ('DIRECTORY', REM1_STATE, ,GC_DIRECTORY, REM_TYPE), ; P 1117 1 ('DISK_USAGE', REM1_STATE, ,GC_DISK_USAGE, REM_TYPE), ; P 1118 1 ('EXIT', DONE_STATE, ,GC_EXIT, REM_TYPE), ; P 1119 1 ('HELP', REM1_STATE, ,GC_HELP, REM_TYPE), ; P 1120 1 ('HOST', REM2_STATE, ,GC_COMMAND, REM_TYPE), ; P 1121 1 ('LOGIN', REM2_STATE, ,GC_LGN, REM_TYPE), ; P 1122 1 ('LOGOUT', DONE_STATE, ,GC_LOGOUT, REM_TYPE), ; P 1123 1 ('RENAME', REM2_STATE, ,GC_RENAME, REM_TYPE), ; P 1124 1 ('SEND_MESSAGE',REM2_STATE, ,GC_SEND_MSG, REM_TYPE), ; P 1125 1 ('SPACE', REM1_STATE, ,GC_DISK_USAGE, REM_TYPE), ; P 1126 1 ('STATUS', DONE_STATE, ,GC_STATUS, REM_TYPE), ; P 1127 1 ('TYPE', REM2_STATE, ,GC_TYPE, REM_TYPE), ; P 1128 1 ('WHO', REM1_STATE, ,GC_WHO, REM_TYPE), ; P 1129 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1130 1 ) ; 1131 1 ; 1132 1 ! State to allow for either no arguments or a text string ; 1133 1 ; P 1134 1 $STATE (REM1_STATE, ; P 1135 1 (TPA$_ANY, REM2_STATE, STORE_TEXT), ; P 1136 1 (TPA$_LAMBDA, DONE_STATE) ; 1137 1 ) ; 1138 1 ; 1139 1 ! State to require a text string argument ; 1140 1 ; P 1141 1 $STATE (REM2_STATE, ; P 1142 1 (TPA$_ANY, REM2_STATE, STORE_TEXT), ; P 1143 1 (TPA$_LAMBDA, DONE_STATE, COPY_GEN_1DATA) ; 1144 1 ) ; 1145 1 %SBTTL 'SET command tables' ; 1146 1 ; 1147 1 !++ ; 1148 1 ! SET command. Format is: ; 1149 1 ! ; 1150 1 ! Kermit-32>SET parameter ; 1151 1 ! ; 1152 1 ! Where: ; 1153 1 ! Parameter - One of many keywords ; 1154 1 ! ; 1155 1 !-- ; 1156 1 ; P 1157 1 $STATE (SET_STATE, ; P 1158 1 ('BLOCK_CHECK_TYPE', SET_CHK_STATE), ; P 1159 1 ('DEBUGGING', SET_DEB_STATE), ; P 1160 1 ('DELAY', SET_DEL_STATE), ; P 1161 1 ('ESCAPE', SET_ESC_STATE), ; P 1162 1 ('FILE', SET_FIL_STATE), ; P 1163 1 ('HANDSHAKE', SET_HAN_STATE), ; P 1164 1 ('IBM_MODE', SET_IBM_STATE), ; P 1165 1 ('INCOMPLETE_FILE_DISPOSITION', SET_ABT_STATE), ; P 1166 1 ('LINE', SET_LIN_STATE), ; P 1167 1 ('LOCAL_ECHO', SET_ECH_STATE), ; P 1168 1 ('MESSAGE', SET_MSG_STATE), ; P 1169 1 ('PARITY', SET_PAR_STATE), ; P 1170 1 ('PROMPT', SET_PMT_STATE), ; P 1171 1 ('RECEIVE', SET_REC_STATE), ; P 1172 1 ('REPEAT_QUOTE',SET_RPT_STATE), ; P 1173 1 ('RETRY', SET_RTY_STATE), ; P 1174 1 ('SEND', SET_SND_STATE), ; P 1175 1 ('SERVER_TIMER',SET_SRV_STATE), ; P 1176 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1177 1 ) ; 1178 1 ; 1179 1 !++ ; 1180 1 ! ; 1181 1 ! SET INCOMPLETE_FILE [disposition] command. The possible arguments are ; 1182 1 ! KEEP or DISCARD. ; 1183 1 ! ; 1184 1 !-- ; 1185 1 ; P 1186 1 $STATE (SET_ABT_STATE, ; P 1187 1 ('DISCARD', DONE_STATE, STORE_ABT,, ,TRUE), ; P 1188 1 ('KEEP', DONE_STATE, STORE_ABT,, ,FALSE), ; P 1189 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1190 1 ) ; 1191 1 ; 1192 1 !++ ; 1193 1 ! ; 1194 1 ! SET BLOCK_CHECK_TYPE [type] command. The format is: ; 1195 1 ! ; 1196 1 ! Kermit-32>SET BLOCK_CHECK_TYPE [1_CHARACTER_CHECKSUM | ....] ; 1197 1 ! ; 1198 1 !-- ; 1199 1 ; P 1200 1 $STATE (SET_CHK_STATE, ; P 1201 1 ('1_CHARACTER_CHECKSUM', DONE_STATE, STORE_CHK,, ,CHK_1CHAR), ; P 1202 1 ('2_CHARACTER_CHECKSUM', DONE_STATE, STORE_CHK,, ,CHK_2CHAR), ; P 1203 1 ('3_CHARACTER_CRC_CCITT', DONE_STATE, STORE_CHK,, ,CHK_CRC), ; P 1204 1 ('ONE_CHARACTER_CHECKSUM', DONE_STATE, STORE_CHK,, ,CHK_1CHAR), ; P 1205 1 ('THREE_CHARACTER_CRC_CCITT', DONE_STATE, STORE_CHK,, ,CHK_CRC), ; P 1206 1 ('TWO_CHARACTER_CHECKSUM', DONE_STATE, STORE_CHK,, ,CHK_2CHAR), ; P 1207 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1208 1 ) ; 1209 1 ; 1210 1 !++ ; 1211 1 ! ; 1212 1 ! SET DEBUGGING command. The format is: ; 1213 1 ! ; 1214 1 ! Kermit-32>SET DEBUGGING (on/off) ; 1215 1 ! ; 1216 1 ! Where: ; 1217 1 ! on/off is either the ON or OFF keyword. ; 1218 1 ! ; 1219 1 !-- ; 1220 1 ; P 1221 1 $STATE (SET_DEB_STATE, ; P 1222 1 ('OFF', DONE_STATE, STORE_DEBUG, , ,FALSE), ; P 1223 1 ('ON', DONE_STATE, STORE_DEBUG, , ,TRUE), ; P 1224 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1225 1 ) ; 1226 1 ; 1227 1 !++ ; 1228 1 ! ; 1229 1 ! SET IBM_MODE command. The format is: ; 1230 1 ! ; 1231 1 ! Kermit-32>SET IBM_MODE (on/off) ; 1232 1 ! ; 1233 1 ! Where: ; 1234 1 ! on/off is either the ON or OFF keyword. ; 1235 1 ! ; 1236 1 !-- ; 1237 1 ; P 1238 1 $STATE (SET_IBM_STATE, ; P 1239 1 ('OFF', DONE_STATE, STORE_IBM, , ,FALSE), ; P 1240 1 ('ON', DONE_STATE, STORE_IBM, , ,TRUE), ; P 1241 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1242 1 ) ; 1243 1 !++ ; 1244 1 ! ; 1245 1 ! SET HANDSHAKE command. The format is: ; 1246 1 ! ; 1247 1 ! Kermit-32>SET HANDSHAKE ; 1248 1 ! ; 1249 1 ! Where: ; 1250 1 ! is the octal number representing the handshake character ; 1251 1 ! for file transfers. ; 1252 1 ! ; 1253 1 ! Negative values indicate no handshaking. ; 1254 1 !-- ; 1255 1 ; P 1256 1 $STATE (SET_HAN_STATE, ; P 1257 1 ('NONE', DONE_STATE, , -1 ,IBM_CHAR), ; P 1258 1 (TPA$_OCTAL, DONE_STATE, , ,IBM_CHAR) ; 1259 1 ) ; 1260 1 ; 1261 1 !++ ; 1262 1 ! ; 1263 1 ! SET DELAY command. The format is: ; 1264 1 ! ; 1265 1 ! Kermit-32>SET DELAY ; 1266 1 ! ; 1267 1 ! Where: ; 1268 1 ! is the number of seconds to delay before sending the ; 1269 1 ! SEND-INIT packet. ; 1270 1 !-- ; 1271 1 ; P 1272 1 $STATE (SET_DEL_STATE, ; P 1273 1 (TPA$_DECIMAL, DONE_STATE, , ,DELAY) ; 1274 1 ) ; 1275 1 ; 1276 1 !++ ; 1277 1 ! ; 1278 1 ! SET ESCAPE command. The format is: ; 1279 1 ! ; 1280 1 ! Kermit-32>SET ESCAPE ; 1281 1 ! ; 1282 1 ! Where: ; 1283 1 ! is the octal number representing the escape character ; 1284 1 ! for the CONNECT command processing. The default escape character ; 1285 1 ! is Control-]. ; 1286 1 !-- ; 1287 1 ; P 1288 1 $STATE (SET_ESC_STATE, ; P 1289 1 (TPA$_OCTAL, DONE_STATE, , ,ESCAPE_CHR) ; 1290 1 ) ; 1291 1 !++ ; 1292 1 ! ; 1293 1 ! SET FILE xxx command. The format is: ; 1294 1 ! ; 1295 1 ! Kermit-32>SET FILE ; 1296 1 ! ; 1297 1 ! Where: ; 1298 1 ! is one of: ; 1299 1 ! NAMING - Type of file name to send ; 1300 1 ! TYPE - Type of file to create on receive (or send in certain cases) ; 1301 1 ! ; 1302 1 !-- ; P 1303 1 $STATE (SET_FIL_STATE, ; P 1304 1 ('NAMING', SET_FNM_STATE), ; P 1305 1 ('TYPE', SET_FTP_STATE), ; P 1306 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1307 1 ) ; 1308 1 ; 1309 1 !++ ; 1310 1 ! ; 1311 1 ! SET FILE NAMING command. The format is: ; 1312 1 ! ; 1313 1 ! Kermit-32>SET FILE NAMING ; 1314 1 ! ; 1315 1 ! Where: ; 1316 1 ! is one of: ; 1317 1 ! FULL - Send complete file specification, including device and ; 1318 1 ! directory ; 1319 1 ! NORMAL_FORM - Send only name.type ; 1320 1 ! UNTRANSLATED - Send name.type, but don't do any fixups on it ; 1321 1 !-- ; 1322 1 ; P 1323 1 $STATE (SET_FNM_STATE, ; P 1324 1 ('FULL', DONE_STATE, STORE_FNM, , ,FNM_FULL), ; P 1325 1 ('NORMAL_FORM', DONE_STATE, STORE_FNM, , ,FNM_NORMAL), ; P 1326 1 ('UNTRANSLATED',DONE_STATE, STORE_FNM, , ,FNM_UNTRAN), ; P 1327 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1328 1 ) ; 1329 1 !++ ; 1330 1 ! ; 1331 1 ! SET FILE TYPE command. The format is: ; 1332 1 ! ; 1333 1 ! Kermit-32>SET FILE TYPE ; 1334 1 ! ; 1335 1 ! Where: ; 1336 1 ! is one of the following: ; 1337 1 ! ASCII - Normal ASCII file (stream ascii) ; 1338 1 ! BINARY - Micro binary file. ; 1339 1 !-- ; 1340 1 ; P 1341 1 $STATE (SET_FTP_STATE, ; P 1342 1 ('ASCII', DONE_STATE, STORE_FTP, , ,FILE_ASC), ; P 1343 1 ('BINARY', DONE_STATE, STORE_FTP, , ,FILE_BIN), ; P 1344 1 ('BLOCK', DONE_STATE, STORE_FTP, , ,FILE_BLK), ; P 1345 1 ('FIXED', DONE_STATE, STORE_FTP, , ,FILE_FIX), ; P 1346 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1347 1 ) ; 1348 1 ; 1349 1 !++ ; 1350 1 ! SET LINE command. Format is: ; 1351 1 ! ; 1352 1 ! Kermit-32>SET LINE terminal-device: ; 1353 1 ! ; 1354 1 ! Where: ; 1355 1 ! Terminal-device: is the terminal line to use to the transfer of ; 1356 1 ! the data and to use in the CONNECT command. ; 1357 1 ! ; 1358 1 !-- ; 1359 1 ; P 1360 1 $STATE (SET_LIN_STATE, ; P 1361 1 (TPA$_ANY, SET_LIN_STATE, STORE_TEXT), ; P 1362 1 (TPA$_LAMBDA, DONE_STATE, COPY_TERM_NAME) ; 1363 1 ) ; 1364 1 ; 1365 1 !++ ; 1366 1 ! SET LOCAL-ECHO command. Format is: ; 1367 1 ! ; 1368 1 ! Kermit-32>SET LOCAL-ECHO state ; 1369 1 ! ; 1370 1 ! Where: ; 1371 1 ! STATE is either the keyword ON or OFF. ; 1372 1 ! ; 1373 1 !- ; 1374 1 ; P 1375 1 $STATE (SET_ECH_STATE, ; P 1376 1 ('OFF', DONE_STATE, STORE_ECHO, , ,FALSE), ; P 1377 1 ('ON', DONE_STATE, STORE_ECHO, , ,TRUE), ; P 1378 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1379 1 ) ; 1380 1 ; 1381 1 ; 1382 1 !++ ; 1383 1 ! SET MESSAGE command. Format is: ; 1384 1 ! ; 1385 1 ! Kermit-32>SET MESSAGE ; 1386 1 ! ; 1387 1 ! Where the keyword is: ; 1388 1 ! ; 1389 1 ! FILE_NAMES - Type out file names being transferred ; 1390 1 ! PACKET_NUMBERS - Type out packet counts ; 1391 1 !-- ; 1392 1 ; P 1393 1 $STATE (SET_MSG_STATE, ; P 1394 1 ('FILE_NAMES', SET_MSG_FIL_STATE), ; P 1395 1 ('PACKET_NUMBERS', SET_MSG_PKT_STATE), ; P 1396 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1397 1 ) ; 1398 1 ; P 1399 1 $STATE (SET_MSG_FIL_STATE, ; P 1400 1 ('OFF', DONE_STATE, STORE_MSG_FIL, , ,FALSE), ; P 1401 1 ('ON', DONE_STATE, STORE_MSG_FIL, , ,TRUE), ; P 1402 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1403 1 ) ; 1404 1 ; P 1405 1 $STATE (SET_MSG_PKT_STATE, ; P 1406 1 ('OFF', DONE_STATE, STORE_MSG_PKT, , ,FALSE), ; P 1407 1 ('ON', DONE_STATE, STORE_MSG_PKT, , ,TRUE), ; P 1408 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1409 1 ) ; 1410 1 ; 1411 1 !++ ; 1412 1 ! SET PROMPT command. ; 1413 1 ! ; 1414 1 ! Kermit-32>SET PROMPT new-prompt-text ; 1415 1 ! ; 1416 1 !-- ; 1417 1 ; P 1418 1 $STATE (SET_PMT_STATE, ; P 1419 1 (TPA$_ANY, SET_PMT_STATE, STORE_TEXT), ; P 1420 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,PROMPT_DESC) ; 1421 1 ) ; 1422 1 ; 1423 1 !++ ; 1424 1 ! SET REPEAT_QUOTE command. Format is: ; 1425 1 ! ; 1426 1 ! Kermit-32>SET REPEAT_QUOTE ; 1427 1 ! ; 1428 1 !-- ; 1429 1 ; P 1430 1 $STATE (SET_RPT_STATE, ; P 1431 1 (TPA$_OCTAL, DONE_STATE, CHECK_QUOTE, ,SET_REPT_CHR) ; 1432 1 ) ; 1433 1 ; 1434 1 !++ ; 1435 1 ! SET RETRY command. Format is: ; 1436 1 ! ; 1437 1 ! Kermit-32>SET RETRY ; 1438 1 ! ; 1439 1 ! Where the keyword is: ; 1440 1 ! ; 1441 1 ! INITIAL_CONNECTION - set number of initial connection retries. ; 1442 1 ! PACKET - set the number of packet retries. ; 1443 1 !-- ; 1444 1 ; P 1445 1 $STATE (SET_RTY_STATE, ; P 1446 1 ('INITIAL_CONNECTION', SET_RTY_INI_STATE), ; P 1447 1 ('PACKET', SET_RTY_PKT_STATE), ; P 1448 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1449 1 ) ; 1450 1 ; 1451 1 ; P 1452 1 $STATE (SET_RTY_INI_STATE, ; P 1453 1 (TPA$_DECIMAL, DONE_STATE, , ,SI_RETRIES) ; 1454 1 ) ; 1455 1 ; P 1456 1 $STATE (SET_RTY_PKT_STATE, ; P 1457 1 (TPA$_DECIMAL, DONE_STATE, , ,PKT_RETRIES) ; 1458 1 ) ; 1459 1 %SBTTL 'SET PARITY type' ; 1460 1 ; 1461 1 !++ ; 1462 1 ! SET PARITY command. Format is: ; 1463 1 ! ; 1464 1 ! Kermit-32>SET PARITY type ; 1465 1 ! ; 1466 1 ! The type can be: ; 1467 1 ! ; 1468 1 ! NONE - No parity processing ; 1469 1 ! MARK - Mark parity ; 1470 1 ! SPACE - Space parity ; 1471 1 ! EVEN - Even parity ; 1472 1 ! ODD - Odd parity ; 1473 1 ! ; 1474 1 !-- ; 1475 1 ; P 1476 1 $STATE (SET_PAR_STATE, ; P 1477 1 ('EVEN', DONE_STATE, STORE_PARITY, , ,PR_EVEN), ; P 1478 1 ('MARK', DONE_STATE, STORE_PARITY, , ,PR_MARK), ; P 1479 1 ('NONE', DONE_STATE, STORE_PARITY, , ,PR_NONE), ; P 1480 1 ('ODD', DONE_STATE, STORE_PARITY, , ,PR_ODD), ; P 1481 1 ('SPACE', DONE_STATE, STORE_PARITY, , ,PR_SPACE), ; P 1482 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1483 1 ) ; 1484 1 %SBTTL 'SET RECEIVE table' ; 1485 1 ; 1486 1 !++ ; 1487 1 ! SET RECEIVE command. Format is: ; 1488 1 ! ; 1489 1 ! Kermit-32>SET RECEIVE item ; 1490 1 ! ; 1491 1 ! Where: ; 1492 1 ! Item - One of the following: ; 1493 1 ! PACKET-LENGTH ; 1494 1 ! PADDING ; 1495 1 ! PADCHAR ; 1496 1 ! TIMEOUT ; 1497 1 ! END-OF-LINE ; 1498 1 ! QUOTE ; 1499 1 ! ; 1500 1 !-- ; 1501 1 ; P 1502 1 $STATE (SET_REC_STATE, ; P 1503 1 ('EIGHT-BIT-QUOTE', SR_8QU_STATE), ; P 1504 1 ('END_OF_LINE', SR_EOL_STATE), ; P 1505 1 ('PACKET_LENGTH', SR_PKT_STATE), ; P 1506 1 ('PADCHAR', SR_PDC_STATE), ; P 1507 1 ('PADDING', SR_PAD_STATE), ; P 1508 1 ('QUOTE', SR_QUO_STATE), ; P 1509 1 ('START_OF_PACKET', SR_SOH_STATE), ; P 1510 1 ('TIMEOUT', SR_TIM_STATE), ; P 1511 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1512 1 ) ; 1513 1 ; 1514 1 !++ ; 1515 1 ! ; 1516 1 ! SET RECEIVE PACKET-LENGTH command. Format is: ; 1517 1 ! ; 1518 1 ! Kermit-32>SET RECEIVE PACKET-LENGTH ; 1519 1 ! ; 1520 1 ! Where: ; 1521 1 ! is a decimal number that specifies the length of a ; 1522 1 ! receive packet. ; 1523 1 ! ; 1524 1 !-- ; 1525 1 ; P 1526 1 $STATE (SR_PKT_STATE, ; P 1527 1 (TPA$_DECIMAL, DONE_STATE, CHECK_PACKET_LEN, ,RCV_PKT_SIZE) ; 1528 1 ) ; 1529 1 ; 1530 1 ; 1531 1 !++ ; 1532 1 ! ; 1533 1 ! SET RECEIVE PADDING command. The format of this command is: ; 1534 1 ! ; 1535 1 ! Kermit-32>SET RECEIVE PADDING ; 1536 1 ! ; 1537 1 ! Where: ; 1538 1 ! is the decimal number of padding characters to output. ; 1539 1 ! ; 1540 1 !-- ; 1541 1 ; P 1542 1 $STATE (SR_PAD_STATE, ; P 1543 1 (TPA$_DECIMAL, DONE_STATE, CHECK_NPAD, ,RCV_NPAD) ; 1544 1 ) ; 1545 1 ; 1546 1 !++ ; 1547 1 ! ; 1548 1 ! SET RECEIVE PADCHAR command. Format is: ; 1549 1 ! ; 1550 1 ! Kermit-32>SET RECEIVE PADCHAR ; 1551 1 ! ; 1552 1 ! Where: ; 1553 1 ! is the octal representation of the padding character ; 1554 1 ! that is to be used. ; 1555 1 ! ; 1556 1 !-- ; 1557 1 ; P 1558 1 $STATE (SR_PDC_STATE, ; P 1559 1 (TPA$_OCTAL, DONE_STATE, CHECK_PAD_CHAR, ,RCV_PADCHAR) ; 1560 1 ) ; 1561 1 !++ ; 1562 1 ! ; 1563 1 ! SET RECEIVE START_OF_PACKET command. Format is: ; 1564 1 ! ; 1565 1 ! Kermit-32>SET RECEIVE START_OF_PACKET ; 1566 1 ! ; 1567 1 ! Where: ; 1568 1 ! is the octal representation of the padding character ; 1569 1 ! that is to be used. ; 1570 1 ! ; 1571 1 !-- ; 1572 1 ; P 1573 1 $STATE (SR_SOH_STATE, ; P 1574 1 (TPA$_OCTAL, DONE_STATE, CHECK_SOH, ,RCV_SOH) ; 1575 1 ) ; 1576 1 ; 1577 1 !++ ; 1578 1 ! ; 1579 1 ! SET RECEIVE TIMEOUT command. The format is: ; 1580 1 ! ; 1581 1 ! Kermit-32>SET RECEIVE TIMEOUT ; 1582 1 ! ; 1583 1 ! Where: ; 1584 1 ! is the number of seconds before KERMIT-32 should time out ; 1585 1 ! attempting to receive a correct message. ; 1586 1 ! ; 1587 1 !-- ; 1588 1 ; P 1589 1 $STATE (SR_TIM_STATE, ; P 1590 1 (TPA$_DECIMAL, DONE_STATE, , ,RCV_TIMEOUT) ; 1591 1 ) ; 1592 1 ; 1593 1 !++ ; 1594 1 ! SET END-OF-LINE command. Format is: ; 1595 1 ! ; 1596 1 ! Kermit-32>SET RECEIVE END-OF-LINE ; 1597 1 ! ; 1598 1 ! Where: ; 1599 1 ! is the octal number representation of the character ; 1600 1 ! that is the end of line character. ; 1601 1 ! ; 1602 1 !-- ; 1603 1 ; P 1604 1 $STATE (SR_EOL_STATE, ; P 1605 1 (TPA$_OCTAL, DONE_STATE, CHECK_EOL, ,RCV_EOL) ; 1606 1 ) ; 1607 1 ; 1608 1 !++ ; 1609 1 ! SET RECEIVE QUOTE command. The format is: ; 1610 1 ! ; 1611 1 ! Kermit-32>SET RECEIVE QUOTE ; 1612 1 ! ; 1613 1 ! Where: ; 1614 1 ! is the octal number representing the quoting character. ; 1615 1 ! ; 1616 1 !-- ; 1617 1 ; P 1618 1 $STATE (SR_QUO_STATE, ; P 1619 1 (TPA$_OCTAL, DONE_STATE, CHECK_QUOTE, ,RCV_QUOTE_CHR) ; 1620 1 ) ; 1621 1 %SBTTL 'SET RECEIVE EIGHT-BIT-QUOTE' ; 1622 1 ; 1623 1 !++ ; 1624 1 ! This routine will handle the setting of the eight bit quoting character. ; 1625 1 ! ; 1626 1 ! Kermit-32>SET RECEIVE EIGHT-BIT-QUOTE ; 1627 1 ! ; 1628 1 ! Where: ; 1629 1 ! is the octal number representing the quoting character. ; 1630 1 ! ; 1631 1 !-- ; 1632 1 ; P 1633 1 $STATE (SR_8QU_STATE, ; P 1634 1 (TPA$_OCTAL, DONE_STATE, CHECK_QUOTE, ,RCV_8QUOTE_CHR) ; 1635 1 ) ; 1636 1 %SBTTL 'SET SEND tables' ; 1637 1 ; 1638 1 !++ ; 1639 1 ! SET SEND command. Format is: ; 1640 1 ! ; 1641 1 ! Kermit-32>SET SEND item ; 1642 1 ! ; 1643 1 ! Where: ; 1644 1 ! Item - One of the following: ; 1645 1 ! PACKET-LENGTH ; 1646 1 ! PADDING ; 1647 1 ! PADCHAR ; 1648 1 ! TIMEOUT ; 1649 1 ! END-OF-LINE ; 1650 1 ! QUOTE ; 1651 1 ! ; 1652 1 !-- ; 1653 1 ; P 1654 1 $STATE (SET_SND_STATE, ; P 1655 1 ('END_OF_LINE', SS_EOL_STATE), ; P 1656 1 ('PACKET_LENGTH', SS_PKT_STATE), ; P 1657 1 ('PADCHAR', SS_PDC_STATE), ; P 1658 1 ('PADDING', SS_PAD_STATE), ; P 1659 1 ('QUOTE', SS_QUO_STATE), ; P 1660 1 ('START_OF_PACKET', SS_SOH_STATE), ; P 1661 1 ('TIMEOUT', SS_TIM_STATE), ; P 1662 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1663 1 ) ; 1664 1 ; 1665 1 ; 1666 1 ; 1667 1 !++ ; 1668 1 ! ; 1669 1 ! SET SEND PACKET-LENGTH command. Format is: ; 1670 1 ! ; 1671 1 ! Kermit-32>SET SEND PACKET-LENGTH ; 1672 1 ! ; 1673 1 ! Where: ; 1674 1 ! is a decimal number that specifies the length of a ; 1675 1 ! receive packet. ; 1676 1 ! ; 1677 1 !-- ; 1678 1 ; P 1679 1 $STATE (SS_PKT_STATE, ; P 1680 1 (TPA$_DECIMAL, DONE_STATE, CHECK_PACKET_LEN, ,SND_PKT_SIZE) ; 1681 1 ) ; 1682 1 ; 1683 1 ; 1684 1 !++ ; 1685 1 ! ; 1686 1 ! SET SEND PADDING command. The format of this command is: ; 1687 1 ! ; 1688 1 ! Kermit-32>SET SEND PADDING ; 1689 1 ! ; 1690 1 ! Where: ; 1691 1 ! is the decimal number of padding characters to output. ; 1692 1 ! ; 1693 1 !-- ; 1694 1 ; P 1695 1 $STATE (SS_PAD_STATE, ; P 1696 1 (TPA$_DECIMAL, DONE_STATE, CHECK_NPAD, ,SND_NPAD) ; 1697 1 ) ; 1698 1 ; 1699 1 !++ ; 1700 1 ! ; 1701 1 ! SET SEND PADCHAR command. Format is: ; 1702 1 ! ; 1703 1 ! Kermit-32>SET SEND PADCHAR ; 1704 1 ! ; 1705 1 ! Where: ; 1706 1 ! is the octal representation of the padding character ; 1707 1 ! that is to be used. ; 1708 1 ! ; 1709 1 !-- ; 1710 1 ; P 1711 1 $STATE (SS_PDC_STATE, ; P 1712 1 (TPA$_OCTAL, DONE_STATE, CHECK_PAD_CHAR, ,SND_PADCHAR) ; 1713 1 ) ; 1714 1 !++ ; 1715 1 ! ; 1716 1 ! SET RECEIVE START_OF_PACKET command. Format is: ; 1717 1 ! ; 1718 1 ! Kermit-32>SET RECEIVE START_OF_PACKET ; 1719 1 ! ; 1720 1 ! Where: ; 1721 1 ! is the octal representation of the padding character ; 1722 1 ! that is to be used. ; 1723 1 ! ; 1724 1 !-- ; 1725 1 ; P 1726 1 $STATE (SS_SOH_STATE, ; P 1727 1 (TPA$_OCTAL, DONE_STATE, CHECK_SOH, ,SND_SOH) ; 1728 1 ) ; 1729 1 ; 1730 1 !++ ; 1731 1 ! ; 1732 1 ! SET SEND TIMEOUT command. The format is: ; 1733 1 ! ; 1734 1 ! Kermit-32>SET SEND TIMEOUT ; 1735 1 ! ; 1736 1 ! Where: ; 1737 1 ! is the number of seconds before KERMIT-32 should time out ; 1738 1 ! attempting to receive a correct message. ; 1739 1 ! ; 1740 1 !-- ; 1741 1 ; P 1742 1 $STATE (SS_TIM_STATE, ; P 1743 1 (TPA$_DECIMAL, DONE_STATE, , ,SND_TIMEOUT) ; 1744 1 ) ; 1745 1 ; 1746 1 !++ ; 1747 1 ! SET SEND END-OF-LINE command. Format is: ; 1748 1 ! ; 1749 1 ! Kermit-32>SET SEND END-OF-LINE ; 1750 1 ! ; 1751 1 ! Where: ; 1752 1 ! is the octal number representation of the character ; 1753 1 ! that is the end of line character. ; 1754 1 ! ; 1755 1 !-- ; 1756 1 ; P 1757 1 $STATE (SS_EOL_STATE, ; P 1758 1 (TPA$_OCTAL, DONE_STATE, CHECK_EOL, ,SND_EOL) ; 1759 1 ) ; 1760 1 ; 1761 1 !++ ; 1762 1 ! SET SEND QUOTA command. The format is: ; 1763 1 ! ; 1764 1 ! Kermit-32>SET SEND QUOTA ; 1765 1 ! ; 1766 1 ! Where: ; 1767 1 ! is the octal number representing the quoting character. ; 1768 1 ! ; 1769 1 !-- ; 1770 1 ; P 1771 1 $STATE (SS_QUO_STATE, ; P 1772 1 (TPA$_OCTAL, DONE_STATE, CHECK_QUOTE, ,SND_QUOTE_CHR) ; 1773 1 ) ; 1774 1 ; 1775 1 !++ ; 1776 1 ! SET SERVER_TIMER command. ; 1777 1 ! ; 1778 1 ! This sets the time between naks send when server is idle. ; 1779 1 !-- ; 1780 1 ; P 1781 1 $STATE (SET_SRV_STATE, ; P 1782 1 (TPA$_DECIMAL, DONE_STATE, , ,SRV_TIMEOUT) ; 1783 1 ) ; 1784 1 %SBTTL 'SEND command' ; 1785 1 ; 1786 1 !++ ; 1787 1 ! SEND command. The format is: ; 1788 1 ! ; 1789 1 ! Kermit-32>SEND file-specification ; 1790 1 ! ; 1791 1 ! Where: ; 1792 1 ! FILE-SPECIFICATION is any valid VAX/VMS file specification. ; 1793 1 ! ; 1794 1 !-- ; 1795 1 ; P 1796 1 $STATE (SEND_STATE, ; P 1797 1 (TPA$_ANY, SEND_STATE, STORE_TEXT), ; P 1798 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,FILE_DESC) ; 1799 1 ) ; 1800 1 %SBTTL 'SHOW command' ; 1801 1 ; 1802 1 !++ ; 1803 1 ! SHOW command. The format is: ; 1804 1 ! ; 1805 1 ! Kermit-32>SHOW ; 1806 1 ! ; 1807 1 ! Where: ; 1808 1 ! is one of the following: ; 1809 1 ! SEND - Send parameters ; 1810 1 ! RECEIVE - Receive parameters ; 1811 1 ! DEBUGGING - State of the debugging flag ; 1812 1 ! FILE-TYPE - Type of the file ; 1813 1 ! LOCAL-ECHO - Local echo flag ; 1814 1 ! LINE - Current line associated ; 1815 1 ! ESCAPE - Current escape character ; 1816 1 ! DELAY - Delay parameter. ; 1817 1 ! ; 1818 1 !-- ; 1819 1 ; P 1820 1 $STATE (SHOW_STATE, ; P 1821 1 ('ALL', DONE_STATE, ,SHOW_ALL, SHOW_TYPE), ; P 1822 1 ('BLOCK_CHECK_TYPE', DONE_STATE, ,SHOW_CHK, SHOW_TYPE), ; P 1823 1 ('COMMUNICATIONS', DONE_STATE, ,SHOW_COM, SHOW_TYPE), ; P 1824 1 ('DEBUGGING', DONE_STATE, ,SHOW_DEB, SHOW_TYPE), ; P 1825 1 ('DELAY', DONE_STATE, ,SHOW_DEL, SHOW_TYPE), ; P 1826 1 ('ESCAPE', DONE_STATE, ,SHOW_ESC, SHOW_TYPE), ; P 1827 1 ('FILE_PARAMETERS', DONE_STATE, ,SHOW_FIL, SHOW_TYPE), ; P 1828 1 ('INCOMPLETE_FILE_DISPOSITION',DONE_STATE, ,SHOW_ABT, SHOW_TYPE), ; P 1829 1 ('LINE', DONE_STATE, ,SHOW_LIN, SHOW_TYPE), ; P 1830 1 ('LOCAL_ECHO', DONE_STATE, ,SHOW_ECH, SHOW_TYPE), ; P 1831 1 ('PACKET', DONE_STATE, ,SHOW_PAC, SHOW_TYPE), ; P 1832 1 ('PARITY', DONE_STATE, ,SHOW_PAR, SHOW_TYPE), ; P 1833 1 ('SEND', DONE_STATE, ,SHOW_SEN, SHOW_TYPE), ; P 1834 1 ('TIMING', DONE_STATE, ,SHOW_TIM, SHOW_TYPE), ; P 1835 1 ('RECEIVE', DONE_STATE, ,SHOW_REC, SHOW_TYPE), ; P 1836 1 ('RETRY', DONE_STATE, ,SHOW_RTY, SHOW_TYPE), ; P 1837 1 ('VERSION', DONE_STATE, ,SHOW_VER, SHOW_TYPE), ; P 1838 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1839 1 ) ; 1840 1 %SBTTL 'LOG command' ; 1841 1 ; 1842 1 !++ ; 1843 1 ! The LOG command allows the specification of a session or transaction ; 1844 1 !log file. ; 1845 1 !-- ; 1846 1 ; P 1847 1 $STATE (LOG_STATE, ; P 1848 1 ('DEBUGGING', DBG_STATE), ; P 1849 1 ('SESSION', SES_STATE), ; P 1850 1 ('TRANSACTIONS',TRN_STATE), ; P 1851 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1852 1 ) ; 1853 1 ; P 1854 1 $STATE (DBG_STATE, ; P 1855 1 (TPA$_ANY, DBG_STATE, STORE_TEXT), ; P 1856 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,DEBUG_DESC) ; 1857 1 ) ; 1858 1 ; P 1859 1 $STATE (SES_STATE, ; P 1860 1 (TPA$_ANY, SES_STATE, STORE_TEXT), ; P 1861 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,SESSION_DESC) ; 1862 1 ) ; 1863 1 ; P 1864 1 $STATE (TRN_STATE, ; P 1865 1 (TPA$_ANY, TRN_STATE, STORE_TEXT), ; P 1866 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,TRANSACTION_DESC) ; 1867 1 ) ; 1868 1 ; 1869 1 ; 1870 1 %SBTTL 'Take command tables' ; 1871 1 ; 1872 1 !++ ; 1873 1 ! The following describes the TAKE (or @) command. ; 1874 1 !-- ; 1875 1 ; P 1876 1 $STATE (TAKE_STATE, ; P 1877 1 ('/', TAK_SWT_STATE, COPY_DESC, , ,TAK_FIL_DESC), ; P 1878 1 (TPA$_ANY, TAKE_STATE, STORE_TEXT), ; P 1879 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,TAK_FIL_DESC) ; 1880 1 ) ; 1881 1 ; P 1882 1 $STATE (TAK_SWT_STATE, ; P 1883 1 ('DISPLAY', DONE_STATE, ,TRUE, TAKE_DISPLAY), ; P 1884 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1885 1 ) ; 1886 1 %SBTTL 'Done state' ; 1887 1 ; 1888 1 !++ ; 1889 1 ! This is the single state that is the required CONFIRM for the end ; 1890 1 ! of the commands. ; 1891 1 !-- ; 1892 1 ; P 1893 1 $STATE (DONE_STATE, ; P 1894 1 (TPA$_EOS, TPA$_EXIT) ; 1895 1 ) ; 1896 1 ; 1897 1 !++ ; 1898 1 ! ; 1899 1 ! End of the KERMIT-32 command definitions ; 1900 1 ! ; 1901 1 !-- ; 1902 1 ; 1903 1 PSECT OWN = $OWN$; ; 1904 1 PSECT GLOBAL = $GLOBAL$; ; 1905 1 ; 1906 1 ! ; 1907 1 ROUTINE MAIN_ROUTINE : NOVALUE = ; 1908 1 ; 1909 1 !++ ; 1910 1 ! FUNCTIONAL DESCRIPTION: ; 1911 1 ! ; 1912 1 ! This is the main routine for KERMIT-32. This routine will ; 1913 1 ! initialize the various parameters and then call the command ; 1914 1 ! scanner to process commands. ; 1915 1 ! ; 1916 1 ! FORMAL PARAMETERS: ; 1917 1 ! ; 1918 1 ! None. ; 1919 1 ! ; 1920 1 ! IMPLICIT INPUTS: ; 1921 1 ! ; 1922 1 ! None. ; 1923 1 ! ; 1924 1 ! IMPLICIT OUTPUTS: ; 1925 1 ! ; 1926 1 ! None. ; 1927 1 ! ; 1928 1 ! ROUTINE VALUE and ; 1929 1 ! COMPLETION CODES: ; 1930 1 ! ; 1931 1 ! None. ; 1932 1 ! ; 1933 1 ! SIDE EFFECTS: ; 1934 1 ! ; 1935 1 ! None. ; 1936 1 ! ; 1937 1 !-- ; 1938 1 ; 1939 2 BEGIN ; 1940 2 ; 1941 2 LOCAL ; 1942 2 STATUS, ! Returned status ; 1943 2 CRC_BIT_MASK, ! Bit mask for CRC initialization ; 1944 2 LOOP_FLAG; ; 1945 2 ; 1946 2 ! ; 1947 2 ! Initialize some variables ; 1948 2 ! ; 1949 2 STATUS = LIB$PUT_OUTPUT (IDENT_STRING); ![012] Say who we are ; 1950 2 MSG_INIT (); ! Initialize message processing ; 1951 2 TERM_INIT (); ! Init terminal processing ; 1952 2 TT_INIT (); ! Init text processing ; 1953 2 FILE_INIT (); ! Init file processing ; 1954 2 SY_INIT (); ! Init system routines ; 1955 2 ESCAPE_CHR = CHR_ESCAPE; ; 1956 2 ! ; 1957 2 ! Initialize some VAX/VMS interface items ; 1958 2 ! ; 1959 2 CRC_BIT_MASK = %O'102010'; ! CRC bit mask ; 1960 2 LIB$CRC_TABLE (CRC_BIT_MASK, CRC_TABLE); ; 1961 2 LIB$ESTABLISH (KERM_HANDLER); ; 1962 2 ! ; 1963 2 ! Initialize transaction log file descriptor ; 1964 2 ! ; 1965 2 INIT_STR_DESC (TRANSACTION_DESC, TRANSACTION_NAME, 0); ; 1966 2 ! ; 1967 2 ! Initialize take file descriptor ; 1968 2 ! ; 1969 2 INIT_STR_DESC (TAK_FIL_DESC, TAK_FIL_NAME, 0); ; 1970 2 ! ; 1971 2 ! Initialize prompt descriptor ; 1972 2 ! ; 1973 2 INIT_STR_DESC (PROMPT_DESC, PROMPT_TEXT, 0); ; 1974 2 ! ; 1975 2 ! Take initialization file ; 1976 2 ! ; 1977 2 COMND_FILE (%ASCID'VMSKERMIT', %ASCID'.INI;0', TRUE, FALSE); ; 1978 2 ! ; 1979 2 ! Main command loop ; 1980 2 ! ; 1981 2 COMND (); ; 1982 1 END; ! end of routine MAIN_ROUTINE .TITLE KERMIT .IDENT \3.1.066\ .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 <-4> ; ; ;TPA$MASK U.68: .LONG 11 ; ; ;TPA$TARGET U.70: .WORD <-2> ; ; ;TPA$TYPE U.74: .WORD 28929 ; ; ;TPA$ADDR U.75: .LONG <-4> ; ; ;TPA$MASK U.76: .LONG 1 ; ; ;TPA$TARGET U.78: .WORD <-2> ; ; ;TPA$TYPE U.82: .WORD 28930 ; ; ;TPA$ADDR U.83: .LONG <-4> ; ; ;TPA$MASK U.84: .LONG 2 ; ; ;TPA$TARGET U.85: .WORD <-2> ; ; ;TPA$TYPE U.89: .WORD 28931 ; ; ;TPA$ADDR U.90: .LONG <-4> ; ; ;TPA$MASK U.91: .LONG 12 ; ; ;TPA$TARGET U.92: .WORD <-2> ; ; ;TPA$TYPE U.96: .WORD 28932 ; ; ;TPA$ADDR U.97: .LONG <-4> ; ; ;TPA$MASK U.98: .LONG 13 ; ; ;TPA$TARGET U.100: .WORD <-2> ; ; ;TPA$TYPE U.104: .WORD 28933 ; ; ;TPA$ADDR U.105: .LONG <-4> ; ; ;TPA$MASK U.106: .LONG 3 ; ; ;TPA$TARGET U.108: .WORD <-2> ; ; ;TPA$TYPE U.112: .WORD 28934 ; ; ;TPA$ADDR U.113: .LONG <-4> ; ; ;TPA$MASK U.114: .LONG 15 ; ; ;TPA$TARGET U.116: .WORD <-2> ; ; ;TPA$TYPE U.120: .WORD 28935 ; ; ;TPA$ADDR U.121: .LONG <-4> ; ; ;TPA$MASK U.122: .LONG 17 ; ; ;TPA$TARGET U.124: .WORD <-2> ; ; ;TPA$TYPE U.128: .WORD 28936 ; ; ;TPA$ADDR U.129: .LONG <-4> ; ; ;TPA$MASK U.130: .LONG 10 ; ; ;TPA$TARGET U.131: .WORD <-2> ; ; ;TPA$TYPE U.135: .WORD 28937 ; ; ;TPA$ADDR U.136: .LONG <-4> ; ; ;TPA$MASK U.137: .LONG 16 ; ; ;TPA$TARGET U.138: .WORD <-2> ; ; ;TPA$TYPE U.142: .WORD 28938 ; ; ;TPA$ADDR U.143: .LONG <-4> ; ; ;TPA$MASK U.144: .LONG 2 ; ; ;TPA$TARGET U.145: .WORD <-2> ; ; ;TPA$TYPE U.149: .WORD 28939 ; ; ;TPA$ADDR U.150: .LONG <-4> ; ; ;TPA$MASK U.151: .LONG 4 ; ; ;TPA$TARGET U.153: .WORD <-2> ; ; ;TPA$TYPE U.157: .WORD 28940 ; ; ;TPA$ADDR U.158: .LONG <-4> ; ; ;TPA$MASK U.159: .LONG 14 ; ; ;TPA$TARGET U.160: .WORD <-2> ; ; ;TPA$TYPE U.164: .WORD 28941 ; ; ;TPA$ADDR U.165: .LONG <-4> ; ; ;TPA$MASK U.166: .LONG 5 ; ; ;TPA$TARGET U.168: .WORD <-2> ; ; ;TPA$TYPE U.172: .WORD 28942 ; ; ;TPA$ADDR U.173: .LONG <-4> ; ; ;TPA$MASK U.174: .LONG 6 ; ; ;TPA$TARGET U.176: .WORD <-2> ; ; ;TPA$TYPE U.180: .WORD 28943 ; ; ;TPA$ADDR U.181: .LONG <-4> ; ; ;TPA$MASK U.182: .LONG 8 ; ; ;TPA$TARGET U.183: .WORD <-2> ; ; ;TPA$TYPE U.187: .WORD 28944 ; ; ;TPA$ADDR U.188: .LONG <-4> ; ; ;TPA$MASK U.189: .LONG 7 ; ; ;TPA$TARGET U.191: .WORD <-2> ; ; ;TPA$TYPE U.195: .WORD 28945 ; ; ;TPA$ADDR U.196: .LONG <-4> ; ; ;TPA$MASK U.197: .LONG 9 ; ; ;TPA$TARGET U.198: .WORD <-2> ; ; ;TPA$TYPE U.202: .WORD 28946 ; ; ;TPA$ADDR U.203: .LONG <-4> ; ; ;TPA$MASK U.204: .LONG 18 ; ; ;TPA$TARGET U.206: .WORD <-2> ; ; ;TPA$TYPE U.207: .WORD 28736 ; ; ;TPA$ADDR U.208: .LONG <-4> ; ; ;TPA$MASK U.209: .LONG 18 ; ; ;TPA$TARGET U.210: .WORD <-2> ; ; ;TPA$TYPE U.211: .WORD -27151 ; ; ;TPA$ACTION U.212: .LONG <-4> ; ; ;TPA$TARGET U.213: .WORD -2 ; ; ;CONN_STATE U.77: .BLKB 0 ;TPA$TYPE U.215: .WORD 4599 ; ; ;TPA$TARGET U.216: .WORD <-2> ; ; ;TPA$TYPE U.217: .WORD 5622 ; ; ;TPA$TARGET U.219: .WORD <-2> ; ; ;HELP_STATE U.107: .BLKB 0 ;TPA$TYPE U.220: .WORD -28179 ; ; ;TPA$ACTION U.221: .LONG <-4> ; ; ;TPA$TARGET U.222: .WORD <-2> ; ; ;TPA$TYPE U.223: .WORD 5622 ; ; ;TPA$TARGET U.224: .WORD <-2> ; ; ;GET_STATE U.99: .BLKB 0 ;TPA$TYPE U.225: .WORD -28179 ; ; ;TPA$ACTION U.226: .LONG <-4> ; ; ;TPA$TARGET U.227: .WORD <-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 <-4> ; ; ;TPA$TARGET U.232: .WORD <-2> ; ; ;REC_STATE U.152: .BLKB 0 ;TPA$TYPE U.233: .WORD -28179 ; ; ;TPA$ACTION U.234: .LONG <-4> ; ; ;TPA$TARGET U.236: .WORD <-2> ; ; ;TPA$TYPE U.237: .WORD 5622 ; ; ;TPA$TARGET U.238: .WORD <-2> ; ; ;REC1_STATE U.235: .BLKB 0 ;TPA$TYPE U.239: .WORD -28179 ; ; ;TPA$ACTION U.240: .LONG <-4> ; ; ;TPA$TARGET U.241: .WORD <-2> ; ; ;TPA$TYPE U.242: .WORD -27146 ; ; ;TPA$ACTION U.243: .LONG <-4> ; ; ;TPA$TARGET U.244: .WORD <-2> ; ; ;REM_STATE U.115: .BLKB 0 ;TPA$TYPE U.248: .WORD 28947 ; ; ;TPA$ADDR U.249: .LONG <-4> ; ; ;TPA$MASK U.250: .LONG 11 ; ; ;TPA$TARGET U.252: .WORD <-2> ; ; ;TPA$TYPE U.256: .WORD 28948 ; ; ;TPA$ADDR U.257: .LONG <-4> ; ; ;TPA$MASK U.258: .LONG 9 ; ; ;TPA$TARGET U.260: .WORD <-2> ; ; ;TPA$TYPE U.264: .WORD 28949 ; ; ;TPA$ADDR U.265: .LONG <-4> ; ; ;TPA$MASK U.266: .LONG 4 ; ; ;TPA$TARGET U.267: .WORD <-2> ; ; ;TPA$TYPE U.271: .WORD 28950 ; ; ;TPA$ADDR U.272: .LONG <-4> ; ; ;TPA$MASK U.273: .LONG 2 ; ; ;TPA$TARGET U.274: .WORD <-2> ; ; ;TPA$TYPE U.278: .WORD 28951 ; ; ;TPA$ADDR U.279: .LONG <-4> ; ; ;TPA$MASK U.280: .LONG 3 ; ; ;TPA$TARGET U.281: .WORD <-2> ; ; ;TPA$TYPE U.285: .WORD 28952 ; ; ;TPA$ADDR U.286: .LONG <-4> ; ; ;TPA$MASK U.287: .LONG 1 ; ; ;TPA$TARGET U.288: .WORD <-2> ; ; ;TPA$TYPE U.292: .WORD 28953 ; ; ;TPA$ADDR U.293: .LONG <-4> ; ; ;TPA$MASK U.294: .LONG 6 ; ; ;TPA$TARGET U.295: .WORD <-2> ; ; ;TPA$TYPE U.299: .WORD 28954 ; ; ;TPA$ADDR U.300: .LONG <-4> ; ; ;TPA$MASK U.301: .LONG 15 ; ; ;TPA$TARGET U.302: .WORD <-2> ; ; ;TPA$TYPE U.306: .WORD 28955 ; ; ;TPA$ADDR U.307: .LONG <-4> ; ; ;TPA$MASK U.308: .LONG 8 ; ; ;TPA$TARGET U.309: .WORD <-2> ; ; ;TPA$TYPE U.313: .WORD 28956 ; ; ;TPA$ADDR U.314: .LONG <-4> ; ; ;TPA$MASK U.315: .LONG 7 ; ; ;TPA$TARGET U.316: .WORD <-2> ; ; ;TPA$TYPE U.320: .WORD 28957 ; ; ;TPA$ADDR U.321: .LONG <-4> ; ; ;TPA$MASK U.322: .LONG 10 ; ; ;TPA$TARGET U.323: .WORD <-2> ; ; ;TPA$TYPE U.327: .WORD 28958 ; ; ;TPA$ADDR U.328: .LONG <-4> ; ; ;TPA$MASK U.329: .LONG 13 ; ; ;TPA$TARGET U.330: .WORD <-2> ; ; ;TPA$TYPE U.334: .WORD 28959 ; ; ;TPA$ADDR U.335: .LONG <-4> ; ; ;TPA$MASK U.336: .LONG 3 ; ; ;TPA$TARGET U.337: .WORD <-2> ; ; ;TPA$TYPE U.341: .WORD 28960 ; ; ;TPA$ADDR U.342: .LONG <-4> ; ; ;TPA$MASK U.343: .LONG 14 ; ; ;TPA$TARGET U.344: .WORD <-2> ; ; ;TPA$TYPE U.348: .WORD 28961 ; ; ;TPA$ADDR U.349: .LONG <-4> ; ; ;TPA$MASK U.350: .LONG 5 ; ; ;TPA$TARGET U.351: .WORD <-2> ; ; ;TPA$TYPE U.355: .WORD 28962 ; ; ;TPA$ADDR U.356: .LONG <-4> ; ; ;TPA$MASK U.357: .LONG 12 ; ; ;TPA$TARGET U.358: .WORD <-2> ; ; ;TPA$TYPE U.359: .WORD -27151 ; ; ;TPA$ACTION U.360: .LONG <-4> ; ; ;TPA$TARGET U.361: .WORD -2 ; ; ;REM1_STATE U.259: .BLKB 0 ;TPA$TYPE U.363: .WORD -28179 ; ; ;TPA$ACTION U.364: .LONG <-4> ; ; ;TPA$TARGET U.365: .WORD <-2> ; ; ;TPA$TYPE U.366: .WORD 5622 ; ; ;TPA$TARGET U.367: .WORD <-2> ; ; ;REM2_STATE U.251: .BLKB 0 ;TPA$TYPE U.368: .WORD -28179 ; ; ;TPA$ACTION U.369: .LONG <-4> ; ; ;TPA$TARGET U.370: .WORD <-2> ; ; ;TPA$TYPE U.371: .WORD -27146 ; ; ;TPA$ACTION U.372: .LONG <-4> ; ; ;TPA$TARGET U.373: .WORD <-2> ; ; ;SET_STATE U.167: .BLKB 0 ;TPA$TYPE U.377: .WORD 4387 ; ; ;TPA$TARGET U.379: .WORD <-2> ; ; ;TPA$TYPE U.383: .WORD 4388 ; ; ;TPA$TARGET U.385: .WORD <-2> ; ; ;TPA$TYPE U.389: .WORD 4389 ; ; ;TPA$TARGET U.391: .WORD <-2> ; ; ;TPA$TYPE U.395: .WORD 4390 ; ; ;TPA$TARGET U.397: .WORD <-2> ; ; ;TPA$TYPE U.401: .WORD 4391 ; ; ;TPA$TARGET U.403: .WORD <-2> ; ; ;TPA$TYPE U.407: .WORD 4392 ; ; ;TPA$TARGET U.409: .WORD <-2> ; ; ;TPA$TYPE U.413: .WORD 4393 ; ; ;TPA$TARGET U.415: .WORD <-2> ; ; ;TPA$TYPE U.419: .WORD 4394 ; ; ;TPA$TARGET U.421: .WORD <-2> ; ; ;TPA$TYPE U.425: .WORD 4395 ; ; ;TPA$TARGET U.426: .WORD <-2> ; ; ;TPA$TYPE U.430: .WORD 4396 ; ; ;TPA$TARGET U.432: .WORD <-2> ; ; ;TPA$TYPE U.436: .WORD 4397 ; ; ;TPA$TARGET U.438: .WORD <-2> ; ; ;TPA$TYPE U.442: .WORD 4398 ; ; ;TPA$TARGET U.444: .WORD <-2> ; ; ;TPA$TYPE U.448: .WORD 4399 ; ; ;TPA$TARGET U.450: .WORD <-2> ; ; ;TPA$TYPE U.454: .WORD 4400 ; ; ;TPA$TARGET U.456: .WORD <-2> ; ; ;TPA$TYPE U.460: .WORD 4401 ; ; ;TPA$TARGET U.462: .WORD <-2> ; ; ;TPA$TYPE U.466: .WORD 4402 ; ; ;TPA$TARGET U.468: .WORD <-2> ; ; ;TPA$TYPE U.472: .WORD 4403 ; ; ;TPA$TARGET U.474: .WORD <-2> ; ; ;TPA$TYPE U.478: .WORD 4404 ; ; ;TPA$TARGET U.480: .WORD <-2> ; ; ;TPA$TYPE U.481: .WORD -27151 ; ; ;TPA$ACTION U.482: .LONG <-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 <-4> ; ; ;TPA$TARGET U.492: .WORD <-2> ; ; ;TPA$TYPE U.496: .WORD -27850 ; ; ;TPA$FLAGS2 U.497: .BYTE 1 ; ; ;TPA$PARAM U.498: .LONG 0 ; ; ;TPA$ACTION U.499: .LONG <-4> ; ; ;TPA$TARGET U.500: .WORD <-2> ; ; ;TPA$TYPE U.501: .WORD -27151 ; ; ;TPA$ACTION U.502: .LONG <-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 <-4> ; ; ;TPA$TARGET U.512: .WORD <-2> ; ; ;TPA$TYPE U.516: .WORD -27848 ; ; ;TPA$FLAGS2 U.517: .BYTE 1 ; ; ;TPA$PARAM U.518: .LONG 50 ; ; ;TPA$ACTION U.519: .LONG <-4> ; ; ;TPA$TARGET U.520: .WORD <-2> ; ; ;TPA$TYPE U.524: .WORD -27847 ; ; ;TPA$FLAGS2 U.525: .BYTE 1 ; ; ;TPA$PARAM U.526: .LONG 51 ; ; ;TPA$ACTION U.527: .LONG <-4> ; ; ;TPA$TARGET U.528: .WORD <-2> ; ; ;TPA$TYPE U.532: .WORD -27846 ; ; ;TPA$FLAGS2 U.533: .BYTE 1 ; ; ;TPA$PARAM U.534: .LONG 49 ; ; ;TPA$ACTION U.535: .LONG <-4> ; ; ;TPA$TARGET U.536: .WORD <-2> ; ; ;TPA$TYPE U.540: .WORD -27845 ; ; ;TPA$FLAGS2 U.541: .BYTE 1 ; ; ;TPA$PARAM U.542: .LONG 51 ; ; ;TPA$ACTION U.543: .LONG <-4> ; ; ;TPA$TARGET U.544: .WORD <-2> ; ; ;TPA$TYPE U.548: .WORD -27844 ; ; ;TPA$FLAGS2 U.549: .BYTE 1 ; ; ;TPA$PARAM U.550: .LONG 50 ; ; ;TPA$ACTION U.551: .LONG <-4> ; ; ;TPA$TARGET U.552: .WORD <-2> ; ; ;TPA$TYPE U.553: .WORD -27151 ; ; ;TPA$ACTION U.554: .LONG <-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 <-4> ; ; ;TPA$TARGET U.564: .WORD <-2> ; ; ;TPA$TYPE U.568: .WORD -27842 ; ; ;TPA$FLAGS2 U.569: .BYTE 1 ; ; ;TPA$PARAM U.570: .LONG 1 ; ; ;TPA$ACTION U.571: .LONG <-4> ; ; ;TPA$TARGET U.572: .WORD <-2> ; ; ;TPA$TYPE U.573: .WORD -27151 ; ; ;TPA$ACTION U.574: .LONG <-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 <-4> ; ; ;TPA$TARGET U.584: .WORD <-2> ; ; ;TPA$TYPE U.588: .WORD -27840 ; ; ;TPA$FLAGS2 U.589: .BYTE 1 ; ; ;TPA$PARAM U.590: .LONG 1 ; ; ;TPA$ACTION U.591: .LONG <-4> ; ; ;TPA$TARGET U.592: .WORD <-2> ; ; ;TPA$TYPE U.593: .WORD -27151 ; ; ;TPA$ACTION U.594: .LONG <-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 <-4> ; ; ;TPA$MASK U.602: .LONG -1 ; ; ;TPA$TARGET U.603: .WORD <-2> ; ; ;TPA$TYPE U.604: .WORD 22004 ; ; ;TPA$ADDR U.605: .LONG <-4> ; ; ;TPA$TARGET U.606: .WORD <-2> ; ; ;SET_DEL_STATE U.390: .BLKB 0 ;TPA$TYPE U.608: .WORD 22003 ; ; ;TPA$ADDR U.609: .LONG <-4> ; ; ;TPA$TARGET U.610: .WORD <-2> ; ; ;SET_ESC_STATE U.396: .BLKB 0 ;TPA$TYPE U.611: .WORD 22004 ; ; ;TPA$ADDR U.612: .LONG <-4> ; ; ;TPA$TARGET U.613: .WORD <-2> ; ; ;SET_FIL_STATE U.402: .BLKB 0 ;TPA$TYPE U.617: .WORD 4418 ; ; ;TPA$TARGET U.619: .WORD <-2> ; ; ;TPA$TYPE U.623: .WORD 4419 ; ; ;TPA$TARGET U.625: .WORD <-2> ; ; ;TPA$TYPE U.626: .WORD -27151 ; ; ;TPA$ACTION U.627: .LONG <-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 <-4> ; ; ;TPA$TARGET U.637: .WORD <-2> ; ; ;TPA$TYPE U.641: .WORD -27835 ; ; ;TPA$FLAGS2 U.642: .BYTE 1 ; ; ;TPA$PARAM U.643: .LONG 1 ; ; ;TPA$ACTION U.644: .LONG <-4> ; ; ;TPA$TARGET U.645: .WORD <-2> ; ; ;TPA$TYPE U.649: .WORD -27834 ; ; ;TPA$FLAGS2 U.650: .BYTE 1 ; ; ;TPA$PARAM U.651: .LONG 4 ; ; ;TPA$ACTION U.652: .LONG <-4> ; ; ;TPA$TARGET U.653: .WORD <-2> ; ; ;TPA$TYPE U.654: .WORD -27151 ; ; ;TPA$ACTION U.655: .LONG <-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 <-4> ; ; ;TPA$TARGET U.665: .WORD <-2> ; ; ;TPA$TYPE U.669: .WORD -27832 ; ; ;TPA$FLAGS2 U.670: .BYTE 1 ; ; ;TPA$PARAM U.671: .LONG 2 ; ; ;TPA$ACTION U.672: .LONG <-4> ; ; ;TPA$TARGET U.673: .WORD <-2> ; ; ;TPA$TYPE U.677: .WORD -27831 ; ; ;TPA$FLAGS2 U.678: .BYTE 1 ; ; ;TPA$PARAM U.679: .LONG 3 ; ; ;TPA$ACTION U.680: .LONG <-4> ; ; ;TPA$TARGET U.681: .WORD <-2> ; ; ;TPA$TYPE U.685: .WORD -27830 ; ; ;TPA$FLAGS2 U.686: .BYTE 1 ; ; ;TPA$PARAM U.687: .LONG 4 ; ; ;TPA$ACTION U.688: .LONG <-4> ; ; ;TPA$TARGET U.689: .WORD <-2> ; ; ;TPA$TYPE U.690: .WORD -27151 ; ; ;TPA$ACTION U.691: .LONG <-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 <-4> ; ; ;TPA$TARGET U.696: .WORD <-2> ; ; ;TPA$TYPE U.697: .WORD -27146 ; ; ;TPA$ACTION U.698: .LONG <-4> ; ; ;TPA$TARGET U.699: .WORD <-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 <-4> ; ; ;TPA$TARGET U.707: .WORD <-2> ; ; ;TPA$TYPE U.711: .WORD -27828 ; ; ;TPA$FLAGS2 U.712: .BYTE 1 ; ; ;TPA$PARAM U.713: .LONG 1 ; ; ;TPA$ACTION U.714: .LONG <-4> ; ; ;TPA$TARGET U.715: .WORD <-2> ; ; ;TPA$TYPE U.716: .WORD -27151 ; ; ;TPA$ACTION U.717: .LONG <-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 <-2> ; ; ;TPA$TYPE U.729: .WORD 4430 ; ; ;TPA$TARGET U.731: .WORD <-2> ; ; ;TPA$TYPE U.732: .WORD -27151 ; ; ;TPA$ACTION U.733: .LONG <-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 <-4> ; ; ;TPA$TARGET U.743: .WORD <-2> ; ; ;TPA$TYPE U.747: .WORD -27824 ; ; ;TPA$FLAGS2 U.748: .BYTE 1 ; ; ;TPA$PARAM U.749: .LONG 1 ; ; ;TPA$ACTION U.750: .LONG <-4> ; ; ;TPA$TARGET U.751: .WORD <-2> ; ; ;TPA$TYPE U.752: .WORD -27151 ; ; ;TPA$ACTION U.753: .LONG <-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 <-4> ; ; ;TPA$TARGET U.763: .WORD <-2> ; ; ;TPA$TYPE U.767: .WORD -27822 ; ; ;TPA$FLAGS2 U.768: .BYTE 1 ; ; ;TPA$PARAM U.769: .LONG 1 ; ; ;TPA$ACTION U.770: .LONG <-4> ; ; ;TPA$TARGET U.771: .WORD <-2> ; ; ;TPA$TYPE U.772: .WORD -27151 ; ; ;TPA$ACTION U.773: .LONG <-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 <-4> ; ; ;TPA$TARGET U.778: .WORD <-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 <-4> ; ; ;TPA$TARGET U.783: .WORD <-2> ; ; ;SET_RPT_STATE U.461: .BLKB 0 ;TPA$TYPE U.784: .WORD -10764 ; ; ;TPA$ACTION U.785: .LONG <-4> ; ; ;TPA$ADDR U.786: .LONG <-4> ; ; ;TPA$TARGET U.787: .WORD <-2> ; ; ;SET_RTY_STATE U.467: .BLKB 0 ;TPA$TYPE U.791: .WORD 4435 ; ; ;TPA$TARGET U.793: .WORD <-2> ; ; ;TPA$TYPE U.797: .WORD 4436 ; ; ;TPA$TARGET U.799: .WORD <-2> ; ; ;TPA$TYPE U.800: .WORD -27151 ; ; ;TPA$ACTION U.801: .LONG <-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 <-4> ; ; ;TPA$TARGET U.806: .WORD <-2> ; ; ;SET_RTY_PKT_STATE U.798: .BLKB 0 ;TPA$TYPE U.807: .WORD 22003 ; ; ;TPA$ADDR U.808: .LONG <-4> ; ; ;TPA$TARGET U.809: .WORD <-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 <-4> ; ; ;TPA$TARGET U.817: .WORD <-2> ; ; ;TPA$TYPE U.821: .WORD -27818 ; ; ;TPA$FLAGS2 U.822: .BYTE 1 ; ; ;TPA$PARAM U.823: .LONG 1 ; ; ;TPA$ACTION U.824: .LONG <-4> ; ; ;TPA$TARGET U.825: .WORD <-2> ; ; ;TPA$TYPE U.829: .WORD -27817 ; ; ;TPA$FLAGS2 U.830: .BYTE 1 ; ; ;TPA$PARAM U.831: .LONG 0 ; ; ;TPA$ACTION U.832: .LONG <-4> ; ; ;TPA$TARGET U.833: .WORD <-2> ; ; ;TPA$TYPE U.837: .WORD -27816 ; ; ;TPA$FLAGS2 U.838: .BYTE 1 ; ; ;TPA$PARAM U.839: .LONG 3 ; ; ;TPA$ACTION U.840: .LONG <-4> ; ; ;TPA$TARGET U.841: .WORD <-2> ; ; ;TPA$TYPE U.845: .WORD -27815 ; ; ;TPA$FLAGS2 U.846: .BYTE 1 ; ; ;TPA$PARAM U.847: .LONG 4 ; ; ;TPA$ACTION U.848: .LONG <-4> ; ; ;TPA$TARGET U.849: .WORD <-2> ; ; ;TPA$TYPE U.850: .WORD -27151 ; ; ;TPA$ACTION U.851: .LONG <-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 <-2> ; ; ;TPA$TYPE U.863: .WORD 4443 ; ; ;TPA$TARGET U.865: .WORD <-2> ; ; ;TPA$TYPE U.869: .WORD 4444 ; ; ;TPA$TARGET U.871: .WORD <-2> ; ; ;TPA$TYPE U.875: .WORD 4445 ; ; ;TPA$TARGET U.877: .WORD <-2> ; ; ;TPA$TYPE U.881: .WORD 4446 ; ; ;TPA$TARGET U.883: .WORD <-2> ; ; ;TPA$TYPE U.887: .WORD 4447 ; ; ;TPA$TARGET U.889: .WORD <-2> ; ; ;TPA$TYPE U.893: .WORD 4448 ; ; ;TPA$TARGET U.895: .WORD <-2> ; ; ;TPA$TYPE U.899: .WORD 4449 ; ; ;TPA$TARGET U.901: .WORD <-2> ; ; ;TPA$TYPE U.902: .WORD -27151 ; ; ;TPA$ACTION U.903: .LONG <-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 <-4> ; ; ;TPA$ADDR U.908: .LONG <-4> ; ; ;TPA$TARGET U.909: .WORD <-2> ; ; ;SR_PAD_STATE U.882: .BLKB 0 ;TPA$TYPE U.910: .WORD -10765 ; ; ;TPA$ACTION U.911: .LONG <-4> ; ; ;TPA$ADDR U.912: .LONG <-4> ; ; ;TPA$TARGET U.913: .WORD <-2> ; ; ;SR_PDC_STATE U.876: .BLKB 0 ;TPA$TYPE U.914: .WORD -10764 ; ; ;TPA$ACTION U.915: .LONG <-4> ; ; ;TPA$ADDR U.916: .LONG <-4> ; ; ;TPA$TARGET U.917: .WORD <-2> ; ; ;SR_SOH_STATE U.894: .BLKB 0 ;TPA$TYPE U.918: .WORD -10764 ; ; ;TPA$ACTION U.919: .LONG <-4> ; ; ;TPA$ADDR U.920: .LONG <-4> ; ; ;TPA$TARGET U.921: .WORD <-2> ; ; ;SR_TIM_STATE U.900: .BLKB 0 ;TPA$TYPE U.922: .WORD 22003 ; ; ;TPA$ADDR U.923: .LONG <-4> ; ; ;TPA$TARGET U.924: .WORD <-2> ; ; ;SR_EOL_STATE U.864: .BLKB 0 ;TPA$TYPE U.925: .WORD -10764 ; ; ;TPA$ACTION U.926: .LONG <-4> ; ; ;TPA$ADDR U.927: .LONG <-4> ; ; ;TPA$TARGET U.928: .WORD <-2> ; ; ;SR_QUO_STATE U.888: .BLKB 0 ;TPA$TYPE U.929: .WORD -10764 ; ; ;TPA$ACTION U.930: .LONG <-4> ; ; ;TPA$ADDR U.931: .LONG <-4> ; ; ;TPA$TARGET U.932: .WORD <-2> ; ; ;SR_8QU_STATE U.858: .BLKB 0 ;TPA$TYPE U.933: .WORD -10764 ; ; ;TPA$ACTION U.934: .LONG <-4> ; ; ;TPA$ADDR U.935: .LONG <-4> ; ; ;TPA$TARGET U.936: .WORD <-2> ; ; ;SET_SND_STATE U.473: .BLKB 0 ;TPA$TYPE U.940: .WORD 4450 ; ; ;TPA$TARGET U.942: .WORD <-2> ; ; ;TPA$TYPE U.946: .WORD 4451 ; ; ;TPA$TARGET U.948: .WORD <-2> ; ; ;TPA$TYPE U.952: .WORD 4452 ; ; ;TPA$TARGET U.954: .WORD <-2> ; ; ;TPA$TYPE U.958: .WORD 4453 ; ; ;TPA$TARGET U.960: .WORD <-2> ; ; ;TPA$TYPE U.964: .WORD 4454 ; ; ;TPA$TARGET U.966: .WORD <-2> ; ; ;TPA$TYPE U.970: .WORD 4455 ; ; ;TPA$TARGET U.972: .WORD <-2> ; ; ;TPA$TYPE U.976: .WORD 4456 ; ; ;TPA$TARGET U.978: .WORD <-2> ; ; ;TPA$TYPE U.979: .WORD -27151 ; ; ;TPA$ACTION U.980: .LONG <-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 <-4> ; ; ;TPA$ADDR U.985: .LONG <-4> ; ; ;TPA$TARGET U.986: .WORD <-2> ; ; ;SS_PAD_STATE U.959: .BLKB 0 ;TPA$TYPE U.987: .WORD -10765 ; ; ;TPA$ACTION U.988: .LONG <-4> ; ; ;TPA$ADDR U.989: .LONG <-4> ; ; ;TPA$TARGET U.990: .WORD <-2> ; ; ;SS_PDC_STATE U.953: .BLKB 0 ;TPA$TYPE U.991: .WORD -10764 ; ; ;TPA$ACTION U.992: .LONG <-4> ; ; ;TPA$ADDR U.993: .LONG <-4> ; ; ;TPA$TARGET U.994: .WORD <-2> ; ; ;SS_SOH_STATE U.971: .BLKB 0 ;TPA$TYPE U.995: .WORD -10764 ; ; ;TPA$ACTION U.996: .LONG <-4> ; ; ;TPA$ADDR U.997: .LONG <-4> ; ; ;TPA$TARGET U.998: .WORD <-2> ; ; ;SS_TIM_STATE U.977: .BLKB 0 ;TPA$TYPE U.999: .WORD 22003 ; ; ;TPA$ADDR U.1000: .LONG <-4> ; ; ;TPA$TARGET U.1001: .WORD <-2> ; ; ;SS_EOL_STATE U.941: .BLKB 0 ;TPA$TYPE U.1002: .WORD -10764 ; ; ;TPA$ACTION U.1003: .LONG <-4> ; ; ;TPA$ADDR U.1004: .LONG <-4> ; ; ;TPA$TARGET U.1005: .WORD <-2> ; ; ;SS_QUO_STATE U.965: .BLKB 0 ;TPA$TYPE U.1006: .WORD -10764 ; ; ;TPA$ACTION U.1007: .LONG <-4> ; ; ;TPA$ADDR U.1008: .LONG <-4> ; ; ;TPA$TARGET U.1009: .WORD <-2> ; ; ;SET_SRV_STATE U.479: .BLKB 0 ;TPA$TYPE U.1010: .WORD 22003 ; ; ;TPA$ADDR U.1011: .LONG <-4> ; ; ;TPA$TARGET U.1012: .WORD <-2> ; ; ;SEND_STATE U.175: .BLKB 0 ;TPA$TYPE U.1013: .WORD -28179 ; ; ;TPA$ACTION U.1014: .LONG <-4> ; ; ;TPA$TARGET U.1015: .WORD <-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 <-4> ; ; ;TPA$TARGET U.1020: .WORD <-2> ; ; ;SHOW_STATE U.190: .BLKB 0 ;TPA$TYPE U.1024: .WORD 29033 ; ; ;TPA$ADDR U.1025: .LONG <-4> ; ; ;TPA$MASK U.1026: .LONG 1 ; ; ;TPA$TARGET U.1027: .WORD <-2> ; ; ;TPA$TYPE U.1031: .WORD 29034 ; ; ;TPA$ADDR U.1032: .LONG <-4> ; ; ;TPA$MASK U.1033: .LONG 12 ; ; ;TPA$TARGET U.1034: .WORD <-2> ; ; ;TPA$TYPE U.1038: .WORD 29035 ; ; ;TPA$ADDR U.1039: .LONG <-4> ; ; ;TPA$MASK U.1040: .LONG 16 ; ; ;TPA$TARGET U.1041: .WORD <-2> ; ; ;TPA$TYPE U.1045: .WORD 29036 ; ; ;TPA$ADDR U.1046: .LONG <-4> ; ; ;TPA$MASK U.1047: .LONG 2 ; ; ;TPA$TARGET U.1048: .WORD <-2> ; ; ;TPA$TYPE U.1052: .WORD 29037 ; ; ;TPA$ADDR U.1053: .LONG <-4> ; ; ;TPA$MASK U.1054: .LONG 3 ; ; ;TPA$TARGET U.1055: .WORD <-2> ; ; ;TPA$TYPE U.1059: .WORD 29038 ; ; ;TPA$ADDR U.1060: .LONG <-4> ; ; ;TPA$MASK U.1061: .LONG 4 ; ; ;TPA$TARGET U.1062: .WORD <-2> ; ; ;TPA$TYPE U.1066: .WORD 29039 ; ; ;TPA$ADDR U.1067: .LONG <-4> ; ; ;TPA$MASK U.1068: .LONG 14 ; ; ;TPA$TARGET U.1069: .WORD <-2> ; ; ;TPA$TYPE U.1073: .WORD 29040 ; ; ;TPA$ADDR U.1074: .LONG <-4> ; ; ;TPA$MASK U.1075: .LONG 13 ; ; ;TPA$TARGET U.1076: .WORD <-2> ; ; ;TPA$TYPE U.1080: .WORD 29041 ; ; ;TPA$ADDR U.1081: .LONG <-4> ; ; ;TPA$MASK U.1082: .LONG 6 ; ; ;TPA$TARGET U.1083: .WORD <-2> ; ; ;TPA$TYPE U.1087: .WORD 29042 ; ; ;TPA$ADDR U.1088: .LONG <-4> ; ; ;TPA$MASK U.1089: .LONG 7 ; ; ;TPA$TARGET U.1090: .WORD <-2> ; ; ;TPA$TYPE U.1094: .WORD 29043 ; ; ;TPA$ADDR U.1095: .LONG <-4> ; ; ;TPA$MASK U.1096: .LONG 15 ; ; ;TPA$TARGET U.1097: .WORD <-2> ; ; ;TPA$TYPE U.1101: .WORD 29044 ; ; ;TPA$ADDR U.1102: .LONG <-4> ; ; ;TPA$MASK U.1103: .LONG 10 ; ; ;TPA$TARGET U.1104: .WORD <-2> ; ; ;TPA$TYPE U.1108: .WORD 29045 ; ; ;TPA$ADDR U.1109: .LONG <-4> ; ; ;TPA$MASK U.1110: .LONG 8 ; ; ;TPA$TARGET U.1111: .WORD <-2> ; ; ;TPA$TYPE U.1115: .WORD 29046 ; ; ;TPA$ADDR U.1116: .LONG <-4> ; ; ;TPA$MASK U.1117: .LONG 5 ; ; ;TPA$TARGET U.1118: .WORD <-2> ; ; ;TPA$TYPE U.1122: .WORD 29047 ; ; ;TPA$ADDR U.1123: .LONG <-4> ; ; ;TPA$MASK U.1124: .LONG 9 ; ; ;TPA$TARGET U.1125: .WORD <-2> ; ; ;TPA$TYPE U.1129: .WORD 29048 ; ; ;TPA$ADDR U.1130: .LONG <-4> ; ; ;TPA$MASK U.1131: .LONG 11 ; ; ;TPA$TARGET U.1132: .WORD <-2> ; ; ;TPA$TYPE U.1136: .WORD 29049 ; ; ;TPA$ADDR U.1137: .LONG <-4> ; ; ;TPA$MASK U.1138: .LONG 17 ; ; ;TPA$TARGET U.1139: .WORD <-2> ; ; ;TPA$TYPE U.1140: .WORD -27151 ; ; ;TPA$ACTION U.1141: .LONG <-4> ; ; ;TPA$TARGET U.1142: .WORD -2 ; ; ;LOG_STATE U.123: .BLKB 0 ;TPA$TYPE U.1147: .WORD 4474 ; ; ;TPA$TARGET U.1149: .WORD <-2> ; ; ;TPA$TYPE U.1153: .WORD 4475 ; ; ;TPA$TARGET U.1155: .WORD <-2> ; ; ;TPA$TYPE U.1159: .WORD 4476 ; ; ;TPA$TARGET U.1161: .WORD <-2> ; ; ;TPA$TYPE U.1162: .WORD -27151 ; ; ;TPA$ACTION U.1163: .LONG <-4> ; ; ;TPA$TARGET U.1164: .WORD -2 ; ; ;DBG_STATE U.1148: .BLKB 0 ;TPA$TYPE U.1166: .WORD -28179 ; ; ;TPA$ACTION U.1167: .LONG <-4> ; ; ;TPA$TARGET U.1168: .WORD <-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 <-4> ; ; ;TPA$TARGET U.1173: .WORD <-2> ; ; ;SES_STATE U.1154: .BLKB 0 ;TPA$TYPE U.1174: .WORD -28179 ; ; ;TPA$ACTION U.1175: .LONG <-4> ; ; ;TPA$TARGET U.1176: .WORD <-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 <-4> ; ; ;TPA$TARGET U.1181: .WORD <-2> ; ; ;TRN_STATE U.1160: .BLKB 0 ;TPA$TYPE U.1182: .WORD -28179 ; ; ;TPA$ACTION U.1183: .LONG <-4> ; ; ;TPA$TARGET U.1184: .WORD <-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 <-4> ; ; ;TPA$TARGET U.1189: .WORD <-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 <-4> ; ; ;TPA$TARGET U.1195: .WORD <-2> ; ; ;TPA$TYPE U.1196: .WORD -28179 ; ; ;TPA$ACTION U.1197: .LONG <-4> ; ; ;TPA$TARGET U.1198: .WORD <-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 <-4> ; ; ;TPA$TARGET U.1203: .WORD <-2> ; ; ;TAK_SWT_STATE U.1194: .BLKB 0 ;TPA$TYPE U.1207: .WORD 29053 ; ; ;TPA$ADDR U.1208: .LONG <-4> ; ; ;TPA$MASK U.1209: .LONG 1 ; ; ;TPA$TARGET U.1210: .WORD <-2> ; ; ;TPA$TYPE U.1211: .WORD -27151 ; ; ;TPA$ACTION U.1212: .LONG <-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 ; ; ;TPA$KEY U.72: .WORD ; ; ;TPA$KEY U.80: .WORD ; ; ;TPA$KEY U.87: .WORD ; ; ;TPA$KEY U.94: .WORD ; ; ;TPA$KEY U.102: .WORD ; ; ;TPA$KEY U.110: .WORD ; ; ;TPA$KEY U.118: .WORD ; ; ;TPA$KEY U.126: .WORD ; ; ;TPA$KEY U.133: .WORD ; ; ;TPA$KEY U.140: .WORD ; ; ;TPA$KEY U.147: .WORD ; ; ;TPA$KEY U.155: .WORD ; ; ;TPA$KEY U.162: .WORD ; ; ;TPA$KEY U.170: .WORD ; ; ;TPA$KEY U.178: .WORD ; ; ;TPA$KEY U.185: .WORD ; ; ;TPA$KEY U.193: .WORD ; ; ;TPA$KEY U.200: .WORD ; ; ;TPA$KEY U.246: .WORD ; ; ;TPA$KEY U.254: .WORD ; ; ;TPA$KEY U.262: .WORD ; ; ;TPA$KEY U.269: .WORD ; ; ;TPA$KEY U.276: .WORD ; ; ;TPA$KEY U.283: .WORD ; ; ;TPA$KEY U.290: .WORD ; ; ;TPA$KEY U.297: .WORD ; ; ;TPA$KEY U.304: .WORD ; ; ;TPA$KEY U.311: .WORD ; ; ;TPA$KEY U.318: .WORD ; ; ;TPA$KEY U.325: .WORD ; ; ;TPA$KEY U.332: .WORD ; ; ;TPA$KEY U.339: .WORD ; ; ;TPA$KEY U.346: .WORD ; ; ;TPA$KEY U.353: .WORD ; ; ;TPA$KEY U.375: .WORD ; ; ;TPA$KEY U.381: .WORD ; ; ;TPA$KEY U.387: .WORD ; ; ;TPA$KEY U.393: .WORD ; ; ;TPA$KEY U.399: .WORD ; ; ;TPA$KEY U.405: .WORD ; ; ;TPA$KEY U.411: .WORD ; ; ;TPA$KEY U.417: .WORD ; ; ;TPA$KEY U.423: .WORD ; ; ;TPA$KEY U.428: .WORD ; ; ;TPA$KEY U.434: .WORD ; ; ;TPA$KEY U.440: .WORD ; ; ;TPA$KEY U.446: .WORD ; ; ;TPA$KEY U.452: .WORD ; ; ;TPA$KEY U.458: .WORD ; ; ;TPA$KEY U.464: .WORD ; ; ;TPA$KEY U.470: .WORD ; ; ;TPA$KEY U.476: .WORD ; ; ;TPA$KEY U.486: .WORD ; ; ;TPA$KEY U.494: .WORD ; ; ;TPA$KEY U.506: .WORD ; ; ;TPA$KEY U.514: .WORD ; ; ;TPA$KEY U.522: .WORD ; ; ;TPA$KEY U.530: .WORD ; ; ;TPA$KEY U.538: .WORD ; ; ;TPA$KEY U.546: .WORD ; ; ;TPA$KEY U.558: .WORD ; ; ;TPA$KEY U.566: .WORD ; ; ;TPA$KEY U.578: .WORD ; ; ;TPA$KEY U.586: .WORD ; ; ;TPA$KEY U.598: .WORD ; ; ;TPA$KEY U.615: .WORD ; ; ;TPA$KEY U.621: .WORD ; ; ;TPA$KEY U.631: .WORD ; ; ;TPA$KEY U.639: .WORD ; ; ;TPA$KEY U.647: .WORD ; ; ;TPA$KEY U.659: .WORD ; ; ;TPA$KEY U.667: .WORD ; ; ;TPA$KEY U.675: .WORD ; ; ;TPA$KEY U.683: .WORD ; ; ;TPA$KEY U.701: .WORD ; ; ;TPA$KEY U.709: .WORD ; ; ;TPA$KEY U.721: .WORD ; ; ;TPA$KEY U.727: .WORD ; ; ;TPA$KEY U.737: .WORD ; ; ;TPA$KEY U.745: .WORD ; ; ;TPA$KEY U.757: .WORD ; ; ;TPA$KEY U.765: .WORD ; ; ;TPA$KEY U.789: .WORD ; ; ;TPA$KEY U.795: .WORD ; ; ;TPA$KEY U.811: .WORD ; ; ;TPA$KEY U.819: .WORD ; ; ;TPA$KEY U.827: .WORD ; ; ;TPA$KEY U.835: .WORD ; ; ;TPA$KEY U.843: .WORD ; ; ;TPA$KEY U.855: .WORD ; ; ;TPA$KEY U.861: .WORD ; ; ;TPA$KEY U.867: .WORD ; ; ;TPA$KEY U.873: .WORD ; ; ;TPA$KEY U.879: .WORD ; ; ;TPA$KEY U.885: .WORD ; ; ;TPA$KEY U.891: .WORD ; ; ;TPA$KEY U.897: .WORD ; ; ;TPA$KEY U.938: .WORD ; ; ;TPA$KEY U.944: .WORD ; ; ;TPA$KEY U.950: .WORD ; ; ;TPA$KEY U.956: .WORD ; ; ;TPA$KEY U.962: .WORD ; ; ;TPA$KEY U.968: .WORD ; ; ;TPA$KEY U.974: .WORD ; ; ;TPA$KEY U.1022: .WORD ; ; ;TPA$KEY U.1029: .WORD ; ; ;TPA$KEY U.1036: .WORD ; ; ;TPA$KEY U.1043: .WORD ; ; ;TPA$KEY U.1050: .WORD ; ; ;TPA$KEY U.1057: .WORD ; ; ;TPA$KEY U.1064: .WORD ; ; ;TPA$KEY U.1071: .WORD ; ; ;TPA$KEY U.1078: .WORD ; ; ;TPA$KEY U.1085: .WORD ; ; ;TPA$KEY U.1092: .WORD ; ; ;TPA$KEY U.1099: .WORD ; ; ;TPA$KEY U.1106: .WORD ; ; ;TPA$KEY U.1113: .WORD ; ; ;TPA$KEY U.1120: .WORD ; ; ;TPA$KEY U.1127: .WORD ; ; ;TPA$KEY U.1134: .WORD ; ; ;TPA$KEY U.1145: .WORD ; ; ;TPA$KEY U.1151: .WORD ; ; ;TPA$KEY U.1157: .WORD ; ; ;TPA$KEY U.1205: .WORD ; ; .PSECT $PLIT$,NOWRT,NOEXE,2 P.AAB: .ASCII \VMS Kermit-32 version 3.1.066\<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== 100 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 ; 1907 SUBL2 #4, SP ;#4, SP ; PUSHAB W^U.1 ;U.1 ; 1949 CALLS #1, G^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT ; CALLS #0, W^MSG_INIT ;#0, MSG_INIT ; 1950 CALLS #0, W^TERM_INIT ;#0, TERM_INIT ; 1951 CALLS #0, W^TT_INIT ;#0, TT_INIT ; 1952 CALLS #0, W^FILE_INIT ;#0, FILE_INIT ; 1953 CALLS #0, W^SY_INIT ;#0, SY_INIT ; 1954 MOVL #29, W^ESCAPE_CHR ;#29, ESCAPE_CHR ; 1955 MOVZWL #33800, (SP) ;#33800, CRC_BIT_MASK ; 1959 PUSHAB W^U.56 ;U.56 ; 1960 PUSHAB 4(SP) ;CRC_BIT_MASK ; CALLS #2, G^LIB$CRC_TABLE ;#2, LIB$CRC_TABLE ; PUSHAB W^U.34 ;U.34 ; 1961 CALLS #1, G^LIB$ESTABLISH ;#1, LIB$ESTABLISH ; MOVL #17694720, W^TRANSACTION_DESC ;#17694720, TRANSACTION_DESC ; 1965 MOVAB W^U.53, W^TRANSACTION_DESC+4 ;U.53, TRANSACTION_DESC+4 ; MOVL #17694720, W^U.57 ;#17694720, U.57 ; 1969 MOVAB W^U.58, W^U.57+4 ;U.58, U.57+4 ; MOVL #17694720, W^U.54 ;#17694720, U.54 ; 1973 MOVAB W^U.55, W^U.54+4 ;U.55, U.54+4 ; MOVQ #1, -(SP) ;#1, -(SP) ; 1977 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 ; 1981 RET ; ; 1982 ; Routine Size: 146 bytes, Routine Base: $CODE$ + 0000 ; 1983 1 %SBTTL 'COMND' ; 1984 1 ROUTINE COMND = ; 1985 1 ; 1986 1 !++ ; 1987 1 ! FUNCTIONAL DESCRIPTION: ; 1988 1 ! This routine will do the command scanning for KERMIT-32. It ; 1989 1 ! will call the correct routines to process the commands. ; 1990 1 ! ; 1991 1 ! CALLING SEQUENCE: ; 1992 1 ! ; 1993 1 ! COMND(); ; 1994 1 ! ; 1995 1 ! INPUT PARAMETERS: ; 1996 1 ! ; 1997 1 ! None. ; 1998 1 ! ; 1999 1 ! IMPLICIT INPUTS: ; 2000 1 ! ; 2001 1 ! None. ; 2002 1 ! ; 2003 1 ! OUTPUT PARAMETERS: ; 2004 1 ! ; 2005 1 ! None. ; 2006 1 ! ; 2007 1 ! IMPLICIT OUTPUTS: ; 2008 1 ! ; 2009 1 ! None. ; 2010 1 ! ; 2011 1 ! COMPLETION CODES: ; 2012 1 ! ; 2013 1 ! None. ; 2014 1 ! ; 2015 1 ! SIDE EFFECTS: ; 2016 1 ! ; 2017 1 ! None. ; 2018 1 ! ; 2019 1 !-- ; 2020 1 ; 2021 2 BEGIN ; 2022 2 ; 2023 2 EXTERNAL ROUTINE ; 2024 2 GET_COMMAND, ! Get line from SYS$COMMAND ; 2025 2 LIB$GET_FOREIGN : ADDRESSING_MODE (GENERAL); ! Get command which started program ; 2026 2 ; 2027 2 LOCAL ; 2028 2 DESC : BLOCK [8, BYTE], ; 2029 2 CMD_BUF : VECTOR [80, BYTE, UNSIGNED], ; 2030 2 CMD_SIZE : UNSIGNED WORD, ; 2031 2 ONE_COMMAND, ! Only do one command ; 2032 2 STATUS : UNSIGNED LONG; ; 2033 2 ; 2034 2 ONE_COMMAND = FALSE; ! And many commands ; 2035 2 ! ; 2036 2 ! Initialize the command string descriptor ; 2037 2 ! ; 2038 2 INIT_STR_DESC (DESC, CMD_BUF, 80); ; 2039 2 ! ; 2040 2 ! Get the first command string. If we get something, then we will only ; 2041 2 ! want to perform one command, then exit. Otherwise, we will do commands ; 2042 2 ! until something one tells us to exit. ; 2043 2 ! ; 2044 2 STATUS = LIB$GET_FOREIGN (DESC, 0, CMD_SIZE, 0); ; 2045 2 ; 2046 2 IF .STATUS EQL RMS$_EOF THEN RETURN SS$_NORMAL; ; 2047 2 ; 2048 2 IF NOT .STATUS ; 2049 2 THEN ; 2050 3 BEGIN ; 2051 3 LIB$SIGNAL (.STATUS); ; 2052 3 RETURN .STATUS; ; 2053 2 END; ; 2054 2 ; 2055 2 IF .CMD_SIZE GTR 0 THEN ONE_COMMAND = TRUE; ; 2056 2 ; 2057 2 WHILE TRUE DO ; 2058 3 BEGIN ; 2059 3 ; 2060 3 IF .CMD_SIZE GTR 0 ; 2061 3 THEN ; 2062 4 BEGIN ; 2063 4 DESC [DSC$W_LENGTH] = .CMD_SIZE; ; 2064 4 ; 2065 4 IF .STATUS THEN STATUS = DO_COMND (DESC); ; 2066 4 ; 2067 4 IF .STATUS EQL KER_EXIT THEN RETURN SS$_NORMAL; ; 2068 4 ; 2069 4 IF NOT .STATUS AND .STATUS NEQ KER_TAKE_ERROR THEN COMND_ERROR (.STATUS); ; 2070 4 ; 2071 3 END; ; 2072 3 ; 2073 3 ! ; 2074 3 ! If we were given command when run, just exit after doing it ; 2075 3 ! ; 2076 3 ; 2077 3 IF .ONE_COMMAND THEN RETURN SS$_NORMAL; ; 2078 3 ; 2079 3 ! ; 2080 3 ! Initialize prompt if null ; 2081 3 ! ; 2082 3 ; 2083 3 IF .PROMPT_DESC [DSC$W_LENGTH] LEQ 0 ; 2084 3 THEN ; 2085 4 BEGIN ; 2086 4 CH$COPY (.DEFAULT_PROMPT [DSC$W_LENGTH], CH$PTR (.DEFAULT_PROMPT [DSC$A_POINTER]), 0, ; 2087 4 TEMP_LENGTH, CH$PTR (PROMPT_TEXT)); ; 2088 4 PROMPT_DESC = .DEFAULT_PROMPT [DSC$W_LENGTH]; ; 2089 3 END; ; 2090 3 ; 2091 3 DESC [DSC$W_LENGTH] = 80; ! Reset length ; 2092 3 STATUS = GET_COMMAND (DESC, PROMPT_DESC, CMD_SIZE, TRUE); ; 2093 3 ; 2094 3 IF .STATUS EQL RMS$_EOF THEN RETURN SS$_NORMAL; ; 2095 3 ; 2096 2 END; ! End of WHILE TRUE DO BEGIN ; 2097 2 ; 2098 2 RETURN SS$_NORMAL; ; 2099 1 END; ! End of COMND .EXTRN GET_COMMAND, LIB$GET_FOREIGN ;COMND U.2: .WORD ^M ;Save R2,R3,R4,R5,R6,R7,R8 ; 1984 MOVAB W^U.54, R8 ;U.54, R8 ; MOVAB -92(SP), SP ;-92(SP), SP ; CLRL R7 ;ONE_COMMAND ; 2034 MOVL #17694800, 84(SP) ;#17694800, DESC ; 2038 MOVAB 4(SP), 88(SP) ;CMD_BUF, DESC+4 ; CLRL -(SP) ;-(SP) ; 2044 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 ; 2046 BEQL 4$ ;4$ ; BLBS R6, 1$ ;STATUS, 1$ ; 2048 PUSHL R6 ;STATUS ; 2051 CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL ; MOVL R6, R0 ;STATUS, R0 ; 2052 RET ; ; 1$: TSTW (SP) ;CMD_SIZE ; 2055 BEQL 2$ ;2$ ; MOVL #1, R7 ;#1, ONE_COMMAND ; 2$: TSTW (SP) ;CMD_SIZE ; 2060 BEQL 5$ ;5$ ; MOVW (SP), 84(SP) ;CMD_SIZE, DESC ; 2063 BLBC R6, 3$ ;STATUS, 3$ ; 2065 PUSHAB 84(SP) ;DESC ; CALLS #1, W^U.5 ;#1, U.5 ; MOVL R0, R6 ;R0, STATUS ; 3$: CMPL R6, #134316203 ;STATUS, #134316203 ; 2067 4$: BEQL 7$ ;7$ ; BLBS R6, 5$ ;STATUS, 5$ ; 2069 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$ ; 2077 TSTW (R8) ;PROMPT_DESC ; 2083 BNEQ 6$ ;6$ ; MOVC5 W^U.35, @W^U.35+4, #0, #132, 8(R8) ;U.35, @U.35+4, #0, #132, PROMPT_TEXT ; 2087 MOVZWL W^U.35, (R8) ;U.35, PROMPT_DESC ; 2088 6$: MOVZBW #80, 84(SP) ;#80, DESC ; 2091 PUSHL #1 ;#1 ; 2092 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 ; 2094 BNEQ 2$ ;2$ ; 7$: MOVL #1, R0 ;#1, R0 ; RET ; ; 2099 ; Routine Size: 189 bytes, Routine Base: $CODE$ + 0092 ; 2100 1 %SBTTL 'COMND_FILE - Perform take (indirect) file' ; 2101 1 ROUTINE COMND_FILE (TAKE_DESC, DEFAULT_DESC, OK_NONE, DISPLAY_FLAG) = ; 2102 1 ; 2103 1 !++ ; 2104 1 ! FUNCTIONAL DESCRIPTION: ; 2105 1 ! ; 2106 1 ! This routine will read a file of commands and perform them. If any ; 2107 1 ! error occurs, it will abort the command processing. ; 2108 1 ! ; 2109 1 ! CALLING SEQUENCE: ; 2110 1 ! ; 2111 1 ! STATUS = COMND_FILE (TAKE_DESC, DEFAULT_DESC, OK_NONE, DISPLAY_FLAG) ; 2112 1 ! ; 2113 1 ! INPUT PARAMETERS: ; 2114 1 ! ; 2115 1 ! TAKE_DESC - String descriptor of file specification ; 2116 1 ! DEFAULT_DESC - Default file specification ; 2117 1 ! OK_NONE - If true, return EOF if file does not exist, otherwise ; 2118 1 ! return error if file does not exist. ; 2119 1 ! DISPLAY_FLAG - If true display commands being executed ; 2120 1 ! ; 2121 1 ! IMPLICIT INPUTS: ; 2122 1 ! ; 2123 1 ! None. ; 2124 1 ! ; 2125 1 ! OUPTUT PARAMETERS: ; 2126 1 ! ; 2127 1 ! None. ; 2128 1 ! ; 2129 1 ! IMPLICIT OUTPUTS: ; 2130 1 ! ; 2131 1 ! None. ; 2132 1 ! ; 2133 1 ! COMPLETION CODES: ; 2134 1 ! ; 2135 1 ! Standard status values ; 2136 1 ! ; 2137 1 ! SIDE EFFECTS: ; 2138 1 ! ; 2139 1 ! None. ; 2140 1 ! ; 2141 1 !-- ; 2142 1 ; 2143 2 BEGIN ; 2144 2 ; 2145 2 EXTERNAL ROUTINE ; 2146 2 STR$UPCASE : ADDRESSING_MODE (GENERAL), ! Upcase a string ; 2147 2 LIB$GET_VM : ADDRESSING_MODE (GENERAL) NOVALUE, ; 2148 2 LIB$FREE_VM : ADDRESSING_MODE (GENERAL) NOVALUE; ; 2149 2 ; 2150 2 MAP ; 2151 2 TAKE_DESC : REF BLOCK [8, BYTE], ; 2152 2 DEFAULT_DESC : REF BLOCK [8, BYTE]; ! The args are descriptors ; 2153 2 ; 2154 2 LOCAL ; 2155 2 TAKE_FILE_DESC : BLOCK [8, BYTE], ! Descriptor for take file ; 2156 2 TAKE_FILE_NAME : VECTOR [CH$ALLOCATION (MAX_FILE_NAME)], ! Name of take file ; 2157 2 TAKE_FILE_FAB : $FAB_DECL, ! FAB for take file ; 2158 2 TAKE_FILE_RAB : $RAB_DECL, ! RAB for take file ; 2159 2 TAKE_FILE_XABFHC : $XABFHC_DECL, ! XAB for file header items ; 2160 2 TAKE_FILE_BADR, ! Address of take file buffer ; 2161 2 TAKE_FILE_BSIZ, ! Size of take file buffer ; 2162 2 TAKE_FILE_FADR, ! Address of fixed header buffer ; 2163 2 TAKE_FILE_FSIZ, ! size of fixed header buffer ; 2164 2 STATUS, ! Random status values ; 2165 2 CMD_DESC : BLOCK [8, BYTE]; ! Descriptor for command ; 2166 2 ; 2167 2 CH$COPY (.TAKE_DESC [DSC$W_LENGTH], CH$PTR (.TAKE_DESC [DSC$A_POINTER]), 0, MAX_FILE_NAME, ; 2168 2 CH$PTR (TAKE_FILE_NAME)); ; 2169 2 INIT_STR_DESC (TAKE_FILE_DESC, TAKE_FILE_NAME, .TAKE_DESC [DSC$W_LENGTH]); ; P 2170 2 $FAB_INIT (FAB = TAKE_FILE_FAB, FNA = TAKE_FILE_NAME, FNS = .TAKE_FILE_DESC [DSC$W_LENGTH], FAC = GET, ; 2171 2 XAB = TAKE_FILE_XABFHC, DNA = .DEFAULT_DESC [DSC$A_POINTER], DNS = .DEFAULT_DESC [DSC$W_LENGTH]); ; 2172 2 $XABFHC_INIT (XAB = TAKE_FILE_XABFHC); ; 2173 2 STATUS = $OPEN (FAB = TAKE_FILE_FAB); ; 2174 2 ; 2175 2 IF NOT .STATUS ; 2176 2 THEN ; 2177 3 BEGIN ; 2178 3 ; 2179 3 IF .STATUS EQL RMS$_FNF AND .OK_NONE THEN RETURN KER_TAKE_EOF; ; 2180 3 ; 2181 3 LIB$SIGNAL (.STATUS); ; 2182 3 RETURN KER_TAKE_ERROR; ; 2183 2 END; ; 2184 2 ; 2185 2 ! ; 2186 2 ! Allocate a buffer ; 2187 2 ! ; 2188 2 TAKE_FILE_BSIZ = .TAKE_FILE_XABFHC [XAB$W_LRL]; ; 2189 2 ; 2190 2 IF .TAKE_FILE_BSIZ EQL 0 THEN TAKE_FILE_BSIZ = MAX_REC_LENGTH; ; 2191 2 ; 2192 2 LIB$GET_VM (TAKE_FILE_BSIZ, TAKE_FILE_BADR); ; 2193 2 INIT_STR_DESC (CMD_DESC, .TAKE_FILE_BADR, .TAKE_FILE_BSIZ); ; 2194 2 ! ; 2195 2 ! Determine if we need a buffer for the fixed control area ; 2196 2 ! ; 2197 2 TAKE_FILE_FSIZ = .TAKE_FILE_FAB [FAB$B_FSZ]; ; 2198 2 ; 2199 2 IF .TAKE_FILE_FSIZ NEQ 0 THEN LIB$GET_VM (TAKE_FILE_FSIZ, TAKE_FILE_FADR); ; 2200 2 ; 2201 2 ! ; 2202 2 ! Initialize the RAB for the $CONNECT RMS call ; 2203 2 ! ; P 2204 2 $RAB_INIT (RAB = TAKE_FILE_RAB, FAB = TAKE_FILE_FAB, RAC = SEQ, ROP = NLK, UBF = .TAKE_FILE_BADR, ; 2205 2 USZ = .TAKE_FILE_BSIZ); ; 2206 2 ; 2207 2 IF .TAKE_FILE_FSIZ NEQ 0 THEN TAKE_FILE_RAB [RAB$L_RHB] = .TAKE_FILE_FADR; ; 2208 2 ; 2209 2 STATUS = $CONNECT (RAB = TAKE_FILE_RAB); ; 2210 2 ; 2211 2 IF NOT .STATUS ; 2212 2 THEN ; 2213 3 BEGIN ; 2214 3 LIB$SIGNAL (.STATUS); ; 2215 3 LIB$FREE_VM (TAKE_FILE_BSIZ, TAKE_FILE_BADR); ; 2216 3 ; 2217 3 IF .TAKE_FILE_FSIZ NEQ 0 THEN LIB$FREE_VM (TAKE_FILE_FSIZ, TAKE_FILE_FADR); ; 2218 3 ; 2219 3 RETURN KER_TAKE_ERROR; ; 2220 2 END; ; 2221 2 ; 2222 2 WHILE (STATUS = $GET (RAB = TAKE_FILE_RAB)) DO ; 2223 3 BEGIN ; 2224 3 ; 2225 3 IF .TAKE_FILE_RAB [RAB$W_RSZ] GTR 0 ; 2226 3 THEN ; 2227 4 BEGIN ; 2228 4 CMD_DESC [DSC$W_LENGTH] = .TAKE_FILE_RAB [RAB$W_RSZ]; ; 2229 4 STATUS = STR$UPCASE (CMD_DESC, CMD_DESC); ; 2230 4 ; 2231 4 IF .DISPLAY_FLAG THEN LIB$PUT_OUTPUT (CMD_DESC); ; 2232 4 ; 2233 4 STATUS = DO_COMND (CMD_DESC); ; 2234 4 ; 2235 4 IF NOT .STATUS ; 2236 4 THEN ; 2237 5 BEGIN ; 2238 5 ; 2239 5 IF .STATUS NEQ KER_TAKE_ERROR ; 2240 5 THEN ; 2241 6 BEGIN ; 2242 6 COMND_ERROR (.STATUS); ; 2243 6 LIB$PUT_OUTPUT (CMD_DESC); ; 2244 6 STATUS = KER_TAKE_ERROR; ! Indicate we should abort back ; 2245 5 END; ; 2246 5 ; 2247 5 EXITLOOP; ; 2248 4 END; ; 2249 4 ; 2250 3 END; ; 2251 3 ; 2252 2 END; ! End of WHILE TRUE DO BEGIN ; 2253 2 ; 2254 2 ! ; 2255 2 ! When the loop exits, we got some kind of error. Complain unless end of file. ; 2256 2 ! ; 2257 2 ; 2258 2 IF .STATUS EQL RMS$_EOF THEN STATUS = KER_TAKE_EOF; ; 2259 2 ; 2260 2 IF .STATUS NEQ KER_EXIT AND .STATUS NEQ KER_TAKE_EOF AND .STATUS NEQ KER_TAKE_ERROR ; 2261 2 THEN ; 2262 2 LIB$SIGNAL (.STATUS); ; 2263 2 ; 2264 2 ! ; 2265 2 ! Close the file ; 2266 2 ! ; 2267 2 $DISCONNECT (RAB = TAKE_FILE_RAB); ; 2268 2 $CLOSE (FAB = TAKE_FILE_FAB); ; 2269 2 ! ; 2270 2 ! Return any buffers ; 2271 2 ! ; 2272 2 LIB$FREE_VM (TAKE_FILE_BSIZ, TAKE_FILE_BADR); ; 2273 2 ; 2274 2 IF .TAKE_FILE_FSIZ NEQ 0 THEN LIB$FREE_VM (TAKE_FILE_FSIZ, TAKE_FILE_FADR); ; 2275 2 ; 2276 2 RETURN .STATUS; ; 2277 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 ;Save R2,R3,R4,R5,R6,R7,R8,R9,R10 ; 2101 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 ; 2167 MOVC5 (R6), @4(R6), #0, #132, -140(FP) ;(R6), @4(R6), #0, #132, TAKE_FILE_NAME ; 2168 MOVW #270, -6(FP) ;#270, TAKE_FILE_DESC+2 ; 2169 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 ; 2171 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 ; 2172 MOVW #11293, 24(SP) ;#11293, $RMS_PTR ; PUSHAB 136(SP) ;TAKE_FILE_FAB ; 2173 CALLS #1, G^SYS$OPEN ;#1, SYS$OPEN ; MOVL R0, R6 ;R0, STATUS ; BLBS R6, 2$ ;STATUS, 2$ ; 2175 CMPL R6, #98962 ;STATUS, #98962 ; 2179 BNEQ 1$ ;1$ ; BLBC 12(AP), 1$ ;OK_NONE, 1$ ; MOVL #134316299, R0 ;#134316299, R0 ; RET ; ; 1$: PUSHL R6 ;STATUS ; 2181 CALLS #1, (R8) ;#1, LIB$SIGNAL ; BRW 6$ ;6$ ; 2182 2$: MOVZWL 34(SP), 4(SP) ;TAKE_FILE_XABFHC+10, TAKE_FILE_BSIZ ; 2188 BNEQ 3$ ;3$ ; 2190 MOVZWL #4096, 4(SP) ;#4096, TAKE_FILE_BSIZ ; 3$: PUSHL SP ;SP ; 2192 PUSHAB 8(SP) ;TAKE_FILE_BSIZ ; CALLS #2, (R9) ;#2, LIB$GET_VM ; MOVW #270, 18(SP) ;#270, CMD_DESC+2 ; 2193 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 ; 2197 BEQL 4$ ;4$ ; 2199 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 ; 2205 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 ; 2207 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 ; 2209 CALLS #1, G^SYS$CONNECT ;#1, SYS$CONNECT ; MOVL R0, R6 ;R0, STATUS ; BLBS R6, 7$ ;STATUS, 7$ ; 2211 PUSHL R6 ;STATUS ; 2214 CALLS #1, (R8) ;#1, LIB$SIGNAL ; PUSHL SP ;SP ; 2215 PUSHAB 8(SP) ;TAKE_FILE_BSIZ ; CALLS #2, (R7) ;#2, LIB$FREE_VM ; BLBC R2, 6$ ;R2, 6$ ; 2217 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 ; 2219 RET ; ; 7$: PUSHAB 68(SP) ;TAKE_FILE_RAB ; 2222 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 ; 2225 BEQL 7$ ;7$ ; MOVW 102(SP), 16(SP) ;TAKE_FILE_RAB+34, CMD_DESC ; 2228 PUSHAB 16(SP) ;CMD_DESC ; 2229 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$ ; 2231 PUSHAB 16(SP) ;CMD_DESC ; CALLS #1, (R10) ;#1, LIB$PUT_OUTPUT ; 8$: PUSHAB 16(SP) ;CMD_DESC ; 2233 CALLS #1, W^U.5 ;#1, U.5 ; MOVL R0, R6 ;R0, STATUS ; BLBS R6, 7$ ;STATUS, 7$ ; 2235 CMPL R6, #134316306 ;STATUS, #134316306 ; 2239 BEQL 9$ ;9$ ; PUSHL R6 ;STATUS ; 2242 CALLS #1, W^U.3 ;#1, U.3 ; PUSHAB 16(SP) ;CMD_DESC ; 2243 CALLS #1, (R10) ;#1, LIB$PUT_OUTPUT ; MOVL #134316306, R6 ;#134316306, STATUS ; 2244 9$: CMPL R6, #98938 ;STATUS, #98938 ; 2258 BNEQ 10$ ;10$ ; MOVL #134316299, R6 ;#134316299, STATUS ; 10$: CMPL R6, #134316203 ;STATUS, #134316203 ; 2260 BEQL 11$ ;11$ ; CMPL R6, #134316299 ;STATUS, #134316299 ; BEQL 11$ ;11$ ; CMPL R6, #134316306 ;STATUS, #134316306 ; BEQL 11$ ;11$ ; PUSHL R6 ;STATUS ; 2262 CALLS #1, (R8) ;#1, LIB$SIGNAL ; 11$: PUSHAB 68(SP) ;TAKE_FILE_RAB ; 2267 CALLS #1, G^SYS$DISCONNECT ;#1, SYS$DISCONNECT ; PUSHAB 136(SP) ;TAKE_FILE_FAB ; 2268 CALLS #1, G^SYS$CLOSE ;#1, SYS$CLOSE ; PUSHL SP ;SP ; 2272 PUSHAB 8(SP) ;TAKE_FILE_BSIZ ; CALLS #2, (R7) ;#2, LIB$FREE_VM ; TSTL 12(SP) ;TAKE_FILE_FSIZ ; 2274 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 ; 2276 RET ; ; 2277 ; Routine Size: 534 bytes, Routine Base: $CODE$ + 014F ; 2278 1 %SBTTL 'COMND_ERROR - Give error message for command' ; 2279 1 ROUTINE COMND_ERROR (STATUS) : NOVALUE = ; 2280 1 ; 2281 1 !++ ; 2282 1 ! FUNCTIONAL DESCRIPTION: ; 2283 1 ! ; 2284 1 ! This routine will issue an error message for a command parsing error. ; 2285 1 ! ; 2286 1 ! CALLING SEQUENCE: ; 2287 1 ! ; 2288 1 ! COMND_ERROR (.STATUS); ; 2289 1 ! ; 2290 1 ! INPUT PARAMETERS: ; 2291 1 ! ; 2292 1 ! STATUS - The status value returned from DO_COMND ; 2293 1 ! ; 2294 1 ! IMPLICIT INPUTS: ; 2295 1 ! ; 2296 1 ! None. ; 2297 1 ! ; 2298 1 ! OUPTUT PARAMETERS: ; 2299 1 ! ; 2300 1 ! None. ; 2301 1 ! ; 2302 1 ! IMPLICIT OUTPUTS: ; 2303 1 ! ; 2304 1 ! None. ; 2305 1 ! ; 2306 1 ! COMPLETION CODES: ; 2307 1 ! ; 2308 1 ! None. ; 2309 1 ! ; 2310 1 ! SIDE EFFECTS: ; 2311 1 ! ; 2312 1 ! None. ; 2313 1 ! ; 2314 1 !-- ; 2315 1 ; 2316 2 BEGIN ; 2317 2 ; 2318 2 IF .STATUS EQL KER_AMBIGKEY OR .STATUS EQL KER_UNKNOWKEY ; 2319 2 THEN ; 2320 2 LIB$SIGNAL (.STATUS, ; 2321 2 TPARSE_BLOCK [TPA$L_TOKENCNT]) ; 2322 2 ELSE ; 2323 3 BEGIN ; 2324 3 ; 2325 3 EXTERNAL LITERAL ; 2326 3 LIB$_SYNTAXERR; ; 2327 3 ; 2328 3 IF .STATUS EQL LIB$_SYNTAXERR ; 2329 3 THEN ; 2330 3 LIB$SIGNAL (KER_CMDERR, TPARSE_BLOCK [TPA$L_STRINGCNT]) ; 2331 3 ELSE ; 2332 3 LIB$SIGNAL (.STATUS); ; 2333 3 ; 2334 2 END; ; 2335 2 ; 2336 1 END; ! End of COMND_ERROR .EXTRN LIB$_SYNTAXERR ;COMND_ERROR U.3: .WORD ^M ;Save R2 ; 2279 MOVAB G^LIB$SIGNAL, R2 ;LIB$SIGNAL, R2 ; MOVL 4(AP), R0 ;STATUS, R0 ; 2318 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 ; 2321 PUSHL R0 ;R0 ; 2320 BRB 3$ ;3$ ; 2$: CMPL R0, #LIB$_SYNTAXERR ;R0, #LIB$_SYNTAXERR ; 2328 BNEQ 4$ ;4$ ; PUSHAB W^U.44+8 ;U.44+8 ; 2330 PUSHL #134316058 ;#134316058 ; 3$: CALLS #2, (R2) ;#2, LIB$SIGNAL ; RET ; ; 4$: PUSHL R0 ;R0 ; 2332 CALLS #1, (R2) ;#1, LIB$SIGNAL ; RET ; ; 2336 ; Routine Size: 68 bytes, Routine Base: $CODE$ + 0365 ; 2337 1 %SBTTL 'DO_COMND' ; 2338 1 ROUTINE DO_COMND (CMD_DESC) = ; 2339 1 ; 2340 1 !++ ; 2341 1 ! FUNCTIONAL DESCRIPTION: ; 2342 1 ! This routine will parse and process one Kermit command. ; 2343 1 ! ; 2344 1 ! CALLING SEQUENCE: ; 2345 1 ! ; 2346 1 ! STATUS = DO_COMND(CMD_DESC); ; 2347 1 ! ; 2348 1 ! INPUT PARAMETERS: ; 2349 1 ! ; 2350 1 ! CMD_DESC - Descriptor of command string ; 2351 1 ! ; 2352 1 ! IMPLICIT INPUTS: ; 2353 1 ! ; 2354 1 ! None. ; 2355 1 ! ; 2356 1 ! OUTPUT PARAMETERS: ; 2357 1 ! ; 2358 1 ! None. ; 2359 1 ! ; 2360 1 ! IMPLICIT OUTPUTS: ; 2361 1 ! ; 2362 1 ! None. ; 2363 1 ! ; 2364 1 ! COMPLETION CODES: ; 2365 1 ! ; 2366 1 ! None. ; 2367 1 ! ; 2368 1 ! SIDE EFFECTS: ; 2369 1 ! ; 2370 1 ! None. ; 2371 1 ! ; 2372 1 !-- ; 2373 1 ; 2374 2 BEGIN ; 2375 2 ; 2376 2 BIND ; 2377 2 SERVER_TEXT = %ASCID'Kermit Server running on VAX/VMS host. Please type your escape sequence to', ; 2378 2 SERVER_TEXT_1 = %ASCID' return to your local machine. Shut down the server by typing the Kermit BYE', ; 2379 2 SERVER_TEXT_2 = %ASCID' command on your local machine.', ; 2380 2 PUSH_TEXT = %ASCID' Type LOGOUT to return to VMS Kermit'; ; 2381 2 ; 2382 2 MAP ; 2383 2 CMD_DESC : REF BLOCK [8, BYTE]; ! Descriptor for command ; 2384 2 ; 2385 2 LOCAL ; 2386 2 STATUS : UNSIGNED LONG; ; 2387 2 ; 2388 2 ! Initialize some per-command data areas. ; 2389 2 INIT_STR_DESC (TEMP_DESC, TEMP_NAME, 0); ; 2390 2 COMMAND = 0; ; 2391 2 SHOW_TYPE = 0; ; 2392 2 REM_TYPE = 0; ; 2393 2 FILE_SIZE = 0; ; 2394 2 ALT_FILE_SIZE = 0; ; 2395 2 GEN_1SIZE = 0; ; 2396 2 GEN_2SIZE = 0; ; 2397 2 GEN_3SIZE = 0; ; 2398 2 CONNECT_FLAG = FALSE; ! Assume not connected ; 2399 2 TAKE_DISPLAY = 0; ; 2400 2 TPARSE_BLOCK [TPA$L_STRINGCNT] = .CMD_DESC [DSC$W_LENGTH]; ; 2401 2 TPARSE_BLOCK [TPA$L_STRINGPTR] = .CMD_DESC [DSC$A_POINTER]; ; 2402 2 TPARSE_BLOCK [TPA$V_BLANKS] = 0; ! Ignore blanks ; 2403 2 STATUS = LIB$TPARSE (TPARSE_BLOCK, KERMIT_STATE, KERMIT_KEY); ; 2404 2 ; 2405 2 IF .STATUS ; 2406 2 THEN ; 2407 3 BEGIN ; 2408 3 FILE_SIZE = .FILE_DESC [DSC$W_LENGTH]; ! Copy length in case needed ; 2409 3 ; 2410 3 CASE .COMMAND FROM CMD_MIN TO CMD_MAX OF ; 2411 3 SET ; 2412 3 ; 2413 3 [CMD_BYE] : ; 2414 4 BEGIN ; 2415 4 ; 2416 5 IF (STATUS = TERM_OPEN (TRUE)) ![054] Open the terminal ; 2417 4 THEN ; 2418 5 BEGIN ; 2419 5 ; 2420 5 IF NOT .CONNECT_FLAG THEN DO_GENERIC (GC_LOGOUT) ELSE STATUS = KER_LOCONLY; ; 2421 5 ; 2422 5 TERM_CLOSE () ; 2423 4 END; ; 2424 4 ; 2425 4 IF NOT .STATUS THEN RETURN .STATUS ELSE RETURN KER_EXIT; ; 2426 4 ; 2427 3 END; ; 2428 3 ; 2429 3 [CMD_CONN] : ; 2430 3 TERM_CONNECT (); ; 2431 3 ; 2432 3 [CMD_EXIT] : ; 2433 3 RETURN KER_EXIT; ; 2434 3 ; 2435 3 [CMD_FINISH] : ; 2436 3 ; 2437 4 IF (STATUS = TERM_OPEN (TRUE)) ![054] Open the terminal ; 2438 3 THEN ; 2439 4 BEGIN ; 2440 4 ; 2441 4 IF NOT .CONNECT_FLAG THEN DO_GENERIC (GC_EXIT) ELSE STATUS = KER_LOCONLY; ; 2442 4 ; 2443 4 TERM_CLOSE () ; 2444 3 END; ; 2445 3 ; 2446 3 [CMD_GET] : ; 2447 3 ; 2448 4 IF (STATUS = TERM_OPEN (TRUE)) ![054] Open the terminal ; 2449 3 THEN ; 2450 4 BEGIN ; 2451 4 ; 2452 4 IF NOT .CONNECT_FLAG THEN REC_SWITCH () ELSE STATUS = KER_LOCONLY; ; 2453 4 ; 2454 4 TERM_CLOSE (); ; 2455 3 END; ; 2456 3 ; 2457 3 [CMD_HELP] : ; 2458 3 COMND_HELP (); ; 2459 3 ; 2460 3 [CMD_LOGOUT] : ; 2461 3 ; 2462 4 IF (STATUS = TERM_OPEN (TRUE)) ![054] Open the terminal ; 2463 3 THEN ; 2464 4 BEGIN ; 2465 4 ; 2466 4 IF NOT .CONNECT_FLAG THEN DO_GENERIC (GC_LOGOUT) ELSE STATUS = KER_LOCONLY; ; 2467 4 ; 2468 4 TERM_CLOSE () ; 2469 3 END; ; 2470 3 ; 2471 3 [CMD_RECEIVE] : ; 2472 3 ; 2473 4 IF (STATUS = TERM_OPEN (TRUE)) ![054] Open the terminal ; 2474 3 THEN ; 2475 4 BEGIN ; 2476 4 FILE_SIZE = 0; ![055] No file to request ; 2477 4 REC_SWITCH (); ; 2478 4 TERM_CLOSE (); ; 2479 3 END; ; 2480 3 ; 2481 3 [CMD_REMOTE] : ; 2482 3 COMND_REMOTE (); ; 2483 3 ; 2484 3 [CMD_LOCAL] : ; 2485 3 COMND_LOCAL (); ; 2486 3 ; 2487 3 [CMD_PUSH] : ; 2488 4 BEGIN ; 2489 4 ; 2490 4 OWN ; 2491 4 PID : INITIAL (0); ; 2492 4 ; 2493 4 LIB$PUT_OUTPUT (PUSH_TEXT); ; 2494 4 ; 2495 4 IF .PID NEQ 0 ; 2496 4 THEN ; 2497 5 BEGIN ; 2498 5 STATUS = LIB$ATTACH (PID); ; 2499 5 ; 2500 5 IF NOT .STATUS THEN PID = 0; ; 2501 5 ; 2502 4 END; ; 2503 4 ; 2504 4 IF .PID EQL 0 THEN STATUS = LIB$SPAWN (0, 0, 0, 0, 0, PID); ! Just spawn a DCL ; 2505 4 ; 2506 3 END; ; 2507 3 ; 2508 3 [CMD_SEND] : ; 2509 4 BEGIN ; 2510 4 ; 2511 4 EXTERNAL ROUTINE ; 2512 4 FILE_OPEN, ! Open file routine ; 2513 4 FILE_CLOSE; ! Close file routine ; 2514 4 ; 2515 4 LOCAL ; 2516 4 SAVE_FILE_NAME : VECTOR [CH$ALLOCATION (MAX_FILE_NAME)], ; 2517 4 SAVE_FILE_SIZE, ; 2518 4 SAVE_TY_FIL; ; 2519 4 ; 2520 4 SAVE_TY_FIL = .TY_FIL; ! Save current type out flag ; 2521 4 TY_FIL = FALSE; ! Suppress type out of names ; 2522 4 SAVE_FILE_SIZE = .FILE_SIZE; ! Save the file name size ; 2523 4 ; 2524 4 INCR I FROM 0 TO .FILE_SIZE - 1 DO ; 2525 4 SAVE_FILE_NAME [.I] = .FILE_NAME [.I]; ; 2526 4 ; 2527 4 IF FILE_OPEN (FNC_READ) ; 2528 4 THEN ; 2529 5 BEGIN ; 2530 5 FILE_SIZE = .SAVE_FILE_SIZE; ! Reset the file name size ; 2531 5 ; 2532 5 INCR I FROM 0 TO .FILE_SIZE - 1 DO ; 2533 5 FILE_NAME [.I] = .SAVE_FILE_NAME [.I]; ; 2534 5 ; 2535 5 FILE_CLOSE (FALSE); ; 2536 5 TY_FIL = .SAVE_TY_FIL; ! Reset type out flag ; 2537 5 ; 2538 6 IF (STATUS = TERM_OPEN (TRUE)) ![054] Open the terminal ; 2539 5 THEN ; 2540 6 BEGIN ; 2541 6 SEND_SWITCH (); ; 2542 6 TERM_CLOSE (); ; 2543 5 END; ; 2544 5 ; 2545 5 END ; 2546 4 ELSE ; 2547 4 TY_FIL = .SAVE_TY_FIL; ! Reset type out flag ; 2548 4 ; 2549 3 END; ; 2550 3 ; 2551 3 [CMD_SERVER] : ; 2552 4 BEGIN ; 2553 4 LIB$PUT_OUTPUT (SERVER_TEXT); ; 2554 4 LIB$PUT_OUTPUT (SERVER_TEXT_1); ; 2555 4 LIB$PUT_OUTPUT (SERVER_TEXT_2); ; 2556 4 ; 2557 5 IF (STATUS = TERM_OPEN (TRUE)) ![054] Open the terminal ; 2558 4 THEN ; 2559 5 BEGIN ; 2560 5 STATUS = SERVER (); ; 2561 5 TERM_CLOSE (); ; 2562 5 ; 2563 5 IF .STATUS NEQ KER_ABORTED THEN RETURN KER_EXIT ELSE RETURN KER_NORMAL; ; 2564 5 ; 2565 4 END; ; 2566 4 ; 2567 3 END; ; 2568 3 ; 2569 3 [CMD_SHOW] : ; 2570 3 COMND_SHOW (); ; 2571 3 ; 2572 3 [CMD_STATUS] : ; 2573 3 COMND_STATUS (); ; 2574 3 ; 2575 3 [CMD_TAKE] : ; 2576 3 STATUS = COMND_FILE (TAK_FIL_DESC, %ASCID'.COM;0', FALSE, .TAKE_DISPLAY); ; 2577 3 ; 2578 3 [INRANGE] : ; 2579 3 TES; ; 2580 3 ; 2581 2 END; ; 2582 2 ; 2583 2 RETURN .STATUS; ; 2584 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 ;Save R2,R3,R4,R5,R6,R7,R8,R9,R10,R11 ; 2338 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 ; 2389 MOVAB -132(R5), -136(R5) ;TEMP_NAME, TEMP_DESC+4 ; CLRQ -724(R5) ;COMMAND ; 2390 CLRL (R7) ;FILE_SIZE ; 2393 CLRL W^ALT_FILE_SIZE ;ALT_FILE_SIZE ; 2394 CLRL W^GEN_1SIZE ;GEN_1SIZE ; 2395 CLRL W^GEN_2SIZE ;GEN_2SIZE ; 2396 CLRL W^GEN_3SIZE ;GEN_3SIZE ; 2397 CLRL (R9) ;CONNECT_FLAG ; 2398 CLRQ -716(R5) ;REM_TYPE ; 2392 MOVL 4(AP), R0 ;CMD_DESC, R0 ; 2400 MOVZWL (R0), -760(R5) ;(R0), TPARSE_BLOCK+8 ; MOVL 4(R0), -756(R5) ;4(R0), TPARSE_BLOCK+12 ; 2401 BICB2 #1, -764(R5) ;#1, TPARSE_BLOCK+4 ; 2402 PUSHAB W^KERMIT_KEY ;KERMIT_KEY ; 2403 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$ ; 2405 MOVZWL W^FILE_DESC, (R7) ;FILE_DESC, FILE_SIZE ; 2408 CASEL -724(R5), #1, #17 ;COMMAND, #1, #17 ; 2410 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 ; 2416 CALLS #1, (R8) ;#1, TERM_OPEN ; MOVL R0, R2 ;R0, STATUS ; BLBC R2, 16$ ;STATUS, 16$ ; BLBS (R9), 3$ ;CONNECT_FLAG, 3$ ; 2420 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 ; 2422 BLBC R2, 19$ ;STATUS, 19$ ; 2425 BRW 30$ ;30$ ; 5$: CALLS #0, W^TERM_CONNECT ;#0, TERM_CONNECT ; 2430 BRB 19$ ;19$ ; 6$: PUSHL #1 ;#1 ; 2437 CALLS #1, (R8) ;#1, TERM_OPEN ; MOVL R0, R2 ;R0, STATUS ; BLBC R2, 19$ ;STATUS, 19$ ; BLBS (R9), 13$ ;CONNECT_FLAG, 13$ ; 2441 PUSHL #1 ;#1 ; BRB 12$ ;12$ ; 7$: PUSHL #1 ;#1 ; 2448 CALLS #1, (R8) ;#1, TERM_OPEN ; MOVL R0, R2 ;R0, STATUS ; 8$: BLBC R2, 19$ ;STATUS, 19$ ; BLBS (R9), 13$ ;CONNECT_FLAG, 13$ ; 2452 9$: CALLS #0, W^REC_SWITCH ;#0, REC_SWITCH ; BRB 14$ ;14$ ; 10$: CALLS #0, W^U.6 ;#0, U.6 ; 2458 BRB 19$ ;19$ ; 11$: PUSHL #1 ;#1 ; 2462 CALLS #1, (R8) ;#1, TERM_OPEN ; MOVL R0, R2 ;R0, STATUS ; BLBC R2, 19$ ;STATUS, 19$ ; BLBS (R9), 13$ ;CONNECT_FLAG, 13$ ; 2466 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$ ; 2468 15$: PUSHL #1 ;#1 ; 2473 CALLS #1, (R8) ;#1, TERM_OPEN ; MOVL R0, R2 ;R0, STATUS ; 16$: BLBC R2, 19$ ;STATUS, 19$ ; CLRL (R7) ;FILE_SIZE ; 2476 BRB 9$ ;9$ ; 2477 17$: CALLS #0, W^U.9 ;#0, U.9 ; 2482 BRB 19$ ;19$ ; 18$: CALLS #0, W^U.10 ;#0, U.10 ; 2485 19$: BRW 36$ ;36$ ; 20$: PUSHAB W^PUSH_TEXT ;PUSH_TEXT ; 2493 CALLS #1, (R6) ;#1, LIB$PUT_OUTPUT ; TSTL (R5) ;PID ; 2495 BEQL 21$ ;21$ ; PUSHL R5 ;R5 ; 2498 CALLS #1, G^LIB$ATTACH ;#1, LIB$ATTACH ; MOVL R0, R2 ;R0, STATUS ; BLBS R2, 21$ ;STATUS, 21$ ; 2500 CLRL (R5) ;PID ; 21$: TSTL (R5) ;PID ; 2504 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 ; 2520 CLRL (R10) ;TY_FIL ; 2521 MOVL (R7), R3 ;FILE_SIZE, SAVE_FILE_SIZE ; 2522 MNEGL #1, R0 ;#1, I ; 2524 BRB 24$ ;24$ ; 23$: MOVL W^FILE_NAME[R0], (SP)[R0] ;FILE_NAME[I], SAVE_FILE_NAME[I] ; 2525 24$: AOBLSS (R7), R0, 23$ ;FILE_SIZE, I, 23$ ; CLRL -(SP) ;-(SP) ; 2527 CALLS #1, W^FILE_OPEN ;#1, FILE_OPEN ; BLBC R0, 28$ ;R0, 28$ ; MOVL R3, (R7) ;SAVE_FILE_SIZE, FILE_SIZE ; 2530 MNEGL #1, R0 ;#1, I ; 2532 BRB 26$ ;26$ ; 25$: MOVL (SP)[R0], W^FILE_NAME[R0] ;SAVE_FILE_NAME[I], FILE_NAME[I] ; 2533 26$: AOBLSS (R7), R0, 25$ ;FILE_SIZE, I, 25$ ; CLRL -(SP) ;-(SP) ; 2535 CALLS #1, W^FILE_CLOSE ;#1, FILE_CLOSE ; MOVL R4, (R10) ;SAVE_TY_FIL, TY_FIL ; 2536 PUSHL #1 ;#1 ; 2538 CALLS #1, (R8) ;#1, TERM_OPEN ; MOVL R0, R2 ;R0, STATUS ; BLBC R2, 36$ ;STATUS, 36$ ; CALLS #0, W^SEND_SWITCH ;#0, SEND_SWITCH ; 2541 27$: CALLS #0, (R11) ;#0, TERM_CLOSE ; 2542 BRB 36$ ;36$ ; 2527 28$: MOVL R4, (R10) ;SAVE_TY_FIL, TY_FIL ; 2547 BRB 36$ ;36$ ; 2410 29$: PUSHAB W^SERVER_TEXT ;SERVER_TEXT ; 2553 CALLS #1, (R6) ;#1, LIB$PUT_OUTPUT ; PUSHAB W^SERVER_TEXT_1 ;SERVER_TEXT_1 ; 2554 CALLS #1, (R6) ;#1, LIB$PUT_OUTPUT ; PUSHAB W^SERVER_TEXT_2 ;SERVER_TEXT_2 ; 2555 CALLS #1, (R6) ;#1, LIB$PUT_OUTPUT ; PUSHL #1 ;#1 ; 2557 CALLS #1, (R8) ;#1, TERM_OPEN ; MOVL R0, R2 ;R0, STATUS ; BLBC R2, 36$ ;STATUS, 36$ ; CALLS #0, W^SERVER ;#0, SERVER ; 2560 MOVL R0, R2 ;R0, STATUS ; CALLS #0, (R11) ;#0, TERM_CLOSE ; 2561 CMPL R2, #134316258 ;STATUS, #134316258 ; 2563 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 ; 2570 BRB 36$ ;36$ ; 33$: CALLS #0, W^U.8 ;#0, U.8 ; 2573 BRB 36$ ;36$ ; 34$: PUSHL -712(R5) ;TAKE_DISPLAY ; 2576 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 ; 2583 RET ; ; 2584 ; Routine Size: 582 bytes, Routine Base: $CODE$ + 03A9 ; 2585 1 %SBTTL 'Command execution -- COMND_HELP' ; 2586 1 ROUTINE COMND_HELP : NOVALUE = ; 2587 1 ; 2588 1 !++ ; 2589 1 ! FUNCTIONAL DESCRIPTION: ; 2590 1 ! ; 2591 1 ! This routine will do the HELP command processing for KERMIT. It ; 2592 1 ! will call the library routines. ; 2593 1 ! ; 2594 1 ! CALLING SEQUENCE: ; 2595 1 ! ; 2596 1 ! COMND_HELP(); ; 2597 1 ! ; 2598 1 ! INPUT PARAMETERS: ; 2599 1 ! ; 2600 1 ! None. ; 2601 1 ! ; 2602 1 ! IMPLICIT INPUTS: ; 2603 1 ! ; 2604 1 ! None. ; 2605 1 ! ; 2606 1 ! OUTPUT PARAMETERS: ; 2607 1 ! ; 2608 1 ! None. ; 2609 1 ! ; 2610 1 ! IMPLICIT OUTPUTS: ; 2611 1 ! ; 2612 1 ! None. ; 2613 1 ! ; 2614 1 ! COMPLETION CODES: ; 2615 1 ! ; 2616 1 ! None. ; 2617 1 ! ; 2618 1 ! SIDE EFFECTS: ; 2619 1 ! ; 2620 1 ! None. ; 2621 1 ! ; 2622 1 !-- ; 2623 1 ; 2624 2 BEGIN ; 2625 2 ; 2626 2 LOCAL ; 2627 2 STATUS : UNSIGNED LONG; ; 2628 2 ; 2629 2 EXTERNAL ROUTINE ; 2630 2 LBR$OUTPUT_HELP : ADDRESSING_MODE (GENERAL); ; 2631 2 ; 2632 2 ! ; 2633 2 ! Do the help processing. ; 2634 2 ! ; 2635 2 STATUS = LBR$OUTPUT_HELP (LIB$PUT_OUTPUT, 0, TEMP_DESC, %ASCID'KERMIT', ; 2636 2 UPLIT (HLP$M_PROMPT + HLP$M_PROCESS + HLP$M_GROUP + HLP$M_SYSTEM), LIB$GET_INPUT); ; 2637 2 ; 2638 2 IF NOT .STATUS THEN LIB$SIGNAL (.STATUS); ; 2639 2 ; 2640 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 ; 2586 PUSHAB G^LIB$GET_INPUT ;LIB$GET_INPUT ; 2635 PUSHAB W^P.AAU ;P.AAU ; 2636 PUSHAB W^P.AAS ;P.AAS ; 2635 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$ ; 2638 PUSHL R0 ;STATUS ; CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL ; 1$: RET ; ; 2640 ; Routine Size: 48 bytes, Routine Base: $CODE$ + 05EF ; 2641 1 %SBTTL 'Command execution -- Support routines -- OUTPUT_LONG_WORD' ; 2642 1 ROUTINE OUTPUT_LONG_WORD (MSG_ADDR, LONG_VALUE) : NOVALUE = ; 2643 1 ; 2644 1 !++ ; 2645 1 ! FUNCTIONAL DESCRIPTION: ; 2646 1 ! This routine is used to output the various long word parameters ; 2647 1 ! that are shown by the SHOW command. All text is defined in the level ; 2648 1 ! 0 of this program. ; 2649 1 ! ; 2650 1 ! CALLING SEQUENCE: ; 2651 1 ! ; 2652 1 ! OUTPUT_LONG_WORD( MSG_ASCID, LONG_WORD_VALUE_TO_OUTPUT); ; 2653 1 ! ; 2654 1 ! INPUT PARAMETERS: ; 2655 1 ! ; 2656 1 ! MSG_ASCID - %ASCID of the text to use for the $FAO call. ; 2657 1 ! ; 2658 1 ! LONG_WORD_VALUE_TO_OUTPUT - Value of the long word to pass to the $FAO. ; 2659 1 ! ; 2660 1 ! IMPLICIT INPUTS: ; 2661 1 ! ; 2662 1 ! None. ; 2663 1 ! ; 2664 1 ! OUTPUT PARAMETERS: ; 2665 1 ! ; 2666 1 ! None. ; 2667 1 ! ; 2668 1 ! IMPLICIT OUTPUTS: ; 2669 1 ! ; 2670 1 ! None. ; 2671 1 ! ; 2672 1 ! COMPLETION CODES: ; 2673 1 ! ; 2674 1 ! None. ; 2675 1 ! ; 2676 1 ! SIDE EFFECTS: ; 2677 1 ! ; 2678 1 ! None. ; 2679 1 ! ; 2680 1 !-- ; 2681 1 ; 2682 2 BEGIN ; 2683 2 ; 2684 2 MAP ; 2685 2 LONG_VALUE : LONG UNSIGNED, ; 2686 2 MSG_ADDR : LONG UNSIGNED; ; 2687 2 ; 2688 2 LOCAL ; 2689 2 STATUS : UNSIGNED; ! Status return by LIB$xxx ; 2690 2 ; 2691 2 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; 2692 2 $FAO (.MSG_ADDR, OUTPUT_SIZE, OUTPUT_DESC, .LONG_VALUE); ; 2693 2 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 2694 2 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 2695 1 END; .EXTRN SYS$FAO OUTPUT_LONG_WORD: .WORD ^M ;Save R2 ; 2642 MOVAB W^U.51, R2 ;U.51, R2 ; MOVL #17694800, (R2) ;#17694800, OUTPUT_DESC ; 2691 MOVAB -80(R2), 4(R2) ;OUTPUT_LINE, OUTPUT_DESC+4 ; PUSHL 8(AP) ;LONG_VALUE ; 2692 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 ; 2693 PUSHL R2 ;R2 ; 2694 CALLS #1, G^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT ; RET ; ; 2695 ; Routine Size: 51 bytes, Routine Base: $CODE$ + 061F ; 2696 1 %SBTTL 'Command Execution -- COMND_REMOTE' ; 2697 1 ROUTINE COMND_REMOTE : NOVALUE = ; 2698 1 ; 2699 1 !++ ; 2700 1 ! FUNCTIONAL DESCRIPTION: ; 2701 1 ! ; 2702 1 ! This routine will handle the REMOTE commands. It will call KERMSG ; 2703 1 !to perform the command. ; 2704 1 ! ; 2705 1 ! CALLING SEQUENCE: ; 2706 1 ! ; 2707 1 ! COMND_REMOTE (); ; 2708 1 ! ; 2709 1 ! INPUT PARAMETERS: ; 2710 1 ! ; 2711 1 ! None. ; 2712 1 ! ; 2713 1 ! IMPLICIT INPUTS: ; 2714 1 ! ; 2715 1 ! REM_TYPE - type of command to be executed ; 2716 1 ! GEN_xDATA/GEN_xSIZE - arguments for the commands ; 2717 1 ! ; 2718 1 ! OUPTUT PARAMETERS: ; 2719 1 ! ; 2720 1 ! None. ; 2721 1 ! ; 2722 1 ! IMPLICIT OUTPUTS: ; 2723 1 ! ; 2724 1 ! None. ; 2725 1 ! ; 2726 1 ! COMPLETION CODES: ; 2727 1 ! ; 2728 1 ! None. ; 2729 1 ! ; 2730 1 ! SIDE EFFECTS: ; 2731 1 ! ; 2732 1 ! None. ; 2733 1 ! ; 2734 1 !-- ; 2735 1 ; 2736 2 BEGIN ; 2737 2 ; 2738 2 IF GET_REM_ARGS (FALSE) ; 2739 2 THEN ; 2740 2 ; 2741 2 IF TERM_OPEN (TRUE) ![054] Open the terminal to determine if local ; 2742 2 THEN ; 2743 3 BEGIN ; 2744 3 ; 2745 3 IF NOT .CONNECT_FLAG THEN DO_GENERIC (.REM_TYPE) ELSE LIB$SIGNAL (KER_LOCONLY); ; 2746 3 ; 2747 3 TERM_CLOSE (); ; 2748 2 END; ; 2749 2 ; 2750 1 END; ! End of COMND_REMOTE ;COMND_REMOTE U.9: .WORD ^M<> ;Save nothing ; 2697 CLRL -(SP) ;-(SP) ; 2738 CALLS #1, W^U.11 ;#1, U.11 ; BLBC R0, 3$ ;R0, 3$ ; PUSHL #1 ;#1 ; 2741 CALLS #1, W^TERM_OPEN ;#1, TERM_OPEN ; BLBC R0, 3$ ;R0, 3$ ; BLBS W^CONNECT_FLAG, 1$ ;CONNECT_FLAG, 1$ ; 2745 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 ; 2747 3$: RET ; ; 2750 ; Routine Size: 57 bytes, Routine Base: $CODE$ + 0652 ; 2751 1 %SBTTL 'Command Execution -- COMND_LOCAL' ; 2752 1 ROUTINE COMND_LOCAL : NOVALUE = ; 2753 1 ; 2754 1 !++ ; 2755 1 ! FUNCTIONAL DESCRIPTION: ; 2756 1 ! ; 2757 1 ! This routine will handle the LOCAL commands. It will call the generic ; 2758 1 !command processor to perform the command, and type the result. ; 2759 1 ! ; 2760 1 ! CALLING SEQUENCE: ; 2761 1 ! ; 2762 1 ! COMND_LOCAL (); ; 2763 1 ! ; 2764 1 ! INPUT PARAMETERS: ; 2765 1 ! ; 2766 1 ! None. ; 2767 1 ! ; 2768 1 ! IMPLICIT INPUTS: ; 2769 1 ! ; 2770 1 ! REM_TYPE - type of command to be executed ; 2771 1 ! GEN_xDATA/GEN_xSIZE - arguments for the commands ; 2772 1 ! ; 2773 1 ! OUPTUT PARAMETERS: ; 2774 1 ! ; 2775 1 ! None. ; 2776 1 ! ; 2777 1 ! IMPLICIT OUTPUTS: ; 2778 1 ! ; 2779 1 ! None. ; 2780 1 ! ; 2781 1 ! COMPLETION CODES: ; 2782 1 ! ; 2783 1 ! None. ; 2784 1 ! ; 2785 1 ! SIDE EFFECTS: ; 2786 1 ! ; 2787 1 ! None. ; 2788 1 ! ; 2789 1 !-- ; 2790 1 ; 2791 2 BEGIN ; 2792 2 ; 2793 2 LOCAL ; 2794 2 SAVED_TY_FIL, ! Saved value from TY_FIL ; 2795 2 STATUS, ! Status values ; 2796 2 FILE_FLAG, ! Flag whether file is open ; 2797 2 CHARACTER, ! Character from get-a-char routine ; 2798 2 STR_LENGTH, ! Length of string ; 2799 2 STR_ADDRESS, ! Address of string ; 2800 2 GET_CHR_RTN; ! Address of routine to get a character ; 2801 2 ; 2802 2 EXTERNAL ROUTINE ; 2803 2 SY_GENERIC, ! Do a generic command ; 2804 2 GET_FILE, ! Get a character from a file ; 2805 2 FILE_OPEN, ! Open a file ; 2806 2 FILE_CLOSE; ! Close a file ; 2807 2 ; 2808 2 ! ; 2809 2 ! First get any extra arguments needed ; 2810 2 ! ; 2811 2 STATUS = GET_REM_ARGS (TRUE); ; 2812 2 ; 2813 2 IF NOT .STATUS THEN RETURN; ; 2814 2 ; 2815 2 ! ; 2816 2 ! Initialize arguments for SY_GENERIC ; 2817 2 ! ; 2818 2 GET_CHR_RTN = 0; ! No routine ; 2819 2 STR_LENGTH = 0; ! No length ; 2820 2 STR_ADDRESS = 0; ! No address ; 2821 2 ! ; 2822 2 ! Have generic routine do the command ; 2823 2 ! ; 2824 2 STATUS = SY_GENERIC (.REM_TYPE, STR_ADDRESS, STR_LENGTH, GET_CHR_RTN); ; 2825 2 ; 2826 2 IF NOT .STATUS ; 2827 2 THEN ; 2828 2 LIB$SIGNAL (.STATUS) ; 2829 2 ELSE ; 2830 3 BEGIN ; 2831 3 ! ; 2832 3 ! If we got a string, type it out ; 2833 3 ! ; 2834 3 ; 2835 3 IF .STR_LENGTH NEQ 0 ; 2836 3 THEN ; 2837 4 BEGIN ; 2838 4 ; 2839 4 LOCAL ; 2840 4 POINTER; ; 2841 4 ; 2842 4 POINTER = CH$PTR (.STR_ADDRESS); ; 2843 4 ; 2844 4 DECR I FROM .STR_LENGTH TO 1 DO ; 2845 4 TT_CHAR (CH$RCHAR_A (POINTER)); ; 2846 4 ; 2847 4 TT_CRLF (); ! Make sure it gets dumped ; 2848 4 END ; 2849 3 ELSE ; 2850 3 ! ; 2851 3 ! Here if we didn't get a string. Either we need to call the supplied routine ; 2852 3 ! or open a file and call GET_FILE for each character. ; 2853 3 ! ; 2854 4 BEGIN ; 2855 4 ; 2856 4 IF .GET_CHR_RTN NEQ 0 ; 2857 4 THEN ; 2858 4 FILE_FLAG = FALSE ! No file open ; 2859 4 ELSE ; 2860 5 BEGIN ; 2861 5 FILE_FLAG = TRUE; ! Have a file ; 2862 5 GET_CHR_RTN = GET_FILE; ! This is our get-a-char routine ; 2863 5 SAVED_TY_FIL = .TY_FIL; ! Save current type out flag ; 2864 5 TY_FIL = FALSE; ! Make sure we don't have name typed ; 2865 5 STATUS = FILE_OPEN (FNC_READ); ! Open the file ; 2866 5 TY_FIL = .SAVED_TY_FIL; ! Restore type out value ; 2867 5 ; 2868 5 IF NOT .STATUS ! If we couldn't open the file ; 2869 5 THEN ; 2870 5 RETURN; ! Just return, (FILE_OPEN reported it) ; 2871 5 ; 2872 4 END; ; 2873 4 ; 2874 4 DO ; 2875 5 BEGIN ; 2876 5 STATUS = (.GET_CHR_RTN) (CHARACTER); ! Get a character ; 2877 5 ; 2878 5 IF .STATUS AND NOT .STATUS EQL KER_EOF ! Did we get one? ; 2879 5 THEN ; 2880 5 TT_CHAR (.CHARACTER) ! Yes, type it ; 2881 5 ELSE ; 2882 5 ! ; 2883 5 ! If no character returned, check for EOF and close file if we opened it ; 2884 5 ! ; 2885 5 ; 2886 5 IF .STATUS EQL KER_EOF AND .FILE_FLAG THEN FILE_CLOSE (); ; 2887 5 ; 2888 5 END ; 2889 4 UNTIL NOT .STATUS OR .STATUS EQL KER_EOF; ! Loop until we are done ; 2890 4 ; 2891 4 TT_OUTPUT (); ! Force out last buffer ; 2892 3 END; ; 2893 3 ; 2894 2 END; ; 2895 2 ; 2896 1 END; ! End of COMND_LOCAL .EXTRN SY_GENERIC, GET_FILE ;COMND_LOCAL U.10: .WORD ^M ;Save R2,R3,R4,R5 ; 2752 MOVAB W^TY_FIL, R5 ;TY_FIL, R5 ; SUBL2 #16, SP ;#16, SP ; PUSHL #1 ;#1 ; 2811 CALLS #1, W^U.11 ;#1, U.11 ; MOVL R0, R4 ;R0, STATUS ; BLBC R4, 6$ ;STATUS, 6$ ; 2813 CLRQ (SP) ;GET_CHR_RTN ; 2818 CLRL 8(SP) ;STR_ADDRESS ; 2820 PUSHL SP ;SP ; 2824 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$ ; 2826 PUSHL R4 ;STATUS ; 2828 CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL ; RET ; ; 1$: TSTL 4(SP) ;STR_LENGTH ; 2835 BEQL 4$ ;4$ ; MOVL 8(SP), R3 ;STR_ADDRESS, POINTER ; 2842 ADDL3 #1, 4(SP), R2 ;#1, STR_LENGTH, I ; 2844 BRB 3$ ;3$ ; 2$: MOVZBL (R3)+, -(SP) ;(POINTER)+, -(SP) ; 2845 CALLS #1, W^TT_CHAR ;#1, TT_CHAR ; 3$: SOBGTR R2, 2$ ;I, 2$ ; CALLS #0, W^TT_CRLF ;#0, TT_CRLF ; 2847 RET ; ; 2835 4$: TSTL (SP) ;GET_CHR_RTN ; 2856 BEQL 5$ ;5$ ; CLRL R3 ;FILE_FLAG ; 2858 BRB 7$ ;7$ ; 5$: MOVL #1, R3 ;#1, FILE_FLAG ; 2861 MOVAB W^GET_FILE, (SP) ;GET_FILE, GET_CHR_RTN ; 2862 MOVL (R5), R2 ;TY_FIL, SAVED_TY_FIL ; 2863 CLRL (R5) ;TY_FIL ; 2864 CLRL -(SP) ;-(SP) ; 2865 CALLS #1, W^FILE_OPEN ;#1, FILE_OPEN ; MOVL R0, R4 ;R0, STATUS ; MOVL R2, (R5) ;SAVED_TY_FIL, TY_FIL ; 2866 6$: BLBC R4, 11$ ;STATUS, 11$ ; 2868 7$: PUSHAB 12(SP) ;CHARACTER ; 2876 CALLS #1, @4(SP) ;#1, @GET_CHR_RTN ; MOVL R0, R4 ;R0, STATUS ; BLBC R4, 8$ ;STATUS, 8$ ; 2878 CMPL R4, #134316131 ;STATUS, #134316131 ; BEQL 8$ ;8$ ; PUSHL 12(SP) ;CHARACTER ; 2880 CALLS #1, W^TT_CHAR ;#1, TT_CHAR ; BRB 9$ ;9$ ; 8$: CMPL R4, #134316131 ;STATUS, #134316131 ; 2886 BNEQ 9$ ;9$ ; BLBC R3, 9$ ;FILE_FLAG, 9$ ; CALLS #0, W^FILE_CLOSE ;#0, FILE_CLOSE ; 9$: BLBC R4, 10$ ;STATUS, 10$ ; 2889 CMPL R4, #134316131 ;STATUS, #134316131 ; BNEQ 7$ ;7$ ; 10$: CALLS #0, W^TT_OUTPUT ;#0, TT_OUTPUT ; 2891 11$: RET ; ; 2896 ; Routine Size: 198 bytes, Routine Base: $CODE$ + 068B ; 2897 1 %SBTTL 'Command execution -- COMND_SHOW' ; 2898 1 ROUTINE COMND_SHOW : NOVALUE = ; 2899 1 ; 2900 1 !++ ; 2901 1 ! FUNCTIONAL DESCRIPTION: ; 2902 1 ! ; 2903 1 ! This routine will process the SHOW command. This routine ; 2904 1 ! expects that the command has already been processed and that ; 2905 1 ! the type of SHOW command is stored in SHOW_TYPE. ; 2906 1 ! ; 2907 1 ! CALLING SEQUENCE: ; 2908 1 ! ; 2909 1 ! COMND_SHOW(); ; 2910 1 ! ; 2911 1 ! INPUT PARAMETERS: ; 2912 1 ! ; 2913 1 ! None. ; 2914 1 ! ; 2915 1 ! IMPLICIT INPUTS: ; 2916 1 ! ; 2917 1 ! None. ; 2918 1 ! ; 2919 1 ! OUTPUT PARAMETERS: ; 2920 1 ! ; 2921 1 ! None. ; 2922 1 ! ; 2923 1 ! IMPLICIT OUTPUTS: ; 2924 1 ! ; 2925 1 ! None. ; 2926 1 ! ; 2927 1 ! COMPLETION CODES: ; 2928 1 ! ; 2929 1 ! None. ; 2930 1 ! ; 2931 1 ! SIDE EFFECTS: ; 2932 1 ! ; 2933 1 ! None. ; 2934 1 ! ; 2935 1 !-- ; 2936 1 ; 2937 2 BEGIN ; 2938 2 ; 2939 2 LOCAL ; 2940 2 STATUS : WORD; ! Status returned ; 2941 2 ; 2942 2 ! Bind some addresses to text ; 2943 2 ; 2944 2 BIND ; 2945 2 OFF_TEXT = %ASCID'OFF', ! Item is off ; 2946 2 ON_TEXT = %ASCID'ON', ! Item is on ; 2947 2 SHOW_ABT_MSG = %ASCID' Incomplete file disposition !AS', ; 2948 2 ABT_DISCARD = %ASCID'Discard', ; 2949 2 ABT_KEEP = %ASCID'Keep', ; 2950 2 SHOW_CHK_MSG = %ASCID' Block check type !AS', ; 2951 2 CHK_1CHAR_MSG = %ASCID'One character checksum', ; 2952 2 CHK_2CHAR_MSG = %ASCID'Two character checksum', ; 2953 2 CHK_CRC_MSG = %ASCID'Three character CRC-CCITT', ; 2954 2 SHOW_DEB_MSG = %ASCID' Debugging !AS', ; 2955 2 SHOW_DEL_MSG = %ASCID' Delay !ZL (sec)', ; 2956 2 SHOW_SRV_MSG = %ASCID' Server sends NAKs every !ZL seconds while waiting for a command', ; 2957 2 SHOW_ESC_MSG = %ASCID' Escape character !3OL (octal)', ; 2958 2 SHOW_FTP_MSG = %ASCID' File type !AS', ; 2959 2 FTP_ASCII = %ASCID'ASCII', ; 2960 2 FTP_BINARY = %ASCID'BINARY', ; 2961 2 FTP_BLOCK = %ASCID'BLOCK', ; 2962 2 FTP_FIXED = %ASCID'FIXED 512 byte records', ; 2963 2 SHOW_FNM_MSG = %ASCID' File naming !AS', ; 2964 2 FNM_MSG_FULL = %ASCID'Full file specifcation', ; 2965 2 FNM_MSG_NORMAL = %ASCID'Normal form', ; 2966 2 FNM_MSG_UNTRAN = %ASCID'Untranslated', ; 2967 2 ! SHOW_IBM_MSG = %ASCID' IBM mode !AS', ; 2968 2 SHOW_HAN_MSG = %ASCID' Handshaking character !3OL (octal)', ; 2969 2 SHOW_HAN_MSG_NONE = %ASCID' Handshaking character None', ; 2970 2 SHOW_LIN_MSG = %ASCID' Line used !AS', ; 2971 2 SHOW_ECH_MSG = %ASCID' Local echo !AS', ; 2972 2 SHOW_PAR_MSG = %ASCID' Parity type !AS', ; 2973 2 PAR_EVEN = %ASCID'Even', ; 2974 2 PAR_ODD = %ASCID'Odd', ; 2975 2 PAR_MARK = %ASCID'Mark', ; 2976 2 PAR_SPACE = %ASCID'Space', ; 2977 2 PAR_NONE = %ASCID'None', ; 2978 2 SHOW_RTY_HDR = %ASCID' Retry maximums', ; 2979 2 SHOW_RTY_INI_MSG = %ASCID' Initial connection !ZL (dec)', ; 2980 2 SHOW_RTY_PKT_MSG = %ASCID' Sending a packet !ZL (dec)', ; 2981 2 SHOW_REC_HDR = %ASCID' Receive parameters', ; 2982 2 SHOW_SND_HDR = %ASCID' Send parameters', ; 2983 2 SHOW_PKT_MSG = %ASCID' Packet length !ZL (dec)', ; 2984 2 SHOW_PAD_MSG = %ASCID' Padding length !ZL (dec)', ; 2985 2 SHOW_PDC_MSG = %ASCID' Padding character !3OL (octal)', ; 2986 2 SHOW_TIM_MSG = %ASCID' Time out !ZL (sec)', ; 2987 2 SHOW_EOL_MSG = %ASCID' End of line character !3OL (octal)', ; 2988 2 SHOW_QUO_MSG = %ASCID' Quoting character !3OL (octal)', ; 2989 2 SHOW_SOH_MSG = %ASCID' Start of packet !3OL (octal)', ; 2990 2 SHOW_8QU_MSG = %ASCID' 8-bit quoting character !3OL (octal)', ; 2991 2 SHOW_RPT_MSG = %ASCID' Repeat quoting character !3OL (octal)'; ; 2992 2 ; 2993 2 !++ ; 2994 2 ! FUNCTIONAL DESCRIPTION: ; 2995 2 ! ; 2996 2 ! This routine is used to output the keywords TRUE or FALSE. ; 2997 2 ! All text that this routine uses is defined in the level 0 BEGIN/END ; 2998 2 ! of the program. ; 2999 2 ! ; 3000 2 ! CALLING SEQUENCE: ; 3001 2 ! ; 3002 2 ! OUTPUT_TRUE_FALSE( MSG_ASCID, FLAG_WORD); ; 3003 2 ! ; 3004 2 ! INPUT PARAMETERS: ; 3005 2 ! ; 3006 2 ! MSG_ASCID - %ASCID of the text to use for the $FAO call. ; 3007 2 ! ; 3008 2 ! FLAG_WORD - Long word containing the value of either TRUE or FALSE. ; 3009 2 ! ; 3010 2 ! IMPLICIT INPUTS: ; 3011 2 ! ; 3012 2 ! None. ; 3013 2 ! ; 3014 2 ! OUTPUT PARAMETERS: ; 3015 2 ! ; 3016 2 ! None. ; 3017 2 ! ; 3018 2 ! IMPLICIT OUTPUTS: ; 3019 2 ! ; 3020 2 ! None. ; 3021 2 ! ; 3022 2 ! COMPLETION CODES: ; 3023 2 ! ; 3024 2 ! None. ; 3025 2 ! ; 3026 2 ! SIDE EFFECTS: ; 3027 2 ! ; 3028 2 ! None. ; 3029 2 ! ; 3030 2 !-- ; 3031 2 ; 3032 2 ROUTINE OUTPUT_TRUE_FALSE (MSG_ADDR, FLAG_ADDR) : NOVALUE = ; 3033 3 BEGIN ; 3034 3 ; 3035 3 MAP ; 3036 3 FLAG_ADDR : LONG UNSIGNED, ; 3037 3 MSG_ADDR : LONG UNSIGNED; ; 3038 3 ; 3039 3 LOCAL ; 3040 3 STATUS : UNSIGNED; ! Status return by LIB$xxx ; 3041 3 ; 3042 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; P 3043 3 $FAO (.MSG_ADDR, OUTPUT_SIZE, OUTPUT_DESC, ; P 3044 3 (SELECTONE ..FLAG_ADDR OF ; P 3045 3 SET ; P 3046 3 [TRUE] : ON_TEXT; ; P 3047 3 [FALSE] : OFF_TEXT; ; 3048 3 TES)); ; 3049 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3050 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3051 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 ;Save R2 ; 3032 MOVAB W^U.51, R2 ;U.51, R2 ; MOVL #17694800, (R2) ;#17694800, OUTPUT_DESC ; 3042 MOVAB -80(R2), 4(R2) ;OUTPUT_LINE, OUTPUT_DESC+4 ; MOVL @8(AP), R1 ;@FLAG_ADDR, R1 ; 3048 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 ; 3049 PUSHL R2 ;R2 ; 3050 CALLS #1, G^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT ; RET ; ; 3051 ; Routine Size: 80 bytes, Routine Base: $CODE$ + 0751 ; 3052 2 ; 3053 2 SELECT .SHOW_TYPE OF ; 3054 2 SET ; 3055 2 ! ; 3056 2 ![012] Show version ; 3057 2 ! ; 3058 2 ; 3059 2 [SHOW_ALL, SHOW_VER] : ; 3060 2 STATUS = LIB$PUT_OUTPUT (IDENT_STRING); ! Type our name and version ; 3061 2 ; 3062 2 [SHOW_ALL, SHOW_CHK, SHOW_PAC] : ; 3063 3 BEGIN ; 3064 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; P 3065 3 $FAO (SHOW_CHK_MSG, OUTPUT_SIZE, OUTPUT_DESC, ; P 3066 3 (SELECTONE .CHKTYPE OF ; P 3067 3 SET ; P 3068 3 [CHK_1CHAR] : CHK_1CHAR_MSG; ; P 3069 3 [CHK_2CHAR] : CHK_2CHAR_MSG; ; P 3070 3 [CHK_CRC] : CHK_CRC_MSG; ; 3071 3 TES)); ; 3072 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3073 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3074 2 END; ; 3075 2 ; 3076 2 [SHOW_ALL, SHOW_DEB] : ; 3077 2 OUTPUT_TRUE_FALSE (SHOW_DEB_MSG, DEBUG_FLAG); ; 3078 2 ; 3079 2 [SHOW_ALL, SHOW_DEL, SHOW_COM, SHOW_TIM] : ; 3080 2 OUTPUT_LONG_WORD (SHOW_DEL_MSG, .DELAY); ; 3081 2 ; 3082 2 [SHOW_ALL, SHOW_TIM] : ; 3083 2 OUTPUT_LONG_WORD (SHOW_SRV_MSG, .SRV_TIMEOUT); ; 3084 2 ; 3085 2 [SHOW_ALL, SHOW_ESC, SHOW_COM] : ; 3086 2 OUTPUT_LONG_WORD (SHOW_ESC_MSG, .ESCAPE_CHR); ; 3087 2 ; 3088 2 [SHOW_ALL, SHOW_FIL] : ![026] ; 3089 3 BEGIN ; 3090 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; P 3091 3 $FAO (SHOW_FTP_MSG, OUTPUT_SIZE, OUTPUT_DESC, ; P 3092 3 (SELECTONE .FILE_TYPE OF ; P 3093 3 SET ; P 3094 3 [FILE_ASC] : FTP_ASCII; ; P 3095 3 [FILE_BIN] : FTP_BINARY; ; P 3096 3 [FILE_BLK] : FTP_BLOCK; ; P 3097 3 [FILE_FIX] : FTP_FIXED; ; 3098 3 TES)); ; 3099 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3100 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3101 3 ![026] ; 3102 3 ![026] Display the file name format ; 3103 3 ![026] ; 3104 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; P 3105 3 $FAO (SHOW_FNM_MSG, OUTPUT_SIZE, OUTPUT_DESC, ; P 3106 3 (SELECTONE .FIL_NORMAL_FORM OF ; P 3107 3 SET ; P 3108 3 [FNM_FULL] : FNM_MSG_FULL; ; P 3109 3 [FNM_NORMAL] : FNM_MSG_NORMAL; ; P 3110 3 [FNM_UNTRAN] : FNM_MSG_UNTRAN; ; 3111 3 TES)); ; 3112 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3113 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3114 2 END; ; 3115 2 ; 3116 2 [SHOW_ALL, SHOW_COM] : ; 3117 2 IF .IBM_CHAR GEQ 0 ; 3118 2 THEN ; 3119 2 OUTPUT_LONG_WORD (SHOW_HAN_MSG, .IBM_CHAR) ; 3120 2 ELSE ; 3121 2 STATUS = LIB$PUT_OUTPUT (SHOW_HAN_MSG_NONE); ; 3122 2 ; 3123 2 [SHOW_ALL, SHOW_ABT, SHOW_FIL] : ; 3124 3 BEGIN ; 3125 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; 3126 3 $FAO (SHOW_ABT_MSG, OUTPUT_SIZE, OUTPUT_DESC, (IF .ABT_FLAG THEN ABT_DISCARD ELSE ABT_KEEP)); ; 3127 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3128 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3129 2 END; ; 3130 2 ; 3131 2 [SHOW_ALL, SHOW_LIN, SHOW_COM] : ; 3132 3 BEGIN ; 3133 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; 3134 3 ; 3135 3 IF .TERM_DESC [DSC$W_LENGTH] GTR 0 ; 3136 3 THEN ; 3137 4 $FAO (SHOW_LIN_MSG, OUTPUT_SIZE, OUTPUT_DESC, TERM_DESC) ; 3138 3 ELSE ; 3139 3 $FAO (SHOW_LIN_MSG, OUTPUT_SIZE, OUTPUT_DESC, %ASCID'none'); ; 3140 3 ; 3141 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3142 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3143 2 END; ; 3144 2 ; 3145 2 [SHOW_ALL, SHOW_ECH, SHOW_COM] : ; 3146 2 OUTPUT_TRUE_FALSE (SHOW_ECH_MSG, ECHO_FLAG); ; 3147 2 ; 3148 2 [SHOW_ALL, SHOW_PAR, SHOW_COM] : ; 3149 3 BEGIN ; 3150 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; P 3151 3 $FAO (SHOW_PAR_MSG, OUTPUT_SIZE, OUTPUT_DESC, ; P 3152 3 (SELECTONE .PARITY_TYPE OF ; P 3153 3 SET ; P 3154 3 [PR_EVEN] : PAR_EVEN; ; P 3155 3 [PR_ODD] : PAR_ODD; ; P 3156 3 [PR_NONE] : PAR_NONE; ; P 3157 3 [PR_MARK] : PAR_MARK; ; P 3158 3 [PR_SPACE] : PAR_SPACE; ; 3159 3 TES)); ; 3160 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3161 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3162 2 END; ; 3163 2 ; 3164 2 [SHOW_ALL, SHOW_RTY, SHOW_PAC] : ; 3165 3 BEGIN ; 3166 3 STATUS = LIB$PUT_OUTPUT (SHOW_RTY_HDR); ; 3167 3 OUTPUT_LONG_WORD (SHOW_RTY_INI_MSG, .SI_RETRIES); ; 3168 3 OUTPUT_LONG_WORD (SHOW_RTY_PKT_MSG, .PKT_RETRIES); ; 3169 2 END; ; 3170 2 ; 3171 2 [SHOW_ALL, SHOW_SEN, SHOW_PAC] : ; 3172 3 BEGIN ; 3173 3 STATUS = LIB$PUT_OUTPUT (SHOW_SND_HDR); ; 3174 3 OUTPUT_LONG_WORD (SHOW_PKT_MSG, ABS (.SND_PKT_SIZE)); ; 3175 3 OUTPUT_LONG_WORD (SHOW_PAD_MSG, ABS (.SND_NPAD)); ; 3176 3 OUTPUT_LONG_WORD (SHOW_PDC_MSG, ABS (.SND_PADCHAR)); ; 3177 3 OUTPUT_LONG_WORD (SHOW_TIM_MSG, ABS (.SND_TIMEOUT)); ; 3178 3 OUTPUT_LONG_WORD (SHOW_EOL_MSG, ABS (.SND_EOL)); ; 3179 3 OUTPUT_LONG_WORD (SHOW_QUO_MSG, ABS (.SND_QUOTE_CHR)); ; 3180 3 OUTPUT_LONG_WORD (SHOW_SOH_MSG, ABS (.SND_SOH)); ; 3181 2 END; ; 3182 2 ; 3183 2 [SHOW_ALL, SHOW_REC, SHOW_PAC] : ; 3184 3 BEGIN ; 3185 3 STATUS = LIB$PUT_OUTPUT (SHOW_REC_HDR); ; 3186 3 OUTPUT_LONG_WORD (SHOW_PKT_MSG, .RCV_PKT_SIZE); ; 3187 3 OUTPUT_LONG_WORD (SHOW_PAD_MSG, .RCV_NPAD); ; 3188 3 OUTPUT_LONG_WORD (SHOW_PDC_MSG, .RCV_PADCHAR); ; 3189 3 OUTPUT_LONG_WORD (SHOW_TIM_MSG, .RCV_TIMEOUT); ; 3190 3 OUTPUT_LONG_WORD (SHOW_EOL_MSG, .RCV_EOL); ; 3191 3 OUTPUT_LONG_WORD (SHOW_QUO_MSG, .RCV_QUOTE_CHR); ; 3192 3 OUTPUT_LONG_WORD (SHOW_8QU_MSG, .RCV_8QUOTE_CHR); ; 3193 3 OUTPUT_LONG_WORD (SHOW_SOH_MSG, .RCV_SOH); ; 3194 2 END; ; 3195 2 ; 3196 2 [SHOW_ALL, SHOW_PAC] : ; 3197 3 BEGIN ; 3198 3 OUTPUT_LONG_WORD (SHOW_RPT_MSG, .SET_REPT_CHR); ; 3199 2 END; ; 3200 2 TES; ; 3201 2 ; 3202 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 ;Save R2,R3,R4,R5,R6,R7,R8 ; 2898 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 ; 3053 CMPL R2, #1 ;R2, #1 ; 3059 BEQL 1$ ;1$ ; CMPL R2, #17 ;R2, #17 ; BNEQ 2$ ;2$ ; 1$: PUSHAB -1356(R4) ;IDENT_STRING ; 3060 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 2$: CMPL R2, #1 ;R2, #1 ; 3062 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 ; 3064 MOVAB -80(R5), 4(R5) ;OUTPUT_LINE, OUTPUT_DESC+4 ; MOVL W^CHKTYPE, R0 ;CHKTYPE, R0 ; 3071 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 ; 3072 PUSHL R5 ;R5 ; 3073 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 9$: TSTL R2 ;R2 ; 3076 BLEQ 10$ ;10$ ; CMPL R2, #2 ;R2, #2 ; BGTR 10$ ;10$ ; PUSHAB W^DEBUG_FLAG ;DEBUG_FLAG ; 3077 PUSHAB -760(R4) ;SHOW_DEB_MSG ; CALLS #2, 306(R6) ;#2, OUTPUT_TRUE_FALSE ; 10$: CMPL R2, #1 ;R2, #1 ; 3079 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 ; 3080 PUSHAB -732(R4) ;SHOW_DEL_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; 12$: CMPL R2, #1 ;R2, #1 ; 3082 BEQL 13$ ;13$ ; CMPL R2, #5 ;R2, #5 ; BNEQ 14$ ;14$ ; 13$: PUSHL W^SRV_TIMEOUT ;SRV_TIMEOUT ; 3083 PUSHAB -660(R4) ;SHOW_SRV_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; 14$: CMPL R2, #1 ;R2, #1 ; 3085 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 ; 3086 PUSHAB -620(R4) ;SHOW_ESC_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; 16$: CMPL R2, #1 ;R2, #1 ; 3088 BEQL 17$ ;17$ ; CMPL R2, #14 ;R2, #14 ; BEQL 17$ ;17$ ; BRW 29$ ;29$ ; 17$: MOVL #17694800, (R5) ;#17694800, OUTPUT_DESC ; 3090 MOVAB -80(R5), 4(R5) ;OUTPUT_LINE, OUTPUT_DESC+4 ; MOVL W^FILE_TYPE, R0 ;FILE_TYPE, R0 ; 3098 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 ; 3099 PUSHL R5 ;R5 ; 3100 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; MOVL #17694800, (R5) ;#17694800, OUTPUT_DESC ; 3104 MOVAB -80(R5), 4(R5) ;OUTPUT_LINE, OUTPUT_DESC+4 ; MOVL W^FIL_NORMAL_FORM, R0 ;FIL_NORMAL_FORM, R0 ; 3111 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 ; 3112 PUSHL R5 ;R5 ; 3113 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 29$: CMPL R2, #1 ;R2, #1 ; 3116 BEQL 30$ ;30$ ; CMPL R2, #16 ;R2, #16 ; BNEQ 32$ ;32$ ; 30$: MOVL W^IBM_CHAR, R0 ;IBM_CHAR, R0 ; 3117 BLSS 31$ ;31$ ; PUSHL R0 ;R0 ; 3119 PUSHAB -372(R4) ;SHOW_HAN_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; BRB 32$ ;32$ ; 31$: PUSHAB -336(R4) ;SHOW_HAN_MSG_NONE ; 3121 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 32$: CMPL R2, #1 ;R2, #1 ; 3123 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 ; 3125 MOVAB -80(R5), 4(R5) ;OUTPUT_LINE, OUTPUT_DESC+4 ; BLBC W^ABT_FLAG, 34$ ;ABT_FLAG, 34$ ; 3126 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 ; 3127 PUSHL R5 ;R5 ; 3128 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 36$: CMPL R2, #1 ;R2, #1 ; 3131 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 ; 3133 MOVAB -80(R5), 4(R5) ;OUTPUT_LINE, OUTPUT_DESC+4 ; TSTW W^TERM_DESC ;TERM_DESC ; 3135 BEQL 38$ ;38$ ; PUSHAB W^TERM_DESC ;TERM_DESC ; 3137 BRB 39$ ;39$ ; 38$: PUSHAB 352(R4) ;P.AEJ ; 3139 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 ; 3141 PUSHL R5 ;R5 ; 3142 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 40$: CMPL R2, #1 ;R2, #1 ; 3145 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 ; 3146 PUSHAB -284(R4) ;SHOW_ECH_MSG ; CALLS #2, 306(R6) ;#2, OUTPUT_TRUE_FALSE ; 42$: CMPL R2, #1 ;R2, #1 ; 3148 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 ; 3150 MOVAB -80(R5), 4(R5) ;OUTPUT_LINE, OUTPUT_DESC+4 ; MOVL W^PARITY_TYPE, R0 ;PARITY_TYPE, R0 ; 3159 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 ; 3160 PUSHL R5 ;R5 ; 3161 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 51$: CMPL R2, #1 ;R2, #1 ; 3164 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 ; 3166 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; PUSHL W^SI_RETRIES ;SI_RETRIES ; 3167 PUSHAB -128(R4) ;SHOW_RTY_INI_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL W^PKT_RETRIES ;PKT_RETRIES ; 3168 PUSHAB -88(R4) ;SHOW_RTY_PKT_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; 53$: CMPL R2, #1 ;R2, #1 ; 3171 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 ; 3173 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; PUSHL W^SND_PKT_SIZE ;SND_PKT_SIZE ; 3174 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 ; 3175 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 ; 3176 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 ; 3177 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 ; 3178 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 ; 3179 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 ; 3180 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 ; 3183 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 ; 3185 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; PUSHL W^RCV_PKT_SIZE ;RCV_PKT_SIZE ; 3186 PUSHL R4 ;R4 ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RCV_NPAD ;RCV_NPAD ; 3187 PUSHAB 36(R4) ;SHOW_PAD_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RCV_PADCHAR ;RCV_PADCHAR ; 3188 PUSHAB 80(R4) ;SHOW_PDC_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RCV_TIMEOUT ;RCV_TIMEOUT ; 3189 PUSHAB 112(R4) ;SHOW_TIM_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RCV_EOL ;RCV_EOL ; 3190 PUSHAB 160(R4) ;SHOW_EOL_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RCV_QUOTE_CHR ;RCV_QUOTE_CHR ; 3191 PUSHAB 204(R4) ;SHOW_QUO_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RCV_8QUOTE_CHR ;RCV_8QUOTE_CHR ; 3192 PUSHAB 292(R4) ;SHOW_8QU_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RCV_SOH ;RCV_SOH ; 3193 PUSHAB 244(R4) ;SHOW_SOH_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; 64$: CMPL R2, #1 ;R2, #1 ; 3196 BEQL 65$ ;65$ ; CMPL R2, #15 ;R2, #15 ; BNEQ 66$ ;66$ ; 65$: PUSHL W^SET_REPT_CHR ;SET_REPT_CHR ; 3198 PUSHAB 340(R4) ;SHOW_RPT_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; 66$: RET ; ; 3202 ; Routine Size: 1077 bytes, Routine Base: $CODE$ + 07A1 ; 3203 1 %SBTTL 'Command execution -- COMND_STATUS' ; 3204 1 ROUTINE COMND_STATUS : NOVALUE = ; 3205 1 ; 3206 1 !++ ; 3207 1 ! FUNCTIONAL DESCRIPTION: ; 3208 1 ! ; 3209 1 ! This routine will display the status of Kermit-32. ; 3210 1 ! ; 3211 1 ! CALLING SEQUENCE: ; 3212 1 ! ; 3213 1 ! COMND_STATUS (); ; 3214 1 ! ; 3215 1 ! INPUT PARAMETERS: ; 3216 1 ! ; 3217 1 ! None. ; 3218 1 ! ; 3219 1 ! IMPLICIT INPUTS: ; 3220 1 ! ; 3221 1 ! None. ; 3222 1 ! ; 3223 1 ! OUTPUT PARAMETERS: ; 3224 1 ! ; 3225 1 ! None. ; 3226 1 ! ; 3227 1 ! IMPLICIT OUTPUTS: ; 3228 1 ! ; 3229 1 ! None. ; 3230 1 ! ; 3231 1 ! COMPLETION CODES: ; 3232 1 ! ; 3233 1 ! None. ; 3234 1 ! ; 3235 1 ! SIDE EFFECTS: ; 3236 1 ! ; 3237 1 ! None. ; 3238 1 ! ; 3239 1 !-- ; 3240 1 ; 3241 2 BEGIN ; 3242 2 ; 3243 2 LOCAL ; 3244 2 STATUS, ! Status returned by system call ; 3245 2 POINTER, ! Pointer to the LAST_ERROR text ; 3246 2 CHAR_COUNT; ! Character count ; 3247 2 ; 3248 2 BIND ; 3249 2 TEXT_CR = %ASCID'', ; 3250 2 TEXT_BAUD = %ASCID' Effective data rate !ZL baud', ; 3251 2 TEXT_NAKS_SENT = %ASCID' NAKs received !ZL', ; 3252 2 TEXT_NAKS_RCV = %ASCID' NAKs sent !ZL', ; 3253 2 TEXT_PKTS_SENT = %ASCID' Packets sent !ZL', ; 3254 2 TEXT_PKTS_RCV = %ASCID' Packets received !ZL', ; 3255 2 TEXT_CHR_SENT = %ASCID' Characters sent !ZL', ; 3256 2 TEXT_DATA_CHAR_SENT = %ASCID' Data characters sent !ZL', ; 3257 2 TEXT_DATA_CHAR_RCV = %ASCID' Data characters received !ZL', ; 3258 2 TEXT_CHR_RCV = %ASCID' Characters received !ZL', ; 3259 2 TEXT_TOTAL_HDR = %ASCID'Totals since Kermit was started', ; 3260 2 TEXT_XFR_HDR = %ASCID'Totals for the last transfer'; ; 3261 2 ; 3262 2 STATUS = LIB$PUT_OUTPUT (TEXT_CR); ; 3263 2 STATUS = LIB$PUT_OUTPUT (TEXT_XFR_HDR); ; 3264 2 OUTPUT_LONG_WORD (TEXT_CHR_SENT, .SMSG_TOTAL_CHARS); ; 3265 2 OUTPUT_LONG_WORD (TEXT_DATA_CHAR_SENT, .SMSG_DATA_CHARS); ; 3266 2 OUTPUT_LONG_WORD (TEXT_NAKS_SENT, .SMSG_NAKS); ; 3267 2 OUTPUT_LONG_WORD (TEXT_PKTS_SENT, .SMSG_COUNT); ; 3268 2 OUTPUT_LONG_WORD (TEXT_CHR_RCV, .RMSG_TOTAL_CHARS); ; 3269 2 OUTPUT_LONG_WORD (TEXT_DATA_CHAR_RCV, .RMSG_DATA_CHARS); ; 3270 2 OUTPUT_LONG_WORD (TEXT_NAKS_RCV, .RMSG_NAKS); ; 3271 2 OUTPUT_LONG_WORD (TEXT_PKTS_RCV, .RMSG_COUNT); ; 3272 2 ; 3273 2 IF .XFR_TIME NEQ 0 ; 3274 2 THEN ; 3275 2 OUTPUT_LONG_WORD (TEXT_BAUD, ; 3276 5 (((IF .RMSG_DATA_CHARS LEQ .SMSG_DATA_CHARS THEN .SMSG_DATA_CHARS ELSE .RMSG_DATA_CHARS)*10)/(( ; 3277 2 .XFR_TIME + 500)/1000))); ; 3278 2 ; 3279 2 STATUS = LIB$PUT_OUTPUT (TEXT_CR); ; 3280 2 STATUS = LIB$PUT_OUTPUT (TEXT_TOTAL_HDR); ; 3281 2 OUTPUT_LONG_WORD (TEXT_CHR_SENT, .SND_TOTAL_CHARS); ; 3282 2 OUTPUT_LONG_WORD (TEXT_DATA_CHAR_SENT, .SND_DATA_CHARS); ; 3283 2 OUTPUT_LONG_WORD (TEXT_NAKS_SENT, .SND_NAKS); ; 3284 2 OUTPUT_LONG_WORD (TEXT_PKTS_SENT, .SND_COUNT); ; 3285 2 OUTPUT_LONG_WORD (TEXT_CHR_RCV, .RCV_TOTAL_CHARS); ; 3286 2 OUTPUT_LONG_WORD (TEXT_DATA_CHAR_RCV, .RCV_DATA_CHARS); ; 3287 2 OUTPUT_LONG_WORD (TEXT_NAKS_RCV, .RCV_NAKS); ; 3288 2 OUTPUT_LONG_WORD (TEXT_PKTS_RCV, .RCV_COUNT); ; 3289 2 ; 3290 2 IF .TOTAL_TIME NEQ 0 ; 3291 2 THEN ; 3292 2 OUTPUT_LONG_WORD (TEXT_BAUD, ; 3293 2 (((.RCV_DATA_CHARS + .SND_DATA_CHARS)*10)/((.TOTAL_TIME + 500)/1000))); ; 3294 2 ; 3295 2 ! ; 3296 2 ! Output the error text if there is any ; 3297 2 ! ; 3298 2 POINTER = CH$PTR (LAST_ERROR); ; 3299 2 CHAR_COUNT = 0; ; 3300 2 ; 3301 2 WHILE CH$RCHAR_A (POINTER) NEQ CHR_NUL DO ; 3302 2 CHAR_COUNT = .CHAR_COUNT + 1; ; 3303 2 ; 3304 2 IF .CHAR_COUNT NEQ 0 ; 3305 2 THEN ; 3306 3 BEGIN ; 3307 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; 3308 3 STATUS = $FAO (%ASCID'Last error: !AD', OUTPUT_SIZE, OUTPUT_DESC, .CHAR_COUNT, LAST_ERROR); ; 3309 3 ; 3310 3 IF NOT .STATUS ; 3311 3 THEN ; 3312 3 LIB$SIGNAL (.STATUS) ; 3313 3 ELSE ; 3314 4 BEGIN ; 3315 4 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3316 4 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3317 4 ; 3318 4 IF NOT .STATUS THEN LIB$SIGNAL (.STATUS); ; 3319 4 ; 3320 3 END; ; 3321 3 ; 3322 2 END; ; 3323 2 ; 3324 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 ;Save R2,R3,R4,R5,R6,R7,R8,R9 ; 3204 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 ; 3262 CALLS #1, (R6) ;#1, LIB$PUT_OUTPUT ; MOVL R0, R3 ;R0, STATUS ; PUSHAB 364(R4) ;TEXT_XFR_HDR ; 3263 CALLS #1, (R6) ;#1, LIB$PUT_OUTPUT ; MOVL R0, R3 ;R0, STATUS ; PUSHL W^SMSG_TOTAL_CHARS ;SMSG_TOTAL_CHARS ; 3264 PUSHAB 180(R4) ;TEXT_CHR_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL (R8) ;SMSG_DATA_CHARS ; 3265 PUSHAB 216(R4) ;TEXT_DATA_CHAR_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL W^SMSG_NAKS ;SMSG_NAKS ; 3266 PUSHAB 68(R4) ;TEXT_NAKS_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL W^SMSG_COUNT ;SMSG_COUNT ; 3267 PUSHAB 120(R4) ;TEXT_PKTS_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RMSG_TOTAL_CHARS ;RMSG_TOTAL_CHARS ; 3268 PUSHAB 288(R4) ;TEXT_CHR_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL (R9) ;RMSG_DATA_CHARS ; 3269 PUSHAB 256(R4) ;TEXT_DATA_CHAR_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RMSG_NAKS ;RMSG_NAKS ; 3270 PUSHAB 92(R4) ;TEXT_NAKS_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RMSG_COUNT ;RMSG_COUNT ; 3271 PUSHAB 152(R4) ;TEXT_PKTS_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; MOVL W^XFR_TIME, R0 ;XFR_TIME, R0 ; 3273 BEQL 3$ ;3$ ; CMPL (R9), (R8) ;RMSG_DATA_CHARS, SMSG_DATA_CHARS ; 3276 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 ; 3277 DIVL3 R0, R1, -(SP) ;R0, R1, -(SP) ; 3276 PUSHAB 40(R4) ;TEXT_BAUD ; 3275 CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; 3$: PUSHL R4 ;R4 ; 3279 CALLS #1, (R6) ;#1, LIB$PUT_OUTPUT ; MOVL R0, R3 ;R0, STATUS ; PUSHAB 328(R4) ;TEXT_TOTAL_HDR ; 3280 CALLS #1, (R6) ;#1, LIB$PUT_OUTPUT ; MOVL R0, R3 ;R0, STATUS ; PUSHL W^SND_TOTAL_CHARS ;SND_TOTAL_CHARS ; 3281 PUSHAB 180(R4) ;TEXT_CHR_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL W^SND_DATA_CHARS ;SND_DATA_CHARS ; 3282 PUSHAB 216(R4) ;TEXT_DATA_CHAR_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL W^SND_NAKS ;SND_NAKS ; 3283 PUSHAB 68(R4) ;TEXT_NAKS_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL W^SND_COUNT ;SND_COUNT ; 3284 PUSHAB 120(R4) ;TEXT_PKTS_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RCV_TOTAL_CHARS ;RCV_TOTAL_CHARS ; 3285 PUSHAB 288(R4) ;TEXT_CHR_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RCV_DATA_CHARS ;RCV_DATA_CHARS ; 3286 PUSHAB 256(R4) ;TEXT_DATA_CHAR_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RCV_NAKS ;RCV_NAKS ; 3287 PUSHAB 92(R4) ;TEXT_NAKS_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL W^RCV_COUNT ;RCV_COUNT ; 3288 PUSHAB 152(R4) ;TEXT_PKTS_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; MOVL W^TOTAL_TIME, R0 ;TOTAL_TIME, R0 ; 3290 BEQL 4$ ;4$ ; ADDL3 W^SND_DATA_CHARS, W^RCV_DATA_CHARS, -;SND_DATA_CHARS, RCV_DATA_CHARS, R1 ; 3293 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 ; 3292 CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; 4$: MOVAB W^LAST_ERROR, R1 ;LAST_ERROR, POINTER ; 3298 CLRL R0 ;CHAR_COUNT ; 3299 5$: MOVZBL (R1)+, R2 ;(POINTER)+, R2 ; 3301 BEQL 6$ ;6$ ; INCL R0 ;CHAR_COUNT ; 3302 BRB 5$ ;5$ ; 6$: TSTL R0 ;CHAR_COUNT ; 3304 BEQL 8$ ;8$ ; MOVL #17694800, (R7) ;#17694800, OUTPUT_DESC ; 3307 MOVAB -80(R7), 4(R7) ;OUTPUT_LINE, OUTPUT_DESC+4 ; PUSHAB W^LAST_ERROR ;LAST_ERROR ; 3308 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$ ; 3310 MOVW 8(R7), (R7) ;OUTPUT_SIZE, OUTPUT_DESC ; 3315 PUSHL R7 ;R7 ; 3316 CALLS #1, (R6) ;#1, LIB$PUT_OUTPUT ; MOVL R0, R3 ;R0, STATUS ; BLBS R3, 8$ ;STATUS, 8$ ; 3318 7$: PUSHL R3 ;STATUS ; CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL ; 8$: RET ; ; 3324 ; Routine Size: 406 bytes, Routine Base: $CODE$ + 0BD6 ; 3325 1 %SBTTL 'GET_REM_ARGS - Get extra arguments for remote commands' ; 3326 1 ROUTINE GET_REM_ARGS (LOCAL_FLAG) = ; 3327 1 ; 3328 1 !++ ; 3329 1 ! FUNCTIONAL DESCRIPTION: ; 3330 1 ! ; 3331 1 ! This routine will get any extra arguments required for remote commands. ; 3332 1 !It will prompt the user and get the input from SYS$COMMAND:. ; 3333 1 ! ; 3334 1 ! CALLING SEQUENCE: ; 3335 1 ! ; 3336 1 ! STATUS = GET_REM_ARGS (LOCAL_FLAG); ; 3337 1 ! ; 3338 1 ! INPUT PARAMETERS: ; 3339 1 ! ; 3340 1 ! LOCAL_FLAG - If true, this is for a LOCAL xxx command. Only get the ; 3341 1 ! arguments we know we need for local commands. Otherwise ; 3342 1 ! get all possible arguments. ; 3343 1 ! ; 3344 1 ! IMPLICIT INPUTS: ; 3345 1 ! ; 3346 1 ! REM_TYPE - Type of remote command to get arguments for. ; 3347 1 ! ; 3348 1 ! OUPTUT PARAMETERS: ; 3349 1 ! ; 3350 1 ! None. ; 3351 1 ! ; 3352 1 ! IMPLICIT OUTPUTS: ; 3353 1 ! ; 3354 1 ! GEN_xDATA, GEN_xSIZE - Text and sizes of arguments ; 3355 1 ! ; 3356 1 ! COMPLETION CODES: ; 3357 1 ! ; 3358 1 ! Status values from subroutines called if in error. ; 3359 1 ! ; 3360 1 ! SIDE EFFECTS: ; 3361 1 ! ; 3362 1 ! None. ; 3363 1 ! ; 3364 1 !-- ; 3365 1 ; 3366 2 BEGIN ; 3367 2 ; 3368 2 EXTERNAL ROUTINE ; 3369 2 GET_COMMAND; ! Get line from SYS$COMMAND: ; 3370 2 ; 3371 2 LOCAL ; 3372 2 GEN_2DESC : BLOCK [8, BYTE], ! Descriptor for second argument ; 3373 2 GEN_3DESC : BLOCK [8, BYTE], ! Descriptor for third argument ; 3374 2 STATUS; ! Random status values ; 3375 2 ; 3376 2 ! ; 3377 2 ! Set up descriptors for second and third arguments ; 3378 2 ! ; 3379 2 INIT_STR_DESC (GEN_2DESC, GEN_2DATA, MAX_MSG); ; 3380 2 INIT_STR_DESC (GEN_3DESC, GEN_3DATA, MAX_MSG); ; 3381 2 ; 3382 2 SELECTONE .REM_TYPE OF ; 3383 2 SET ; 3384 2 ; 3385 2 [GC_CONNECT] : ; 3386 2 ; 3387 2 IF NOT .LOCAL_FLAG AND .GEN_1SIZE GTR 0 ; 3388 2 THEN ; 3389 2 RETURN GET_COMMAND (GEN_2DESC, %ASCID'Password: ', ; 3390 2 GEN_2SIZE, FALSE); ; 3391 2 ; 3392 2 [GC_COPY, GC_RENAME] : ; 3393 2 ; 3394 2 WHILE TRUE DO ; 3395 3 BEGIN ; 3396 3 STATUS = GET_COMMAND (GEN_2DESC, %ASCID'New file: ', GEN_2SIZE, TRUE); ; 3397 3 ; 3398 3 IF NOT .STATUS OR .GEN_2SIZE NEQ 0 THEN RETURN .STATUS; ; 3399 3 ; 3400 2 END; ; 3401 2 ; 3402 2 [GC_LGN] : ; 3403 3 BEGIN ; 3404 3 STATUS = GET_COMMAND (GEN_3DESC, %ASCID'Account: ', GEN_3SIZE, TRUE); ; 3405 3 ; 3406 3 IF NOT .STATUS THEN RETURN .STATUS; ; 3407 3 ; 3408 3 RETURN GET_COMMAND (GEN_2DESC, %ASCID'Password: ', GEN_2SIZE, FALSE); ; 3409 2 END; ; 3410 2 ; 3411 2 [GC_SEND_MSG] : ; 3412 2 RETURN GET_COMMAND (GEN_2DESC, %ASCID'Message: ', GEN_2SIZE, TRUE); ; 3413 2 ; 3414 2 [GC_WHO] : ; 3415 2 ; 3416 2 IF NOT .LOCAL_FLAG THEN RETURN GET_COMMAND (GEN_2DESC, %ASCID'Options: ', GEN_2SIZE, TRUE); ; 3417 2 ; 3418 2 TES; ; 3419 2 ; 3420 2 ! ; 3421 2 ! If we fall out of the SELECT, we don't need any arguments ; 3422 2 ! ; 3423 2 RETURN TRUE; ; 3424 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 ;Save R2,R3,R4 ; 3326 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 #17694820, 4(SP) ;#17694820, GEN_2DESC ; 3379 MOVAB W^GEN_2DATA, 8(SP) ;GEN_2DATA, GEN_2DESC+4 ; PUSHL #17694820 ;#17694820 ; 3380 MOVAB W^GEN_3DATA, 4(SP) ;GEN_3DATA, GEN_3DESC+4 ; MOVL W^U.48, R1 ;U.48, R1 ; 3382 CMPL R1, #9 ;R1, #9 ; 3385 BNEQ 1$ ;1$ ; BLBS 4(AP), 7$ ;LOCAL_FLAG, 7$ ; 3387 TSTL W^GEN_1SIZE ;GEN_1SIZE ; BLEQ 7$ ;7$ ; CLRL -(SP) ;-(SP) ; 3389 PUSHL R2 ;R2 ; PUSHL R3 ;R3 ; BRB 6$ ;6$ ; 1$: CMPL R1, #10 ;R1, #10 ; 3392 BLSS 3$ ;3$ ; CMPL R1, #11 ;R1, #11 ; BGTR 3$ ;3$ ; 2$: PUSHL #1 ;#1 ; 3396 PUSHL R2 ;R2 ; PUSHAB 20(R3) ;P.AFN ; PUSHAB 20(SP) ;GEN_2DESC ; CALLS #4, (R4) ;#4, GET_COMMAND ; BLBC R0, 8$ ;STATUS, 8$ ; 3398 TSTL (R2) ;GEN_2SIZE ; BEQL 2$ ;2$ ; RET ; ; 3$: CMPL R1, #8 ;R1, #8 ; 3402 BNEQ 4$ ;4$ ; PUSHL #1 ;#1 ; 3404 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$ ; 3406 CLRL -(SP) ;-(SP) ; 3408 PUSHL R2 ;R2 ; PUSHAB 60(R3) ;P.AFR ; BRB 6$ ;6$ ; 4$: CMPL R1, #13 ;R1, #13 ; 3411 BNEQ 5$ ;5$ ; PUSHL #1 ;#1 ; 3412 PUSHL R2 ;R2 ; PUSHAB 80(R3) ;P.AFT ; BRB 6$ ;6$ ; 5$: CMPL R1, #12 ;R1, #12 ; 3414 BNEQ 7$ ;7$ ; BLBS 4(AP), 7$ ;LOCAL_FLAG, 7$ ; 3416 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 ; 3423 8$: RET ; ; 3424 ; Routine Size: 178 bytes, Routine Base: $CODE$ + 0D6C ; 3425 1 %SBTTL 'TPARSE support -- STORE_DEBUG' ; 3426 1 ROUTINE STORE_DEBUG = ; 3427 1 ; 3428 1 !++ ; 3429 1 ! FUNCTIONAL DESCRIPTION: ; 3430 1 ! ; 3431 1 ! This routine will store the debug flag into the DEBUG_FLAG ; 3432 1 ! location. ; 3433 1 ! ; 3434 1 ! CALLING SEQUENCE: ; 3435 1 ! ; 3436 1 ! Standard LIB$TPARSE routine call. ; 3437 1 ! ; 3438 1 ! INPUT PARAMETERS: ; 3439 1 ! ; 3440 1 ! None. ; 3441 1 ! ; 3442 1 ! IMPLICIT INPUTS: ; 3443 1 ! ; 3444 1 ! None. ; 3445 1 ! ; 3446 1 ! OUTPUT PARAMETERS: ; 3447 1 ! ; 3448 1 ! None. ; 3449 1 ! ; 3450 1 ! IMPLICIT OUTPUTS: ; 3451 1 ! ; 3452 1 ! None. ; 3453 1 ! ; 3454 1 ! COMPLETION CODES: ; 3455 1 ! ; 3456 1 ! None. ; 3457 1 ! ; 3458 1 ! SIDE EFFECTS: ; 3459 1 ! ; 3460 1 ! None. ; 3461 1 ! ; 3462 1 !-- ; 3463 1 ; 3464 2 BEGIN ; 3465 2 TPARSE_ARGS; ; 3466 2 DEBUG_FLAG = .AP [TPA$L_PARAM]; ; 3467 2 RETURN SS$_NORMAL; ; 3468 1 END; ! End of STORE_DEBUG ;STORE_DEBUG U.17: .WORD ^M<> ;Save nothing ; 3426 MOVL 32(AP), W^DEBUG_FLAG ;32(AP), DEBUG_FLAG ; 3466 MOVL #1, R0 ;#1, R0 ; 3467 RET ; ; 3468 ; Routine Size: 12 bytes, Routine Base: $CODE$ + 0E1E ; 3469 1 %SBTTL 'TPARSE support -- STORE_IBM' ; 3470 1 ROUTINE STORE_IBM = ; 3471 1 ; 3472 1 !++ ; 3473 1 ! FUNCTIONAL DESCRIPTION: ; 3474 1 ! ; 3475 1 ! This routine will store the IBM flag into the IBM_FLAG ; 3476 1 ! location. ; 3477 1 ! ; 3478 1 ! CALLING SEQUENCE: ; 3479 1 ! ; 3480 1 ! Standard LIB$TPARSE routine call. ; 3481 1 ! ; 3482 1 ! INPUT PARAMETERS: ; 3483 1 ! ; 3484 1 ! None. ; 3485 1 ! ; 3486 1 ! IMPLICIT INPUTS: ; 3487 1 ! ; 3488 1 ! None. ; 3489 1 ! ; 3490 1 ! OUTPUT PARAMETERS: ; 3491 1 ! ; 3492 1 ! None. ; 3493 1 ! ; 3494 1 ! IMPLICIT OUTPUTS: ; 3495 1 ! ; 3496 1 ! None. ; 3497 1 ! ; 3498 1 ! COMPLETION CODES: ; 3499 1 ! ; 3500 1 ! None. ; 3501 1 ! ; 3502 1 ! SIDE EFFECTS: ; 3503 1 ! ; 3504 1 ! None. ; 3505 1 ! ; 3506 1 !-- ; 3507 1 ; 3508 2 BEGIN ; 3509 2 ; 3510 2 EXTERNAL LITERAL ; 3511 2 IBM_MODE_ECHO : WEAK, ! IBM mode echo value ; 3512 2 IBM_MODE_PARITY : WEAK, ! Default parity ; 3513 2 IBM_MODE_CHARACTER : WEAK; ! And handshake character for ; 3514 2 ; 3515 2 ! IBM mode ; 3516 2 TPARSE_ARGS; ; 3517 2 ; 3518 2 IF .AP [TPA$L_PARAM] ; 3519 2 THEN ; 3520 3 BEGIN ; 3521 3 IBM_CHAR = (IF IBM_MODE_CHARACTER NEQ 0 THEN IBM_MODE_CHARACTER ELSE CHR_DC1); ; 3522 3 PARITY_TYPE = (IF IBM_MODE_PARITY NEQ 0 THEN IBM_MODE_PARITY ELSE PR_MARK); ; 3523 3 ECHO_FLAG = (IF IBM_MODE_ECHO NEQ 0 THEN IBM_MODE_ECHO ELSE TRUE); ; 3524 3 END ; 3525 2 ELSE ; 3526 3 BEGIN ; 3527 3 IBM_CHAR = -1; ! Turn IBM mode off ; 3528 3 ECHO_FLAG = FALSE; ! No local echo ; 3529 3 PARITY_TYPE = PR_NONE; ! and no parity ; 3530 2 END; ; 3531 2 ; 3532 2 RETURN SS$_NORMAL; ; 3533 1 END; ! End of STORE_IBM .WEAK IBM_MODE_ECHO, IBM_MODE_PARITY, IBM_MODE_CHARACTER ;STORE_IBM U.24: .WORD ^M ;Save R2,R3,R4 ; 3470 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$ ; 3518 TSTL R4 ;R4 ; 3521 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 ; 3522 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 ; 3523 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$ ; 3518 7$: MNEGL #1, W^IBM_CHAR ;#1, IBM_CHAR ; 3527 CLRL W^ECHO_FLAG ;ECHO_FLAG ; 3528 CLRL W^PARITY_TYPE ;PARITY_TYPE ; 3529 8$: MOVL #1, R0 ;#1, R0 ; 3532 RET ; ; 3533 ; Routine Size: 97 bytes, Routine Base: $CODE$ + 0E2A ; 3534 1 %SBTTL 'TPARSE support -- STORE_ABT' ; 3535 1 ROUTINE STORE_ABT = ; 3536 1 ; 3537 1 !++ ; 3538 1 ! FUNCTIONAL DESCRIPTION: ; 3539 1 ! ; 3540 1 ! This routine will store the aborted file disposition into ABT_FLAG ; 3541 1 ! ; 3542 1 ! CALLING SEQUENCE: ; 3543 1 ! ; 3544 1 ! Standard LIB$TPARSE routine call. ; 3545 1 ! ; 3546 1 ! INPUT PARAMETERS: ; 3547 1 ! ; 3548 1 ! None. ; 3549 1 ! ; 3550 1 ! IMPLICIT INPUTS: ; 3551 1 ! ; 3552 1 ! None. ; 3553 1 ! ; 3554 1 ! OUTPUT PARAMETERS: ; 3555 1 ! ; 3556 1 ! None. ; 3557 1 ! ; 3558 1 ! IMPLICIT OUTPUTS: ; 3559 1 ! ; 3560 1 ! None. ; 3561 1 ! ; 3562 1 ! COMPLETION CODES: ; 3563 1 ! ; 3564 1 ! None. ; 3565 1 ! ; 3566 1 ! SIDE EFFECTS: ; 3567 1 ! ; 3568 1 ! None. ; 3569 1 ! ; 3570 1 !-- ; 3571 1 ; 3572 2 BEGIN ; 3573 2 TPARSE_ARGS; ; 3574 2 ABT_FLAG = .AP [TPA$L_PARAM]; ; 3575 2 RETURN SS$_NORMAL; ; 3576 1 END; ! End of STORE_ABT ;STORE_ABT U.23: .WORD ^M<> ;Save nothing ; 3535 MOVL 32(AP), W^ABT_FLAG ;32(AP), ABT_FLAG ; 3574 MOVL #1, R0 ;#1, R0 ; 3575 RET ; ; 3576 ; Routine Size: 12 bytes, Routine Base: $CODE$ + 0E8B ; 3577 1 %SBTTL 'TPARSE support -- STORE_CHK' ; 3578 1 ROUTINE STORE_CHK = ; 3579 1 ; 3580 1 !++ ; 3581 1 ! FUNCTIONAL DESCRIPTION: ; 3582 1 ! ; 3583 1 ! This routine will store the block check type into XXXX ; 3584 1 ! location. ; 3585 1 ! ; 3586 1 ! CALLING SEQUENCE: ; 3587 1 ! ; 3588 1 ! Standard LIB$TPARSE routine call. ; 3589 1 ! ; 3590 1 ! INPUT PARAMETERS: ; 3591 1 ! ; 3592 1 ! None. ; 3593 1 ! ; 3594 1 ! IMPLICIT INPUTS: ; 3595 1 ! ; 3596 1 ! None. ; 3597 1 ! ; 3598 1 ! OUTPUT PARAMETERS: ; 3599 1 ! ; 3600 1 ! None. ; 3601 1 ! ; 3602 1 ! IMPLICIT OUTPUTS: ; 3603 1 ! ; 3604 1 ! None. ; 3605 1 ! ; 3606 1 ! COMPLETION CODES: ; 3607 1 ! ; 3608 1 ! None. ; 3609 1 ! ; 3610 1 ! SIDE EFFECTS: ; 3611 1 ! ; 3612 1 ! None. ; 3613 1 ! ; 3614 1 !-- ; 3615 1 ; 3616 2 BEGIN ; 3617 2 TPARSE_ARGS; ; 3618 2 CHKTYPE = .AP [TPA$L_PARAM]; ; 3619 2 RETURN SS$_NORMAL; ; 3620 1 END; ! End of STORE_CHK ;STORE_CHK U.22: .WORD ^M<> ;Save nothing ; 3578 MOVL 32(AP), W^CHKTYPE ;32(AP), CHKTYPE ; 3618 MOVL #1, R0 ;#1, R0 ; 3619 RET ; ; 3620 ; Routine Size: 12 bytes, Routine Base: $CODE$ + 0E97 ; 3621 1 %SBTTL 'TPARSE support -- STORE_FTP - Store file type' ; 3622 1 ROUTINE STORE_FTP = ; 3623 1 ; 3624 1 !++ ; 3625 1 ! FUNCTIONAL DESCRIPTION: ; 3626 1 ! ; 3627 1 ! This routine will store the file type that was specified by the ; 3628 1 ! user for the KERFIL processing. ; 3629 1 ! ; 3630 1 ! CALLING SEQUENCE: ; 3631 1 ! ; 3632 1 ! Standard call from LIB$TPARSE. ; 3633 1 ! ; 3634 1 ! INPUT PARAMETERS: ; 3635 1 ! ; 3636 1 ! None. ; 3637 1 ! ; 3638 1 ! IMPLICIT INPUTS: ; 3639 1 ! ; 3640 1 ! None. ; 3641 1 ! ; 3642 1 ! OUTPUT PARAMETERS: ; 3643 1 ! ; 3644 1 ! None. ; 3645 1 ! ; 3646 1 ! IMPLICIT OUTPUTS: ; 3647 1 ! ; 3648 1 ! None. ; 3649 1 ! ; 3650 1 ! COMPLETION CODES: ; 3651 1 ! ; 3652 1 ! None. ; 3653 1 ! ; 3654 1 ! SIDE EFFECTS: ; 3655 1 ! ; 3656 1 ! None. ; 3657 1 ! ; 3658 1 !-- ; 3659 1 ; 3660 2 BEGIN ; 3661 2 TPARSE_ARGS; ; 3662 2 FILE_TYPE = .AP [TPA$L_PARAM]; ; 3663 2 RETURN SS$_NORMAL; ; 3664 1 END; ! End of STORE_FTP ;STORE_FTP U.18: .WORD ^M<> ;Save nothing ; 3622 MOVL 32(AP), W^FILE_TYPE ;32(AP), FILE_TYPE ; 3662 MOVL #1, R0 ;#1, R0 ; 3663 RET ; ; 3664 ; Routine Size: 12 bytes, Routine Base: $CODE$ + 0EA3 ; 3665 1 %SBTTL 'TPARSE support -- STORE_FNM - Store file type' ; 3666 1 ROUTINE STORE_FNM = ; 3667 1 ; 3668 1 !++ ; 3669 1 ! FUNCTIONAL DESCRIPTION: ; 3670 1 ! ; 3671 1 ! This routine will store the file type that was specified by the ; 3672 1 ! user for the KERFIL processing. ; 3673 1 ! ; 3674 1 ! CALLING SEQUENCE: ; 3675 1 ! ; 3676 1 ! Standard call from LIB$TPARSE. ; 3677 1 ! ; 3678 1 ! INPUT PARAMETERS: ; 3679 1 ! ; 3680 1 ! None. ; 3681 1 ! ; 3682 1 ! IMPLICIT INPUTS: ; 3683 1 ! ; 3684 1 ! None. ; 3685 1 ! ; 3686 1 ! OUTPUT PARAMETERS: ; 3687 1 ! ; 3688 1 ! None. ; 3689 1 ! ; 3690 1 ! IMPLICIT OUTPUTS: ; 3691 1 ! ; 3692 1 ! None. ; 3693 1 ! ; 3694 1 ! COMPLETION CODES: ; 3695 1 ! ; 3696 1 ! None. ; 3697 1 ! ; 3698 1 ! SIDE EFFECTS: ; 3699 1 ! ; 3700 1 ! None. ; 3701 1 ! ; 3702 1 !-- ; 3703 1 ; 3704 2 BEGIN ; 3705 2 TPARSE_ARGS; ; 3706 2 FIL_NORMAL_FORM = .AP [TPA$L_PARAM]; ; 3707 2 RETURN SS$_NORMAL; ; 3708 1 END; ! End of STORE_FNM ;STORE_FNM U.19: .WORD ^M<> ;Save nothing ; 3666 MOVL 32(AP), W^FIL_NORMAL_FORM ;32(AP), FIL_NORMAL_FORM ; 3706 MOVL #1, R0 ;#1, R0 ; 3707 RET ; ; 3708 ; Routine Size: 12 bytes, Routine Base: $CODE$ + 0EAF ; 3709 1 %SBTTL 'TPARSE support -- STORE_PARITY - Store file type' ; 3710 1 ROUTINE STORE_PARITY = ; 3711 1 ; 3712 1 !++ ; 3713 1 ! FUNCTIONAL DESCRIPTION: ; 3714 1 ! ; 3715 1 ! This routine will store the type of parity to use for the transfer. ; 3716 1 ! If a parity type of other than NONE is specified then we will use ; 3717 1 ! eight-bit quoting to support the transfer. ; 3718 1 ! ; 3719 1 ! CALLING SEQUENCE: ; 3720 1 ! ; 3721 1 ! Standard call from LIB$TPARSE. ; 3722 1 ! ; 3723 1 ! INPUT PARAMETERS: ; 3724 1 ! ; 3725 1 ! None. ; 3726 1 ! ; 3727 1 ! IMPLICIT INPUTS: ; 3728 1 ! ; 3729 1 ! None. ; 3730 1 ! ; 3731 1 ! OUTPUT PARAMETERS: ; 3732 1 ! ; 3733 1 ! None. ; 3734 1 ! ; 3735 1 ! IMPLICIT OUTPUTS: ; 3736 1 ! ; 3737 1 ! None. ; 3738 1 ! ; 3739 1 ! COMPLETION CODES: ; 3740 1 ! ; 3741 1 ! None. ; 3742 1 ! ; 3743 1 ! SIDE EFFECTS: ; 3744 1 ! ; 3745 1 ! None. ; 3746 1 ! ; 3747 1 !-- ; 3748 1 ; 3749 2 BEGIN ; 3750 2 TPARSE_ARGS; ; 3751 2 PARITY_TYPE = .AP [TPA$L_PARAM]; ; 3752 2 RETURN SS$_NORMAL; ; 3753 1 END; ! End of STORE_PARITY ;STORE_PARITY U.21: .WORD ^M<> ;Save nothing ; 3710 MOVL 32(AP), W^PARITY_TYPE ;32(AP), PARITY_TYPE ; 3751 MOVL #1, R0 ;#1, R0 ; 3752 RET ; ; 3753 ; Routine Size: 12 bytes, Routine Base: $CODE$ + 0EBB ; 3754 1 %SBTTL 'TPARSE support -- STORE_ECHO - Store local echo flag' ; 3755 1 ROUTINE STORE_ECHO = ; 3756 1 ; 3757 1 !++ ; 3758 1 ! FUNCTIONAL DESCRIPTION: ; 3759 1 ! ; 3760 1 ! This routine will store the state of the local echo flag as the ; 3761 1 ! user set it. ; 3762 1 ! ; 3763 1 ! CALLING SEQUENCE: ; 3764 1 ! ; 3765 1 ! Standard TPARSE argument call. ; 3766 1 ! ; 3767 1 ! INPUT PARAMETERS: ; 3768 1 ! ; 3769 1 ! None. ; 3770 1 ! ; 3771 1 ! IMPLICIT INPUTS: ; 3772 1 ! ; 3773 1 ! None. ; 3774 1 ! ; 3775 1 ! OUTPUT PARAMETERS: ; 3776 1 ! ; 3777 1 ! None. ; 3778 1 ! ; 3779 1 ! IMPLICIT OUTPUTS: ; 3780 1 ! ; 3781 1 ! None. ; 3782 1 ! ; 3783 1 ! COMPLETION CODES: ; 3784 1 ! ; 3785 1 ! None. ; 3786 1 ! ; 3787 1 ! SIDE EFFECTS: ; 3788 1 ! ; 3789 1 ! None. ; 3790 1 ! ; 3791 1 !-- ; 3792 1 ; 3793 2 BEGIN ; 3794 2 TPARSE_ARGS; ; 3795 2 ECHO_FLAG = .AP [TPA$L_PARAM]; ; 3796 2 RETURN SS$_NORMAL; ; 3797 1 END; ! End of STORE_ECHO ;STORE_ECHO U.20: .WORD ^M<> ;Save nothing ; 3755 MOVL 32(AP), W^ECHO_FLAG ;32(AP), ECHO_FLAG ; 3795 MOVL #1, R0 ;#1, R0 ; 3796 RET ; ; 3797 ; Routine Size: 12 bytes, Routine Base: $CODE$ + 0EC7 ; 3798 1 %SBTTL 'TPARSE support -- STORE_MSG_FIL - Store file name typeout flag' ; 3799 1 ROUTINE STORE_MSG_FIL = ; 3800 1 ; 3801 1 !++ ; 3802 1 ! FUNCTIONAL DESCRIPTION: ; 3803 1 ! ; 3804 1 ! This routine will store the state of the file name typeout flag as the ; 3805 1 ! user set it. ; 3806 1 ! ; 3807 1 ! CALLING SEQUENCE: ; 3808 1 ! ; 3809 1 ! Standard TPARSE argument call. ; 3810 1 ! ; 3811 1 ! INPUT PARAMETERS: ; 3812 1 ! ; 3813 1 ! None. ; 3814 1 ! ; 3815 1 ! IMPLICIT INPUTS: ; 3816 1 ! ; 3817 1 ! None. ; 3818 1 ! ; 3819 1 ! OUTPUT PARAMETERS: ; 3820 1 ! ; 3821 1 ! None. ; 3822 1 ! ; 3823 1 ! IMPLICIT OUTPUTS: ; 3824 1 ! ; 3825 1 ! None. ; 3826 1 ! ; 3827 1 ! COMPLETION CODES: ; 3828 1 ! ; 3829 1 ! None. ; 3830 1 ! ; 3831 1 ! SIDE EFFECTS: ; 3832 1 ! ; 3833 1 ! None. ; 3834 1 ! ; 3835 1 !-- ; 3836 1 ; 3837 2 BEGIN ; 3838 2 TPARSE_ARGS; ; 3839 2 TY_FIL = .AP [TPA$L_PARAM]; ; 3840 2 RETURN SS$_NORMAL; ; 3841 1 END; ! End of STORE_MSG_FIL ;STORE_MSG_FIL U.25: .WORD ^M<> ;Save nothing ; 3799 MOVL 32(AP), W^TY_FIL ;32(AP), TY_FIL ; 3839 MOVL #1, R0 ;#1, R0 ; 3840 RET ; ; 3841 ; Routine Size: 12 bytes, Routine Base: $CODE$ + 0ED3 ; 3842 1 %SBTTL 'TPARSE support -- STORE_MSG_PKT - Store packet number typeout flag' ; 3843 1 ROUTINE STORE_MSG_PKT = ; 3844 1 ; 3845 1 !++ ; 3846 1 ! FUNCTIONAL DESCRIPTION: ; 3847 1 ! ; 3848 1 ! This routine will store the state of the packet number flag as the ; 3849 1 ! user set it. ; 3850 1 ! ; 3851 1 ! CALLING SEQUENCE: ; 3852 1 ! ; 3853 1 ! Standard TPARSE argument call. ; 3854 1 ! ; 3855 1 ! INPUT PARAMETERS: ; 3856 1 ! ; 3857 1 ! None. ; 3858 1 ! ; 3859 1 ! IMPLICIT INPUTS: ; 3860 1 ! ; 3861 1 ! None. ; 3862 1 ! ; 3863 1 ! OUTPUT PARAMETERS: ; 3864 1 ! ; 3865 1 ! None. ; 3866 1 ! ; 3867 1 ! IMPLICIT OUTPUTS: ; 3868 1 ! ; 3869 1 ! None. ; 3870 1 ! ; 3871 1 ! COMPLETION CODES: ; 3872 1 ! ; 3873 1 ! None. ; 3874 1 ! ; 3875 1 ! SIDE EFFECTS: ; 3876 1 ! ; 3877 1 ! None. ; 3878 1 ! ; 3879 1 !-- ; 3880 1 ; 3881 2 BEGIN ; 3882 2 TPARSE_ARGS; ; 3883 2 TY_PKT = .AP [TPA$L_PARAM]; ; 3884 2 RETURN SS$_NORMAL; ; 3885 1 END; ! End of STORE_MSG_PKT ;STORE_MSG_PKT U.26: .WORD ^M<> ;Save nothing ; 3843 MOVL 32(AP), W^TY_PKT ;32(AP), TY_PKT ; 3883 MOVL #1, R0 ;#1, R0 ; 3884 RET ; ; 3885 ; Routine Size: 12 bytes, Routine Base: $CODE$ + 0EDF ; 3886 1 %SBTTL 'TPARSE support -- CHECK_EOL' ; 3887 1 ROUTINE CHECK_EOL = ; 3888 1 ; 3889 1 !++ ; 3890 1 ! FUNCTIONAL DESCRIPTION: ; 3891 1 ! ; 3892 1 ! This routine will valid the SEND and RECEIVE eol character that ; 3893 1 ! is being set by the user. ; 3894 1 ! ; 3895 1 ! CALLING SEQUENCE: ; 3896 1 ! ; 3897 1 ! Standard TPARSE routine calling sequence. ; 3898 1 ! ; 3899 1 ! INPUT PARAMETERS: ; 3900 1 ! ; 3901 1 ! None. ; 3902 1 ! ; 3903 1 ! IMPLICIT INPUTS: ; 3904 1 ! ; 3905 1 ! None. ; 3906 1 ! ; 3907 1 ! OUTPUT PARAMETERS: ; 3908 1 ! ; 3909 1 ! None. ; 3910 1 ! ; 3911 1 ! IMPLICIT OUTPUTS: ; 3912 1 ! ; 3913 1 ! None. ; 3914 1 ! ; 3915 1 ! COMPLETION CODES: ; 3916 1 ! ; 3917 1 ! None. ; 3918 1 ! ; 3919 1 ! SIDE EFFECTS: ; 3920 1 ! ; 3921 1 ! None. ; 3922 1 ! ; 3923 1 !-- ; 3924 1 ; 3925 2 BEGIN ; 3926 2 TPARSE_ARGS; ; 3927 2 ; 3928 3 IF (.AP [TPA$L_NUMBER] LSS %C' ') AND (.AP [TPA$L_NUMBER] GTR 0) ; 3929 2 THEN ; 3930 2 RETURN SS$_NORMAL ; 3931 2 ELSE ; 3932 2 RETURN KER_ILLEOL; ; 3933 2 ; 3934 1 END; ! End of CHECK_EOL ;CHECK_EOL U.30: .WORD ^M<> ;Save nothing ; 3887 CMPL 28(AP), #32 ;28(AP), #32 ; 3928 BGEQ 1$ ;1$ ; TSTL 28(AP) ;28(AP) ; BLEQ 1$ ;1$ ; MOVL #1, R0 ;#1, R0 ; 3932 RET ; ; 1$: MOVL #134316066, R0 ;#134316066, R0 ; RET ; ; 3934 ; Routine Size: 25 bytes, Routine Base: $CODE$ + 0EEB ; 3935 1 %SBTTL 'TPARSE support -- CHECK_QUOTE' ; 3936 1 ROUTINE CHECK_QUOTE = ; 3937 1 ; 3938 1 !++ ; 3939 1 ! FUNCTIONAL DESCRIPTION: ; 3940 1 ! ; 3941 1 ! This routine will validate the SEND and RECEIVE quoting character that ; 3942 1 ! is being set by the user. ; 3943 1 ! ; 3944 1 ! CALLING SEQUENCE: ; 3945 1 ! ; 3946 1 ! Standard TPARSE routine calling sequence. ; 3947 1 ! ; 3948 1 ! INPUT PARAMETERS: ; 3949 1 ! ; 3950 1 ! None. ; 3951 1 ! ; 3952 1 ! IMPLICIT INPUTS: ; 3953 1 ! ; 3954 1 ! None. ; 3955 1 ! ; 3956 1 ! OUTPUT PARAMETERS: ; 3957 1 ! ; 3958 1 ! None. ; 3959 1 ! ; 3960 1 ! IMPLICIT OUTPUTS: ; 3961 1 ! ; 3962 1 ! None. ; 3963 1 ! ; 3964 1 ! COMPLETION CODES: ; 3965 1 ! ; 3966 1 ! Error code or true value ; 3967 1 ! ; 3968 1 ! SIDE EFFECTS: ; 3969 1 ! ; 3970 1 ! None. ; 3971 1 ! ; 3972 1 !-- ; 3973 1 ; 3974 2 BEGIN ; 3975 2 TPARSE_ARGS; ; 3976 2 ; 3977 3 IF (.AP [TPA$L_NUMBER] GEQ %C' ' AND .AP [TPA$L_NUMBER] LSS %C'?') OR (.AP [TPA$L_NUMBER] GEQ %C'`' AND ; 3978 3 .AP [TPA$L_NUMBER] LSS CHR_DEL) ; 3979 2 THEN ; 3980 2 RETURN SS$_NORMAL ; 3981 2 ELSE ; 3982 2 RETURN KER_ILLQUO; ; 3983 2 ; 3984 1 END; ! End of CHECK_QUO ;CHECK_QUOTE U.31: .WORD ^M<> ;Save nothing ; 3936 CMPL 28(AP), #32 ;28(AP), #32 ; 3977 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 ; 3978 BGEQ 3$ ;3$ ; 2$: MOVL #1, R0 ;#1, R0 ; 3982 RET ; ; 3$: MOVL #134316114, R0 ;#134316114, R0 ; RET ; ; 3984 ; Routine Size: 46 bytes, Routine Base: $CODE$ + 0F04 ; 3985 1 %SBTTL 'TPARSE support -- CHECK_SOH' ; 3986 1 ROUTINE CHECK_SOH = ; 3987 1 ; 3988 1 !++ ; 3989 1 ! FUNCTIONAL DESCRIPTION: ; 3990 1 ! ; 3991 1 ! This routine will valid the SEND and RECEIVE START_OF_PACKET ; 3992 1 ! character that is being set by the user. ; 3993 1 ! ; 3994 1 ! CALLING SEQUENCE: ; 3995 1 ! ; 3996 1 ! Standard TPARSE routine calling sequence. ; 3997 1 ! ; 3998 1 ! INPUT PARAMETERS: ; 3999 1 ! ; 4000 1 ! None. ; 4001 1 ! ; 4002 1 ! IMPLICIT INPUTS: ; 4003 1 ! ; 4004 1 ! None. ; 4005 1 ! ; 4006 1 ! OUTPUT PARAMETERS: ; 4007 1 ! ; 4008 1 ! None. ; 4009 1 ! ; 4010 1 ! IMPLICIT OUTPUTS: ; 4011 1 ! ; 4012 1 ! None. ; 4013 1 ! ; 4014 1 ! COMPLETION CODES: ; 4015 1 ! ; 4016 1 ! None. ; 4017 1 ! ; 4018 1 ! SIDE EFFECTS: ; 4019 1 ! ; 4020 1 ! None. ; 4021 1 ! ; 4022 1 !-- ; 4023 1 ; 4024 2 BEGIN ; 4025 2 TPARSE_ARGS; ; 4026 2 ; 4027 3 IF (.AP [TPA$L_NUMBER] LSS %C' ') AND (.AP [TPA$L_NUMBER] GTR 0) ; 4028 2 THEN ; 4029 2 RETURN SS$_NORMAL ; 4030 2 ELSE ; 4031 2 RETURN KER_ILLSOH; ; 4032 2 ; 4033 1 END; ! End of CHECK_SOH ;CHECK_SOH U.32: .WORD ^M<> ;Save nothing ; 3986 CMPL 28(AP), #32 ;28(AP), #32 ; 4027 BGEQ 1$ ;1$ ; TSTL 28(AP) ;28(AP) ; BLEQ 1$ ;1$ ; MOVL #1, R0 ;#1, R0 ; 4031 RET ; ; 1$: MOVL #134316106, R0 ;#134316106, R0 ; RET ; ; 4033 ; Routine Size: 25 bytes, Routine Base: $CODE$ + 0F32 ; 4034 1 %SBTTL 'TPARSE support -- CHECK_PAD_CHAR' ; 4035 1 ROUTINE CHECK_PAD_CHAR = ; 4036 1 ; 4037 1 !++ ; 4038 1 ! FUNCTIONAL DESCRIPTION: ; 4039 1 ! ; 4040 1 ! This routine will valid the SEND and RECEIVE eol character that ; 4041 1 ! is being set by the user. ; 4042 1 ! ; 4043 1 ! CALLING SEQUENCE: ; 4044 1 ! ; 4045 1 ! Standard TPARSE routine calling sequence. ; 4046 1 ! ; 4047 1 ! INPUT PARAMETERS: ; 4048 1 ! ; 4049 1 ! None. ; 4050 1 ! ; 4051 1 ! IMPLICIT INPUTS: ; 4052 1 ! ; 4053 1 ! None. ; 4054 1 ! ; 4055 1 ! OUTPUT PARAMETERS: ; 4056 1 ! ; 4057 1 ! None. ; 4058 1 ! ; 4059 1 ! IMPLICIT OUTPUTS: ; 4060 1 ! ; 4061 1 ! None. ; 4062 1 ! ; 4063 1 ! COMPLETION CODES: ; 4064 1 ! ; 4065 1 ! None. ; 4066 1 ! ; 4067 1 ! SIDE EFFECTS: ; 4068 1 ! ; 4069 1 ! None. ; 4070 1 ! ; 4071 1 !-- ; 4072 1 ; 4073 2 BEGIN ; 4074 2 TPARSE_ARGS; ; 4075 2 ; 4076 2 IF .AP [TPA$L_NUMBER] LSS %C' ' OR .AP [TPA$L_NUMBER] EQL CHR_DEL ; 4077 2 THEN ; 4078 2 RETURN SS$_NORMAL ; 4079 2 ELSE ; 4080 2 RETURN KER_ILLPADCHR; ; 4081 2 ; 4082 1 END; ! End of CHECK_PAD_CHAR ;CHECK_PAD_CHAR U.29: .WORD ^M<> ;Save nothing ; 4035 CMPL 28(AP), #32 ;28(AP), #32 ; 4076 BLSS 1$ ;1$ ; CMPL 28(AP), #127 ;28(AP), #127 ; BNEQ 2$ ;2$ ; 1$: MOVL #1, R0 ;#1, R0 ; 4080 RET ; ; 2$: MOVL #134316082, R0 ;#134316082, R0 ; RET ; ; 4082 ; Routine Size: 30 bytes, Routine Base: $CODE$ + 0F4B ; 4083 1 %SBTTL 'TPARSE support -- CHECK_NPAD' ; 4084 1 ROUTINE CHECK_NPAD = ; 4085 1 ; 4086 1 !++ ; 4087 1 ! FUNCTIONAL DESCRIPTION: ; 4088 1 ! ; 4089 1 ! This routine will determine if the packet length specified by the ; 4090 1 ! user is valid. ; 4091 1 ! ; 4092 1 ! CALLING SEQUENCE: ; 4093 1 ! ; 4094 1 ! Standard TPARSE calling sequence. ; 4095 1 ! ; 4096 1 ! INPUT PARAMETERS: ; 4097 1 ! ; 4098 1 ! None. ; 4099 1 ! ; 4100 1 ! IMPLICIT INPUTS: ; 4101 1 ! ; 4102 1 ! None. ; 4103 1 ! ; 4104 1 ! OUTPUT PARAMETERS: ; 4105 1 ! ; 4106 1 ! None. ; 4107 1 ! ; 4108 1 ! IMPLICIT OUTPUTS: ; 4109 1 ! ; 4110 1 ! None. ; 4111 1 ! ; 4112 1 ! COMPLETION CODES: ; 4113 1 ! ; 4114 1 ! None. ; 4115 1 ! ; 4116 1 ! SIDE EFFECTS: ; 4117 1 ! ; 4118 1 ! None. ; 4119 1 ! ; 4120 1 !-- ; 4121 1 ; 4122 2 BEGIN ; 4123 2 TPARSE_ARGS; ; 4124 2 ; 4125 2 IF .AP [TPA$L_NUMBER] LEQ 0 THEN RETURN KER_ILLNPAD ELSE RETURN SS$_NORMAL; ; 4126 2 ; 4127 1 END; ! End of CHECK_NPAD ;CHECK_NPAD U.28: .WORD ^M<> ;Save nothing ; 4084 TSTL 28(AP) ;28(AP) ; 4125 BGTR 1$ ;1$ ; MOVL #134316090, R0 ;#134316090, R0 ; RET ; ; 1$: MOVL #1, R0 ;#1, R0 ; RET ; ; 4127 ; Routine Size: 19 bytes, Routine Base: $CODE$ + 0F69 ; 4128 1 %SBTTL 'TPARSE support -- CHECK_PACKET_LEN' ; 4129 1 ROUTINE CHECK_PACKET_LEN = ; 4130 1 ; 4131 1 !++ ; 4132 1 ! FUNCTIONAL DESCRIPTION: ; 4133 1 ! ; 4134 1 ! This routine will determine if the packet length specified by the ; 4135 1 ! user is valid. ; 4136 1 ! ; 4137 1 ! CALLING SEQUENCE: ; 4138 1 ! ; 4139 1 ! Standard TPARSE calling sequence. ; 4140 1 ! ; 4141 1 ! INPUT PARAMETERS: ; 4142 1 ! ; 4143 1 ! None. ; 4144 1 ! ; 4145 1 ! IMPLICIT INPUTS: ; 4146 1 ! ; 4147 1 ! None. ; 4148 1 ! ; 4149 1 ! OUTPUT PARAMETERS: ; 4150 1 ! ; 4151 1 ! None. ; 4152 1 ! ; 4153 1 ! IMPLICIT OUTPUTS: ; 4154 1 ! ; 4155 1 ! None. ; 4156 1 ! ; 4157 1 ! COMPLETION CODES: ; 4158 1 ! ; 4159 1 ! None. ; 4160 1 ! ; 4161 1 ! SIDE EFFECTS: ; 4162 1 ! ; 4163 1 ! None. ; 4164 1 ! ; 4165 1 !-- ; 4166 1 ; 4167 2 BEGIN ; 4168 2 TPARSE_ARGS; ; 4169 2 ; 4170 2 IF .AP [TPA$L_NUMBER] LSS 10 OR .AP [TPA$L_NUMBER] GTR MAX_MSG ; 4171 2 THEN ; 4172 2 RETURN KER_ILLPKTLEN ; 4173 2 ELSE ; 4174 2 RETURN SS$_NORMAL; ; 4175 2 ; 4176 1 END; ! End of CHECK_PACKET_LEN ;CHECK_PACKET_LEN U.27: .WORD ^M<> ;Save nothing ; 4129 CMPL 28(AP), #10 ;28(AP), #10 ; 4170 BLSS 1$ ;1$ ; CMPL 28(AP), #100 ;28(AP), #100 ; BLEQ 2$ ;2$ ; 1$: MOVL #134316074, R0 ;#134316074, R0 ; 4174 RET ; ; 2$: MOVL #1, R0 ;#1, R0 ; RET ; ; 4176 ; Routine Size: 30 bytes, Routine Base: $CODE$ + 0F7C ; 4177 1 %SBTTL 'STORE_TEXT' ; 4178 1 ROUTINE STORE_TEXT = ; 4179 1 ; 4180 1 !++ ; 4181 1 ! FUNCTIONAL DESCRIPTION: ; 4182 1 ! ; 4183 1 ! This routine will store a single character of the file specification ; 4184 1 ! that the user gives to the SEND and RECEIVE commands. ; 4185 1 ! ; 4186 1 ! FORMAL PARAMETERS: ; 4187 1 ! ; 4188 1 ! Character that was parsed. ; 4189 1 ! ; 4190 1 ! IMPLICIT INPUTS: ; 4191 1 ! ; 4192 1 ! None. ; 4193 1 ! ; 4194 1 ! IMPLICIT OUTPUTS: ; 4195 1 ! ; 4196 1 ! Character stored into the file specification vector. ; 4197 1 ! ; 4198 1 ! ROUTINE VALUE and ; 4199 1 ! COMPLETION CODES: ; 4200 1 ! ; 4201 1 ! None. ; 4202 1 ! ; 4203 1 ! SIDE EFFECTS: ; 4204 1 ! ; 4205 1 ! None. ; 4206 1 ! ; 4207 1 !-- ; 4208 1 ; 4209 2 BEGIN ; 4210 2 TPARSE_ARGS; ; 4211 2 ; 4212 2 IF (TEMP_DESC [DSC$W_LENGTH] = .TEMP_DESC [DSC$W_LENGTH] + 1) LSS TEMP_LENGTH ; 4213 2 THEN ; 4214 3 BEGIN ; 4215 3 CH$WCHAR (.AP [TPA$B_CHAR], CH$PTR (TEMP_NAME, .TEMP_DESC [DSC$W_LENGTH] - 1)); ; 4216 3 AP [TPA$V_BLANKS] = 1; ! Blanks are significant ; 4217 3 RETURN SS$_NORMAL; ; 4218 3 END ; 4219 2 ELSE ; 4220 2 RETURN KER_LINTOOLNG; ; 4221 2 ; 4222 1 END; ! End of STORE_TEXT ;STORE_TEXT U.12: .WORD ^M ;Save R2 ; 4178 MOVAB W^U.59, R2 ;U.59, R2 ; MOVZWL (R2), R0 ;TEMP_DESC, R0 ; 4212 INCL R0 ;R0 ; MOVW R0, (R2) ;R0, TEMP_DESC ; CMPL R0, #132 ;R0, #132 ; BGEQ 1$ ;1$ ; MOVZWL (R2), R0 ;TEMP_DESC, R0 ; 4215 MOVB 24(AP), 7(R2)[R0] ;24(AP), TEMP_NAME-1[R0] ; BISB2 #1, 4(AP) ;#1, 4(AP) ; 4216 MOVL #1, R0 ;#1, R0 ; 4220 RET ; ; 1$: MOVL #134316098, R0 ;#134316098, R0 ; RET ; ; 4222 ; Routine Size: 49 bytes, Routine Base: $CODE$ + 0F9A ; 4223 1 %SBTTL 'TPARSE support -- COPY_DESC - Copy string to a descriptor' ; 4224 1 ROUTINE COPY_DESC = ; 4225 1 ; 4226 1 !++ ; 4227 1 ! FUNCTIONAL DESCRIPTION: ; 4228 1 ! ; 4229 1 ! This routine will copy a string to the descriptor passed in the TPARSE ; 4230 1 ! argument. ; 4231 1 ! ; 4232 1 ! CALLING SEQUENCE: ; 4233 1 ! ; 4234 1 ! COPY_FILE(); ; 4235 1 ! ; 4236 1 ! INPUT PARAMETERS: ; 4237 1 ! ; 4238 1 ! None. ; 4239 1 ! ; 4240 1 ! IMPLICIT INPUTS: ; 4241 1 ! ; 4242 1 ! TEMP_DESC and TEMP_NAME set up with the device name and length ; 4243 1 ! in the descriptor. ; 4244 1 ! ; 4245 1 ! OUTPUT PARAMETERS: ; 4246 1 ! ; 4247 1 ! None. ; 4248 1 ! ; 4249 1 ! IMPLICIT OUTPUTS: ; 4250 1 ! ; 4251 1 ! Descriptor fields set up. ; 4252 1 ! TEMP_DESC. ; 4253 1 ! ; 4254 1 ! COMPLETION CODES: ; 4255 1 ! ; 4256 1 ! 0 - Failure. ; 4257 1 ! 1 - Success. ; 4258 1 ! ; 4259 1 ! SIDE EFFECTS: ; 4260 1 ! ; 4261 1 ! None. ; 4262 1 ! ; 4263 1 !-- ; 4264 1 ; 4265 2 BEGIN ; 4266 2 TPARSE_ARGS; ; 4267 2 ; 4268 2 LOCAL ; 4269 2 DESC_ADDR; ; 4270 2 ; 4271 2 DESC_ADDR = .AP [TPA$L_PARAM]; ; 4272 3 BEGIN ; 4273 3 ; 4274 3 MAP ; 4275 3 DESC_ADDR : REF BLOCK [8, BYTE]; ; 4276 3 ; 4277 3 DESC_ADDR [DSC$W_LENGTH] = .TEMP_DESC [DSC$W_LENGTH]; ; 4278 3 CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1, ; 4279 3 CH$PTR (.DESC_ADDR [DSC$A_POINTER])); ; 4280 2 END; ; 4281 2 RETURN SS$_NORMAL; ; 4282 1 END; ! End of COPY_FILE ;COPY_DESC U.14: .WORD ^M ;Save R2,R3,R4,R5 ; 4224 MOVL 32(AP), R0 ;32(AP), DESC_ADDR ; 4271 MOVZWL W^U.59, R2 ;U.59, R2 ; 4277 MOVW R2, (R0) ;R2, (DESC_ADDR) ; MOVAB 1(R2), R1 ;1(R2), R1 ; 4278 MOVC5 R2, W^U.60, #0, R1, @4(R0) ;R2, U.60, #0, R1, @4(DESC_ADDR) ; 4279 MOVL #1, R0 ;#1, R0 ; 4281 RET ; ; 4282 ; Routine Size: 31 bytes, Routine Base: $CODE$ + 0FCB ; 4283 1 %SBTTL 'TPARSE support -- COPY_ALT_FILE - Copy file specification' ; 4284 1 ROUTINE COPY_ALT_FILE = ; 4285 1 ; 4286 1 !++ ; 4287 1 ! FUNCTIONAL DESCRIPTION: ; 4288 1 ! ; 4289 1 ! This routine will copy the file name from the temporary ; 4290 1 ! descriptor to the descriptor that is used for the file name. ; 4291 1 ! (ALT_FILE_NAME). ; 4292 1 ! This is for use by the RECEIVE command so that the user may ; 4293 1 ! specify an alternate file name for the received file. ; 4294 1 ! ; 4295 1 ! CALLING SEQUENCE: ; 4296 1 ! ; 4297 1 ! COPY_ALT_FILE(); ; 4298 1 ! ; 4299 1 ! INPUT PARAMETERS: ; 4300 1 ! ; 4301 1 ! None. ; 4302 1 ! ; 4303 1 ! IMPLICIT INPUTS: ; 4304 1 ! ; 4305 1 ! TEMP_DESC and TEMP_NAME set up with the device name and length ; 4306 1 ! in the descriptor. ; 4307 1 ! ; 4308 1 ! OUTPUT PARAMETERS: ; 4309 1 ! ; 4310 1 ! None. ; 4311 1 ! ; 4312 1 ! IMPLICIT OUTPUTS: ; 4313 1 ! ; 4314 1 ! ALT_FILE_NAME set up with what was in TEMP_NAME and ; 4315 1 ! TEMP_DESC. ; 4316 1 ! ; 4317 1 ! COMPLETION CODES: ; 4318 1 ! ; 4319 1 ! 0 - Failure. ; 4320 1 ! 1 - Success. ; 4321 1 ! ; 4322 1 ! SIDE EFFECTS: ; 4323 1 ! ; 4324 1 ! None. ; 4325 1 ! ; 4326 1 !-- ; 4327 1 ; 4328 2 BEGIN ; 4329 2 ALT_FILE_SIZE = .TEMP_DESC [DSC$W_LENGTH]; ; 4330 2 CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1, ; 4331 2 CH$PTR (ALT_FILE_NAME)); ; 4332 2 RETURN SS$_NORMAL; ; 4333 1 END; ! End of COPY_ALT_FILE ;COPY_ALT_FILE U.15: .WORD ^M ;Save R2,R3,R4,R5 ; 4284 MOVZWL W^U.59, R1 ;U.59, R1 ; 4329 MOVL R1, W^ALT_FILE_SIZE ;R1, ALT_FILE_SIZE ; MOVAB 1(R1), R0 ;1(R1), R0 ; 4330 MOVC5 R1, W^U.60, #0, R0, W^ALT_FILE_NAME ;R1, U.60, #0, R0, ALT_FILE_NAME ; 4331 MOVL #1, R0 ;#1, R0 ; 4332 RET ; ; 4333 ; Routine Size: 30 bytes, Routine Base: $CODE$ + 0FEA ; 4334 1 %SBTTL 'TPARSE support -- COPY_GEN_1DATA - Copy generic command argument' ; 4335 1 ROUTINE COPY_GEN_1DATA = ; 4336 1 ; 4337 1 !++ ; 4338 1 ! FUNCTIONAL DESCRIPTION: ; 4339 1 ! ; 4340 1 ! This routine will copy the generic command argument from the ; 4341 1 ! temporary descriptor to the global storage for the argument ; 4342 1 ! (GEN_1DATA). ; 4343 1 ! ; 4344 1 ! CALLING SEQUENCE: ; 4345 1 ! ; 4346 1 ! COPY_GEN_1DATA(); ; 4347 1 ! ; 4348 1 ! INPUT PARAMETERS: ; 4349 1 ! ; 4350 1 ! None. ; 4351 1 ! ; 4352 1 ! IMPLICIT INPUTS: ; 4353 1 ! ; 4354 1 ! TEMP_DESC and TEMP_NAME set up with the device name and length ; 4355 1 ! in the descriptor. ; 4356 1 ! ; 4357 1 ! OUTPUT PARAMETERS: ; 4358 1 ! ; 4359 1 ! None. ; 4360 1 ! ; 4361 1 ! IMPLICIT OUTPUTS: ; 4362 1 ! ; 4363 1 ! GEN_1DATA and GEN_1SIZE set up with what was in TEMP_NAME and ; 4364 1 ! TEMP_DESC. ; 4365 1 ! ; 4366 1 ! COMPLETION CODES: ; 4367 1 ! ; 4368 1 ! 0 - Failure. ; 4369 1 ! 1 - Success. ; 4370 1 ! ; 4371 1 ! SIDE EFFECTS: ; 4372 1 ! ; 4373 1 ! None. ; 4374 1 ! ; 4375 1 !-- ; 4376 1 ; 4377 2 BEGIN ; 4378 2 GEN_1SIZE = .TEMP_DESC [DSC$W_LENGTH]; ; 4379 2 CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1, ; 4380 2 CH$PTR (GEN_1DATA)); ; 4381 2 RETURN SS$_NORMAL; ; 4382 1 END; ! End of COPY_GEN_1DATA ;COPY_GEN_1DATA U.16: .WORD ^M ;Save R2,R3,R4,R5 ; 4335 MOVZWL W^U.59, R1 ;U.59, R1 ; 4378 MOVL R1, W^GEN_1SIZE ;R1, GEN_1SIZE ; MOVAB 1(R1), R0 ;1(R1), R0 ; 4379 MOVC5 R1, W^U.60, #0, R0, W^GEN_1DATA ;R1, U.60, #0, R0, GEN_1DATA ; 4380 MOVL #1, R0 ;#1, R0 ; 4381 RET ; ; 4382 ; Routine Size: 30 bytes, Routine Base: $CODE$ + 1008 ; 4383 1 %SBTTL 'TPARSE support -- COPY_GEN_2DATA - Copy generic command argument' ; 4384 1 ROUTINE COPY_GEN_2DATA = ; 4385 1 ; 4386 1 !++ ; 4387 1 ! FUNCTIONAL DESCRIPTION: ; 4388 1 ! ; 4389 1 ! This routine will copy the generic command argument from the ; 4390 1 ! temporary descriptor to the global storage for the argument ; 4391 1 ! (GEN_2DATA). ; 4392 1 ! ; 4393 1 ! CALLING SEQUENCE: ; 4394 1 ! ; 4395 1 ! COPY_GEN_2DATA(); ; 4396 1 ! ; 4397 1 ! INPUT PARAMETERS: ; 4398 1 ! ; 4399 1 ! None. ; 4400 1 ! ; 4401 1 ! IMPLICIT INPUTS: ; 4402 1 ! ; 4403 1 ! TEMP_DESC and TEMP_NAME set up with the device name and length ; 4404 1 ! in the descriptor. ; 4405 1 ! ; 4406 1 ! OUTPUT PARAMETERS: ; 4407 1 ! ; 4408 1 ! None. ; 4409 1 ! ; 4410 1 ! IMPLICIT OUTPUTS: ; 4411 1 ! ; 4412 1 ! GEN_2DATA and GEN_2SIZE set up with what was in TEMP_NAME and ; 4413 1 ! TEMP_DESC. ; 4414 1 ! ; 4415 1 ! COMPLETION CODES: ; 4416 1 ! ; 4417 1 ! 0 - Failure. ; 4418 1 ! 1 - Success. ; 4419 1 ! ; 4420 1 ! SIDE EFFECTS: ; 4421 1 ! ; 4422 1 ! None. ; 4423 1 ! ; 4424 1 !-- ; 4425 1 ; 4426 2 BEGIN ; 4427 2 GEN_2SIZE = .TEMP_DESC [DSC$W_LENGTH]; ; 4428 2 CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1, ; 4429 2 CH$PTR (GEN_2DATA)); ; 4430 2 RETURN SS$_NORMAL; ; 4431 1 END; ! End of COPY_GEN_2DATA COPY_GEN_2DATA: .WORD ^M ;Save R2,R3,R4,R5 ; 4384 MOVZWL W^U.59, R1 ;U.59, R1 ; 4427 MOVL R1, W^GEN_2SIZE ;R1, GEN_2SIZE ; MOVAB 1(R1), R0 ;1(R1), R0 ; 4428 MOVC5 R1, W^U.60, #0, R0, W^GEN_2DATA ;R1, U.60, #0, R0, GEN_2DATA ; 4429 MOVL #1, R0 ;#1, R0 ; 4430 RET ; ; 4431 ; Routine Size: 30 bytes, Routine Base: $CODE$ + 1026 ; 4432 1 %SBTTL 'TPARSE support -- COPY_GEN_3DATA - Copy generic command argument' ; 4433 1 ROUTINE COPY_GEN_3DATA = ; 4434 1 ; 4435 1 !++ ; 4436 1 ! FUNCTIONAL DESCRIPTION: ; 4437 1 ! ; 4438 1 ! This routine will copy the generic command argument from the ; 4439 1 ! temporary descriptor to the global storage for the argument ; 4440 1 ! (GEN_3DATA). ; 4441 1 ! ; 4442 1 ! CALLING SEQUENCE: ; 4443 1 ! ; 4444 1 ! COPY_GEN_3DATA(); ; 4445 1 ! ; 4446 1 ! INPUT PARAMETERS: ; 4447 1 ! ; 4448 1 ! None. ; 4449 1 ! ; 4450 1 ! IMPLICIT INPUTS: ; 4451 1 ! ; 4452 1 ! TEMP_DESC and TEMP_NAME set up with the device name and length ; 4453 1 ! in the descriptor. ; 4454 1 ! ; 4455 1 ! OUTPUT PARAMETERS: ; 4456 1 ! ; 4457 1 ! None. ; 4458 1 ! ; 4459 1 ! IMPLICIT OUTPUTS: ; 4460 1 ! ; 4461 1 ! GEN_3DATA and GEN_3SIZE set up with what was in TEMP_NAME and ; 4462 1 ! TEMP_DESC. ; 4463 1 ! ; 4464 1 ! COMPLETION CODES: ; 4465 1 ! ; 4466 1 ! 0 - Failure. ; 4467 1 ! 1 - Success. ; 4468 1 ! ; 4469 1 ! SIDE EFFECTS: ; 4470 1 ! ; 4471 1 ! None. ; 4472 1 ! ; 4473 1 !-- ; 4474 1 ; 4475 2 BEGIN ; 4476 2 GEN_3SIZE = .TEMP_DESC [DSC$W_LENGTH]; ; 4477 2 CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1, ; 4478 2 CH$PTR (GEN_3DATA)); ; 4479 2 RETURN SS$_NORMAL; ; 4480 1 END; ! End of COPY_GEN_3DATA COPY_GEN_3DATA: .WORD ^M ;Save R2,R3,R4,R5 ; 4433 MOVZWL W^U.59, R1 ;U.59, R1 ; 4476 MOVL R1, W^GEN_3SIZE ;R1, GEN_3SIZE ; MOVAB 1(R1), R0 ;1(R1), R0 ; 4477 MOVC5 R1, W^U.60, #0, R0, W^GEN_3DATA ;R1, U.60, #0, R0, GEN_3DATA ; 4478 MOVL #1, R0 ;#1, R0 ; 4479 RET ; ; 4480 ; Routine Size: 30 bytes, Routine Base: $CODE$ + 1044 ; 4481 1 %SBTTL 'COPY_TERM_NAME' ; 4482 1 ROUTINE COPY_TERM_NAME = ; 4483 1 ; 4484 1 !++ ; 4485 1 ! FUNCTIONAL DESCRIPTION: ; 4486 1 ! ; 4487 1 ! This routine will copy the device name from the temporary ; 4488 1 ! descriptor to the descriptor that is used for the terminal name. ; 4489 1 ! (TERM_NAME and TERM_DESC). ; 4490 1 ! It will call KERTRM to validate the name as a usuable terminal. ; 4491 1 ! ; 4492 1 ! CALLING SEQUENCE: ; 4493 1 ! ; 4494 1 ! COPY_TERM_NAME(); ; 4495 1 ! ; 4496 1 ! INPUT PARAMETERS: ; 4497 1 ! ; 4498 1 ! None. ; 4499 1 ! ; 4500 1 ! IMPLICIT INPUTS: ; 4501 1 ! ; 4502 1 ! TEMP_DESC and TEMP_NAME set up with the device name and length ; 4503 1 ! in the descriptor. ; 4504 1 ! ; 4505 1 ! OUTPUT PARAMETERS: ; 4506 1 ! ; 4507 1 ! None. ; 4508 1 ! ; 4509 1 ! IMPLICIT OUTPUTS: ; 4510 1 ! ; 4511 1 ! TERM_NAME and TERM_DESC set up with what was in TEMP_NAME and ; 4512 1 ! TEMP_DESC. ; 4513 1 ! ; 4514 1 ! COMPLETION CODES: ; 4515 1 ! ; 4516 1 ! 0 - Failure. ; 4517 1 ! 1 - Success. ; 4518 1 ! ; 4519 1 ! SIDE EFFECTS: ; 4520 1 ! ; 4521 1 ! None. ; 4522 1 ! ; 4523 1 !-- ; 4524 1 ; 4525 2 BEGIN ; 4526 2 ; 4527 2 EXTERNAL ; 4528 2 JOB_TERM_DESC : BLOCK [8, BYTE]; ! Descriptor for jobs contolling terminal ; 4529 2 ; 4530 2 IF NOT CH$FAIL (CH$FIND_NOT_CH (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (.TEMP_DESC [DSC$A_POINTER]), %C' ')) ; 4531 2 THEN ; 4532 2 RETURN SET_TRANS_TERM (TEMP_DESC) ; 4533 2 ELSE ; 4534 2 ; 4535 2 IF NOT SET_TRANS_TERM (%ASCID'KER$COMM') ; 4536 2 THEN ; 4537 2 ; 4538 2 IF NOT SET_TRANS_TERM (%ASCID'SYS$INPUT') ; 4539 2 THEN ; 4540 2 ; 4541 2 IF NOT SET_TRANS_TERM (%ASCID'SYS$OUTPUT') ; 4542 2 THEN ; 4543 2 ; 4544 2 IF NOT SET_TRANS_TERM (%ASCID'SYS$COMMAND') THEN RETURN SET_TRANS_TERM (JOB_TERM_DESC); ; 4545 2 ; 4546 2 RETURN SS$_NORMAL; ; 4547 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 ;Save R2 ; 4482 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 ; 4530 BNEQ 1$ ;1$ ; CLRL R1 ;R1 ; 1$: TSTL R1 ;R1 ; BEQL 2$ ;2$ ; PUSHAB W^U.59 ;U.59 ; 4532 BRB 3$ ;3$ ; 2$: PUSHAB W^P.AFX ;P.AFX ; 4535 CALLS #1, (R2) ;#1, SET_TRANS_TERM ; BLBS R0, 4$ ;R0, 4$ ; PUSHAB W^P.AFZ ;P.AFZ ; 4538 CALLS #1, (R2) ;#1, SET_TRANS_TERM ; BLBS R0, 4$ ;R0, 4$ ; PUSHAB W^P.AGB ;P.AGB ; 4541 CALLS #1, (R2) ;#1, SET_TRANS_TERM ; BLBS R0, 4$ ;R0, 4$ ; PUSHAB W^P.AGD ;P.AGD ; 4544 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 ; 4546 RET ; ; 4547 ; Routine Size: 81 bytes, Routine Base: $CODE$ + 1062 ; 4548 1 %SBTTL 'KEY_ERROR - Handle keyword errors' ; 4549 1 ROUTINE KEY_ERROR = ; 4550 1 ; 4551 1 !++ ; 4552 1 ! FUNCTIONAL DESCRIPTION: ; 4553 1 ! ; 4554 1 ! This routine is called from the command parser (LIB$TPARSE) when a keyword ; 4555 1 ! does not match. It will just return the correct error code. ; 4556 1 ! ; 4557 1 ! CALLING SEQUENCE: ; 4558 1 ! ; 4559 1 ! STATUS = KEY_ERROR (); ; 4560 1 ! ; 4561 1 ! INPUT PARAMETERS: ; 4562 1 ! ; 4563 1 ! None. ; 4564 1 ! ; 4565 1 ! IMPLICIT INPUTS: ; 4566 1 ! ; 4567 1 ! None. ; 4568 1 ! ; 4569 1 ! OUPTUT PARAMETERS: ; 4570 1 ! ; 4571 1 ! None. ; 4572 1 ! ; 4573 1 ! IMPLICIT OUTPUTS: ; 4574 1 ! ; 4575 1 ! None. ; 4576 1 ! ; 4577 1 ! COMPLETION CODES: ; 4578 1 ! ; 4579 1 ! None. ; 4580 1 ! ; 4581 1 ! SIDE EFFECTS: ; 4582 1 ! ; 4583 1 ! None. ; 4584 1 ! ; 4585 1 !-- ; 4586 1 ; 4587 2 BEGIN ; 4588 2 TPARSE_ARGS; ; 4589 2 ; 4590 2 IF .AP [TPA$V_AMBIG] THEN RETURN KER_AMBIGKEY ELSE RETURN KER_UNKNOWKEY; ; 4591 2 ; 4592 1 END; ! End of KEY_ERROR ;KEY_ERROR U.33: .WORD ^M<> ;Save nothing ; 4549 BLBC 6(AP), 1$ ;6(AP), 1$ ; 4590 MOVL #134316282, R0 ;#134316282, R0 ; RET ; ; 1$: MOVL #134316290, R0 ;#134316290, R0 ; RET ; ; 4592 ; Routine Size: 22 bytes, Routine Base: $CODE$ + 10B3 ; 4593 1 %SBTTL 'XFR_STATUS - Return the transfer status' ; 4594 1 ; 4595 1 GLOBAL ROUTINE XFR_STATUS (TYPE, SUB_TYPE) : NOVALUE = ; 4596 1 ; 4597 1 !++ ; 4598 1 ! FUNCTIONAL DESCRIPTION: ; 4599 1 ! ; 4600 1 ! This routine is called after either a packet has been received ; 4601 1 ! correctly at the receive level, a packet has been sent, or ; 4602 1 ! either a NAK has been sent or received. ; 4603 1 ! ; 4604 1 ! CALLING SEQUENCE: ; 4605 1 ! ; 4606 1 ! XFR_STATUS (Type); ; 4607 1 ! ; 4608 1 ! INPUT PARAMETERS: ; 4609 1 ! ; 4610 1 ! Type - ASCII Characters describing the type of transfer ; 4611 1 ! ; 4612 1 ! IMPLICIT INPUTS: ; 4613 1 ! ; 4614 1 ! None. ; 4615 1 ! ; 4616 1 ! OUPTUT PARAMETERS: ; 4617 1 ! ; 4618 1 ! None. ; 4619 1 ! ; 4620 1 ! IMPLICIT OUTPUTS: ; 4621 1 ! ; 4622 1 ! None. ; 4623 1 ! ; 4624 1 ! COMPLETION CODES: ; 4625 1 ! ; 4626 1 ! None. ; 4627 1 ! ; 4628 1 ! SIDE EFFECTS: ; 4629 1 ! ; 4630 1 ! None. ; 4631 1 ! ; 4632 1 !-- ; 4633 1 ; 4634 2 BEGIN ; 4635 2 ; 4636 2 EXTERNAL ROUTINE ; 4637 2 LOG_FAOL; ; 4638 2 ; 4639 2 ! ; 4640 2 ! If we have a journal file (transaction log), then say what we are doing. ; 4641 2 ! ; 4642 2 ; 4643 2 IF .TRANSACTION_OPEN AND .TYPE EQL %C'F' ; 4644 2 THEN ; 4645 3 BEGIN ; 4646 3 FILE_DESC [DSC$W_LENGTH] = .FILE_SIZE; ! Make sure size is right ; 4647 3 ; 4648 3 SELECTONE .SUB_TYPE OF ; 4649 3 SET ; 4650 3 ; 4651 3 [%C'S'] : ; 4652 3 LOG_FAOL (%ASCID'!%T!_Sending file !AS!/', UPLIT (0, FILE_DESC), TRANSACTION_RAB); ; 4653 3 ; 4654 3 [%C'R'] : ; 4655 3 LOG_FAOL (%ASCID'!%T!_Receiving file !AS!/', UPLIT (0, FILE_DESC), TRANSACTION_RAB); ; 4656 3 ; 4657 3 [%C'C'] : ; 4658 3 LOG_FAOL (%ASCID'!%T!_Closing file !AS!/', UPLIT (0, FILE_DESC), TRANSACTION_RAB); ; 4659 3 ; 4660 3 [%C'X'] : ; 4661 3 LOG_FAOL (%ASCID'!%T!_Aborting file !AS by user request!/', UPLIT (0, FILE_DESC), ; 4662 3 TRANSACTION_RAB); ; 4663 3 ; 4664 3 [%C'Z'] : ; 4665 3 LOG_FAOL (%ASCID'!%T!_Aborting file group !AS by user request!/', UPLIT (0, FILE_DESC), ; 4666 3 TRANSACTION_RAB); ; 4667 3 ; 4668 3 [%C'D'] : ; 4669 3 LOG_FAOL (%ASCID'!%T!_Aborting file !AS, partial file saved!/', UPLIT (0, FILE_DESC), ; 4670 3 TRANSACTION_RAB); ; 4671 3 ; 4672 3 [%C'A'] : ; 4673 3 LOG_FAOL (%ASCID'!%T!_Aborting file !AS due to protocol error!/', UPLIT (0, FILE_DESC), ; 4674 3 TRANSACTION_RAB); ; 4675 3 TES; ; 4676 3 ; 4677 2 END; ; 4678 2 ; 4679 2 IF .TY_PKT ; 4680 2 THEN ; 4681 3 BEGIN ; 4682 3 ; 4683 3 SELECTONE .TYPE OF ; 4684 3 SET ; 4685 3 ; 4686 3 [%ASCII'R'] : ; 4687 4 BEGIN ; 4688 4 ; 4689 4 IF .SUB_TYPE EQL %C'P' ; 4690 4 THEN ; 4691 5 BEGIN ; 4692 5 TT_TEXT (UPLIT (%ASCIZ' R')); ; 4693 5 TT_NUMBER (.RMSG_COUNT); ; 4694 4 END; ; 4695 4 ; 4696 4 IF .SUB_TYPE EQL %C'N' ; 4697 4 THEN ; 4698 5 BEGIN ; 4699 5 TT_TEXT (UPLIT (%ASCIZ' R%')); ; 4700 5 TT_NUMBER (.RMSG_NAKS); ; 4701 4 END; ; 4702 4 ; 4703 3 END; ; 4704 3 ; 4705 3 [%ASCII'S'] : ; 4706 4 BEGIN ; 4707 4 ; 4708 4 IF .SUB_TYPE EQL %C'P' ; 4709 4 THEN ; 4710 5 BEGIN ; 4711 5 TT_TEXT (UPLIT (%ASCIZ' S')); ; 4712 5 TT_NUMBER (.SMSG_COUNT); ; 4713 4 END; ; 4714 4 ; 4715 4 IF .SUB_TYPE EQL %C'N' ; 4716 4 THEN ; 4717 5 BEGIN ; 4718 5 TT_TEXT (UPLIT (%ASCIZ' S%')); ; 4719 5 TT_NUMBER (.SMSG_NAKS); ; 4720 4 END; ; 4721 4 ; 4722 3 END; ; 4723 3 TES; ; 4724 3 ; 4725 3 TT_OUTPUT (); ; 4726 2 END; ; 4727 2 ; 4728 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 ;XFR_STATUS, Save R2,R3,R4,R5,R6 ; 4595 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$ ; 4643 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 ; 4646 MOVL 8(AP), R2 ;SUB_TYPE, R2 ; 4648 CMPL R2, #83 ;R2, #83 ; 4651 BNEQ 3$ ;3$ ; PUSHR #^M ;#^M ; 4652 PUSHAB -8(R3) ;P.AGF ; BRB 9$ ;9$ ; 3$: CMPL R2, #82 ;R2, #82 ; 4654 BNEQ 4$ ;4$ ; PUSHL R4 ;R4 ; 4655 PUSHAB 44(R3) ;P.AGK ; PUSHAB 36(R3) ;P.AGI ; BRB 9$ ;9$ ; 4$: CMPL R2, #67 ;R2, #67 ; 4657 BNEQ 5$ ;5$ ; PUSHL R4 ;R4 ; 4658 PUSHAB 84(R3) ;P.AGN ; PUSHAB 76(R3) ;P.AGL ; BRB 9$ ;9$ ; 5$: CMPL R2, #88 ;R2, #88 ; 4660 BNEQ 6$ ;6$ ; PUSHL R4 ;R4 ; 4661 PUSHAB 140(R3) ;P.AGQ ; PUSHAB 132(R3) ;P.AGO ; BRB 9$ ;9$ ; 6$: CMPL R2, #90 ;R2, #90 ; 4664 BNEQ 7$ ;7$ ; PUSHL R4 ;R4 ; 4665 PUSHAB 204(R3) ;P.AGT ; PUSHAB 196(R3) ;P.AGR ; BRB 9$ ;9$ ; 7$: CMPL R2, #68 ;R2, #68 ; 4668 BNEQ 8$ ;8$ ; PUSHL R4 ;R4 ; 4669 PUSHAB 264(R3) ;P.AGW ; PUSHAB 256(R3) ;P.AGU ; BRB 9$ ;9$ ; 8$: CMPL R2, #65 ;R2, #65 ; 4672 BNEQ 10$ ;10$ ; PUSHL R4 ;R4 ; 4673 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$ ; 4679 MOVL 4(AP), R0 ;TYPE, R0 ; 4683 CMPL R0, #82 ;R0, #82 ; 4686 BNEQ 12$ ;12$ ; CMPL 8(AP), #80 ;SUB_TYPE, #80 ; 4689 BNEQ 11$ ;11$ ; PUSHAB 336(R3) ;P.AHA ; 4692 CALLS #1, (R5) ;#1, TT_TEXT ; PUSHL W^RMSG_COUNT ;RMSG_COUNT ; 4693 CALLS #1, (R6) ;#1, TT_NUMBER ; 11$: CMPL 8(AP), #78 ;SUB_TYPE, #78 ; 4696 BNEQ 15$ ;15$ ; PUSHAB 340(R3) ;P.AHB ; 4699 CALLS #1, (R5) ;#1, TT_TEXT ; PUSHL W^RMSG_NAKS ;RMSG_NAKS ; 4700 BRB 14$ ;14$ ; 12$: CMPL R0, #83 ;R0, #83 ; 4705 BNEQ 15$ ;15$ ; CMPL 8(AP), #80 ;SUB_TYPE, #80 ; 4708 BNEQ 13$ ;13$ ; PUSHAB 344(R3) ;P.AHC ; 4711 CALLS #1, (R5) ;#1, TT_TEXT ; PUSHL W^SMSG_COUNT ;SMSG_COUNT ; 4712 CALLS #1, (R6) ;#1, TT_NUMBER ; 13$: CMPL 8(AP), #78 ;SUB_TYPE, #78 ; 4715 BNEQ 15$ ;15$ ; PUSHAB 348(R3) ;P.AHD ; 4718 CALLS #1, (R5) ;#1, TT_TEXT ; PUSHL W^SMSG_NAKS ;SMSG_NAKS ; 4719 14$: CALLS #1, (R6) ;#1, TT_NUMBER ; 15$: CALLS #0, W^TT_OUTPUT ;#0, TT_OUTPUT ; 4725 16$: RET ; ; 4728 ; Routine Size: 319 bytes, Routine Base: $CODE$ + 10C9 ; 4729 1 ; 4730 1 %SBTTL 'CRCCLC - Calculate the CRC-CCITT for a message' ; 4731 1 ; 4732 1 GLOBAL ROUTINE CRCCLC (POINTER, SIZE) = ; 4733 1 ; 4734 1 !++ ; 4735 1 ! FUNCTIONAL DESCRIPTION: ; 4736 1 ! ; 4737 1 ! This routine will calculate the CRC for a message. It will use ; 4738 1 ! the VAX LIB$ routine to do all the work. ; 4739 1 ! ; 4740 1 ! CALLING SEQUENCE: ; 4741 1 ! ; 4742 1 ! CRC = CRCCLC(Pointer, Size) ; 4743 1 ! ; 4744 1 ! INPUT PARAMETERS: ; 4745 1 ! ; 4746 1 ! Pointer - Character pointer to the message. ; 4747 1 ! Size - Length of the message. ; 4748 1 ! ; 4749 1 ! IMPLICIT INPUTS: ; 4750 1 ! ; 4751 1 ! None. ; 4752 1 ! ; 4753 1 ! OUPTUT PARAMETERS: ; 4754 1 ! ; 4755 1 ! CRC for the message. ; 4756 1 ! ; 4757 1 ! IMPLICIT OUTPUTS: ; 4758 1 ! ; 4759 1 ! None. ; 4760 1 ! ; 4761 1 ! COMPLETION CODES: ; 4762 1 ! ; 4763 1 ! None. ; 4764 1 ! ; 4765 1 ! SIDE EFFECTS: ; 4766 1 ! ; 4767 1 ! None. ; 4768 1 ! ; 4769 1 !-- ; 4770 1 ; 4771 2 BEGIN ; 4772 2 ; 4773 2 LOCAL ; 4774 2 TEMP_DESC : BLOCK [8, BYTE], ! Temporary descriptor ; 4775 2 CRC_INITIAL; ! Initial CRC value ; 4776 2 ; 4777 2 CRC_INITIAL = 0; ! Set the initial value ; 4778 2 INIT_STR_DESC (TEMP_DESC, .POINTER, .SIZE); ; 4779 2 RETURN LIB$CRC (CRC_TABLE, CRC_INITIAL, TEMP_DESC); ; 4780 1 END; ! End of CRCCLC .ENTRY CRCCLC, ^M<> ;CRCCLC, Save nothing ; 4732 SUBL2 #8, SP ;#8, SP ; CLRL -(SP) ;CRC_INITIAL ; 4777 MOVW #270, 6(SP) ;#270, TEMP_DESC+2 ; 4778 MOVW 8(AP), 4(SP) ;SIZE, TEMP_DESC ; MOVL 4(AP), 8(SP) ;POINTER, TEMP_DESC+4 ; PUSHAB 4(SP) ;TEMP_DESC ; 4779 PUSHAB 4(SP) ;CRC_INITIAL ; PUSHAB W^U.56 ;U.56 ; CALLS #3, G^LIB$CRC ;#3, LIB$CRC ; RET ; ; 4780 ; Routine Size: 41 bytes, Routine Base: $CODE$ + 1208 ; 4781 1 ; 4782 1 %SBTTL 'KRM_ERROR - Issue an error message given error code' ; 4783 1 ; 4784 1 GLOBAL ROUTINE KRM_ERROR (ERROR_CODE) : NOVALUE = ; 4785 1 ; 4786 1 !++ ; 4787 1 ! FUNCTIONAL DESCRIPTION: ; 4788 1 ! ; 4789 1 ! This routine will cause an error message to be issued to the ; 4790 1 ! user's terminal and/or a message to be sent to the remote KERMIT. ; 4791 1 ! ; 4792 1 ! CALLING SEQUENCE: ; 4793 1 ! ; 4794 1 ! KRM_ERROR(KER_xxxxxx); ; 4795 1 ! ; 4796 1 ! INPUT PARAMETERS: ; 4797 1 ! ; 4798 1 ! KER_xxxxxx - Error code from KERERR.REQ ; 4799 1 ! ; 4800 1 ! IMPLICIT INPUTS: ; 4801 1 ! ; 4802 1 ! None. ; 4803 1 ! ; 4804 1 ! OUTPUT PARAMETERS: ; 4805 1 ! ; 4806 1 ! None. ; 4807 1 ! ; 4808 1 ! IMPLICIT OUTPUTS: ; 4809 1 ! ; 4810 1 ! None. ; 4811 1 ! ; 4812 1 ! COMPLETION CODES: ; 4813 1 ! ; 4814 1 ! None. ; 4815 1 ! ; 4816 1 ! SIDE EFFECTS: ; 4817 1 ! ; 4818 1 ! None. ; 4819 1 ! ; 4820 1 !-- ; 4821 1 ; 4822 2 BEGIN ; 4823 2 LIB$SIGNAL (.ERROR_CODE); ; 4824 1 END; ! End of KRM_ERROR .ENTRY KRM_ERROR, ^M<> ;KRM_ERROR, Save nothing ; 4784 PUSHL 4(AP) ;ERROR_CODE ; 4823 CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL ; RET ; ; 4824 ; Routine Size: 13 bytes, Routine Base: $CODE$ + 1231 ; 4825 1 ; 4826 1 %SBTTL 'KERM_HANDLER - Condition handler' ; 4827 1 ROUTINE KERM_HANDLER = ; 4828 1 ; 4829 1 !++ ; 4830 1 ! FUNCTIONAL DESCRIPTION: ; 4831 1 ! ; 4832 1 ! This is the condition handler for KERMIT-32. ; 4833 1 ! ; 4834 1 ! CALLING SEQUENCE: ; 4835 1 ! ; 4836 1 ! Called via LIB$SIGNAL. ; 4837 1 ! ; 4838 1 ! INPUT PARAMETERS: ; 4839 1 ! ; 4840 1 ! None. ; 4841 1 ! ; 4842 1 ! IMPLICIT INPUTS: ; 4843 1 ! ; 4844 1 ! None. ; 4845 1 ! ; 4846 1 ! OUTPUT PARAMETERS: ; 4847 1 ! ; 4848 1 ! None. ; 4849 1 ! ; 4850 1 ! IMPLICIT OUTPUTS: ; 4851 1 ! ; 4852 1 ! None. ; 4853 1 ! ; 4854 1 ! COMPLETION CODES: ; 4855 1 ! ; 4856 1 ! None. ; 4857 1 ! ; 4858 1 ! SIDE EFFECTS: ; 4859 1 ! ; 4860 1 ! None. ; 4861 1 ! ; 4862 1 !-- ; 4863 1 ; 4864 2 BEGIN ; 4865 2 ; 4866 2 BIND ; 4867 2 FACILITY_DESC = %ASCID'KERMIT32'; ; 4868 2 ; 4869 2 BUILTIN ; 4870 2 AP; ; 4871 2 ; 4872 2 LOCAL ; 4873 2 PUTMSG_VECTOR : VECTOR [10, LONG], ; 4874 2 SIGARGLST; ! Address of the signal argument list ; 4875 2 ; 4876 2 MAP ; 4877 2 AP : REF BLOCK [, BYTE], ; 4878 2 SIGARGLST : REF BLOCK [, BYTE]; ; 4879 2 ; 4880 2 !++ ; 4881 2 ! ; 4882 2 ! Routine to do the actual output of the error message ; 4883 2 ! ; 4884 2 !-- ; 4885 2 ; 4886 2 ROUTINE HANDLE_MSG = ; 4887 3 BEGIN ; 4888 3 ; 4889 3 EXTERNAL ROUTINE ; 4890 3 LOG_FAOL; ; 4891 3 ; 4892 3 BUILTIN ; 4893 3 AP; ; 4894 3 ; 4895 3 LOCAL ; 4896 3 ERR_DESC, ! Address of the error descriptor ; 4897 3 POINTER; ! Pointer to get characters ; 4898 3 ; 4899 3 MAP ; 4900 3 ERR_DESC : REF BLOCK [8, BYTE], ; 4901 3 AP : REF BLOCK [, BYTE]; ; 4902 3 ; 4903 3 ERR_DESC = .AP [4, 0, 32, 0]; ; 4904 3 ; 4905 3 IF .TERM_FLAG THEN SND_ERROR (.ERR_DESC [DSC$W_LENGTH], .ERR_DESC [DSC$A_POINTER]); ; 4906 3 ; 4907 3 IF .TRANSACTION_OPEN ; 4908 3 THEN ; 4909 4 BEGIN ; 4910 4 ; 4911 4 OWN ; 4912 4 TMP_DESC : BLOCK [8, BYTE]; ; 4913 4 ; 4914 4 INIT_STR_DESC (TMP_DESC, .ERR_DESC [DSC$A_POINTER], .ERR_DESC [DSC$W_LENGTH]); ; 4915 4 LOG_FAOL (%ASCID'!%T!_!AS!/', UPLIT (0, TMP_DESC), TRANSACTION_RAB); ; 4916 3 END; ; 4917 3 ; 4918 3 IF NOT .CONNECT_FLAG ; 4919 3 THEN ; 4920 4 BEGIN ; 4921 4 POINTER = CH$PTR (.ERR_DESC [DSC$A_POINTER]); ; 4922 4 ; 4923 4 INCR I FROM 1 TO .ERR_DESC [DSC$W_LENGTH] DO ; 4924 4 TT_CHAR (CH$RCHAR_A (POINTER)); ; 4925 4 ; 4926 4 TT_CRLF (); ; 4927 3 END; ; 4928 3 ; 4929 3 RETURN 0; ; 4930 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 ;Save R2,R3,R4 ; 4886 MOVL 4(AP), R2 ;4(AP), ERR_DESC ; 4903 BLBC W^TERM_FLAG, 1$ ;TERM_FLAG, 1$ ; 4905 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$ ; 4907 MOVW #270, W^TMP_DESC+2 ;#270, TMP_DESC+2 ; 4914 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 ; 4915 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$ ; 4918 MOVL 4(R2), R4 ;4(ERR_DESC), POINTER ; 4921 MOVZWL (R2), R3 ;(ERR_DESC), R3 ; 4923 CLRL R2 ;I ; BRB 4$ ;4$ ; 3$: MOVZBL (R4)+, -(SP) ;(POINTER)+, -(SP) ; 4924 CALLS #1, W^TT_CHAR ;#1, TT_CHAR ; 4$: AOBLEQ R3, R2, 3$ ;R3, I, 3$ ; CALLS #0, W^TT_CRLF ;#0, TT_CRLF ; 4926 5$: CLRL R0 ;R0 ; 4929 RET ; ; 4930 ; Routine Size: 98 bytes, Routine Base: $CODE$ + 123E ; 4931 2 SIGARGLST = .AP [CHF$L_SIGARGLST]; ; 4932 2 ; 4933 2 IF .SIGARGLST [CHF$L_SIG_NAME] GEQ %X'400' AND .SIGARGLST [CHF$L_SIG_NAME] LEQ %X'5FF' ; 4934 2 THEN ; 4935 2 RETURN SS$_RESIGNAL; ; 4936 2 ; 4937 2 PUTMSG_VECTOR [0] = .SIGARGLST [CHF$L_SIG_ARGS] - 2; ! No PC and PSL ; 4938 2 PUTMSG_VECTOR [1] = .SIGARGLST [CHF$L_SIG_NAME]; ; 4939 2 PUTMSG_VECTOR [2] = .SIGARGLST [CHF$L_SIG_ARGS] - 3; ; 4940 2 ; 4941 2 INCR I FROM 0 TO .SIGARGLST [CHF$L_SIG_ARGS] - 4 DO ; 4942 2 PUTMSG_VECTOR [.I + 3] = .(SIGARGLST [CHF$L_SIG_ARG1] + (.I*4)); ; 4943 2 ; 4944 2 $PUTMSG (MSGVEC = PUTMSG_VECTOR, ACTRTN = HANDLE_MSG, FACNAM = FACILITY_DESC); ; 4945 2 RETURN SS$_CONTINUE; ; 4946 1 END; ! End of KERM_HANDLER .EXTRN SYS$PUTMSG ;KERM_HANDLER U.34: .WORD ^M ;Save R2 ; 4827 SUBL2 #40, SP ;#40, SP ; MOVL 4(AP), R1 ;4(AP), SIGARGLST ; 4931 CMPL 4(R1), #1024 ;4(SIGARGLST), #1024 ; 4933 BLSS 1$ ;1$ ; CMPL 4(R1), #1535 ;4(SIGARGLST), #1535 ; BGTR 1$ ;1$ ; MOVZWL #2328, R0 ;#2328, R0 ; 4935 RET ; ; 1$: SUBL3 #2, (R1), (SP) ;#2, (SIGARGLST), PUTMSG_VECTOR ; 4937 MOVL 4(R1), 4(SP) ;4(SIGARGLST), PUTMSG_VECTOR+4 ; 4938 SUBL3 #3, (R1), 8(SP) ;#3, (SIGARGLST), PUTMSG_VECTOR+8 ; 4939 SUBL3 #4, (R1), R2 ;#4, (SIGARGLST), R2 ; 4941 MNEGL #1, R0 ;#1, I ; BRB 3$ ;3$ ; 2$: MOVL 8(R1)[R0], 12(SP)[R0] ;8(SIGARGLST)[I], PUTMSG_VECTOR+12[I] ; 4942 3$: AOBLEQ R2, R0, 2$ ;R2, I, 2$ ; CLRL -(SP) ;-(SP) ; 4944 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 ; 4945 RET ; ; 4946 ; Routine Size: 93 bytes, Routine Base: $CODE$ + 12A0 ; 4947 1 %SBTTL 'End of KERMIT.B32' ; 4948 1 END ! End of module ; 4949 1 ; 4950 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.7 ; SYS$COMMON:[SYSLIB]TPAMAC.L32;1 42 31 73 14 00:00.1 ; COMMAND QUALIFIERS ; BLISS KERMIT/LIST=KERMIT.MAR/MACHINE_CODE=(ASSEM,NOBINARY,UNIQUE)/NOOBJECT/SOURCE=NOHEADER ; Compilation Complete .END MAIN_ROUTINE