; 0001 0 MODULE KERMIT (IDENT = '3.3.111', MAIN = MAIN_ROUTINE, ; 0002 0 ADDRESSING_MODE(EXTERNAL = GENERAL, NONEXTERNAL = GENERAL) ; 0003 0 ) = ; 0004 1 BEGIN ; 0005 1 ; 0006 1 BIND ; 0007 1 IDENT_STRING = %ASCID'VMS Kermit-32 version 3.3.111'; ! Ident message ; 0008 1 ; 0009 1 !++ ; 0010 1 ! FACILITY: ; 0011 1 ! KERMIT-32 ; 0012 1 ! ; 0013 1 ! ABSTRACT: ; 0014 1 ! KERMIT-32 is an implementation of the KERMIT protocal to allow the ; 0015 1 ! transfer of files from micro computers to the DECsystem-10, DECSYSTEM-20 ; 0016 1 ! and now the VAX/VMS systems. ; 0017 1 ! ; 0018 1 ! ENVIRONMENT: ; 0019 1 ! User mode ; 0020 1 ! ; 0021 1 ! AUTHOR: Robert C. McQueen, CREATION DATE: 24-January-1983 ; 0022 1 ! ; 0023 1 ! MODIFIED BY: ; 0024 1 ! ; 0025 1 !-- ; 0026 1 ; 0027 1 %SBTTL 'Table of Contents' ; 0028 1 %SBTTL 'Revision History' ; 0029 1 ; 0030 1 !++ ; 0031 1 ! Start of version 1. ; 0032 1 ! ; 0033 1 ! 1.0.000 By: Robert C. McQueen On: 4-Jan-1983 ; 0034 1 ! Create this program. ; 0035 1 ! ; 0036 1 ! 1.0.001 By: Robert C. McQueen On: 4-May-1983 ; 0037 1 ! Allow RECEIVE without a file specification to mean ; 0038 1 ! use what ever the remote says. ; 0039 1 ! ; 0040 1 ! 1.1.002 By: W. Hom On: 6-July-1983 ; 0041 1 ! Implement CONNECT command. ; 0042 1 ! ; 0043 1 ! 1.2.003 By: Robert C. McQueen On: 15-Aug-1983 ; 0044 1 ! Add SET PARITY command and SHOW PARITY to support ; 0045 1 ! eight bit quoting. ; 0046 1 ! ; 0047 1 ! 1.2.004 By: Robert C. McQueen On: 23-August-1983 ; 0048 1 ! Add dummy routine SY_TIME. ; 0049 1 ! ; 0050 1 ! 1.2.005 By: Robert C. McQueen On: 23-August-1983 ; 0051 1 ! Add SET [SEND | RECEIVE] EIGHT-BIT-QUOTE ; 0052 1 ! command. Add message for SHOW RECEIVE and SHOW SEND parameters ; 0053 1 ! ; 0054 1 ! 1.2.006 By: Robert C. McQueen On: 26-August-1983 ; 0055 1 ! Add BYE, FINISH and LOGOUT commands. These commands call ; 0056 1 ! DO_GENERIC to send generic functions to remote servers. ; 0057 1 ! ; 0058 1 ! 1.2.007 By: Robert C. McQueen On: 16-September-1983 ; 0059 1 ! Implement SY_TIME, and XFR_STATUS routines. ; 0060 1 ! Add more stat type out. ; 0061 1 ! ; 0062 1 ! 1.2.008 By: Robert C. McQueen On: 19-September-1983 ; 0063 1 ! Add the SET RETRY command and the SHOW RETRY command. ; 0064 1 ! ; 0065 1 ! 1.2.009 By: Robert C. McQueen On: 20-September-1983 ; 0066 1 ! Add CRCCLC routine for calculating CRC-CCITT. ; 0067 1 ! Set SET BLOCK_CHECK_TYPE and SHOW BLOCK_CHECK_TYPE commands. ; 0068 1 ! ; 0069 1 ! 1.2.010 By: Nick Bush On: 3-October-1983 ; 0070 1 ! SERVER (in KERMSG) actually returns a value. If it ; 0071 1 ! is "ABORTED", then we should prompt again. This allows ; 0072 1 ! a ^Y typed to the server to put it back into command ; 0073 1 ! level. (If you want to type out statistics or whatever). ; 0074 1 ! ; 0075 1 ! 2.0.011 Release VAX/VMS Kermit-32 version 2.0 ; 0076 1 ! ; 0077 1 ! 2.0.012 By: Nick Bush On: 10-Nov-1983 ; 0078 1 ! Add type out of version number. Also fix some ; 0079 1 ! problems with IBM mode and local echo. ; 0080 1 ! ; 0081 1 ! 2.0.013 By: Nick Bush On: 11-Nov-1983 ; 0082 1 ! Change how debugging output is done so that it ; 0083 1 ! can be redirected to the logical device KER$DEBUG. ; 0084 1 ! If the logical name is defined to be something other ; 0085 1 ! that SYS$OUTPUT, KERMIT will send any debugging output ; 0086 1 ! there. ; 0087 1 ! ; 0088 1 ! 2.0.014 By: Robert C. McQueen On: 16-Nov-1983 ; 0089 1 ! Make sure all message number checks are mod 64. There ; 0090 1 ! were four that weren't. ; 0091 1 ! ; 0092 1 ! 2.0.015 By: Nick Bush On: 17-Nov-1983 ; 0093 1 ! Always clear purge typeahead when posting receive QIO. ; 0094 1 ! Also, clear any typeahead just before sending a packet. ; 0095 1 ! ; 0096 1 ! 2.0.016 By: Nick Bush On: 4-Dec-1983 ; 0097 1 ! Change how binary files are written to (hopefully) improve ; 0098 1 ! the performance. We will now use 510 records and only ; 0099 1 ! write out the record when it is filled (instead of writing ; 0100 1 ! one record per packet). This should cut down on the overhead ; 0101 1 ! substantially. ; 0102 1 ! ; 0103 1 ! 2.0.017 By: Nick Bush On: 9-Dec-1983 ; 0104 1 ! Fix processing for VFC format files. Also fix GET_ASCII ; 0105 1 ! for PRN and FTN record types. Change GET_ASCII so that ; 0106 1 ! 'normal' CR records get sent with trailing CRLF's instead ; 0107 1 ! of record. That was confusing too many people. ; 0108 1 ! ; 0109 1 ! 2.0.020 By: Nick Bush On: 9-Dec-1983 ; 0110 1 ! Only abort (when remote) if we seen two control-Y's in ; 0111 1 ! succession. This way a single glitch does not kill us. ; 0112 1 ! ; 0113 1 ! 2.0.021 By: Nick Bush On: 12-Dec-1983 ; 0114 1 ! Add status type-out character (^A), debug toggle ; 0115 1 ! character (^D), and force timeout character (^M) ; 0116 1 ! to those accepted during a transfer when we are remote. ; 0117 1 ! ; 0118 1 ! 2.0.022 By: Nick Bush On: 15-Dec-1983 ; 0119 1 ! Add Fixed record size (512 byte) format for writing files. ; 0120 1 ! This can be used for .EXE files. Also clean up writing ; 0121 1 ! ASCII files so that we don't lose any characters. ; 0122 1 ! ; 0123 1 ! 2.0.023 By: Nick Bush On: 16-Dec-1983 ; 0124 1 ! Add a default terminal name for the communications line. ; 0125 1 ! If KER$COMM is defined, that will be the default. ; 0126 1 ! ; 0127 1 ! 2.0.025 By: Robert C. McQueen On: 22-Dec-1983 ; 0128 1 ! Use RMSG_COUNT and SMSG_COUNT now. ; 0129 1 ! ; 0130 1 ! 2.0.026 By: Nick Bush On: 3-Jan-1984 ; 0131 1 ! Add options for format of file specification to be ; 0132 1 ! sent in file header packets. Also type out full file ; 0133 1 ! specification being sent/received instead of just ; 0134 1 ! the name we are telling the other end to use. ; 0135 1 ! ; 0136 1 ! 2.0.027 By: Nick Bush On: 20-Jan-1984 ; 0137 1 ! Fix reset of parity to use the correct field in the ; 0138 1 ! IO status block from the IO$_SENSEMODE. It was using ; 0139 1 ! the LF fill count instead. ; 0140 1 ! ; 0141 1 ! 2.0.030 By: Nick Bush On: 3-Feb-1984 ; 0142 1 ! Add the capability of receiving a file with a different ; 0143 1 ! name than given by KERMSG. The RECEIVE and GET commands ; 0144 1 ! now really are different. ; 0145 1 ! ; 0146 1 ! 2.0.031 By: Nick Bush On: 4-Feb-1984 ; 0147 1 ! Change connect code to improve response (hopefully ; 0148 1 ! without worsening throughput or runtime requirements). ; 0149 1 ! When either terminal is idle we will be waiting for ; 0150 1 ! a single character with a larger buffered read queued ; 0151 1 ! up immediately after it. ; 0152 1 ! ; 0153 1 ! 2.0.032 By: Nick Bush On: 25-Feb-1984 ; 0154 1 ! Add code for LOCAL and REMOTE commands. These depend ; 0155 1 ! upon support in KERMSG and KERSYS. ; 0156 1 ! ; 0157 1 ! 2.0.033 By: Nick Bush On: 6-March-1984 ; 0158 1 ! Change command input and terminal processing so that ; 0159 1 ! we will always have SYS$OUTPUT and SYS$COMMAND open ; 0160 1 ! when they are terminals, and will also always have ; 0161 1 ! the transfer terminal line open. This makes it ; 0162 1 ! unnecessary for the user to allocate a dialup line ; 0163 1 ! in order to go between CONNECT and a transfer command, ; 0164 1 ! and keep anyone else from grabbing the line between ; 0165 1 ! commands. ; 0166 1 ! Also add the command parsing for the rest of the LOCAL/REMOTE ; 0167 1 ! commands. This makes use of the fact that we have ; 0168 1 ! SYS$COMMAND open to allow us to read passwords without echo. ; 0169 1 ! Commands which should only be done when Kermit is local ; 0170 1 ! (GET, BYE, etc.) will now give an error if the transfer ; 0171 1 ! line is the same as the controlling terminal. ; 0172 1 ! SEND will now check for the files existance before calling ; 0173 1 ! KERMSG to send it. ; 0174 1 ! ; 0175 1 ! 2.0.034 By: Nick Bush On: 7-March-1984 ; 0176 1 ! Default the parity type to be that of the default transfer ; 0177 1 ! line. This should make things simpler for systems which use ; 0178 1 ! parity by default. ; 0179 1 ! ; 0180 1 ! 2.0.035 By: Nick Bush On: 8-March-1984 ; 0181 1 ! Add LOG SESSION command to set a log file for CONNECT. ; 0182 1 ! While we are doing so, clean up the command parsing a little ; 0183 1 ! so that we don't have as many COPY_xxx routines. ; 0184 1 ! ; 0185 1 ! 2.0.036 By: Nick Bush On: 15-March-1984 ; 0186 1 ! Fix PUT_FILE to correctly handle carriage returns which are ; 0187 1 ! not followed by line feeds. Count was being decremented ; 0188 1 ! Instead of incremented. ; 0189 1 ! ; 0190 1 ! 2.0.037 By: Robert C. McQueen On: 20-March-1984 ; 0191 1 ! Fix call to LOG_OPEN for debug log file. ; 0192 1 ! Module: KERTRM. ; 0193 1 ! ; 0194 1 ! 2.0.040 By: Nick Bush On: 22-March-1984 ; 0195 1 ! Fix processing of FORTRAN carriage control to handle lines ; 0196 1 ! which do not contain the carriage control character (i.e., zero ; 0197 1 ! length records). Previously, this type of record was sending ; 0198 1 ! infinite nulls. ; 0199 1 ! ; 0200 1 ! 2.0.041 By: Nick Bush On: 26-March-1984 ; 0201 1 ! Add SET PROMPT command. ; 0202 1 ! ; 0203 1 ! 2.0.042 By: Nick Bush On: 26-March-1984 ; 0204 1 ! Fix connect processing to make it easy to type messages ; 0205 1 ! on the user's terminal while connected. Use this ; 0206 1 ! to type messages when log file stopped and started. ; 0207 1 ! Include the node name in the messages to keep ; 0208 1 ! users who are running through multiple Kermit's from ; 0209 1 ! getting confused. ; 0210 1 ! ; 0211 1 ! 2.0.043 By: Nick Bush On: 28-March-1984 ; 0212 1 ! Fix SET PARITY ODD to work. Somehow, the table entry ; 0213 1 ! had PR_NONE instead of PR_ODD. Also add status type ; 0214 1 ! out and help message to connect command. ; 0215 1 ! ; 0216 1 ! 2.0.044 By: Nick Bush On: 28-March-1984 ; 0217 1 ! Fix SET SEND START_OF_PACKET to store in SND_SOH instead ; 0218 1 ! of RCV_SOH. Also, set TY_FIL false before calling FILE_OPEN ; 0219 1 ! to check for existence of send files. ; 0220 1 ! ; 0221 1 ! 3.0.045 Start of version 3. ; 0222 1 ! ; 0223 1 ! 3.0.046 By: Nick Bush On: 29-March-1984 ; 0224 1 ! Fix debugging log file to correctly set/clear file open ; 0225 1 ! flag. Also make log files default to .LOG. ; 0226 1 ! ; 0227 1 ! 3.0.047 By: Nick Bush On: 30-March-1984 ; 0228 1 ! Fix SEND command processing to save and restore the file ; 0229 1 ! specification over the call to FILE_OPEN, since FILE_OPEN ; 0230 1 ! rewrites it with the resulting file name, losing any ; 0231 1 ! wild-cards. ; 0232 1 ! ; 0233 1 ! 3.0.050 By: Nick Bush On: 2-April-1984 ; 0234 1 ! Add SET SERVER_TIMER to determine period between idle naks. ; 0235 1 ! Also allow for a routine to process file specs before ; 0236 1 ! FILE_OPEN uses them. This allows individual sites to ; 0237 1 ! restrict the format of file specifications used by Kermit. ; 0238 1 ! ; 0239 1 ! 3.0.051 By: Nick Bush On: 2-April-1984 ; 0240 1 ! Fix command scanning to correctly exit after performing ; 0241 1 ! a single command when entered with a command present. ; 0242 1 ! ; 0243 1 ! 3.1.052 By: Nick Bush On: 3-July-1984 ; 0244 1 ! Fix KERCOM's definition of MAX_MSG to allow for all characters ; 0245 1 ! of packet to fit into buffers, not just the counted ones. ; 0246 1 ! ; 0247 1 ! 3.1.053 By: Robert C. McQueen On: 9-July-1984 ; 0248 1 ! Fix FORTRAN carriage control processing to pass along ; 0249 1 ! any character from the carriage control column that is ; 0250 1 ! not really carriage control. ; 0251 1 ! ; 0252 1 ! 3.1.054 By: Nick Bush On: 13-July-1984 ; 0253 1 ! Change TERM_OPEN to take an argument which determines ; 0254 1 ! whether it should post any QIO's. This makes it unnecessary ; 0255 1 ! for TERM_CONNECT to cancel the QIO's, and avoids problems ; 0256 1 ! with DECnet remote terminals. ; 0257 1 ! ; 0258 1 ! 3.1.055 By: Nick Bush On: 27-August-1984 ; 0259 1 ! Clear out FILE_SIZE before processing a RECEIVE command to ; 0260 1 ! ensure that KERMSG doesn't perform a GET. ; 0261 1 ! ; 0262 1 ! 3.1.056 By: Nick Bush On: 28-August-1984 ; 0263 1 ! Add a TAKE (or @) command. Also perform an initialization ; 0264 1 ! file on startup. This file is either VMSKERMIT.INI or ; 0265 1 ! whatever file is pointed to by the logical name VMSKERMIT. ; 0266 1 ! ; 0267 1 ! 3.1.057 By: Nick Bush On: 21-Feb-1985 ; 0268 1 ! Determine VMS version on startup and remember for later ; 0269 1 ! use. Use it in KERSYS to determine whether we will need ; 0270 1 ! to force an end-of-file on the mailbox when the subprocess ; 0271 1 ! on the other end goes away. ; 0272 1 ! ; 0273 1 ! 3.1.060 By: Nick Bush On: 16-March-1985 ; 0274 1 ! Increase size of terminal name buffers to account for large ; 0275 1 ! unit numbers (most likely seen with VTA's). ; 0276 1 ! ; 0277 1 ! 3.1.061 By: Nick Bush On: 16-March-1985 ; 0278 1 ! Only attempt to set parity back when closing terminal. ; 0279 1 ! ; 0280 1 ! 3.1.062 By: Nick Bush On: 16-March-1985 ; 0281 1 ! Previous edit broke remote commands - must post QIO's ; 0282 1 ! when opening terminals for these. ; 0283 1 ! ; 0284 1 ! 3.1.063 By: Nick Bush On: 16-March-1985 ; 0285 1 ! Fix status command to output right headers over data. ; 0286 1 ! ; 0287 1 ! 3.1.064 By: Nick Bush On: 30-March-1985 ; 0288 1 ! Fix LIB$SPAWN call to set SYS$INPUT for the subprocess ; 0289 1 ! to be NLA0: so that it doesn't try to input from the ; 0290 1 ! terminal. ; 0291 1 ! ; 0292 1 ! 3.1.065 By: Nick Bush On: 10-April-1985 ; 0293 1 ! Split IBM handshaking from parity and local echo. Allow ; 0294 1 ! link time setting of IBM_MODE defaults by defining symbols: ; 0295 1 ! ; 0296 1 ! IBM_MODE_CHARACTER = character value of handshake character ; 0297 1 ! IBM_MODE_ECHO = 1 for local echo, 2 for no local echo ; 0298 1 ! IBM_MODE_PARITY = (0 = none), (1 = mark), (2 = even), ; 0299 1 ! (3 = odd), (4 = space). ; 0300 1 ! ; 0301 1 ! If not specified, Kermit will continue to use DC1, local echo ; 0302 1 ! and odd parity for IBM_MODE. ; 0303 1 ! ; 0304 1 ! 3.1.066 By: Nick Bush On: 22-April-1985 ; 0305 1 ! Don't use NLA0: as SYS$INPUT when spawning things under VMS 3. ; 0306 1 ! ; 0307 1 ! ; 0308 1 ! Start version 3.2 on 8-May-1985 ; 0309 1 ! ; 0310 1 ! 3.2.067 By: Robert McQueen On: 8-May-1985 ; 0311 1 ! Use $GETJPIW and $GETDVIW instead of $GETJPI and $GETDVI. ; 0312 1 ! Module: KERTRM, KERFIL ; 0313 1 ! ; 0314 1 ! 3.2.070 By: Robert McQueen On: 17-Dec-1985 ; 0315 1 ! Fix a problem with CRC calculations when 8 bit data and not ; 0316 1 ! 8 bit quoting. ; 0317 1 ! ; 0318 1 ! 3.2.071 By: Robert McQueen On: 11-March-1986 ; 0319 1 ! Fix a problem were KERMSG didn't allow for a line termination ; 0320 1 ! character in the buffer. ; 0321 1 ! ; 0322 1 ! 3.2.072 By: Robert McQueen On: 11-March-1986 ; 0323 1 ! Allow 0 as a valid value for SET SEND PADDING command. ; 0324 1 ! ; 0325 1 ! 3.2.073 By: Robert McQueen On: 11-March-1986 ; 0326 1 ! Fix a problem restoring the terminal characteristics under ; 0327 1 ! VMS 4.x ; 0328 1 ! ; 0329 1 ! 3.2.074 By: Robert McQueen On: 11-March-1986 ; 0330 1 ! Put MAX_MSG back the way it was and fix the problem correctly ; 0331 1 ! in KERMSG. ; 0332 1 ! ; 0333 1 ! 3.2.075 By: Robert McQueen On: 8-April-1986 ; 0334 1 ! Change how the FINISH command works. Cause it to go back to ; 0335 1 ! the Kermit-32 prompt, not exit. ; 0336 1 ! ; 0337 1 ! 3.2.076 By: Robert McQueen On: 17-April-1986 ; 0338 1 ! Set PASSTHRU in addition to everything else we change in VMSTRM. ; 0339 1 ! ; 0340 1 ! 3.2.077 By: Robert McQueen On: 8-May-1986 ; 0341 1 ! FIX FORTRAN CC!! (Once and for all I hope) ; 0342 1 ! ; 0343 1 ! 3.2.100 By: Gregory P. Welsh On: 1-June-1986 ; 0344 1 ! Add TRANSMIT command along with set SET/SHOW TRANSMIT ECHO ; 0345 1 ! and DELAY commands. ; 0346 1 ! ; 0347 1 ! Start of version 3.3 ; 0348 1 ! ; 0349 1 ! 3.3.101 By: Robert C. McQueen On: 2-July-1986 ; 0350 1 ! Change $TRNLOG system service calls to LIB$SYS_TRNLOG library ; 0351 1 ! routine. Handle no translation properly in VMSTRM.BLI. ; 0352 1 ! ; 0353 1 ! 3.3.102 By: Robert McQueen On: 5-July-1986 ; 0354 1 ! Add changes/fixes suggested by Art Guion and David Deley for ; 0355 1 ! VMSTRM.BLI ; 0356 1 ! - Turn off FALLBACK terminal characteristics for eightbit ; 0357 1 ! operations. ; 0358 1 ! - Decrease IBM timeouts when waiting for a handshake. ; 0359 1 ! ; 0360 1 ! 3.3.103 By: Robert McQueen On: 5-July-1986 ; 0361 1 ! Add changes/fixes suggested by David Deley for VMSMIT.BLI ; 0362 1 ! - Problem with an infinite loop getting a command. ; 0363 1 ! ; 0364 1 ! 3.3.104 By: Robert McQueen On: 5-July-1986 ; 0365 1 ! Add changes/fixes suggested by Art Guion and David Deley for ; 0366 1 ! KERMSG.BLI. ; 0367 1 ! - Always attempt a handshake in IBM mode. Failing to handshake ; 0368 1 ! may cause 3704/5 style controller to hang a VM system. ; 0369 1 ! - Don't lose the last character in a buffer. BFR_FILL logic ; 0370 1 ! forgets to send the last cahracters of a file when it doesn't ; 0371 1 ! fit into the current packet. ; 0372 1 ! ; 0373 1 ! 3.3.105 By: Robert McQueen On: 8-July-1986 ; 0374 1 ! Attempt to fix the truncation errors that we now get from ; 0375 1 ! LINK with BLISS-32 v4.2. Also do code clean up in VMSTRM and ; 0376 1 ! VMSFIL. ; 0377 1 ! ; 0378 1 ! 3.3.106 By: Robert McQueen On: 8-July-1986 ; 0379 1 ! Fix problem of closing a fixed file and losing data. ; 0380 1 ! ; 0381 1 ! 3.3.107 By: Antonino N. Mione On: 8-Sep-1986 ; 0382 1 ! Do not abort on ERROR packet while in SERVER mode. Instead, ; 0383 1 ! return to SERVER IDLE mode. ; 0384 1 ! ; 0385 1 ! 3.3.110 By: Antonino N. Mione On: 8-Sep-1986 ; 0386 1 ! Make KERMIT-32 close the terminal (so the terminal ; 0387 1 ! parameters are appropriately reset) upon reciept of ; 0388 1 ! a GENERIC LOGOUT packet. ; 0389 1 ! ; 0390 1 ! 3.3.111 By: Robert McQueen On: 2-Oct-1986 ; 0391 1 ! Make Kermit-32 not eat the parity from a CR if a LF doesn't ; 0392 1 ! follow it when writing an ASCII file. ; 0393 1 !-- ; 0394 1 ; 0395 1 %SBTTL 'Routine definitions -- Forwards' ; 0396 1 ! ; 0397 1 ! ; 0398 1 ! Forward definitions ; 0399 1 ! ; 0400 1 ; 0401 1 ! Command processing routines ; 0402 1 ; 0403 1 FORWARD ROUTINE ; 0404 1 COMND, ! Process a command ; 0405 1 COMND_ERROR : NOVALUE, ! Give error for command ; 0406 1 COMND_FILE, ! Process command file ; 0407 1 DO_COMND, ! Parse and dispatch one command ; 0408 1 COMND_HELP : NOVALUE, ! Process the HELP command ; 0409 1 COMND_SHOW : NOVALUE, ! Process the SHOW command ; 0410 1 COMND_STATUS : NOVALUE, ! Process the STATUS command ; 0411 1 COMND_REMOTE : NOVALUE, ! Process the REMOTE command ; 0412 1 COMND_LOCAL : NOVALUE, ! Process the LOCAL commands ; 0413 1 GET_REM_ARGS, ! Get arguments for REMOTE/LOCAL commands ; 0414 1 STORE_TEXT, ! Routine to store a file name ; 0415 1 COPY_TERM_NAME, ! Copy device name (TERM_xxxx) ; 0416 1 COPY_DESC, ! Copy file name (FILE_xxx) ; 0417 1 COPY_ALT_FILE, ! Copy to alternate file name (ALT_FILE_xxx) ; 0418 1 COPY_GEN_1DATA, ! Copy to GEN_1DATA (generic command argument) ; 0419 1 STORE_DEBUG, ! Store the debuging flag ; 0420 1 STORE_TR_ECHO, ! Store the transmit echo flag [078] ; 0421 1 STORE_TR_DELAY, ! Store the transmit delay [078] ; 0422 1 STORE_FTP, ! Store the file type ; 0423 1 STORE_FNM, ! Store the file name form ; 0424 1 STORE_ECHO, ! Store the local echo flag ; 0425 1 STORE_PARITY, ! Store the parity type ; 0426 1 STORE_CHK, ! This routine will store the checksum type. ; 0427 1 STORE_ABT, ! This routine will store the aborted file disposition ; 0428 1 STORE_IBM, ! Store IBM flag ; 0429 1 STORE_MSG_FIL, ! Store TY_FIL ; 0430 1 STORE_MSG_PKT, ! Store TY_PKT ; 0431 1 CHECK_PACKET_LEN, ! Validate PACKET length given ; 0432 1 CHECK_NPAD, ! Validate the number of pad characters ; 0433 1 CHECK_PAD_CHAR, ! Validate the padding character being set ; 0434 1 CHECK_EOL, ! Validate EOL character given. ; 0435 1 CHECK_QUOTE, ! Validate quoting character ; 0436 1 CHECK_SOH, ! Validate the start of packet character given ; 0437 1 KEY_ERROR; ! Return correct keyword error value ; 0438 1 ; 0439 1 ! ; 0440 1 ! Error handling routines ; 0441 1 ! ; 0442 1 ; 0443 1 FORWARD ROUTINE ; 0444 1 KERM_HANDLER; ! Condition handler ; 0445 1 %SBTTL 'Include files' ; 0446 1 ; 0447 1 ! ; 0448 1 ! INCLUDE FILES: ; 0449 1 ! ; 0450 1 ; 0451 1 LIBRARY 'SYS$LIBRARY:STARLET'; ; 0452 1 ; 0453 1 LIBRARY 'SYS$LIBRARY:TPAMAC'; ; 0454 1 ; 0455 1 REQUIRE 'KERCOM'; ! Common definitions ; 0663 1 ; 0664 1 REQUIRE 'KERERR'; ! Error message symbol definitions ; 0730 1 ; 0731 1 %SBTTL 'Macro definitions' ; 0732 1 ; 0733 1 ! ; 0734 1 ! MACROS: ; 0735 1 ! ; 0736 1 ; 0737 1 MACRO ; M 0738 1 TPARSE_ARGS = ; M 0739 1 BUILTIN AP; ; M 0740 1 MAP AP : REF BLOCK [,BYTE]; ; 0741 1 %; ; 0742 1 ; 0743 1 ! ; 0744 1 ! Macro to initialize a string descriptor ; 0745 1 ! ; 0746 1 MACRO ; M 0747 1 INIT_STR_DESC (DESC, BUFFER, SIZE) = ; M 0748 1 BEGIN ; M 0749 1 ! MAP ; M 0750 1 ! DESC : BLOCK [8, BYTE]; ; M 0751 1 DESC [DSC$B_CLASS] = DSC$K_CLASS_S; ; M 0752 1 DESC [DSC$B_DTYPE] = DSC$K_DTYPE_T; ; M 0753 1 DESC [DSC$W_LENGTH] = SIZE; ; M 0754 1 DESC [DSC$A_POINTER] = BUFFER; ; M 0755 1 END ; 0756 1 %; ; 0757 1 %SBTTL 'Equated symbols -- Command types' ; 0758 1 ; 0759 1 ! ; 0760 1 ! EQUATED SYMBOLS: ; 0761 1 ! ; 0762 1 ! Command offsets ; 0763 1 ; 0764 1 LITERAL ; 0765 1 CMD_MIN = 1, ! Minimum value ; 0766 1 CMD_CONN = 1, ! Connect command ; 0767 1 CMD_EXIT = 2, ! Exit command ; 0768 1 CMD_HELP = 3, ! Help command ; 0769 1 CMD_RECEIVE = 4, ! Receive command ; 0770 1 CMD_SET = 5, ! Set command ; 0771 1 CMD_SEND = 6, ! Send command ; 0772 1 CMD_SHOW = 7, ! Show command ; 0773 1 CMD_SERVER = 8, ! SERVER command ; 0774 1 CMD_STATUS = 9, ! STATUS command ; 0775 1 CMD_LOGOUT = 10, ! Generic LOGOUT command ; 0776 1 CMD_BYE = 11, ! Generic LOGOUT command and EXIT ; 0777 1 CMD_FINISH = 12, ! Generic EXIT command ; 0778 1 CMD_GET = 13, ! Get command ; 0779 1 CMD_REMOTE = 14, ! Remote command ; 0780 1 CMD_LOCAL = 15, ! Local command ; 0781 1 CMD_PUSH = 16, ! PUSH command (spawn new DCL) ; 0782 1 CMD_NULL = 17, ! Any command which is done ; 0783 1 ! totally by the LIB$TPARSE call ; 0784 1 CMD_TAKE = 18, ! Take command ; 0785 1 CMD_TRANSMIT = 19, ! Transmit command [078] ; 0786 1 CMD_MAX = 19; ! Maximum command value [078] ; 0787 1 ; 0788 1 ! Items to show ; 0789 1 ; 0790 1 LITERAL ; 0791 1 SHOW_ALL = 1, ! Show everything ; 0792 1 SHOW_DEB = 2, ! Show debugging flag ; 0793 1 SHOW_DEL = 3, ! Show delay ; 0794 1 SHOW_ESC = 4, ! Show ESCAPE character ; 0795 1 SHOW_TIM = 5, ! Show random timing ; 0796 1 SHOW_LIN = 6, ! Show the line we are using ; 0797 1 SHOW_ECH = 7, ! Show the echo flag ; 0798 1 SHOW_SEN = 8, ! Show send parameters ; 0799 1 SHOW_REC = 9, ! Show the receive parameters ; 0800 1 SHOW_PAR = 10, ! Show the parity setting ; 0801 1 SHOW_RTY = 11, ! Show retry counters ; 0802 1 SHOW_CHK = 12, ! Show block-check-type ; 0803 1 SHOW_ABT = 13, ! Show aborted file disposition ; 0804 1 SHOW_FIL = 14, ! Show file parameters ; 0805 1 SHOW_PAC = 15, ! Show packet parameters ; 0806 1 SHOW_COM = 16, ! Show communications parameters ; 0807 1 SHOW_VER = 17, ! Show version ; 0808 1 SHOW_TRN = 18; ! Show transmit delay and echo ; 0809 1 %SBTTL 'Equated symbols -- Constants' ; 0810 1 ; 0811 1 ! Constants ; 0812 1 ; 0813 1 LITERAL ; 0814 1 CMD_BFR_LENGTH = 132, ! Command buffer length ; 0815 1 OUT_BFR_LENGTH = 80, ! Output buffer length (SHOW cmd) ; 0816 1 HELP_LENGTH = 132, ! Length of the help buffer ; 0817 1 TEMP_LENGTH = 132; ! Length of the temporary area ; 0818 1 ! ; 0819 1 ! The default prompt ; 0820 1 ! ; 0821 1 BIND ; 0822 1 DEFAULT_PROMPT = %ASCID'Kermit-32>'; ; 0823 1 ; 0824 1 MAP ; 0825 1 DEFAULT_PROMPT : BLOCK [8, BYTE]; ! This is a descriptor ; 0826 1 %SBTTL 'Storage -- Global' ; 0827 1 ; 0828 1 ! ; 0829 1 ! ; 0830 1 ! GLOBAL STORAGE: ; 0831 1 ! ; 0832 1 ; 0833 1 GLOBAL ; 0834 1 TRANSACTION_DESC : BLOCK [8, BYTE], ! Descriptor for transaction log file ; 0835 1 TRANSACTION_OPEN, ! File open flag ; 0836 1 TRANSACTION_FAB : $FAB_DECL, ! Transaction file FAB ; 0837 1 TRANSACTION_RAB : $RAB_DECL, ! Transaction file RAB ; 0838 1 ESCAPE_CHR, ! Escape character for CONNECT ; 0839 1 ALT_FILE_SIZE, ! Number of characters in FILE_NAME ; 0840 1 ALT_FILE_NAME : VECTOR [CH$ALLOCATION (MAX_FILE_NAME)]; ! Storage ; 0841 1 %SBTTL 'Storage -- Local' ; 0842 1 ; 0843 1 ! ; 0844 1 ! OWN STORAGE: ; 0845 1 ! ; 0846 1 ; 0847 1 OWN ; 0848 1 ; 0849 1 ! Command scanning information ; 0850 1 ; 0851 1 TPARSE_BLOCK : BLOCK [TPA$K_LENGTH0, BYTE] ; 0852 1 INITIAL (TPA$K_COUNT0, ! Longword count ; 0853 1 TPA$M_ABBREV), ! Allow abbreviations ; 0854 1 BAD_CMD_DESC : BLOCK [8, BYTE], ! Descriptor for bad command field ; 0855 1 COMMAND, ! Type of command we are doing ; 0856 1 SHOW_TYPE, ! Type of show command ; 0857 1 REM_TYPE, ! Type of REMOTE command ; 0858 1 TAKE_DISPLAY, ! Display commands being TAKEn ; 0859 1 ! ; 0860 1 ! Output data area ; 0861 1 ! ; 0862 1 OUTPUT_LINE : VECTOR [OUT_BFR_LENGTH, BYTE, UNSIGNED], ; 0863 1 OUTPUT_DESC : BLOCK [8, BYTE], ; 0864 1 OUTPUT_SIZE : WORD UNSIGNED, ; 0865 1 ; 0866 1 ! Misc constants. ; 0867 1 ; 0868 1 TRANSACTION_NAME : VECTOR [CH$ALLOCATION(MAX_FILE_NAME)], ; 0869 1 PROMPT_DESC : BLOCK [8, BYTE], ! Descriptor for prompt ; 0870 1 PROMPT_TEXT : VECTOR [CH$ALLOCATION(TEMP_LENGTH)], ! Storage for prompt ; 0871 1 CRC_TABLE : BLOCK [16, LONG], ! CRC-CCITT table ; 0872 1 TAK_FIL_DESC : BLOCK [8, BYTE], ! Take file descriptor ; 0873 1 TAK_FIL_NAME : BLOCK [CH$ALLOCATION(MAX_FILE_NAME)], ; 0874 1 TEMP_DESC : BLOCK [8, BYTE], ! Temporary descriptor ; 0875 1 TEMP_NAME : VECTOR [CH$ALLOCATION(TEMP_LENGTH)]; ; 0876 1 ; 0877 1 ; 0878 1 ! ; 0879 1 %SBTTL 'External routines' ; 0880 1 ! ; 0881 1 ! EXTERNAL REFERENCES: ; 0882 1 ! ; 0883 1 ; 0884 1 EXTERNAL ROUTINE ; 0885 1 ! ; 0886 1 ! Library routines ; 0887 1 ! ; 0888 1 LIB$GET_INPUT : ADDRESSING_MODE (GENERAL), ; 0889 1 LIB$PUT_OUTPUT : ADDRESSING_MODE (GENERAL), ; 0890 1 LIB$TPARSE : ADDRESSING_MODE (GENERAL), ; 0891 1 LIB$CRC_TABLE : ADDRESSING_MODE (GENERAL), ; 0892 1 LIB$CRC : ADDRESSING_MODE (GENERAL), ; 0893 1 LIB$SIGNAL : ADDRESSING_MODE (GENERAL) NOVALUE, ; 0894 1 LIB$ESTABLISH : ADDRESSING_MODE (GENERAL), ; 0895 1 LIB$ATTACH : ADDRESSING_MODE (GENERAL), ; 0896 1 LIB$SPAWN : ADDRESSING_MODE (GENERAL), ; 0897 1 ! ; 0898 1 ! KERMSG - KERMIT Message processing routines ; 0899 1 ! ; 0900 1 SEND_SWITCH, ! Send a file ; 0901 1 REC_SWITCH, ! Receive a file ; 0902 1 DO_GENERIC, ! Send generic functions ; 0903 1 SERVER, ! Server mode processing ; 0904 1 SND_ERROR : NOVALUE, ! Send E packet to remote ; 0905 1 MSG_INIT : NOVALUE, ! Initialization routine ; 0906 1 ! ; 0907 1 ! KERFIL - File processing. ; 0908 1 ! ; 0909 1 FILE_INIT : NOVALUE, ! Initialization routine ; 0910 1 ! ; 0911 1 ! KERSYS - System subroutines for KERMSG ; 0912 1 ! ; 0913 1 SY_INIT : NOVALUE, ! Initialization routine ; 0914 1 ! ; 0915 1 ! KERTRM - Terminal processing. ; 0916 1 ! ; 0917 1 TERM_INIT : NOVALUE, ! Initialize the terminal processing ; 0918 1 TERM_OPEN, ! Open the terminal line ; 0919 1 TERM_CLOSE, ! Close the terminal line ; 0920 1 TERM_CONNECT, ! Impliments CONNECT command ; 0921 1 SET_TRANS_TERM, ! Set new transfer terminal ; 0922 1 COMND_TRANSMIT, ! Transmit command code in module KERTRM ; 0923 1 ! ; 0924 1 ! KERTT - Text processing ; 0925 1 ! ; 0926 1 TT_INIT : NOVALUE, ! Initialization routine ; 0927 1 TT_TEXT : NOVALUE, ! Output a text string ; 0928 1 TT_NUMBER : NOVALUE, ! Output a number ; 0929 1 TT_CHAR : NOVALUE, ! Output a single character ; 0930 1 TT_OUTPUT : NOVALUE, ! Routine to dump the current ; 0931 1 ! text line. ; 0932 1 TT_CRLF : NOVALUE; ! Output the line ; 0933 1 ; 0934 1 %SBTTL 'External storage' ; 0935 1 ! ; 0936 1 ! EXTERNAL Storage: ; 0937 1 ! ; 0938 1 ; 0939 1 EXTERNAL ; 0940 1 ! ; 0941 1 ! KERMSG storage ; 0942 1 ! ; 0943 1 ! Receive parameters ; 0944 1 RCV_PKT_SIZE, ! Receive packet size ; 0945 1 RCV_NPAD, ! Padding length ; 0946 1 RCV_PADCHAR, ! Padding character ; 0947 1 RCV_TIMEOUT, ! Time out ; 0948 1 RCV_EOL, ! EOL character ; 0949 1 RCV_QUOTE_CHR, ! Quote character ; 0950 1 RCV_8QUOTE_CHR, ! 8-bit quoting character ; 0951 1 RCV_SOH, ! Start of packet header ; 0952 1 ! ; 0953 1 ! Send parameters ; 0954 1 ! ; 0955 1 SND_PKT_SIZE, ! Send packet size ; 0956 1 SND_NPAD, ! Padding length ; 0957 1 SND_PADCHAR, ! Padding character ; 0958 1 SND_TIMEOUT, ! Time out ; 0959 1 SND_EOL, ! EOL character ; 0960 1 SND_QUOTE_CHR, ! Quote character ; 0961 1 SND_SOH, ! Packet start of header ; 0962 1 ! ; 0963 1 ! Server parameters ; 0964 1 ! ; 0965 1 SRV_TIMEOUT, ! Time between idle naks in server ; 0966 1 ! ; 0967 1 ! Misc. packet parameters ; 0968 1 ! ; 0969 1 SET_REPT_CHR, ! Desired repeat character ; 0970 1 ! ; 0971 1 ! Statistics ; 0972 1 ! ; 0973 1 SND_TOTAL_CHARS, ! Total characters sent ; 0974 1 RCV_TOTAL_CHARS, ! Total characters received ; 0975 1 SND_DATA_CHARS, ! Total number of data characters sent ; 0976 1 RCV_DATA_CHARS, ! Total number of data characters received ; 0977 1 SMSG_TOTAL_CHARS, ! Total chars sent this file xfer ; 0978 1 RMSG_TOTAL_CHARS, ! Total chars rcvd this file xfer ; 0979 1 SMSG_DATA_CHARS, ! Total data chars this file xfer ; 0980 1 RMSG_DATA_CHARS, ! Total data chars this file xfer ; 0981 1 RCV_NAKS, ! Total number of NAKs received ; 0982 1 SND_NAKS, ! Total number of NAKs sent ; 0983 1 RMSG_NAKS, ! Number of NAKs received ; 0984 1 SMSG_NAKS, ! Number of NAKs sent ; 0985 1 RCV_COUNT, ! Total number of packets received ; 0986 1 SND_COUNT, ! Total number of packets sent ; 0987 1 RMSG_COUNT, ! Number of packets received ; 0988 1 SMSG_COUNT, ! Number of packets sent ; 0989 1 XFR_TIME, ! Amount of time the last transfer took ; 0990 1 TOTAL_TIME, ! Total time the transfers have taken ; 0991 1 LAST_ERROR : VECTOR [CH$ALLOCATION (MAX_MSG + 1)], ! Last error message ; 0992 1 TY_PKT, ! Flag that packet numbers should be typed ; 0993 1 TY_FIL, ! Flag that file names should be typed ; 0994 1 GEN_1DATA : VECTOR [CH$ALLOCATION (MAX_MSG)], ! Data for generic command ; 0995 1 GEN_1SIZE, ! Size of data in GEN_1DATA ; 0996 1 GEN_2DATA : VECTOR [CH$ALLOCATION (MAX_MSG)], ! Second argument for generic command ; 0997 1 GEN_2SIZE, ! Size of data in GEN_2DATA ; 0998 1 GEN_3DATA : VECTOR [CH$ALLOCATION (MAX_MSG)], ! Third arg for generic command ; 0999 1 GEN_3SIZE, ! Size of data in GEN_3DATA ; 1000 1 ! ; 1001 1 ! Misc constants. ; 1002 1 ! ; 1003 1 FILE_SIZE, ! Number of characters in FILE_NAME ; 1004 1 FILE_NAME : VECTOR [CH$ALLOCATION (MAX_FILE_NAME)], ; 1005 1 SI_RETRIES, ! Initial connection max retries ; 1006 1 PKT_RETRIES, ! Packet max retries ; 1007 1 DELAY, ! Amount of time to delay ; 1008 1 DEBUG_FLAG, ! Debugging mode on/off ; 1009 1 CHKTYPE, ! Type of block-check-type wanted ; 1010 1 ABT_FLAG, ! Aborted file disposition ; 1011 1 ! IBM_FLAG, ! IBM mode flag ; 1012 1 IBM_CHAR, ! Handshaking character ; 1013 1 WARN_FLAG, ! File warning flag ; 1014 1 FIL_NORMAL_FORM, ! File name type to send ; 1015 1 PARITY_TYPE, ! Type of parity we are using ; 1016 1 ECHO_FLAG, ! Local echo flag ; 1017 1 CONNECT_FLAG; ! True if SYS$OUTPUT and line ; 1018 1 ; 1019 1 ! xfering over are the same. ; 1020 1 ! ; 1021 1 ! KERFIL storage ; 1022 1 ! ; 1023 1 ; 1024 1 EXTERNAL ; 1025 1 FILE_TYPE, ! Type of file being processed ; 1026 1 FILE_DESC : BLOCK [8, BYTE]; ! Descriptor for the file name ; 1027 1 ; 1028 1 ! ; 1029 1 ! KERTRM storage ; 1030 1 ! ; 1031 1 ; 1032 1 EXTERNAL ; 1033 1 SESSION_DESC : BLOCK [8, BYTE], ! Session log file name ; 1034 1 DEBUG_DESC : BLOCK [8, BYTE], ! Debugging log file name ; 1035 1 TERM_DESC : BLOCK [8, BYTE], ! Terminal name descriptor ; 1036 1 TRANS_ECHO_FLAG, ! Transmit echo on/off ; 1037 1 TRANS_DELAY, ! Transmit delay ; 1038 1 TERM_FLAG; ! Terminal open flag ; 1039 1 ; 1040 1 %SBTTL 'Command parsing tables' ; 1041 1 ! ; 1042 1 !++ ; 1043 1 ! ; 1044 1 !The following are the command state tables for the KERMIT-32 ; 1045 1 !command processing. ; 1046 1 ! ; 1047 1 !-- ; 1048 1 ; 1049 1 $INIT_STATE (KERMIT_STATE, KERMIT_KEY); ; 1050 1 ; P 1051 1 $STATE (START, ; P 1052 1 ('BYE', DONE_STATE, , CMD_BYE, COMMAND), ; P 1053 1 ('CONNECT', CONN_STATE, , CMD_CONN, COMMAND), ; P 1054 1 ('EXIT', DONE_STATE, , CMD_EXIT, COMMAND), ; P 1055 1 ('FINISH', DONE_STATE, , CMD_FINISH, COMMAND), ; P 1056 1 ('GET', GET_STATE, , CMD_GET, COMMAND), ; P 1057 1 ('HELP', HELP_STATE, , CMD_HELP, COMMAND), ; P 1058 1 ('LOCAL', REM_STATE, , CMD_LOCAL, COMMAND), ; P 1059 1 ('LOG', LOG_STATE, , CMD_NULL, COMMAND), ; P 1060 1 ('LOGOUT', DONE_STATE, , CMD_LOGOUT, COMMAND), ; P 1061 1 ('PUSH', DONE_STATE, , CMD_PUSH, COMMAND), ; P 1062 1 ('QUIT', DONE_STATE, , CMD_EXIT, COMMAND), ; P 1063 1 ('RECEIVE', REC_STATE, , CMD_RECEIVE, COMMAND), ; P 1064 1 ('REMOTE', REM_STATE, , CMD_REMOTE, COMMAND), ; P 1065 1 ('SET', SET_STATE, , CMD_SET, COMMAND), ; P 1066 1 ('SEND', SEND_STATE, , CMD_SEND, COMMAND), ; P 1067 1 ('SERVER', DONE_STATE, , CMD_SERVER, COMMAND), ; P 1068 1 ('SHOW', SHOW_STATE, , CMD_SHOW, COMMAND), ; P 1069 1 ('STATUS', DONE_STATE, , CMD_STATUS, COMMAND), ; P 1070 1 ('TAKE', TAKE_STATE, , CMD_TAKE, COMMAND), ; P 1071 1 ('@', TAKE_STATE, , CMD_TAKE, COMMAND), ; P 1072 1 ('TRANSMIT', TRANSMIT_STATE, , CMD_TRANSMIT, COMMAND), ! ; P 1073 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1074 1 ) ; 1075 1 ; 1076 1 !++ ; 1077 1 ! CONNECT command. Format is: ; 1078 1 ! ; 1079 1 ! Kermit-32>CONNECT device ; 1080 1 ! ; 1081 1 ! Where: ; 1082 1 ! Device - Terminal line to connect to ; 1083 1 ! ; 1084 1 !-- ; 1085 1 ; P 1086 1 $STATE (CONN_STATE, ; P 1087 1 (TPA$_EOS, DONE_STATE), ; P 1088 1 (TPA$_LAMBDA, SET_LIN_STATE) ; 1089 1 ) ; 1090 1 ; 1091 1 !++ ; 1092 1 ! EXIT command. Format is: ; 1093 1 ! ; 1094 1 ! Kermit-32>EXIT ; 1095 1 ! ; 1096 1 ! Just exit back to VMS. ; 1097 1 ! ; 1098 1 !-- ; 1099 1 ; 1100 1 !++ ; 1101 1 ! HELP command. Format is: ; 1102 1 ! ; 1103 1 ! Kermit-32>HELP ; 1104 1 ! ; 1105 1 ! Do HELP processing for KERMIT-32. ; 1106 1 ! ; 1107 1 !-- ; 1108 1 ; P 1109 1 $STATE (HELP_STATE, ; P 1110 1 (TPA$_ANY, HELP_STATE, STORE_TEXT), ; P 1111 1 (TPA$_LAMBDA, DONE_STATE) ; 1112 1 ) ; 1113 1 ; 1114 1 %SBTTL 'QUIT command table' ; 1115 1 ; 1116 1 !++ ; 1117 1 ! QUIT command. Format is: ; 1118 1 ! ; 1119 1 ! Kermit-32>QUIT ; 1120 1 ! ; 1121 1 ! This command will just exit back to VMS. ; 1122 1 ! ; 1123 1 !-- ; 1124 1 %SBTTL 'GET command table' ; 1125 1 ; 1126 1 !++ ; 1127 1 ! GET command. Format is: ; 1128 1 ! ; 1129 1 ! Kermit-32>GET file-specification ; 1130 1 ! ; 1131 1 ! This command will cause KERMIT to get a file from the micro. ; 1132 1 ! It will assume that it is to used what ever line it currently is ; 1133 1 ! associated with (CONNECT or SET LINE). ; 1134 1 ! ; 1135 1 !-- ; 1136 1 ; P 1137 1 $STATE (GET_STATE, ; P 1138 1 (TPA$_ANY, GET_STATE, STORE_TEXT), ; P 1139 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,FILE_DESC) ; 1140 1 ) ; 1141 1 %SBTTL 'RECEIVE command table' ; 1142 1 ; 1143 1 !++ ; 1144 1 ! RECEIVE command. Format is: ; 1145 1 ! ; 1146 1 ! Kermit-32>RECEIVE file-specification ; 1147 1 ! ; 1148 1 ! This command will cause KERMIT to receive a file from the micro. ; 1149 1 ! It will assume that it is to used what ever line it currently is ; 1150 1 ! associated with (CONNECT or SET LINE). ; 1151 1 ! ; 1152 1 !-- ; 1153 1 ; P 1154 1 $STATE (REC_STATE, ; P 1155 1 (TPA$_ANY, REC1_STATE, STORE_TEXT), ; P 1156 1 (TPA$_LAMBDA, DONE_STATE) ; 1157 1 ) ; 1158 1 ; 1159 1 ; P 1160 1 $STATE (REC1_STATE, ; P 1161 1 (TPA$_ANY, REC1_STATE, STORE_TEXT), ; P 1162 1 (TPA$_LAMBDA, DONE_STATE, COPY_ALT_FILE) ; 1163 1 ) ; 1164 1 %SBTTL 'REMOTE command tables' ; 1165 1 ; 1166 1 !++ ; 1167 1 ! REMOTE command. This command will allow the local Kermit user to ; 1168 1 ! request the server Kermit to perform some action. ; 1169 1 ! ; 1170 1 ! Kermit-32>REMOTE keyword arguments ; 1171 1 ! ; 1172 1 ! Where: ; 1173 1 ! ; 1174 1 ! Keyword is one of: ; 1175 1 ! DELETE ; 1176 1 ! DIRECTORY ; 1177 1 ! DISK_USAGE ; 1178 1 ! HELP ; 1179 1 ! SPACE ; 1180 1 ! TYPE ; 1181 1 !-- ; P 1182 1 $STATE (REM_STATE, ; P 1183 1 ('COPY', REM2_STATE, ,GC_COPY, REM_TYPE), ; P 1184 1 ('CWD', REM1_STATE, ,GC_CONNECT, REM_TYPE), ; P 1185 1 ('DELETE', REM2_STATE, ,GC_DELETE, REM_TYPE), ; P 1186 1 ('DIRECTORY', REM1_STATE, ,GC_DIRECTORY, REM_TYPE), ; P 1187 1 ('DISK_USAGE', REM1_STATE, ,GC_DISK_USAGE, REM_TYPE), ; P 1188 1 ('EXIT', DONE_STATE, ,GC_EXIT, REM_TYPE), ; P 1189 1 ('HELP', REM1_STATE, ,GC_HELP, REM_TYPE), ; P 1190 1 ('HOST', REM2_STATE, ,GC_COMMAND, REM_TYPE), ; P 1191 1 ('LOGIN', REM2_STATE, ,GC_LGN, REM_TYPE), ; P 1192 1 ('LOGOUT', DONE_STATE, ,GC_LOGOUT, REM_TYPE), ; P 1193 1 ('RENAME', REM2_STATE, ,GC_RENAME, REM_TYPE), ; P 1194 1 ('SEND_MESSAGE',REM2_STATE, ,GC_SEND_MSG, REM_TYPE), ; P 1195 1 ('SPACE', REM1_STATE, ,GC_DISK_USAGE, REM_TYPE), ; P 1196 1 ('STATUS', DONE_STATE, ,GC_STATUS, REM_TYPE), ; P 1197 1 ('TYPE', REM2_STATE, ,GC_TYPE, REM_TYPE), ; P 1198 1 ('WHO', REM1_STATE, ,GC_WHO, REM_TYPE), ; P 1199 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1200 1 ) ; 1201 1 ; 1202 1 ! State to allow for either no arguments or a text string ; 1203 1 ; P 1204 1 $STATE (REM1_STATE, ; P 1205 1 (TPA$_ANY, REM2_STATE, STORE_TEXT), ; P 1206 1 (TPA$_LAMBDA, DONE_STATE) ; 1207 1 ) ; 1208 1 ; 1209 1 ! State to require a text string argument ; 1210 1 ; P 1211 1 $STATE (REM2_STATE, ; P 1212 1 (TPA$_ANY, REM2_STATE, STORE_TEXT), ; P 1213 1 (TPA$_LAMBDA, DONE_STATE, COPY_GEN_1DATA) ; 1214 1 ) ; 1215 1 %SBTTL 'SET command tables' ; 1216 1 ; 1217 1 !++ ; 1218 1 ! SET command. Format is: ; 1219 1 ! ; 1220 1 ! Kermit-32>SET parameter ; 1221 1 ! ; 1222 1 ! Where: ; 1223 1 ! Parameter - One of many keywords ; 1224 1 ! ; 1225 1 !-- ; 1226 1 ; P 1227 1 $STATE (SET_STATE, ; P 1228 1 ('BLOCK_CHECK_TYPE', SET_CHK_STATE), ; P 1229 1 ('DEBUGGING', SET_DEB_STATE), ; P 1230 1 ('DELAY', SET_DEL_STATE), ; P 1231 1 ('ESCAPE', SET_ESC_STATE), ; P 1232 1 ('FILE', SET_FIL_STATE), ; P 1233 1 ('HANDSHAKE', SET_HAN_STATE), ; P 1234 1 ('IBM_MODE', SET_IBM_STATE), ; P 1235 1 ('INCOMPLETE_FILE_DISPOSITION', SET_ABT_STATE), ; P 1236 1 ('LINE', SET_LIN_STATE), ; P 1237 1 ('LOCAL_ECHO', SET_ECH_STATE), ; P 1238 1 ('MESSAGE', SET_MSG_STATE), ; P 1239 1 ('PARITY', SET_PAR_STATE), ; P 1240 1 ('PROMPT', SET_PMT_STATE), ; P 1241 1 ('RECEIVE', SET_REC_STATE), ; P 1242 1 ('REPEAT_QUOTE',SET_RPT_STATE), ; P 1243 1 ('RETRY', SET_RTY_STATE), ; P 1244 1 ('SEND', SET_SND_STATE), ; P 1245 1 ('SERVER_TIMER',SET_SRV_STATE), ; P 1246 1 ('TRANSMIT', SET_TRN_STATE), ! ; P 1247 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1248 1 ) ; 1249 1 ; 1250 1 !++ ; 1251 1 ! ; 1252 1 ! SET INCOMPLETE_FILE [disposition] command. The possible arguments are ; 1253 1 ! KEEP or DISCARD. ; 1254 1 ! ; 1255 1 !-- ; 1256 1 ; P 1257 1 $STATE (SET_ABT_STATE, ; P 1258 1 ('DISCARD', DONE_STATE, STORE_ABT,, ,TRUE), ; P 1259 1 ('KEEP', DONE_STATE, STORE_ABT,, ,FALSE), ; P 1260 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1261 1 ) ; 1262 1 ; 1263 1 !++ ; 1264 1 ! ; 1265 1 ! SET BLOCK_CHECK_TYPE [type] command. The format is: ; 1266 1 ! ; 1267 1 ! Kermit-32>SET BLOCK_CHECK_TYPE [1_CHARACTER_CHECKSUM | ....] ; 1268 1 ! ; 1269 1 !-- ; 1270 1 ; P 1271 1 $STATE (SET_CHK_STATE, ; P 1272 1 ('1_CHARACTER_CHECKSUM', DONE_STATE, STORE_CHK,, ,CHK_1CHAR), ; P 1273 1 ('2_CHARACTER_CHECKSUM', DONE_STATE, STORE_CHK,, ,CHK_2CHAR), ; P 1274 1 ('3_CHARACTER_CRC_CCITT', DONE_STATE, STORE_CHK,, ,CHK_CRC), ; P 1275 1 ('ONE_CHARACTER_CHECKSUM', DONE_STATE, STORE_CHK,, ,CHK_1CHAR), ; P 1276 1 ('THREE_CHARACTER_CRC_CCITT', DONE_STATE, STORE_CHK,, ,CHK_CRC), ; P 1277 1 ('TWO_CHARACTER_CHECKSUM', DONE_STATE, STORE_CHK,, ,CHK_2CHAR), ; P 1278 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1279 1 ) ; 1280 1 ; 1281 1 !++ ; 1282 1 ! ; 1283 1 ! SET DEBUGGING command. The format is: ; 1284 1 ! ; 1285 1 ! Kermit-32>SET DEBUGGING (on/off) ; 1286 1 ! ; 1287 1 ! Where: ; 1288 1 ! on/off is either the ON or OFF keyword. ; 1289 1 ! ; 1290 1 !-- ; 1291 1 ; P 1292 1 $STATE (SET_DEB_STATE, ; P 1293 1 ('OFF', DONE_STATE, STORE_DEBUG, , ,FALSE), ; P 1294 1 ('ON', DONE_STATE, STORE_DEBUG, , ,TRUE), ; P 1295 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1296 1 ) ; 1297 1 ; 1298 1 !++ ; 1299 1 ! ; 1300 1 ! SET IBM_MODE command. The format is: ; 1301 1 ! ; 1302 1 ! Kermit-32>SET IBM_MODE (on/off) ; 1303 1 ! ; 1304 1 ! Where: ; 1305 1 ! on/off is either the ON or OFF keyword. ; 1306 1 ! ; 1307 1 !-- ; 1308 1 ; P 1309 1 $STATE (SET_IBM_STATE, ; P 1310 1 ('OFF', DONE_STATE, STORE_IBM, , ,FALSE), ; P 1311 1 ('ON', DONE_STATE, STORE_IBM, , ,TRUE), ; P 1312 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1313 1 ) ; 1314 1 !++ ; 1315 1 ! ; 1316 1 ! SET HANDSHAKE command. The format is: ; 1317 1 ! ; 1318 1 ! Kermit-32>SET HANDSHAKE ; 1319 1 ! ; 1320 1 ! Where: ; 1321 1 ! is the octal number representing the handshake character ; 1322 1 ! for file transfers. ; 1323 1 ! ; 1324 1 ! Negative values indicate no handshaking. ; 1325 1 !-- ; 1326 1 ; P 1327 1 $STATE (SET_HAN_STATE, ; P 1328 1 ('NONE', DONE_STATE, , -1 ,IBM_CHAR), ; P 1329 1 (TPA$_OCTAL, DONE_STATE, , ,IBM_CHAR) ; 1330 1 ) ; 1331 1 ; 1332 1 !++ ; 1333 1 ! ; 1334 1 ! SET DELAY command. The format is: ; 1335 1 ! ; 1336 1 ! Kermit-32>SET DELAY ; 1337 1 ! ; 1338 1 ! Where: ; 1339 1 ! is the number of seconds to delay before sending the ; 1340 1 ! SEND-INIT packet. ; 1341 1 !-- ; 1342 1 ; P 1343 1 $STATE (SET_DEL_STATE, ; P 1344 1 (TPA$_DECIMAL, DONE_STATE, , ,DELAY) ; 1345 1 ) ; 1346 1 ; 1347 1 !++ ; 1348 1 ! ; 1349 1 ! SET ESCAPE command. The format is: ; 1350 1 ! ; 1351 1 ! Kermit-32>SET ESCAPE ; 1352 1 ! ; 1353 1 ! Where: ; 1354 1 ! is the octal number representing the escape character ; 1355 1 ! for the CONNECT command processing. The default escape character ; 1356 1 ! is Control-]. ; 1357 1 !-- ; 1358 1 ; P 1359 1 $STATE (SET_ESC_STATE, ; P 1360 1 (TPA$_OCTAL, DONE_STATE, , ,ESCAPE_CHR) ; 1361 1 ) ; 1362 1 !++ ; 1363 1 ! ; 1364 1 ! SET FILE xxx command. The format is: ; 1365 1 ! ; 1366 1 ! Kermit-32>SET FILE ; 1367 1 ! ; 1368 1 ! Where: ; 1369 1 ! is one of: ; 1370 1 ! NAMING - Type of file name to send ; 1371 1 ! TYPE - Type of file to create on receive (or send in certain cases) ; 1372 1 ! ; 1373 1 !-- ; P 1374 1 $STATE (SET_FIL_STATE, ; P 1375 1 ('NAMING', SET_FNM_STATE), ; P 1376 1 ('TYPE', SET_FTP_STATE), ; P 1377 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1378 1 ) ; 1379 1 ; 1380 1 !++ ; 1381 1 ! ; 1382 1 ! SET FILE NAMING command. The format is: ; 1383 1 ! ; 1384 1 ! Kermit-32>SET FILE NAMING ; 1385 1 ! ; 1386 1 ! Where: ; 1387 1 ! is one of: ; 1388 1 ! FULL - Send complete file specification, including device and ; 1389 1 ! directory ; 1390 1 ! NORMAL_FORM - Send only name.type ; 1391 1 ! UNTRANSLATED - Send name.type, but don't do any fixups on it ; 1392 1 !-- ; 1393 1 ; P 1394 1 $STATE (SET_FNM_STATE, ; P 1395 1 ('FULL', DONE_STATE, STORE_FNM, , ,FNM_FULL), ; P 1396 1 ('NORMAL_FORM', DONE_STATE, STORE_FNM, , ,FNM_NORMAL), ; P 1397 1 ('UNTRANSLATED',DONE_STATE, STORE_FNM, , ,FNM_UNTRAN), ; P 1398 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1399 1 ) ; 1400 1 !++ ; 1401 1 ! ; 1402 1 ! SET FILE TYPE command. The format is: ; 1403 1 ! ; 1404 1 ! Kermit-32>SET FILE TYPE ; 1405 1 ! ; 1406 1 ! Where: ; 1407 1 ! is one of the following: ; 1408 1 ! ASCII - Normal ASCII file (stream ascii) ; 1409 1 ! BINARY - Micro binary file. ; 1410 1 !-- ; 1411 1 ; P 1412 1 $STATE (SET_FTP_STATE, ; P 1413 1 ('ASCII', DONE_STATE, STORE_FTP, , ,FILE_ASC), ; P 1414 1 ('BINARY', DONE_STATE, STORE_FTP, , ,FILE_BIN), ; P 1415 1 ('BLOCK', DONE_STATE, STORE_FTP, , ,FILE_BLK), ; P 1416 1 ('FIXED', DONE_STATE, STORE_FTP, , ,FILE_FIX), ; P 1417 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1418 1 ) ; 1419 1 ; 1420 1 !++ ; 1421 1 ! SET LINE command. Format is: ; 1422 1 ! ; 1423 1 ! Kermit-32>SET LINE terminal-device: ; 1424 1 ! ; 1425 1 ! Where: ; 1426 1 ! Terminal-device: is the terminal line to use to the transfer of ; 1427 1 ! the data and to use in the CONNECT command. ; 1428 1 ! ; 1429 1 !-- ; 1430 1 ; P 1431 1 $STATE (SET_LIN_STATE, ; P 1432 1 (TPA$_ANY, SET_LIN_STATE, STORE_TEXT), ; P 1433 1 (TPA$_LAMBDA, DONE_STATE, COPY_TERM_NAME) ; 1434 1 ) ; 1435 1 ; 1436 1 !++ ; 1437 1 ! SET LOCAL-ECHO command. Format is: ; 1438 1 ! ; 1439 1 ! Kermit-32>SET LOCAL-ECHO state ; 1440 1 ! ; 1441 1 ! Where: ; 1442 1 ! STATE is either the keyword ON or OFF. ; 1443 1 ! ; 1444 1 !- ; 1445 1 ; P 1446 1 $STATE (SET_ECH_STATE, ; P 1447 1 ('OFF', DONE_STATE, STORE_ECHO, , ,FALSE), ; P 1448 1 ('ON', DONE_STATE, STORE_ECHO, , ,TRUE), ; P 1449 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1450 1 ) ; 1451 1 ; 1452 1 ; 1453 1 !++ ; 1454 1 ! SET MESSAGE command. Format is: ; 1455 1 ! ; 1456 1 ! Kermit-32>SET MESSAGE ; 1457 1 ! ; 1458 1 ! Where the keyword is: ; 1459 1 ! ; 1460 1 ! FILE_NAMES - Type out file names being transferred ; 1461 1 ! PACKET_NUMBERS - Type out packet counts ; 1462 1 !-- ; 1463 1 ; P 1464 1 $STATE (SET_MSG_STATE, ; P 1465 1 ('FILE_NAMES', SET_MSG_FIL_STATE), ; P 1466 1 ('PACKET_NUMBERS', SET_MSG_PKT_STATE), ; P 1467 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1468 1 ) ; 1469 1 ; P 1470 1 $STATE (SET_MSG_FIL_STATE, ; P 1471 1 ('OFF', DONE_STATE, STORE_MSG_FIL, , ,FALSE), ; P 1472 1 ('ON', DONE_STATE, STORE_MSG_FIL, , ,TRUE), ; P 1473 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1474 1 ) ; 1475 1 ; P 1476 1 $STATE (SET_MSG_PKT_STATE, ; P 1477 1 ('OFF', DONE_STATE, STORE_MSG_PKT, , ,FALSE), ; P 1478 1 ('ON', DONE_STATE, STORE_MSG_PKT, , ,TRUE), ; P 1479 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1480 1 ) ; 1481 1 ; 1482 1 !++ ; 1483 1 ! SET PROMPT command. ; 1484 1 ! ; 1485 1 ! Kermit-32>SET PROMPT new-prompt-text ; 1486 1 ! ; 1487 1 !-- ; 1488 1 ; P 1489 1 $STATE (SET_PMT_STATE, ; P 1490 1 (TPA$_ANY, SET_PMT_STATE, STORE_TEXT), ; P 1491 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,PROMPT_DESC) ; 1492 1 ) ; 1493 1 ; 1494 1 !++ ; 1495 1 ! SET REPEAT_QUOTE command. Format is: ; 1496 1 ! ; 1497 1 ! Kermit-32>SET REPEAT_QUOTE ; 1498 1 ! ; 1499 1 !-- ; 1500 1 ; P 1501 1 $STATE (SET_RPT_STATE, ; P 1502 1 (TPA$_OCTAL, DONE_STATE, CHECK_QUOTE, ,SET_REPT_CHR) ; 1503 1 ) ; 1504 1 ; 1505 1 !++ ; 1506 1 ! SET RETRY command. Format is: ; 1507 1 ! ; 1508 1 ! Kermit-32>SET RETRY ; 1509 1 ! ; 1510 1 ! Where the keyword is: ; 1511 1 ! ; 1512 1 ! INITIAL_CONNECTION - set number of initial connection retries. ; 1513 1 ! PACKET - set the number of packet retries. ; 1514 1 !-- ; 1515 1 ; P 1516 1 $STATE (SET_RTY_STATE, ; P 1517 1 ('INITIAL_CONNECTION', SET_RTY_INI_STATE), ; P 1518 1 ('PACKET', SET_RTY_PKT_STATE), ; P 1519 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1520 1 ) ; 1521 1 ; 1522 1 ; P 1523 1 $STATE (SET_RTY_INI_STATE, ; P 1524 1 (TPA$_DECIMAL, DONE_STATE, , ,SI_RETRIES) ; 1525 1 ) ; 1526 1 ; P 1527 1 $STATE (SET_RTY_PKT_STATE, ; P 1528 1 (TPA$_DECIMAL, DONE_STATE, , ,PKT_RETRIES) ; 1529 1 ) ; 1530 1 %SBTTL 'SET PARITY type' ; 1531 1 ; 1532 1 !++ ; 1533 1 ! SET PARITY command. Format is: ; 1534 1 ! ; 1535 1 ! Kermit-32>SET PARITY type ; 1536 1 ! ; 1537 1 ! The type can be: ; 1538 1 ! ; 1539 1 ! NONE - No parity processing ; 1540 1 ! MARK - Mark parity ; 1541 1 ! SPACE - Space parity ; 1542 1 ! EVEN - Even parity ; 1543 1 ! ODD - Odd parity ; 1544 1 ! ; 1545 1 !-- ; 1546 1 ; P 1547 1 $STATE (SET_PAR_STATE, ; P 1548 1 ('EVEN', DONE_STATE, STORE_PARITY, , ,PR_EVEN), ; P 1549 1 ('MARK', DONE_STATE, STORE_PARITY, , ,PR_MARK), ; P 1550 1 ('NONE', DONE_STATE, STORE_PARITY, , ,PR_NONE), ; P 1551 1 ('ODD', DONE_STATE, STORE_PARITY, , ,PR_ODD), ; P 1552 1 ('SPACE', DONE_STATE, STORE_PARITY, , ,PR_SPACE), ; P 1553 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1554 1 ) ; 1555 1 %SBTTL 'SET RECEIVE table' ; 1556 1 ; 1557 1 !++ ; 1558 1 ! SET RECEIVE command. Format is: ; 1559 1 ! ; 1560 1 ! Kermit-32>SET RECEIVE item ; 1561 1 ! ; 1562 1 ! Where: ; 1563 1 ! Item - One of the following: ; 1564 1 ! PACKET-LENGTH ; 1565 1 ! PADDING ; 1566 1 ! PADCHAR ; 1567 1 ! TIMEOUT ; 1568 1 ! END-OF-LINE ; 1569 1 ! QUOTE ; 1570 1 ! ; 1571 1 !-- ; 1572 1 ; P 1573 1 $STATE (SET_REC_STATE, ; P 1574 1 ('EIGHT-BIT-QUOTE', SR_8QU_STATE), ; P 1575 1 ('END_OF_LINE', SR_EOL_STATE), ; P 1576 1 ('PACKET_LENGTH', SR_PKT_STATE), ; P 1577 1 ('PADCHAR', SR_PDC_STATE), ; P 1578 1 ('PADDING', SR_PAD_STATE), ; P 1579 1 ('QUOTE', SR_QUO_STATE), ; P 1580 1 ('START_OF_PACKET', SR_SOH_STATE), ; P 1581 1 ('TIMEOUT', SR_TIM_STATE), ; P 1582 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1583 1 ) ; 1584 1 ; 1585 1 !++ ; 1586 1 ! ; 1587 1 ! SET RECEIVE PACKET-LENGTH command. Format is: ; 1588 1 ! ; 1589 1 ! Kermit-32>SET RECEIVE PACKET-LENGTH ; 1590 1 ! ; 1591 1 ! Where: ; 1592 1 ! is a decimal number that specifies the length of a ; 1593 1 ! receive packet. ; 1594 1 ! ; 1595 1 !-- ; 1596 1 ; P 1597 1 $STATE (SR_PKT_STATE, ; P 1598 1 (TPA$_DECIMAL, DONE_STATE, CHECK_PACKET_LEN, ,RCV_PKT_SIZE) ; 1599 1 ) ; 1600 1 ; 1601 1 ; 1602 1 !++ ; 1603 1 ! ; 1604 1 ! SET RECEIVE PADDING command. The format of this command is: ; 1605 1 ! ; 1606 1 ! Kermit-32>SET RECEIVE PADDING ; 1607 1 ! ; 1608 1 ! Where: ; 1609 1 ! is the decimal number of padding characters to output. ; 1610 1 ! ; 1611 1 !-- ; 1612 1 ; P 1613 1 $STATE (SR_PAD_STATE, ; P 1614 1 (TPA$_DECIMAL, DONE_STATE, CHECK_NPAD, ,RCV_NPAD) ; 1615 1 ) ; 1616 1 ; 1617 1 !++ ; 1618 1 ! ; 1619 1 ! SET RECEIVE PADCHAR command. Format is: ; 1620 1 ! ; 1621 1 ! Kermit-32>SET RECEIVE PADCHAR ; 1622 1 ! ; 1623 1 ! Where: ; 1624 1 ! is the octal representation of the padding character ; 1625 1 ! that is to be used. ; 1626 1 ! ; 1627 1 !-- ; 1628 1 ; P 1629 1 $STATE (SR_PDC_STATE, ; P 1630 1 (TPA$_OCTAL, DONE_STATE, CHECK_PAD_CHAR, ,RCV_PADCHAR) ; 1631 1 ) ; 1632 1 !++ ; 1633 1 ! ; 1634 1 ! SET RECEIVE START_OF_PACKET command. Format is: ; 1635 1 ! ; 1636 1 ! Kermit-32>SET RECEIVE START_OF_PACKET ; 1637 1 ! ; 1638 1 ! Where: ; 1639 1 ! is the octal representation of the padding character ; 1640 1 ! that is to be used. ; 1641 1 ! ; 1642 1 !-- ; 1643 1 ; P 1644 1 $STATE (SR_SOH_STATE, ; P 1645 1 (TPA$_OCTAL, DONE_STATE, CHECK_SOH, ,RCV_SOH) ; 1646 1 ) ; 1647 1 ; 1648 1 !++ ; 1649 1 ! ; 1650 1 ! SET RECEIVE TIMEOUT command. The format is: ; 1651 1 ! ; 1652 1 ! Kermit-32>SET RECEIVE TIMEOUT ; 1653 1 ! ; 1654 1 ! Where: ; 1655 1 ! is the number of seconds before KERMIT-32 should time out ; 1656 1 ! attempting to receive a correct message. ; 1657 1 ! ; 1658 1 !-- ; 1659 1 ; P 1660 1 $STATE (SR_TIM_STATE, ; P 1661 1 (TPA$_DECIMAL, DONE_STATE, , ,RCV_TIMEOUT) ; 1662 1 ) ; 1663 1 ; 1664 1 !++ ; 1665 1 ! SET END-OF-LINE command. Format is: ; 1666 1 ! ; 1667 1 ! Kermit-32>SET RECEIVE END-OF-LINE ; 1668 1 ! ; 1669 1 ! Where: ; 1670 1 ! is the octal number representation of the character ; 1671 1 ! that is the end of line character. ; 1672 1 ! ; 1673 1 !-- ; 1674 1 ; P 1675 1 $STATE (SR_EOL_STATE, ; P 1676 1 (TPA$_OCTAL, DONE_STATE, CHECK_EOL, ,RCV_EOL) ; 1677 1 ) ; 1678 1 ; 1679 1 !++ ; 1680 1 ! SET RECEIVE QUOTE command. The format is: ; 1681 1 ! ; 1682 1 ! Kermit-32>SET RECEIVE QUOTE ; 1683 1 ! ; 1684 1 ! Where: ; 1685 1 ! is the octal number representing the quoting character. ; 1686 1 ! ; 1687 1 !-- ; 1688 1 ; P 1689 1 $STATE (SR_QUO_STATE, ; P 1690 1 (TPA$_OCTAL, DONE_STATE, CHECK_QUOTE, ,RCV_QUOTE_CHR) ; 1691 1 ) ; 1692 1 %SBTTL 'SET RECEIVE EIGHT-BIT-QUOTE' ; 1693 1 ; 1694 1 !++ ; 1695 1 ! This routine will handle the setting of the eight bit quoting character. ; 1696 1 ! ; 1697 1 ! Kermit-32>SET RECEIVE EIGHT-BIT-QUOTE ; 1698 1 ! ; 1699 1 ! Where: ; 1700 1 ! is the octal number representing the quoting character. ; 1701 1 ! ; 1702 1 !-- ; 1703 1 ; P 1704 1 $STATE (SR_8QU_STATE, ; P 1705 1 (TPA$_OCTAL, DONE_STATE, CHECK_QUOTE, ,RCV_8QUOTE_CHR) ; 1706 1 ) ; 1707 1 %SBTTL 'SET SEND tables' ; 1708 1 ; 1709 1 !++ ; 1710 1 ! SET SEND command. Format is: ; 1711 1 ! ; 1712 1 ! Kermit-32>SET SEND item ; 1713 1 ! ; 1714 1 ! Where: ; 1715 1 ! Item - One of the following: ; 1716 1 ! PACKET-LENGTH ; 1717 1 ! PADDING ; 1718 1 ! PADCHAR ; 1719 1 ! TIMEOUT ; 1720 1 ! END-OF-LINE ; 1721 1 ! QUOTE ; 1722 1 ! ; 1723 1 !-- ; 1724 1 ; P 1725 1 $STATE (SET_SND_STATE, ; P 1726 1 ('END_OF_LINE', SS_EOL_STATE), ; P 1727 1 ('PACKET_LENGTH', SS_PKT_STATE), ; P 1728 1 ('PADCHAR', SS_PDC_STATE), ; P 1729 1 ('PADDING', SS_PAD_STATE), ; P 1730 1 ('QUOTE', SS_QUO_STATE), ; P 1731 1 ('START_OF_PACKET', SS_SOH_STATE), ; P 1732 1 ('TIMEOUT', SS_TIM_STATE), ; P 1733 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1734 1 ) ; 1735 1 ; 1736 1 ; 1737 1 ; 1738 1 !++ ; 1739 1 ! ; 1740 1 ! SET SEND PACKET-LENGTH command. Format is: ; 1741 1 ! ; 1742 1 ! Kermit-32>SET SEND PACKET-LENGTH ; 1743 1 ! ; 1744 1 ! Where: ; 1745 1 ! is a decimal number that specifies the length of a ; 1746 1 ! receive packet. ; 1747 1 ! ; 1748 1 !-- ; 1749 1 ; P 1750 1 $STATE (SS_PKT_STATE, ; P 1751 1 (TPA$_DECIMAL, DONE_STATE, CHECK_PACKET_LEN, ,SND_PKT_SIZE) ; 1752 1 ) ; 1753 1 ; 1754 1 ; 1755 1 !++ ; 1756 1 ! ; 1757 1 ! SET SEND PADDING command. The format of this command is: ; 1758 1 ! ; 1759 1 ! Kermit-32>SET SEND PADDING ; 1760 1 ! ; 1761 1 ! Where: ; 1762 1 ! is the decimal number of padding characters to output. ; 1763 1 ! ; 1764 1 !-- ; 1765 1 ; P 1766 1 $STATE (SS_PAD_STATE, ; P 1767 1 (TPA$_DECIMAL, DONE_STATE, CHECK_NPAD, ,SND_NPAD) ; 1768 1 ) ; 1769 1 ; 1770 1 !++ ; 1771 1 ! ; 1772 1 ! SET SEND PADCHAR command. Format is: ; 1773 1 ! ; 1774 1 ! Kermit-32>SET SEND PADCHAR ; 1775 1 ! ; 1776 1 ! Where: ; 1777 1 ! is the octal representation of the padding character ; 1778 1 ! that is to be used. ; 1779 1 ! ; 1780 1 !-- ; 1781 1 ; P 1782 1 $STATE (SS_PDC_STATE, ; P 1783 1 (TPA$_OCTAL, DONE_STATE, CHECK_PAD_CHAR, ,SND_PADCHAR) ; 1784 1 ) ; 1785 1 !++ ; 1786 1 ! ; 1787 1 ! SET RECEIVE START_OF_PACKET command. Format is: ; 1788 1 ! ; 1789 1 ! Kermit-32>SET RECEIVE START_OF_PACKET ; 1790 1 ! ; 1791 1 ! Where: ; 1792 1 ! is the octal representation of the padding character ; 1793 1 ! that is to be used. ; 1794 1 ! ; 1795 1 !-- ; 1796 1 ; P 1797 1 $STATE (SS_SOH_STATE, ; P 1798 1 (TPA$_OCTAL, DONE_STATE, CHECK_SOH, ,SND_SOH) ; 1799 1 ) ; 1800 1 ; 1801 1 !++ ; 1802 1 ! ; 1803 1 ! SET SEND TIMEOUT command. The format is: ; 1804 1 ! ; 1805 1 ! Kermit-32>SET SEND TIMEOUT ; 1806 1 ! ; 1807 1 ! Where: ; 1808 1 ! is the number of seconds before KERMIT-32 should time out ; 1809 1 ! attempting to receive a correct message. ; 1810 1 ! ; 1811 1 !-- ; 1812 1 ; P 1813 1 $STATE (SS_TIM_STATE, ; P 1814 1 (TPA$_DECIMAL, DONE_STATE, , ,SND_TIMEOUT) ; 1815 1 ) ; 1816 1 ; 1817 1 !++ ; 1818 1 ! SET SEND END-OF-LINE command. Format is: ; 1819 1 ! ; 1820 1 ! Kermit-32>SET SEND END-OF-LINE ; 1821 1 ! ; 1822 1 ! Where: ; 1823 1 ! is the octal number representation of the character ; 1824 1 ! that is the end of line character. ; 1825 1 ! ; 1826 1 !-- ; 1827 1 ; P 1828 1 $STATE (SS_EOL_STATE, ; P 1829 1 (TPA$_OCTAL, DONE_STATE, CHECK_EOL, ,SND_EOL) ; 1830 1 ) ; 1831 1 ; 1832 1 !++ ; 1833 1 ! SET SEND QUOTA command. The format is: ; 1834 1 ! ; 1835 1 ! Kermit-32>SET SEND QUOTA ; 1836 1 ! ; 1837 1 ! Where: ; 1838 1 ! is the octal number representing the quoting character. ; 1839 1 ! ; 1840 1 !-- ; 1841 1 ; P 1842 1 $STATE (SS_QUO_STATE, ; P 1843 1 (TPA$_OCTAL, DONE_STATE, CHECK_QUOTE, ,SND_QUOTE_CHR) ; 1844 1 ) ; 1845 1 ; 1846 1 !++ ; 1847 1 ! SET SERVER_TIMER command. ; 1848 1 ! ; 1849 1 ! This sets the time between naks send when server is idle. ; 1850 1 !-- ; 1851 1 ; P 1852 1 $STATE (SET_SRV_STATE, ; P 1853 1 (TPA$_DECIMAL, DONE_STATE, , ,SRV_TIMEOUT) ; 1854 1 ) ; 1855 1 ; 1856 1 !++ ; 1857 1 ! ; 1858 1 ! SET TRANSMIT xxx command. The format is: ! and below ; 1859 1 ! ; 1860 1 ! Kermit-32>SET TRANSMIT ; 1861 1 ! ; 1862 1 ! Where: ; 1863 1 ! is one of: ; 1864 1 ! DELAY - Time to delay after each carriage return ; 1865 1 ! ECHO - Echo from terminal line or just print line numbers ; 1866 1 ! ; 1867 1 !-- ; P 1868 1 $STATE (SET_TRN_STATE, ! ; P 1869 1 ('DELAY', SET_TRD_STATE), ! ; P 1870 1 ('ECHO', SET_TRE_STATE), ! ; P 1871 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ! ; 1872 1 ) ! ; 1873 1 ; 1874 1 !++ ; 1875 1 ! ; 1876 1 ! SET TRANSMIT DELAY command. Format is: ! and below ; 1877 1 ! ; 1878 1 ! Kermit-32>SET TRANSMIT DELAY ; 1879 1 ! ; 1880 1 ! Where: ; 1881 1 ! is a decimal digit that specifies the length of time in ; 1882 1 ! tenths of a second to delay after transmitting a carriage return. ; 1883 1 ! ; 1884 1 !-- ; 1885 1 ; P 1886 1 $STATE (SET_TRD_STATE, ! ; P 1887 1 (TPA$_DIGIT, DONE_STATE, STORE_TR_DELAY, ,TRANS_DELAY) ! ; 1888 1 ) ! ; 1889 1 ; 1890 1 !++ ; 1891 1 ! ; 1892 1 ! SET TRANSMIT ECHO command. The format is: ! and below ; 1893 1 ! ; 1894 1 ! Kermit-32>SET TRANSMIT ECHO (on/off) ; 1895 1 ! ; 1896 1 ! Where: ; 1897 1 ! on/off is either the ON or OFF keyword. ; 1898 1 ! ; 1899 1 !-- ; 1900 1 ; P 1901 1 $STATE (SET_TRE_STATE, ! ; P 1902 1 ('ON', DONE_STATE, STORE_TR_ECHO, , ,TRUE), ! ; P 1903 1 ('OFF', DONE_STATE, STORE_TR_ECHO, , ,FALSE),! ; P 1904 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ! ; 1905 1 ) ! ; 1906 1 %SBTTL 'SEND command' ; 1907 1 ; 1908 1 !++ ; 1909 1 ! SEND command. The format is: ; 1910 1 ! ; 1911 1 ! Kermit-32>SEND file-specification ; 1912 1 ! ; 1913 1 ! Where: ; 1914 1 ! FILE-SPECIFICATION is any valid VAX/VMS file specification. ; 1915 1 ! ; 1916 1 !-- ; 1917 1 ; P 1918 1 $STATE (SEND_STATE, ; P 1919 1 (TPA$_ANY, SEND_STATE, STORE_TEXT), ; P 1920 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,FILE_DESC) ; 1921 1 ) ; 1922 1 %SBTTL 'SHOW command' ; 1923 1 ; 1924 1 !++ ; 1925 1 ! SHOW command. The format is: ; 1926 1 ! ; 1927 1 ! Kermit-32>SHOW ; 1928 1 ! ; 1929 1 ! Where: ; 1930 1 ! is one of the following: ; 1931 1 ! SEND - Send parameters ; 1932 1 ! RECEIVE - Receive parameters ; 1933 1 ! DEBUGGING - State of the debugging flag ; 1934 1 ! FILE-TYPE - Type of the file ; 1935 1 ! LOCAL-ECHO - Local echo flag ; 1936 1 ! LINE - Current line associated ; 1937 1 ! ESCAPE - Current escape character ; 1938 1 ! DELAY - Delay parameter. ; 1939 1 ! ; 1940 1 !-- ; 1941 1 ; P 1942 1 $STATE (SHOW_STATE, ; P 1943 1 ('ALL', DONE_STATE, ,SHOW_ALL, SHOW_TYPE), ; P 1944 1 ('BLOCK_CHECK_TYPE', DONE_STATE, ,SHOW_CHK, SHOW_TYPE), ; P 1945 1 ('COMMUNICATIONS', DONE_STATE, ,SHOW_COM, SHOW_TYPE), ; P 1946 1 ('DEBUGGING', DONE_STATE, ,SHOW_DEB, SHOW_TYPE), ; P 1947 1 ('DELAY', DONE_STATE, ,SHOW_DEL, SHOW_TYPE), ; P 1948 1 ('ESCAPE', DONE_STATE, ,SHOW_ESC, SHOW_TYPE), ; P 1949 1 ('FILE_PARAMETERS', DONE_STATE, ,SHOW_FIL, SHOW_TYPE), ; P 1950 1 ('INCOMPLETE_FILE_DISPOSITION',DONE_STATE, ,SHOW_ABT, SHOW_TYPE), ; P 1951 1 ('LINE', DONE_STATE, ,SHOW_LIN, SHOW_TYPE), ; P 1952 1 ('LOCAL_ECHO', DONE_STATE, ,SHOW_ECH, SHOW_TYPE), ; P 1953 1 ('PACKET', DONE_STATE, ,SHOW_PAC, SHOW_TYPE), ; P 1954 1 ('PARITY', DONE_STATE, ,SHOW_PAR, SHOW_TYPE), ; P 1955 1 ('SEND', DONE_STATE, ,SHOW_SEN, SHOW_TYPE), ; P 1956 1 ('TIMING', DONE_STATE, ,SHOW_TIM, SHOW_TYPE), ; P 1957 1 ('RECEIVE', DONE_STATE, ,SHOW_REC, SHOW_TYPE), ; P 1958 1 ('RETRY', DONE_STATE, ,SHOW_RTY, SHOW_TYPE), ; P 1959 1 ('VERSION', DONE_STATE, ,SHOW_VER, SHOW_TYPE), ; P 1960 1 ('TRANSMIT', DONE_STATE, ,SHOW_TRN, SHOW_TYPE), ! ; P 1961 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1962 1 ) ; 1963 1 %SBTTL 'LOG command' ; 1964 1 ; 1965 1 !++ ; 1966 1 ! The LOG command allows the specification of a session or transaction ; 1967 1 !log file. ; 1968 1 !-- ; 1969 1 ; P 1970 1 $STATE (LOG_STATE, ; P 1971 1 ('DEBUGGING', DBG_STATE), ; P 1972 1 ('SESSION', SES_STATE), ; P 1973 1 ('TRANSACTIONS',TRN_STATE), ; P 1974 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 1975 1 ) ; 1976 1 ; P 1977 1 $STATE (DBG_STATE, ; P 1978 1 (TPA$_ANY, DBG_STATE, STORE_TEXT), ; P 1979 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,DEBUG_DESC) ; 1980 1 ) ; 1981 1 ; P 1982 1 $STATE (SES_STATE, ; P 1983 1 (TPA$_ANY, SES_STATE, STORE_TEXT), ; P 1984 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,SESSION_DESC) ; 1985 1 ) ; 1986 1 ; P 1987 1 $STATE (TRN_STATE, ; P 1988 1 (TPA$_ANY, TRN_STATE, STORE_TEXT), ; P 1989 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,TRANSACTION_DESC) ; 1990 1 ) ; 1991 1 ; 1992 1 ; 1993 1 %SBTTL 'Take command tables' ; 1994 1 ; 1995 1 !++ ; 1996 1 ! The following describes the TAKE (or @) command. ; 1997 1 !-- ; 1998 1 ; P 1999 1 $STATE (TAKE_STATE, ; P 2000 1 ('/', TAK_SWT_STATE, COPY_DESC, , ,TAK_FIL_DESC), ; P 2001 1 (TPA$_ANY, TAKE_STATE, STORE_TEXT), ; P 2002 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,TAK_FIL_DESC) ; 2003 1 ) ; 2004 1 ; P 2005 1 $STATE (TAK_SWT_STATE, ; P 2006 1 ('DISPLAY', DONE_STATE, ,TRUE, TAKE_DISPLAY), ; P 2007 1 (TPA$_SYMBOL, TPA$_FAIL, KEY_ERROR) ; 2008 1 ) ; 2009 1 ; 2010 1 %SBTTL 'TRANSMIT command' ! ; 2011 1 ! ; 2012 1 !++ ! ; 2013 1 ! TRANSMIT command. The format is: ! ; 2014 1 ! ! ; 2015 1 ! Kermit-32>TRANSMIT file-specification ! ; 2016 1 ! ! ; 2017 1 ! Where: ! ; 2018 1 ! FILE-SPECIFICATION is any valid VAX/VMS file specification. ! ; 2019 1 ! ! ; 2020 1 !-- ! ; 2021 1 ! ; P 2022 1 $STATE (TRANSMIT_STATE, ! ; P 2023 1 (TPA$_ANY, TRANSMIT_STATE, STORE_TEXT), ! ; P 2024 1 (TPA$_LAMBDA, DONE_STATE, COPY_DESC, , ,FILE_DESC) ! ; 2025 1 ) ! ; 2026 1 ; 2027 1 %SBTTL 'Done state' ; 2028 1 ; 2029 1 !++ ; 2030 1 ! This is the single state that is the required CONFIRM for the end ; 2031 1 ! of the commands. ; 2032 1 !-- ; 2033 1 ; P 2034 1 $STATE (DONE_STATE, ; P 2035 1 (TPA$_EOS, TPA$_EXIT) ; 2036 1 ) ; 2037 1 ; 2038 1 !++ ; 2039 1 ! ; 2040 1 ! End of the KERMIT-32 command definitions ; 2041 1 ! ; 2042 1 !-- ; 2043 1 ; 2044 1 PSECT OWN = $OWN$; ; 2045 1 PSECT GLOBAL = $GLOBAL$; ; 2046 1 ; 2047 1 ! ; 2048 1 ROUTINE MAIN_ROUTINE : NOVALUE = ; 2049 1 ; 2050 1 !++ ; 2051 1 ! FUNCTIONAL DESCRIPTION: ; 2052 1 ! ; 2053 1 ! This is the main routine for KERMIT-32. This routine will ; 2054 1 ! initialize the various parameters and then call the command ; 2055 1 ! scanner to process commands. ; 2056 1 ! ; 2057 1 ! FORMAL PARAMETERS: ; 2058 1 ! ; 2059 1 ! None. ; 2060 1 ! ; 2061 1 ! IMPLICIT INPUTS: ; 2062 1 ! ; 2063 1 ! None. ; 2064 1 ! ; 2065 1 ! IMPLICIT OUTPUTS: ; 2066 1 ! ; 2067 1 ! None. ; 2068 1 ! ; 2069 1 ! ROUTINE VALUE and ; 2070 1 ! COMPLETION CODES: ; 2071 1 ! ; 2072 1 ! None. ; 2073 1 ! ; 2074 1 ! SIDE EFFECTS: ; 2075 1 ! ; 2076 1 ! None. ; 2077 1 ! ; 2078 1 !-- ; 2079 1 ; 2080 2 BEGIN ; 2081 2 ; 2082 2 LOCAL ; 2083 2 STATUS, ! Returned status ; 2084 2 CRC_BIT_MASK, ! Bit mask for CRC initialization ; 2085 2 LOOP_FLAG; ; 2086 2 ; 2087 2 ! ; 2088 2 ! Initialize some variables ; 2089 2 ! ; 2090 2 STATUS = LIB$PUT_OUTPUT (IDENT_STRING); ! Say who we are ; 2091 2 MSG_INIT (); ! Initialize message processing ; 2092 2 TERM_INIT (); ! Init terminal processing ; 2093 2 TT_INIT (); ! Init text processing ; 2094 2 FILE_INIT (); ! Init file processing ; 2095 2 SY_INIT (); ! Init system routines ; 2096 2 ESCAPE_CHR = CHR_ESCAPE; ; 2097 2 ! ; 2098 2 ! Initialize some VAX/VMS interface items ; 2099 2 ! ; 2100 2 CRC_BIT_MASK = %O'102010'; ! CRC bit mask ; 2101 2 LIB$CRC_TABLE (CRC_BIT_MASK, CRC_TABLE); ; 2102 2 LIB$ESTABLISH (KERM_HANDLER); ; 2103 2 ! ; 2104 2 ! Initialize transaction log file descriptor ; 2105 2 ! ; 2106 2 INIT_STR_DESC (TRANSACTION_DESC, TRANSACTION_NAME, 0); ; 2107 2 ! ; 2108 2 ! Initialize take file descriptor ; 2109 2 ! ; 2110 2 INIT_STR_DESC (TAK_FIL_DESC, TAK_FIL_NAME, 0); ; 2111 2 ! ; 2112 2 ! Initialize prompt descriptor ; 2113 2 ! ; 2114 2 INIT_STR_DESC (PROMPT_DESC, PROMPT_TEXT, 0); ; 2115 2 ! ; 2116 2 ! Take initialization file ; 2117 2 ! ; 2118 2 COMND_FILE (%ASCID'VMSKERMIT', %ASCID'.INI;0', TRUE, FALSE); ; 2119 2 ! ; 2120 2 ! Main command loop ; 2121 2 ! ; 2122 2 COMND (); ; 2123 1 END; ! end of routine MAIN_ROUTINE .TITLE KERMIT .IDENT \3.3.111\ .PSECT _LIB$KEY1$,NOWRT, SHR, PIC,1 ;TPA$KEYST0 U.65: .BLKB 0 ;TPA$KEYST U.67: .ASCII \BYE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.73: .BLKB 0 ;TPA$KEYST U.75: .ASCII \CONNECT\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.81: .BLKB 0 ;TPA$KEYST U.83: .ASCII \EXIT\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.88: .BLKB 0 ;TPA$KEYST U.90: .ASCII \FINISH\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.95: .BLKB 0 ;TPA$KEYST U.97: .ASCII \GET\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.103: .BLKB 0 ;TPA$KEYST U.105: .ASCII \HELP\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.111: .BLKB 0 ;TPA$KEYST U.113: .ASCII \LOCAL\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.119: .BLKB 0 ;TPA$KEYST U.121: .ASCII \LOG\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.127: .BLKB 0 ;TPA$KEYST U.129: .ASCII \LOGOUT\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.134: .BLKB 0 ;TPA$KEYST U.136: .ASCII \PUSH\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.141: .BLKB 0 ;TPA$KEYST U.143: .ASCII \QUIT\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.148: .BLKB 0 ;TPA$KEYST U.150: .ASCII \RECEIVE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.156: .BLKB 0 ;TPA$KEYST U.158: .ASCII \REMOTE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.163: .BLKB 0 ;TPA$KEYST U.165: .ASCII \SET\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.171: .BLKB 0 ;TPA$KEYST U.173: .ASCII \SEND\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.179: .BLKB 0 ;TPA$KEYST U.181: .ASCII \SERVER\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.186: .BLKB 0 ;TPA$KEYST U.188: .ASCII \SHOW\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.194: .BLKB 0 ;TPA$KEYST U.196: .ASCII \STATUS\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.201: .BLKB 0 ;TPA$KEYST U.203: .ASCII \TAKE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.213: .BLKB 0 ;TPA$KEYST U.215: .ASCII \TRANSMIT\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.224: .BYTE -1 ; ; ;TPA$KEYST0 U.255: .BLKB 0 ;TPA$KEYST U.257: .ASCII \COPY\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.263: .BLKB 0 ;TPA$KEYST U.265: .ASCII \CWD\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.271: .BLKB 0 ;TPA$KEYST U.273: .ASCII \DELETE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.278: .BLKB 0 ;TPA$KEYST U.280: .ASCII \DIRECTORY\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.285: .BLKB 0 ;TPA$KEYST U.287: .ASCII \DISK_USAGE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.292: .BLKB 0 ;TPA$KEYST U.294: .ASCII \EXIT\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.299: .BLKB 0 ;TPA$KEYST U.301: .ASCII \HELP\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.306: .BLKB 0 ;TPA$KEYST U.308: .ASCII \HOST\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.313: .BLKB 0 ;TPA$KEYST U.315: .ASCII \LOGIN\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.320: .BLKB 0 ;TPA$KEYST U.322: .ASCII \LOGOUT\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.327: .BLKB 0 ;TPA$KEYST U.329: .ASCII \RENAME\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.334: .BLKB 0 ;TPA$KEYST U.336: .ASCII \SEND_MESSAGE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.341: .BLKB 0 ;TPA$KEYST U.343: .ASCII \SPACE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.348: .BLKB 0 ;TPA$KEYST U.350: .ASCII \STATUS\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.355: .BLKB 0 ;TPA$KEYST U.357: .ASCII \TYPE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.362: .BLKB 0 ;TPA$KEYST U.364: .ASCII \WHO\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.372: .BYTE -1 ; ; ;TPA$KEYST0 U.384: .BLKB 0 ;TPA$KEYST U.386: .ASCII \BLOCK_CHECK_TYPE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.390: .BLKB 0 ;TPA$KEYST U.392: .ASCII \DEBUGGING\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.396: .BLKB 0 ;TPA$KEYST U.398: .ASCII \DELAY\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.402: .BLKB 0 ;TPA$KEYST U.404: .ASCII \ESCAPE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.408: .BLKB 0 ;TPA$KEYST U.410: .ASCII \FILE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.414: .BLKB 0 ;TPA$KEYST U.416: .ASCII \HANDSHAKE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.420: .BLKB 0 ;TPA$KEYST U.422: .ASCII \IBM_MODE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.426: .BLKB 0 ;TPA$KEYST U.428: .ASCII \INCOMPLETE_FILE_DISPOSITION\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.432: .BLKB 0 ;TPA$KEYST U.434: .ASCII \LINE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.437: .BLKB 0 ;TPA$KEYST U.439: .ASCII \LOCAL_ECHO\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.443: .BLKB 0 ;TPA$KEYST U.445: .ASCII \MESSAGE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.449: .BLKB 0 ;TPA$KEYST U.451: .ASCII \PARITY\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.455: .BLKB 0 ;TPA$KEYST U.457: .ASCII \PROMPT\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.461: .BLKB 0 ;TPA$KEYST U.463: .ASCII \RECEIVE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.467: .BLKB 0 ;TPA$KEYST U.469: .ASCII \REPEAT_QUOTE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.473: .BLKB 0 ;TPA$KEYST U.475: .ASCII \RETRY\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.479: .BLKB 0 ;TPA$KEYST U.481: .ASCII \SEND\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.485: .BLKB 0 ;TPA$KEYST U.487: .ASCII \SERVER_TIMER\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.491: .BLKB 0 ;TPA$KEYST U.493: .ASCII \TRANSMIT\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.500: .BYTE -1 ; ; ;TPA$KEYST0 U.501: .BLKB 0 ;TPA$KEYST U.503: .ASCII \DISCARD\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.509: .BLKB 0 ;TPA$KEYST U.511: .ASCII \KEEP\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.520: .BYTE -1 ; ; ;TPA$KEYST0 U.521: .BLKB 0 ;TPA$KEYST U.523: .ASCII \1_CHARACTER_CHECKSUM\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.529: .BLKB 0 ;TPA$KEYST U.531: .ASCII \2_CHARACTER_CHECKSUM\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.537: .BLKB 0 ;TPA$KEYST U.539: .ASCII \3_CHARACTER_CRC_CCITT\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.545: .BLKB 0 ;TPA$KEYST U.547: .ASCII \ONE_CHARACTER_CHECKSUM\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.553: .BLKB 0 ;TPA$KEYST U.555: .ASCII \THREE_CHARACTER_CRC_CCITT\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.561: .BLKB 0 ;TPA$KEYST U.563: .ASCII \TWO_CHARACTER_CHECKSUM\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.572: .BYTE -1 ; ; ;TPA$KEYST0 U.573: .BLKB 0 ;TPA$KEYST U.575: .ASCII \OFF\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.581: .BLKB 0 ;TPA$KEYST U.583: .ASCII \ON\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.592: .BYTE -1 ; ; ;TPA$KEYST0 U.593: .BLKB 0 ;TPA$KEYST U.595: .ASCII \OFF\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.601: .BLKB 0 ;TPA$KEYST U.603: .ASCII \ON\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.612: .BYTE -1 ; ; ;TPA$KEYST0 U.613: .BLKB 0 ;TPA$KEYST U.615: .ASCII \NONE\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.623: .BYTE -1 ; ; ;TPA$KEYST0 U.630: .BLKB 0 ;TPA$KEYST U.632: .ASCII \NAMING\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.636: .BLKB 0 ;TPA$KEYST U.638: .ASCII \TYPE\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.645: .BYTE -1 ; ; ;TPA$KEYST0 U.646: .BLKB 0 ;TPA$KEYST U.648: .ASCII \FULL\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.654: .BLKB 0 ;TPA$KEYST U.656: .ASCII \NORMAL_FORM\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.662: .BLKB 0 ;TPA$KEYST U.664: .ASCII \UNTRANSLATED\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.673: .BYTE -1 ; ; ;TPA$KEYST0 U.674: .BLKB 0 ;TPA$KEYST U.676: .ASCII \ASCII\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.682: .BLKB 0 ;TPA$KEYST U.684: .ASCII \BINARY\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.690: .BLKB 0 ;TPA$KEYST U.692: .ASCII \BLOCK\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.698: .BLKB 0 ;TPA$KEYST U.700: .ASCII \FIXED\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.709: .BYTE -1 ; ; ;TPA$KEYST0 U.716: .BLKB 0 ;TPA$KEYST U.718: .ASCII \OFF\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.724: .BLKB 0 ;TPA$KEYST U.726: .ASCII \ON\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.735: .BYTE -1 ; ; ;TPA$KEYST0 U.736: .BLKB 0 ;TPA$KEYST U.738: .ASCII \FILE_NAMES\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.742: .BLKB 0 ;TPA$KEYST U.744: .ASCII \PACKET_NUMBERS\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.751: .BYTE -1 ; ; ;TPA$KEYST0 U.752: .BLKB 0 ;TPA$KEYST U.754: .ASCII \OFF\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.760: .BLKB 0 ;TPA$KEYST U.762: .ASCII \ON\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.771: .BYTE -1 ; ; ;TPA$KEYST0 U.772: .BLKB 0 ;TPA$KEYST U.774: .ASCII \OFF\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.780: .BLKB 0 ;TPA$KEYST U.782: .ASCII \ON\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.791: .BYTE -1 ; ; ;TPA$KEYST0 U.804: .BLKB 0 ;TPA$KEYST U.806: .ASCII \INITIAL_CONNECTION\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.810: .BLKB 0 ;TPA$KEYST U.812: .ASCII \PACKET\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.819: .BYTE -1 ; ; ;TPA$KEYST0 U.826: .BLKB 0 ;TPA$KEYST U.828: .ASCII \EVEN\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.834: .BLKB 0 ;TPA$KEYST U.836: .ASCII \MARK\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.842: .BLKB 0 ;TPA$KEYST U.844: .ASCII \NONE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.850: .BLKB 0 ;TPA$KEYST U.852: .ASCII \ODD\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.858: .BLKB 0 ;TPA$KEYST U.860: .ASCII \SPACE\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.869: .BYTE -1 ; ; ;TPA$KEYST0 U.870: .BLKB 0 ;TPA$KEYST U.872: .ASCII \EIGHT-BIT-QUOTE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.876: .BLKB 0 ;TPA$KEYST U.878: .ASCII \END_OF_LINE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.882: .BLKB 0 ;TPA$KEYST U.884: .ASCII \PACKET_LENGTH\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.888: .BLKB 0 ;TPA$KEYST U.890: .ASCII \PADCHAR\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.894: .BLKB 0 ;TPA$KEYST U.896: .ASCII \PADDING\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.900: .BLKB 0 ;TPA$KEYST U.902: .ASCII \QUOTE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.906: .BLKB 0 ;TPA$KEYST U.908: .ASCII \START_OF_PACKET\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.912: .BLKB 0 ;TPA$KEYST U.914: .ASCII \TIMEOUT\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.921: .BYTE -1 ; ; ;TPA$KEYST0 U.953: .BLKB 0 ;TPA$KEYST U.955: .ASCII \END_OF_LINE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.959: .BLKB 0 ;TPA$KEYST U.961: .ASCII \PACKET_LENGTH\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.965: .BLKB 0 ;TPA$KEYST U.967: .ASCII \PADCHAR\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.971: .BLKB 0 ;TPA$KEYST U.973: .ASCII \PADDING\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.977: .BLKB 0 ;TPA$KEYST U.979: .ASCII \QUOTE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.983: .BLKB 0 ;TPA$KEYST U.985: .ASCII \START_OF_PACKET\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.989: .BLKB 0 ;TPA$KEYST U.991: .ASCII \TIMEOUT\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.998: .BYTE -1 ; ; ;TPA$KEYST0 U.1029: .BLKB 0 ;TPA$KEYST U.1031: .ASCII \DELAY\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1035: .BLKB 0 ;TPA$KEYST U.1037: .ASCII \ECHO\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.1044: .BYTE -1 ; ; ;TPA$KEYST0 U.1049: .BLKB 0 ;TPA$KEYST U.1051: .ASCII \ON\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1057: .BLKB 0 ;TPA$KEYST U.1059: .ASCII \OFF\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.1068: .BYTE -1 ; ; ;TPA$KEYST0 U.1077: .BLKB 0 ;TPA$KEYST U.1079: .ASCII \ALL\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1084: .BLKB 0 ;TPA$KEYST U.1086: .ASCII \BLOCK_CHECK_TYPE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1091: .BLKB 0 ;TPA$KEYST U.1093: .ASCII \COMMUNICATIONS\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1098: .BLKB 0 ;TPA$KEYST U.1100: .ASCII \DEBUGGING\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1105: .BLKB 0 ;TPA$KEYST U.1107: .ASCII \DELAY\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1112: .BLKB 0 ;TPA$KEYST U.1114: .ASCII \ESCAPE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1119: .BLKB 0 ;TPA$KEYST U.1121: .ASCII \FILE_PARAMETERS\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1126: .BLKB 0 ;TPA$KEYST U.1128: .ASCII \INCOMPLETE_FILE_DISPOSITION\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1133: .BLKB 0 ;TPA$KEYST U.1135: .ASCII \LINE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1140: .BLKB 0 ;TPA$KEYST U.1142: .ASCII \LOCAL_ECHO\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1147: .BLKB 0 ;TPA$KEYST U.1149: .ASCII \PACKET\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1154: .BLKB 0 ;TPA$KEYST U.1156: .ASCII \PARITY\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1161: .BLKB 0 ;TPA$KEYST U.1163: .ASCII \SEND\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1168: .BLKB 0 ;TPA$KEYST U.1170: .ASCII \TIMING\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1175: .BLKB 0 ;TPA$KEYST U.1177: .ASCII \RECEIVE\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1182: .BLKB 0 ;TPA$KEYST U.1184: .ASCII \RETRY\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1189: .BLKB 0 ;TPA$KEYST U.1191: .ASCII \VERSION\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1196: .BLKB 0 ;TPA$KEYST U.1198: .ASCII \TRANSMIT\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.1206: .BYTE -1 ; ; ;TPA$KEYST0 U.1207: .BLKB 0 ;TPA$KEYST U.1209: .ASCII \DEBUGGING\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1213: .BLKB 0 ;TPA$KEYST U.1215: .ASCII \SESSION\ ; ; .BYTE -1 ; ; ;TPA$KEYST0 U.1219: .BLKB 0 ;TPA$KEYST U.1221: .ASCII \TRANSACTIONS\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.1228: .BYTE -1 ; ; ;TPA$KEYST0 U.1267: .BLKB 0 ;TPA$KEYST U.1269: .ASCII \DISPLAY\ ; ; .BYTE -1 ; ; ;TPA$KEYFILL U.1277: .BYTE -1 ; ; .PSECT _LIB$STATE$,NOWRT, SHR, PIC,1 KERMIT_STATE:: .BLKB 0 START: .BLKB 0 ;TPA$TYPE U.68: .WORD 28928 ; ; ;TPA$ADDR U.69: .LONG <-4> ; ; ;TPA$MASK U.70: .LONG 11 ; ; ;TPA$TARGET U.72: .WORD <-2> ; ; ;TPA$TYPE U.76: .WORD 28929 ; ; ;TPA$ADDR U.77: .LONG <-4> ; ; ;TPA$MASK U.78: .LONG 1 ; ; ;TPA$TARGET U.80: .WORD <-2> ; ; ;TPA$TYPE U.84: .WORD 28930 ; ; ;TPA$ADDR U.85: .LONG <-4> ; ; ;TPA$MASK U.86: .LONG 2 ; ; ;TPA$TARGET U.87: .WORD <-2> ; ; ;TPA$TYPE U.91: .WORD 28931 ; ; ;TPA$ADDR U.92: .LONG <-4> ; ; ;TPA$MASK U.93: .LONG 12 ; ; ;TPA$TARGET U.94: .WORD <-2> ; ; ;TPA$TYPE U.98: .WORD 28932 ; ; ;TPA$ADDR U.99: .LONG <-4> ; ; ;TPA$MASK U.100: .LONG 13 ; ; ;TPA$TARGET U.102: .WORD <-2> ; ; ;TPA$TYPE U.106: .WORD 28933 ; ; ;TPA$ADDR U.107: .LONG <-4> ; ; ;TPA$MASK U.108: .LONG 3 ; ; ;TPA$TARGET U.110: .WORD <-2> ; ; ;TPA$TYPE U.114: .WORD 28934 ; ; ;TPA$ADDR U.115: .LONG <-4> ; ; ;TPA$MASK U.116: .LONG 15 ; ; ;TPA$TARGET U.118: .WORD <-2> ; ; ;TPA$TYPE U.122: .WORD 28935 ; ; ;TPA$ADDR U.123: .LONG <-4> ; ; ;TPA$MASK U.124: .LONG 17 ; ; ;TPA$TARGET U.126: .WORD <-2> ; ; ;TPA$TYPE U.130: .WORD 28936 ; ; ;TPA$ADDR U.131: .LONG <-4> ; ; ;TPA$MASK U.132: .LONG 10 ; ; ;TPA$TARGET U.133: .WORD <-2> ; ; ;TPA$TYPE U.137: .WORD 28937 ; ; ;TPA$ADDR U.138: .LONG <-4> ; ; ;TPA$MASK U.139: .LONG 16 ; ; ;TPA$TARGET U.140: .WORD <-2> ; ; ;TPA$TYPE U.144: .WORD 28938 ; ; ;TPA$ADDR U.145: .LONG <-4> ; ; ;TPA$MASK U.146: .LONG 2 ; ; ;TPA$TARGET U.147: .WORD <-2> ; ; ;TPA$TYPE U.151: .WORD 28939 ; ; ;TPA$ADDR U.152: .LONG <-4> ; ; ;TPA$MASK U.153: .LONG 4 ; ; ;TPA$TARGET U.155: .WORD <-2> ; ; ;TPA$TYPE U.159: .WORD 28940 ; ; ;TPA$ADDR U.160: .LONG <-4> ; ; ;TPA$MASK U.161: .LONG 14 ; ; ;TPA$TARGET U.162: .WORD <-2> ; ; ;TPA$TYPE U.166: .WORD 28941 ; ; ;TPA$ADDR U.167: .LONG <-4> ; ; ;TPA$MASK U.168: .LONG 5 ; ; ;TPA$TARGET U.170: .WORD <-2> ; ; ;TPA$TYPE U.174: .WORD 28942 ; ; ;TPA$ADDR U.175: .LONG <-4> ; ; ;TPA$MASK U.176: .LONG 6 ; ; ;TPA$TARGET U.178: .WORD <-2> ; ; ;TPA$TYPE U.182: .WORD 28943 ; ; ;TPA$ADDR U.183: .LONG <-4> ; ; ;TPA$MASK U.184: .LONG 8 ; ; ;TPA$TARGET U.185: .WORD <-2> ; ; ;TPA$TYPE U.189: .WORD 28944 ; ; ;TPA$ADDR U.190: .LONG <-4> ; ; ;TPA$MASK U.191: .LONG 7 ; ; ;TPA$TARGET U.193: .WORD <-2> ; ; ;TPA$TYPE U.197: .WORD 28945 ; ; ;TPA$ADDR U.198: .LONG <-4> ; ; ;TPA$MASK U.199: .LONG 9 ; ; ;TPA$TARGET U.200: .WORD <-2> ; ; ;TPA$TYPE U.204: .WORD 28946 ; ; ;TPA$ADDR U.205: .LONG <-4> ; ; ;TPA$MASK U.206: .LONG 18 ; ; ;TPA$TARGET U.208: .WORD <-2> ; ; ;TPA$TYPE U.209: .WORD 28736 ; ; ;TPA$ADDR U.210: .LONG <-4> ; ; ;TPA$MASK U.211: .LONG 18 ; ; ;TPA$TARGET U.212: .WORD <-2> ; ; ;TPA$TYPE U.216: .WORD 28947 ; ; ;TPA$ADDR U.217: .LONG <-4> ; ; ;TPA$MASK U.218: .LONG 19 ; ; ;TPA$TARGET U.220: .WORD <-2> ; ; ;TPA$TYPE U.221: .WORD -27151 ; ; ;TPA$ACTION U.222: .LONG <-4> ; ; ;TPA$TARGET U.223: .WORD -2 ; ; ;CONN_STATE U.79: .BLKB 0 ;TPA$TYPE U.225: .WORD 4599 ; ; ;TPA$TARGET U.226: .WORD <-2> ; ; ;TPA$TYPE U.227: .WORD 5622 ; ; ;TPA$TARGET U.229: .WORD <-2> ; ; ;HELP_STATE U.109: .BLKB 0 ;TPA$TYPE U.230: .WORD -28179 ; ; ;TPA$ACTION U.231: .LONG <-4> ; ; ;TPA$TARGET U.232: .WORD <-2> ; ; ;TPA$TYPE U.233: .WORD 5622 ; ; ;TPA$TARGET U.234: .WORD <-2> ; ; ;GET_STATE U.101: .BLKB 0 ;TPA$TYPE U.235: .WORD -28179 ; ; ;TPA$ACTION U.236: .LONG <-4> ; ; ;TPA$TARGET U.237: .WORD <-2> ; ; ;TPA$TYPE U.238: .WORD -26634 ; ; ;TPA$FLAGS2 U.239: .BYTE 1 ; ; ;TPA$PARAM U.240: .ADDRESS FILE_DESC ; ; ;TPA$ACTION U.241: .LONG <-4> ; ; ;TPA$TARGET U.242: .WORD <-2> ; ; ;REC_STATE U.154: .BLKB 0 ;TPA$TYPE U.243: .WORD -28179 ; ; ;TPA$ACTION U.244: .LONG <-4> ; ; ;TPA$TARGET U.246: .WORD <-2> ; ; ;TPA$TYPE U.247: .WORD 5622 ; ; ;TPA$TARGET U.248: .WORD <-2> ; ; ;REC1_STATE U.245: .BLKB 0 ;TPA$TYPE U.249: .WORD -28179 ; ; ;TPA$ACTION U.250: .LONG <-4> ; ; ;TPA$TARGET U.251: .WORD <-2> ; ; ;TPA$TYPE U.252: .WORD -27146 ; ; ;TPA$ACTION U.253: .LONG <-4> ; ; ;TPA$TARGET U.254: .WORD <-2> ; ; ;REM_STATE U.117: .BLKB 0 ;TPA$TYPE U.258: .WORD 28948 ; ; ;TPA$ADDR U.259: .LONG <-4> ; ; ;TPA$MASK U.260: .LONG 11 ; ; ;TPA$TARGET U.262: .WORD <-2> ; ; ;TPA$TYPE U.266: .WORD 28949 ; ; ;TPA$ADDR U.267: .LONG <-4> ; ; ;TPA$MASK U.268: .LONG 9 ; ; ;TPA$TARGET U.270: .WORD <-2> ; ; ;TPA$TYPE U.274: .WORD 28950 ; ; ;TPA$ADDR U.275: .LONG <-4> ; ; ;TPA$MASK U.276: .LONG 4 ; ; ;TPA$TARGET U.277: .WORD <-2> ; ; ;TPA$TYPE U.281: .WORD 28951 ; ; ;TPA$ADDR U.282: .LONG <-4> ; ; ;TPA$MASK U.283: .LONG 2 ; ; ;TPA$TARGET U.284: .WORD <-2> ; ; ;TPA$TYPE U.288: .WORD 28952 ; ; ;TPA$ADDR U.289: .LONG <-4> ; ; ;TPA$MASK U.290: .LONG 3 ; ; ;TPA$TARGET U.291: .WORD <-2> ; ; ;TPA$TYPE U.295: .WORD 28953 ; ; ;TPA$ADDR U.296: .LONG <-4> ; ; ;TPA$MASK U.297: .LONG 1 ; ; ;TPA$TARGET U.298: .WORD <-2> ; ; ;TPA$TYPE U.302: .WORD 28954 ; ; ;TPA$ADDR U.303: .LONG <-4> ; ; ;TPA$MASK U.304: .LONG 6 ; ; ;TPA$TARGET U.305: .WORD <-2> ; ; ;TPA$TYPE U.309: .WORD 28955 ; ; ;TPA$ADDR U.310: .LONG <-4> ; ; ;TPA$MASK U.311: .LONG 15 ; ; ;TPA$TARGET U.312: .WORD <-2> ; ; ;TPA$TYPE U.316: .WORD 28956 ; ; ;TPA$ADDR U.317: .LONG <-4> ; ; ;TPA$MASK U.318: .LONG 8 ; ; ;TPA$TARGET U.319: .WORD <-2> ; ; ;TPA$TYPE U.323: .WORD 28957 ; ; ;TPA$ADDR U.324: .LONG <-4> ; ; ;TPA$MASK U.325: .LONG 7 ; ; ;TPA$TARGET U.326: .WORD <-2> ; ; ;TPA$TYPE U.330: .WORD 28958 ; ; ;TPA$ADDR U.331: .LONG <-4> ; ; ;TPA$MASK U.332: .LONG 10 ; ; ;TPA$TARGET U.333: .WORD <-2> ; ; ;TPA$TYPE U.337: .WORD 28959 ; ; ;TPA$ADDR U.338: .LONG <-4> ; ; ;TPA$MASK U.339: .LONG 13 ; ; ;TPA$TARGET U.340: .WORD <-2> ; ; ;TPA$TYPE U.344: .WORD 28960 ; ; ;TPA$ADDR U.345: .LONG <-4> ; ; ;TPA$MASK U.346: .LONG 3 ; ; ;TPA$TARGET U.347: .WORD <-2> ; ; ;TPA$TYPE U.351: .WORD 28961 ; ; ;TPA$ADDR U.352: .LONG <-4> ; ; ;TPA$MASK U.353: .LONG 14 ; ; ;TPA$TARGET U.354: .WORD <-2> ; ; ;TPA$TYPE U.358: .WORD 28962 ; ; ;TPA$ADDR U.359: .LONG <-4> ; ; ;TPA$MASK U.360: .LONG 5 ; ; ;TPA$TARGET U.361: .WORD <-2> ; ; ;TPA$TYPE U.365: .WORD 28963 ; ; ;TPA$ADDR U.366: .LONG <-4> ; ; ;TPA$MASK U.367: .LONG 12 ; ; ;TPA$TARGET U.368: .WORD <-2> ; ; ;TPA$TYPE U.369: .WORD -27151 ; ; ;TPA$ACTION U.370: .LONG <-4> ; ; ;TPA$TARGET U.371: .WORD -2 ; ; ;REM1_STATE U.269: .BLKB 0 ;TPA$TYPE U.373: .WORD -28179 ; ; ;TPA$ACTION U.374: .LONG <-4> ; ; ;TPA$TARGET U.375: .WORD <-2> ; ; ;TPA$TYPE U.376: .WORD 5622 ; ; ;TPA$TARGET U.377: .WORD <-2> ; ; ;REM2_STATE U.261: .BLKB 0 ;TPA$TYPE U.378: .WORD -28179 ; ; ;TPA$ACTION U.379: .LONG <-4> ; ; ;TPA$TARGET U.380: .WORD <-2> ; ; ;TPA$TYPE U.381: .WORD -27146 ; ; ;TPA$ACTION U.382: .LONG <-4> ; ; ;TPA$TARGET U.383: .WORD <-2> ; ; ;SET_STATE U.169: .BLKB 0 ;TPA$TYPE U.387: .WORD 4388 ; ; ;TPA$TARGET U.389: .WORD <-2> ; ; ;TPA$TYPE U.393: .WORD 4389 ; ; ;TPA$TARGET U.395: .WORD <-2> ; ; ;TPA$TYPE U.399: .WORD 4390 ; ; ;TPA$TARGET U.401: .WORD <-2> ; ; ;TPA$TYPE U.405: .WORD 4391 ; ; ;TPA$TARGET U.407: .WORD <-2> ; ; ;TPA$TYPE U.411: .WORD 4392 ; ; ;TPA$TARGET U.413: .WORD <-2> ; ; ;TPA$TYPE U.417: .WORD 4393 ; ; ;TPA$TARGET U.419: .WORD <-2> ; ; ;TPA$TYPE U.423: .WORD 4394 ; ; ;TPA$TARGET U.425: .WORD <-2> ; ; ;TPA$TYPE U.429: .WORD 4395 ; ; ;TPA$TARGET U.431: .WORD <-2> ; ; ;TPA$TYPE U.435: .WORD 4396 ; ; ;TPA$TARGET U.436: .WORD <-2> ; ; ;TPA$TYPE U.440: .WORD 4397 ; ; ;TPA$TARGET U.442: .WORD <-2> ; ; ;TPA$TYPE U.446: .WORD 4398 ; ; ;TPA$TARGET U.448: .WORD <-2> ; ; ;TPA$TYPE U.452: .WORD 4399 ; ; ;TPA$TARGET U.454: .WORD <-2> ; ; ;TPA$TYPE U.458: .WORD 4400 ; ; ;TPA$TARGET U.460: .WORD <-2> ; ; ;TPA$TYPE U.464: .WORD 4401 ; ; ;TPA$TARGET U.466: .WORD <-2> ; ; ;TPA$TYPE U.470: .WORD 4402 ; ; ;TPA$TARGET U.472: .WORD <-2> ; ; ;TPA$TYPE U.476: .WORD 4403 ; ; ;TPA$TARGET U.478: .WORD <-2> ; ; ;TPA$TYPE U.482: .WORD 4404 ; ; ;TPA$TARGET U.484: .WORD <-2> ; ; ;TPA$TYPE U.488: .WORD 4405 ; ; ;TPA$TARGET U.490: .WORD <-2> ; ; ;TPA$TYPE U.494: .WORD 4406 ; ; ;TPA$TARGET U.496: .WORD <-2> ; ; ;TPA$TYPE U.497: .WORD -27151 ; ; ;TPA$ACTION U.498: .LONG <-4> ; ; ;TPA$TARGET U.499: .WORD -2 ; ; ;SET_ABT_STATE U.430: .BLKB 0 ;TPA$TYPE U.504: .WORD -27849 ; ; ;TPA$FLAGS2 U.505: .BYTE 1 ; ; ;TPA$PARAM U.506: .LONG 1 ; ; ;TPA$ACTION U.507: .LONG <-4> ; ; ;TPA$TARGET U.508: .WORD <-2> ; ; ;TPA$TYPE U.512: .WORD -27848 ; ; ;TPA$FLAGS2 U.513: .BYTE 1 ; ; ;TPA$PARAM U.514: .LONG 0 ; ; ;TPA$ACTION U.515: .LONG <-4> ; ; ;TPA$TARGET U.516: .WORD <-2> ; ; ;TPA$TYPE U.517: .WORD -27151 ; ; ;TPA$ACTION U.518: .LONG <-4> ; ; ;TPA$TARGET U.519: .WORD -2 ; ; ;SET_CHK_STATE U.388: .BLKB 0 ;TPA$TYPE U.524: .WORD -27847 ; ; ;TPA$FLAGS2 U.525: .BYTE 1 ; ; ;TPA$PARAM U.526: .LONG 49 ; ; ;TPA$ACTION U.527: .LONG <-4> ; ; ;TPA$TARGET U.528: .WORD <-2> ; ; ;TPA$TYPE U.532: .WORD -27846 ; ; ;TPA$FLAGS2 U.533: .BYTE 1 ; ; ;TPA$PARAM U.534: .LONG 50 ; ; ;TPA$ACTION U.535: .LONG <-4> ; ; ;TPA$TARGET U.536: .WORD <-2> ; ; ;TPA$TYPE U.540: .WORD -27845 ; ; ;TPA$FLAGS2 U.541: .BYTE 1 ; ; ;TPA$PARAM U.542: .LONG 51 ; ; ;TPA$ACTION U.543: .LONG <-4> ; ; ;TPA$TARGET U.544: .WORD <-2> ; ; ;TPA$TYPE U.548: .WORD -27844 ; ; ;TPA$FLAGS2 U.549: .BYTE 1 ; ; ;TPA$PARAM U.550: .LONG 49 ; ; ;TPA$ACTION U.551: .LONG <-4> ; ; ;TPA$TARGET U.552: .WORD <-2> ; ; ;TPA$TYPE U.556: .WORD -27843 ; ; ;TPA$FLAGS2 U.557: .BYTE 1 ; ; ;TPA$PARAM U.558: .LONG 51 ; ; ;TPA$ACTION U.559: .LONG <-4> ; ; ;TPA$TARGET U.560: .WORD <-2> ; ; ;TPA$TYPE U.564: .WORD -27842 ; ; ;TPA$FLAGS2 U.565: .BYTE 1 ; ; ;TPA$PARAM U.566: .LONG 50 ; ; ;TPA$ACTION U.567: .LONG <-4> ; ; ;TPA$TARGET U.568: .WORD <-2> ; ; ;TPA$TYPE U.569: .WORD -27151 ; ; ;TPA$ACTION U.570: .LONG <-4> ; ; ;TPA$TARGET U.571: .WORD -2 ; ; ;SET_DEB_STATE U.394: .BLKB 0 ;TPA$TYPE U.576: .WORD -27841 ; ; ;TPA$FLAGS2 U.577: .BYTE 1 ; ; ;TPA$PARAM U.578: .LONG 0 ; ; ;TPA$ACTION U.579: .LONG <-4> ; ; ;TPA$TARGET U.580: .WORD <-2> ; ; ;TPA$TYPE U.584: .WORD -27840 ; ; ;TPA$FLAGS2 U.585: .BYTE 1 ; ; ;TPA$PARAM U.586: .LONG 1 ; ; ;TPA$ACTION U.587: .LONG <-4> ; ; ;TPA$TARGET U.588: .WORD <-2> ; ; ;TPA$TYPE U.589: .WORD -27151 ; ; ;TPA$ACTION U.590: .LONG <-4> ; ; ;TPA$TARGET U.591: .WORD -2 ; ; ;SET_IBM_STATE U.424: .BLKB 0 ;TPA$TYPE U.596: .WORD -27839 ; ; ;TPA$FLAGS2 U.597: .BYTE 1 ; ; ;TPA$PARAM U.598: .LONG 0 ; ; ;TPA$ACTION U.599: .LONG <-4> ; ; ;TPA$TARGET U.600: .WORD <-2> ; ; ;TPA$TYPE U.604: .WORD -27838 ; ; ;TPA$FLAGS2 U.605: .BYTE 1 ; ; ;TPA$PARAM U.606: .LONG 1 ; ; ;TPA$ACTION U.607: .LONG <-4> ; ; ;TPA$TARGET U.608: .WORD <-2> ; ; ;TPA$TYPE U.609: .WORD -27151 ; ; ;TPA$ACTION U.610: .LONG <-4> ; ; ;TPA$TARGET U.611: .WORD -2 ; ; ;SET_HAN_STATE U.418: .BLKB 0 ;TPA$TYPE U.616: .WORD 28995 ; ; ;TPA$ADDR U.617: .LONG <-4> ; ; ;TPA$MASK U.618: .LONG -1 ; ; ;TPA$TARGET U.619: .WORD <-2> ; ; ;TPA$TYPE U.620: .WORD 22004 ; ; ;TPA$ADDR U.621: .LONG <-4> ; ; ;TPA$TARGET U.622: .WORD <-2> ; ; ;SET_DEL_STATE U.400: .BLKB 0 ;TPA$TYPE U.624: .WORD 22003 ; ; ;TPA$ADDR U.625: .LONG <-4> ; ; ;TPA$TARGET U.626: .WORD <-2> ; ; ;SET_ESC_STATE U.406: .BLKB 0 ;TPA$TYPE U.627: .WORD 22004 ; ; ;TPA$ADDR U.628: .LONG <-4> ; ; ;TPA$TARGET U.629: .WORD <-2> ; ; ;SET_FIL_STATE U.412: .BLKB 0 ;TPA$TYPE U.633: .WORD 4420 ; ; ;TPA$TARGET U.635: .WORD <-2> ; ; ;TPA$TYPE U.639: .WORD 4421 ; ; ;TPA$TARGET U.641: .WORD <-2> ; ; ;TPA$TYPE U.642: .WORD -27151 ; ; ;TPA$ACTION U.643: .LONG <-4> ; ; ;TPA$TARGET U.644: .WORD -2 ; ; ;SET_FNM_STATE U.634: .BLKB 0 ;TPA$TYPE U.649: .WORD -27834 ; ; ;TPA$FLAGS2 U.650: .BYTE 1 ; ; ;TPA$PARAM U.651: .LONG 2 ; ; ;TPA$ACTION U.652: .LONG <-4> ; ; ;TPA$TARGET U.653: .WORD <-2> ; ; ;TPA$TYPE U.657: .WORD -27833 ; ; ;TPA$FLAGS2 U.658: .BYTE 1 ; ; ;TPA$PARAM U.659: .LONG 1 ; ; ;TPA$ACTION U.660: .LONG <-4> ; ; ;TPA$TARGET U.661: .WORD <-2> ; ; ;TPA$TYPE U.665: .WORD -27832 ; ; ;TPA$FLAGS2 U.666: .BYTE 1 ; ; ;TPA$PARAM U.667: .LONG 4 ; ; ;TPA$ACTION U.668: .LONG <-4> ; ; ;TPA$TARGET U.669: .WORD <-2> ; ; ;TPA$TYPE U.670: .WORD -27151 ; ; ;TPA$ACTION U.671: .LONG <-4> ; ; ;TPA$TARGET U.672: .WORD -2 ; ; ;SET_FTP_STATE U.640: .BLKB 0 ;TPA$TYPE U.677: .WORD -27831 ; ; ;TPA$FLAGS2 U.678: .BYTE 1 ; ; ;TPA$PARAM U.679: .LONG 1 ; ; ;TPA$ACTION U.680: .LONG <-4> ; ; ;TPA$TARGET U.681: .WORD <-2> ; ; ;TPA$TYPE U.685: .WORD -27830 ; ; ;TPA$FLAGS2 U.686: .BYTE 1 ; ; ;TPA$PARAM U.687: .LONG 2 ; ; ;TPA$ACTION U.688: .LONG <-4> ; ; ;TPA$TARGET U.689: .WORD <-2> ; ; ;TPA$TYPE U.693: .WORD -27829 ; ; ;TPA$FLAGS2 U.694: .BYTE 1 ; ; ;TPA$PARAM U.695: .LONG 3 ; ; ;TPA$ACTION U.696: .LONG <-4> ; ; ;TPA$TARGET U.697: .WORD <-2> ; ; ;TPA$TYPE U.701: .WORD -27828 ; ; ;TPA$FLAGS2 U.702: .BYTE 1 ; ; ;TPA$PARAM U.703: .LONG 4 ; ; ;TPA$ACTION U.704: .LONG <-4> ; ; ;TPA$TARGET U.705: .WORD <-2> ; ; ;TPA$TYPE U.706: .WORD -27151 ; ; ;TPA$ACTION U.707: .LONG <-4> ; ; ;TPA$TARGET U.708: .WORD -2 ; ; ;SET_LIN_STATE U.228: .BLKB 0 ;TPA$TYPE U.710: .WORD -28179 ; ; ;TPA$ACTION U.711: .LONG <-4> ; ; ;TPA$TARGET U.712: .WORD <-2> ; ; ;TPA$TYPE U.713: .WORD -27146 ; ; ;TPA$ACTION U.714: .LONG <-4> ; ; ;TPA$TARGET U.715: .WORD <-2> ; ; ;SET_ECH_STATE U.441: .BLKB 0 ;TPA$TYPE U.719: .WORD -27827 ; ; ;TPA$FLAGS2 U.720: .BYTE 1 ; ; ;TPA$PARAM U.721: .LONG 0 ; ; ;TPA$ACTION U.722: .LONG <-4> ; ; ;TPA$TARGET U.723: .WORD <-2> ; ; ;TPA$TYPE U.727: .WORD -27826 ; ; ;TPA$FLAGS2 U.728: .BYTE 1 ; ; ;TPA$PARAM U.729: .LONG 1 ; ; ;TPA$ACTION U.730: .LONG <-4> ; ; ;TPA$TARGET U.731: .WORD <-2> ; ; ;TPA$TYPE U.732: .WORD -27151 ; ; ;TPA$ACTION U.733: .LONG <-4> ; ; ;TPA$TARGET U.734: .WORD -2 ; ; ;SET_MSG_STATE U.447: .BLKB 0 ;TPA$TYPE U.739: .WORD 4431 ; ; ;TPA$TARGET U.741: .WORD <-2> ; ; ;TPA$TYPE U.745: .WORD 4432 ; ; ;TPA$TARGET U.747: .WORD <-2> ; ; ;TPA$TYPE U.748: .WORD -27151 ; ; ;TPA$ACTION U.749: .LONG <-4> ; ; ;TPA$TARGET U.750: .WORD -2 ; ; ;SET_MSG_FIL_STATE U.740: .BLKB 0 ;TPA$TYPE U.755: .WORD -27823 ; ; ;TPA$FLAGS2 U.756: .BYTE 1 ; ; ;TPA$PARAM U.757: .LONG 0 ; ; ;TPA$ACTION U.758: .LONG <-4> ; ; ;TPA$TARGET U.759: .WORD <-2> ; ; ;TPA$TYPE U.763: .WORD -27822 ; ; ;TPA$FLAGS2 U.764: .BYTE 1 ; ; ;TPA$PARAM U.765: .LONG 1 ; ; ;TPA$ACTION U.766: .LONG <-4> ; ; ;TPA$TARGET U.767: .WORD <-2> ; ; ;TPA$TYPE U.768: .WORD -27151 ; ; ;TPA$ACTION U.769: .LONG <-4> ; ; ;TPA$TARGET U.770: .WORD -2 ; ; ;SET_MSG_PKT_STATE U.746: .BLKB 0 ;TPA$TYPE U.775: .WORD -27821 ; ; ;TPA$FLAGS2 U.776: .BYTE 1 ; ; ;TPA$PARAM U.777: .LONG 0 ; ; ;TPA$ACTION U.778: .LONG <-4> ; ; ;TPA$TARGET U.779: .WORD <-2> ; ; ;TPA$TYPE U.783: .WORD -27820 ; ; ;TPA$FLAGS2 U.784: .BYTE 1 ; ; ;TPA$PARAM U.785: .LONG 1 ; ; ;TPA$ACTION U.786: .LONG <-4> ; ; ;TPA$TARGET U.787: .WORD <-2> ; ; ;TPA$TYPE U.788: .WORD -27151 ; ; ;TPA$ACTION U.789: .LONG <-4> ; ; ;TPA$TARGET U.790: .WORD -2 ; ; ;SET_PMT_STATE U.459: .BLKB 0 ;TPA$TYPE U.792: .WORD -28179 ; ; ;TPA$ACTION U.793: .LONG <-4> ; ; ;TPA$TARGET U.794: .WORD <-2> ; ; ;TPA$TYPE U.795: .WORD -26634 ; ; ;TPA$FLAGS2 U.796: .BYTE 1 ; ; ;TPA$PARAM U.797: .ADDRESS U.56 ; ; ;TPA$ACTION U.798: .LONG <-4> ; ; ;TPA$TARGET U.799: .WORD <-2> ; ; ;SET_RPT_STATE U.471: .BLKB 0 ;TPA$TYPE U.800: .WORD -10764 ; ; ;TPA$ACTION U.801: .LONG <-4> ; ; ;TPA$ADDR U.802: .LONG <-4> ; ; ;TPA$TARGET U.803: .WORD <-2> ; ; ;SET_RTY_STATE U.477: .BLKB 0 ;TPA$TYPE U.807: .WORD 4437 ; ; ;TPA$TARGET U.809: .WORD <-2> ; ; ;TPA$TYPE U.813: .WORD 4438 ; ; ;TPA$TARGET U.815: .WORD <-2> ; ; ;TPA$TYPE U.816: .WORD -27151 ; ; ;TPA$ACTION U.817: .LONG <-4> ; ; ;TPA$TARGET U.818: .WORD -2 ; ; ;SET_RTY_INI_STATE U.808: .BLKB 0 ;TPA$TYPE U.820: .WORD 22003 ; ; ;TPA$ADDR U.821: .LONG <-4> ; ; ;TPA$TARGET U.822: .WORD <-2> ; ; ;SET_RTY_PKT_STATE U.814: .BLKB 0 ;TPA$TYPE U.823: .WORD 22003 ; ; ;TPA$ADDR U.824: .LONG <-4> ; ; ;TPA$TARGET U.825: .WORD <-2> ; ; ;SET_PAR_STATE U.453: .BLKB 0 ;TPA$TYPE U.829: .WORD -27817 ; ; ;TPA$FLAGS2 U.830: .BYTE 1 ; ; ;TPA$PARAM U.831: .LONG 2 ; ; ;TPA$ACTION U.832: .LONG <-4> ; ; ;TPA$TARGET U.833: .WORD <-2> ; ; ;TPA$TYPE U.837: .WORD -27816 ; ; ;TPA$FLAGS2 U.838: .BYTE 1 ; ; ;TPA$PARAM U.839: .LONG 1 ; ; ;TPA$ACTION U.840: .LONG <-4> ; ; ;TPA$TARGET U.841: .WORD <-2> ; ; ;TPA$TYPE U.845: .WORD -27815 ; ; ;TPA$FLAGS2 U.846: .BYTE 1 ; ; ;TPA$PARAM U.847: .LONG 0 ; ; ;TPA$ACTION U.848: .LONG <-4> ; ; ;TPA$TARGET U.849: .WORD <-2> ; ; ;TPA$TYPE U.853: .WORD -27814 ; ; ;TPA$FLAGS2 U.854: .BYTE 1 ; ; ;TPA$PARAM U.855: .LONG 3 ; ; ;TPA$ACTION U.856: .LONG <-4> ; ; ;TPA$TARGET U.857: .WORD <-2> ; ; ;TPA$TYPE U.861: .WORD -27813 ; ; ;TPA$FLAGS2 U.862: .BYTE 1 ; ; ;TPA$PARAM U.863: .LONG 4 ; ; ;TPA$ACTION U.864: .LONG <-4> ; ; ;TPA$TARGET U.865: .WORD <-2> ; ; ;TPA$TYPE U.866: .WORD -27151 ; ; ;TPA$ACTION U.867: .LONG <-4> ; ; ;TPA$TARGET U.868: .WORD -2 ; ; ;SET_REC_STATE U.465: .BLKB 0 ;TPA$TYPE U.873: .WORD 4444 ; ; ;TPA$TARGET U.875: .WORD <-2> ; ; ;TPA$TYPE U.879: .WORD 4445 ; ; ;TPA$TARGET U.881: .WORD <-2> ; ; ;TPA$TYPE U.885: .WORD 4446 ; ; ;TPA$TARGET U.887: .WORD <-2> ; ; ;TPA$TYPE U.891: .WORD 4447 ; ; ;TPA$TARGET U.893: .WORD <-2> ; ; ;TPA$TYPE U.897: .WORD 4448 ; ; ;TPA$TARGET U.899: .WORD <-2> ; ; ;TPA$TYPE U.903: .WORD 4449 ; ; ;TPA$TARGET U.905: .WORD <-2> ; ; ;TPA$TYPE U.909: .WORD 4450 ; ; ;TPA$TARGET U.911: .WORD <-2> ; ; ;TPA$TYPE U.915: .WORD 4451 ; ; ;TPA$TARGET U.917: .WORD <-2> ; ; ;TPA$TYPE U.918: .WORD -27151 ; ; ;TPA$ACTION U.919: .LONG <-4> ; ; ;TPA$TARGET U.920: .WORD -2 ; ; ;SR_PKT_STATE U.886: .BLKB 0 ;TPA$TYPE U.922: .WORD -10765 ; ; ;TPA$ACTION U.923: .LONG <-4> ; ; ;TPA$ADDR U.924: .LONG <-4> ; ; ;TPA$TARGET U.925: .WORD <-2> ; ; ;SR_PAD_STATE U.898: .BLKB 0 ;TPA$TYPE U.926: .WORD -10765 ; ; ;TPA$ACTION U.927: .LONG <-4> ; ; ;TPA$ADDR U.928: .LONG <-4> ; ; ;TPA$TARGET U.929: .WORD <-2> ; ; ;SR_PDC_STATE U.892: .BLKB 0 ;TPA$TYPE U.930: .WORD -10764 ; ; ;TPA$ACTION U.931: .LONG <-4> ; ; ;TPA$ADDR U.932: .LONG <-4> ; ; ;TPA$TARGET U.933: .WORD <-2> ; ; ;SR_SOH_STATE U.910: .BLKB 0 ;TPA$TYPE U.934: .WORD -10764 ; ; ;TPA$ACTION U.935: .LONG <-4> ; ; ;TPA$ADDR U.936: .LONG <-4> ; ; ;TPA$TARGET U.937: .WORD <-2> ; ; ;SR_TIM_STATE U.916: .BLKB 0 ;TPA$TYPE U.938: .WORD 22003 ; ; ;TPA$ADDR U.939: .LONG <-4> ; ; ;TPA$TARGET U.940: .WORD <-2> ; ; ;SR_EOL_STATE U.880: .BLKB 0 ;TPA$TYPE U.941: .WORD -10764 ; ; ;TPA$ACTION U.942: .LONG <-4> ; ; ;TPA$ADDR U.943: .LONG <-4> ; ; ;TPA$TARGET U.944: .WORD <-2> ; ; ;SR_QUO_STATE U.904: .BLKB 0 ;TPA$TYPE U.945: .WORD -10764 ; ; ;TPA$ACTION U.946: .LONG <-4> ; ; ;TPA$ADDR U.947: .LONG <-4> ; ; ;TPA$TARGET U.948: .WORD <-2> ; ; ;SR_8QU_STATE U.874: .BLKB 0 ;TPA$TYPE U.949: .WORD -10764 ; ; ;TPA$ACTION U.950: .LONG <-4> ; ; ;TPA$ADDR U.951: .LONG <-4> ; ; ;TPA$TARGET U.952: .WORD <-2> ; ; ;SET_SND_STATE U.483: .BLKB 0 ;TPA$TYPE U.956: .WORD 4452 ; ; ;TPA$TARGET U.958: .WORD <-2> ; ; ;TPA$TYPE U.962: .WORD 4453 ; ; ;TPA$TARGET U.964: .WORD <-2> ; ; ;TPA$TYPE U.968: .WORD 4454 ; ; ;TPA$TARGET U.970: .WORD <-2> ; ; ;TPA$TYPE U.974: .WORD 4455 ; ; ;TPA$TARGET U.976: .WORD <-2> ; ; ;TPA$TYPE U.980: .WORD 4456 ; ; ;TPA$TARGET U.982: .WORD <-2> ; ; ;TPA$TYPE U.986: .WORD 4457 ; ; ;TPA$TARGET U.988: .WORD <-2> ; ; ;TPA$TYPE U.992: .WORD 4458 ; ; ;TPA$TARGET U.994: .WORD <-2> ; ; ;TPA$TYPE U.995: .WORD -27151 ; ; ;TPA$ACTION U.996: .LONG <-4> ; ; ;TPA$TARGET U.997: .WORD -2 ; ; ;SS_PKT_STATE U.963: .BLKB 0 ;TPA$TYPE U.999: .WORD -10765 ; ; ;TPA$ACTION U.1000: .LONG <-4> ; ; ;TPA$ADDR U.1001: .LONG <-4> ; ; ;TPA$TARGET U.1002: .WORD <-2> ; ; ;SS_PAD_STATE U.975: .BLKB 0 ;TPA$TYPE U.1003: .WORD -10765 ; ; ;TPA$ACTION U.1004: .LONG <-4> ; ; ;TPA$ADDR U.1005: .LONG <-4> ; ; ;TPA$TARGET U.1006: .WORD <-2> ; ; ;SS_PDC_STATE U.969: .BLKB 0 ;TPA$TYPE U.1007: .WORD -10764 ; ; ;TPA$ACTION U.1008: .LONG <-4> ; ; ;TPA$ADDR U.1009: .LONG <-4> ; ; ;TPA$TARGET U.1010: .WORD <-2> ; ; ;SS_SOH_STATE U.987: .BLKB 0 ;TPA$TYPE U.1011: .WORD -10764 ; ; ;TPA$ACTION U.1012: .LONG <-4> ; ; ;TPA$ADDR U.1013: .LONG <-4> ; ; ;TPA$TARGET U.1014: .WORD <-2> ; ; ;SS_TIM_STATE U.993: .BLKB 0 ;TPA$TYPE U.1015: .WORD 22003 ; ; ;TPA$ADDR U.1016: .LONG <-4> ; ; ;TPA$TARGET U.1017: .WORD <-2> ; ; ;SS_EOL_STATE U.957: .BLKB 0 ;TPA$TYPE U.1018: .WORD -10764 ; ; ;TPA$ACTION U.1019: .LONG <-4> ; ; ;TPA$ADDR U.1020: .LONG <-4> ; ; ;TPA$TARGET U.1021: .WORD <-2> ; ; ;SS_QUO_STATE U.981: .BLKB 0 ;TPA$TYPE U.1022: .WORD -10764 ; ; ;TPA$ACTION U.1023: .LONG <-4> ; ; ;TPA$ADDR U.1024: .LONG <-4> ; ; ;TPA$TARGET U.1025: .WORD <-2> ; ; ;SET_SRV_STATE U.489: .BLKB 0 ;TPA$TYPE U.1026: .WORD 22003 ; ; ;TPA$ADDR U.1027: .LONG <-4> ; ; ;TPA$TARGET U.1028: .WORD <-2> ; ; ;SET_TRN_STATE U.495: .BLKB 0 ;TPA$TYPE U.1032: .WORD 4459 ; ; ;TPA$TARGET U.1034: .WORD <-2> ; ; ;TPA$TYPE U.1038: .WORD 4460 ; ; ;TPA$TARGET U.1040: .WORD <-2> ; ; ;TPA$TYPE U.1041: .WORD -27151 ; ; ;TPA$ACTION U.1042: .LONG <-4> ; ; ;TPA$TARGET U.1043: .WORD -2 ; ; ;SET_TRD_STATE U.1033: .BLKB 0 ;TPA$TYPE U.1045: .WORD -10769 ; ; ;TPA$ACTION U.1046: .LONG <-4> ; ; ;TPA$ADDR U.1047: .LONG <-4> ; ; ;TPA$TARGET U.1048: .WORD <-2> ; ; ;SET_TRE_STATE U.1039: .BLKB 0 ;TPA$TYPE U.1052: .WORD -27795 ; ; ;TPA$FLAGS2 U.1053: .BYTE 1 ; ; ;TPA$PARAM U.1054: .LONG 1 ; ; ;TPA$ACTION U.1055: .LONG <-4> ; ; ;TPA$TARGET U.1056: .WORD <-2> ; ; ;TPA$TYPE U.1060: .WORD -27794 ; ; ;TPA$FLAGS2 U.1061: .BYTE 1 ; ; ;TPA$PARAM U.1062: .LONG 0 ; ; ;TPA$ACTION U.1063: .LONG <-4> ; ; ;TPA$TARGET U.1064: .WORD <-2> ; ; ;TPA$TYPE U.1065: .WORD -27151 ; ; ;TPA$ACTION U.1066: .LONG <-4> ; ; ;TPA$TARGET U.1067: .WORD -2 ; ; ;SEND_STATE U.177: .BLKB 0 ;TPA$TYPE U.1069: .WORD -28179 ; ; ;TPA$ACTION U.1070: .LONG <-4> ; ; ;TPA$TARGET U.1071: .WORD <-2> ; ; ;TPA$TYPE U.1072: .WORD -26634 ; ; ;TPA$FLAGS2 U.1073: .BYTE 1 ; ; ;TPA$PARAM U.1074: .ADDRESS FILE_DESC ; ; ;TPA$ACTION U.1075: .LONG <-4> ; ; ;TPA$TARGET U.1076: .WORD <-2> ; ; ;SHOW_STATE U.192: .BLKB 0 ;TPA$TYPE U.1080: .WORD 29039 ; ; ;TPA$ADDR U.1081: .LONG <-4> ; ; ;TPA$MASK U.1082: .LONG 1 ; ; ;TPA$TARGET U.1083: .WORD <-2> ; ; ;TPA$TYPE U.1087: .WORD 29040 ; ; ;TPA$ADDR U.1088: .LONG <-4> ; ; ;TPA$MASK U.1089: .LONG 12 ; ; ;TPA$TARGET U.1090: .WORD <-2> ; ; ;TPA$TYPE U.1094: .WORD 29041 ; ; ;TPA$ADDR U.1095: .LONG <-4> ; ; ;TPA$MASK U.1096: .LONG 16 ; ; ;TPA$TARGET U.1097: .WORD <-2> ; ; ;TPA$TYPE U.1101: .WORD 29042 ; ; ;TPA$ADDR U.1102: .LONG <-4> ; ; ;TPA$MASK U.1103: .LONG 2 ; ; ;TPA$TARGET U.1104: .WORD <-2> ; ; ;TPA$TYPE U.1108: .WORD 29043 ; ; ;TPA$ADDR U.1109: .LONG <-4> ; ; ;TPA$MASK U.1110: .LONG 3 ; ; ;TPA$TARGET U.1111: .WORD <-2> ; ; ;TPA$TYPE U.1115: .WORD 29044 ; ; ;TPA$ADDR U.1116: .LONG <-4> ; ; ;TPA$MASK U.1117: .LONG 4 ; ; ;TPA$TARGET U.1118: .WORD <-2> ; ; ;TPA$TYPE U.1122: .WORD 29045 ; ; ;TPA$ADDR U.1123: .LONG <-4> ; ; ;TPA$MASK U.1124: .LONG 14 ; ; ;TPA$TARGET U.1125: .WORD <-2> ; ; ;TPA$TYPE U.1129: .WORD 29046 ; ; ;TPA$ADDR U.1130: .LONG <-4> ; ; ;TPA$MASK U.1131: .LONG 13 ; ; ;TPA$TARGET U.1132: .WORD <-2> ; ; ;TPA$TYPE U.1136: .WORD 29047 ; ; ;TPA$ADDR U.1137: .LONG <-4> ; ; ;TPA$MASK U.1138: .LONG 6 ; ; ;TPA$TARGET U.1139: .WORD <-2> ; ; ;TPA$TYPE U.1143: .WORD 29048 ; ; ;TPA$ADDR U.1144: .LONG <-4> ; ; ;TPA$MASK U.1145: .LONG 7 ; ; ;TPA$TARGET U.1146: .WORD <-2> ; ; ;TPA$TYPE U.1150: .WORD 29049 ; ; ;TPA$ADDR U.1151: .LONG <-4> ; ; ;TPA$MASK U.1152: .LONG 15 ; ; ;TPA$TARGET U.1153: .WORD <-2> ; ; ;TPA$TYPE U.1157: .WORD 29050 ; ; ;TPA$ADDR U.1158: .LONG <-4> ; ; ;TPA$MASK U.1159: .LONG 10 ; ; ;TPA$TARGET U.1160: .WORD <-2> ; ; ;TPA$TYPE U.1164: .WORD 29051 ; ; ;TPA$ADDR U.1165: .LONG <-4> ; ; ;TPA$MASK U.1166: .LONG 8 ; ; ;TPA$TARGET U.1167: .WORD <-2> ; ; ;TPA$TYPE U.1171: .WORD 29052 ; ; ;TPA$ADDR U.1172: .LONG <-4> ; ; ;TPA$MASK U.1173: .LONG 5 ; ; ;TPA$TARGET U.1174: .WORD <-2> ; ; ;TPA$TYPE U.1178: .WORD 29053 ; ; ;TPA$ADDR U.1179: .LONG <-4> ; ; ;TPA$MASK U.1180: .LONG 9 ; ; ;TPA$TARGET U.1181: .WORD <-2> ; ; ;TPA$TYPE U.1185: .WORD 29054 ; ; ;TPA$ADDR U.1186: .LONG <-4> ; ; ;TPA$MASK U.1187: .LONG 11 ; ; ;TPA$TARGET U.1188: .WORD <-2> ; ; ;TPA$TYPE U.1192: .WORD 29055 ; ; ;TPA$ADDR U.1193: .LONG <-4> ; ; ;TPA$MASK U.1194: .LONG 17 ; ; ;TPA$TARGET U.1195: .WORD <-2> ; ; ;TPA$TYPE U.1199: .WORD 29056 ; ; ;TPA$ADDR U.1200: .LONG <-4> ; ; ;TPA$MASK U.1201: .LONG 18 ; ; ;TPA$TARGET U.1202: .WORD <-2> ; ; ;TPA$TYPE U.1203: .WORD -27151 ; ; ;TPA$ACTION U.1204: .LONG <-4> ; ; ;TPA$TARGET U.1205: .WORD -2 ; ; ;LOG_STATE U.125: .BLKB 0 ;TPA$TYPE U.1210: .WORD 4481 ; ; ;TPA$TARGET U.1212: .WORD <-2> ; ; ;TPA$TYPE U.1216: .WORD 4482 ; ; ;TPA$TARGET U.1218: .WORD <-2> ; ; ;TPA$TYPE U.1222: .WORD 4483 ; ; ;TPA$TARGET U.1224: .WORD <-2> ; ; ;TPA$TYPE U.1225: .WORD -27151 ; ; ;TPA$ACTION U.1226: .LONG <-4> ; ; ;TPA$TARGET U.1227: .WORD -2 ; ; ;DBG_STATE U.1211: .BLKB 0 ;TPA$TYPE U.1229: .WORD -28179 ; ; ;TPA$ACTION U.1230: .LONG <-4> ; ; ;TPA$TARGET U.1231: .WORD <-2> ; ; ;TPA$TYPE U.1232: .WORD -26634 ; ; ;TPA$FLAGS2 U.1233: .BYTE 1 ; ; ;TPA$PARAM U.1234: .ADDRESS DEBUG_DESC ; ; ;TPA$ACTION U.1235: .LONG <-4> ; ; ;TPA$TARGET U.1236: .WORD <-2> ; ; ;SES_STATE U.1217: .BLKB 0 ;TPA$TYPE U.1237: .WORD -28179 ; ; ;TPA$ACTION U.1238: .LONG <-4> ; ; ;TPA$TARGET U.1239: .WORD <-2> ; ; ;TPA$TYPE U.1240: .WORD -26634 ; ; ;TPA$FLAGS2 U.1241: .BYTE 1 ; ; ;TPA$PARAM U.1242: .ADDRESS SESSION_DESC ; ; ;TPA$ACTION U.1243: .LONG <-4> ; ; ;TPA$TARGET U.1244: .WORD <-2> ; ; ;TRN_STATE U.1223: .BLKB 0 ;TPA$TYPE U.1245: .WORD -28179 ; ; ;TPA$ACTION U.1246: .LONG <-4> ; ; ;TPA$TARGET U.1247: .WORD <-2> ; ; ;TPA$TYPE U.1248: .WORD -26634 ; ; ;TPA$FLAGS2 U.1249: .BYTE 1 ; ; ;TPA$PARAM U.1250: .ADDRESS TRANSACTION_DESC ; ; ;TPA$ACTION U.1251: .LONG <-4> ; ; ;TPA$TARGET U.1252: .WORD <-2> ; ; ;TAKE_STATE U.207: .BLKB 0 ;TPA$TYPE U.1253: .WORD -28113 ; ; ;TPA$FLAGS2 U.1254: .BYTE 1 ; ; ;TPA$PARAM U.1255: .ADDRESS U.59 ; ; ;TPA$ACTION U.1256: .LONG <-4> ; ; ;TPA$TARGET U.1258: .WORD <-2> ; ; ;TPA$TYPE U.1259: .WORD -28179 ; ; ;TPA$ACTION U.1260: .LONG <-4> ; ; ;TPA$TARGET U.1261: .WORD <-2> ; ; ;TPA$TYPE U.1262: .WORD -26634 ; ; ;TPA$FLAGS2 U.1263: .BYTE 1 ; ; ;TPA$PARAM U.1264: .ADDRESS U.59 ; ; ;TPA$ACTION U.1265: .LONG <-4> ; ; ;TPA$TARGET U.1266: .WORD <-2> ; ; ;TAK_SWT_STATE U.1257: .BLKB 0 ;TPA$TYPE U.1270: .WORD 29060 ; ; ;TPA$ADDR U.1271: .LONG <-4> ; ; ;TPA$MASK U.1272: .LONG 1 ; ; ;TPA$TARGET U.1273: .WORD <-2> ; ; ;TPA$TYPE U.1274: .WORD -27151 ; ; ;TPA$ACTION U.1275: .LONG <-4> ; ; ;TPA$TARGET U.1276: .WORD -2 ; ; ;TRANSMIT_STATE U.219: .BLKB 0 ;TPA$TYPE U.1278: .WORD -28179 ; ; ;TPA$ACTION U.1279: .LONG <-4> ; ; ;TPA$TARGET U.1280: .WORD <-2> ; ; ;TPA$TYPE U.1281: .WORD -26634 ; ; ;TPA$FLAGS2 U.1282: .BYTE 1 ; ; ;TPA$PARAM U.1283: .ADDRESS FILE_DESC ; ; ;TPA$ACTION U.1284: .LONG <-4> ; ; ;TPA$TARGET U.1285: .WORD <-2> ; ; ;DONE_STATE U.71: .BLKB 0 ;TPA$TYPE U.1286: .WORD 5623 ; ; ;TPA$TARGET U.1287: .WORD -1 ; ; .PSECT _LIB$KEY0$,NOWRT, SHR, PIC,1 KERMIT_KEY:: .BLKB 0 ;TPA$KEY0 U.64: .BLKB 0 ;TPA$KEY U.66: .WORD ; ; ;TPA$KEY U.74: .WORD ; ; ;TPA$KEY U.82: .WORD ; ; ;TPA$KEY U.89: .WORD ; ; ;TPA$KEY U.96: .WORD ; ; ;TPA$KEY U.104: .WORD ; ; ;TPA$KEY U.112: .WORD ; ; ;TPA$KEY U.120: .WORD ; ; ;TPA$KEY U.128: .WORD ; ; ;TPA$KEY U.135: .WORD ; ; ;TPA$KEY U.142: .WORD ; ; ;TPA$KEY U.149: .WORD ; ; ;TPA$KEY U.157: .WORD ; ; ;TPA$KEY U.164: .WORD ; ; ;TPA$KEY U.172: .WORD ; ; ;TPA$KEY U.180: .WORD ; ; ;TPA$KEY U.187: .WORD ; ; ;TPA$KEY U.195: .WORD ; ; ;TPA$KEY U.202: .WORD ; ; ;TPA$KEY U.214: .WORD ; ; ;TPA$KEY U.256: .WORD ; ; ;TPA$KEY U.264: .WORD ; ; ;TPA$KEY U.272: .WORD ; ; ;TPA$KEY U.279: .WORD ; ; ;TPA$KEY U.286: .WORD ; ; ;TPA$KEY U.293: .WORD ; ; ;TPA$KEY U.300: .WORD ; ; ;TPA$KEY U.307: .WORD ; ; ;TPA$KEY U.314: .WORD ; ; ;TPA$KEY U.321: .WORD ; ; ;TPA$KEY U.328: .WORD ; ; ;TPA$KEY U.335: .WORD ; ; ;TPA$KEY U.342: .WORD ; ; ;TPA$KEY U.349: .WORD ; ; ;TPA$KEY U.356: .WORD ; ; ;TPA$KEY U.363: .WORD ; ; ;TPA$KEY U.385: .WORD ; ; ;TPA$KEY U.391: .WORD ; ; ;TPA$KEY U.397: .WORD ; ; ;TPA$KEY U.403: .WORD ; ; ;TPA$KEY U.409: .WORD ; ; ;TPA$KEY U.415: .WORD ; ; ;TPA$KEY U.421: .WORD ; ; ;TPA$KEY U.427: .WORD ; ; ;TPA$KEY U.433: .WORD ; ; ;TPA$KEY U.438: .WORD ; ; ;TPA$KEY U.444: .WORD ; ; ;TPA$KEY U.450: .WORD ; ; ;TPA$KEY U.456: .WORD ; ; ;TPA$KEY U.462: .WORD ; ; ;TPA$KEY U.468: .WORD ; ; ;TPA$KEY U.474: .WORD ; ; ;TPA$KEY U.480: .WORD ; ; ;TPA$KEY U.486: .WORD ; ; ;TPA$KEY U.492: .WORD ; ; ;TPA$KEY U.502: .WORD ; ; ;TPA$KEY U.510: .WORD ; ; ;TPA$KEY U.522: .WORD ; ; ;TPA$KEY U.530: .WORD ; ; ;TPA$KEY U.538: .WORD ; ; ;TPA$KEY U.546: .WORD ; ; ;TPA$KEY U.554: .WORD ; ; ;TPA$KEY U.562: .WORD ; ; ;TPA$KEY U.574: .WORD ; ; ;TPA$KEY U.582: .WORD ; ; ;TPA$KEY U.594: .WORD ; ; ;TPA$KEY U.602: .WORD ; ; ;TPA$KEY U.614: .WORD ; ; ;TPA$KEY U.631: .WORD ; ; ;TPA$KEY U.637: .WORD ; ; ;TPA$KEY U.647: .WORD ; ; ;TPA$KEY U.655: .WORD ; ; ;TPA$KEY U.663: .WORD ; ; ;TPA$KEY U.675: .WORD ; ; ;TPA$KEY U.683: .WORD ; ; ;TPA$KEY U.691: .WORD ; ; ;TPA$KEY U.699: .WORD ; ; ;TPA$KEY U.717: .WORD ; ; ;TPA$KEY U.725: .WORD ; ; ;TPA$KEY U.737: .WORD ; ; ;TPA$KEY U.743: .WORD ; ; ;TPA$KEY U.753: .WORD ; ; ;TPA$KEY U.761: .WORD ; ; ;TPA$KEY U.773: .WORD ; ; ;TPA$KEY U.781: .WORD ; ; ;TPA$KEY U.805: .WORD ; ; ;TPA$KEY U.811: .WORD ; ; ;TPA$KEY U.827: .WORD ; ; ;TPA$KEY U.835: .WORD ; ; ;TPA$KEY U.843: .WORD ; ; ;TPA$KEY U.851: .WORD ; ; ;TPA$KEY U.859: .WORD ; ; ;TPA$KEY U.871: .WORD ; ; ;TPA$KEY U.877: .WORD ; ; ;TPA$KEY U.883: .WORD ; ; ;TPA$KEY U.889: .WORD ; ; ;TPA$KEY U.895: .WORD ; ; ;TPA$KEY U.901: .WORD ; ; ;TPA$KEY U.907: .WORD ; ; ;TPA$KEY U.913: .WORD ; ; ;TPA$KEY U.954: .WORD ; ; ;TPA$KEY U.960: .WORD ; ; ;TPA$KEY U.966: .WORD ; ; ;TPA$KEY U.972: .WORD ; ; ;TPA$KEY U.978: .WORD ; ; ;TPA$KEY U.984: .WORD ; ; ;TPA$KEY U.990: .WORD ; ; ;TPA$KEY U.1030: .WORD ; ; ;TPA$KEY U.1036: .WORD ; ; ;TPA$KEY U.1050: .WORD ; ; ;TPA$KEY U.1058: .WORD ; ; ;TPA$KEY U.1078: .WORD ; ; ;TPA$KEY U.1085: .WORD ; ; ;TPA$KEY U.1092: .WORD ; ; ;TPA$KEY U.1099: .WORD ; ; ;TPA$KEY U.1106: .WORD ; ; ;TPA$KEY U.1113: .WORD ; ; ;TPA$KEY U.1120: .WORD ; ; ;TPA$KEY U.1127: .WORD ; ; ;TPA$KEY U.1134: .WORD ; ; ;TPA$KEY U.1141: .WORD ; ; ;TPA$KEY U.1148: .WORD ; ; ;TPA$KEY U.1155: .WORD ; ; ;TPA$KEY U.1162: .WORD ; ; ;TPA$KEY U.1169: .WORD ; ; ;TPA$KEY U.1176: .WORD ; ; ;TPA$KEY U.1183: .WORD ; ; ;TPA$KEY U.1190: .WORD ; ; ;TPA$KEY U.1197: .WORD ; ; ;TPA$KEY U.1208: .WORD ; ; ;TPA$KEY U.1214: .WORD ; ; ;TPA$KEY U.1220: .WORD ; ; ;TPA$KEY U.1268: .WORD ; ; .PSECT $PLIT$,NOWRT,NOEXE,2 P.AAB: .ASCII \VMS Kermit-32 version 3.3.111\<0><0><0> ; ; P.AAA: .LONG 17694749 ; ; .ADDRESS P.AAB ; ; P.AAD: .ASCII \Kermit-32>\<0><0> ; ; P.AAC: .LONG 17694730 ; ; .ADDRESS P.AAD ; ; P.AAF: .ASCII \VMSKERMIT\<0><0><0> ; ; P.AAE: .LONG 17694729 ; ; .ADDRESS P.AAF ; ; P.AAH: .ASCII \.INI;0\<0><0> ; ; P.AAG: .LONG 17694726 ; ; .ADDRESS P.AAH ; ; .PSECT $OWN$,NOEXE,2 ;TPARSE_BLOCK U.46: .LONG 8, 2 ; ; .BLKB 28 ;BAD_CMD_DESC U.47: .BLKB 8 ;COMMAND U.48: .BLKB 4 ;SHOW_TYPE U.49: .BLKB 4 ;REM_TYPE U.50: .BLKB 4 ;TAKE_DISPLAY U.51: .BLKB 4 ;OUTPUT_LINE U.52: .BLKB 80 ;OUTPUT_DESC U.53: .BLKB 8 ;OUTPUT_SIZE U.54: .BLKB 2 .BLKB 2 ;TRANSACTION_NAME U.55: .BLKB 132 ;PROMPT_DESC U.56: .BLKB 8 ;PROMPT_TEXT U.57: .BLKB 132 ;CRC_TABLE U.58: .BLKB 64 ;TAK_FIL_DESC U.59: .BLKB 8 ;TAK_FIL_NAME U.60: .BLKB 132 ;TEMP_DESC U.61: .BLKB 8 ;TEMP_NAME U.62: .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.37= 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 COMND_TRANSMIT, TT_INIT, TT_TEXT, TT_NUMBER, TT_CHAR, TT_OUTPUT, TT_CRLF, RCV_PKT_SIZE .EXTRN RCV_NPAD, RCV_PADCHAR, RCV_TIMEOUT, RCV_EOL, RCV_QUOTE_CHR, RCV_8QUOTE_CHR, RCV_SOH .EXTRN SND_PKT_SIZE, SND_NPAD, SND_PADCHAR, SND_TIMEOUT, SND_EOL, SND_QUOTE_CHR, SND_SOH .EXTRN SRV_TIMEOUT, SET_REPT_CHR, SND_TOTAL_CHARS, RCV_TOTAL_CHARS, SND_DATA_CHARS, RCV_DATA_CHARS .EXTRN SMSG_TOTAL_CHARS, RMSG_TOTAL_CHARS, SMSG_DATA_CHARS, RMSG_DATA_CHARS, RCV_NAKS, SND_NAKS .EXTRN RMSG_NAKS, SMSG_NAKS, RCV_COUNT, SND_COUNT, RMSG_COUNT, SMSG_COUNT, XFR_TIME, TOTAL_TIME .EXTRN LAST_ERROR, TY_PKT, TY_FIL, GEN_1DATA, GEN_1SIZE, GEN_2DATA, GEN_2SIZE, GEN_3DATA .EXTRN GEN_3SIZE, FILE_SIZE, FILE_NAME, SI_RETRIES, PKT_RETRIES, DELAY, DEBUG_FLAG, CHKTYPE .EXTRN ABT_FLAG, IBM_CHAR, WARN_FLAG, FIL_NORMAL_FORM, PARITY_TYPE, ECHO_FLAG, CONNECT_FLAG .EXTRN FILE_TYPE, FILE_DESC, SESSION_DESC, DEBUG_DESC, TERM_DESC, TRANS_ECHO_FLAG, TRANS_DELAY .EXTRN TERM_FLAG .PSECT $CODE$,NOWRT,2 MAIN_ROUTINE: .WORD ^M ;Save R2,R3,R4 ; 2048 MOVAB G^U.1, R4 ;U.1, R4 ; MOVAB G^ESCAPE_CHR, R3 ;ESCAPE_CHR, R3 ; MOVAB G^U.58, R2 ;U.58, R2 ; SUBL2 #4, SP ;#4, SP ; PUSHL R4 ;R4 ; 2090 CALLS #1, G^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT ; CALLS #0, G^MSG_INIT ;#0, MSG_INIT ; 2091 CALLS #0, G^TERM_INIT ;#0, TERM_INIT ; 2092 CALLS #0, G^TT_INIT ;#0, TT_INIT ; 2093 CALLS #0, G^FILE_INIT ;#0, FILE_INIT ; 2094 CALLS #0, G^SY_INIT ;#0, SY_INIT ; 2095 MOVL #29, (R3) ;#29, ESCAPE_CHR ; 2096 MOVZWL #33800, (SP) ;#33800, CRC_BIT_MASK ; 2100 PUSHL R2 ;R2 ; 2101 PUSHAB 4(SP) ;CRC_BIT_MASK ; CALLS #2, G^LIB$CRC_TABLE ;#2, LIB$CRC_TABLE ; PUSHAB G^U.36 ;U.36 ; 2102 CALLS #1, G^LIB$ESTABLISH ;#1, LIB$ESTABLISH ; MOVL #17694720, -160(R3) ;#17694720, TRANSACTION_DESC ; 2106 MOVAB -272(R2), -156(R3) ;TRANSACTION_NAME, TRANSACTION_DESC+4 ; MOVL #17694720, 64(R2) ;#17694720, TAK_FIL_DESC ; 2110 MOVAB 72(R2), 68(R2) ;TAK_FIL_NAME, TAK_FIL_DESC+4 ; MOVL #17694720, -140(R2) ;#17694720, PROMPT_DESC ; 2114 MOVAB -132(R2), -136(R2) ;PROMPT_TEXT, PROMPT_DESC+4 ; MOVQ #1, -(SP) ;#1, -(SP) ; 2118 PUSHAB 56(R4) ;P.AAG ; PUSHAB 40(R4) ;P.AAE ; CALLS #4, G^U.4 ;#4, U.4 ; CALLS #0, G^U.2 ;#0, U.2 ; 2122 RET ; ; 2123 ; Routine Size: 172 bytes, Routine Base: $CODE$ + 0000 ; 2124 1 %SBTTL 'COMND' ; 2125 1 ROUTINE COMND = ; 2126 1 ; 2127 1 !++ ; 2128 1 ! FUNCTIONAL DESCRIPTION: ; 2129 1 ! This routine will do the command scanning for KERMIT-32. It ; 2130 1 ! will call the correct routines to process the commands. ; 2131 1 ! ; 2132 1 ! CALLING SEQUENCE: ; 2133 1 ! ; 2134 1 ! COMND(); ; 2135 1 ! ; 2136 1 ! INPUT PARAMETERS: ; 2137 1 ! ; 2138 1 ! None. ; 2139 1 ! ; 2140 1 ! IMPLICIT INPUTS: ; 2141 1 ! ; 2142 1 ! None. ; 2143 1 ! ; 2144 1 ! OUTPUT PARAMETERS: ; 2145 1 ! ; 2146 1 ! None. ; 2147 1 ! ; 2148 1 ! IMPLICIT OUTPUTS: ; 2149 1 ! ; 2150 1 ! None. ; 2151 1 ! ; 2152 1 ! COMPLETION CODES: ; 2153 1 ! ; 2154 1 ! None. ; 2155 1 ! ; 2156 1 ! SIDE EFFECTS: ; 2157 1 ! ; 2158 1 ! None. ; 2159 1 ! ; 2160 1 !-- ; 2161 1 ; 2162 2 BEGIN ; 2163 2 ; 2164 2 EXTERNAL ROUTINE ; 2165 2 GET_COMMAND, ! Get line from SYS$COMMAND ; 2166 2 LIB$GET_FOREIGN : ADDRESSING_MODE (GENERAL); ! Get command which started program ; 2167 2 ; 2168 2 LOCAL ; 2169 2 DESC : BLOCK [8, BYTE], ; 2170 2 CMD_BUF : VECTOR [80, BYTE, UNSIGNED], ; 2171 2 CMD_SIZE : UNSIGNED WORD, ; 2172 2 ONE_COMMAND, ! Only do one command ; 2173 2 STATUS : UNSIGNED LONG; ; 2174 2 ; 2175 2 ONE_COMMAND = FALSE; ! And many commands ; 2176 2 ! ; 2177 2 ! Initialize the command string descriptor ; 2178 2 ! ; 2179 2 INIT_STR_DESC (DESC, CMD_BUF, 80); ; 2180 2 ! ; 2181 2 ! Get the first command string. If we get something, then we will only ; 2182 2 ! want to perform one command, then exit. Otherwise, we will do commands ; 2183 2 ! until something one tells us to exit. ; 2184 2 ! ; 2185 2 STATUS = LIB$GET_FOREIGN (DESC, 0, CMD_SIZE, 0); ; 2186 2 ; 2187 2 IF .STATUS EQL RMS$_EOF THEN RETURN SS$_NORMAL; ; 2188 2 ; 2189 2 IF NOT .STATUS ; 2190 2 THEN ; 2191 3 BEGIN ; 2192 3 LIB$SIGNAL (.STATUS); ; 2193 3 RETURN .STATUS; ; 2194 2 END; ; 2195 2 ; 2196 2 IF .CMD_SIZE GTR 0 THEN ONE_COMMAND = TRUE; ; 2197 2 ; 2198 2 WHILE TRUE DO ; 2199 3 BEGIN ; 2200 3 ; 2201 3 IF .CMD_SIZE GTR 0 ; 2202 3 THEN ; 2203 4 BEGIN ; 2204 4 DESC [DSC$W_LENGTH] = .CMD_SIZE; ; 2205 4 ; 2206 4 IF .STATUS THEN STATUS = DO_COMND (DESC); ; 2207 4 ; 2208 4 IF .STATUS EQL KER_EXIT THEN RETURN SS$_NORMAL; ; 2209 4 ; 2210 4 IF NOT .STATUS AND .STATUS NEQ KER_TAKE_ERROR THEN COMND_ERROR (.STATUS); ; 2211 4 ; 2212 3 END; ; 2213 3 ; 2214 3 ! ; 2215 3 ! If we were given command when run, just exit after doing it ; 2216 3 ! ; 2217 3 ; 2218 3 IF .ONE_COMMAND THEN RETURN SS$_NORMAL; ; 2219 3 ; 2220 3 ! ; 2221 3 ! Initialize prompt if null ; 2222 3 ! ; 2223 3 ; 2224 3 IF .PROMPT_DESC [DSC$W_LENGTH] LEQ 0 ; 2225 3 THEN ; 2226 4 BEGIN ; 2227 4 CH$COPY (.DEFAULT_PROMPT [DSC$W_LENGTH], CH$PTR (.DEFAULT_PROMPT [DSC$A_POINTER]), 0, ; 2228 4 TEMP_LENGTH, CH$PTR (PROMPT_TEXT)); ; 2229 4 PROMPT_DESC = .DEFAULT_PROMPT [DSC$W_LENGTH]; ; 2230 3 END; ; 2231 3 ; 2232 3 DESC [DSC$W_LENGTH] = 80; ! Reset length ; 2233 3 STATUS = GET_COMMAND (DESC, PROMPT_DESC, CMD_SIZE, TRUE); ; 2234 3 ; 2235 3 IF .STATUS EQL RMS$_EOF THEN RETURN SS$_NORMAL; ; 2236 3 ! ; 2237 3 ! If there was an error then return the error code to the upper level ; 2238 3 ! ; 2239 3 IF NOT .STATUS ! Failing status? ; 2240 3 THEN ; 2241 3 RETURN .STATUS; ! Yes, return it ; 2242 3 ; 2243 2 END; ! End of WHILE TRUE DO BEGIN ; 2244 2 ; 2245 2 RETURN SS$_NORMAL; ; 2246 1 END; ! End of COMND .EXTRN GET_COMMAND, LIB$GET_FOREIGN ;COMND U.2: .WORD ^M ;Save R2,R3,R4,R5,R6,R7,R8,R9 ; 2125 MOVAB G^U.56, R9 ;U.56, R9 ; MOVAB -92(SP), SP ;-92(SP), SP ; CLRL R8 ;ONE_COMMAND ; 2175 MOVL #17694800, 84(SP) ;#17694800, DESC ; 2179 MOVAB 4(SP), 88(SP) ;CMD_BUF, DESC+4 ; CLRL -(SP) ;-(SP) ; 2185 PUSHAB 4(SP) ;CMD_SIZE ; CLRL -(SP) ;-(SP) ; PUSHAB 96(SP) ;DESC ; CALLS #4, G^LIB$GET_FOREIGN ;#4, LIB$GET_FOREIGN ; MOVL R0, R7 ;R0, STATUS ; CMPL R7, #98938 ;STATUS, #98938 ; 2187 BEQL 4$ ;4$ ; BLBS R7, 1$ ;STATUS, 1$ ; 2189 PUSHL R7 ;STATUS ; 2192 CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL ; BRW 7$ ;7$ ; 2193 1$: TSTW (SP) ;CMD_SIZE ; 2196 BEQL 2$ ;2$ ; MOVL #1, R8 ;#1, ONE_COMMAND ; 2$: TSTW (SP) ;CMD_SIZE ; 2201 BEQL 5$ ;5$ ; MOVW (SP), 84(SP) ;CMD_SIZE, DESC ; 2204 BLBC R7, 3$ ;STATUS, 3$ ; 2206 PUSHAB 84(SP) ;DESC ; CALLS #1, G^U.5 ;#1, U.5 ; MOVL R0, R7 ;R0, STATUS ; 3$: CMPL R7, #134316203 ;STATUS, #134316203 ; 2208 4$: BEQL 8$ ;8$ ; BLBS R7, 5$ ;STATUS, 5$ ; 2210 CMPL R7, #134316306 ;STATUS, #134316306 ; BEQL 5$ ;5$ ; PUSHL R7 ;STATUS ; CALLS #1, G^U.3 ;#1, U.3 ; 5$: BLBS R8, 8$ ;ONE_COMMAND, 8$ ; 2218 TSTW (R9) ;PROMPT_DESC ; 2224 BNEQ 6$ ;6$ ; MOVZWL G^U.37, R6 ;U.37, R6 ; 2227 MOVL G^U.37+4, R0 ;U.37+4, R0 ; MOVC5 R6, (R0), #0, #132, 8(R9) ;R6, (R0), #0, #132, PROMPT_TEXT ; 2228 MOVL R6, (R9) ;R6, PROMPT_DESC ; 2229 6$: MOVZBW #80, 84(SP) ;#80, DESC ; 2232 PUSHL #1 ;#1 ; 2233 PUSHAB 4(SP) ;CMD_SIZE ; PUSHL R9 ;R9 ; PUSHAB 96(SP) ;DESC ; CALLS #4, G^GET_COMMAND ;#4, GET_COMMAND ; MOVL R0, R7 ;R0, STATUS ; CMPL R7, #98938 ;STATUS, #98938 ; 2235 BEQL 8$ ;8$ ; BLBS R7, 2$ ;STATUS, 2$ ; 2239 7$: MOVL R7, R0 ;STATUS, R0 ; 2241 RET ; ; 8$: MOVL #1, R0 ;#1, R0 ; 2245 RET ; ; 2246 ; Routine Size: 211 bytes, Routine Base: $CODE$ + 00AC ; 2247 1 %SBTTL 'COMND_FILE - Perform take (indirect) file' ; 2248 1 ROUTINE COMND_FILE (TAKE_DESC, DEFAULT_DESC, OK_NONE, DISPLAY_FLAG) = ; 2249 1 ; 2250 1 !++ ; 2251 1 ! FUNCTIONAL DESCRIPTION: ; 2252 1 ! ; 2253 1 ! This routine will read a file of commands and perform them. If any ; 2254 1 ! error occurs, it will abort the command processing. ; 2255 1 ! ; 2256 1 ! CALLING SEQUENCE: ; 2257 1 ! ; 2258 1 ! STATUS = COMND_FILE (TAKE_DESC, DEFAULT_DESC, OK_NONE, DISPLAY_FLAG) ; 2259 1 ! ; 2260 1 ! INPUT PARAMETERS: ; 2261 1 ! ; 2262 1 ! TAKE_DESC - String descriptor of file specification ; 2263 1 ! DEFAULT_DESC - Default file specification ; 2264 1 ! OK_NONE - If true, return EOF if file does not exist, otherwise ; 2265 1 ! return error if file does not exist. ; 2266 1 ! DISPLAY_FLAG - If true display commands being executed ; 2267 1 ! ; 2268 1 ! IMPLICIT INPUTS: ; 2269 1 ! ; 2270 1 ! None. ; 2271 1 ! ; 2272 1 ! OUPTUT PARAMETERS: ; 2273 1 ! ; 2274 1 ! None. ; 2275 1 ! ; 2276 1 ! IMPLICIT OUTPUTS: ; 2277 1 ! ; 2278 1 ! None. ; 2279 1 ! ; 2280 1 ! COMPLETION CODES: ; 2281 1 ! ; 2282 1 ! Standard status values ; 2283 1 ! ; 2284 1 ! SIDE EFFECTS: ; 2285 1 ! ; 2286 1 ! None. ; 2287 1 ! ; 2288 1 !-- ; 2289 1 ; 2290 2 BEGIN ; 2291 2 ; 2292 2 EXTERNAL ROUTINE ; 2293 2 STR$UPCASE : ADDRESSING_MODE (GENERAL), ! Upcase a string ; 2294 2 LIB$GET_VM : ADDRESSING_MODE (GENERAL) NOVALUE, ; 2295 2 LIB$FREE_VM : ADDRESSING_MODE (GENERAL) NOVALUE; ; 2296 2 ; 2297 2 MAP ; 2298 2 TAKE_DESC : REF BLOCK [8, BYTE], ; 2299 2 DEFAULT_DESC : REF BLOCK [8, BYTE]; ! The args are descriptors ; 2300 2 ; 2301 2 LOCAL ; 2302 2 TAKE_FILE_DESC : BLOCK [8, BYTE], ! Descriptor for take file ; 2303 2 TAKE_FILE_NAME : VECTOR [CH$ALLOCATION (MAX_FILE_NAME)], ! Name of take file ; 2304 2 TAKE_FILE_FAB : $FAB_DECL, ! FAB for take file ; 2305 2 TAKE_FILE_RAB : $RAB_DECL, ! RAB for take file ; 2306 2 TAKE_FILE_XABFHC : $XABFHC_DECL, ! XAB for file header items ; 2307 2 TAKE_FILE_BADR, ! Address of take file buffer ; 2308 2 TAKE_FILE_BSIZ, ! Size of take file buffer ; 2309 2 TAKE_FILE_FADR, ! Address of fixed header buffer ; 2310 2 TAKE_FILE_FSIZ, ! size of fixed header buffer ; 2311 2 STATUS, ! Random status values ; 2312 2 CMD_DESC : BLOCK [8, BYTE]; ! Descriptor for command ; 2313 2 ; 2314 2 CH$COPY (.TAKE_DESC [DSC$W_LENGTH], CH$PTR (.TAKE_DESC [DSC$A_POINTER]), 0, MAX_FILE_NAME, ; 2315 2 CH$PTR (TAKE_FILE_NAME)); ; 2316 2 INIT_STR_DESC (TAKE_FILE_DESC, TAKE_FILE_NAME, .TAKE_DESC [DSC$W_LENGTH]); ; P 2317 2 $FAB_INIT (FAB = TAKE_FILE_FAB, FNA = TAKE_FILE_NAME, FNS = .TAKE_FILE_DESC [DSC$W_LENGTH], FAC = GET, ; 2318 2 XAB = TAKE_FILE_XABFHC, DNA = .DEFAULT_DESC [DSC$A_POINTER], DNS = .DEFAULT_DESC [DSC$W_LENGTH]); ; 2319 2 $XABFHC_INIT (XAB = TAKE_FILE_XABFHC); ; 2320 2 STATUS = $OPEN (FAB = TAKE_FILE_FAB); ; 2321 2 ; 2322 2 IF NOT .STATUS ; 2323 2 THEN ; 2324 3 BEGIN ; 2325 3 ; 2326 3 IF .STATUS EQL RMS$_FNF AND .OK_NONE THEN RETURN KER_TAKE_EOF; ; 2327 3 ; 2328 3 LIB$SIGNAL (.STATUS); ; 2329 3 RETURN KER_TAKE_ERROR; ; 2330 2 END; ; 2331 2 ; 2332 2 ! ; 2333 2 ! Allocate a buffer ; 2334 2 ! ; 2335 2 TAKE_FILE_BSIZ = .TAKE_FILE_XABFHC [XAB$W_LRL]; ; 2336 2 ; 2337 2 IF .TAKE_FILE_BSIZ EQL 0 THEN TAKE_FILE_BSIZ = MAX_REC_LENGTH; ; 2338 2 ; 2339 2 LIB$GET_VM (TAKE_FILE_BSIZ, TAKE_FILE_BADR); ; 2340 2 INIT_STR_DESC (CMD_DESC, .TAKE_FILE_BADR, .TAKE_FILE_BSIZ); ; 2341 2 ! ; 2342 2 ! Determine if we need a buffer for the fixed control area ; 2343 2 ! ; 2344 2 TAKE_FILE_FSIZ = .TAKE_FILE_FAB [FAB$B_FSZ]; ; 2345 2 ; 2346 2 IF .TAKE_FILE_FSIZ NEQ 0 THEN LIB$GET_VM (TAKE_FILE_FSIZ, TAKE_FILE_FADR); ; 2347 2 ; 2348 2 ! ; 2349 2 ! Initialize the RAB for the $CONNECT RMS call ; 2350 2 ! ; P 2351 2 $RAB_INIT (RAB = TAKE_FILE_RAB, FAB = TAKE_FILE_FAB, RAC = SEQ, ROP = NLK, UBF = .TAKE_FILE_BADR, ; 2352 2 USZ = .TAKE_FILE_BSIZ); ; 2353 2 ; 2354 2 IF .TAKE_FILE_FSIZ NEQ 0 THEN TAKE_FILE_RAB [RAB$L_RHB] = .TAKE_FILE_FADR; ; 2355 2 ; 2356 2 STATUS = $CONNECT (RAB = TAKE_FILE_RAB); ; 2357 2 ; 2358 2 IF NOT .STATUS ; 2359 2 THEN ; 2360 3 BEGIN ; 2361 3 LIB$SIGNAL (.STATUS); ; 2362 3 LIB$FREE_VM (TAKE_FILE_BSIZ, TAKE_FILE_BADR); ; 2363 3 ; 2364 3 IF .TAKE_FILE_FSIZ NEQ 0 THEN LIB$FREE_VM (TAKE_FILE_FSIZ, TAKE_FILE_FADR); ; 2365 3 ; 2366 3 RETURN KER_TAKE_ERROR; ; 2367 2 END; ; 2368 2 ; 2369 2 WHILE (STATUS = $GET (RAB = TAKE_FILE_RAB)) DO ; 2370 3 BEGIN ; 2371 3 ; 2372 3 IF .TAKE_FILE_RAB [RAB$W_RSZ] GTR 0 ; 2373 3 THEN ; 2374 4 BEGIN ; 2375 4 CMD_DESC [DSC$W_LENGTH] = .TAKE_FILE_RAB [RAB$W_RSZ]; ; 2376 4 STATUS = STR$UPCASE (CMD_DESC, CMD_DESC); ; 2377 4 ; 2378 4 IF .DISPLAY_FLAG THEN LIB$PUT_OUTPUT (CMD_DESC); ; 2379 4 ; 2380 4 STATUS = DO_COMND (CMD_DESC); ; 2381 4 ; 2382 4 IF NOT .STATUS ; 2383 4 THEN ; 2384 5 BEGIN ; 2385 5 ; 2386 5 IF .STATUS NEQ KER_TAKE_ERROR ; 2387 5 THEN ; 2388 6 BEGIN ; 2389 6 COMND_ERROR (.STATUS); ; 2390 6 LIB$PUT_OUTPUT (CMD_DESC); ; 2391 6 STATUS = KER_TAKE_ERROR; ! Indicate we should abort back ; 2392 5 END; ; 2393 5 ; 2394 5 EXITLOOP; ; 2395 4 END; ; 2396 4 ; 2397 3 END; ; 2398 3 ; 2399 2 END; ! End of WHILE TRUE DO BEGIN ; 2400 2 ; 2401 2 ! ; 2402 2 ! When the loop exits, we got some kind of error. Complain unless end of file. ; 2403 2 ! ; 2404 2 ; 2405 2 IF .STATUS EQL RMS$_EOF THEN STATUS = KER_TAKE_EOF; ; 2406 2 ; 2407 2 IF .STATUS NEQ KER_EXIT AND .STATUS NEQ KER_TAKE_EOF AND .STATUS NEQ KER_TAKE_ERROR ; 2408 2 THEN ; 2409 2 LIB$SIGNAL (.STATUS); ; 2410 2 ; 2411 2 ! ; 2412 2 ! Close the file ; 2413 2 ! ; 2414 2 $DISCONNECT (RAB = TAKE_FILE_RAB); ; 2415 2 $CLOSE (FAB = TAKE_FILE_FAB); ; 2416 2 ! ; 2417 2 ! Return any buffers ; 2418 2 ! ; 2419 2 LIB$FREE_VM (TAKE_FILE_BSIZ, TAKE_FILE_BADR); ; 2420 2 ; 2421 2 IF .TAKE_FILE_FSIZ NEQ 0 THEN LIB$FREE_VM (TAKE_FILE_FSIZ, TAKE_FILE_FADR); ; 2422 2 ; 2423 2 RETURN .STATUS; ; 2424 1 END; ! End of COMND_FILE .EXTRN STR$UPCASE, LIB$GET_VM, LIB$FREE_VM, SYS$OPEN, SYS$CONNECT, SYS$GET, SYS$DISCONNECT .EXTRN SYS$CLOSE ;COMND_FILE U.4: .WORD ^M ;Save R2,R3,R4,R5,R6,R7,R8,R9,R10 ; 2248 MOVAB G^LIB$PUT_OUTPUT, R10 ;LIB$PUT_OUTPUT, R10 ; MOVAB G^LIB$GET_VM, R9 ;LIB$GET_VM, R9 ; MOVAB G^LIB$SIGNAL, R8 ;LIB$SIGNAL, R8 ; MOVAB G^LIB$FREE_VM, R7 ;LIB$FREE_VM, R7 ; MOVAB -356(SP), SP ;-356(SP), SP ; MOVL 4(AP), R6 ;TAKE_DESC, R6 ; 2314 MOVC5 (R6), @4(R6), #0, #132, -140(FP) ;(R6), @4(R6), #0, #132, TAKE_FILE_NAME ; 2315 MOVW #270, -6(FP) ;#270, TAKE_FILE_DESC+2 ; 2316 MOVW (R6), -8(FP) ;(R6), TAKE_FILE_DESC ; MOVAB -140(FP), -4(FP) ;TAKE_FILE_NAME, TAKE_FILE_DESC+4 ; MOVC5 #0, (SP), #0, #80, 136(SP) ;#0, (SP), #0, #80, $RMS_PTR ; 2318 MOVW #20483, 136(SP) ;#20483, $RMS_PTR ; MOVB #2, 158(SP) ;#2, $RMS_PTR+22 ; MOVB #2, 167(SP) ;#2, $RMS_PTR+31 ; MOVAB 24(SP), 172(SP) ;TAKE_FILE_XABFHC, $RMS_PTR+36 ; MOVAB -140(FP), -176(FP) ;TAKE_FILE_NAME, $RMS_PTR+44 ; MOVL 8(AP), R0 ;DEFAULT_DESC, R0 ; MOVL 4(R0), -172(FP) ;4(R0), $RMS_PTR+48 ; MOVB -8(FP), -168(FP) ;TAKE_FILE_DESC, $RMS_PTR+52 ; MOVB (R0), -167(FP) ;(R0), $RMS_PTR+53 ; MOVC5 #0, (SP), #0, #44, 24(SP) ;#0, (SP), #0, #44, $RMS_PTR ; 2319 MOVW #11293, 24(SP) ;#11293, $RMS_PTR ; PUSHAB 136(SP) ;TAKE_FILE_FAB ; 2320 CALLS #1, G^SYS$OPEN ;#1, SYS$OPEN ; MOVL R0, R6 ;R0, STATUS ; BLBS R6, 2$ ;STATUS, 2$ ; 2322 CMPL R6, #98962 ;STATUS, #98962 ; 2326 BNEQ 1$ ;1$ ; BLBC 12(AP), 1$ ;OK_NONE, 1$ ; MOVL #134316299, R0 ;#134316299, R0 ; RET ; ; 1$: PUSHL R6 ;STATUS ; 2328 CALLS #1, (R8) ;#1, LIB$SIGNAL ; BRW 6$ ;6$ ; 2329 2$: MOVZWL 34(SP), 4(SP) ;TAKE_FILE_XABFHC+10, TAKE_FILE_BSIZ ; 2335 BNEQ 3$ ;3$ ; 2337 MOVZWL #4096, 4(SP) ;#4096, TAKE_FILE_BSIZ ; 3$: PUSHL SP ;SP ; 2339 PUSHAB 8(SP) ;TAKE_FILE_BSIZ ; CALLS #2, (R9) ;#2, LIB$GET_VM ; MOVW #270, 18(SP) ;#270, CMD_DESC+2 ; 2340 MOVW 4(SP), 16(SP) ;TAKE_FILE_BSIZ, CMD_DESC ; MOVL (SP), 20(SP) ;TAKE_FILE_BADR, CMD_DESC+4 ; MOVZBL -157(FP), 12(SP) ;TAKE_FILE_FAB+63, TAKE_FILE_FSIZ ; 2344 BEQL 4$ ;4$ ; 2346 PUSHAB 8(SP) ;TAKE_FILE_FADR ; PUSHAB 16(SP) ;TAKE_FILE_FSIZ ; CALLS #2, (R9) ;#2, LIB$GET_VM ; 4$: MOVC5 #0, (SP), #0, #68, 68(SP) ;#0, (SP), #0, #68, $RMS_PTR ; 2352 MOVW #17409, 68(SP) ;#17409, $RMS_PTR ; MOVL #1048576, 72(SP) ;#1048576, $RMS_PTR+4 ; CLRB 98(SP) ;$RMS_PTR+30 ; MOVW 4(SP), 100(SP) ;TAKE_FILE_BSIZ, $RMS_PTR+32 ; MOVL (SP), 104(SP) ;TAKE_FILE_BADR, $RMS_PTR+36 ; MOVAB 136(SP), 128(SP) ;TAKE_FILE_FAB, $RMS_PTR+60 ; CLRL R2 ;R2 ; 2354 TSTL 12(SP) ;TAKE_FILE_FSIZ ; BEQL 5$ ;5$ ; INCL R2 ;R2 ; MOVL 8(SP), 112(SP) ;TAKE_FILE_FADR, TAKE_FILE_RAB+44 ; 5$: PUSHAB 68(SP) ;TAKE_FILE_RAB ; 2356 CALLS #1, G^SYS$CONNECT ;#1, SYS$CONNECT ; MOVL R0, R6 ;R0, STATUS ; BLBS R6, 7$ ;STATUS, 7$ ; 2358 PUSHL R6 ;STATUS ; 2361 CALLS #1, (R8) ;#1, LIB$SIGNAL ; PUSHL SP ;SP ; 2362 PUSHAB 8(SP) ;TAKE_FILE_BSIZ ; CALLS #2, (R7) ;#2, LIB$FREE_VM ; BLBC R2, 6$ ;R2, 6$ ; 2364 PUSHAB 8(SP) ;TAKE_FILE_FADR ; PUSHAB 16(SP) ;TAKE_FILE_FSIZ ; CALLS #2, (R7) ;#2, LIB$FREE_VM ; 6$: MOVL #134316306, R0 ;#134316306, R0 ; 2366 RET ; ; 7$: PUSHAB 68(SP) ;TAKE_FILE_RAB ; 2369 CALLS #1, G^SYS$GET ;#1, SYS$GET ; MOVL R0, R6 ;R0, STATUS ; BLBC R6, 9$ ;STATUS, 9$ ; TSTW 102(SP) ;TAKE_FILE_RAB+34 ; 2372 BEQL 7$ ;7$ ; MOVW 102(SP), 16(SP) ;TAKE_FILE_RAB+34, CMD_DESC ; 2375 PUSHAB 16(SP) ;CMD_DESC ; 2376 PUSHAB 20(SP) ;CMD_DESC ; CALLS #2, G^STR$UPCASE ;#2, STR$UPCASE ; MOVL R0, R6 ;R0, STATUS ; BLBC 16(AP), 8$ ;DISPLAY_FLAG, 8$ ; 2378 PUSHAB 16(SP) ;CMD_DESC ; CALLS #1, (R10) ;#1, LIB$PUT_OUTPUT ; 8$: PUSHAB 16(SP) ;CMD_DESC ; 2380 CALLS #1, G^U.5 ;#1, U.5 ; MOVL R0, R6 ;R0, STATUS ; BLBS R6, 7$ ;STATUS, 7$ ; 2382 CMPL R6, #134316306 ;STATUS, #134316306 ; 2386 BEQL 9$ ;9$ ; PUSHL R6 ;STATUS ; 2389 CALLS #1, G^U.3 ;#1, U.3 ; PUSHAB 16(SP) ;CMD_DESC ; 2390 CALLS #1, (R10) ;#1, LIB$PUT_OUTPUT ; MOVL #134316306, R6 ;#134316306, STATUS ; 2391 9$: CMPL R6, #98938 ;STATUS, #98938 ; 2405 BNEQ 10$ ;10$ ; MOVL #134316299, R6 ;#134316299, STATUS ; 10$: CMPL R6, #134316203 ;STATUS, #134316203 ; 2407 BEQL 11$ ;11$ ; CMPL R6, #134316299 ;STATUS, #134316299 ; BEQL 11$ ;11$ ; CMPL R6, #134316306 ;STATUS, #134316306 ; BEQL 11$ ;11$ ; PUSHL R6 ;STATUS ; 2409 CALLS #1, (R8) ;#1, LIB$SIGNAL ; 11$: PUSHAB 68(SP) ;TAKE_FILE_RAB ; 2414 CALLS #1, G^SYS$DISCONNECT ;#1, SYS$DISCONNECT ; PUSHAB 136(SP) ;TAKE_FILE_FAB ; 2415 CALLS #1, G^SYS$CLOSE ;#1, SYS$CLOSE ; PUSHL SP ;SP ; 2419 PUSHAB 8(SP) ;TAKE_FILE_BSIZ ; CALLS #2, (R7) ;#2, LIB$FREE_VM ; TSTL 12(SP) ;TAKE_FILE_FSIZ ; 2421 BEQL 12$ ;12$ ; PUSHAB 8(SP) ;TAKE_FILE_FADR ; PUSHAB 16(SP) ;TAKE_FILE_FSIZ ; CALLS #2, (R7) ;#2, LIB$FREE_VM ; 12$: MOVL R6, R0 ;STATUS, R0 ; 2423 RET ; ; 2424 ; Routine Size: 538 bytes, Routine Base: $CODE$ + 017F ; 2425 1 %SBTTL 'COMND_ERROR - Give error message for command' ; 2426 1 ROUTINE COMND_ERROR (STATUS) : NOVALUE = ; 2427 1 ; 2428 1 !++ ; 2429 1 ! FUNCTIONAL DESCRIPTION: ; 2430 1 ! ; 2431 1 ! This routine will issue an error message for a command parsing error. ; 2432 1 ! ; 2433 1 ! CALLING SEQUENCE: ; 2434 1 ! ; 2435 1 ! COMND_ERROR (.STATUS); ; 2436 1 ! ; 2437 1 ! INPUT PARAMETERS: ; 2438 1 ! ; 2439 1 ! STATUS - The status value returned from DO_COMND ; 2440 1 ! ; 2441 1 ! IMPLICIT INPUTS: ; 2442 1 ! ; 2443 1 ! None. ; 2444 1 ! ; 2445 1 ! OUPTUT PARAMETERS: ; 2446 1 ! ; 2447 1 ! None. ; 2448 1 ! ; 2449 1 ! IMPLICIT OUTPUTS: ; 2450 1 ! ; 2451 1 ! None. ; 2452 1 ! ; 2453 1 ! COMPLETION CODES: ; 2454 1 ! ; 2455 1 ! None. ; 2456 1 ! ; 2457 1 ! SIDE EFFECTS: ; 2458 1 ! ; 2459 1 ! None. ; 2460 1 ! ; 2461 1 !-- ; 2462 1 ; 2463 2 BEGIN ; 2464 2 ; 2465 2 IF .STATUS EQL KER_AMBIGKEY OR .STATUS EQL KER_UNKNOWKEY ; 2466 2 THEN ; 2467 2 LIB$SIGNAL (.STATUS, ; 2468 2 TPARSE_BLOCK [TPA$L_TOKENCNT]) ; 2469 2 ELSE ; 2470 3 BEGIN ; 2471 3 ; 2472 3 EXTERNAL LITERAL ; 2473 3 LIB$_SYNTAXERR; ; 2474 3 ; 2475 3 IF .STATUS EQL LIB$_SYNTAXERR ; 2476 3 THEN ; 2477 3 LIB$SIGNAL (KER_CMDERR, TPARSE_BLOCK [TPA$L_STRINGCNT]) ; 2478 3 ELSE ; 2479 3 LIB$SIGNAL (.STATUS); ; 2480 3 ; 2481 2 END; ; 2482 2 ; 2483 1 END; ! End of COMND_ERROR .EXTRN LIB$_SYNTAXERR ;COMND_ERROR U.3: .WORD ^M ;Save R2 ; 2426 MOVAB G^LIB$SIGNAL, R2 ;LIB$SIGNAL, R2 ; MOVL 4(AP), R0 ;STATUS, R0 ; 2465 CMPL R0, #134316282 ;R0, #134316282 ; BEQL 1$ ;1$ ; CMPL R0, #134316290 ;R0, #134316290 ; BNEQ 2$ ;2$ ; 1$: PUSHAB G^U.46+16 ;U.46+16 ; 2468 PUSHL R0 ;R0 ; 2467 BRB 3$ ;3$ ; 2$: CMPL R0, #LIB$_SYNTAXERR ;R0, #LIB$_SYNTAXERR ; 2475 BNEQ 4$ ;4$ ; PUSHAB G^U.46+8 ;U.46+8 ; 2477 PUSHL #134316058 ;#134316058 ; 3$: CALLS #2, (R2) ;#2, LIB$SIGNAL ; RET ; ; 4$: PUSHL R0 ;R0 ; 2479 CALLS #1, (R2) ;#1, LIB$SIGNAL ; RET ; ; 2483 ; Routine Size: 72 bytes, Routine Base: $CODE$ + 0399 ; 2484 1 %SBTTL 'DO_COMND' ; 2485 1 ROUTINE DO_COMND (CMD_DESC) = ; 2486 1 ; 2487 1 !++ ; 2488 1 ! FUNCTIONAL DESCRIPTION: ; 2489 1 ! This routine will parse and process one Kermit command. ; 2490 1 ! ; 2491 1 ! CALLING SEQUENCE: ; 2492 1 ! ; 2493 1 ! STATUS = DO_COMND(CMD_DESC); ; 2494 1 ! ; 2495 1 ! INPUT PARAMETERS: ; 2496 1 ! ; 2497 1 ! CMD_DESC - Descriptor of command string ; 2498 1 ! ; 2499 1 ! IMPLICIT INPUTS: ; 2500 1 ! ; 2501 1 ! None. ; 2502 1 ! ; 2503 1 ! OUTPUT PARAMETERS: ; 2504 1 ! ; 2505 1 ! None. ; 2506 1 ! ; 2507 1 ! IMPLICIT OUTPUTS: ; 2508 1 ! ; 2509 1 ! None. ; 2510 1 ! ; 2511 1 ! COMPLETION CODES: ; 2512 1 ! ; 2513 1 ! None. ; 2514 1 ! ; 2515 1 ! SIDE EFFECTS: ; 2516 1 ! ; 2517 1 ! None. ; 2518 1 ! ; 2519 1 !-- ; 2520 1 ; 2521 2 BEGIN ; 2522 2 ; 2523 2 BIND ; 2524 2 SERVER_TEXT = %ASCID'Kermit Server running on VAX/VMS host. Please type your escape sequence to', ; 2525 2 SERVER_TEXT_1 = %ASCID' return to your local machine. Shut down the server by typing the Kermit BYE', ; 2526 2 SERVER_TEXT_2 = %ASCID' command on your local machine.', ; 2527 2 PUSH_TEXT = %ASCID' Type LOGOUT to return to VMS Kermit'; ; 2528 2 ; 2529 2 MAP ; 2530 2 CMD_DESC : REF BLOCK [8, BYTE]; ! Descriptor for command ; 2531 2 ; 2532 2 LOCAL ; 2533 2 STATUS : UNSIGNED LONG; ; 2534 2 ; 2535 2 ! Initialize some per-command data areas. ; 2536 2 INIT_STR_DESC (TEMP_DESC, TEMP_NAME, 0); ; 2537 2 COMMAND = 0; ; 2538 2 SHOW_TYPE = 0; ; 2539 2 REM_TYPE = 0; ; 2540 2 FILE_SIZE = 0; ; 2541 2 ALT_FILE_SIZE = 0; ; 2542 2 GEN_1SIZE = 0; ; 2543 2 GEN_2SIZE = 0; ; 2544 2 GEN_3SIZE = 0; ; 2545 2 CONNECT_FLAG = FALSE; ! Assume not connected ; 2546 2 TAKE_DISPLAY = 0; ; 2547 2 TPARSE_BLOCK [TPA$L_STRINGCNT] = .CMD_DESC [DSC$W_LENGTH]; ; 2548 2 TPARSE_BLOCK [TPA$L_STRINGPTR] = .CMD_DESC [DSC$A_POINTER]; ; 2549 2 TPARSE_BLOCK [TPA$V_BLANKS] = 0; ! Ignore blanks ; 2550 2 STATUS = LIB$TPARSE (TPARSE_BLOCK, KERMIT_STATE, KERMIT_KEY); ; 2551 2 ; 2552 2 IF .STATUS ; 2553 2 THEN ; 2554 3 BEGIN ; 2555 3 FILE_SIZE = .FILE_DESC [DSC$W_LENGTH]; ! Copy length in case needed ; 2556 3 ; 2557 3 CASE .COMMAND FROM CMD_MIN TO CMD_MAX OF ; 2558 3 SET ; 2559 3 ; 2560 3 [CMD_BYE] : ; 2561 4 BEGIN ; 2562 4 ; 2563 5 IF (STATUS = TERM_OPEN (TRUE)) ! Open the terminal ; 2564 4 THEN ; 2565 5 BEGIN ; 2566 5 ; 2567 5 IF NOT .CONNECT_FLAG THEN DO_GENERIC (GC_LOGOUT) ELSE STATUS = KER_LOCONLY; ; 2568 5 ; 2569 5 TERM_CLOSE () ; 2570 4 END; ; 2571 4 ; 2572 4 IF NOT .STATUS THEN RETURN .STATUS ELSE RETURN KER_EXIT; ; 2573 4 ; 2574 3 END; ; 2575 3 ; 2576 3 [CMD_CONN] : ; 2577 3 TERM_CONNECT (); ; 2578 3 ; 2579 3 [CMD_EXIT] : ; 2580 3 RETURN KER_EXIT; ; 2581 3 ; 2582 3 [CMD_FINISH] : ; 2583 3 ; 2584 4 IF (STATUS = TERM_OPEN (TRUE)) ! Open the terminal ; 2585 3 THEN ; 2586 4 BEGIN ; 2587 4 ; 2588 4 IF NOT .CONNECT_FLAG THEN DO_GENERIC (GC_EXIT) ELSE STATUS = KER_LOCONLY; ; 2589 4 ; 2590 4 TERM_CLOSE () ; 2591 3 END; ; 2592 3 ; 2593 3 [CMD_GET] : ; 2594 3 ; 2595 4 IF (STATUS = TERM_OPEN (TRUE)) ! Open the terminal ; 2596 3 THEN ; 2597 4 BEGIN ; 2598 4 ; 2599 4 IF NOT .CONNECT_FLAG THEN REC_SWITCH () ELSE STATUS = KER_LOCONLY; ; 2600 4 ; 2601 4 TERM_CLOSE (); ; 2602 3 END; ; 2603 3 ; 2604 3 [CMD_HELP] : ; 2605 3 COMND_HELP (); ; 2606 3 ; 2607 3 [CMD_LOGOUT] : ; 2608 3 ; 2609 4 IF (STATUS = TERM_OPEN (TRUE)) ! Open the terminal ; 2610 3 THEN ; 2611 4 BEGIN ; 2612 4 ; 2613 4 IF NOT .CONNECT_FLAG THEN DO_GENERIC (GC_LOGOUT) ELSE STATUS = KER_LOCONLY; ; 2614 4 ; 2615 4 TERM_CLOSE () ; 2616 3 END; ; 2617 3 ; 2618 3 [CMD_RECEIVE] : ; 2619 3 ; 2620 4 IF (STATUS = TERM_OPEN (TRUE)) ! Open the terminal ; 2621 3 THEN ; 2622 4 BEGIN ; 2623 4 FILE_SIZE = 0; ! No file to request ; 2624 4 REC_SWITCH (); ; 2625 4 TERM_CLOSE (); ; 2626 3 END; ; 2627 3 ; 2628 3 [CMD_REMOTE] : ; 2629 3 COMND_REMOTE (); ; 2630 3 ; 2631 3 [CMD_LOCAL] : ; 2632 3 COMND_LOCAL (); ; 2633 3 ; 2634 3 [CMD_PUSH] : ; 2635 4 BEGIN ; 2636 4 ; 2637 4 OWN ; 2638 4 PID : INITIAL (0); ; 2639 4 ; 2640 4 LIB$PUT_OUTPUT (PUSH_TEXT); ; 2641 4 ; 2642 4 IF .PID NEQ 0 ; 2643 4 THEN ; 2644 5 BEGIN ; 2645 5 STATUS = LIB$ATTACH (PID); ; 2646 5 ; 2647 5 IF NOT .STATUS THEN PID = 0; ; 2648 5 ; 2649 4 END; ; 2650 4 ; 2651 4 IF .PID EQL 0 THEN STATUS = LIB$SPAWN (0, 0, 0, 0, 0, PID); ! Just spawn a DCL ; 2652 4 ; 2653 3 END; ; 2654 3 ; 2655 3 [CMD_SEND] : ; 2656 4 BEGIN ; 2657 4 ; 2658 4 EXTERNAL ROUTINE ; 2659 4 FILE_OPEN, ! Open file routine ; 2660 4 FILE_CLOSE; ! Close file routine ; 2661 4 ; 2662 4 LOCAL ; 2663 4 SAVE_FILE_NAME : VECTOR [CH$ALLOCATION (MAX_FILE_NAME)], ; 2664 4 SAVE_FILE_SIZE, ; 2665 4 SAVE_TY_FIL; ; 2666 4 ; 2667 4 SAVE_TY_FIL = .TY_FIL; ! Save current type out flag ; 2668 4 TY_FIL = FALSE; ! Suppress type out of names ; 2669 4 SAVE_FILE_SIZE = .FILE_SIZE; ! Save the file name size ; 2670 4 ; 2671 4 CH$MOVE((.FILE_SIZE),CH$PTR(FILE_NAME), ; 2672 4 CH$PTR(SAVE_FILE_NAME)); ; 2673 4 ; 2674 4 IF FILE_OPEN (FNC_READ) ; 2675 4 THEN ; 2676 5 BEGIN ; 2677 5 FILE_SIZE = .SAVE_FILE_SIZE; ! Reset the file name size ; 2678 5 CH$MOVE(.FILE_SIZE,CH$PTR(SAVE_FILE_NAME), ; 2679 5 CH$PTR(FILE_NAME)); ; 2680 5 ; 2681 5 FILE_CLOSE (FALSE); ; 2682 5 TY_FIL = .SAVE_TY_FIL; ! Reset type out flag ; 2683 5 ; 2684 6 IF (STATUS = TERM_OPEN (TRUE)) ! Open the terminal ; 2685 5 THEN ; 2686 6 BEGIN ; 2687 6 SEND_SWITCH (); ; 2688 6 TERM_CLOSE (); ; 2689 5 END; ; 2690 5 ; 2691 5 END ; 2692 4 ELSE ; 2693 4 TY_FIL = .SAVE_TY_FIL; ! Reset type out flag ; 2694 4 ; 2695 3 END; ; 2696 3 ; 2697 3 [CMD_SERVER] : ; 2698 4 BEGIN ; 2699 4 LIB$PUT_OUTPUT (SERVER_TEXT); ; 2700 4 LIB$PUT_OUTPUT (SERVER_TEXT_1); ; 2701 4 LIB$PUT_OUTPUT (SERVER_TEXT_2); ; 2702 4 ; 2703 5 IF (STATUS = TERM_OPEN (TRUE)) ! Open the terminal ; 2704 4 THEN ; 2705 5 BEGIN ; 2706 5 STATUS = SERVER (); ; 2707 5 TERM_CLOSE (); ; 2708 5 RETURN KER_NORMAL; ; 2709 5 ; 2710 4 END; ; 2711 4 ; 2712 3 END; ; 2713 3 ; 2714 3 [CMD_SHOW] : ; 2715 3 COMND_SHOW (); ; 2716 3 ; 2717 3 [CMD_STATUS] : ; 2718 3 COMND_STATUS (); ; 2719 3 ; 2720 3 [CMD_TAKE] : ; 2721 3 STATUS = COMND_FILE (TAK_FIL_DESC, %ASCID'.COM;0', FALSE, .TAKE_DISPLAY); ; 2722 3 ; 2723 3 [CMD_TRANSMIT]: ! ; 2724 3 COMND_TRANSMIT (); ! ; 2725 3 ; 2726 3 [INRANGE] : ; 2727 3 TES; ; 2728 3 ; 2729 2 END; ; 2730 2 ; 2731 2 RETURN .STATUS; ; 2732 1 END; ! End of DO_COMND .PSECT $PLIT$,NOWRT,NOEXE,2 P.AAJ: .ASCII \Kermit Server running on VAX/VMS host. Please type your escape sequence to\<0> ; ; P.AAI: .LONG 17694795 ; ; .ADDRESS P.AAJ ; ; P.AAL: .ASCII \ return to your local machine. Shut down the server by typing the Kermit BYE\<0><0><0> ; ; P.AAK: .LONG 17694797 ; ; .ADDRESS P.AAL ; ; P.AAN: .ASCII \ command on your local machine.\<0> ; ; P.AAM: .LONG 17694751 ; ; .ADDRESS P.AAN ; ; P.AAP: .ASCII \ Type LOGOUT to return to VMS Kermit\ ; ; P.AAO: .LONG 17694756 ; ; .ADDRESS P.AAP ; ; P.AAR: .ASCII \.COM;0\<0><0> ; ; P.AAQ: .LONG 17694726 ; ; .ADDRESS P.AAR ; ; .PSECT $OWN$,NOEXE,2 PID: .LONG 0 ; ; SERVER_TEXT= P.AAI SERVER_TEXT_1= P.AAK SERVER_TEXT_2= P.AAM PUSH_TEXT= P.AAO .EXTRN FILE_OPEN, FILE_CLOSE .PSECT $CODE$,NOWRT,2 ;DO_COMND U.5: .WORD ^M ;Save R2,R3,R4,R5,R6,R7,R8,R9,R10,R11 ; 2485 MOVAB G^FILE_SIZE, R11 ;FILE_SIZE, R11 ; MOVAB G^TERM_OPEN, R10 ;TERM_OPEN, R10 ; MOVAB G^PID, R9 ;PID, R9 ; MOVAB -132(SP), SP ;-132(SP), SP ; MOVL #17694720, -140(R9) ;#17694720, TEMP_DESC ; 2536 MOVAB -132(R9), -136(R9) ;TEMP_NAME, TEMP_DESC+4 ; CLRQ -724(R9) ;COMMAND ; 2537 CLRL (R11) ;FILE_SIZE ; 2540 CLRL G^ALT_FILE_SIZE ;ALT_FILE_SIZE ; 2541 CLRL G^GEN_1SIZE ;GEN_1SIZE ; 2542 CLRL G^GEN_2SIZE ;GEN_2SIZE ; 2543 CLRL G^GEN_3SIZE ;GEN_3SIZE ; 2544 CLRL G^CONNECT_FLAG ;CONNECT_FLAG ; 2545 CLRQ -716(R9) ;REM_TYPE ; 2539 MOVL 4(AP), R0 ;CMD_DESC, R0 ; 2547 MOVZWL (R0), -760(R9) ;(R0), TPARSE_BLOCK+8 ; MOVL 4(R0), -756(R9) ;4(R0), TPARSE_BLOCK+12 ; 2548 BICB2 #1, -764(R9) ;#1, TPARSE_BLOCK+4 ; 2549 PUSHAB G^KERMIT_KEY ;KERMIT_KEY ; 2550 PUSHAB G^KERMIT_STATE ;KERMIT_STATE ; PUSHAB -768(R9) ;TPARSE_BLOCK ; CALLS #3, G^LIB$TPARSE ;#3, LIB$TPARSE ; MOVL R0, R6 ;R0, STATUS ; BLBC R6, 8$ ;STATUS, 8$ ; 2552 MOVZWL G^FILE_DESC, (R11) ;FILE_DESC, FILE_SIZE ; 2555 CASEL -724(R9), #1, #18 ;COMMAND, #1, #18 ; 2557 1$: .WORD 5$-1$,- ;5$-1$,- ; 6$-1$,- ;6$-1$,- ; 11$-1$,- ;11$-1$,- ; 18$-1$,- ;18$-1$,- ; 36$-1$,- ;36$-1$,- ; 25$-1$,- ;25$-1$,- ; 29$-1$,- ;29$-1$,- ; 28$-1$,- ;28$-1$,- ; 30$-1$,- ;30$-1$,- ; 13$-1$,- ;13$-1$,- ; 2$-1$,- ;2$-1$,- ; 7$-1$,- ;7$-1$,- ; 9$-1$,- ;9$-1$,- ; 19$-1$,- ;19$-1$,- ; 21$-1$,- ;21$-1$,- ; 23$-1$,- ;23$-1$,- ; 36$-1$,- ;36$-1$,- ; 32$-1$,- ;32$-1$,- ; 35$-1$ ;35$-1$ ; 2$: PUSHL #1 ;#1 ; 2563 CALLS #1, (R10) ;#1, TERM_OPEN ; MOVL R0, R6 ;R0, STATUS ; BLBC R6, 14$ ;STATUS, 14$ ; BLBS G^CONNECT_FLAG, 3$ ;CONNECT_FLAG, 3$ ; 2567 PUSHL #7 ;#7 ; CALLS #1, G^DO_GENERIC ;#1, DO_GENERIC ; BRB 4$ ;4$ ; 3$: MOVL #134316122, R6 ;#134316122, STATUS ; 4$: CALLS #0, G^TERM_CLOSE ;#0, TERM_CLOSE ; 2569 BLBS R6, 6$ ;STATUS, 6$ ; 2572 BRB 12$ ;12$ ; 5$: CALLS #0, G^TERM_CONNECT ;#0, TERM_CONNECT ; 2577 BRB 20$ ;20$ ; 6$: MOVL #134316203, R0 ;#134316203, R0 ; 2580 RET ; ; 7$: PUSHL #1 ;#1 ; 2584 CALLS #1, (R10) ;#1, TERM_OPEN ; MOVL R0, R6 ;R0, STATUS ; 8$: BLBC R6, 22$ ;STATUS, 22$ ; BLBS G^CONNECT_FLAG, 16$ ;CONNECT_FLAG, 16$ ; 2588 PUSHL #1 ;#1 ; BRB 15$ ;15$ ; 9$: PUSHL #1 ;#1 ; 2595 CALLS #1, (R10) ;#1, TERM_OPEN ; MOVL R0, R6 ;R0, STATUS ; BLBC R6, 22$ ;STATUS, 22$ ; BLBS G^CONNECT_FLAG, 16$ ;CONNECT_FLAG, 16$ ; 2599 10$: CALLS #0, G^REC_SWITCH ;#0, REC_SWITCH ; BRB 17$ ;17$ ; 11$: CALLS #0, G^U.6 ;#0, U.6 ; 2605 12$: BRB 22$ ;22$ ; 13$: PUSHL #1 ;#1 ; 2609 CALLS #1, (R10) ;#1, TERM_OPEN ; MOVL R0, R6 ;R0, STATUS ; 14$: BLBC R6, 22$ ;STATUS, 22$ ; BLBS G^CONNECT_FLAG, 16$ ;CONNECT_FLAG, 16$ ; 2613 PUSHL #7 ;#7 ; 15$: CALLS #1, G^DO_GENERIC ;#1, DO_GENERIC ; BRB 17$ ;17$ ; 16$: MOVL #134316122, R6 ;#134316122, STATUS ; 17$: BRW 26$ ;26$ ; 2615 18$: PUSHL #1 ;#1 ; 2620 CALLS #1, (R10) ;#1, TERM_OPEN ; MOVL R0, R6 ;R0, STATUS ; BLBC R6, 22$ ;STATUS, 22$ ; CLRL (R11) ;FILE_SIZE ; 2623 BRB 10$ ;10$ ; 2624 19$: CALLS #0, G^U.9 ;#0, U.9 ; 2629 20$: BRB 22$ ;22$ ; 21$: CALLS #0, G^U.10 ;#0, U.10 ; 2632 22$: BRW 36$ ;36$ ; 23$: PUSHAB G^PUSH_TEXT ;PUSH_TEXT ; 2640 CALLS #1, G^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT ; TSTL (R9) ;PID ; 2642 BEQL 24$ ;24$ ; PUSHL R9 ;R9 ; 2645 CALLS #1, G^LIB$ATTACH ;#1, LIB$ATTACH ; MOVL R0, R6 ;R0, STATUS ; BLBS R6, 24$ ;STATUS, 24$ ; 2647 CLRL (R9) ;PID ; 24$: TSTL (R9) ;PID ; 2651 BNEQ 22$ ;22$ ; PUSHL R9 ;R9 ; CLRQ -(SP) ;-(SP) ; CLRQ -(SP) ;-(SP) ; CLRL -(SP) ;-(SP) ; CALLS #6, G^LIB$SPAWN ;#6, LIB$SPAWN ; BRW 33$ ;33$ ; 25$: MOVL G^TY_FIL, R7 ;TY_FIL, SAVE_TY_FIL ; 2667 CLRL G^TY_FIL ;TY_FIL ; 2668 MOVL (R11), R0 ;FILE_SIZE, R0 ; 2669 MOVL R0, R8 ;R0, SAVE_FILE_SIZE ; MOVC3 R0, G^FILE_NAME, (SP) ;R0, FILE_NAME, SAVE_FILE_NAME ; 2672 CLRL -(SP) ;-(SP) ; 2674 CALLS #1, G^FILE_OPEN ;#1, FILE_OPEN ; BLBC R0, 27$ ;R0, 27$ ; MOVL R8, (R11) ;SAVE_FILE_SIZE, FILE_SIZE ; 2677 MOVC3 (R11), (SP), G^FILE_NAME ;FILE_SIZE, SAVE_FILE_NAME, FILE_NAME ; 2679 CLRL -(SP) ;-(SP) ; 2681 CALLS #1, G^FILE_CLOSE ;#1, FILE_CLOSE ; MOVL R7, G^TY_FIL ;SAVE_TY_FIL, TY_FIL ; 2682 PUSHL #1 ;#1 ; 2684 CALLS #1, (R10) ;#1, TERM_OPEN ; MOVL R0, R6 ;R0, STATUS ; BLBC R6, 31$ ;STATUS, 31$ ; CALLS #0, G^SEND_SWITCH ;#0, SEND_SWITCH ; 2687 26$: CALLS #0, G^TERM_CLOSE ;#0, TERM_CLOSE ; 2688 BRW 34$ ;34$ ; 27$: MOVL R7, G^TY_FIL ;SAVE_TY_FIL, TY_FIL ; 2693 BRB 34$ ;34$ ; 2674 28$: PUSHAB G^SERVER_TEXT ;SERVER_TEXT ; 2699 CALLS #1, G^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT ; PUSHAB G^SERVER_TEXT_1 ;SERVER_TEXT_1 ; 2700 CALLS #1, G^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT ; PUSHAB G^SERVER_TEXT_2 ;SERVER_TEXT_2 ; 2701 CALLS #1, G^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT ; PUSHL #1 ;#1 ; 2703 CALLS #1, (R10) ;#1, TERM_OPEN ; MOVL R0, R6 ;R0, STATUS ; BLBC R6, 36$ ;STATUS, 36$ ; CALLS #0, G^SERVER ;#0, SERVER ; 2706 MOVL R0, R6 ;R0, STATUS ; CALLS #0, G^TERM_CLOSE ;#0, TERM_CLOSE ; 2707 MOVL #134316043, R0 ;#134316043, R0 ; 2708 RET ; ; 29$: CALLS #0, G^U.7 ;#0, U.7 ; 2715 BRB 36$ ;36$ ; 30$: CALLS #0, G^U.8 ;#0, U.8 ; 2718 31$: BRB 36$ ;36$ ; 32$: PUSHL -712(R9) ;TAKE_DISPLAY ; 2721 CLRL -(SP) ;-(SP) ; PUSHAB G^P.AAQ ;P.AAQ ; PUSHAB -280(R9) ;TAK_FIL_DESC ; CALLS #4, W^U.4 ;#4, U.4 ; 33$: MOVL R0, R6 ;R0, STATUS ; 34$: BRB 36$ ;36$ ; 35$: CALLS #0, G^COMND_TRANSMIT ;#0, COMND_TRANSMIT ; 2724 36$: MOVL R6, R0 ;STATUS, R0 ; 2731 RET ; ; 2732 ; Routine Size: 669 bytes, Routine Base: $CODE$ + 03E1 ; 2733 1 %SBTTL 'Command execution -- COMND_HELP' ; 2734 1 ROUTINE COMND_HELP : NOVALUE = ; 2735 1 ; 2736 1 !++ ; 2737 1 ! FUNCTIONAL DESCRIPTION: ; 2738 1 ! ; 2739 1 ! This routine will do the HELP command processing for KERMIT. It ; 2740 1 ! will call the library routines. ; 2741 1 ! ; 2742 1 ! CALLING SEQUENCE: ; 2743 1 ! ; 2744 1 ! COMND_HELP(); ; 2745 1 ! ; 2746 1 ! INPUT PARAMETERS: ; 2747 1 ! ; 2748 1 ! None. ; 2749 1 ! ; 2750 1 ! IMPLICIT INPUTS: ; 2751 1 ! ; 2752 1 ! None. ; 2753 1 ! ; 2754 1 ! OUTPUT PARAMETERS: ; 2755 1 ! ; 2756 1 ! None. ; 2757 1 ! ; 2758 1 ! IMPLICIT OUTPUTS: ; 2759 1 ! ; 2760 1 ! None. ; 2761 1 ! ; 2762 1 ! COMPLETION CODES: ; 2763 1 ! ; 2764 1 ! None. ; 2765 1 ! ; 2766 1 ! SIDE EFFECTS: ; 2767 1 ! ; 2768 1 ! None. ; 2769 1 ! ; 2770 1 !-- ; 2771 1 ; 2772 2 BEGIN ; 2773 2 ; 2774 2 LOCAL ; 2775 2 STATUS : UNSIGNED LONG; ; 2776 2 ; 2777 2 EXTERNAL ROUTINE ; 2778 2 LBR$OUTPUT_HELP : ADDRESSING_MODE (GENERAL); ; 2779 2 ; 2780 2 ! ; 2781 2 ! Do the help processing. ; 2782 2 ! ; 2783 2 STATUS = LBR$OUTPUT_HELP (LIB$PUT_OUTPUT, 0, TEMP_DESC, %ASCID'KERMIT', ; 2784 2 UPLIT (HLP$M_PROMPT + HLP$M_PROCESS + HLP$M_GROUP + HLP$M_SYSTEM), LIB$GET_INPUT); ; 2785 2 ; 2786 2 IF NOT .STATUS THEN LIB$SIGNAL (.STATUS); ; 2787 2 ; 2788 1 END; .PSECT $PLIT$,NOWRT,NOEXE,2 P.AAT: .ASCII \KERMIT\<0><0> ; ; P.AAS: .LONG 17694726 ; ; .ADDRESS P.AAT ; ; P.AAU: .LONG 15 ; ; .EXTRN LBR$OUTPUT_HELP .PSECT $CODE$,NOWRT,2 ;COMND_HELP U.6: .WORD ^M<> ;Save nothing ; 2734 PUSHAB G^LIB$GET_INPUT ;LIB$GET_INPUT ; 2783 PUSHAB G^P.AAU ;P.AAU ; 2784 PUSHAB G^P.AAS ;P.AAS ; 2783 PUSHAB G^U.61 ;U.61 ; 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$ ; 2786 PUSHL R0 ;STATUS ; CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL ; 1$: RET ; ; 2788 ; Routine Size: 54 bytes, Routine Base: $CODE$ + 067E ; 2789 1 %SBTTL 'Command execution -- Support routines -- OUTPUT_LONG_WORD' ; 2790 1 ROUTINE OUTPUT_LONG_WORD (MSG_ADDR, LONG_VALUE) : NOVALUE = ; 2791 1 ; 2792 1 !++ ; 2793 1 ! FUNCTIONAL DESCRIPTION: ; 2794 1 ! This routine is used to output the various long word parameters ; 2795 1 ! that are shown by the SHOW command. All text is defined in the level ; 2796 1 ! 0 of this program. ; 2797 1 ! ; 2798 1 ! CALLING SEQUENCE: ; 2799 1 ! ; 2800 1 ! OUTPUT_LONG_WORD( MSG_ASCID, LONG_WORD_VALUE_TO_OUTPUT); ; 2801 1 ! ; 2802 1 ! INPUT PARAMETERS: ; 2803 1 ! ; 2804 1 ! MSG_ASCID - %ASCID of the text to use for the $FAO call. ; 2805 1 ! ; 2806 1 ! LONG_WORD_VALUE_TO_OUTPUT - Value of the long word to pass to the $FAO. ; 2807 1 ! ; 2808 1 ! IMPLICIT INPUTS: ; 2809 1 ! ; 2810 1 ! None. ; 2811 1 ! ; 2812 1 ! OUTPUT PARAMETERS: ; 2813 1 ! ; 2814 1 ! None. ; 2815 1 ! ; 2816 1 ! IMPLICIT OUTPUTS: ; 2817 1 ! ; 2818 1 ! None. ; 2819 1 ! ; 2820 1 ! COMPLETION CODES: ; 2821 1 ! ; 2822 1 ! None. ; 2823 1 ! ; 2824 1 ! SIDE EFFECTS: ; 2825 1 ! ; 2826 1 ! None. ; 2827 1 ! ; 2828 1 !-- ; 2829 1 ; 2830 2 BEGIN ; 2831 2 ; 2832 2 MAP ; 2833 2 LONG_VALUE : LONG UNSIGNED, ; 2834 2 MSG_ADDR : LONG UNSIGNED; ; 2835 2 ; 2836 2 LOCAL ; 2837 2 STATUS : UNSIGNED; ! Status return by LIB$xxx ; 2838 2 ; 2839 2 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; 2840 2 $FAO (.MSG_ADDR, OUTPUT_SIZE, OUTPUT_DESC, .LONG_VALUE); ; 2841 2 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 2842 2 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 2843 1 END; .EXTRN SYS$FAO OUTPUT_LONG_WORD: .WORD ^M ;Save R2 ; 2790 MOVAB G^U.53, R2 ;U.53, R2 ; MOVL #17694800, (R2) ;#17694800, OUTPUT_DESC ; 2839 MOVAB -80(R2), 4(R2) ;OUTPUT_LINE, OUTPUT_DESC+4 ; PUSHL 8(AP) ;LONG_VALUE ; 2840 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 ; 2841 PUSHL R2 ;R2 ; 2842 CALLS #1, G^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT ; RET ; ; 2843 ; Routine Size: 53 bytes, Routine Base: $CODE$ + 06B4 ; 2844 1 %SBTTL 'Command Execution -- COMND_REMOTE' ; 2845 1 ROUTINE COMND_REMOTE : NOVALUE = ; 2846 1 ; 2847 1 !++ ; 2848 1 ! FUNCTIONAL DESCRIPTION: ; 2849 1 ! ; 2850 1 ! This routine will handle the REMOTE commands. It will call KERMSG ; 2851 1 !to perform the command. ; 2852 1 ! ; 2853 1 ! CALLING SEQUENCE: ; 2854 1 ! ; 2855 1 ! COMND_REMOTE (); ; 2856 1 ! ; 2857 1 ! INPUT PARAMETERS: ; 2858 1 ! ; 2859 1 ! None. ; 2860 1 ! ; 2861 1 ! IMPLICIT INPUTS: ; 2862 1 ! ; 2863 1 ! REM_TYPE - type of command to be executed ; 2864 1 ! GEN_xDATA/GEN_xSIZE - arguments for the commands ; 2865 1 ! ; 2866 1 ! OUPTUT PARAMETERS: ; 2867 1 ! ; 2868 1 ! None. ; 2869 1 ! ; 2870 1 ! IMPLICIT OUTPUTS: ; 2871 1 ! ; 2872 1 ! None. ; 2873 1 ! ; 2874 1 ! COMPLETION CODES: ; 2875 1 ! ; 2876 1 ! None. ; 2877 1 ! ; 2878 1 ! SIDE EFFECTS: ; 2879 1 ! ; 2880 1 ! None. ; 2881 1 ! ; 2882 1 !-- ; 2883 1 ; 2884 2 BEGIN ; 2885 2 ; 2886 2 IF GET_REM_ARGS (FALSE) ; 2887 2 THEN ; 2888 2 ; 2889 2 IF TERM_OPEN (TRUE) ! Open the terminal to determine if local ; 2890 2 THEN ; 2891 3 BEGIN ; 2892 3 ; 2893 3 IF NOT .CONNECT_FLAG THEN DO_GENERIC (.REM_TYPE) ELSE LIB$SIGNAL (KER_LOCONLY); ; 2894 3 ; 2895 3 TERM_CLOSE (); ; 2896 2 END; ; 2897 2 ; 2898 1 END; ! End of COMND_REMOTE ;COMND_REMOTE U.9: .WORD ^M<> ;Save nothing ; 2845 CLRL -(SP) ;-(SP) ; 2886 CALLS #1, G^U.11 ;#1, U.11 ; BLBC R0, 3$ ;R0, 3$ ; PUSHL #1 ;#1 ; 2889 CALLS #1, G^TERM_OPEN ;#1, TERM_OPEN ; BLBC R0, 3$ ;R0, 3$ ; BLBS G^CONNECT_FLAG, 1$ ;CONNECT_FLAG, 1$ ; 2893 PUSHL G^U.50 ;U.50 ; CALLS #1, G^DO_GENERIC ;#1, DO_GENERIC ; BRB 2$ ;2$ ; 1$: PUSHL #134316122 ;#134316122 ; CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL ; 2$: CALLS #0, G^TERM_CLOSE ;#0, TERM_CLOSE ; 2895 3$: RET ; ; 2898 ; Routine Size: 69 bytes, Routine Base: $CODE$ + 06E9 ; 2899 1 %SBTTL 'Command Execution -- COMND_LOCAL' ; 2900 1 ROUTINE COMND_LOCAL : NOVALUE = ; 2901 1 ; 2902 1 !++ ; 2903 1 ! FUNCTIONAL DESCRIPTION: ; 2904 1 ! ; 2905 1 ! This routine will handle the LOCAL commands. It will call the generic ; 2906 1 !command processor to perform the command, and type the result. ; 2907 1 ! ; 2908 1 ! CALLING SEQUENCE: ; 2909 1 ! ; 2910 1 ! COMND_LOCAL (); ; 2911 1 ! ; 2912 1 ! INPUT PARAMETERS: ; 2913 1 ! ; 2914 1 ! None. ; 2915 1 ! ; 2916 1 ! IMPLICIT INPUTS: ; 2917 1 ! ; 2918 1 ! REM_TYPE - type of command to be executed ; 2919 1 ! GEN_xDATA/GEN_xSIZE - arguments for the commands ; 2920 1 ! ; 2921 1 ! OUPTUT PARAMETERS: ; 2922 1 ! ; 2923 1 ! None. ; 2924 1 ! ; 2925 1 ! IMPLICIT OUTPUTS: ; 2926 1 ! ; 2927 1 ! None. ; 2928 1 ! ; 2929 1 ! COMPLETION CODES: ; 2930 1 ! ; 2931 1 ! None. ; 2932 1 ! ; 2933 1 ! SIDE EFFECTS: ; 2934 1 ! ; 2935 1 ! None. ; 2936 1 ! ; 2937 1 !-- ; 2938 1 ; 2939 2 BEGIN ; 2940 2 ; 2941 2 LOCAL ; 2942 2 SAVED_TY_FIL, ! Saved value from TY_FIL ; 2943 2 STATUS, ! Status values ; 2944 2 FILE_FLAG, ! Flag whether file is open ; 2945 2 CHARACTER, ! Character from get-a-char routine ; 2946 2 STR_LENGTH, ! Length of string ; 2947 2 STR_ADDRESS, ! Address of string ; 2948 2 GET_CHR_RTN; ! Address of routine to get a character ; 2949 2 ; 2950 2 EXTERNAL ROUTINE ; 2951 2 SY_GENERIC, ! Do a generic command ; 2952 2 GET_FILE, ! Get a character from a file ; 2953 2 FILE_OPEN, ! Open a file ; 2954 2 FILE_CLOSE; ! Close a file ; 2955 2 ; 2956 2 ! ; 2957 2 ! First get any extra arguments needed ; 2958 2 ! ; 2959 2 STATUS = GET_REM_ARGS (TRUE); ; 2960 2 ; 2961 2 IF NOT .STATUS THEN RETURN; ; 2962 2 ; 2963 2 ! ; 2964 2 ! Initialize arguments for SY_GENERIC ; 2965 2 ! ; 2966 2 GET_CHR_RTN = 0; ! No routine ; 2967 2 STR_LENGTH = 0; ! No length ; 2968 2 STR_ADDRESS = 0; ! No address ; 2969 2 ! ; 2970 2 ! Have generic routine do the command ; 2971 2 ! ; 2972 2 STATUS = SY_GENERIC (.REM_TYPE, STR_ADDRESS, STR_LENGTH, GET_CHR_RTN); ; 2973 2 ; 2974 2 IF NOT .STATUS ; 2975 2 THEN ; 2976 2 LIB$SIGNAL (.STATUS) ; 2977 2 ELSE ; 2978 3 BEGIN ; 2979 3 ! ; 2980 3 ! If we got a string, type it out ; 2981 3 ! ; 2982 3 ; 2983 3 IF .STR_LENGTH NEQ 0 ; 2984 3 THEN ; 2985 4 BEGIN ; 2986 4 ; 2987 4 LOCAL ; 2988 4 POINTER; ; 2989 4 ; 2990 4 POINTER = CH$PTR (.STR_ADDRESS); ; 2991 4 ; 2992 4 DECR I FROM .STR_LENGTH TO 1 DO ; 2993 4 TT_CHAR (CH$RCHAR_A (POINTER)); ; 2994 4 ; 2995 4 TT_CRLF (); ! Make sure it gets dumped ; 2996 4 END ; 2997 3 ELSE ; 2998 3 ! ; 2999 3 ! Here if we didn't get a string. Either we need to call the supplied routine ; 3000 3 ! or open a file and call GET_FILE for each character. ; 3001 3 ! ; 3002 4 BEGIN ; 3003 4 ; 3004 4 IF .GET_CHR_RTN NEQ 0 ; 3005 4 THEN ; 3006 4 FILE_FLAG = FALSE ! No file open ; 3007 4 ELSE ; 3008 5 BEGIN ; 3009 5 FILE_FLAG = TRUE; ! Have a file ; 3010 5 GET_CHR_RTN = GET_FILE; ! This is our get-a-char routine ; 3011 5 SAVED_TY_FIL = .TY_FIL; ! Save current type out flag ; 3012 5 TY_FIL = FALSE; ! Make sure we don't have name typed ; 3013 5 STATUS = FILE_OPEN (FNC_READ); ! Open the file ; 3014 5 TY_FIL = .SAVED_TY_FIL; ! Restore type out value ; 3015 5 ; 3016 5 IF NOT .STATUS ! If we couldn't open the file ; 3017 5 THEN ; 3018 5 RETURN; ! Just return, (FILE_OPEN reported it) ; 3019 5 ; 3020 4 END; ; 3021 4 ; 3022 4 DO ; 3023 5 BEGIN ; 3024 5 STATUS = (.GET_CHR_RTN) (CHARACTER); ! Get a character ; 3025 5 ; 3026 5 IF .STATUS AND NOT .STATUS EQL KER_EOF ! Did we get one? ; 3027 5 THEN ; 3028 5 TT_CHAR (.CHARACTER) ! Yes, type it ; 3029 5 ELSE ; 3030 5 ! ; 3031 5 ! If no character returned, check for EOF and close file if we opened it ; 3032 5 ! ; 3033 5 ; 3034 5 IF .STATUS EQL KER_EOF AND .FILE_FLAG THEN FILE_CLOSE (); ; 3035 5 ; 3036 5 END ; 3037 4 UNTIL NOT .STATUS OR .STATUS EQL KER_EOF; ! Loop until we are done ; 3038 4 ; 3039 4 TT_OUTPUT (); ! Force out last buffer ; 3040 3 END; ; 3041 3 ; 3042 2 END; ; 3043 2 ; 3044 1 END; ! End of COMND_LOCAL .EXTRN SY_GENERIC, GET_FILE ;COMND_LOCAL U.10: .WORD ^M ;Save R2,R3,R4,R5,R6 ; 2900 MOVAB G^TT_CHAR, R6 ;TT_CHAR, R6 ; MOVAB G^TY_FIL, R5 ;TY_FIL, R5 ; SUBL2 #16, SP ;#16, SP ; PUSHL #1 ;#1 ; 2959 CALLS #1, G^U.11 ;#1, U.11 ; MOVL R0, R4 ;R0, STATUS ; BLBC R4, 6$ ;STATUS, 6$ ; 2961 CLRQ (SP) ;GET_CHR_RTN ; 2966 CLRL 8(SP) ;STR_ADDRESS ; 2968 PUSHL SP ;SP ; 2972 PUSHAB 8(SP) ;STR_LENGTH ; PUSHAB 16(SP) ;STR_ADDRESS ; PUSHL G^U.50 ;U.50 ; CALLS #4, G^SY_GENERIC ;#4, SY_GENERIC ; MOVL R0, R4 ;R0, STATUS ; BLBS R4, 1$ ;STATUS, 1$ ; 2974 PUSHL R4 ;STATUS ; 2976 CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL ; RET ; ; 1$: TSTL 4(SP) ;STR_LENGTH ; 2983 BEQL 4$ ;4$ ; MOVL 8(SP), R3 ;STR_ADDRESS, POINTER ; 2990 ADDL3 #1, 4(SP), R2 ;#1, STR_LENGTH, I ; 2992 BRB 3$ ;3$ ; 2$: MOVZBL (R3)+, -(SP) ;(POINTER)+, -(SP) ; 2993 CALLS #1, (R6) ;#1, TT_CHAR ; 3$: SOBGTR R2, 2$ ;I, 2$ ; CALLS #0, G^TT_CRLF ;#0, TT_CRLF ; 2995 RET ; ; 4$: TSTL (SP) ;GET_CHR_RTN ; 3004 BEQL 5$ ;5$ ; CLRL R3 ;FILE_FLAG ; 3006 BRB 7$ ;7$ ; 5$: MOVL #1, R3 ;#1, FILE_FLAG ; 3009 MOVAB G^GET_FILE, (SP) ;GET_FILE, GET_CHR_RTN ; 3010 MOVL (R5), R2 ;TY_FIL, SAVED_TY_FIL ; 3011 CLRL (R5) ;TY_FIL ; 3012 CLRL -(SP) ;-(SP) ; 3013 CALLS #1, G^FILE_OPEN ;#1, FILE_OPEN ; MOVL R0, R4 ;R0, STATUS ; MOVL R2, (R5) ;SAVED_TY_FIL, TY_FIL ; 3014 6$: BLBC R4, 11$ ;STATUS, 11$ ; 3016 7$: PUSHAB 12(SP) ;CHARACTER ; 3024 CALLS #1, @4(SP) ;#1, @GET_CHR_RTN ; MOVL R0, R4 ;R0, STATUS ; BLBC R4, 8$ ;STATUS, 8$ ; 3026 CMPL R4, #134316131 ;STATUS, #134316131 ; BEQL 8$ ;8$ ; PUSHL 12(SP) ;CHARACTER ; 3028 CALLS #1, (R6) ;#1, TT_CHAR ; BRB 9$ ;9$ ; 8$: CMPL R4, #134316131 ;STATUS, #134316131 ; 3034 BNEQ 9$ ;9$ ; BLBC R3, 9$ ;FILE_FLAG, 9$ ; CALLS #0, G^FILE_CLOSE ;#0, FILE_CLOSE ; 9$: BLBC R4, 10$ ;STATUS, 10$ ; 3037 CMPL R4, #134316131 ;STATUS, #134316131 ; BNEQ 7$ ;7$ ; 10$: CALLS #0, G^TT_OUTPUT ;#0, TT_OUTPUT ; 3039 11$: RET ; ; 3044 ; Routine Size: 219 bytes, Routine Base: $CODE$ + 072E ; 3045 1 %SBTTL 'Command execution -- COMND_SHOW' ; 3046 1 ROUTINE COMND_SHOW : NOVALUE = ; 3047 1 ; 3048 1 !++ ; 3049 1 ! FUNCTIONAL DESCRIPTION: ; 3050 1 ! ; 3051 1 ! This routine will process the SHOW command. This routine ; 3052 1 ! expects that the command has already been processed and that ; 3053 1 ! the type of SHOW command is stored in SHOW_TYPE. ; 3054 1 ! ; 3055 1 ! CALLING SEQUENCE: ; 3056 1 ! ; 3057 1 ! COMND_SHOW(); ; 3058 1 ! ; 3059 1 ! INPUT PARAMETERS: ; 3060 1 ! ; 3061 1 ! None. ; 3062 1 ! ; 3063 1 ! IMPLICIT INPUTS: ; 3064 1 ! ; 3065 1 ! None. ; 3066 1 ! ; 3067 1 ! OUTPUT PARAMETERS: ; 3068 1 ! ; 3069 1 ! None. ; 3070 1 ! ; 3071 1 ! IMPLICIT OUTPUTS: ; 3072 1 ! ; 3073 1 ! None. ; 3074 1 ! ; 3075 1 ! COMPLETION CODES: ; 3076 1 ! ; 3077 1 ! None. ; 3078 1 ! ; 3079 1 ! SIDE EFFECTS: ; 3080 1 ! ; 3081 1 ! None. ; 3082 1 ! ; 3083 1 !-- ; 3084 1 ; 3085 2 BEGIN ; 3086 2 ; 3087 2 LOCAL ; 3088 2 STATUS : WORD; ! Status returned ; 3089 2 ; 3090 2 ! Bind some addresses to text ; 3091 2 ; 3092 2 BIND ; 3093 2 OFF_TEXT = %ASCID'OFF', ! Item is off ; 3094 2 ON_TEXT = %ASCID'ON', ! Item is on ; 3095 2 SHOW_ABT_MSG = %ASCID' Incomplete file disposition !AS', ; 3096 2 ABT_DISCARD = %ASCID'Discard', ; 3097 2 ABT_KEEP = %ASCID'Keep', ; 3098 2 SHOW_CHK_MSG = %ASCID' Block check type !AS', ; 3099 2 CHK_1CHAR_MSG = %ASCID'One character checksum', ; 3100 2 CHK_2CHAR_MSG = %ASCID'Two character checksum', ; 3101 2 CHK_CRC_MSG = %ASCID'Three character CRC-CCITT', ; 3102 2 SHOW_DEB_MSG = %ASCID' Debugging !AS', ; 3103 2 SHOW_DEL_MSG = %ASCID' Delay !ZL (sec)', ; 3104 2 SHOW_SRV_MSG = %ASCID' Server sends NAKs every !ZL seconds while waiting for a command', ; 3105 2 SHOW_ESC_MSG = %ASCID' Escape character !3OL (octal)', ; 3106 2 SHOW_FTP_MSG = %ASCID' File type !AS', ; 3107 2 FTP_ASCII = %ASCID'ASCII', ; 3108 2 FTP_BINARY = %ASCID'BINARY', ; 3109 2 FTP_BLOCK = %ASCID'BLOCK', ; 3110 2 FTP_FIXED = %ASCID'FIXED 512 byte records', ; 3111 2 SHOW_FNM_MSG = %ASCID' File naming !AS', ; 3112 2 FNM_MSG_FULL = %ASCID'Full file specifcation', ; 3113 2 FNM_MSG_NORMAL = %ASCID'Normal form', ; 3114 2 FNM_MSG_UNTRAN = %ASCID'Untranslated', ; 3115 2 ! SHOW_IBM_MSG = %ASCID' IBM mode !AS', ; 3116 2 SHOW_HAN_MSG = %ASCID' Handshaking character !3OL (octal)', ; 3117 2 SHOW_HAN_MSG_NONE = %ASCID' Handshaking character None', ; 3118 2 SHOW_LIN_MSG = %ASCID' Line used !AS', ; 3119 2 SHOW_ECH_MSG = %ASCID' Local echo !AS', ; 3120 2 SHOW_PAR_MSG = %ASCID' Parity type !AS', ; 3121 2 PAR_EVEN = %ASCID'Even', ; 3122 2 PAR_ODD = %ASCID'Odd', ; 3123 2 PAR_MARK = %ASCID'Mark', ; 3124 2 PAR_SPACE = %ASCID'Space', ; 3125 2 PAR_NONE = %ASCID'None', ; 3126 2 SHOW_RTY_HDR = %ASCID' Retry maximums', ; 3127 2 SHOW_RTY_INI_MSG = %ASCID' Initial connection !ZL (dec)', ; 3128 2 SHOW_RTY_PKT_MSG = %ASCID' Sending a packet !ZL (dec)', ; 3129 2 SHOW_REC_HDR = %ASCID' Receive parameters', ; 3130 2 SHOW_SND_HDR = %ASCID' Send parameters', ; 3131 2 SHOW_PKT_MSG = %ASCID' Packet length !ZL (dec)', ; 3132 2 SHOW_PAD_MSG = %ASCID' Padding length !ZL (dec)', ; 3133 2 SHOW_PDC_MSG = %ASCID' Padding character !3OL (octal)', ; 3134 2 SHOW_TIM_MSG = %ASCID' Time out !ZL (sec)', ; 3135 2 SHOW_EOL_MSG = %ASCID' End of line character !3OL (octal)', ; 3136 2 SHOW_QUO_MSG = %ASCID' Quoting character !3OL (octal)', ; 3137 2 SHOW_SOH_MSG = %ASCID' Start of packet !3OL (octal)', ; 3138 2 SHOW_8QU_MSG = %ASCID' 8-bit quoting character !3OL (octal)', ; 3139 2 SHOW_TRN_HDR = %ASCID' Transmit parameters', ! ; 3140 2 SHOW_TRD_MSG = %ASCID' Delay 0.!AD (sec)', ! ; 3141 2 SHOW_TRE_MSG = %ASCID' Echo !AS', ! ; 3142 2 SHOW_RPT_MSG = %ASCID' Repeat quoting character !3OL (octal)'; ; 3143 2 ; 3144 2 !++ ; 3145 2 ! FUNCTIONAL DESCRIPTION: ; 3146 2 ! ; 3147 2 ! This routine is used to output the keywords TRUE or FALSE. ; 3148 2 ! All text that this routine uses is defined in the level 0 BEGIN/END ; 3149 2 ! of the program. ; 3150 2 ! ; 3151 2 ! CALLING SEQUENCE: ; 3152 2 ! ; 3153 2 ! OUTPUT_TRUE_FALSE( MSG_ASCID, FLAG_WORD); ; 3154 2 ! ; 3155 2 ! INPUT PARAMETERS: ; 3156 2 ! ; 3157 2 ! MSG_ASCID - %ASCID of the text to use for the $FAO call. ; 3158 2 ! ; 3159 2 ! FLAG_WORD - Long word containing the value of either TRUE or FALSE. ; 3160 2 ! ; 3161 2 ! IMPLICIT INPUTS: ; 3162 2 ! ; 3163 2 ! None. ; 3164 2 ! ; 3165 2 ! OUTPUT PARAMETERS: ; 3166 2 ! ; 3167 2 ! None. ; 3168 2 ! ; 3169 2 ! IMPLICIT OUTPUTS: ; 3170 2 ! ; 3171 2 ! None. ; 3172 2 ! ; 3173 2 ! COMPLETION CODES: ; 3174 2 ! ; 3175 2 ! None. ; 3176 2 ! ; 3177 2 ! SIDE EFFECTS: ; 3178 2 ! ; 3179 2 ! None. ; 3180 2 ! ; 3181 2 !-- ; 3182 2 ; 3183 2 ROUTINE OUTPUT_TRUE_FALSE (MSG_ADDR, FLAG_ADDR) : NOVALUE = ; 3184 3 BEGIN ; 3185 3 ; 3186 3 MAP ; 3187 3 FLAG_ADDR : LONG UNSIGNED, ; 3188 3 MSG_ADDR : LONG UNSIGNED; ; 3189 3 ; 3190 3 LOCAL ; 3191 3 STATUS : UNSIGNED; ! Status return by LIB$xxx ; 3192 3 ; 3193 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; P 3194 3 $FAO (.MSG_ADDR, OUTPUT_SIZE, OUTPUT_DESC, ; P 3195 3 (SELECTONE ..FLAG_ADDR OF ; P 3196 3 SET ; P 3197 3 [TRUE] : ON_TEXT; ; P 3198 3 [FALSE] : OFF_TEXT; ; 3199 3 TES)); ; 3200 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3201 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3202 2 END; .PSECT $PLIT$,NOWRT,NOEXE,2 P.AAW: .ASCII \OFF\<0> ; ; P.AAV: .LONG 17694723 ; ; .ADDRESS P.AAW ; ; P.AAY: .ASCII \ON\<0><0> ; ; P.AAX: .LONG 17694722 ; ; .ADDRESS P.AAY ; ; P.ABA: .ASCII \ Incomplete file disposition\<9>\!AS\ ; ; P.AAZ: .LONG 17694752 ; ; .ADDRESS P.ABA ; ; P.ABC: .ASCII \Discard\<0> ; ; P.ABB: .LONG 17694727 ; ; .ADDRESS P.ABC ; ; P.ABE: .ASCII \Keep\ ; ; P.ABD: .LONG 17694724 ; ; .ADDRESS P.ABE ; ; P.ABG: .ASCII \ Block check type\<9><9>\!AS\<0><0> ; ; P.ABF: .LONG 17694742 ; ; .ADDRESS P.ABG ; ; P.ABI: .ASCII \One character checksum\<0><0> ; ; P.ABH: .LONG 17694742 ; ; .ADDRESS P.ABI ; ; P.ABK: .ASCII \Two character checksum\<0><0> ; ; P.ABJ: .LONG 17694742 ; ; .ADDRESS P.ABK ; ; P.ABM: .ASCII \Three character CRC-CCITT\<0><0><0> ; ; P.ABL: .LONG 17694745 ; ; .ADDRESS P.ABM ; ; P.ABO: .ASCII \ Debugging\<9><9><9>\!AS\ ; ; P.ABN: .LONG 17694736 ; ; .ADDRESS P.ABO ; ; P.ABQ: .ASCII \ Delay\<9><9><9><9>\!ZL (sec)\<0> ; ; P.ABP: .LONG 17694739 ; ; .ADDRESS P.ABQ ; ; P.ABS: .ASCII \ Server sends NAKs every !ZL seconds while waiting for a command\ ; ; P.ABR: .LONG 17694784 ; ; .ADDRESS P.ABS ; ; P.ABU: .ASCII \ Escape character\<9><9>\!3OL (octal)\<0> ; ; P.ABT: .LONG 17694751 ; ; .ADDRESS P.ABU ; ; P.ABW: .ASCII \ File type\<9><9><9>\!AS\ ; ; P.ABV: .LONG 17694736 ; ; .ADDRESS P.ABW ; ; P.ABY: .ASCII \ASCII\<0><0><0> ; ; P.ABX: .LONG 17694725 ; ; .ADDRESS P.ABY ; ; P.ACA: .ASCII \BINARY\<0><0> ; ; P.ABZ: .LONG 17694726 ; ; .ADDRESS P.ACA ; ; P.ACC: .ASCII \BLOCK\<0><0><0> ; ; P.ACB: .LONG 17694725 ; ; .ADDRESS P.ACC ; ; P.ACE: .ASCII \FIXED 512 byte records\<0><0> ; ; P.ACD: .LONG 17694742 ; ; .ADDRESS P.ACE ; ; P.ACG: .ASCII \ File naming\<9><9><9>\!AS\<0><0> ; ; P.ACF: .LONG 17694738 ; ; .ADDRESS P.ACG ; ; P.ACI: .ASCII \Full file specifcation\<0><0> ; ; P.ACH: .LONG 17694742 ; ; .ADDRESS P.ACI ; ; P.ACK: .ASCII \Normal form\<0> ; ; P.ACJ: .LONG 17694731 ; ; .ADDRESS P.ACK ; ; P.ACM: .ASCII \Untranslated\ ; ; P.ACL: .LONG 17694732 ; ; .ADDRESS P.ACM ; ; P.ACO: .ASCII \ Handshaking character\<9><9>\!3OL (octal)\ ; ; P.ACN: .LONG 17694756 ; ; .ADDRESS P.ACO ; ; P.ACQ: .ASCII \ Handshaking character\<9><9>\None\ ; ; P.ACP: .LONG 17694748 ; ; .ADDRESS P.ACQ ; ; P.ACS: .ASCII \ Line used\<9><9><9>\!AS\ ; ; P.ACR: .LONG 17694736 ; ; .ADDRESS P.ACS ; ; P.ACU: .ASCII \ Local echo\<9><9><9>\!AS\<0><0><0> ; ; P.ACT: .LONG 17694737 ; ; .ADDRESS P.ACU ; ; P.ACW: .ASCII \ Parity type\<9><9><9>\!AS\<0><0> ; ; P.ACV: .LONG 17694738 ; ; .ADDRESS P.ACW ; ; P.ACY: .ASCII \Even\ ; ; P.ACX: .LONG 17694724 ; ; .ADDRESS P.ACY ; ; P.ADA: .ASCII \Odd\<0> ; ; P.ACZ: .LONG 17694723 ; ; .ADDRESS P.ADA ; ; P.ADC: .ASCII \Mark\ ; ; P.ADB: .LONG 17694724 ; ; .ADDRESS P.ADC ; ; P.ADE: .ASCII \Space\<0><0><0> ; ; P.ADD: .LONG 17694725 ; ; .ADDRESS P.ADE ; ; P.ADG: .ASCII \None\ ; ; P.ADF: .LONG 17694724 ; ; .ADDRESS P.ADG ; ; P.ADI: .ASCII \ Retry maximums\<0> ; ; P.ADH: .LONG 17694735 ; ; .ADDRESS P.ADI ; ; P.ADK: .ASCII \ Initial connection\<9><9>\!ZL (dec)\<0> ; ; P.ADJ: .LONG 17694751 ; ; .ADDRESS P.ADK ; ; P.ADM: .ASCII \ Sending a packet\<9><9>\!ZL (dec)\<0><0><0> ; ; P.ADL: .LONG 17694749 ; ; .ADDRESS P.ADM ; ; P.ADO: .ASCII \ Receive parameters\<0> ; ; P.ADN: .LONG 17694739 ; ; .ADDRESS P.ADO ; ; P.ADQ: .ASCII \ Send parameters\ ; ; P.ADP: .LONG 17694736 ; ; .ADDRESS P.ADQ ; ; P.ADS: .ASCII \ Packet length\<9><9><9>\!ZL (dec)\<0> ; ; P.ADR: .LONG 17694747 ; ; .ADDRESS P.ADS ; ; P.ADU: .ASCII \ Padding length\<9><9>\!ZL (dec)\<0> ; ; P.ADT: .LONG 17694747 ; ; .ADDRESS P.ADU ; ; P.ADW: .ASCII \ Padding character\<9><9>\!3OL (octal)\<0><0><0> ; ; P.ADV: .LONG 17694753 ; ; .ADDRESS P.ADW ; ; P.ADY: .ASCII \ Time out\<9><9><9>\!ZL (sec)\<0><0> ; ; P.ADX: .LONG 17694742 ; ; .ADDRESS P.ADY ; ; P.AEA: .ASCII \ End of line character\<9><9>\!3OL (octal)\<0><0><0> ; ; P.ADZ: .LONG 17694757 ; ; .ADDRESS P.AEA ; ; P.AEC: .ASCII \ Quoting character\<9><9>\!3OL (octal)\<0><0><0> ; ; P.AEB: .LONG 17694753 ; ; .ADDRESS P.AEC ; ; P.AEE: .ASCII \ Start of packet\<9><9>\!3OL (octal)\<0> ; ; P.AED: .LONG 17694751 ; ; .ADDRESS P.AEE ; ; P.AEG: .ASCII \ 8-bit quoting character\<9>\!3OL (octal)\<0><0> ; ; P.AEF: .LONG 17694758 ; ; .ADDRESS P.AEG ; ; P.AEI: .ASCII \ Transmit parameters\ ; ; P.AEH: .LONG 17694740 ; ; .ADDRESS P.AEI ; ; P.AEK: .ASCII \ Delay 0.!AD (sec)\<0> ; ; P.AEJ: .LONG 17694763 ; ; .ADDRESS P.AEK ; ; P.AEM: .ASCII \ Echo\<9><9><9>\ !AS\ ; ; P.AEL: .LONG 17694740 ; ; .ADDRESS P.AEM ; ; P.AEO: .ASCII \ Repeat quoting character\<9>\!3OL (octal)\<0><0> ; ; P.AEN: .LONG 17694758 ; ; .ADDRESS P.AEO ; ; OFF_TEXT= P.AAV ON_TEXT= P.AAX SHOW_ABT_MSG= P.AAZ ABT_DISCARD= P.ABB ABT_KEEP= P.ABD SHOW_CHK_MSG= P.ABF CHK_1CHAR_MSG= P.ABH CHK_2CHAR_MSG= P.ABJ CHK_CRC_MSG= P.ABL SHOW_DEB_MSG= P.ABN SHOW_DEL_MSG= P.ABP SHOW_SRV_MSG= P.ABR SHOW_ESC_MSG= P.ABT SHOW_FTP_MSG= P.ABV FTP_ASCII= P.ABX FTP_BINARY= P.ABZ FTP_BLOCK= P.ACB FTP_FIXED= P.ACD SHOW_FNM_MSG= P.ACF FNM_MSG_FULL= P.ACH FNM_MSG_NORMAL= P.ACJ FNM_MSG_UNTRAN= P.ACL SHOW_HAN_MSG= P.ACN SHOW_HAN_MSG_NONE= P.ACP SHOW_LIN_MSG= P.ACR SHOW_ECH_MSG= P.ACT SHOW_PAR_MSG= P.ACV PAR_EVEN= P.ACX PAR_ODD= P.ACZ PAR_MARK= P.ADB PAR_SPACE= P.ADD PAR_NONE= P.ADF SHOW_RTY_HDR= P.ADH SHOW_RTY_INI_MSG= P.ADJ SHOW_RTY_PKT_MSG= P.ADL SHOW_REC_HDR= P.ADN SHOW_SND_HDR= P.ADP SHOW_PKT_MSG= P.ADR SHOW_PAD_MSG= P.ADT SHOW_PDC_MSG= P.ADV SHOW_TIM_MSG= P.ADX SHOW_EOL_MSG= P.ADZ SHOW_QUO_MSG= P.AEB SHOW_SOH_MSG= P.AED SHOW_8QU_MSG= P.AEF SHOW_TRN_HDR= P.AEH SHOW_TRD_MSG= P.AEJ SHOW_TRE_MSG= P.AEL SHOW_RPT_MSG= P.AEN .PSECT $CODE$,NOWRT,2 OUTPUT_TRUE_FALSE: .WORD ^M ;Save R2 ; 3183 MOVAB G^U.53, R2 ;U.53, R2 ; MOVL #17694800, (R2) ;#17694800, OUTPUT_DESC ; 3193 MOVAB -80(R2), 4(R2) ;OUTPUT_LINE, OUTPUT_DESC+4 ; MOVL @8(AP), R1 ;@FLAG_ADDR, R1 ; 3199 CMPL R1, #1 ;R1, #1 ; BNEQ 1$ ;1$ ; MOVAB G^ON_TEXT, R0 ;ON_TEXT, R0 ; BRB 2$ ;2$ ; 1$: TSTL R1 ;R1 ; BNEQ 3$ ;3$ ; MOVAB G^OFF_TEXT, R0 ;OFF_TEXT, R0 ; 2$: PUSHL R0 ;R0 ; BRB 4$ ;4$ ; 3$: MNEGL #1, -(SP) ;#1, -(SP) ; 4$: PUSHL R2 ;R2 ; PUSHAB 8(R2) ;OUTPUT_SIZE ; PUSHL 4(AP) ;MSG_ADDR ; CALLS #4, G^SYS$FAO ;#4, SYS$FAO ; MOVW 8(R2), (R2) ;OUTPUT_SIZE, OUTPUT_DESC ; 3200 PUSHL R2 ;R2 ; 3201 CALLS #1, G^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT ; RET ; ; 3202 ; Routine Size: 86 bytes, Routine Base: $CODE$ + 0809 ; 3203 2 ; 3204 2 SELECT .SHOW_TYPE OF ; 3205 2 SET ; 3206 2 ! ; 3207 2 ! Show version ; 3208 2 ! ; 3209 2 ; 3210 2 [SHOW_ALL, SHOW_VER] : ; 3211 2 STATUS = LIB$PUT_OUTPUT (IDENT_STRING); ! Type our name and version ; 3212 2 ; 3213 2 [SHOW_ALL, SHOW_CHK, SHOW_PAC] : ; 3214 3 BEGIN ; 3215 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; P 3216 3 $FAO (SHOW_CHK_MSG, OUTPUT_SIZE, OUTPUT_DESC, ; P 3217 3 (SELECTONE .CHKTYPE OF ; P 3218 3 SET ; P 3219 3 [CHK_1CHAR] : CHK_1CHAR_MSG; ; P 3220 3 [CHK_2CHAR] : CHK_2CHAR_MSG; ; P 3221 3 [CHK_CRC] : CHK_CRC_MSG; ; 3222 3 TES)); ; 3223 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3224 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3225 2 END; ; 3226 2 ; 3227 2 [SHOW_ALL, SHOW_DEB] : ; 3228 2 OUTPUT_TRUE_FALSE (SHOW_DEB_MSG, DEBUG_FLAG); ; 3229 2 ; 3230 2 [SHOW_ALL, SHOW_DEL, SHOW_COM, SHOW_TIM] : ; 3231 2 OUTPUT_LONG_WORD (SHOW_DEL_MSG, .DELAY); ; 3232 2 ; 3233 2 [SHOW_ALL, SHOW_TIM] : ; 3234 2 OUTPUT_LONG_WORD (SHOW_SRV_MSG, .SRV_TIMEOUT); ; 3235 2 ; 3236 2 [SHOW_ALL, SHOW_ESC, SHOW_COM] : ; 3237 2 OUTPUT_LONG_WORD (SHOW_ESC_MSG, .ESCAPE_CHR); ; 3238 2 ; 3239 2 [SHOW_ALL, SHOW_FIL] : ! ; 3240 3 BEGIN ; 3241 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; P 3242 3 $FAO (SHOW_FTP_MSG, OUTPUT_SIZE, OUTPUT_DESC, ; P 3243 3 (SELECTONE .FILE_TYPE OF ; P 3244 3 SET ; P 3245 3 [FILE_ASC] : FTP_ASCII; ; P 3246 3 [FILE_BIN] : FTP_BINARY; ; P 3247 3 [FILE_BLK] : FTP_BLOCK; ; P 3248 3 [FILE_FIX] : FTP_FIXED; ; 3249 3 TES)); ; 3250 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3251 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3252 3 ! ; 3253 3 ! Display the file name format ; 3254 3 ! ; 3255 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; P 3256 3 $FAO (SHOW_FNM_MSG, OUTPUT_SIZE, OUTPUT_DESC, ; P 3257 3 (SELECTONE .FIL_NORMAL_FORM OF ; P 3258 3 SET ; P 3259 3 [FNM_FULL] : FNM_MSG_FULL; ; P 3260 3 [FNM_NORMAL] : FNM_MSG_NORMAL; ; P 3261 3 [FNM_UNTRAN] : FNM_MSG_UNTRAN; ; 3262 3 TES)); ; 3263 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3264 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3265 2 END; ; 3266 2 ; 3267 2 [SHOW_ALL, SHOW_COM] : ; 3268 2 IF .IBM_CHAR GEQ 0 ; 3269 2 THEN ; 3270 2 OUTPUT_LONG_WORD (SHOW_HAN_MSG, .IBM_CHAR) ; 3271 2 ELSE ; 3272 2 STATUS = LIB$PUT_OUTPUT (SHOW_HAN_MSG_NONE); ; 3273 2 ; 3274 2 [SHOW_ALL, SHOW_ABT, SHOW_FIL] : ; 3275 3 BEGIN ; 3276 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; 3277 3 $FAO (SHOW_ABT_MSG, OUTPUT_SIZE, OUTPUT_DESC, (IF .ABT_FLAG THEN ABT_DISCARD ELSE ABT_KEEP)); ; 3278 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3279 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3280 2 END; ; 3281 2 ; 3282 2 [SHOW_ALL, SHOW_LIN, SHOW_COM] : ; 3283 3 BEGIN ; 3284 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; 3285 3 ; 3286 3 IF .TERM_DESC [DSC$W_LENGTH] GTR 0 ; 3287 3 THEN ; 3288 4 $FAO (SHOW_LIN_MSG, OUTPUT_SIZE, OUTPUT_DESC, TERM_DESC) ; 3289 3 ELSE ; 3290 3 $FAO (SHOW_LIN_MSG, OUTPUT_SIZE, OUTPUT_DESC, %ASCID'none'); ; 3291 3 ; 3292 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3293 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3294 2 END; ; 3295 2 ; 3296 2 [SHOW_ALL, SHOW_ECH, SHOW_COM] : ; 3297 2 OUTPUT_TRUE_FALSE (SHOW_ECH_MSG, ECHO_FLAG); ; 3298 2 ; 3299 2 [SHOW_ALL, SHOW_PAR, SHOW_COM] : ; 3300 3 BEGIN ; 3301 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; P 3302 3 $FAO (SHOW_PAR_MSG, OUTPUT_SIZE, OUTPUT_DESC, ; P 3303 3 (SELECTONE .PARITY_TYPE OF ; P 3304 3 SET ; P 3305 3 [PR_EVEN] : PAR_EVEN; ; P 3306 3 [PR_ODD] : PAR_ODD; ; P 3307 3 [PR_NONE] : PAR_NONE; ; P 3308 3 [PR_MARK] : PAR_MARK; ; P 3309 3 [PR_SPACE] : PAR_SPACE; ; 3310 3 TES)); ; 3311 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3312 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3313 2 END; ; 3314 2 ; 3315 2 [SHOW_ALL, SHOW_RTY, SHOW_PAC] : ; 3316 3 BEGIN ; 3317 3 STATUS = LIB$PUT_OUTPUT (SHOW_RTY_HDR); ; 3318 3 OUTPUT_LONG_WORD (SHOW_RTY_INI_MSG, .SI_RETRIES); ; 3319 3 OUTPUT_LONG_WORD (SHOW_RTY_PKT_MSG, .PKT_RETRIES); ; 3320 2 END; ; 3321 2 ; 3322 2 [SHOW_ALL, SHOW_SEN, SHOW_PAC] : ; 3323 3 BEGIN ; 3324 3 STATUS = LIB$PUT_OUTPUT (SHOW_SND_HDR); ; 3325 3 OUTPUT_LONG_WORD (SHOW_PKT_MSG, ABS (.SND_PKT_SIZE)); ; 3326 3 OUTPUT_LONG_WORD (SHOW_PAD_MSG, ABS (.SND_NPAD)); ; 3327 3 OUTPUT_LONG_WORD (SHOW_PDC_MSG, ABS (.SND_PADCHAR)); ; 3328 3 OUTPUT_LONG_WORD (SHOW_TIM_MSG, ABS (.SND_TIMEOUT)); ; 3329 3 OUTPUT_LONG_WORD (SHOW_EOL_MSG, ABS (.SND_EOL)); ; 3330 3 OUTPUT_LONG_WORD (SHOW_QUO_MSG, ABS (.SND_QUOTE_CHR)); ; 3331 3 OUTPUT_LONG_WORD (SHOW_SOH_MSG, ABS (.SND_SOH)); ; 3332 2 END; ; 3333 2 ; 3334 2 [SHOW_ALL, SHOW_REC, SHOW_PAC] : ; 3335 3 BEGIN ; 3336 3 STATUS = LIB$PUT_OUTPUT (SHOW_REC_HDR); ; 3337 3 OUTPUT_LONG_WORD (SHOW_PKT_MSG, .RCV_PKT_SIZE); ; 3338 3 OUTPUT_LONG_WORD (SHOW_PAD_MSG, .RCV_NPAD); ; 3339 3 OUTPUT_LONG_WORD (SHOW_PDC_MSG, .RCV_PADCHAR); ; 3340 3 OUTPUT_LONG_WORD (SHOW_TIM_MSG, .RCV_TIMEOUT); ; 3341 3 OUTPUT_LONG_WORD (SHOW_EOL_MSG, .RCV_EOL); ; 3342 3 OUTPUT_LONG_WORD (SHOW_QUO_MSG, .RCV_QUOTE_CHR); ; 3343 3 OUTPUT_LONG_WORD (SHOW_8QU_MSG, .RCV_8QUOTE_CHR); ; 3344 3 OUTPUT_LONG_WORD (SHOW_SOH_MSG, .RCV_SOH); ; 3345 2 END; ; 3346 2 ; 3347 2 [SHOW_ALL, SHOW_TRN] : ! ; 3348 3 BEGIN ! ; 3349 3 STATUS = LIB$PUT_OUTPUT (SHOW_TRN_HDR); ! ; 3350 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ! ; 3351 3 $FAO (SHOW_TRD_MSG, OUTPUT_SIZE, OUTPUT_DESC, 1, TRANS_DELAY); ! ; 3352 3 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ! ; 3353 3 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ! ; 3354 3 OUTPUT_TRUE_FALSE (SHOW_TRE_MSG, TRANS_ECHO_FLAG); ! ; 3355 2 END; ! ; 3356 2 ; 3357 2 [SHOW_ALL, SHOW_PAC] : ; 3358 3 BEGIN ; 3359 3 OUTPUT_LONG_WORD (SHOW_RPT_MSG, .SET_REPT_CHR); ; 3360 2 END; ; 3361 2 ; 3362 2 TES; ; 3363 2 ; 3364 1 END; ! End of COMND_SHOW .PSECT $PLIT$,NOWRT,NOEXE,2 P.AEQ: .ASCII \none\ ; ; P.AEP: .LONG 17694724 ; ; .ADDRESS P.AEQ ; ; .PSECT $CODE$,NOWRT,2 ;COMND_SHOW U.7: .WORD ^M ;Save R2,R3,R4,R5,R6,R7,R8,R9 ; 3046 MOVAB G^TERM_DESC, R9 ;TERM_DESC, R9 ; 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 G^SHOW_PKT_MSG, R5 ;SHOW_PKT_MSG, R5 ; MOVAB G^U.53, R4 ;U.53, R4 ; MOVL -92(R4), R2 ;SHOW_TYPE, R2 ; 3204 CMPL R2, #1 ;R2, #1 ; 3210 BEQL 1$ ;1$ ; CMPL R2, #17 ;R2, #17 ; BNEQ 2$ ;2$ ; 1$: PUSHAB -1356(R5) ;IDENT_STRING ; 3211 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 2$: CMPL R2, #1 ;R2, #1 ; 3213 BEQL 3$ ;3$ ; CMPL R2, #12 ;R2, #12 ; BEQL 3$ ;3$ ; CMPL R2, #15 ;R2, #15 ; BNEQ 9$ ;9$ ; 3$: MOVL #17694800, (R4) ;#17694800, OUTPUT_DESC ; 3215 MOVAB -80(R4), 4(R4) ;OUTPUT_LINE, OUTPUT_DESC+4 ; MOVL G^CHKTYPE, R0 ;CHKTYPE, R0 ; 3222 CMPL R0, #49 ;R0, #49 ; BNEQ 4$ ;4$ ; MOVAB -852(R5), R1 ;CHK_1CHAR_MSG, R1 ; BRB 5$ ;5$ ; 4$: CMPL R0, #50 ;R0, #50 ; BNEQ 6$ ;6$ ; MOVAB -820(R5), R1 ;CHK_2CHAR_MSG, R1 ; 5$: PUSHL R1 ;R1 ; BRB 8$ ;8$ ; 6$: CMPL R0, #51 ;R0, #51 ; BNEQ 7$ ;7$ ; MOVAB -784(R5), R0 ;CHK_CRC_MSG, R0 ; PUSHL R0 ;R0 ; BRB 8$ ;8$ ; 7$: MNEGL #1, -(SP) ;#1, -(SP) ; 8$: PUSHL R4 ;R4 ; PUSHAB 8(R4) ;OUTPUT_SIZE ; PUSHAB -884(R5) ;SHOW_CHK_MSG ; CALLS #4, (R8) ;#4, SYS$FAO ; MOVW 8(R4), (R4) ;OUTPUT_SIZE, OUTPUT_DESC ; 3223 PUSHL R4 ;R4 ; 3224 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 9$: TSTL R2 ;R2 ; 3227 BLEQ 10$ ;10$ ; CMPL R2, #2 ;R2, #2 ; BGTR 10$ ;10$ ; PUSHAB G^DEBUG_FLAG ;DEBUG_FLAG ; 3228 PUSHAB -760(R5) ;SHOW_DEB_MSG ; CALLS #2, 341(R6) ;#2, OUTPUT_TRUE_FALSE ; 10$: CMPL R2, #1 ;R2, #1 ; 3230 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 G^DELAY ;DELAY ; 3231 PUSHAB -732(R5) ;SHOW_DEL_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; 12$: CMPL R2, #1 ;R2, #1 ; 3233 BEQL 13$ ;13$ ; CMPL R2, #5 ;R2, #5 ; BNEQ 14$ ;14$ ; 13$: PUSHL G^SRV_TIMEOUT ;SRV_TIMEOUT ; 3234 PUSHAB -660(R5) ;SHOW_SRV_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; 14$: CMPL R2, #1 ;R2, #1 ; 3236 BEQL 15$ ;15$ ; CMPL R2, #4 ;R2, #4 ; BEQL 15$ ;15$ ; CMPL R2, #16 ;R2, #16 ; BNEQ 16$ ;16$ ; 15$: PUSHL G^ESCAPE_CHR ;ESCAPE_CHR ; 3237 PUSHAB -620(R5) ;SHOW_ESC_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; 16$: CMPL R2, #1 ;R2, #1 ; 3239 BEQL 17$ ;17$ ; CMPL R2, #14 ;R2, #14 ; BEQL 17$ ;17$ ; BRW 29$ ;29$ ; 17$: MOVL #17694800, (R4) ;#17694800, OUTPUT_DESC ; 3241 MOVAB -80(R4), 4(R4) ;OUTPUT_LINE, OUTPUT_DESC+4 ; MOVL G^FILE_TYPE, R0 ;FILE_TYPE, R0 ; 3249 CMPL R0, #1 ;R0, #1 ; BNEQ 18$ ;18$ ; MOVAB -580(R5), R1 ;FTP_ASCII, R1 ; BRB 20$ ;20$ ; 18$: CMPL R0, #2 ;R0, #2 ; BNEQ 19$ ;19$ ; MOVAB -564(R5), R1 ;FTP_BINARY, R1 ; BRB 20$ ;20$ ; 19$: CMPL R0, #3 ;R0, #3 ; BNEQ 21$ ;21$ ; MOVAB -548(R5), R1 ;FTP_BLOCK, R1 ; 20$: PUSHL R1 ;R1 ; BRB 23$ ;23$ ; 21$: CMPL R0, #4 ;R0, #4 ; BNEQ 22$ ;22$ ; MOVAB -516(R5), R0 ;FTP_FIXED, R0 ; PUSHL R0 ;R0 ; BRB 23$ ;23$ ; 22$: MNEGL #1, -(SP) ;#1, -(SP) ; 23$: PUSHL R4 ;R4 ; PUSHAB 8(R4) ;OUTPUT_SIZE ; PUSHAB -596(R5) ;SHOW_FTP_MSG ; CALLS #4, (R8) ;#4, SYS$FAO ; MOVW 8(R4), (R4) ;OUTPUT_SIZE, OUTPUT_DESC ; 3250 PUSHL R4 ;R4 ; 3251 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; MOVL #17694800, (R4) ;#17694800, OUTPUT_DESC ; 3255 MOVAB -80(R4), 4(R4) ;OUTPUT_LINE, OUTPUT_DESC+4 ; MOVL G^FIL_NORMAL_FORM, R0 ;FIL_NORMAL_FORM, R0 ; 3262 CMPL R0, #2 ;R0, #2 ; BNEQ 24$ ;24$ ; MOVAB -456(R5), R1 ;FNM_MSG_FULL, R1 ; BRB 25$ ;25$ ; 24$: CMPL R0, #1 ;R0, #1 ; BNEQ 26$ ;26$ ; MOVAB -436(R5), R1 ;FNM_MSG_NORMAL, R1 ; 25$: PUSHL R1 ;R1 ; BRB 28$ ;28$ ; 26$: CMPL R0, #4 ;R0, #4 ; BNEQ 27$ ;27$ ; MOVAB -416(R5), R0 ;FNM_MSG_UNTRAN, R0 ; PUSHL R0 ;R0 ; BRB 28$ ;28$ ; 27$: MNEGL #1, -(SP) ;#1, -(SP) ; 28$: PUSHL R4 ;R4 ; PUSHAB 8(R4) ;OUTPUT_SIZE ; PUSHAB -488(R5) ;SHOW_FNM_MSG ; CALLS #4, (R8) ;#4, SYS$FAO ; MOVW 8(R4), (R4) ;OUTPUT_SIZE, OUTPUT_DESC ; 3263 PUSHL R4 ;R4 ; 3264 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 29$: CMPL R2, #1 ;R2, #1 ; 3267 BEQL 30$ ;30$ ; CMPL R2, #16 ;R2, #16 ; BNEQ 32$ ;32$ ; 30$: MOVL G^IBM_CHAR, R0 ;IBM_CHAR, R0 ; 3268 BLSS 31$ ;31$ ; PUSHL R0 ;R0 ; 3270 PUSHAB -372(R5) ;SHOW_HAN_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; BRB 32$ ;32$ ; 31$: PUSHAB -336(R5) ;SHOW_HAN_MSG_NONE ; 3272 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 32$: CMPL R2, #1 ;R2, #1 ; 3274 BEQL 33$ ;33$ ; CMPL R2, #13 ;R2, #13 ; BLSS 36$ ;36$ ; CMPL R2, #14 ;R2, #14 ; BGTR 36$ ;36$ ; 33$: MOVL #17694800, (R4) ;#17694800, OUTPUT_DESC ; 3276 MOVAB -80(R4), 4(R4) ;OUTPUT_LINE, OUTPUT_DESC+4 ; BLBC G^ABT_FLAG, 34$ ;ABT_FLAG, 34$ ; 3277 MOVAB -928(R5), R0 ;ABT_DISCARD, R0 ; BRB 35$ ;35$ ; 34$: MOVAB -916(R5), R0 ;ABT_KEEP, R0 ; 35$: PUSHL R0 ;R0 ; PUSHL R4 ;R4 ; PUSHAB 8(R4) ;OUTPUT_SIZE ; PUSHAB -944(R5) ;SHOW_ABT_MSG ; CALLS #4, (R8) ;#4, SYS$FAO ; MOVW 8(R4), (R4) ;OUTPUT_SIZE, OUTPUT_DESC ; 3278 PUSHL R4 ;R4 ; 3279 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 36$: CMPL R2, #1 ;R2, #1 ; 3282 BEQL 37$ ;37$ ; CMPL R2, #6 ;R2, #6 ; BEQL 37$ ;37$ ; CMPL R2, #16 ;R2, #16 ; BNEQ 40$ ;40$ ; 37$: MOVL #17694800, (R4) ;#17694800, OUTPUT_DESC ; 3284 MOVAB -80(R4), 4(R4) ;OUTPUT_LINE, OUTPUT_DESC+4 ; TSTW (R9) ;TERM_DESC ; 3286 BEQL 38$ ;38$ ; PUSHL R9 ;R9 ; 3288 BRB 39$ ;39$ ; 38$: PUSHAB 460(R5) ;P.AEP ; 3290 39$: PUSHL R4 ;R4 ; PUSHAB 8(R4) ;OUTPUT_SIZE ; PUSHAB -312(R5) ;SHOW_LIN_MSG ; CALLS #4, (R8) ;#4, SYS$FAO ; MOVW 8(R4), (R4) ;OUTPUT_SIZE, OUTPUT_DESC ; 3292 PUSHL R4 ;R4 ; 3293 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 40$: CMPL R2, #1 ;R2, #1 ; 3296 BEQL 41$ ;41$ ; CMPL R2, #7 ;R2, #7 ; BEQL 41$ ;41$ ; CMPL R2, #16 ;R2, #16 ; BNEQ 42$ ;42$ ; 41$: PUSHAB G^ECHO_FLAG ;ECHO_FLAG ; 3297 PUSHAB -284(R5) ;SHOW_ECH_MSG ; CALLS #2, 341(R6) ;#2, OUTPUT_TRUE_FALSE ; 42$: CMPL R2, #1 ;R2, #1 ; 3299 BEQL 43$ ;43$ ; CMPL R2, #10 ;R2, #10 ; BEQL 43$ ;43$ ; CMPL R2, #16 ;R2, #16 ; BNEQ 51$ ;51$ ; 43$: MOVL #17694800, (R4) ;#17694800, OUTPUT_DESC ; 3301 MOVAB -80(R4), 4(R4) ;OUTPUT_LINE, OUTPUT_DESC+4 ; MOVL G^PARITY_TYPE, R0 ;PARITY_TYPE, R0 ; 3310 CMPL R0, #2 ;R0, #2 ; BNEQ 44$ ;44$ ; MOVAB -244(R5), R1 ;PAR_EVEN, R1 ; BRB 47$ ;47$ ; 44$: CMPL R0, #3 ;R0, #3 ; BNEQ 45$ ;45$ ; MOVAB -232(R5), R1 ;PAR_ODD, R1 ; BRB 47$ ;47$ ; 45$: TSTL R0 ;R0 ; BNEQ 46$ ;46$ ; MOVAB -192(R5), R1 ;PAR_NONE, R1 ; BRB 47$ ;47$ ; 46$: CMPL R0, #1 ;R0, #1 ; BNEQ 48$ ;48$ ; MOVAB -220(R5), R1 ;PAR_MARK, R1 ; 47$: PUSHL R1 ;R1 ; BRB 50$ ;50$ ; 48$: CMPL R0, #4 ;R0, #4 ; BNEQ 49$ ;49$ ; MOVAB -204(R5), R0 ;PAR_SPACE, R0 ; PUSHL R0 ;R0 ; BRB 50$ ;50$ ; 49$: MNEGL #1, -(SP) ;#1, -(SP) ; 50$: PUSHL R4 ;R4 ; PUSHAB 8(R4) ;OUTPUT_SIZE ; PUSHAB -256(R5) ;SHOW_PAR_MSG ; CALLS #4, (R8) ;#4, SYS$FAO ; MOVW 8(R4), (R4) ;OUTPUT_SIZE, OUTPUT_DESC ; 3311 PUSHL R4 ;R4 ; 3312 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; 51$: CMPL R2, #1 ;R2, #1 ; 3315 BEQL 52$ ;52$ ; CMPL R2, #11 ;R2, #11 ; BEQL 52$ ;52$ ; CMPL R2, #15 ;R2, #15 ; BNEQ 53$ ;53$ ; 52$: PUSHAB -168(R5) ;SHOW_RTY_HDR ; 3317 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; PUSHL G^SI_RETRIES ;SI_RETRIES ; 3318 PUSHAB -128(R5) ;SHOW_RTY_INI_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^PKT_RETRIES ;PKT_RETRIES ; 3319 PUSHAB -88(R5) ;SHOW_RTY_PKT_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; 53$: CMPL R2, #1 ;R2, #1 ; 3322 BEQL 54$ ;54$ ; CMPL R2, #8 ;R2, #8 ; BEQL 54$ ;54$ ; CMPL R2, #15 ;R2, #15 ; BEQL 54$ ;54$ ; BRW 62$ ;62$ ; 54$: PUSHAB -36(R5) ;SHOW_SND_HDR ; 3324 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; PUSHL G^SND_PKT_SIZE ;SND_PKT_SIZE ; 3325 BGEQ 55$ ;55$ ; MNEGL (SP), (SP) ;(SP), (SP) ; 55$: PUSHL R5 ;R5 ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^SND_NPAD ;SND_NPAD ; 3326 BGEQ 56$ ;56$ ; MNEGL (SP), (SP) ;(SP), (SP) ; 56$: PUSHAB 36(R5) ;SHOW_PAD_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^SND_PADCHAR ;SND_PADCHAR ; 3327 BGEQ 57$ ;57$ ; MNEGL (SP), (SP) ;(SP), (SP) ; 57$: PUSHAB 80(R5) ;SHOW_PDC_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^SND_TIMEOUT ;SND_TIMEOUT ; 3328 BGEQ 58$ ;58$ ; MNEGL (SP), (SP) ;(SP), (SP) ; 58$: PUSHAB 112(R5) ;SHOW_TIM_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^SND_EOL ;SND_EOL ; 3329 BGEQ 59$ ;59$ ; MNEGL (SP), (SP) ;(SP), (SP) ; 59$: PUSHAB 160(R5) ;SHOW_EOL_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^SND_QUOTE_CHR ;SND_QUOTE_CHR ; 3330 BGEQ 60$ ;60$ ; MNEGL (SP), (SP) ;(SP), (SP) ; 60$: PUSHAB 204(R5) ;SHOW_QUO_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^SND_SOH ;SND_SOH ; 3331 BGEQ 61$ ;61$ ; MNEGL (SP), (SP) ;(SP), (SP) ; 61$: PUSHAB 244(R5) ;SHOW_SOH_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; 62$: CMPL R2, #1 ;R2, #1 ; 3334 BEQL 63$ ;63$ ; CMPL R2, #9 ;R2, #9 ; BEQL 63$ ;63$ ; CMPL R2, #15 ;R2, #15 ; BNEQ 64$ ;64$ ; 63$: PUSHAB -60(R5) ;SHOW_REC_HDR ; 3336 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; PUSHL G^RCV_PKT_SIZE ;RCV_PKT_SIZE ; 3337 PUSHL R5 ;R5 ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^RCV_NPAD ;RCV_NPAD ; 3338 PUSHAB 36(R5) ;SHOW_PAD_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^RCV_PADCHAR ;RCV_PADCHAR ; 3339 PUSHAB 80(R5) ;SHOW_PDC_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^RCV_TIMEOUT ;RCV_TIMEOUT ; 3340 PUSHAB 112(R5) ;SHOW_TIM_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^RCV_EOL ;RCV_EOL ; 3341 PUSHAB 160(R5) ;SHOW_EOL_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^RCV_QUOTE_CHR ;RCV_QUOTE_CHR ; 3342 PUSHAB 204(R5) ;SHOW_QUO_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^RCV_8QUOTE_CHR ;RCV_8QUOTE_CHR ; 3343 PUSHAB 292(R5) ;SHOW_8QU_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; PUSHL G^RCV_SOH ;RCV_SOH ; 3344 PUSHAB 244(R5) ;SHOW_SOH_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; 64$: CMPL R2, #1 ;R2, #1 ; 3347 BEQL 65$ ;65$ ; CMPL R2, #18 ;R2, #18 ; BNEQ 66$ ;66$ ; 65$: PUSHAB 320(R5) ;SHOW_TRN_HDR ; 3349 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; MOVL #17694800, (R4) ;#17694800, OUTPUT_DESC ; 3350 MOVAB -80(R4), 4(R4) ;OUTPUT_LINE, OUTPUT_DESC+4 ; PUSHAB G^TRANS_DELAY ;TRANS_DELAY ; 3351 PUSHL #1 ;#1 ; PUSHL R4 ;R4 ; PUSHAB 8(R4) ;OUTPUT_SIZE ; PUSHAB 372(R5) ;SHOW_TRD_MSG ; CALLS #5, (R8) ;#5, SYS$FAO ; MOVW 8(R4), (R4) ;OUTPUT_SIZE, OUTPUT_DESC ; 3352 PUSHL R4 ;R4 ; 3353 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVW R0, R3 ;R0, STATUS ; PUSHAB G^TRANS_ECHO_FLAG ;TRANS_ECHO_FLAG ; 3354 PUSHAB 400(R5) ;SHOW_TRE_MSG ; CALLS #2, 341(R6) ;#2, OUTPUT_TRUE_FALSE ; 66$: CMPL R2, #1 ;R2, #1 ; 3357 BEQL 67$ ;67$ ; CMPL R2, #15 ;R2, #15 ; BNEQ 68$ ;68$ ; 67$: PUSHL G^SET_REPT_CHR ;SET_REPT_CHR ; 3359 PUSHAB 448(R5) ;SHOW_RPT_MSG ; CALLS #2, (R6) ;#2, OUTPUT_LONG_WORD ; 68$: RET ; ; 3364 ; Routine Size: 1224 bytes, Routine Base: $CODE$ + 085F ; 3365 1 %SBTTL 'Command execution -- COMND_STATUS' ; 3366 1 ROUTINE COMND_STATUS : NOVALUE = ; 3367 1 ; 3368 1 !++ ; 3369 1 ! FUNCTIONAL DESCRIPTION: ; 3370 1 ! ; 3371 1 ! This routine will display the status of Kermit-32. ; 3372 1 ! ; 3373 1 ! CALLING SEQUENCE: ; 3374 1 ! ; 3375 1 ! COMND_STATUS (); ; 3376 1 ! ; 3377 1 ! INPUT PARAMETERS: ; 3378 1 ! ; 3379 1 ! None. ; 3380 1 ! ; 3381 1 ! IMPLICIT INPUTS: ; 3382 1 ! ; 3383 1 ! None. ; 3384 1 ! ; 3385 1 ! OUTPUT PARAMETERS: ; 3386 1 ! ; 3387 1 ! None. ; 3388 1 ! ; 3389 1 ! IMPLICIT OUTPUTS: ; 3390 1 ! ; 3391 1 ! None. ; 3392 1 ! ; 3393 1 ! COMPLETION CODES: ; 3394 1 ! ; 3395 1 ! None. ; 3396 1 ! ; 3397 1 ! SIDE EFFECTS: ; 3398 1 ! ; 3399 1 ! None. ; 3400 1 ! ; 3401 1 !-- ; 3402 1 ; 3403 2 BEGIN ; 3404 2 ; 3405 2 LOCAL ; 3406 2 STATUS, ! Status returned by system call ; 3407 2 POINTER, ! Pointer to the LAST_ERROR text ; 3408 2 CHAR_COUNT; ! Character count ; 3409 2 ; 3410 2 BIND ; 3411 2 TEXT_CR = %ASCID'', ; 3412 2 TEXT_BAUD = %ASCID' Effective data rate !ZL baud', ; 3413 2 TEXT_NAKS_SENT = %ASCID' NAKs received !ZL', ; 3414 2 TEXT_NAKS_RCV = %ASCID' NAKs sent !ZL', ; 3415 2 TEXT_PKTS_SENT = %ASCID' Packets sent !ZL', ; 3416 2 TEXT_PKTS_RCV = %ASCID' Packets received !ZL', ; 3417 2 TEXT_CHR_SENT = %ASCID' Characters sent !ZL', ; 3418 2 TEXT_DATA_CHAR_SENT = %ASCID' Data characters sent !ZL', ; 3419 2 TEXT_DATA_CHAR_RCV = %ASCID' Data characters received !ZL', ; 3420 2 TEXT_CHR_RCV = %ASCID' Characters received !ZL', ; 3421 2 TEXT_TOTAL_HDR = %ASCID'Totals since Kermit was started', ; 3422 2 TEXT_XFR_HDR = %ASCID'Totals for the last transfer'; ; 3423 2 ; 3424 2 STATUS = LIB$PUT_OUTPUT (TEXT_CR); ; 3425 2 STATUS = LIB$PUT_OUTPUT (TEXT_XFR_HDR); ; 3426 2 OUTPUT_LONG_WORD (TEXT_CHR_SENT, .SMSG_TOTAL_CHARS); ; 3427 2 OUTPUT_LONG_WORD (TEXT_DATA_CHAR_SENT, .SMSG_DATA_CHARS); ; 3428 2 OUTPUT_LONG_WORD (TEXT_NAKS_SENT, .SMSG_NAKS); ; 3429 2 OUTPUT_LONG_WORD (TEXT_PKTS_SENT, .SMSG_COUNT); ; 3430 2 OUTPUT_LONG_WORD (TEXT_CHR_RCV, .RMSG_TOTAL_CHARS); ; 3431 2 OUTPUT_LONG_WORD (TEXT_DATA_CHAR_RCV, .RMSG_DATA_CHARS); ; 3432 2 OUTPUT_LONG_WORD (TEXT_NAKS_RCV, .RMSG_NAKS); ; 3433 2 OUTPUT_LONG_WORD (TEXT_PKTS_RCV, .RMSG_COUNT); ; 3434 2 ; 3435 2 IF .XFR_TIME NEQ 0 ; 3436 2 THEN ; 3437 2 OUTPUT_LONG_WORD (TEXT_BAUD, ; 3438 5 (((IF .RMSG_DATA_CHARS LEQ .SMSG_DATA_CHARS THEN .SMSG_DATA_CHARS ELSE .RMSG_DATA_CHARS)*10)/(( ; 3439 2 .XFR_TIME + 500)/1000))); ; 3440 2 ; 3441 2 STATUS = LIB$PUT_OUTPUT (TEXT_CR); ; 3442 2 STATUS = LIB$PUT_OUTPUT (TEXT_TOTAL_HDR); ; 3443 2 OUTPUT_LONG_WORD (TEXT_CHR_SENT, .SND_TOTAL_CHARS); ; 3444 2 OUTPUT_LONG_WORD (TEXT_DATA_CHAR_SENT, .SND_DATA_CHARS); ; 3445 2 OUTPUT_LONG_WORD (TEXT_NAKS_SENT, .SND_NAKS); ; 3446 2 OUTPUT_LONG_WORD (TEXT_PKTS_SENT, .SND_COUNT); ; 3447 2 OUTPUT_LONG_WORD (TEXT_CHR_RCV, .RCV_TOTAL_CHARS); ; 3448 2 OUTPUT_LONG_WORD (TEXT_DATA_CHAR_RCV, .RCV_DATA_CHARS); ; 3449 2 OUTPUT_LONG_WORD (TEXT_NAKS_RCV, .RCV_NAKS); ; 3450 2 OUTPUT_LONG_WORD (TEXT_PKTS_RCV, .RCV_COUNT); ; 3451 2 ; 3452 2 IF .TOTAL_TIME NEQ 0 ; 3453 2 THEN ; 3454 2 OUTPUT_LONG_WORD (TEXT_BAUD, ; 3455 2 (((.RCV_DATA_CHARS + .SND_DATA_CHARS)*10)/((.TOTAL_TIME + 500)/1000))); ; 3456 2 ; 3457 2 ! ; 3458 2 ! Output the error text if there is any ; 3459 2 ! ; 3460 2 POINTER = CH$PTR (LAST_ERROR); ; 3461 2 CHAR_COUNT = 0; ; 3462 2 ; 3463 2 WHILE CH$RCHAR_A (POINTER) NEQ CHR_NUL DO ; 3464 2 CHAR_COUNT = .CHAR_COUNT + 1; ; 3465 2 ; 3466 2 IF .CHAR_COUNT NEQ 0 ; 3467 2 THEN ; 3468 3 BEGIN ; 3469 3 INIT_STR_DESC (OUTPUT_DESC, OUTPUT_LINE, OUT_BFR_LENGTH); ; 3470 3 STATUS = $FAO (%ASCID'Last error: !AD', OUTPUT_SIZE, OUTPUT_DESC, .CHAR_COUNT, LAST_ERROR); ; 3471 3 ; 3472 3 IF NOT .STATUS ; 3473 3 THEN ; 3474 3 LIB$SIGNAL (.STATUS) ; 3475 3 ELSE ; 3476 4 BEGIN ; 3477 4 OUTPUT_DESC [DSC$W_LENGTH] = .OUTPUT_SIZE; ; 3478 4 STATUS = LIB$PUT_OUTPUT (OUTPUT_DESC); ; 3479 4 ; 3480 4 IF NOT .STATUS THEN LIB$SIGNAL (.STATUS); ; 3481 4 ; 3482 3 END; ; 3483 3 ; 3484 2 END; ; 3485 2 ; 3486 1 END; ! End of SHOW_STATUS .PSECT $PLIT$,NOWRT,NOEXE,2 P.AES: .BLKB 0 ; ; P.AER: .LONG 17694720 ; ; .ADDRESS P.AES ; ; P.AEU: .ASCII \ Effective data rate\<9>\!ZL baud\<0><0><0> ; ; P.AET: .LONG 17694749 ; ; .ADDRESS P.AEU ; ; P.AEW: .ASCII \ NAKs received\<9><9>\!ZL\<0> ; ; P.AEV: .LONG 17694739 ; ; .ADDRESS P.AEW ; ; P.AEY: .ASCII \ NAKs sent\<9><9>\!ZL\<0> ; ; P.AEX: .LONG 17694735 ; ; .ADDRESS P.AEY ; ; P.AFA: .ASCII \ Packets sent\<9><9>\!ZL\<0><0> ; ; P.AEZ: .LONG 17694738 ; ; .ADDRESS P.AFA ; ; P.AFC: .ASCII \ Packets received\<9>\!ZL\<0><0><0> ; ; P.AFB: .LONG 17694741 ; ; .ADDRESS P.AFC ; ; P.AFE: .ASCII \ Characters sent\<9>\!ZL\ ; ; P.AFD: .LONG 17694740 ; ; .ADDRESS P.AFE ; ; P.AFG: .ASCII \ Data characters sent\<9>\!ZL\<0><0><0> ; ; P.AFF: .LONG 17694745 ; ; .ADDRESS P.AFG ; ; P.AFI: .ASCII \ Data characters received !ZL\<0><0><0> ; ; P.AFH: .LONG 17694749 ; ; .ADDRESS P.AFI ; ; P.AFK: .ASCII \ Characters received\<9>\!ZL\ ; ; P.AFJ: .LONG 17694744 ; ; .ADDRESS P.AFK ; ; P.AFM: .ASCII \Totals since Kermit was started\<0> ; ; P.AFL: .LONG 17694751 ; ; .ADDRESS P.AFM ; ; P.AFO: .ASCII \Totals for the last transfer\ ; ; P.AFN: .LONG 17694748 ; ; .ADDRESS P.AFO ; ; P.AFQ: .ASCII \Last error: !AD\<0> ; ; P.AFP: .LONG 17694735 ; ; .ADDRESS P.AFQ ; ; TEXT_CR= P.AER TEXT_BAUD= P.AET TEXT_NAKS_SENT= P.AEV TEXT_NAKS_RCV= P.AEX TEXT_PKTS_SENT= P.AEZ TEXT_PKTS_RCV= P.AFB TEXT_CHR_SENT= P.AFD TEXT_DATA_CHAR_SENT=P.AFF TEXT_DATA_CHAR_RCV= P.AFH TEXT_CHR_RCV= P.AFJ TEXT_TOTAL_HDR= P.AFL TEXT_XFR_HDR= P.AFN .PSECT $CODE$,NOWRT,2 ;COMND_STATUS U.8: .WORD ^M ;Save R2,R3,R4,R5,R6,R7,R8,R9,R10,R11 ; 3366 MOVAB G^RCV_DATA_CHARS, R11 ;RCV_DATA_CHARS, R11 ; MOVAB G^SND_DATA_CHARS, R10 ;SND_DATA_CHARS, R10 ; MOVAB G^RMSG_DATA_CHARS, R9 ;RMSG_DATA_CHARS, R9 ; MOVAB G^SMSG_DATA_CHARS, R8 ;SMSG_DATA_CHARS, R8 ; MOVAB G^LIB$PUT_OUTPUT, R7 ;LIB$PUT_OUTPUT, R7 ; MOVAB G^U.53, R6 ;U.53, R6 ; MOVAB W^OUTPUT_LONG_WORD, R5 ;OUTPUT_LONG_WORD, R5 ; MOVAB G^TEXT_CR, R4 ;TEXT_CR, R4 ; PUSHL R4 ;R4 ; 3424 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVL R0, R3 ;R0, STATUS ; PUSHAB 364(R4) ;TEXT_XFR_HDR ; 3425 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVL R0, R3 ;R0, STATUS ; PUSHL G^SMSG_TOTAL_CHARS ;SMSG_TOTAL_CHARS ; 3426 PUSHAB 180(R4) ;TEXT_CHR_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL (R8) ;SMSG_DATA_CHARS ; 3427 PUSHAB 216(R4) ;TEXT_DATA_CHAR_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL G^SMSG_NAKS ;SMSG_NAKS ; 3428 PUSHAB 68(R4) ;TEXT_NAKS_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL G^SMSG_COUNT ;SMSG_COUNT ; 3429 PUSHAB 120(R4) ;TEXT_PKTS_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL G^RMSG_TOTAL_CHARS ;RMSG_TOTAL_CHARS ; 3430 PUSHAB 288(R4) ;TEXT_CHR_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL (R9) ;RMSG_DATA_CHARS ; 3431 PUSHAB 256(R4) ;TEXT_DATA_CHAR_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL G^RMSG_NAKS ;RMSG_NAKS ; 3432 PUSHAB 92(R4) ;TEXT_NAKS_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL G^RMSG_COUNT ;RMSG_COUNT ; 3433 PUSHAB 152(R4) ;TEXT_PKTS_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; MOVL G^XFR_TIME, R0 ;XFR_TIME, R0 ; 3435 BEQL 2$ ;2$ ; MOVL (R9), R2 ;RMSG_DATA_CHARS, R2 ; 3438 MOVL (R8), R1 ;SMSG_DATA_CHARS, R1 ; CMPL R2, R1 ;R2, R1 ; BLEQ 1$ ;1$ ; MOVL R2, R1 ;R2, R1 ; 1$: MULL2 #10, R1 ;#10, R1 ; MOVAB 500(R0), R0 ;500(R0), R0 ; DIVL2 #1000, R0 ;#1000, R0 ; 3439 DIVL3 R0, R1, -(SP) ;R0, R1, -(SP) ; 3438 PUSHAB 40(R4) ;TEXT_BAUD ; 3437 CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; 2$: PUSHL R4 ;R4 ; 3441 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVL R0, R3 ;R0, STATUS ; PUSHAB 328(R4) ;TEXT_TOTAL_HDR ; 3442 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVL R0, R3 ;R0, STATUS ; PUSHL G^SND_TOTAL_CHARS ;SND_TOTAL_CHARS ; 3443 PUSHAB 180(R4) ;TEXT_CHR_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL (R10) ;SND_DATA_CHARS ; 3444 PUSHAB 216(R4) ;TEXT_DATA_CHAR_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL G^SND_NAKS ;SND_NAKS ; 3445 PUSHAB 68(R4) ;TEXT_NAKS_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL G^SND_COUNT ;SND_COUNT ; 3446 PUSHAB 120(R4) ;TEXT_PKTS_SENT ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL G^RCV_TOTAL_CHARS ;RCV_TOTAL_CHARS ; 3447 PUSHAB 288(R4) ;TEXT_CHR_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL (R11) ;RCV_DATA_CHARS ; 3448 PUSHAB 256(R4) ;TEXT_DATA_CHAR_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL G^RCV_NAKS ;RCV_NAKS ; 3449 PUSHAB 92(R4) ;TEXT_NAKS_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; PUSHL G^RCV_COUNT ;RCV_COUNT ; 3450 PUSHAB 152(R4) ;TEXT_PKTS_RCV ; CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; MOVL G^TOTAL_TIME, R0 ;TOTAL_TIME, R0 ; 3452 BEQL 3$ ;3$ ; ADDL3 (R10), (R11), R1 ;SND_DATA_CHARS, RCV_DATA_CHARS, R1 ; 3455 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 ; 3454 CALLS #2, (R5) ;#2, OUTPUT_LONG_WORD ; 3$: MOVAB G^LAST_ERROR, R1 ;LAST_ERROR, POINTER ; 3460 CLRL R0 ;CHAR_COUNT ; 3461 4$: MOVZBL (R1)+, R2 ;(POINTER)+, R2 ; 3463 BEQL 5$ ;5$ ; INCL R0 ;CHAR_COUNT ; 3464 BRB 4$ ;4$ ; 5$: TSTL R0 ;CHAR_COUNT ; 3466 BEQL 7$ ;7$ ; MOVL #17694800, (R6) ;#17694800, OUTPUT_DESC ; 3469 MOVAB -80(R6), 4(R6) ;OUTPUT_LINE, OUTPUT_DESC+4 ; PUSHAB G^LAST_ERROR ;LAST_ERROR ; 3470 PUSHL R0 ;CHAR_COUNT ; PUSHL R6 ;R6 ; PUSHAB 8(R6) ;OUTPUT_SIZE ; PUSHAB 388(R4) ;P.AFP ; CALLS #5, G^SYS$FAO ;#5, SYS$FAO ; MOVL R0, R3 ;R0, STATUS ; BLBC R3, 6$ ;STATUS, 6$ ; 3472 MOVW 8(R6), (R6) ;OUTPUT_SIZE, OUTPUT_DESC ; 3477 PUSHL R6 ;R6 ; 3478 CALLS #1, (R7) ;#1, LIB$PUT_OUTPUT ; MOVL R0, R3 ;R0, STATUS ; BLBS R3, 7$ ;STATUS, 7$ ; 3480 6$: PUSHL R3 ;STATUS ; CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL ; 7$: RET ; ; 3486 ; Routine Size: 453 bytes, Routine Base: $CODE$ + 0D27 ; 3487 1 %SBTTL 'GET_REM_ARGS - Get extra arguments for remote commands' ; 3488 1 ROUTINE GET_REM_ARGS (LOCAL_FLAG) = ; 3489 1 ; 3490 1 !++ ; 3491 1 ! FUNCTIONAL DESCRIPTION: ; 3492 1 ! ; 3493 1 ! This routine will get any extra arguments required for remote commands. ; 3494 1 !It will prompt the user and get the input from SYS$COMMAND:. ; 3495 1 ! ; 3496 1 ! CALLING SEQUENCE: ; 3497 1 ! ; 3498 1 ! STATUS = GET_REM_ARGS (LOCAL_FLAG); ; 3499 1 ! ; 3500 1 ! INPUT PARAMETERS: ; 3501 1 ! ; 3502 1 ! LOCAL_FLAG - If true, this is for a LOCAL xxx command. Only get the ; 3503 1 ! arguments we know we need for local commands. Otherwise ; 3504 1 ! get all possible arguments. ; 3505 1 ! ; 3506 1 ! IMPLICIT INPUTS: ; 3507 1 ! ; 3508 1 ! REM_TYPE - Type of remote command to get arguments for. ; 3509 1 ! ; 3510 1 ! OUPTUT PARAMETERS: ; 3511 1 ! ; 3512 1 ! None. ; 3513 1 ! ; 3514 1 ! IMPLICIT OUTPUTS: ; 3515 1 ! ; 3516 1 ! GEN_xDATA, GEN_xSIZE - Text and sizes of arguments ; 3517 1 ! ; 3518 1 ! COMPLETION CODES: ; 3519 1 ! ; 3520 1 ! Status values from subroutines called if in error. ; 3521 1 ! ; 3522 1 ! SIDE EFFECTS: ; 3523 1 ! ; 3524 1 ! None. ; 3525 1 ! ; 3526 1 !-- ; 3527 1 ; 3528 2 BEGIN ; 3529 2 ; 3530 2 EXTERNAL ROUTINE ; 3531 2 GET_COMMAND; ! Get line from SYS$COMMAND: ; 3532 2 ; 3533 2 LOCAL ; 3534 2 GEN_2DESC : BLOCK [8, BYTE], ! Descriptor for second argument ; 3535 2 GEN_3DESC : BLOCK [8, BYTE], ! Descriptor for third argument ; 3536 2 STATUS; ! Random status values ; 3537 2 ; 3538 2 ! ; 3539 2 ! Set up descriptors for second and third arguments ; 3540 2 ! ; 3541 2 INIT_STR_DESC (GEN_2DESC, GEN_2DATA, MAX_MSG); ; 3542 2 INIT_STR_DESC (GEN_3DESC, GEN_3DATA, MAX_MSG); ; 3543 2 ; 3544 2 SELECTONE .REM_TYPE OF ; 3545 2 SET ; 3546 2 ; 3547 2 [GC_CONNECT] : ; 3548 2 ; 3549 2 IF NOT .LOCAL_FLAG AND .GEN_1SIZE GTR 0 ; 3550 2 THEN ; 3551 2 RETURN GET_COMMAND (GEN_2DESC, %ASCID'Password: ', ; 3552 2 GEN_2SIZE, FALSE); ; 3553 2 ; 3554 2 [GC_COPY, GC_RENAME] : ; 3555 2 ; 3556 2 WHILE TRUE DO ; 3557 3 BEGIN ; 3558 3 STATUS = GET_COMMAND (GEN_2DESC, %ASCID'New file: ', GEN_2SIZE, TRUE); ; 3559 3 ; 3560 3 IF NOT .STATUS OR .GEN_2SIZE NEQ 0 THEN RETURN .STATUS; ; 3561 3 ; 3562 2 END; ; 3563 2 ; 3564 2 [GC_LGN] : ; 3565 3 BEGIN ; 3566 3 STATUS = GET_COMMAND (GEN_3DESC, %ASCID'Account: ', GEN_3SIZE, TRUE); ; 3567 3 ; 3568 3 IF NOT .STATUS THEN RETURN .STATUS; ; 3569 3 ; 3570 3 RETURN GET_COMMAND (GEN_2DESC, %ASCID'Password: ', GEN_2SIZE, FALSE); ; 3571 2 END; ; 3572 2 ; 3573 2 [GC_SEND_MSG] : ; 3574 2 RETURN GET_COMMAND (GEN_2DESC, %ASCID'Message: ', GEN_2SIZE, TRUE); ; 3575 2 ; 3576 2 [GC_WHO] : ; 3577 2 ; 3578 2 IF NOT .LOCAL_FLAG THEN RETURN GET_COMMAND (GEN_2DESC, %ASCID'Options: ', GEN_2SIZE, TRUE); ; 3579 2 ; 3580 2 TES; ; 3581 2 ; 3582 2 ! ; 3583 2 ! If we fall out of the SELECT, we don't need any arguments ; 3584 2 ! ; 3585 2 RETURN TRUE; ; 3586 1 END; ! End of GET_REM_ARGS .PSECT $PLIT$,NOWRT,NOEXE,2 P.AFS: .ASCII \Password: \<0><0> ; ; P.AFR: .LONG 17694730 ; ; .ADDRESS P.AFS ; ; P.AFU: .ASCII \New file: \<0><0> ; ; P.AFT: .LONG 17694730 ; ; .ADDRESS P.AFU ; ; P.AFW: .ASCII \Account: \<0><0><0> ; ; P.AFV: .LONG 17694729 ; ; .ADDRESS P.AFW ; ; P.AFY: .ASCII \Password: \<0><0> ; ; P.AFX: .LONG 17694730 ; ; .ADDRESS P.AFY ; ; P.AGA: .ASCII \Message: \<0><0><0> ; ; P.AFZ: .LONG 17694729 ; ; .ADDRESS P.AGA ; ; P.AGC: .ASCII \Options: \<0><0><0> ; ; P.AGB: .LONG 17694729 ; ; .ADDRESS P.AGC ; ; .PSECT $CODE$,NOWRT,2 ;GET_REM_ARGS U.11: .WORD ^M ;Save R2,R3,R4 ; 3488 MOVAB G^GET_COMMAND, R4 ;GET_COMMAND, R4 ; MOVAB G^P.AFR, R3 ;P.AFR, R3 ; MOVAB G^GEN_2SIZE, R2 ;GEN_2SIZE, R2 ; SUBL2 #12, SP ;#12, SP ; MOVL #17694816, 4(SP) ;#17694816, GEN_2DESC ; 3541 MOVAB G^GEN_2DATA, 8(SP) ;GEN_2DATA, GEN_2DESC+4 ; PUSHL #17694816 ;#17694816 ; 3542 MOVAB G^GEN_3DATA, 4(SP) ;GEN_3DATA, GEN_3DESC+4 ; MOVL G^U.50, R1 ;U.50, R1 ; 3544 CMPL R1, #9 ;R1, #9 ; 3547 BNEQ 1$ ;1$ ; BLBS 4(AP), 7$ ;LOCAL_FLAG, 7$ ; 3549 TSTL G^GEN_1SIZE ;GEN_1SIZE ; BLEQ 7$ ;7$ ; CLRL -(SP) ;-(SP) ; 3551 PUSHL R2 ;R2 ; PUSHL R3 ;R3 ; BRB 6$ ;6$ ; 1$: CMPL R1, #10 ;R1, #10 ; 3554 BLSS 3$ ;3$ ; CMPL R1, #11 ;R1, #11 ; BGTR 3$ ;3$ ; 2$: PUSHL #1 ;#1 ; 3558 PUSHL R2 ;R2 ; PUSHAB 20(R3) ;P.AFT ; PUSHAB 20(SP) ;GEN_2DESC ; CALLS #4, (R4) ;#4, GET_COMMAND ; BLBC R0, 8$ ;STATUS, 8$ ; 3560 TSTL (R2) ;GEN_2SIZE ; BEQL 2$ ;2$ ; RET ; ; 3$: CMPL R1, #8 ;R1, #8 ; 3564 BNEQ 4$ ;4$ ; PUSHL #1 ;#1 ; 3566 PUSHAB G^GEN_3SIZE ;GEN_3SIZE ; PUSHAB 40(R3) ;P.AFV ; PUSHAB 12(SP) ;GEN_3DESC ; CALLS #4, (R4) ;#4, GET_COMMAND ; BLBC R0, 8$ ;STATUS, 8$ ; 3568 CLRL -(SP) ;-(SP) ; 3570 PUSHL R2 ;R2 ; PUSHAB 60(R3) ;P.AFX ; BRB 6$ ;6$ ; 4$: CMPL R1, #13 ;R1, #13 ; 3573 BNEQ 5$ ;5$ ; PUSHL #1 ;#1 ; 3574 PUSHL R2 ;R2 ; PUSHAB 80(R3) ;P.AFZ ; BRB 6$ ;6$ ; 5$: CMPL R1, #12 ;R1, #12 ; 3576 BNEQ 7$ ;7$ ; BLBS 4(AP), 7$ ;LOCAL_FLAG, 7$ ; 3578 PUSHL #1 ;#1 ; PUSHL R2 ;R2 ; PUSHAB 100(R3) ;P.AGB ; 6$: PUSHAB 20(SP) ;GEN_2DESC ; CALLS #4, (R4) ;#4, GET_COMMAND ; RET ; ; 7$: MOVL #1, R0 ;#1, R0 ; 3585 8$: RET ; ; 3586 ; Routine Size: 194 bytes, Routine Base: $CODE$ + 0EEC ; 3587 1 %SBTTL 'TPARSE support -- STORE_DEBUG' ; 3588 1 ROUTINE STORE_DEBUG = ; 3589 1 ; 3590 1 !++ ; 3591 1 ! FUNCTIONAL DESCRIPTION: ; 3592 1 ! ; 3593 1 ! This routine will store the debug flag into the DEBUG_FLAG ; 3594 1 ! location. ; 3595 1 ! ; 3596 1 ! CALLING SEQUENCE: ; 3597 1 ! ; 3598 1 ! Standard LIB$TPARSE routine call. ; 3599 1 ! ; 3600 1 ! INPUT PARAMETERS: ; 3601 1 ! ; 3602 1 ! None. ; 3603 1 ! ; 3604 1 ! IMPLICIT INPUTS: ; 3605 1 ! ; 3606 1 ! None. ; 3607 1 ! ; 3608 1 ! OUTPUT PARAMETERS: ; 3609 1 ! ; 3610 1 ! None. ; 3611 1 ! ; 3612 1 ! IMPLICIT OUTPUTS: ; 3613 1 ! ; 3614 1 ! None. ; 3615 1 ! ; 3616 1 ! COMPLETION CODES: ; 3617 1 ! ; 3618 1 ! None. ; 3619 1 ! ; 3620 1 ! SIDE EFFECTS: ; 3621 1 ! ; 3622 1 ! None. ; 3623 1 ! ; 3624 1 !-- ; 3625 1 ; 3626 2 BEGIN ; 3627 2 TPARSE_ARGS; ; 3628 2 DEBUG_FLAG = .AP [TPA$L_PARAM]; ; 3629 2 RETURN SS$_NORMAL; ; 3630 1 END; ! End of STORE_DEBUG ;STORE_DEBUG U.17: .WORD ^M<> ;Save nothing ; 3588 MOVL 32(AP), G^DEBUG_FLAG ;32(AP), DEBUG_FLAG ; 3628 MOVL #1, R0 ;#1, R0 ; 3629 RET ; ; 3630 ; Routine Size: 14 bytes, Routine Base: $CODE$ + 0FAE ; 3631 1 %SBTTL 'TPARSE support -- STORE_TR_DELAY' ; 3632 1 ROUTINE STORE_TR_DELAY = ! and below ; 3633 1 ; 3634 1 !++ ; 3635 1 ! FUNCTIONAL DESCRIPTION: ; 3636 1 ! ; 3637 1 ! This routine will store the transmit delay into the ; 3638 1 ! TRANS_DELAY location. ; 3639 1 ! ; 3640 1 ! CALLING SEQUENCE: ; 3641 1 ! ; 3642 1 ! Standard LIB$TPARSE routine call. ; 3643 1 ! ; 3644 1 ! INPUT PARAMETERS: ; 3645 1 ! ; 3646 1 ! None. ; 3647 1 ! ; 3648 1 ! IMPLICIT INPUTS: ; 3649 1 ! ; 3650 1 ! None. ; 3651 1 ! ; 3652 1 ! OUTPUT PARAMETERS: ; 3653 1 ! ; 3654 1 ! None. ; 3655 1 ! ; 3656 1 ! IMPLICIT OUTPUTS: ; 3657 1 ! ; 3658 1 ! None. ; 3659 1 ! ; 3660 1 ! COMPLETION CODES: ; 3661 1 ! ; 3662 1 ! None. ; 3663 1 ! ; 3664 1 ! SIDE EFFECTS: ; 3665 1 ! ; 3666 1 ! None. ; 3667 1 ! ; 3668 1 !-- ; 3669 1 ; 3670 2 BEGIN ! ; 3671 2 TPARSE_ARGS; ! ; 3672 2 TRANS_DELAY = .AP [TPA$L_PARAM]; ! ; 3673 2 RETURN SS$_NORMAL; ! ; 3674 1 END; ! End of STORE_TR_DELAY ;STORE_TR_DELAY U.19: .WORD ^M<> ;Save nothing ; 3632 MOVL 32(AP), G^TRANS_DELAY ;32(AP), TRANS_DELAY ; 3672 MOVL #1, R0 ;#1, R0 ; 3673 RET ; ; 3674 ; Routine Size: 14 bytes, Routine Base: $CODE$ + 0FBC ; 3675 1 %SBTTL 'TPARSE support -- STORE_TR_ECHO' ; 3676 1 ROUTINE STORE_TR_ECHO = ! and below ; 3677 1 ; 3678 1 !++ ; 3679 1 ! FUNCTIONAL DESCRIPTION: ; 3680 1 ! ; 3681 1 ! This routine will store the transmit echo flag into the ; 3682 1 ! TRANS_ECHO_FLAG location. ; 3683 1 ! ; 3684 1 ! CALLING SEQUENCE: ; 3685 1 ! ; 3686 1 ! Standard LIB$TPARSE routine call. ; 3687 1 ! ; 3688 1 ! INPUT PARAMETERS: ; 3689 1 ! ; 3690 1 ! None. ; 3691 1 ! ; 3692 1 ! IMPLICIT INPUTS: ; 3693 1 ! ; 3694 1 ! None. ; 3695 1 ! ; 3696 1 ! OUTPUT PARAMETERS: ; 3697 1 ! ; 3698 1 ! None. ; 3699 1 ! ; 3700 1 ! IMPLICIT OUTPUTS: ; 3701 1 ! ; 3702 1 ! None. ; 3703 1 ! ; 3704 1 ! COMPLETION CODES: ; 3705 1 ! ; 3706 1 ! None. ; 3707 1 ! ; 3708 1 ! SIDE EFFECTS: ; 3709 1 ! ; 3710 1 ! None. ; 3711 1 ! ; 3712 1 !-- ; 3713 1 ; 3714 2 BEGIN ! ; 3715 2 TPARSE_ARGS; ! ; 3716 2 TRANS_ECHO_FLAG = .AP [TPA$L_PARAM]; ! ; 3717 2 RETURN SS$_NORMAL; ! ; 3718 1 END; ! End of STORE_TR_ECHO ;STORE_TR_ECHO U.18: .WORD ^M<> ;Save nothing ; 3676 MOVL 32(AP), G^TRANS_ECHO_FLAG ;32(AP), TRANS_ECHO_FLAG ; 3716 MOVL #1, R0 ;#1, R0 ; 3717 RET ; ; 3718 ; Routine Size: 14 bytes, Routine Base: $CODE$ + 0FCA ; 3719 1 ; 3720 1 %SBTTL 'TPARSE support -- STORE_IBM' ; 3721 1 ROUTINE STORE_IBM = ; 3722 1 ; 3723 1 !++ ; 3724 1 ! FUNCTIONAL DESCRIPTION: ; 3725 1 ! ; 3726 1 ! This routine will store the IBM flag into the IBM_FLAG ; 3727 1 ! location. ; 3728 1 ! ; 3729 1 ! CALLING SEQUENCE: ; 3730 1 ! ; 3731 1 ! Standard LIB$TPARSE routine call. ; 3732 1 ! ; 3733 1 ! INPUT PARAMETERS: ; 3734 1 ! ; 3735 1 ! None. ; 3736 1 ! ; 3737 1 ! IMPLICIT INPUTS: ; 3738 1 ! ; 3739 1 ! None. ; 3740 1 ! ; 3741 1 ! OUTPUT PARAMETERS: ; 3742 1 ! ; 3743 1 ! None. ; 3744 1 ! ; 3745 1 ! IMPLICIT OUTPUTS: ; 3746 1 ! ; 3747 1 ! None. ; 3748 1 ! ; 3749 1 ! COMPLETION CODES: ; 3750 1 ! ; 3751 1 ! None. ; 3752 1 ! ; 3753 1 ! SIDE EFFECTS: ; 3754 1 ! ; 3755 1 ! None. ; 3756 1 ! ; 3757 1 !-- ; 3758 1 ; 3759 2 BEGIN ; 3760 2 ; 3761 2 EXTERNAL LITERAL ; 3762 2 IBM_MODE_ECHO : WEAK, ! IBM mode echo value ; 3763 2 IBM_MODE_PARITY : WEAK, ! Default parity ; 3764 2 IBM_MODE_CHARACTER : WEAK; ! And handshake character for ; 3765 2 ; 3766 2 ! IBM mode ; 3767 2 TPARSE_ARGS; ; 3768 2 ; 3769 2 IF .AP [TPA$L_PARAM] ; 3770 2 THEN ; 3771 3 BEGIN ; 3772 3 IBM_CHAR = (IF IBM_MODE_CHARACTER NEQ 0 THEN IBM_MODE_CHARACTER ELSE CHR_DC1); ; 3773 3 PARITY_TYPE = (IF IBM_MODE_PARITY NEQ 0 THEN IBM_MODE_PARITY ELSE PR_MARK); ; 3774 3 ECHO_FLAG = (IF IBM_MODE_ECHO NEQ 0 THEN IBM_MODE_ECHO ELSE TRUE); ; 3775 3 END ; 3776 2 ELSE ; 3777 3 BEGIN ; 3778 3 IBM_CHAR = -1; ! Turn IBM mode off ; 3779 3 ECHO_FLAG = FALSE; ! No local echo ; 3780 3 PARITY_TYPE = PR_NONE; ! and no parity ; 3781 2 END; ; 3782 2 ; 3783 2 RETURN SS$_NORMAL; ; 3784 1 END; ! End of STORE_IBM .WEAK IBM_MODE_ECHO, IBM_MODE_PARITY, IBM_MODE_CHARACTER ;STORE_IBM U.26: .WORD ^M ;Save R2,R3,R4,R5,R6,R7 ; 3721 MOVL #IBM_MODE_CHARACTER, R7 ;#IBM_MODE_CHARACTER, R7 ; MOVAB G^ECHO_FLAG, R6 ;ECHO_FLAG, R6 ; MOVL #IBM_MODE_ECHO, R5 ;#IBM_MODE_ECHO, R5 ; MOVAB G^PARITY_TYPE, R4 ;PARITY_TYPE, R4 ; MOVL #IBM_MODE_PARITY, R3 ;#IBM_MODE_PARITY, R3 ; MOVAB G^IBM_CHAR, R2 ;IBM_CHAR, R2 ; BLBC 32(AP), 7$ ;32(AP), 7$ ; 3769 TSTL R7 ;R7 ; 3772 BEQL 1$ ;1$ ; MOVL R7, R0 ;R7, R0 ; BRB 2$ ;2$ ; 1$: MOVL #17, R0 ;#17, R0 ; 2$: MOVL R0, (R2) ;R0, IBM_CHAR ; TSTL R3 ;R3 ; 3773 BEQL 3$ ;3$ ; MOVL R3, R0 ;R3, R0 ; BRB 4$ ;4$ ; 3$: MOVL #1, R0 ;#1, R0 ; 4$: MOVL R0, (R4) ;R0, PARITY_TYPE ; TSTL R5 ;R5 ; 3774 BEQL 5$ ;5$ ; MOVL R5, R0 ;R5, R0 ; BRB 6$ ;6$ ; 5$: MOVL #1, R0 ;#1, R0 ; 6$: MOVL R0, (R6) ;R0, ECHO_FLAG ; BRB 8$ ;8$ ; 7$: MNEGL #1, (R2) ;#1, IBM_CHAR ; 3778 CLRL (R6) ;ECHO_FLAG ; 3779 CLRL (R4) ;PARITY_TYPE ; 3780 8$: MOVL #1, R0 ;#1, R0 ; 3783 RET ; ; 3784 ; Routine Size: 106 bytes, Routine Base: $CODE$ + 0FD8 ; 3785 1 %SBTTL 'TPARSE support -- STORE_ABT' ; 3786 1 ROUTINE STORE_ABT = ; 3787 1 ; 3788 1 !++ ; 3789 1 ! FUNCTIONAL DESCRIPTION: ; 3790 1 ! ; 3791 1 ! This routine will store the aborted file disposition into ABT_FLAG ; 3792 1 ! ; 3793 1 ! CALLING SEQUENCE: ; 3794 1 ! ; 3795 1 ! Standard LIB$TPARSE routine call. ; 3796 1 ! ; 3797 1 ! INPUT PARAMETERS: ; 3798 1 ! ; 3799 1 ! None. ; 3800 1 ! ; 3801 1 ! IMPLICIT INPUTS: ; 3802 1 ! ; 3803 1 ! None. ; 3804 1 ! ; 3805 1 ! OUTPUT PARAMETERS: ; 3806 1 ! ; 3807 1 ! None. ; 3808 1 ! ; 3809 1 ! IMPLICIT OUTPUTS: ; 3810 1 ! ; 3811 1 ! None. ; 3812 1 ! ; 3813 1 ! COMPLETION CODES: ; 3814 1 ! ; 3815 1 ! None. ; 3816 1 ! ; 3817 1 ! SIDE EFFECTS: ; 3818 1 ! ; 3819 1 ! None. ; 3820 1 ! ; 3821 1 !-- ; 3822 1 ; 3823 2 BEGIN ; 3824 2 TPARSE_ARGS; ; 3825 2 ABT_FLAG = .AP [TPA$L_PARAM]; ; 3826 2 RETURN SS$_NORMAL; ; 3827 1 END; ! End of STORE_ABT ;STORE_ABT U.25: .WORD ^M<> ;Save nothing ; 3786 MOVL 32(AP), G^ABT_FLAG ;32(AP), ABT_FLAG ; 3825 MOVL #1, R0 ;#1, R0 ; 3826 RET ; ; 3827 ; Routine Size: 14 bytes, Routine Base: $CODE$ + 1042 ; 3828 1 %SBTTL 'TPARSE support -- STORE_CHK' ; 3829 1 ROUTINE STORE_CHK = ; 3830 1 ; 3831 1 !++ ; 3832 1 ! FUNCTIONAL DESCRIPTION: ; 3833 1 ! ; 3834 1 ! This routine will store the block check type into XXXX ; 3835 1 ! location. ; 3836 1 ! ; 3837 1 ! CALLING SEQUENCE: ; 3838 1 ! ; 3839 1 ! Standard LIB$TPARSE routine call. ; 3840 1 ! ; 3841 1 ! INPUT PARAMETERS: ; 3842 1 ! ; 3843 1 ! None. ; 3844 1 ! ; 3845 1 ! IMPLICIT INPUTS: ; 3846 1 ! ; 3847 1 ! None. ; 3848 1 ! ; 3849 1 ! OUTPUT PARAMETERS: ; 3850 1 ! ; 3851 1 ! None. ; 3852 1 ! ; 3853 1 ! IMPLICIT OUTPUTS: ; 3854 1 ! ; 3855 1 ! None. ; 3856 1 ! ; 3857 1 ! COMPLETION CODES: ; 3858 1 ! ; 3859 1 ! None. ; 3860 1 ! ; 3861 1 ! SIDE EFFECTS: ; 3862 1 ! ; 3863 1 ! None. ; 3864 1 ! ; 3865 1 !-- ; 3866 1 ; 3867 2 BEGIN ; 3868 2 TPARSE_ARGS; ; 3869 2 CHKTYPE = .AP [TPA$L_PARAM]; ; 3870 2 RETURN SS$_NORMAL; ; 3871 1 END; ! End of STORE_CHK ;STORE_CHK U.24: .WORD ^M<> ;Save nothing ; 3829 MOVL 32(AP), G^CHKTYPE ;32(AP), CHKTYPE ; 3869 MOVL #1, R0 ;#1, R0 ; 3870 RET ; ; 3871 ; Routine Size: 14 bytes, Routine Base: $CODE$ + 1050 ; 3872 1 %SBTTL 'TPARSE support -- STORE_FTP - Store file type' ; 3873 1 ROUTINE STORE_FTP = ; 3874 1 ; 3875 1 !++ ; 3876 1 ! FUNCTIONAL DESCRIPTION: ; 3877 1 ! ; 3878 1 ! This routine will store the file type that was specified by the ; 3879 1 ! user for the KERFIL processing. ; 3880 1 ! ; 3881 1 ! CALLING SEQUENCE: ; 3882 1 ! ; 3883 1 ! Standard call from LIB$TPARSE. ; 3884 1 ! ; 3885 1 ! INPUT PARAMETERS: ; 3886 1 ! ; 3887 1 ! None. ; 3888 1 ! ; 3889 1 ! IMPLICIT INPUTS: ; 3890 1 ! ; 3891 1 ! None. ; 3892 1 ! ; 3893 1 ! OUTPUT PARAMETERS: ; 3894 1 ! ; 3895 1 ! None. ; 3896 1 ! ; 3897 1 ! IMPLICIT OUTPUTS: ; 3898 1 ! ; 3899 1 ! None. ; 3900 1 ! ; 3901 1 ! COMPLETION CODES: ; 3902 1 ! ; 3903 1 ! None. ; 3904 1 ! ; 3905 1 ! SIDE EFFECTS: ; 3906 1 ! ; 3907 1 ! None. ; 3908 1 ! ; 3909 1 !-- ; 3910 1 ; 3911 2 BEGIN ; 3912 2 TPARSE_ARGS; ; 3913 2 FILE_TYPE = .AP [TPA$L_PARAM]; ; 3914 2 RETURN SS$_NORMAL; ; 3915 1 END; ! End of STORE_FTP ;STORE_FTP U.20: .WORD ^M<> ;Save nothing ; 3873 MOVL 32(AP), G^FILE_TYPE ;32(AP), FILE_TYPE ; 3913 MOVL #1, R0 ;#1, R0 ; 3914 RET ; ; 3915 ; Routine Size: 14 bytes, Routine Base: $CODE$ + 105E ; 3916 1 %SBTTL 'TPARSE support -- STORE_FNM - Store file type' ; 3917 1 ROUTINE STORE_FNM = ; 3918 1 ; 3919 1 !++ ; 3920 1 ! FUNCTIONAL DESCRIPTION: ; 3921 1 ! ; 3922 1 ! This routine will store the file type that was specified by the ; 3923 1 ! user for the KERFIL processing. ; 3924 1 ! ; 3925 1 ! CALLING SEQUENCE: ; 3926 1 ! ; 3927 1 ! Standard call from LIB$TPARSE. ; 3928 1 ! ; 3929 1 ! INPUT PARAMETERS: ; 3930 1 ! ; 3931 1 ! None. ; 3932 1 ! ; 3933 1 ! IMPLICIT INPUTS: ; 3934 1 ! ; 3935 1 ! None. ; 3936 1 ! ; 3937 1 ! OUTPUT PARAMETERS: ; 3938 1 ! ; 3939 1 ! None. ; 3940 1 ! ; 3941 1 ! IMPLICIT OUTPUTS: ; 3942 1 ! ; 3943 1 ! None. ; 3944 1 ! ; 3945 1 ! COMPLETION CODES: ; 3946 1 ! ; 3947 1 ! None. ; 3948 1 ! ; 3949 1 ! SIDE EFFECTS: ; 3950 1 ! ; 3951 1 ! None. ; 3952 1 ! ; 3953 1 !-- ; 3954 1 ; 3955 2 BEGIN ; 3956 2 TPARSE_ARGS; ; 3957 2 FIL_NORMAL_FORM = .AP [TPA$L_PARAM]; ; 3958 2 RETURN SS$_NORMAL; ; 3959 1 END; ! End of STORE_FNM ;STORE_FNM U.21: .WORD ^M<> ;Save nothing ; 3917 MOVL 32(AP), G^FIL_NORMAL_FORM ;32(AP), FIL_NORMAL_FORM ; 3957 MOVL #1, R0 ;#1, R0 ; 3958 RET ; ; 3959 ; Routine Size: 14 bytes, Routine Base: $CODE$ + 106C ; 3960 1 %SBTTL 'TPARSE support -- STORE_PARITY - Store file type' ; 3961 1 ROUTINE STORE_PARITY = ; 3962 1 ; 3963 1 !++ ; 3964 1 ! FUNCTIONAL DESCRIPTION: ; 3965 1 ! ; 3966 1 ! This routine will store the type of parity to use for the transfer. ; 3967 1 ! If a parity type of other than NONE is specified then we will use ; 3968 1 ! eight-bit quoting to support the transfer. ; 3969 1 ! ; 3970 1 ! CALLING SEQUENCE: ; 3971 1 ! ; 3972 1 ! Standard call from LIB$TPARSE. ; 3973 1 ! ; 3974 1 ! INPUT PARAMETERS: ; 3975 1 ! ; 3976 1 ! None. ; 3977 1 ! ; 3978 1 ! IMPLICIT INPUTS: ; 3979 1 ! ; 3980 1 ! None. ; 3981 1 ! ; 3982 1 ! OUTPUT PARAMETERS: ; 3983 1 ! ; 3984 1 ! None. ; 3985 1 ! ; 3986 1 ! IMPLICIT OUTPUTS: ; 3987 1 ! ; 3988 1 ! None. ; 3989 1 ! ; 3990 1 ! COMPLETION CODES: ; 3991 1 ! ; 3992 1 ! None. ; 3993 1 ! ; 3994 1 ! SIDE EFFECTS: ; 3995 1 ! ; 3996 1 ! None. ; 3997 1 ! ; 3998 1 !-- ; 3999 1 ; 4000 2 BEGIN ; 4001 2 TPARSE_ARGS; ; 4002 2 PARITY_TYPE = .AP [TPA$L_PARAM]; ; 4003 2 RETURN SS$_NORMAL; ; 4004 1 END; ! End of STORE_PARITY ;STORE_PARITY U.23: .WORD ^M<> ;Save nothing ; 3961 MOVL 32(AP), G^PARITY_TYPE ;32(AP), PARITY_TYPE ; 4002 MOVL #1, R0 ;#1, R0 ; 4003 RET ; ; 4004 ; Routine Size: 14 bytes, Routine Base: $CODE$ + 107A ; 4005 1 %SBTTL 'TPARSE support -- STORE_ECHO - Store local echo flag' ; 4006 1 ROUTINE STORE_ECHO = ; 4007 1 ; 4008 1 !++ ; 4009 1 ! FUNCTIONAL DESCRIPTION: ; 4010 1 ! ; 4011 1 ! This routine will store the state of the local echo flag as the ; 4012 1 ! user set it. ; 4013 1 ! ; 4014 1 ! CALLING SEQUENCE: ; 4015 1 ! ; 4016 1 ! Standard TPARSE argument call. ; 4017 1 ! ; 4018 1 ! INPUT PARAMETERS: ; 4019 1 ! ; 4020 1 ! None. ; 4021 1 ! ; 4022 1 ! IMPLICIT INPUTS: ; 4023 1 ! ; 4024 1 ! None. ; 4025 1 ! ; 4026 1 ! OUTPUT PARAMETERS: ; 4027 1 ! ; 4028 1 ! None. ; 4029 1 ! ; 4030 1 ! IMPLICIT OUTPUTS: ; 4031 1 ! ; 4032 1 ! None. ; 4033 1 ! ; 4034 1 ! COMPLETION CODES: ; 4035 1 ! ; 4036 1 ! None. ; 4037 1 ! ; 4038 1 ! SIDE EFFECTS: ; 4039 1 ! ; 4040 1 ! None. ; 4041 1 ! ; 4042 1 !-- ; 4043 1 ; 4044 2 BEGIN ; 4045 2 TPARSE_ARGS; ; 4046 2 ECHO_FLAG = .AP [TPA$L_PARAM]; ; 4047 2 RETURN SS$_NORMAL; ; 4048 1 END; ! End of STORE_ECHO ;STORE_ECHO U.22: .WORD ^M<> ;Save nothing ; 4006 MOVL 32(AP), G^ECHO_FLAG ;32(AP), ECHO_FLAG ; 4046 MOVL #1, R0 ;#1, R0 ; 4047 RET ; ; 4048 ; Routine Size: 14 bytes, Routine Base: $CODE$ + 1088 ; 4049 1 %SBTTL 'TPARSE support -- STORE_MSG_FIL - Store file name typeout flag' ; 4050 1 ROUTINE STORE_MSG_FIL = ; 4051 1 ; 4052 1 !++ ; 4053 1 ! FUNCTIONAL DESCRIPTION: ; 4054 1 ! ; 4055 1 ! This routine will store the state of the file name typeout flag as the ; 4056 1 ! user set it. ; 4057 1 ! ; 4058 1 ! CALLING SEQUENCE: ; 4059 1 ! ; 4060 1 ! Standard TPARSE argument call. ; 4061 1 ! ; 4062 1 ! INPUT PARAMETERS: ; 4063 1 ! ; 4064 1 ! None. ; 4065 1 ! ; 4066 1 ! IMPLICIT INPUTS: ; 4067 1 ! ; 4068 1 ! None. ; 4069 1 ! ; 4070 1 ! OUTPUT PARAMETERS: ; 4071 1 ! ; 4072 1 ! None. ; 4073 1 ! ; 4074 1 ! IMPLICIT OUTPUTS: ; 4075 1 ! ; 4076 1 ! None. ; 4077 1 ! ; 4078 1 ! COMPLETION CODES: ; 4079 1 ! ; 4080 1 ! None. ; 4081 1 ! ; 4082 1 ! SIDE EFFECTS: ; 4083 1 ! ; 4084 1 ! None. ; 4085 1 ! ; 4086 1 !-- ; 4087 1 ; 4088 2 BEGIN ; 4089 2 TPARSE_ARGS; ; 4090 2 TY_FIL = .AP [TPA$L_PARAM]; ; 4091 2 RETURN SS$_NORMAL; ; 4092 1 END; ! End of STORE_MSG_FIL ;STORE_MSG_FIL U.27: .WORD ^M<> ;Save nothing ; 4050 MOVL 32(AP), G^TY_FIL ;32(AP), TY_FIL ; 4090 MOVL #1, R0 ;#1, R0 ; 4091 RET ; ; 4092 ; Routine Size: 14 bytes, Routine Base: $CODE$ + 1096 ; 4093 1 %SBTTL 'TPARSE support -- STORE_MSG_PKT - Store packet number typeout flag' ; 4094 1 ROUTINE STORE_MSG_PKT = ; 4095 1 ; 4096 1 !++ ; 4097 1 ! FUNCTIONAL DESCRIPTION: ; 4098 1 ! ; 4099 1 ! This routine will store the state of the packet number flag as the ; 4100 1 ! user set it. ; 4101 1 ! ; 4102 1 ! CALLING SEQUENCE: ; 4103 1 ! ; 4104 1 ! Standard TPARSE argument call. ; 4105 1 ! ; 4106 1 ! INPUT PARAMETERS: ; 4107 1 ! ; 4108 1 ! None. ; 4109 1 ! ; 4110 1 ! IMPLICIT INPUTS: ; 4111 1 ! ; 4112 1 ! None. ; 4113 1 ! ; 4114 1 ! OUTPUT PARAMETERS: ; 4115 1 ! ; 4116 1 ! None. ; 4117 1 ! ; 4118 1 ! IMPLICIT OUTPUTS: ; 4119 1 ! ; 4120 1 ! None. ; 4121 1 ! ; 4122 1 ! COMPLETION CODES: ; 4123 1 ! ; 4124 1 ! None. ; 4125 1 ! ; 4126 1 ! SIDE EFFECTS: ; 4127 1 ! ; 4128 1 ! None. ; 4129 1 ! ; 4130 1 !-- ; 4131 1 ; 4132 2 BEGIN ; 4133 2 TPARSE_ARGS; ; 4134 2 TY_PKT = .AP [TPA$L_PARAM]; ; 4135 2 RETURN SS$_NORMAL; ; 4136 1 END; ! End of STORE_MSG_PKT ;STORE_MSG_PKT U.28: .WORD ^M<> ;Save nothing ; 4094 MOVL 32(AP), G^TY_PKT ;32(AP), TY_PKT ; 4134 MOVL #1, R0 ;#1, R0 ; 4135 RET ; ; 4136 ; Routine Size: 14 bytes, Routine Base: $CODE$ + 10A4 ; 4137 1 %SBTTL 'TPARSE support -- CHECK_EOL' ; 4138 1 ROUTINE CHECK_EOL = ; 4139 1 ; 4140 1 !++ ; 4141 1 ! FUNCTIONAL DESCRIPTION: ; 4142 1 ! ; 4143 1 ! This routine will valid the SEND and RECEIVE eol character that ; 4144 1 ! is being set by the user. ; 4145 1 ! ; 4146 1 ! CALLING SEQUENCE: ; 4147 1 ! ; 4148 1 ! Standard TPARSE routine calling sequence. ; 4149 1 ! ; 4150 1 ! INPUT PARAMETERS: ; 4151 1 ! ; 4152 1 ! None. ; 4153 1 ! ; 4154 1 ! IMPLICIT INPUTS: ; 4155 1 ! ; 4156 1 ! None. ; 4157 1 ! ; 4158 1 ! OUTPUT PARAMETERS: ; 4159 1 ! ; 4160 1 ! None. ; 4161 1 ! ; 4162 1 ! IMPLICIT OUTPUTS: ; 4163 1 ! ; 4164 1 ! None. ; 4165 1 ! ; 4166 1 ! COMPLETION CODES: ; 4167 1 ! ; 4168 1 ! None. ; 4169 1 ! ; 4170 1 ! SIDE EFFECTS: ; 4171 1 ! ; 4172 1 ! None. ; 4173 1 ! ; 4174 1 !-- ; 4175 1 ; 4176 2 BEGIN ; 4177 2 TPARSE_ARGS; ; 4178 2 ; 4179 3 IF (.AP [TPA$L_NUMBER] LSS %C' ') AND (.AP [TPA$L_NUMBER] GTR 0) ; 4180 2 THEN ; 4181 2 RETURN SS$_NORMAL ; 4182 2 ELSE ; 4183 2 RETURN KER_ILLEOL; ; 4184 2 ; 4185 1 END; ! End of CHECK_EOL ;CHECK_EOL U.32: .WORD ^M<> ;Save nothing ; 4138 CMPL 28(AP), #32 ;28(AP), #32 ; 4179 BGEQ 1$ ;1$ ; TSTL 28(AP) ;28(AP) ; BLEQ 1$ ;1$ ; MOVL #1, R0 ;#1, R0 ; 4183 RET ; ; 1$: MOVL #134316066, R0 ;#134316066, R0 ; RET ; ; 4185 ; Routine Size: 25 bytes, Routine Base: $CODE$ + 10B2 ; 4186 1 %SBTTL 'TPARSE support -- CHECK_QUOTE' ; 4187 1 ROUTINE CHECK_QUOTE = ; 4188 1 ; 4189 1 !++ ; 4190 1 ! FUNCTIONAL DESCRIPTION: ; 4191 1 ! ; 4192 1 ! This routine will validate the SEND and RECEIVE quoting character that ; 4193 1 ! is being set by the user. ; 4194 1 ! ; 4195 1 ! CALLING SEQUENCE: ; 4196 1 ! ; 4197 1 ! Standard TPARSE routine calling sequence. ; 4198 1 ! ; 4199 1 ! INPUT PARAMETERS: ; 4200 1 ! ; 4201 1 ! None. ; 4202 1 ! ; 4203 1 ! IMPLICIT INPUTS: ; 4204 1 ! ; 4205 1 ! None. ; 4206 1 ! ; 4207 1 ! OUTPUT PARAMETERS: ; 4208 1 ! ; 4209 1 ! None. ; 4210 1 ! ; 4211 1 ! IMPLICIT OUTPUTS: ; 4212 1 ! ; 4213 1 ! None. ; 4214 1 ! ; 4215 1 ! COMPLETION CODES: ; 4216 1 ! ; 4217 1 ! Error code or true value ; 4218 1 ! ; 4219 1 ! SIDE EFFECTS: ; 4220 1 ! ; 4221 1 ! None. ; 4222 1 ! ; 4223 1 !-- ; 4224 1 ; 4225 2 BEGIN ; 4226 2 TPARSE_ARGS; ; 4227 2 ; 4228 3 IF (.AP [TPA$L_NUMBER] GEQ %C' ' AND .AP [TPA$L_NUMBER] LSS %C'?') OR (.AP [TPA$L_NUMBER] GEQ %C'`' AND ; 4229 3 .AP [TPA$L_NUMBER] LSS CHR_DEL) ; 4230 2 THEN ; 4231 2 RETURN SS$_NORMAL ; 4232 2 ELSE ; 4233 2 RETURN KER_ILLQUO; ; 4234 2 ; 4235 1 END; ! End of CHECK_QUO ;CHECK_QUOTE U.33: .WORD ^M<> ;Save nothing ; 4187 CMPL 28(AP), #32 ;28(AP), #32 ; 4228 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 ; 4229 BGEQ 3$ ;3$ ; 2$: MOVL #1, R0 ;#1, R0 ; 4233 RET ; ; 3$: MOVL #134316114, R0 ;#134316114, R0 ; RET ; ; 4235 ; Routine Size: 46 bytes, Routine Base: $CODE$ + 10CB ; 4236 1 %SBTTL 'TPARSE support -- CHECK_SOH' ; 4237 1 ROUTINE CHECK_SOH = ; 4238 1 ; 4239 1 !++ ; 4240 1 ! FUNCTIONAL DESCRIPTION: ; 4241 1 ! ; 4242 1 ! This routine will valid the SEND and RECEIVE START_OF_PACKET ; 4243 1 ! character that is being set by the user. ; 4244 1 ! ; 4245 1 ! CALLING SEQUENCE: ; 4246 1 ! ; 4247 1 ! Standard TPARSE routine calling sequence. ; 4248 1 ! ; 4249 1 ! INPUT PARAMETERS: ; 4250 1 ! ; 4251 1 ! None. ; 4252 1 ! ; 4253 1 ! IMPLICIT INPUTS: ; 4254 1 ! ; 4255 1 ! None. ; 4256 1 ! ; 4257 1 ! OUTPUT PARAMETERS: ; 4258 1 ! ; 4259 1 ! None. ; 4260 1 ! ; 4261 1 ! IMPLICIT OUTPUTS: ; 4262 1 ! ; 4263 1 ! None. ; 4264 1 ! ; 4265 1 ! COMPLETION CODES: ; 4266 1 ! ; 4267 1 ! None. ; 4268 1 ! ; 4269 1 ! SIDE EFFECTS: ; 4270 1 ! ; 4271 1 ! None. ; 4272 1 ! ; 4273 1 !-- ; 4274 1 ; 4275 2 BEGIN ; 4276 2 TPARSE_ARGS; ; 4277 2 ; 4278 3 IF (.AP [TPA$L_NUMBER] LSS %C' ') AND (.AP [TPA$L_NUMBER] GTR 0) ; 4279 2 THEN ; 4280 2 RETURN SS$_NORMAL ; 4281 2 ELSE ; 4282 2 RETURN KER_ILLSOH; ; 4283 2 ; 4284 1 END; ! End of CHECK_SOH ;CHECK_SOH U.34: .WORD ^M<> ;Save nothing ; 4237 CMPL 28(AP), #32 ;28(AP), #32 ; 4278 BGEQ 1$ ;1$ ; TSTL 28(AP) ;28(AP) ; BLEQ 1$ ;1$ ; MOVL #1, R0 ;#1, R0 ; 4282 RET ; ; 1$: MOVL #134316106, R0 ;#134316106, R0 ; RET ; ; 4284 ; Routine Size: 25 bytes, Routine Base: $CODE$ + 10F9 ; 4285 1 %SBTTL 'TPARSE support -- CHECK_PAD_CHAR' ; 4286 1 ROUTINE CHECK_PAD_CHAR = ; 4287 1 ; 4288 1 !++ ; 4289 1 ! FUNCTIONAL DESCRIPTION: ; 4290 1 ! ; 4291 1 ! This routine will valid the SEND and RECEIVE eol character that ; 4292 1 ! is being set by the user. ; 4293 1 ! ; 4294 1 ! CALLING SEQUENCE: ; 4295 1 ! ; 4296 1 ! Standard TPARSE routine calling sequence. ; 4297 1 ! ; 4298 1 ! INPUT PARAMETERS: ; 4299 1 ! ; 4300 1 ! None. ; 4301 1 ! ; 4302 1 ! IMPLICIT INPUTS: ; 4303 1 ! ; 4304 1 ! None. ; 4305 1 ! ; 4306 1 ! OUTPUT PARAMETERS: ; 4307 1 ! ; 4308 1 ! None. ; 4309 1 ! ; 4310 1 ! IMPLICIT OUTPUTS: ; 4311 1 ! ; 4312 1 ! None. ; 4313 1 ! ; 4314 1 ! COMPLETION CODES: ; 4315 1 ! ; 4316 1 ! None. ; 4317 1 ! ; 4318 1 ! SIDE EFFECTS: ; 4319 1 ! ; 4320 1 ! None. ; 4321 1 ! ; 4322 1 !-- ; 4323 1 ; 4324 2 BEGIN ; 4325 2 TPARSE_ARGS; ; 4326 2 ; 4327 2 IF .AP [TPA$L_NUMBER] LSS %C' ' OR .AP [TPA$L_NUMBER] EQL CHR_DEL ; 4328 2 THEN ; 4329 2 RETURN SS$_NORMAL ; 4330 2 ELSE ; 4331 2 RETURN KER_ILLPADCHR; ; 4332 2 ; 4333 1 END; ! End of CHECK_PAD_CHAR ;CHECK_PAD_CHAR U.31: .WORD ^M<> ;Save nothing ; 4286 CMPL 28(AP), #32 ;28(AP), #32 ; 4327 BLSS 1$ ;1$ ; CMPL 28(AP), #127 ;28(AP), #127 ; BNEQ 2$ ;2$ ; 1$: MOVL #1, R0 ;#1, R0 ; 4331 RET ; ; 2$: MOVL #134316082, R0 ;#134316082, R0 ; RET ; ; 4333 ; Routine Size: 30 bytes, Routine Base: $CODE$ + 1112 ; 4334 1 %SBTTL 'TPARSE support -- CHECK_NPAD' ; 4335 1 ROUTINE CHECK_NPAD = ; 4336 1 ; 4337 1 !++ ; 4338 1 ! FUNCTIONAL DESCRIPTION: ; 4339 1 ! ; 4340 1 ! This routine will determine if the packet length specified by the ; 4341 1 ! user is valid. ; 4342 1 ! ; 4343 1 ! CALLING SEQUENCE: ; 4344 1 ! ; 4345 1 ! Standard TPARSE calling sequence. ; 4346 1 ! ; 4347 1 ! INPUT PARAMETERS: ; 4348 1 ! ; 4349 1 ! None. ; 4350 1 ! ; 4351 1 ! IMPLICIT INPUTS: ; 4352 1 ! ; 4353 1 ! None. ; 4354 1 ! ; 4355 1 ! OUTPUT PARAMETERS: ; 4356 1 ! ; 4357 1 ! None. ; 4358 1 ! ; 4359 1 ! IMPLICIT OUTPUTS: ; 4360 1 ! ; 4361 1 ! None. ; 4362 1 ! ; 4363 1 ! COMPLETION CODES: ; 4364 1 ! ; 4365 1 ! None. ; 4366 1 ! ; 4367 1 ! SIDE EFFECTS: ; 4368 1 ! ; 4369 1 ! None. ; 4370 1 ! ; 4371 1 !-- ; 4372 1 ; 4373 2 BEGIN ; 4374 2 TPARSE_ARGS; ; 4375 2 ; 4376 2 IF .AP [TPA$L_NUMBER] LSS 0 THEN RETURN KER_ILLNPAD ELSE RETURN SS$_NORMAL; ; 4377 2 ; 4378 1 END; ! End of CHECK_NPAD ;CHECK_NPAD U.30: .WORD ^M<> ;Save nothing ; 4335 TSTL 28(AP) ;28(AP) ; 4376 BGEQ 1$ ;1$ ; MOVL #134316090, R0 ;#134316090, R0 ; RET ; ; 1$: MOVL #1, R0 ;#1, R0 ; RET ; ; 4378 ; Routine Size: 19 bytes, Routine Base: $CODE$ + 1130 ; 4379 1 %SBTTL 'TPARSE support -- CHECK_PACKET_LEN' ; 4380 1 ROUTINE CHECK_PACKET_LEN = ; 4381 1 ; 4382 1 !++ ; 4383 1 ! FUNCTIONAL DESCRIPTION: ; 4384 1 ! ; 4385 1 ! This routine will determine if the packet length specified by the ; 4386 1 ! user is valid. ; 4387 1 ! ; 4388 1 ! CALLING SEQUENCE: ; 4389 1 ! ; 4390 1 ! Standard TPARSE calling sequence. ; 4391 1 ! ; 4392 1 ! INPUT PARAMETERS: ; 4393 1 ! ; 4394 1 ! None. ; 4395 1 ! ; 4396 1 ! IMPLICIT INPUTS: ; 4397 1 ! ; 4398 1 ! None. ; 4399 1 ! ; 4400 1 ! OUTPUT PARAMETERS: ; 4401 1 ! ; 4402 1 ! None. ; 4403 1 ! ; 4404 1 ! IMPLICIT OUTPUTS: ; 4405 1 ! ; 4406 1 ! None. ; 4407 1 ! ; 4408 1 ! COMPLETION CODES: ; 4409 1 ! ; 4410 1 ! None. ; 4411 1 ! ; 4412 1 ! SIDE EFFECTS: ; 4413 1 ! ; 4414 1 ! None. ; 4415 1 ! ; 4416 1 !-- ; 4417 1 ; 4418 2 BEGIN ; 4419 2 TPARSE_ARGS; ; 4420 2 ; 4421 3 IF .AP [TPA$L_NUMBER] LSS 10 OR .AP [TPA$L_NUMBER] GTR (MAX_MSG - 2) ; 4422 2 THEN ; 4423 2 RETURN KER_ILLPKTLEN ; 4424 2 ELSE ; 4425 2 RETURN SS$_NORMAL; ; 4426 2 ; 4427 1 END; ! End of CHECK_PACKET_LEN ;CHECK_PACKET_LEN U.29: .WORD ^M<> ;Save nothing ; 4380 CMPL 28(AP), #10 ;28(AP), #10 ; 4421 BLSS 1$ ;1$ ; CMPL 28(AP), #94 ;28(AP), #94 ; BLEQ 2$ ;2$ ; 1$: MOVL #134316074, R0 ;#134316074, R0 ; 4425 RET ; ; 2$: MOVL #1, R0 ;#1, R0 ; RET ; ; 4427 ; Routine Size: 30 bytes, Routine Base: $CODE$ + 1143 ; 4428 1 %SBTTL 'STORE_TEXT' ; 4429 1 ROUTINE STORE_TEXT = ; 4430 1 ; 4431 1 !++ ; 4432 1 ! FUNCTIONAL DESCRIPTION: ; 4433 1 ! ; 4434 1 ! This routine will store a single character of the file specification ; 4435 1 ! that the user gives to the SEND and RECEIVE commands. ; 4436 1 ! ; 4437 1 ! FORMAL PARAMETERS: ; 4438 1 ! ; 4439 1 ! Character that was parsed. ; 4440 1 ! ; 4441 1 ! IMPLICIT INPUTS: ; 4442 1 ! ; 4443 1 ! None. ; 4444 1 ! ; 4445 1 ! IMPLICIT OUTPUTS: ; 4446 1 ! ; 4447 1 ! Character stored into the file specification vector. ; 4448 1 ! ; 4449 1 ! ROUTINE VALUE and ; 4450 1 ! COMPLETION CODES: ; 4451 1 ! ; 4452 1 ! None. ; 4453 1 ! ; 4454 1 ! SIDE EFFECTS: ; 4455 1 ! ; 4456 1 ! None. ; 4457 1 ! ; 4458 1 !-- ; 4459 1 ; 4460 2 BEGIN ; 4461 2 TPARSE_ARGS; ; 4462 2 ; 4463 2 IF (TEMP_DESC [DSC$W_LENGTH] = .TEMP_DESC [DSC$W_LENGTH] + 1) LSS TEMP_LENGTH ; 4464 2 THEN ; 4465 3 BEGIN ; 4466 3 CH$WCHAR (.AP [TPA$B_CHAR], CH$PTR (TEMP_NAME, .TEMP_DESC [DSC$W_LENGTH] - 1)); ; 4467 3 AP [TPA$V_BLANKS] = 1; ! Blanks are significant ; 4468 3 RETURN SS$_NORMAL; ; 4469 3 END ; 4470 2 ELSE ; 4471 2 RETURN KER_LINTOOLNG; ; 4472 2 ; 4473 1 END; ! End of STORE_TEXT ;STORE_TEXT U.12: .WORD ^M ;Save R2 ; 4429 MOVAB G^U.61, R2 ;U.61, R2 ; MOVZWL (R2), R0 ;TEMP_DESC, R0 ; 4463 INCL R0 ;R0 ; MOVW R0, (R2) ;R0, TEMP_DESC ; CMPL R0, #132 ;R0, #132 ; BGEQ 1$ ;1$ ; MOVZWL (R2), R0 ;TEMP_DESC, R0 ; 4466 MOVB 24(AP), 7(R2)[R0] ;24(AP), TEMP_NAME-1[R0] ; BISB2 #1, 4(AP) ;#1, 4(AP) ; 4467 MOVL #1, R0 ;#1, R0 ; 4471 RET ; ; 1$: MOVL #134316098, R0 ;#134316098, R0 ; RET ; ; 4473 ; Routine Size: 51 bytes, Routine Base: $CODE$ + 1161 ; 4474 1 %SBTTL 'TPARSE support -- COPY_DESC - Copy string to a descriptor' ; 4475 1 ROUTINE COPY_DESC = ; 4476 1 ; 4477 1 !++ ; 4478 1 ! FUNCTIONAL DESCRIPTION: ; 4479 1 ! ; 4480 1 ! This routine will copy a string to the descriptor passed in the TPARSE ; 4481 1 ! argument. ; 4482 1 ! ; 4483 1 ! CALLING SEQUENCE: ; 4484 1 ! ; 4485 1 ! COPY_FILE(); ; 4486 1 ! ; 4487 1 ! INPUT PARAMETERS: ; 4488 1 ! ; 4489 1 ! None. ; 4490 1 ! ; 4491 1 ! IMPLICIT INPUTS: ; 4492 1 ! ; 4493 1 ! TEMP_DESC and TEMP_NAME set up with the device name and length ; 4494 1 ! in the descriptor. ; 4495 1 ! ; 4496 1 ! OUTPUT PARAMETERS: ; 4497 1 ! ; 4498 1 ! None. ; 4499 1 ! ; 4500 1 ! IMPLICIT OUTPUTS: ; 4501 1 ! ; 4502 1 ! Descriptor fields set up. ; 4503 1 ! TEMP_DESC. ; 4504 1 ! ; 4505 1 ! COMPLETION CODES: ; 4506 1 ! ; 4507 1 ! 0 - Failure. ; 4508 1 ! 1 - Success. ; 4509 1 ! ; 4510 1 ! SIDE EFFECTS: ; 4511 1 ! ; 4512 1 ! None. ; 4513 1 ! ; 4514 1 !-- ; 4515 1 ; 4516 2 BEGIN ; 4517 2 TPARSE_ARGS; ; 4518 2 ; 4519 2 LOCAL ; 4520 2 DESC_ADDR; ; 4521 2 ; 4522 2 DESC_ADDR = .AP [TPA$L_PARAM]; ; 4523 3 BEGIN ; 4524 3 ; 4525 3 MAP ; 4526 3 DESC_ADDR : REF BLOCK [8, BYTE]; ; 4527 3 ; 4528 3 DESC_ADDR [DSC$W_LENGTH] = .TEMP_DESC [DSC$W_LENGTH]; ; 4529 3 CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1, ; 4530 3 CH$PTR (.DESC_ADDR [DSC$A_POINTER])); ; 4531 2 END; ; 4532 2 RETURN SS$_NORMAL; ; 4533 1 END; ! End of COPY_FILE ;COPY_DESC U.14: .WORD ^M ;Save R2,R3,R4,R5 ; 4475 MOVL 32(AP), R0 ;32(AP), DESC_ADDR ; 4522 MOVZWL G^U.61, R2 ;U.61, R2 ; 4528 MOVW R2, (R0) ;R2, (DESC_ADDR) ; MOVAB 1(R2), R1 ;1(R2), R1 ; 4529 MOVC5 R2, G^U.62, #0, R1, @4(R0) ;R2, U.62, #0, R1, @4(DESC_ADDR) ; 4530 MOVL #1, R0 ;#1, R0 ; 4532 RET ; ; 4533 ; Routine Size: 35 bytes, Routine Base: $CODE$ + 1194 ; 4534 1 %SBTTL 'TPARSE support -- COPY_ALT_FILE - Copy file specification' ; 4535 1 ROUTINE COPY_ALT_FILE = ; 4536 1 ; 4537 1 !++ ; 4538 1 ! FUNCTIONAL DESCRIPTION: ; 4539 1 ! ; 4540 1 ! This routine will copy the file name from the temporary ; 4541 1 ! descriptor to the descriptor that is used for the file name. ; 4542 1 ! (ALT_FILE_NAME). ; 4543 1 ! This is for use by the RECEIVE command so that the user may ; 4544 1 ! specify an alternate file name for the received file. ; 4545 1 ! ; 4546 1 ! CALLING SEQUENCE: ; 4547 1 ! ; 4548 1 ! COPY_ALT_FILE(); ; 4549 1 ! ; 4550 1 ! INPUT PARAMETERS: ; 4551 1 ! ; 4552 1 ! None. ; 4553 1 ! ; 4554 1 ! IMPLICIT INPUTS: ; 4555 1 ! ; 4556 1 ! TEMP_DESC and TEMP_NAME set up with the device name and length ; 4557 1 ! in the descriptor. ; 4558 1 ! ; 4559 1 ! OUTPUT PARAMETERS: ; 4560 1 ! ; 4561 1 ! None. ; 4562 1 ! ; 4563 1 ! IMPLICIT OUTPUTS: ; 4564 1 ! ; 4565 1 ! ALT_FILE_NAME set up with what was in TEMP_NAME and ; 4566 1 ! TEMP_DESC. ; 4567 1 ! ; 4568 1 ! COMPLETION CODES: ; 4569 1 ! ; 4570 1 ! 0 - Failure. ; 4571 1 ! 1 - Success. ; 4572 1 ! ; 4573 1 ! SIDE EFFECTS: ; 4574 1 ! ; 4575 1 ! None. ; 4576 1 ! ; 4577 1 !-- ; 4578 1 ; 4579 2 BEGIN ; 4580 2 ALT_FILE_SIZE = .TEMP_DESC [DSC$W_LENGTH]; ; 4581 2 CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1, ; 4582 2 CH$PTR (ALT_FILE_NAME)); ; 4583 2 RETURN SS$_NORMAL; ; 4584 1 END; ! End of COPY_ALT_FILE ;COPY_ALT_FILE U.15: .WORD ^M ;Save R2,R3,R4,R5 ; 4535 MOVZWL G^U.61, R1 ;U.61, R1 ; 4580 MOVL R1, G^ALT_FILE_SIZE ;R1, ALT_FILE_SIZE ; MOVAB 1(R1), R0 ;1(R1), R0 ; 4581 MOVC5 R1, G^U.62, #0, R0, G^ALT_FILE_NAME ;R1, U.62, #0, R0, ALT_FILE_NAME ; 4582 MOVL #1, R0 ;#1, R0 ; 4583 RET ; ; 4584 ; Routine Size: 38 bytes, Routine Base: $CODE$ + 11B7 ; 4585 1 %SBTTL 'TPARSE support -- COPY_GEN_1DATA - Copy generic command argument' ; 4586 1 ROUTINE COPY_GEN_1DATA = ; 4587 1 ; 4588 1 !++ ; 4589 1 ! FUNCTIONAL DESCRIPTION: ; 4590 1 ! ; 4591 1 ! This routine will copy the generic command argument from the ; 4592 1 ! temporary descriptor to the global storage for the argument ; 4593 1 ! (GEN_1DATA). ; 4594 1 ! ; 4595 1 ! CALLING SEQUENCE: ; 4596 1 ! ; 4597 1 ! COPY_GEN_1DATA(); ; 4598 1 ! ; 4599 1 ! INPUT PARAMETERS: ; 4600 1 ! ; 4601 1 ! None. ; 4602 1 ! ; 4603 1 ! IMPLICIT INPUTS: ; 4604 1 ! ; 4605 1 ! TEMP_DESC and TEMP_NAME set up with the device name and length ; 4606 1 ! in the descriptor. ; 4607 1 ! ; 4608 1 ! OUTPUT PARAMETERS: ; 4609 1 ! ; 4610 1 ! None. ; 4611 1 ! ; 4612 1 ! IMPLICIT OUTPUTS: ; 4613 1 ! ; 4614 1 ! GEN_1DATA and GEN_1SIZE set up with what was in TEMP_NAME and ; 4615 1 ! TEMP_DESC. ; 4616 1 ! ; 4617 1 ! COMPLETION CODES: ; 4618 1 ! ; 4619 1 ! 0 - Failure. ; 4620 1 ! 1 - Success. ; 4621 1 ! ; 4622 1 ! SIDE EFFECTS: ; 4623 1 ! ; 4624 1 ! None. ; 4625 1 ! ; 4626 1 !-- ; 4627 1 ; 4628 2 BEGIN ; 4629 2 GEN_1SIZE = .TEMP_DESC [DSC$W_LENGTH]; ; 4630 2 CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1, ; 4631 2 CH$PTR (GEN_1DATA)); ; 4632 2 RETURN SS$_NORMAL; ; 4633 1 END; ! End of COPY_GEN_1DATA ;COPY_GEN_1DATA U.16: .WORD ^M ;Save R2,R3,R4,R5 ; 4586 MOVZWL G^U.61, R1 ;U.61, R1 ; 4629 MOVL R1, G^GEN_1SIZE ;R1, GEN_1SIZE ; MOVAB 1(R1), R0 ;1(R1), R0 ; 4630 MOVC5 R1, G^U.62, #0, R0, G^GEN_1DATA ;R1, U.62, #0, R0, GEN_1DATA ; 4631 MOVL #1, R0 ;#1, R0 ; 4632 RET ; ; 4633 ; Routine Size: 38 bytes, Routine Base: $CODE$ + 11DD ; 4634 1 %SBTTL 'TPARSE support -- COPY_GEN_2DATA - Copy generic command argument' ; 4635 1 ROUTINE COPY_GEN_2DATA = ; 4636 1 ; 4637 1 !++ ; 4638 1 ! FUNCTIONAL DESCRIPTION: ; 4639 1 ! ; 4640 1 ! This routine will copy the generic command argument from the ; 4641 1 ! temporary descriptor to the global storage for the argument ; 4642 1 ! (GEN_2DATA). ; 4643 1 ! ; 4644 1 ! CALLING SEQUENCE: ; 4645 1 ! ; 4646 1 ! COPY_GEN_2DATA(); ; 4647 1 ! ; 4648 1 ! INPUT PARAMETERS: ; 4649 1 ! ; 4650 1 ! None. ; 4651 1 ! ; 4652 1 ! IMPLICIT INPUTS: ; 4653 1 ! ; 4654 1 ! TEMP_DESC and TEMP_NAME set up with the device name and length ; 4655 1 ! in the descriptor. ; 4656 1 ! ; 4657 1 ! OUTPUT PARAMETERS: ; 4658 1 ! ; 4659 1 ! None. ; 4660 1 ! ; 4661 1 ! IMPLICIT OUTPUTS: ; 4662 1 ! ; 4663 1 ! GEN_2DATA and GEN_2SIZE set up with what was in TEMP_NAME and ; 4664 1 ! TEMP_DESC. ; 4665 1 ! ; 4666 1 ! COMPLETION CODES: ; 4667 1 ! ; 4668 1 ! 0 - Failure. ; 4669 1 ! 1 - Success. ; 4670 1 ! ; 4671 1 ! SIDE EFFECTS: ; 4672 1 ! ; 4673 1 ! None. ; 4674 1 ! ; 4675 1 !-- ; 4676 1 ; 4677 2 BEGIN ; 4678 2 GEN_2SIZE = .TEMP_DESC [DSC$W_LENGTH]; ; 4679 2 CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1, ; 4680 2 CH$PTR (GEN_2DATA)); ; 4681 2 RETURN SS$_NORMAL; ; 4682 1 END; ! End of COPY_GEN_2DATA COPY_GEN_2DATA: .WORD ^M ;Save R2,R3,R4,R5 ; 4635 MOVZWL G^U.61, R1 ;U.61, R1 ; 4678 MOVL R1, G^GEN_2SIZE ;R1, GEN_2SIZE ; MOVAB 1(R1), R0 ;1(R1), R0 ; 4679 MOVC5 R1, G^U.62, #0, R0, G^GEN_2DATA ;R1, U.62, #0, R0, GEN_2DATA ; 4680 MOVL #1, R0 ;#1, R0 ; 4681 RET ; ; 4682 ; Routine Size: 38 bytes, Routine Base: $CODE$ + 1203 ; 4683 1 %SBTTL 'TPARSE support -- COPY_GEN_3DATA - Copy generic command argument' ; 4684 1 ROUTINE COPY_GEN_3DATA = ; 4685 1 ; 4686 1 !++ ; 4687 1 ! FUNCTIONAL DESCRIPTION: ; 4688 1 ! ; 4689 1 ! This routine will copy the generic command argument from the ; 4690 1 ! temporary descriptor to the global storage for the argument ; 4691 1 ! (GEN_3DATA). ; 4692 1 ! ; 4693 1 ! CALLING SEQUENCE: ; 4694 1 ! ; 4695 1 ! COPY_GEN_3DATA(); ; 4696 1 ! ; 4697 1 ! INPUT PARAMETERS: ; 4698 1 ! ; 4699 1 ! None. ; 4700 1 ! ; 4701 1 ! IMPLICIT INPUTS: ; 4702 1 ! ; 4703 1 ! TEMP_DESC and TEMP_NAME set up with the device name and length ; 4704 1 ! in the descriptor. ; 4705 1 ! ; 4706 1 ! OUTPUT PARAMETERS: ; 4707 1 ! ; 4708 1 ! None. ; 4709 1 ! ; 4710 1 ! IMPLICIT OUTPUTS: ; 4711 1 ! ; 4712 1 ! GEN_3DATA and GEN_3SIZE set up with what was in TEMP_NAME and ; 4713 1 ! TEMP_DESC. ; 4714 1 ! ; 4715 1 ! COMPLETION CODES: ; 4716 1 ! ; 4717 1 ! 0 - Failure. ; 4718 1 ! 1 - Success. ; 4719 1 ! ; 4720 1 ! SIDE EFFECTS: ; 4721 1 ! ; 4722 1 ! None. ; 4723 1 ! ; 4724 1 !-- ; 4725 1 ; 4726 2 BEGIN ; 4727 2 GEN_3SIZE = .TEMP_DESC [DSC$W_LENGTH]; ; 4728 2 CH$COPY (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (TEMP_NAME), 0, .TEMP_DESC [DSC$W_LENGTH] + 1, ; 4729 2 CH$PTR (GEN_3DATA)); ; 4730 2 RETURN SS$_NORMAL; ; 4731 1 END; ! End of COPY_GEN_3DATA COPY_GEN_3DATA: .WORD ^M ;Save R2,R3,R4,R5 ; 4684 MOVZWL G^U.61, R1 ;U.61, R1 ; 4727 MOVL R1, G^GEN_3SIZE ;R1, GEN_3SIZE ; MOVAB 1(R1), R0 ;1(R1), R0 ; 4728 MOVC5 R1, G^U.62, #0, R0, G^GEN_3DATA ;R1, U.62, #0, R0, GEN_3DATA ; 4729 MOVL #1, R0 ;#1, R0 ; 4730 RET ; ; 4731 ; Routine Size: 38 bytes, Routine Base: $CODE$ + 1229 ; 4732 1 %SBTTL 'COPY_TERM_NAME' ; 4733 1 ROUTINE COPY_TERM_NAME = ; 4734 1 ; 4735 1 !++ ; 4736 1 ! FUNCTIONAL DESCRIPTION: ; 4737 1 ! ; 4738 1 ! This routine will copy the device name from the temporary ; 4739 1 ! descriptor to the descriptor that is used for the terminal name. ; 4740 1 ! (TERM_NAME and TERM_DESC). ; 4741 1 ! It will call KERTRM to validate the name as a usuable terminal. ; 4742 1 ! ; 4743 1 ! CALLING SEQUENCE: ; 4744 1 ! ; 4745 1 ! COPY_TERM_NAME(); ; 4746 1 ! ; 4747 1 ! INPUT PARAMETERS: ; 4748 1 ! ; 4749 1 ! None. ; 4750 1 ! ; 4751 1 ! IMPLICIT INPUTS: ; 4752 1 ! ; 4753 1 ! TEMP_DESC and TEMP_NAME set up with the device name and length ; 4754 1 ! in the descriptor. ; 4755 1 ! ; 4756 1 ! OUTPUT PARAMETERS: ; 4757 1 ! ; 4758 1 ! None. ; 4759 1 ! ; 4760 1 ! IMPLICIT OUTPUTS: ; 4761 1 ! ; 4762 1 ! TERM_NAME and TERM_DESC set up with what was in TEMP_NAME and ; 4763 1 ! TEMP_DESC. ; 4764 1 ! ; 4765 1 ! COMPLETION CODES: ; 4766 1 ! ; 4767 1 ! 0 - Failure. ; 4768 1 ! 1 - Success. ; 4769 1 ! ; 4770 1 ! SIDE EFFECTS: ; 4771 1 ! ; 4772 1 ! None. ; 4773 1 ! ; 4774 1 !-- ; 4775 1 ; 4776 2 BEGIN ; 4777 2 ; 4778 2 EXTERNAL ; 4779 2 JOB_TERM_DESC : BLOCK [8, BYTE]; ! Descriptor for jobs contolling terminal ; 4780 2 ; 4781 2 IF NOT CH$FAIL (CH$FIND_NOT_CH (.TEMP_DESC [DSC$W_LENGTH], CH$PTR (.TEMP_DESC [DSC$A_POINTER]), %C' ')) ; 4782 2 THEN ; 4783 2 RETURN SET_TRANS_TERM (TEMP_DESC) ; 4784 2 ELSE ; 4785 2 ; 4786 2 IF NOT SET_TRANS_TERM (%ASCID'KER$COMM') ; 4787 2 THEN ; 4788 2 ; 4789 2 IF NOT SET_TRANS_TERM (%ASCID'SYS$INPUT') ; 4790 2 THEN ; 4791 2 ; 4792 2 IF NOT SET_TRANS_TERM (%ASCID'SYS$OUTPUT') ; 4793 2 THEN ; 4794 2 ; 4795 2 IF NOT SET_TRANS_TERM (%ASCID'SYS$COMMAND') THEN RETURN SET_TRANS_TERM (JOB_TERM_DESC); ; 4796 2 ; 4797 2 RETURN SS$_NORMAL; ; 4798 1 END; ! End of COPY_TERM_NAME .PSECT $PLIT$,NOWRT,NOEXE,2 P.AGE: .ASCII \KER$COMM\ ; ; P.AGD: .LONG 17694728 ; ; .ADDRESS P.AGE ; ; P.AGG: .ASCII \SYS$INPUT\<0><0><0> ; ; P.AGF: .LONG 17694729 ; ; .ADDRESS P.AGG ; ; P.AGI: .ASCII \SYS$OUTPUT\<0><0> ; ; P.AGH: .LONG 17694730 ; ; .ADDRESS P.AGI ; ; P.AGK: .ASCII \SYS$COMMAND\<0> ; ; P.AGJ: .LONG 17694731 ; ; .ADDRESS P.AGK ; ; .EXTRN JOB_TERM_DESC .PSECT $CODE$,NOWRT,2 ;COPY_TERM_NAME U.13: .WORD ^M ;Save R2,R3,R4 ; 4733 MOVAB G^U.61, R4 ;U.61, R4 ; MOVAB G^P.AGD, R3 ;P.AGD, R3 ; MOVAB G^SET_TRANS_TERM, R2 ;SET_TRANS_TERM, R2 ; MOVL 4(R4), R0 ;TEMP_DESC+4, R0 ; 4781 SKPC #32, (R4), (R0) ;#32, TEMP_DESC, (R0) ; BNEQ 1$ ;1$ ; CLRL R1 ;R1 ; 1$: TSTL R1 ;R1 ; BEQL 2$ ;2$ ; PUSHL R4 ;R4 ; 4783 BRB 3$ ;3$ ; 2$: PUSHL R3 ;R3 ; 4786 CALLS #1, (R2) ;#1, SET_TRANS_TERM ; BLBS R0, 4$ ;R0, 4$ ; PUSHAB 20(R3) ;P.AGF ; 4789 CALLS #1, (R2) ;#1, SET_TRANS_TERM ; BLBS R0, 4$ ;R0, 4$ ; PUSHAB 40(R3) ;P.AGH ; 4792 CALLS #1, (R2) ;#1, SET_TRANS_TERM ; BLBS R0, 4$ ;R0, 4$ ; PUSHAB 60(R3) ;P.AGJ ; 4795 CALLS #1, (R2) ;#1, SET_TRANS_TERM ; BLBS R0, 4$ ;R0, 4$ ; PUSHAB G^JOB_TERM_DESC ;JOB_TERM_DESC ; 3$: CALLS #1, (R2) ;#1, SET_TRANS_TERM ; RET ; ; 4$: MOVL #1, R0 ;#1, R0 ; 4797 RET ; ; 4798 ; Routine Size: 92 bytes, Routine Base: $CODE$ + 124F ; 4799 1 %SBTTL 'KEY_ERROR - Handle keyword errors' ; 4800 1 ROUTINE KEY_ERROR = ; 4801 1 ; 4802 1 !++ ; 4803 1 ! FUNCTIONAL DESCRIPTION: ; 4804 1 ! ; 4805 1 ! This routine is called from the command parser (LIB$TPARSE) when a keyword ; 4806 1 ! does not match. It will just return the correct error code. ; 4807 1 ! ; 4808 1 ! CALLING SEQUENCE: ; 4809 1 ! ; 4810 1 ! STATUS = KEY_ERROR (); ; 4811 1 ! ; 4812 1 ! INPUT PARAMETERS: ; 4813 1 ! ; 4814 1 ! None. ; 4815 1 ! ; 4816 1 ! IMPLICIT INPUTS: ; 4817 1 ! ; 4818 1 ! None. ; 4819 1 ! ; 4820 1 ! OUPTUT PARAMETERS: ; 4821 1 ! ; 4822 1 ! None. ; 4823 1 ! ; 4824 1 ! IMPLICIT OUTPUTS: ; 4825 1 ! ; 4826 1 ! None. ; 4827 1 ! ; 4828 1 ! COMPLETION CODES: ; 4829 1 ! ; 4830 1 ! None. ; 4831 1 ! ; 4832 1 ! SIDE EFFECTS: ; 4833 1 ! ; 4834 1 ! None. ; 4835 1 ! ; 4836 1 !-- ; 4837 1 ; 4838 2 BEGIN ; 4839 2 TPARSE_ARGS; ; 4840 2 ; 4841 2 IF .AP [TPA$V_AMBIG] THEN RETURN KER_AMBIGKEY ELSE RETURN KER_UNKNOWKEY; ; 4842 2 ; 4843 1 END; ! End of KEY_ERROR ;KEY_ERROR U.35: .WORD ^M<> ;Save nothing ; 4800 BLBC 6(AP), 1$ ;6(AP), 1$ ; 4841 MOVL #134316282, R0 ;#134316282, R0 ; RET ; ; 1$: MOVL #134316290, R0 ;#134316290, R0 ; RET ; ; 4843 ; Routine Size: 22 bytes, Routine Base: $CODE$ + 12AB ; 4844 1 %SBTTL 'XFR_STATUS - Return the transfer status' ; 4845 1 ; 4846 1 GLOBAL ROUTINE XFR_STATUS (TYPE, SUB_TYPE) : NOVALUE = ; 4847 1 ; 4848 1 !++ ; 4849 1 ! FUNCTIONAL DESCRIPTION: ; 4850 1 ! ; 4851 1 ! This routine is called after either a packet has been received ; 4852 1 ! correctly at the receive level, a packet has been sent, or ; 4853 1 ! either a NAK has been sent or received. ; 4854 1 ! ; 4855 1 ! CALLING SEQUENCE: ; 4856 1 ! ; 4857 1 ! XFR_STATUS (Type); ; 4858 1 ! ; 4859 1 ! INPUT PARAMETERS: ; 4860 1 ! ; 4861 1 ! Type - ASCII Characters describing the type of transfer ; 4862 1 ! ; 4863 1 ! IMPLICIT INPUTS: ; 4864 1 ! ; 4865 1 ! None. ; 4866 1 ! ; 4867 1 ! OUPTUT PARAMETERS: ; 4868 1 ! ; 4869 1 ! None. ; 4870 1 ! ; 4871 1 ! IMPLICIT OUTPUTS: ; 4872 1 ! ; 4873 1 ! None. ; 4874 1 ! ; 4875 1 ! COMPLETION CODES: ; 4876 1 ! ; 4877 1 ! None. ; 4878 1 ! ; 4879 1 ! SIDE EFFECTS: ; 4880 1 ! ; 4881 1 ! None. ; 4882 1 ! ; 4883 1 !-- ; 4884 1 ; 4885 2 BEGIN ; 4886 2 ; 4887 2 EXTERNAL ROUTINE ; 4888 2 LOG_FAOL; ; 4889 2 ; 4890 2 ! ; 4891 2 ! If we have a journal file (transaction log), then say what we are doing. ; 4892 2 ! ; 4893 2 ; 4894 2 IF .TRANSACTION_OPEN AND .TYPE EQL %C'F' ; 4895 2 THEN ; 4896 3 BEGIN ; 4897 3 FILE_DESC [DSC$W_LENGTH] = .FILE_SIZE; ! Make sure size is right ; 4898 3 ; 4899 3 SELECTONE .SUB_TYPE OF ; 4900 3 SET ; 4901 3 ; 4902 3 [%C'S'] : ; 4903 3 LOG_FAOL (%ASCID'!%T!_Sending file !AS!/', UPLIT (0, FILE_DESC), TRANSACTION_RAB); ; 4904 3 ; 4905 3 [%C'R'] : ; 4906 3 LOG_FAOL (%ASCID'!%T!_Receiving file !AS!/', UPLIT (0, FILE_DESC), TRANSACTION_RAB); ; 4907 3 ; 4908 3 [%C'C'] : ; 4909 3 LOG_FAOL (%ASCID'!%T!_Closing file !AS!/', UPLIT (0, FILE_DESC), TRANSACTION_RAB); ; 4910 3 ; 4911 3 [%C'X'] : ; 4912 3 LOG_FAOL (%ASCID'!%T!_Aborting file !AS by user request!/', UPLIT (0, FILE_DESC), ; 4913 3 TRANSACTION_RAB); ; 4914 3 ; 4915 3 [%C'Z'] : ; 4916 3 LOG_FAOL (%ASCID'!%T!_Aborting file group !AS by user request!/', UPLIT (0, FILE_DESC), ; 4917 3 TRANSACTION_RAB); ; 4918 3 ; 4919 3 [%C'D'] : ; 4920 3 LOG_FAOL (%ASCID'!%T!_Aborting file !AS, partial file saved!/', UPLIT (0, FILE_DESC), ; 4921 3 TRANSACTION_RAB); ; 4922 3 ; 4923 3 [%C'A'] : ; 4924 3 LOG_FAOL (%ASCID'!%T!_Aborting file !AS due to protocol error!/', UPLIT (0, FILE_DESC), ; 4925 3 TRANSACTION_RAB); ; 4926 3 TES; ; 4927 3 ; 4928 2 END; ; 4929 2 ; 4930 2 IF .TY_PKT ; 4931 2 THEN ; 4932 3 BEGIN ; 4933 3 ; 4934 3 SELECTONE .TYPE OF ; 4935 3 SET ; 4936 3 ; 4937 3 [%ASCII'R'] : ; 4938 4 BEGIN ; 4939 4 ; 4940 4 IF .SUB_TYPE EQL %C'P' ; 4941 4 THEN ; 4942 5 BEGIN ; 4943 5 TT_TEXT (UPLIT (%ASCIZ' R')); ; 4944 5 TT_NUMBER (.RMSG_COUNT); ; 4945 4 END; ; 4946 4 ; 4947 4 IF .SUB_TYPE EQL %C'N' ; 4948 4 THEN ; 4949 5 BEGIN ; 4950 5 TT_TEXT (UPLIT (%ASCIZ' R%')); ; 4951 5 TT_NUMBER (.RMSG_NAKS); ; 4952 4 END; ; 4953 4 ; 4954 3 END; ; 4955 3 ; 4956 3 [%ASCII'S'] : ; 4957 4 BEGIN ; 4958 4 ; 4959 4 IF .SUB_TYPE EQL %C'P' ; 4960 4 THEN ; 4961 5 BEGIN ; 4962 5 TT_TEXT (UPLIT (%ASCIZ' S')); ; 4963 5 TT_NUMBER (.SMSG_COUNT); ; 4964 4 END; ; 4965 4 ; 4966 4 IF .SUB_TYPE EQL %C'N' ; 4967 4 THEN ; 4968 5 BEGIN ; 4969 5 TT_TEXT (UPLIT (%ASCIZ' S%')); ; 4970 5 TT_NUMBER (.SMSG_NAKS); ; 4971 4 END; ; 4972 4 ; 4973 3 END; ; 4974 3 TES; ; 4975 3 ; 4976 3 TT_OUTPUT (); ; 4977 2 END; ; 4978 2 ; 4979 1 END; ! End of XFR_STATUS .PSECT $PLIT$,NOWRT,NOEXE,2 P.AGM: .ASCII \!%T!_Sending file !AS!/\<0> ; ; P.AGL: .LONG 17694743 ; ; .ADDRESS P.AGM ; ; P.AGN: .LONG 0 ; ; .ADDRESS FILE_DESC ; ; P.AGP: .ASCII \!%T!_Receiving file !AS!/\<0><0><0> ; ; P.AGO: .LONG 17694745 ; ; .ADDRESS P.AGP ; ; P.AGQ: .LONG 0 ; ; .ADDRESS FILE_DESC ; ; P.AGS: .ASCII \!%T!_Closing file !AS!/\<0> ; ; P.AGR: .LONG 17694743 ; ; .ADDRESS P.AGS ; ; P.AGT: .LONG 0 ; ; .ADDRESS FILE_DESC ; ; P.AGV: .ASCII \!%T!_Aborting file !AS by user request!/\ ; ; P.AGU: .LONG 17694760 ; ; .ADDRESS P.AGV ; ; P.AGW: .LONG 0 ; ; .ADDRESS FILE_DESC ; ; P.AGY: .ASCII \!%T!_Aborting file group !AS by user request!/\<0><0> ; ; P.AGX: .LONG 17694766 ; ; .ADDRESS P.AGY ; ; P.AGZ: .LONG 0 ; ; .ADDRESS FILE_DESC ; ; P.AHB: .ASCII \!%T!_Aborting file !AS, partial file saved!/\ ; ; P.AHA: .LONG 17694764 ; ; .ADDRESS P.AHB ; ; P.AHC: .LONG 0 ; ; .ADDRESS FILE_DESC ; ; P.AHE: .ASCII \!%T!_Aborting file !AS due to protocol error!/\<0><0> ; ; P.AHD: .LONG 17694766 ; ; .ADDRESS P.AHE ; ; P.AHF: .LONG 0 ; ; .ADDRESS FILE_DESC ; ; P.AHG: .ASCII \ R\<0><0> ; ; P.AHH: .ASCII \ R%\<0> ; ; P.AHI: .ASCII \ S\<0><0> ; ; P.AHJ: .ASCII \ S%\<0> ; ; .EXTRN LOG_FAOL .PSECT $CODE$,NOWRT,2 .ENTRY XFR_STATUS, ^M ;XFR_STATUS, Save R2,R3,R4,R5,R6 ; 4846 MOVAB G^TT_NUMBER, R6 ;TT_NUMBER, R6 ; MOVAB G^TT_TEXT, R5 ;TT_TEXT, R5 ; MOVAB G^TRANSACTION_RAB, R4 ;TRANSACTION_RAB, R4 ; MOVAB G^P.AGN, R3 ;P.AGN, R3 ; BLBS -84(R4), 2$ ;TRANSACTION_OPEN, 2$ ; 4894 1$: BRW 10$ ;10$ ; 2$: CMPL 4(AP), #70 ;TYPE, #70 ; BNEQ 1$ ;1$ ; MOVW G^FILE_SIZE, G^FILE_DESC ;FILE_SIZE, FILE_DESC ; 4897 MOVL 8(AP), R2 ;SUB_TYPE, R2 ; 4899 CMPL R2, #83 ;R2, #83 ; 4902 BNEQ 3$ ;3$ ; PUSHR #^M ;#^M ; 4903 PUSHAB -8(R3) ;P.AGL ; BRB 9$ ;9$ ; 3$: CMPL R2, #82 ;R2, #82 ; 4905 BNEQ 4$ ;4$ ; PUSHL R4 ;R4 ; 4906 PUSHAB 44(R3) ;P.AGQ ; PUSHAB 36(R3) ;P.AGO ; BRB 9$ ;9$ ; 4$: CMPL R2, #67 ;R2, #67 ; 4908 BNEQ 5$ ;5$ ; PUSHL R4 ;R4 ; 4909 PUSHAB 84(R3) ;P.AGT ; PUSHAB 76(R3) ;P.AGR ; BRB 9$ ;9$ ; 5$: CMPL R2, #88 ;R2, #88 ; 4911 BNEQ 6$ ;6$ ; PUSHL R4 ;R4 ; 4912 PUSHAB 140(R3) ;P.AGW ; PUSHAB 132(R3) ;P.AGU ; BRB 9$ ;9$ ; 6$: CMPL R2, #90 ;R2, #90 ; 4915 BNEQ 7$ ;7$ ; PUSHL R4 ;R4 ; 4916 PUSHAB 204(R3) ;P.AGZ ; PUSHAB 196(R3) ;P.AGX ; BRB 9$ ;9$ ; 7$: CMPL R2, #68 ;R2, #68 ; 4919 BNEQ 8$ ;8$ ; PUSHL R4 ;R4 ; 4920 PUSHAB 264(R3) ;P.AHC ; PUSHAB 256(R3) ;P.AHA ; BRB 9$ ;9$ ; 8$: CMPL R2, #65 ;R2, #65 ; 4923 BNEQ 10$ ;10$ ; PUSHL R4 ;R4 ; 4924 PUSHAB 328(R3) ;P.AHF ; PUSHAB 320(R3) ;P.AHD ; 9$: CALLS #3, G^LOG_FAOL ;#3, LOG_FAOL ; 10$: BLBS G^TY_PKT, 11$ ;TY_PKT, 11$ ; 4930 RET ; ; 11$: MOVL 4(AP), R0 ;TYPE, R0 ; 4934 CMPL R0, #82 ;R0, #82 ; 4937 BNEQ 13$ ;13$ ; CMPL 8(AP), #80 ;SUB_TYPE, #80 ; 4940 BNEQ 12$ ;12$ ; PUSHAB 336(R3) ;P.AHG ; 4943 CALLS #1, (R5) ;#1, TT_TEXT ; PUSHL G^RMSG_COUNT ;RMSG_COUNT ; 4944 CALLS #1, (R6) ;#1, TT_NUMBER ; 12$: CMPL 8(AP), #78 ;SUB_TYPE, #78 ; 4947 BNEQ 16$ ;16$ ; PUSHAB 340(R3) ;P.AHH ; 4950 CALLS #1, (R5) ;#1, TT_TEXT ; PUSHL G^RMSG_NAKS ;RMSG_NAKS ; 4951 BRB 15$ ;15$ ; 13$: CMPL R0, #83 ;R0, #83 ; 4956 BNEQ 16$ ;16$ ; CMPL 8(AP), #80 ;SUB_TYPE, #80 ; 4959 BNEQ 14$ ;14$ ; PUSHAB 344(R3) ;P.AHI ; 4962 CALLS #1, (R5) ;#1, TT_TEXT ; PUSHL G^SMSG_COUNT ;SMSG_COUNT ; 4963 CALLS #1, (R6) ;#1, TT_NUMBER ; 14$: CMPL 8(AP), #78 ;SUB_TYPE, #78 ; 4966 BNEQ 16$ ;16$ ; PUSHAB 348(R3) ;P.AHJ ; 4969 CALLS #1, (R5) ;#1, TT_TEXT ; PUSHL G^SMSG_NAKS ;SMSG_NAKS ; 4970 15$: CALLS #1, (R6) ;#1, TT_NUMBER ; 16$: CALLS #0, G^TT_OUTPUT ;#0, TT_OUTPUT ; 4976 RET ; ; 4979 ; Routine Size: 346 bytes, Routine Base: $CODE$ + 12C1 ; 4980 1 ; 4981 1 %SBTTL 'CRCCLC - Calculate the CRC-CCITT for a message' ; 4982 1 ; 4983 1 GLOBAL ROUTINE CRCCLC (POINTER, SIZE) = ; 4984 1 ; 4985 1 !++ ; 4986 1 ! FUNCTIONAL DESCRIPTION: ; 4987 1 ! ; 4988 1 ! This routine will calculate the CRC for a message. It will use ; 4989 1 ! the VAX LIB$ routine to do all the work. ; 4990 1 ! ; 4991 1 ! CALLING SEQUENCE: ; 4992 1 ! ; 4993 1 ! CRC = CRCCLC(Pointer, Size) ; 4994 1 ! ; 4995 1 ! INPUT PARAMETERS: ; 4996 1 ! ; 4997 1 ! Pointer - Character pointer to the message. ; 4998 1 ! Size - Length of the message. ; 4999 1 ! ; 5000 1 ! IMPLICIT INPUTS: ; 5001 1 ! ; 5002 1 ! None. ; 5003 1 ! ; 5004 1 ! OUPTUT PARAMETERS: ; 5005 1 ! ; 5006 1 ! CRC for the message. ; 5007 1 ! ; 5008 1 ! IMPLICIT OUTPUTS: ; 5009 1 ! ; 5010 1 ! None. ; 5011 1 ! ; 5012 1 ! COMPLETION CODES: ; 5013 1 ! ; 5014 1 ! None. ; 5015 1 ! ; 5016 1 ! SIDE EFFECTS: ; 5017 1 ! ; 5018 1 ! None. ; 5019 1 ! ; 5020 1 !-- ; 5021 1 ; 5022 2 BEGIN ; 5023 2 ; 5024 2 LOCAL ; 5025 2 TEMP_DESC : BLOCK [8, BYTE], ! Temporary descriptor ; 5026 2 CRC_INITIAL; ! Initial CRC value ; 5027 2 ; 5028 2 CRC_INITIAL = 0; ! Set the initial value ; 5029 2 INIT_STR_DESC (TEMP_DESC, .POINTER, .SIZE); ; 5030 2 RETURN LIB$CRC (CRC_TABLE, CRC_INITIAL, TEMP_DESC); ; 5031 1 END; ! End of CRCCLC .ENTRY CRCCLC, ^M<> ;CRCCLC, Save nothing ; 4983 SUBL2 #8, SP ;#8, SP ; CLRL -(SP) ;CRC_INITIAL ; 5028 MOVW #270, 6(SP) ;#270, TEMP_DESC+2 ; 5029 MOVW 8(AP), 4(SP) ;SIZE, TEMP_DESC ; MOVL 4(AP), 8(SP) ;POINTER, TEMP_DESC+4 ; PUSHAB 4(SP) ;TEMP_DESC ; 5030 PUSHAB 4(SP) ;CRC_INITIAL ; PUSHAB G^U.58 ;U.58 ; CALLS #3, G^LIB$CRC ;#3, LIB$CRC ; RET ; ; 5031 ; Routine Size: 43 bytes, Routine Base: $CODE$ + 141B ; 5032 1 ; 5033 1 %SBTTL 'KRM_ERROR - Issue an error message given error code' ; 5034 1 ; 5035 1 GLOBAL ROUTINE KRM_ERROR (ERROR_CODE) : NOVALUE = ; 5036 1 ; 5037 1 !++ ; 5038 1 ! FUNCTIONAL DESCRIPTION: ; 5039 1 ! ; 5040 1 ! This routine will cause an error message to be issued to the ; 5041 1 ! user's terminal and/or a message to be sent to the remote KERMIT. ; 5042 1 ! ; 5043 1 ! CALLING SEQUENCE: ; 5044 1 ! ; 5045 1 ! KRM_ERROR(KER_xxxxxx); ; 5046 1 ! ; 5047 1 ! INPUT PARAMETERS: ; 5048 1 ! ; 5049 1 ! KER_xxxxxx - Error code from KERERR.REQ ; 5050 1 ! ; 5051 1 ! IMPLICIT INPUTS: ; 5052 1 ! ; 5053 1 ! None. ; 5054 1 ! ; 5055 1 ! OUTPUT PARAMETERS: ; 5056 1 ! ; 5057 1 ! None. ; 5058 1 ! ; 5059 1 ! IMPLICIT OUTPUTS: ; 5060 1 ! ; 5061 1 ! None. ; 5062 1 ! ; 5063 1 ! COMPLETION CODES: ; 5064 1 ! ; 5065 1 ! None. ; 5066 1 ! ; 5067 1 ! SIDE EFFECTS: ; 5068 1 ! ; 5069 1 ! None. ; 5070 1 ! ; 5071 1 !-- ; 5072 1 ; 5073 2 BEGIN ; 5074 2 LIB$SIGNAL (.ERROR_CODE); ; 5075 1 END; ! End of KRM_ERROR .ENTRY KRM_ERROR, ^M<> ;KRM_ERROR, Save nothing ; 5035 PUSHL 4(AP) ;ERROR_CODE ; 5074 CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL ; RET ; ; 5075 ; Routine Size: 13 bytes, Routine Base: $CODE$ + 1446 ; 5076 1 ; 5077 1 %SBTTL 'KERM_HANDLER - Condition handler' ; 5078 1 ROUTINE KERM_HANDLER = ; 5079 1 ; 5080 1 !++ ; 5081 1 ! FUNCTIONAL DESCRIPTION: ; 5082 1 ! ; 5083 1 ! This is the condition handler for KERMIT-32. ; 5084 1 ! ; 5085 1 ! CALLING SEQUENCE: ; 5086 1 ! ; 5087 1 ! Called via LIB$SIGNAL. ; 5088 1 ! ; 5089 1 ! INPUT PARAMETERS: ; 5090 1 ! ; 5091 1 ! None. ; 5092 1 ! ; 5093 1 ! IMPLICIT INPUTS: ; 5094 1 ! ; 5095 1 ! None. ; 5096 1 ! ; 5097 1 ! OUTPUT PARAMETERS: ; 5098 1 ! ; 5099 1 ! None. ; 5100 1 ! ; 5101 1 ! IMPLICIT OUTPUTS: ; 5102 1 ! ; 5103 1 ! None. ; 5104 1 ! ; 5105 1 ! COMPLETION CODES: ; 5106 1 ! ; 5107 1 ! None. ; 5108 1 ! ; 5109 1 ! SIDE EFFECTS: ; 5110 1 ! ; 5111 1 ! None. ; 5112 1 ! ; 5113 1 !-- ; 5114 1 ; 5115 2 BEGIN ; 5116 2 ; 5117 2 BIND ; 5118 2 FACILITY_DESC = %ASCID'KERMIT32'; ; 5119 2 ; 5120 2 BUILTIN ; 5121 2 AP; ; 5122 2 ; 5123 2 LOCAL ; 5124 2 PUTMSG_VECTOR : VECTOR [10, LONG], ; 5125 2 SIGARGLST; ! Address of the signal argument list ; 5126 2 ; 5127 2 MAP ; 5128 2 AP : REF BLOCK [, BYTE], ; 5129 2 SIGARGLST : REF BLOCK [, BYTE]; ; 5130 2 ; 5131 2 !++ ; 5132 2 ! ; 5133 2 ! Routine to do the actual output of the error message ; 5134 2 ! ; 5135 2 !-- ; 5136 2 ; 5137 2 ROUTINE HANDLE_MSG = ; 5138 3 BEGIN ; 5139 3 ; 5140 3 EXTERNAL ROUTINE ; 5141 3 LOG_FAOL; ; 5142 3 ; 5143 3 BUILTIN ; 5144 3 AP; ; 5145 3 ; 5146 3 LOCAL ; 5147 3 ERR_DESC, ! Address of the error descriptor ; 5148 3 POINTER; ! Pointer to get characters ; 5149 3 ; 5150 3 MAP ; 5151 3 ERR_DESC : REF BLOCK [8, BYTE], ; 5152 3 AP : REF BLOCK [, BYTE]; ; 5153 3 ; 5154 3 ERR_DESC = .AP [4, 0, 32, 0]; ; 5155 3 ; 5156 3 IF .TERM_FLAG THEN SND_ERROR (.ERR_DESC [DSC$W_LENGTH], .ERR_DESC [DSC$A_POINTER]); ; 5157 3 ; 5158 3 IF .TRANSACTION_OPEN ; 5159 3 THEN ; 5160 4 BEGIN ; 5161 4 ; 5162 4 OWN ; 5163 4 TMP_DESC : BLOCK [8, BYTE]; ; 5164 4 ; 5165 4 INIT_STR_DESC (TMP_DESC, .ERR_DESC [DSC$A_POINTER], .ERR_DESC [DSC$W_LENGTH]); ; 5166 4 LOG_FAOL (%ASCID'!%T!_!AS!/', UPLIT (0, TMP_DESC), TRANSACTION_RAB); ; 5167 3 END; ; 5168 3 ; 5169 3 IF NOT .CONNECT_FLAG ; 5170 3 THEN ; 5171 4 BEGIN ; 5172 4 POINTER = CH$PTR (.ERR_DESC [DSC$A_POINTER]); ; 5173 4 ; 5174 4 INCR I FROM 1 TO .ERR_DESC [DSC$W_LENGTH] DO ; 5175 4 TT_CHAR (CH$RCHAR_A (POINTER)); ; 5176 4 ; 5177 4 TT_CRLF (); ; 5178 3 END; ; 5179 3 ; 5180 3 RETURN 0; ; 5181 2 END; .PSECT $PLIT$,NOWRT,NOEXE,2 P.AHL: .ASCII \KERMIT32\ ; ; P.AHK: .LONG 17694728 ; ; .ADDRESS P.AHL ; ; P.AHN: .ASCII \!%T!_!AS!/\<0><0> ; ; P.AHM: .LONG 17694730 ; ; .ADDRESS P.AHN ; ; P.AHO: .LONG 0 ; ; .ADDRESS TMP_DESC ; ; .PSECT $OWN$,NOEXE,2 TMP_DESC: .BLKB 8 FACILITY_DESC= P.AHK .PSECT $CODE$,NOWRT,2 HANDLE_MSG: .WORD ^M ;Save R2,R3,R4,R5 ; 5137 MOVAB G^TMP_DESC+2, R5 ;TMP_DESC+2, R5 ; MOVL 4(AP), R2 ;4(AP), ERR_DESC ; 5154 BLBC G^TERM_FLAG, 1$ ;TERM_FLAG, 1$ ; 5156 PUSHL 4(R2) ;4(ERR_DESC) ; MOVZWL (R2), -(SP) ;(ERR_DESC), -(SP) ; CALLS #2, G^SND_ERROR ;#2, SND_ERROR ; 1$: BLBC G^TRANSACTION_OPEN, 2$ ;TRANSACTION_OPEN, 2$ ; 5158 MOVW #270, (R5) ;#270, TMP_DESC+2 ; 5165 MOVW (R2), -2(R5) ;(ERR_DESC), TMP_DESC ; MOVL 4(R2), 2(R5) ;4(ERR_DESC), TMP_DESC+4 ; PUSHAB G^TRANSACTION_RAB ;TRANSACTION_RAB ; 5166 PUSHAB G^P.AHO ;P.AHO ; PUSHAB G^P.AHM ;P.AHM ; CALLS #3, G^LOG_FAOL ;#3, LOG_FAOL ; 2$: BLBS G^CONNECT_FLAG, 5$ ;CONNECT_FLAG, 5$ ; 5169 MOVL 4(R2), R4 ;4(ERR_DESC), POINTER ; 5172 MOVZWL (R2), R3 ;(ERR_DESC), R3 ; 5174 CLRL R2 ;I ; BRB 4$ ;4$ ; 3$: MOVZBL (R4)+, -(SP) ;(POINTER)+, -(SP) ; 5175 CALLS #1, G^TT_CHAR ;#1, TT_CHAR ; 4$: AOBLEQ R3, R2, 3$ ;R3, I, 3$ ; CALLS #0, G^TT_CRLF ;#0, TT_CRLF ; 5177 5$: CLRL R0 ;R0 ; 5180 RET ; ; 5181 ; Routine Size: 121 bytes, Routine Base: $CODE$ + 1453 ; 5182 2 SIGARGLST = .AP [CHF$L_SIGARGLST]; ; 5183 2 ; 5184 2 IF .SIGARGLST [CHF$L_SIG_NAME] GEQ %X'400' AND .SIGARGLST [CHF$L_SIG_NAME] LEQ %X'5FF' ; 5185 2 THEN ; 5186 2 RETURN SS$_RESIGNAL; ; 5187 2 ; 5188 2 PUTMSG_VECTOR [0] = .SIGARGLST [CHF$L_SIG_ARGS] - 2; ! No PC and PSL ; 5189 2 PUTMSG_VECTOR [1] = .SIGARGLST [CHF$L_SIG_NAME]; ; 5190 2 PUTMSG_VECTOR [2] = .SIGARGLST [CHF$L_SIG_ARGS] - 3; ; 5191 2 ; 5192 2 INCR I FROM 0 TO .SIGARGLST [CHF$L_SIG_ARGS] - 4 DO ; 5193 2 PUTMSG_VECTOR [.I + 3] = .(SIGARGLST [CHF$L_SIG_ARG1] + (.I*4)); ; 5194 2 ; 5195 2 $PUTMSG (MSGVEC = PUTMSG_VECTOR, ACTRTN = HANDLE_MSG, FACNAM = FACILITY_DESC); ; 5196 2 RETURN SS$_CONTINUE; ; 5197 1 END; ! End of KERM_HANDLER .EXTRN SYS$PUTMSG ;KERM_HANDLER U.36: .WORD ^M ;Save R2 ; 5078 SUBL2 #40, SP ;#40, SP ; MOVL 4(AP), R1 ;4(AP), SIGARGLST ; 5182 CMPL 4(R1), #1024 ;4(SIGARGLST), #1024 ; 5184 BLSS 1$ ;1$ ; CMPL 4(R1), #1535 ;4(SIGARGLST), #1535 ; BGTR 1$ ;1$ ; MOVZWL #2328, R0 ;#2328, R0 ; 5186 RET ; ; 1$: SUBL3 #2, (R1), (SP) ;#2, (SIGARGLST), PUTMSG_VECTOR ; 5188 MOVL 4(R1), 4(SP) ;4(SIGARGLST), PUTMSG_VECTOR+4 ; 5189 SUBL3 #3, (R1), 8(SP) ;#3, (SIGARGLST), PUTMSG_VECTOR+8 ; 5190 SUBL3 #4, (R1), R2 ;#4, (SIGARGLST), R2 ; 5192 MNEGL #1, R0 ;#1, I ; BRB 3$ ;3$ ; 2$: MOVL 8(R1)[R0], 12(SP)[R0] ;8(SIGARGLST)[I], PUTMSG_VECTOR+12[I] ; 5193 3$: AOBLEQ R2, R0, 2$ ;R2, I, 2$ ; CLRL -(SP) ;-(SP) ; 5195 PUSHAB G^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 ; 5196 RET ; ; 5197 ; Routine Size: 95 bytes, Routine Base: $CODE$ + 14CC ; 5198 1 %SBTTL 'End of KERMIT.B32' ; 5199 1 END ! End of module ; 5200 1 ; 5201 0 ELUDOM ; PSECT SUMMARY ; ; Name Bytes Attributes ; ; $PLIT$ 2876 NOVEC,NOWRT, RD ,NOEXE,NOSHR, LCL, REL, CON,NOPIC,ALIGN(2) ; $GLOBAL$ 300 NOVEC, WRT, RD ,NOEXE,NOSHR, LCL, REL, CON,NOPIC,ALIGN(2) ; $OWN$ 780 NOVEC, WRT, RD ,NOEXE,NOSHR, LCL, REL, CON,NOPIC,ALIGN(2) ; _LIB$KEY0$ 266 NOVEC,NOWRT, RD , EXE, SHR, LCL, REL, CON, PIC,ALIGN(1) ; _LIB$STATE$ 1985 NOVEC,NOWRT, RD , EXE, SHR, LCL, REL, CON, PIC,ALIGN(1) ; _LIB$KEY1$ 1158 NOVEC,NOWRT, RD , EXE, SHR, LCL, REL, CON, PIC,ALIGN(1) ; $CODE$ 5419 NOVEC,NOWRT, RD , EXE,NOSHR, LCL, REL, CON,NOPIC,ALIGN(2) ; . ABS . 0 NOVEC,NOWRT,NORD ,NOEXE,NOSHR, LCL, ABS, CON,NOPIC,ALIGN(0) ; Library Statistics ; ; -------- Symbols -------- Pages Processing ; File Total Loaded Percent Mapped Time ; ; SYS$COMMON:[SYSLIB]STARLET.L32;2 10093 114 1 598 00:00.8 ; SYS$COMMON:[SYSLIB]TPAMAC.L32;2 42 32 76 14 00:00.1 ; COMMAND QUALIFIERS ; BLISS VMSMIT/LIST=VMSMIT.MAR/MACHINE_CODE=(ASSEM,NOBINARY,UNIQUE)/NOOBJECT/SOURCE=NOHEADER ; Compilation Complete .END MAIN_ROUTINE