$verno==^d5 ; Major version number. $mnver==^d1 ; Minor version number (minimum: 1). $edno==^d182 ; Edit number increases independent of version. $who==^d2 ; Who edited, 0=Columbia. ; [182] 2=ex-Columbia employees ... ; ; Copyright (C) 1981, 2001, ; The Trustees of Columbia University in the City of New York. ; ; RECENT EDIT HISTORY (more at end): ; ;[TOMMYT]STAR:K20MIT.MAC.327, 3-Aug-2003 16:50:33, Edit by SLOGIN ;[182] TVT-Binary automatic mode to check if we are on a TVT ; . Change ARPAnet references in typeout to Internet since there ; may be some children who do know what the ARPAnet was... ;[TOMMYT]STAR:KERMIT.MAC.259, 30-Jul-2003 12:48:04, Edit by SLOGIN ;[181] Merge PANDA network binary mode ; . Fix reslin and subroutines to always load the terminal jfn, ; we were trying to clear the output buffer of .FHSLF! ; . put in default EMACS editing modes ;/w/fdc/timrek/kermit.mac, Mon Aug 6 14:28:27 2001, Frank (fdc@columbia.edu) ;[180] Buffered packet input instead per-character BIN% + better statistics. ;/w/fdc/timrek/kermit.mac, Sun Jan 28 17:33:20 2001, Frank (fdc@columbia.edu) ;[179] Added Long packets: ; . Added new symbol MAXBUF (10KB) ; . Increased packet buffer sizes to MAXBUF ; . Changed .setpk to allow sizes up to 9000 (near theoretical max) ; . Added CAPAS, WINDO, MAXLX1, MAXLX2 field support to rpar and spar. ; . Added long-packet sending/reading to spack/rpack. ; . Removed hardwired ^d94 packet-length references. ; . Speed improvements by up to a factor of 20. ; Changed default delay to 1 sec. ; Increased version number from 4.2 to 5.1. ; All long-packet related lines are marked "[179]". ; ;******************** Version 5.1 ************************ ;PK:KERMIT.MAC.259, 26-Jan-88 10:28:51, Frank (SY.FDC@CU20B) ;[178] Allow passwords to come from TAKE files. ;PK:KERMIT.MAC.259, 25-Jan-88 18:38:14, Frank (SY.FDC@CU20B) ;[177] Fix [176]. It wasn't conditioning the line correctly. ;PK:KERMIT.MAC.258, 11-Dec-87 14:16:09, Frank (SY.FDC@CU20B) ;[176] Allow commands to servers to be issued from TAKE file. ; Also, pass capabilities down to inferior process correctly. ;PS:KERMIT.MAC.6, 6-May-85 17:39:44, Frank (SY.FDC@CU20B) ;[175] Delete any dot at the end of outbound file names (like 'makefile.'). ;PS:20KERMIT.MAC.256, 2-May-85 12:21:34, Frank (SY.FDC@CU20B) ;[174] Several things: ;. Don't ACK a Z packet if the file can't be closed. ;. Fix server interpretation of remote directory command with no args. ;. Fix "push" command message to not assume connected to remote. ;. Give appropriate messages for local/remote mode server entry. ;. Recover from i/o errors in debug log writing. ;. Recover from incoming filenames that start with dot. ;PS:KERMIT.MAC.1028, 11-Dec-84 19:00:29, Frank (SY.FDC@CU20B) ;[173] Display contents of any incoming X packet. ;PS:KERMIT.MAC.1028, 11-Dec-84 18:37:05, Frank (SY.FDC@CU20B) ;[172] Don't use "*" for default file type in SEND command. ;PS:KERMIT.MAC.1021, 15-Nov-84 15:28:26, Frank (SY.FDC@CU20B) ;[171] Fix LOCAL CWD not to ask for password unless it has to. ;PS:KERMIT.MAC.1018, 15-Nov-84 11:39:00, Frank (SY.FDC@CU20B) ;[170] Don't send 4 null bytes at end of ITS binary file. ;PS:KERMIT.MAC.1012, 18-Oct-84 13:20:42, Frank (SY.FDC@CU20B) ;[169] Misc small fixes: ;. Make $XHOST allow ^C interrupt to work during SINFO. ;. Allow ^C interrupt in LOCAL TYPE. ;. REMOTE CWD Password: input was erroneously saying "?Too long" ;. In RUN command, don't let inferior log out. ;PS:KERMIT.MAC.1012, 18-Oct-84 13:20:42, Frank (SY.FDC@CU20B) ;[168] Fix SPAR not to overrule SET commands when entering server mode. ;PS:KERMIT.MAC.1004, 3-Oct-84 15:30:24, Frank (SY.FDC@CU20B) ;[167] Add ECHO command. ;PS:KERMIT.MAC.1000, 3-Oct-84 12:13:10, Frank (SY.FDC@CU20B) ;[166] Add ^M and ^P interrupts for getting unstuck from TRANSMIT ;PS:KERMIT.MAC.980, 2-Oct-84 19:36:41, Frank (SY.FDC@CU20B) ;[165] Add TRANSMIT command. ;PS:KERMIT.MAC.972, 1-Oct-84 22:00:43, Frank (SY.FDC@CU20B) ;[164] Make session logging work during script execution. ;PS:KERMIT.MAC.966, 30-Sep-84 13:27:04, Frank (SY.FDC@CU20B) ;[163] Add PC typeout to %JSERR ;PS:KERMIT.MAC.962, 28-Sep-84 16:37:25, Frank (SY.FDC@CU20B) ;[162] Add CLEAR command. ;PS:KERMIT.MAC.961, 28-Sep-84 08:37:26, Frank (SY.FDC@CU20B) ;[161] If SET SPEED done, remember it! ;PS:KERMIT.MAC.946, 27-Sep-84 15:15:23, Frank (SY.FDC@CU20B) ;[160] Refinements of previous edit, add SET/SHOW INPUT. ;PS:KERMIT.MAC.924, 26-Sep-84 16:35:53, Frank (SY.FDC@CU20B) ;[159] INPUT, OUTPUT, and PAUSE commands to provide a simple script facility. ;******************** Version 4.2 ************************ ; ;PS:KERMIT.MAC.918, 18-Jul-84 13:50:17, Frank ;[158] Clear up any XOFF condition when leaving protocol mode. ;PS:KERMIT.MAC.916, 13-Jul-84 17:57:24, Frank ;[157] Don't get stuck if XOFF'd while typing out server message (thanks Jeff). ;PS:KERMIT.MAC.914, 11-Jul-84 19:51:24, Frank ;[156] Debug previous edits. ;PS:KERMIT.MAC.899, 10-Jul-84 18:52:39, Frank ;[155] Fix recently introduced bug in INILIN that broke handshake code. ;PS:KERMIT.MAC.896, 10-Jul-84 17:12:04, Frank ;[154] Fix up session logging - avoid loss of nonopen JFN. Add CLOSE command. ;PS:KERMIT.MAC.893, 9-Jul-84 18:48:42, Frank ;[153] Always convert lc letters in incoming filenames to uc (for Bernie). ;PS:KERMIT.MAC.888, 6-Jul-84 16:41:26, Frank ;[152] Add PUSH, SET SPEED, and SET BREAK. ;PS:KERMIT.MAC.879, 5-Jul-84 12:53:06, Frank ;[151] Integrate connect code into this program, rather than running TTLINK ; in a lower fork. Use TELNET-style separate input & output forks with no ; interrupts. This was done for several reasons: ; . Release 6.0 of TOPS-20 doesn't allow multiple JFNs on a single TTY. ; . TTLINK did interrupt-driven i/o in a single fork, so would not work under ; batch, where BATCON feeds i/o depending on whether "pty hungry". ; . Fewer source files to keep track of. ;******************** Version 4.1 ************************ ; ;PS:KERMIT.MAC.871, 3-Jul-84 10:50:55, Frank ;[150] Add dispatch tables for server and generic commands, to force us ; to think about every case -- e.g. server shouldn't complain about NAKs. ;PS:KERMIT.MAC.870, 29-Jun-84 13:28:08, Frank ;[149] Fix bug in SET SEND/RECEIVE PADCHAR parsing (thanks, Daphne) ;PS:KERMIT.MAC.859, 26-Jun-84 14:26:37, Frank ;[148] Allow source & destination filespecs for GET to be given separately. ; ;PS:KERMIT.MAC.855, 26-Jun-84 12:38:18, Frank ;[147] Fix various problems reported by Ken Harrenstien (KLH@SRI-NIC): ; . Allow user to include !,?,@,;, etc in GET filespec with ^V quote. ; . Refuse links on file-transfer tty, not controlling tty! ; . Restore advice and links to tty after file transfer. ; ;PS:KERMIT.MAC.840, 28-May-84 17:33:56, Frank ;[146] Get monitor version number at startup. Under V6 or later, we can tell ; the real speed of the communication line (after all these years!). Also, we ; know speed of a local line. Account for all this in CHKLIN, and report the ; percent efficiency in STATISTICS command when baud rate is known. ; ;PS:KERMIT.MAC.820, 28-May-84 14:23:45, Frank ;[145] Allow LOCAL commands to be issued without the "LOCAL" prefix. ; Change LOCAL/REMOTE "DISK" to "SPACE". Fill in local TYPE and RUN commands. ; ;PS:KERMIT.MAC.810, 28-May-84 10:06:30, Frank ;[144] Misc bugs fixed: ; . In ENCODE, fix problem when exactly two consecutive repeat prefix ; characters appear in data. ; . In SRVCMD, decode contents of ACK (it was being displayed "bare"). ; . Remove test for remote at $SERVE, let server work over asg'd tty line. ; . In DOSRV, don't allow an I packet to cause a state transition. ; . Don't create empty debugging log files. ; . Fix bytesize in OPENF in RFIL3K (cosmetic) ; . Allow SET HANDSHAKE to also accept an octal number. ; ;PS:KERMIT.MAC.804, 28-May-84 09:55:50, Frank ;[143] Add SET FLOW-CONTROL, SET EXPUNGE. ; Change SET DEBUGGING LOG to LOG DEBUGGING (like other Kermits). ;PS:KERMIT.MAC.803, 19-Apr-84 12:16:59, Frank ;[142] Fix broken FILCNV for normal-form (from George Boyce, Cornell). ;PS:KERMIT.MAC.799, 12-Apr-84 16:29:05, Frank ;[141] Decode filename in R packet instead of taking it literally. ; Also, allow ERMSG and KERMSG macros to take addresses, like %JSERR and ; %JSKER, and make their message formats nicer and more consistent. ;PS:KERMIT.MAC.792, 5-Apr-84 13:23:38, Frank ;[140] Make ^X = ^Z if we're sending a directory (or deleted file) listing. ;PS:KERMIT.MAC.791, 3-Apr-84 16:40:01, Frank ;[139] Fix "help receive" (table out of order). Fix problem where server was ; sending a directory listing, interrupted, then asked to delete files, and ; sent rest of directory listing before deleting files. ;PS:KERMIT.MAC.788, 26-Mar-84 13:11:11, Frank ;[138] Make sure any logs are closed after server FIN command. ; ;PS:KERMIT.MAC.783, 23-Mar-84 11:00:06, Frank ;[137] When server gets a FINISH command, exit from program rather than ; going back to KERMIT command level, as we used to before. Also: ; . Add SET PROMPT ; . Add SET RECEIVE SERVER-TIMEOUT (for Bernie) ; . Fix password delimitation in server CWD command. ; . Fill in LOCAL CWD command. ; ;PS:KERMIT.MAC.778, 19-Mar-84 19:27:57, Frank ;[136] Fix mistake in CRC calculation when parity being used. ; ;PS:KERMIT.MAC.767, 15-Mar-84 16:31:22, Frank ;[135] Move handshake code from beginning of SPACK to end of RPACK. ; This allows IBM communication to work again. ; Also, handle carrier drop a little better in SPACK. ; Also, make sure we close any open file after ^C out of file transfer. ; ;PS:KERMIT.MAC.752, 14-Mar-84 11:50:47, Frank ;[134] Make SHOW LINE really test carrier, rather than possibly old flag. ; Put modem/carrier checking stuff in CHKLIN routine. Also: ; . Be more defensive about terminal modes after running TTLINK. ; . Make sure file gets closed if in cAncel state. ; . Don't assign device if own controlling TTY (even if it is a TVT). ; . In GIVEUP, obey setting of INCOMPLETE FILE DISPOSITION for incoming ; files that ask to be discarded. ; ;PS:KERMIT.MAC.736, 13-Mar-84 16:27:08, Frank ;[133] When sending an I packet, keep trying till retry limit exceeded. ; Also, include byte count and byte size in directory listing. ; ;PS:KERMIT.MAC.735, 9-Mar-84 09:49:03, Frank ;[132] In STATISTICS, only show last JSYS error if debugging. Also: ; . QCTL field in S/I packets and their ACKs was backwards! Fix in SPAR, RPAR. ; . Fix a couple details with timers, clear all pending before setting. ; . In the unlikely event that an incoming filename can't be dealt with, store ; the file as -UNTRANSLATABLE-FILENAME-.KERMIT.-1 to avoid sending an error ; packet & terminating the transfer. ; ;PS:KERMIT.MAC.726, 7-Mar-84 11:52:31, Frank ;[131] Add time stamps to debugging-packets log (suggested by BillW). Also: ; . When logging incoming data, include current load-adjusted timeout interval. ; . Try to use different timeouts for sending & receiving. ; . Double outgoing IAC bytes in SPACK if TVT-BINARY is set. ; ;PS:KERMIT.MAC.716, 5-Mar-84 12:15:09, Frank ;[130] Rename SET TAC to SET TVT, because it really applies to all ARPANET ; TVTs. If TVT, must still OPENF line in 8 bit mode. Also: ; . In INCHAR, detect carrier loss and close, deassign line when it happens. ; . Take class scheduler into account when getting load averages. ; ;PS:KERMIT.MAC.705, 2-Mar-84 10:31:44, Frank ;[129] Install ARPANET TAC support changes from Dale Chase, ISI. ; Code mostly adapted from the TOPS-20 MODEM program (Bill Westfield, SRI). ; Dale's code modified at Columbia to operate through SET TAC rather than by ; determining TVT status through a site-dependent JSYS (DEC vs BBN vs...). ; ; Important installation note from Dale: ; ; Some TOPS-20s may need a patch or two to allow user programs to send the ; necessary telnet protocol negotiations. The monitor cell NVTDOD must contain ; "400000,,RSKP" so that TOPS-20 will accept the negotiation. And some sites ; may have code that "doubles" any IAC (octal 377) characters sent from a ; network terminal. We turned that off here by putting a "RET" in CHKIAC. If ; TOPS-20 doubles IACs, this program will not be able to negotiate telnet ; binary mode. ; ;PS:KERMIT.MAC.691, 29-Feb-84 17:00:05, Frank ;[128] Several final things before field-test: ; . Accept null data field in server commands. ; . In RPAR, ask other side to time us out based on our 15-min ldav rather ; than hardwired constant, DRTIM. New routine ADJTIM does this. ; Also, raise DRTIM from 8 to 15 seconds, since we're probably in better ; control of the timeouts than the KERMIT on the other side. ; . In local mode, don't mix up blips with debugging output. ; . When starting to send, check for incoming NAKs to cut short any delay. ; . Add support for LOG SESSION command. ; . Fix mistake in setting file size by clearing RCHR before entering RD state. ; . Ditto for SCHR when entering SD state. ; . Exchange parameters before sending file related commands to a server. ; . Don't send garbage in X headers after a timeout. ; . Allow RECEIVE when local, for talking to a remote non-server (undo [94]). ;PS:KERMIT.MAC.659, 24-Feb-84 18:53:47, Frank ;[127] Don't assign or open comm line if it's the controlling terminal, don't ; reset line between transactions if a server. This prevents a server that got ; detached (e.g. when carrier dropped) from making the line unavailable for ; further use. ;PS:KERMIT.MAC.653, 24-Feb-84 17:14:45, Frank ;[126] Put in all the transaction logging code, show status of it in SHOW. ;PS:KERMIT.MAC.641, 23-Feb-84 19:01:24, Frank ;[125] LOG command, parsing only. ;PS:KERMIT.MAC.638, 23-Feb-84 17:36:40, Frank ;[124] When sending a multipacket response to a server command, start with ; an S packet unless using type 1 block check, in which case start with X. ;PS:KERMIT.MAC.636, 23-Feb-84 17:10:52, Frank ;[123] Add S and N packet heuristics to RPACK to help resync when fancy ; block check types are being used, but the two sides lose track. ;PS:KERMIT.MAC.631, 23-Feb-84 14:38:50, Frank ;[122] Make directory listing neater. ;PS:KERMIT.MAC.629, 23-Feb-84 10:41:34, Frank ;[121] Fix turning off ^C trap after FINISH, again. ; Don't try to CLOSF or GNJFN if sending generated text rather than files. ; Restore normal i/o after sending server help message. ; Fix SRVCMD to actually do what it says it does. ; Fix problem with spurious repeat counts appearing in file headers. ;PS:KERMIT.MAC.627, 24-Jan-84 18:45:56, Frank ;[120] Add REMOTE HELP and server support for it. ;PS:KERMIT.MAC.617, 24-Jan-84 13:11:20, Frank ;[119] Decode incoming filenames and validate them more completely. ;PS:KERMIT.MAC.613, 23-Jan-84 19:28:23, Frank ;[118] Server does file deletions. ;PS:KERMIT.MAC.612, 23-Jan-84 18:01:33, Frank ;[117] Fix bugs: SEND x (INITIAL) was broken, and check for receive-packet ; buffer overflow, to prevent writing over other data (thanks to Greg Small ; of Berkeley for uncovering that one). ;PS:KERMIT.MAC.603, 19-Jan-84 17:08:00, Frank ;[116] Server sends directory listings. ;PS:KERMIT.MAC.570, 18-Jan-84 10:30:07, Frank ;[115] Rewrite directory listing code to allow for i/o redirection. ;PS:KERMIT.MAC.566, 17-Jan-84 11:03:38, Frank ;[114] Rewrite DIAMSG to give more informative message. ; When logging packets, precede received packets by "R:", sent by "S:". ;PS:KERMIT.MAC.31, 16-Jan-84 16:31:57, Frank ;[113] Add LOCAL DELETE command. ;PS:KERMIT.MAC.30, 16-Jan-84 16:15:25, Frank ;[112] Fix server command business of ACK vs Text Header; get/send one or the ; other, but not both. ;PS:KERMIT.MAC.18, 16-Jan-84 12:15:04, Frank ;[111] Make file stepping mechanism do 1-file lookahead. Add LOCAL DIRECTORY. ;PS:KERMIT.MAC.551, 13-Jan-84 19:16:44, Frank ;[110] Release TTY JFN when ^C'd out of server mode. ; Thanks to Kimmo Laaksonen (Helsinki), Norm Kincl (HP Labs) for reporting ; this bug, which surfaced when user detached after ^C out of server mode, ; leaving TTY assigned and unavailable for new jobs. ;PS:KERMIT.MAC.550, 13-Jan-84 17:36:32, Frank ;[109] Fix bad bug in 8th-bit prefixing. Also bug in SET PARITY command that ; prevented SET PARITY NONE from ever working. ;PS:KERMIT.MAC.542, 11-Jan-84 09:28:05, Frank ;[108] Add REMOTE DELETE, REMOTE DIRECTORY. Misc cleanups, minor fixes. ; Merge SDEBUG and DIAMSG. Better recovery from SPACK failures. ;PS:KERMIT.MAC.540, 10-Jan-84 17:40:57, Frank ;[107] Added server support for remote CWD command. ;PS:KERMIT.MAC.521, 9-Jan-84 18:26:43, Frank ;[106] Added REMOTE CWD command. ;PS:KERMIT.MAC.512, 9-Jan-84 12:44:11, Frank ;[105] Debug [104], add REMOTE HOST command. ;PS:KERMIT.MAC.500, 6-Jan-84 19:40:33, Frank ;[104] Add server and user TYPE command. ; Collapse a lot of redundant code into routines like SRVCMD and DOSRV. ;PS:KERMIT.MAC.499, 6-Jan-84 11:50:51, Frank ;[103] Provide disk quota query service in server mode. ;*************** Major Version 4.0 **************** ; ;(Old Edit History moved to end of file, after END statement) ; THINGS TO DO... ; ; * Internal cleanup -- do state transition, packet input & ACK/NAK, etc ; globally like C-Kermit, instead of replicating the same code all over. ; ; * Check/fix bugs: ; . Page mode on/off on assigned line (got some complaints, not verified). ; . ^A in local mode sometimes gets lost. ; . ^A sometimes not turned off (e.g. after ^C out of f.t., then connect) ; ; * Move receive-file opening code to RDATA (& REOF); don't open file until ; first data packet (or EOF if null file) arrives, to prepare for attributes. ; ; * Finish adding server functions: COPY, RENAME, WHO, MESSAGE, STATUS, RUN, ; KERMIT (e.g. "remote kermit set file bytesize 8"). ; ; * Do something with the REMOTE ERROR command (like think of a better name, ; make it visible, and document it, maybe put it on ^E). ; ; * When local and receiving a file, if ^Z has no effect, send an error packet ; to shut down the transaction. ; ; * Add host commands. Fork an Exec, pass commands to it in rescan, somehow ; pipe the Exec's typeout back, packetized. Too bad TOPS-20 isn't UNIX... ; Maybe use LOTS's new pipe device? ; ; * Add some support for file attribute packets. ; ; * Integrate %JSERR etc with the debugging log mechanism? ; ; * When receiving a file, put the name I open the file under in the data field ; of the ACK to the File Header. When receiving File Headers in local mode, ; print the contents of the data field instead of doing a JFNS if the data ; field is not empty. ; ; * In local mode, allow running as a background fork. Or use ^P as an ; interrupt character during file transfer to Push to an inferior exec while ; the transfer continues above. ^A should still give progress report. ; ; * Separate out the routines according to ISO levels. In particular, make the ; transport-level routines available to any other application (like mail, ; e.g. SMTP) that may want to use them. ; ; * For various reasons, it might be nice to allow KERMIT-20 to send its ; packets to a file, without another KERMIT to talk to. This will translate ; a file into all printable characters (with data compaction, etc) suitable ; for transmission over an RJE link or other picky communication media. ; ; * Parse single characters in nicer ways, like CONTROL X, or "^X", as well ; as octal numbers (in all the SET commands). Title Kermit -- That's Celtic for "free". ; Needs only standard DEC-distributed external files MONSYM, MACSYM, CMD. search monsym,macsym,cmd .require sys:macrel,sys:cmd ; Originally written by Bill Catchings, Columbia University, April 1981. ; Taken over by Frank da Cruz, Columbia University, March 1983. ; ; This program is the DEC-20 implementation of Columbia University's KERMIT ; file transfer protocol for use over serial asynchronous communication lines. ; See the KERMIT user and protocol manuals for the specifications. ; ; Version 1, 1981-82: Basic service (Bill) ; ; Version 2, Feb 83: Basic server service (Bill) ; ; Version 3, Mar 83: Local mode, TTLINK, talk to server (Frank) ; ; Version 3B, Oct 83: I packets, ^X,^Z interrupts, TAKE, DEFINE, etc (Frank) ; 3C, Nov 83: 8th-bit prefixing, repeat counts. ; 3.4, Dec 83: 2- and 3-character block checks. ; ; Version 4, Jan 84: Advanced server functions, LOG, ARPAnet support (Frank) ; ; Version 4.1, Jul 84: Integrated CONNECT code, no more TTLINK (Frank) ; ; Version 4.2, Oct 84: Non-Protocol upload/download, login scripts (Frank) subttl Help Text. ;[18] Lengthy help messages added in edit [18]. ; Overall summary, more detailed help text is with each command. ; hkermi: asciz | KERMIT is a file transfer protocol for use over an asynchronous serial telecommunication line. Files are broken up into "packets" with checksums and other control information to promote error-free and complete transmission. KERMIT-20 is the KERMIT implementation for the DECSYSTEM-20. KERMIT-20 can be run "remotely" from another computer (e.g. a microcomputer), or "locally" with a remote Kermit on the other end of an assigned TTY line (e.g. over an autodialer connection) You can run Kermit interactively by typing repeated commands in response to its "Kermit-20>" prompt, or you can invoke it from the TOPS-20 Exec with a single command line argument (e.g. "kermit receive"), or you can run it as a remote server. KERMIT-20 command summary -- optional parts are in [brackets]: * For exchanging files using KERMIT protocol: SEND file(s) [(INITIAL) file] RECEIVE [file] GET remote-file(s) SERVER * For acting as local Kermit: CONNECT [line], INPUT, OUTPUT, CLEAR SET: LINE, FLOW, PARITY, DUPLEX, HANDSHAKE, ESCAPE, BREAK, SPEED * For talking to a server: BYE, FINISH, GET remote-file(s), SEND file(s); REMOTE: DISK-USAGE, TYPE, CWD, DIRECTORY, DELETE, HELP, HOST * Setting nonstandard transmission and file parameters: SET: DEBUG, DELAY, FILE, INCOMPLETE, INPUT, ITS, PROMPT, RETRY, TVT; SET SEND (or RECEIVE): END-OF-LINE, START-OF-PACKET, PACKET-LENGTH, PAUSE, PADDING, TIMEOUT, SERVER-TIMEOUT DEFINE a macro for a combination of SET commands. * For non-protocol data transfer: INPUT, OUTPUT, PAUSE, CLEAR, TRANSMIT, LOG SESSION * For interrupting transmission: Control-X (^X), ^Z, ^C * Getting information: HELP [topic], STATISTICS, SHOW, ^A * Recording information: LOG or CLOSE TRANSACTIONS, SESSION, DEBUGGING * Executing command files: TAKE * Leaving the program: EXIT, QUIT, BYE, PUSH If you have a file called KERMIT.INI in your login directory, KERMIT-20 will execute an implicit TAKE command on it upon initial startup. KERMIT.INI may contain any KERMIT-20 commands; DEFINE and SET commands are the most useful. For further information, type "help" for any of the above, e.g. "help set", or see the "Kermit Users Guide" and the "Kermit Protocol Manual" for complete details. | subttl Definitions pdlsiz==^d200 ; Stack size, be generous. takel==^d20 ;[78] TAKE command JFN stack size. f=0 ; AC definitions: flag AC (not used), t4=+1>+1>+1 ; temporary AC's, q4=+1>+1>+1 ; and preserved AC's. state=q4+1 ; State of the automaton. rchr=state+1 ; Total file characters received. schr=rchr+1 ; Total file characters sent. debug=schr+1 ;[22] Debugging (0=none, 1=states, 2=packets) mappag==200 ; Single page window for mapping files. SOH==^o001 ; ASCII Start of header character. XON==^o021 ; XON is defined to be Control-Q (ASCII DC1). MAXBUF==^d10240 ; Packet buffer size [179] MAXPKT==^d94 ; Packet buffer size [179] IOBUF==^d1024 ; Communications i/o buffer [180] maxpkt=="~"-" "+2 ; Maximum size of a packet. dmxtry==5 ; Default number of retries on a packet. dimxtr==20 ; Default number of retries send initiate. drpsiz==^d80 ; Default receive packet size. dspsiz==^d80 ; Default send packet size. spmin==^d10 ;[47] Minimum size packet we want to send. spmax==^d9000 ;[47] Maximum ... dstim==^d8 ; Default send time out interval. drtim==^d13 ;[128] Default receive time out interval. dsrvtm==^d30 ;[20] Def timout when awaiting server commands. drpaus==0.0 ;[35] Default pause before ACKing packets. dspaus==0.0 ;[36] Default pause before sending packets. dspad==^o0 ; Default send padding char. drpad==^d0 ; Default receive padding char. dspadn==^d0 ; Default number of send padding chars. drpadn==^d0 ; Default number of receive padding chars. dseol==.chcrt ; Default send EOL char. dreol==.chcrt ; Default receive EOL char. dsquot=="#" ; Default outbound control prefix. drquot=="#" ; Default incoming control prefix. dqbin=="&" ; Default 8th-bit prefix. drept=="~" ; Default repeat count prefix. ddelay==^d1 ; Default delay before the first packet, secs. dxfull==0 ;[18] Full duplex. dxhalf==1 ;[18] Half duplex. defesc==34 ; Default CONNECT escape character is ^\. defpar==none ; Default parity. defits==-1 ;[75] Handle ITS binary files by default. defics==0 ;[160] Default case search for INPUT commands. defita==0 ;[160] Default timeout action for INPUTs. defito==5 ;[160] Default timeout interval for INPUTs. maxtim=^d94 ;[2] Maximum timeout interval to set, secs. minlod=4.0 ;[2] Minimum ldav to consider for timeout. maxlod=50.0 ;[2] Maximum ldav to consider for timeout. blip=^d5 ;[4] Every this many packets, print a blip. mnblen==^d200 ;[77] Macro name buffer length (words). mtblen==^d1000 ;[77] Macro text buffer length (words). macmax==^d100 ;[77] Maximum number of macros. ;[129] ARPA definitions ifndef STAT%, ; So this will assemble ifndef TCP%NT, ; without symbols from BBN TCP monitor. iac==377 ; arpanet telnet IAC will==373 ; telnet will