From ebb2ff2af569d5822b70ee555a32d27cf7494816 Mon Sep 17 00:00:00 2001 From: Jeff Armstrong Date: Sun, 25 Oct 2026 17:42:06 -0400 Subject: Initial import of 4.11 --- doc/cpkerm.mss | 2616 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2616 insertions(+) create mode 100644 doc/cpkerm.mss (limited to 'doc/cpkerm.mss') diff --git a/doc/cpkerm.mss b/doc/cpkerm.mss new file mode 100644 index 0000000..2318208 --- /dev/null +++ b/doc/cpkerm.mss @@ -0,0 +1,2616 @@ +@Part(CPKERM,root="kuser") +@string(-cpmversion="@q<4.11>") +@Chapter +@index + +@case(device,file="********@* +This document is formatted as an ordinary, plain text ASCII disk file. +Typeset copies are available in the Kermit User Guide from Columbia +University. Changes should be made to CPKERM.MSS.@*********") + +@Begin +@i(Program:)@\Mike Freeman, Bonneville Power Administration, Vancouver, WA, +USA, with contributions from many others. + +@i(Language:)@\8080 Assembler, LASM, M80, or MAC80 + +@i(Version:)@\@value(-cpmversion) + +@i(Date:)@\April 1, 1991 + +@i(Documentation:)@ @ Christine Gianone, Columbia University, with +contributions from many others. + +@end +@label<-k80> + +@i +@begin +@tabclear()@tabset(3.5inches,4.0inches) +Local operation:@\Yes +Remote operation:@\Partial, Auto-receive only +Login scipts:@\Yes, limited +Transfer text files:@\Yes +Transfer binary files:@\Yes +Wildcard send:@\Yes +File transfer interruption:@\Yes +Filename collision avoidance:@\Yes +Can time out:@\Yes +8th-bit prefixing:@\Yes +Repeat count prefixing:@\No +Alternate block checks:@\Yes +Terminal emulation:@\Yes, VT52 and others +Communication settings:@\Yes +Support for dial-out modems:@\No +Transmit BREAK:@\Yes; most versions +IBM communication:@\Yes +Transaction logging:@\No +Debug logging:@\No +Session logging:@\Yes +Raw file transmit:@\Yes +Act as server:@\No +Talk to server:@\Yes +Advanced commands for servers:@\Yes +Command/init files:@\Yes +Command macros:@\No +Local file management:@\Yes +Handle file attributes:@\No +Long packets:@\No +International Character Sets:@\No +Sliding Windows:@\No +Printer control:@\Yes, limited +@end + +@Section + +CP/M Kermit is the first of all the Kermit programs. It was originally +written by Bill Catchings of Columbia University in 1981. Over the years, +contributions have been added by many people, including +Charles Carvalho (ACC), +Bernie Eiben (DEC), Nick Bush (Stevens Institute of Technology), +John Bray (University of Tennessee), Bruce Tanner (Cerritos College), +Greg Small (University of California at Berkeley), +Kimmo Laaksonen (Helskini University of Technology), +Brian Robertson (Aberdeen University), A.J. Cole (Leeds University), +John Shearwood (Birmingham University), +Tony Addyman (Salford University), Godfrey Nix and Martin Carter +(Nottingham University), Ian Young (Edinburgh University), Chris Miles +(Manchester University), Richard Russell, Dave Roberts, +and many, many others. + +Version 4.11 is the work of Mike Freeman of the Bonneville Power +Administration in Vancouver, WA, USA, with assistance from Russell Lang of +Monash University in Australia, Jay S Rouman of Mt Pleasant MI, and others. + +@section + +Features added since version 4.09 include: +@begin +SET COLLISION {BACKUP/DISCARD/OVERWRITE/RENAME} + +SET INCOMPLETE-FILES {DISCARD/KEEP} + +Many REMOTE commands, including some REMOTE SET commands + +RENAME command to rename CP/M files from within Kermit-80 + +SET RECEIVE/SEND PACKET-LENGTH nn (nn <= 94) + +SET AUTORECEIVE ON now implies that Kermit-80 ALWAYS tries to +receive more files when a RECEIVE transaction has completed. The +user can cancel with ^C. + +QUIT is now a synonym for EXIT. + +STAY is now a synonym for SET NO-EXIT. + +CONNECT, RECEIVE and SEND may be abbreviated to C, R and S, +respectively. + +Cancellation of TAKE, TYPE, and PRINT commands from the keyboard. + +Many bug fixes. + +Kermit-80 Version 4.11 now supports the Microbee family of +computers (56K, 64K, 128K and 256K) manufactured by +Microbee Systems, Ltd, of Australia. + +Kermit-80 now supports the Ampro Little Board system. +@end + +@section + +Use the SET command to establish necessary communication parameters like +SPEED and PARITY. Use the CONNECT to establish a terminal connection to +the remote computer. If you are dialing out with a modem, type the necessary +dialing commands to the modem first. The dialing process can be automated +to some extent using a TAKE command file containing INPUT, OUTPUT, and PAUSE +commands. Then log in to the remote computer or service and conduct a session. + +To transfer a text file, start the Kermit program on the remote computer and +tell it to SEND the desired file (if uploading) or to RECEIVE (if +downloading). "Escape back" to CP/M Kermit, usually by typing Ctrl-] (hold +down the Control key and press the right bracket key) and then type the letter +C. At the CP/M Kermit prompt type RECEIVE (if you gave a SEND command to the +remote Kermit) or SEND @i (if you gave a receive command to the +remote Kermit). + +To transfer a binary file, give the command SET FILE TYPE BINARY to the remote +Kermit and SET FILE-MODE BINARY to CP/M Kermit before issuing any SEND or +RECEIVE commands. + +Multiple files of the same type (text or binary) can be transferred in a +single operation using "wildcard notation" (including special characters like +asterisk in the filename). + +When file transfer is complete, CONNECT back to the remote computer, +use the EXIT command to exit from the remote Kermit program, finish your work +on the remote computer, log out from it, escape back to CP/M Kermit again, +and EXIT from CP/M Kermit. + +The remote Kermit may also be put into "server mode" to simplify these +operations. Give the SERVER command to the remote Kermit, escape back to CP/M +Kermit, and then issue SEND commands to send files (upload), GET @i +commands to receive (download) files, REMOTE commands to request various other +services (like directory listings) from the remote Kermit. When you are done, +give a BYE command to terminate your remote session, or a FINISH command to +tell the remote Kermit to return to its prompt so you can CONNECT back and +conduct further business. + +That's all there is to it. + +@Section + +There are essentially two versions of CP/M - Versions 2.2 +and 3.0 (sometimes also called CP/M PLUS.) + +CP/M-80 Version 2@q<.>2 is run in +a single 64 Kbyte "page", usually the largest amount of memory on +Z80 or 8080 systems. The BIOS (Basic input/output system), +BDOS (Basic Disk Operating System) and CCP (Command console processor) +all share memory with any transient program the user may wish to run. +Some basic commands are +available through the CCP, like DIR, ERA etc,while others are loaded +from disk into the transient program area and run as a program, +like PIP or STAT. + +CP/M Version 3@q<.>0 (or CP/M PLUS) effectively removes the requirement +of having the CCP and BDOS along with a chunk of the BIOS code being +resident in the single 64k byte page of memory. This allows even more +space for programs in the TPA, but still a little less than the maximum +of 64k. It is substantially different from CP/M version 2@q<.>2, with +lots of added features. Kermit-80 uses very few additional version +3@q<.>0 features, and only where absolutely necessary. + +CP/M file specifications are of +the form @q(DEV:XXXXXXXX.YYY), where +@begin + @q(DEV:)@\is a @i, +normally the A:@ or B:@ floppy. If omitted, the device name defaults +to your connected diskette. + +@q(XXXXXXXX)@\is a @i of up to 8 characters. + +@q(YYY)@\is the @i, up to 3 characters. + @end + File names and file types may contain letters, digits, and some +special characters, including dash, dollar sign, and underscore, but +no imbedded spaces. Upper and lower case letters are equivalent. + + "Wildcard" file-@|group specifications are permitted in file names +and file types (but not device names) within certain contexts; a "@q(*)" +matches a whole field, a "@q(?)" matches a single character, including +space. Examples: "@q(*.F??)" specifies all files whose @i start +with F and are 1, 2, or 3 characters long; "@q(F?.*)" specifies all +files whose names start with F and are no more than two characters +long (before the trailing spaces). + +The five CP/M commands are: + @Begin +DIR @i@\Lists the the names of the specified files. The +default file specification is "*.*". Example: @w<"@q(DIR B:*.FOR)">. + +ERA @i@\Erases (deletes) the specified file(s); wildcards allowed. + +REN @i @i@\Changes the name of a file from @i to +@i, e.g.@* +@w<"@q(REN NEW.FOR=OLD.FOR)">. + +SAVE@\Saves the specified number of memory blocks into a file. +(Not on CP/M Plus systems) + +TYPE @i@\Types the specified file on the screen, e.g. +@w<"@q(TYPE FOO.TXT)">. + @End +The most important programs are: + @Begin +STAT@\Gives statistics on disk usage; sets and displays IOBYTE. +(Not on CP/M Plus systems) + +PIP@\@u

