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