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