eripheral @unterchange @u

rogram. Copies files. In +response to the "@q(*)" prompt, give a command of the form + @example + Wildcards ("@q(*)" for a whole field or "@q(?)" for a letter) can be used. +Examples: "@q(A:=B:*.*)" to copy a whole disk, "@q(A:=B:*.FOR)" to copy all +the Fortran programs from disk B to disk A. If the disk specification +is omitted, your "connected" disk is assumed. Command line arguments +are also accepted, e.g. "@q(PIP A:=B:*.*)". + +@End + +There are equivalent commands for CP/M Version 3.0, but are not loaded into +memory in the same way as for CP/M Version 2.2. +For further information on CP/M, consult your microcomputer manual or +a CP/M handbook. + +@Section + +Since Kermit-80 runs on a standalone micro, it is always in control of the +screen -- it is always in "@i@index mode". It includes a +terminal emulator for establishing a connection to a remote computer or +service, and during file transfer, it keeps the screen updated with the +file name and the packet number, whether sending or receiving. + +@index Kermit-80 is capable of an imprecise or "fuzzy" timeout on an +input request, and can break deadlocks automatically. In most cases, this is +not important, because the Kermit program on the other side is most likely +able to handle the timeouts. The timeouts done by Kermit-80 are fuzzy because +they depend on the speed of the processor and other factors that can vary from +system to system. + +If, despite the timeout capability, the transmission appears to be stuck (and +you can tell that this has happened if the screen fails to change for a while) +you can type carriage return to have the micro do what it would have done on a +@Index[Timeout] timeout, namely NAK@Index[NAK] the expected packet to +cause theforeign host to send it again (or, if the micro is sending, to +retransmit the last packet). Micro/@|micro or micro/@|IBM-@|mainframe +transfers could require this kind of manual intervention. + +File transfers may be interrupted in several ways. +@begin +@Index[Control-C] +Control-C@\This will return you to Kermit-80 command level immediately, so that +you can connect back to the remote system, or take any other desired action. + +@Index[Control-X] +Control-X@\When sending a file, this will terminate the sending of the current +file with a signal to the KERMIT on the other side to discard what it got so +far. If there are more files to be sent, KERMIT-80 will go on to the next one. +When receiving a file, KERMIT-80 will send a signal to the remote KERMIT to +stop sending this file. If the remote KERMIT understands this signal (not all +implementations of KERMIT do), it will comply, otherwise the file will keep +coming. In any case, the remote KERMIT will go on to the next file in the +group, if any. + +@Index[Control-Z] +Control-Z@\Like Control-X, except if a file group is being transmitted, this +will stop the transmission of the entire group. If only a single file is being +transmitted, it works exactly like Control-X. + +@Index[Carriage Return] +@Index[CR] +Carriage Return@\If you type a carriage return Kermit-80 will resend the +current packet. You may do this repeatedly, up to the packet retry limit +(somewhere between 5 and 16 times) for a particular packet. +@end + +@heading + +Kermit-80 is an interactive program. It issues a prompt, you type a command. +The process repeats until you give the EXIT command to leave the program. + +Commands consist of keywords, filenames, and numbers. Keywords may be +abbreviated to minumum unique length. "?" may be typed to request a menu of +the available options for the current field at any point in a command. ESC +may be typed at any point in a command to fill out the current keyword or +filename; if sufficient characters have not been typed to identify the current +field uniquely, Kermit-80 will sound a beep and allow you to continue from +that point. Here are Kermit-80's commands: +@begin +@Index[Break] +BREAK@\Send a BREAK condition to the remote computer. This is only possible +if your system is capable of sending breaks. It is intended to be used with +PAUSE, OUTPUT, etc and the TAKE command to do wierd and wonderful things, like +automatic logging on to a remote host. + +@Index[Bye] +BYE@\When talking to a remote Kermit Server, this command shuts down +the server and logs it out, and also exits from Kermit-80 to CP/M command +level. + +@Index[Virtual Terminal]@Index[Escape Character]@Index[Connect] +CONNECT@\Establish a terminal connection to the computer, service, or device +that is +connected to the serial port, i.e.@ pass all typein to the serial port and +display all input from the serial port on the screen. Also, emulate a DEC VT52 +to allow cursor control, screen clearing, etc., if VT52-EMULATION is ON (see +below), in which case you should also set your terminal type on the remote host +to VT52. (Some versions emulate other terminals.) The CONNECT command may +be abbreviated by the single letter C. + +@\Warning: VT52 emulation is only successful if your system or its +attached terminal can do the same sort of functions as a genuine +VT52. Things to beware of are cursor addressing, clear to end of page +and end of line, clear screen, home cursor, and clear-and-home +functions. The useability of VT52 emulation depends entirely on +how many of the VT52 functions can be emulated by your micro or terminal. + +@\The escape character differs from micro to micro; when you issue +the CONNECT command, the micro will print a message telling you how +to get back. The escape sequence is generally an uncommonly-@|used +control character, like CTRL-backslash or CTRL-rightbracket, followed +by a single letter "command": +@begin +C@\Close Connection, return to @q(Kermit-80>) command level. + +S@\Display Status of connection, but maintain remote connection. + +@q@\List available single-character commands. + +0@\(zero) Send a null (0) character. + +B@\Send a BREAK signal. Most systems provide this function. + +D@\Drop the line. Used on the Apple with modem. Automatically +closes the connection after dropping the line. The TORCH system +acknowledges this command but does nothing. + +P@\Toggle printer on or off. Allows you to copy whatever goes +to the screen to the printer. + +S@\Temporarily suspend logging to the log file. + +Q@\Restart logging to the log file + +@q<^]>@\(or whatever - a second copy of the escape character) Send the +escape character itself to the remote host. + @end + +@Index[Copy] +@Index[File Copying] +COPY @i @i +@\Copy a named file to another file, either on the same drive or another +drive. + +@Index[Directory] +DIRECTORY@\This provides a directory listing of the specified files. +If no files are +specified, all files on the default disk are listed. File sizes, in K, are +included. You may interrupt the listing at any time by typing any character. +The listing (even if interrupted) concludes with a display of the amount of +free storage left on the disk. You can inhibit the display of file sizes by +SET DIRECTORY OFF. + +@Index[Erase] +ERASE @i@\This executes the CP/M ERA command on the specified +file(s). The names of the files being erased are not displayed. + +@Index[Exit] +EXIT@\Quit back to CP/M. The return is made by a JMP 0 (Warmstart). QUIT +is a synonym for EXIT. + +@Index[FINISH]FINISH@\Like LOGOUT, but shuts down the remote server without +logging it out. Leaves you at Kermit-80 command level; subsequent CONNECT +commands will put you back at host system command level. + +@Index[GET]GET @i [@i] +@\When Kermit-80 is talking to a Kermit Server on +the host, you should use the GET command to request the server to send +files to you, for example: +@example +You may specify a local filename if you want to save the remote file +under a different filename. +Limitation: If you request an alternate block check type using the SET BLOCK +command, the GET command will not communicate it to the remote server. If you +want to have type 2 or 3 block checks done when getting files from the server, +you have to issue the appropriate SET BLOCK command to the remote KERMIT before +putting it in server mode. + +@Index[Help]HELP@\List all these commands, with a short description +on what the commands do. A question mark will do the same. If you have +already typed a command but do not know what the parameters are, type a +space (to indicate the end of the command) and a question mark. You will +be informed of what Kermit can expect at that stage. + +@Index[Input]INPUT @i @i@\Setup a text line and time delay +for your CP/M system to expect from the host, then wait up to the given number +of seconds (approximately) for text to be sent to your CP/M-80 system. + +@Index[LOG]LOG @i@\When CONNECTed to a foreign host as a terminal, +log the terminal session to the specified diskette file. This functionality +depends to some extent on the remote host's ability to do +@Index[XON/XOFF]XON/XOFF flow control, and does not guarantee a complete +transcript (after all, that's what the KERMIT protocol is for). The log file +is closed when the connection is closed by typing the escape character followed +by the single-@|character command "C". + +@Index[Append] +@\It is possible to temporarily suspend logging during connect +state. Typing an escape sequence can turn file logging on +( R for Resume) or off ( Q for quiet). + +@\Re-entering connect state will re-open the previously opened +log file and append to that file. + +@Index[LOGOUT]LOGOUT@\Like BYE, but leaves you at Kermit-80 command level. + +@indexOUTPUT @i@\Send the text to the remote computer as if +you had typed it. + +@Index[Pause]PAUSE @i@\If this command is issued your CP/M +system will wait a while before proceeding with another command. +This is intended for use in TAKE commands, where you may want to pause +for a while before proceeding with the rest of the TAKE file. The +actual delay is very variable between systems, and values should +be determined on a trial and error basis. + +@Index[Print]PRINT@\Print a file to the console and printer. Output to +the printer is buffered by the Kermit-maintained printer buffer. +This routine is identical to TYPE but characters are echoed to the printer +as well as to the screen. Suspending and canceling output is as +described in TYPE. + +QUIT@\Synonym for EXIT. + +@Index[RECEIVE]@Index[File-Warning] +RECEIVE @i@\Receive file(s) from the remote +Kermit, and save them under the names provided in the file headers +supplied by the remote host. If a local filespec is given, the file is +saved under the given filename. If the names aren't legal, use as +many legal characters from +the name as possible (see the description of SET FILE-WARNING below). If +there's a conflict, and FILE-WARNING is ON, warn the user and try to build a +unique name for the file by adding "@q<&>" characters to the name. RECEIVE +can be abbreviated to the single letter R. + +@indexREMOTE @i@\Send a command to a remote Kermit server. +The results are sent back to your CP/M screen. When two arguments are +required and specify less than two in the command, you will be prompted for +the missing arguments. REMOTE commands include: +@begin +REMOTE CD [directory]@\Ask the remote server to change its default directory. +If no directory is specified, the server changes to its login directory. + +REMOTE COPY file1 file2@\Ask the remote server to copy file1 to file2. + +REMOTE RENAME file1 file2@\Ask the remote server to rename file1 to file2. + +REMOTE DELETE filespec@\Ask the remote server to delete the named file or +files. + +REMOTE DIRECTORY [filespec]@\Ask the remote server to display a directory +listing of the given files or, if the filespec is omitted, all the files in +the current device or directory. + +REMOTE DISK-USAGE@\Ask the remote server to display information about its +disk usage (such as free or used space). + +REMOTE ERASE filespec@\Same as REMOTE DELETE. + +REMOTE FINISH@\Same as FINISH. + +REMOTE HELP@\Ask the remote server to display a list of the commands it +can respond to. + +REMOTE HOST command@\Ask the remote server to have its operating system +execute the given command. + +REMOTE KERMIT command@\Ask the remote server to execute the given Kermit +command, given in the server Kermit's command syntax. + +REMOTE LOGIN user password@\Log in to a remote Kermit server which has been +set up to require a username and password. + +REMOTE MESSAGE text@\Send the text to the remote server for display on its +screen (useful with MS-DOS Kermit servers). + +REMOTE SET parameter value@\Ask the remote server to set the given parameter +to the given value, for example REMOTE SET FILE TYPE BINARY. Type REMOTE SET +? to see a list of the REMOTE SET options. + +REMOTE SPACE@\Same as REMOTE DISK-USAGE. + +REMOTE STATUS@\Ask the remote server to provide a status report. + +REMOTE TYPE file@\Ask the remote server to display the named file on +the micro's screen. + +REMOTE WHO [user]@\Ask the remote server for a list of users who are logged +in, or if a user is specified, for a report on the named user. +@end + +RENAME file1 file2@\Rename local CP/M file1 to file2. + +@Index[SEND]SEND @i@\Send file(s) specified by @i to +the remote Kermit. The @i may contain CP/M wildcards. SEND may +be abbreviated to the single letter S. + +@Index[SET]SET @i [@i]@\Set the specified parameter to +the specified value. Possible parameter settings: + +@begin + +@Index[Autoreceive]AUTORECEIVE@\ON (or OFF). Allows several files to be +received without having to type RECEIVE on the receiving machine. The routine +simply looks for activity on the serial line, and if so fudges a RECEIVE +command. The packet sent by the sender will be lost. + +@Index[Block Check]BLOCK-CHECK-TYPE @i