KERMIT-88


1. Kermit-88 is the Z88 implementation of the widely used Kermit file 
transfer program.  Copyright of Kermit is retained by the Columbia 
University Centre for Computing Activities, although anyone is free 
to implement a Kermit on a given machine. This must not be done for 
commercial purposes however.

Kermit-88 is supplied as a single program file "KERMIT" which is 
CHAINed from BBC BASIC. Kermit-88 will not run on a machine with only 
32k of RAM. It MAY run on a 64k machine, but testing has been carried 
out on a 160k machine (32k + 128k) without problems. Kermit is 
actually written in 8080 assembler on a CP/M machine. It is 
impractical to distribute the source files, although they will 
shortly be available from Lancaster University Kermit distribution 
centre.


2. KERMIT-88 Commands

KERMIT-88 uses the DECSYSTEM-20 keyword style command  language.    
Each keyword  may  be  abbreviated  to its minimum 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 ; if  sufficient  
characters have  not  been  typed to identify the current field 
uniquely, KERMIT-88 will sound a beep and allow you to continue from 
that point. If a "?" is accepted and the prompting system does not 
intervene, it indicates that it has been accepted as a filename 
wildcard character (matching a single character)  E.g.  SEND ?   will 
send all files in the current directory having a filename of 1 
character.


Capabilities:

As well as the ability to transfer files, Kermit-88 can also behave 
as a terminal emulator (CONNECT) and can send text files to a 
non-Kermit system (TRANSMIT). It is able to execute command files 
written in Kermit command language (TAKE) and has limited facilities 
for scripts to perform "conversations" with a  remote host. These can 
be used for login scripts or for running remote software (see STRING, 
INPUT, PAUSE). Kermit-88 makes local file management easier by 
providing some basic operating system functions (CD/CWD, DIRECTORY 
and TYPE).

File transfer occurs in one of two ways, depending on the type of 
Kermit we are talking to. For two micro based Kermits, the SEND and 
RECEIVE commands are used. When we are accessing a larger system, the 
remote Kermit will normally have a SERVER mode. This enables 
everything to be driven from the micro end. File transfer is 
accomplished with the SEND and GET commands. (See also REMOTE).

Commands at a glance:

BREAK
	Send a Break condition to the remote system.
	(This does nothing as at Version 1.04)

BYE     
	When  talking to a remote Kermit Server, this command shuts down 
	the server and logs it out, and also  exits  from  Kermit-88  to 
	BASIC command level. (Not yet implemented)

CD/CWD directory-name
	Change to the specified directory. If no name is given the 
	current directory is displayed. You can also change to a device 
	name

CONNECT
	Establish a terminal connection to the host 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 
	TERMINAL is set to VT52 (see below), in which case you should 
	also set your terminal type on the remote host to VT52.  The 
	escape character is initially set to <>\ (diamond backslash).  
	When you issue the CONNECT command, the escape sequence is 
	displayed to show you how to get back. The escape sequence is 
	generally an uncommonly used control character, like <>-backslash 
	or <>-rightbracket (<>-]) followed by a single letter "command". 
	Q   Suspend logging (only if logging is switched on)
	R   Resume logging
	C   Close Connection, return to Kermit-88> command level. 
	S   Display Status of connection, but maintain remote connection.
	?   List available single-character commands.
	0   (zero) Send a null (0) character.
	B   Send a BREAK signal.  
	<>\ (or  whatever  - a second copy of the escape character)
	    Send the escape character itself to the remote host.

DIRECTORY [filespec]
	This provides a directory listing of the specified files.  If no 
	files are specified, all files in the current directory are 
	listed.

EXIT
	Exit from Kermit back to BBC BASIC. Panel settings are restored 
	to their values when Kermit was entered. (Affects BAUD, PARITY 
	and XON/XOFF)

FINISH
	Like LOGOUT, but shuts down the remote server without logging it 
	out.  Leaves you at Kermit-88 command level; subsequent  CONNECT 
	commands will put you back at host system command level.

GET remotefile [localfile]
	When  Kermit-88  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:  

	get k*.hlp

	You may optionally specify localfile to force a local name, 
	otherwise Kermit attempts to build a filename based on the remote 
	name.

HELP
	Shows available commands. (Same as "?")

INPUT time-delay string
	Sets a string and a time delay in seconds, then waits to receive 
	them from the remote system. This command is meant for use in 
	TAKE files. Note that characters which cannot be entered from the 
	keyboard can be entered in octal (See STRING)
        
LOG filespec
	When CONNECTed to a foreign host as a terminal, log the terminal 
	session  to the  specified  file. The log file is closed when the 
	connection is closed  by  typing the  escape  character  followed 
	by the single-character command "C". The default LOG file name is 
	"KERMIT.LOG"

LOGOUT
	Like BYE, but leaves you at Kermit-88 command level.

PAUSE time-delay
	Waits specified number of seconds before continuing. Its main 
	purpose is to introduce delays in TAKE files (while dialling a 
	number for example).

RECEIVE [localfile]
	Receive file(s) from the remote Kermit.  If localfile is 
	specified, use this name, otherwise store  it under the name 
	provided in the file header supplied by the remote host. If the 
	name is illegal, Kermit uses as many legal characters from the 
	name as possible (see the description of SET FILE-WARNING below).  
	If the file exists, and FILE-WARNING is ON, it warns the user and 
	tries to build a unique name for the file by  adding numeric 
	characters to the end.

REMOTE command
	Sends command to a remote Kermit server.  Not all servers support 
	all commands so results can be varied.  Current commands which 
	KERMIT-88 can send are:
	REMOTE DIRECTORY  - list remote files
	(Not implemented at 1.04)

SEND localfile [remotefile]
	Send  file(s) specified by localfile to the remote Kermit.  
	Localfile may contain wildcards.  If remotefile is specified, the 
	remote Kermit will attempt to save the file as remotefile as 
	opposed to localfile.  Note that if localfile contains wildcards 
	and remotefile is specified, the remote Kermit will try to save 
	all files as remotefile. See  RECEIVE for information on how 
	Kermit deals with filename conflicts.

SET parameter [value]
	Set  the  specified  parameter to the specified value.  
	Possible settings:

	AUTORECEIVE ON | OFF
		Allows several files to be received without having to type 
		RECEIVE on the receiving machine. The first packet from the 
		sender will be lost.

	BAUD-RATE value
		Change the  baud rate of the communications port. The value  
		is  the numeric  baud  rate (300, 9600, etc.) desired.  
		Type SET BAUD followed by a question mark for a list of 
		supported baud  rate@s. NOTE: Kermit uses whatever is set y 
		the sytem Panel- If you SET the BAUD-RATE values, you 
		must be aware that this affects the system, and other 
		applications. That is, if you suspend KERMIT having changed 
		any of the port settings the new settings would apply to 
		(say) a copy of Pipedream that may be about to print. When 
		you EXIT from KERMIT, the original Panel settings are 
		restored.

	BLOCK-CHECK-TYPE 1 | 2 | 3
	The options are:
		1-CHARACTER-CHECKSUM
		Normal, default, standard 6-bit checksum.

		2-CHARACTER-CHECKSUM
		A 12-bit checksum encoded as two characters.

		3-CHARACTER-CRC-CCITT
		A  16-bit  CCITT-format Cyclic Redundancy Check, encoded as 
		3 characters.

		The 2 and 3 character options should only be used  under 
		conditions  of extreme line noise.  Many implementations of 
		KERMIT only support the single character checksum.

	DEBUG   ON | OFF.
		Enables/disables displaying of packets on the screen during 
		file transfer.

	ESCAPE
		Change the escape character to exit from terminal 
		connections.    Kermit-88  will  prompt you for the new 
		escape character, which you enter literally. Eg. to change 
		the character to <>-] type SET ESCAPE [enter] , then press 
		diamond, then ].

	FILE-MODE   ASCII | BINARY
		Tells KERMIT-88 what kind of file it is sending, so that 
		KERMIT can correctly define the ends of lines. SET FILE 
		BINARY means to send all the data exactly as it appears in 
		the file. SET FILE ASCII  is  used  for  text files.

	FLOW-CONTROL ON | OFF
		Enables or disables XON/XOFF flow control. See SET 
		BAUD-RATE for implications of changing system communication 
		settings.

	LOCAL-ECHO ON | OFF
		When you CONNECT to a remote host, you must set LOCAL- ECHO 
		ON if the host is half duplex, OFF if full duplex. OFF by 
		default.

	LOGGING  ON | OFF
		Enable or disable file logging during CONNECT sessions. The 
		log file name is set using the LOG command.

	PARITY value
		Sets  parity  for outgoing characters to one of the 
		following: NONE, SPACE, MARK, EVEN, or ODD.  On  input,  if 
		parity  is  NONE,  then  the  8th bit is kept (as data), 
		otherwise it is stripped and ignored.  The  parity  setting 
		applies to both terminal connection and file transfer.  If 
		you set parity to  anything  other  than  none, KERMIT-88  
		will  attempt  to  use "8th bit prefixing" to transfer 
		binary files.  If  the  other  KERMIT  is  also capable  of  
		8th bit prefixing, then binary files can be transferred 
		successfully; if not, the 8th  bit  of  each data  byte  
		will be lost (you will see a warning on your screen if this 
		happens). See SET BAUD-RATE for implications of changing 
		system communications settings.

	RECEIVE parameter value
		SET a receive parameter
		PAD-CHAR
		  Sets the pad character to use while receiving files.
		  You will be prompted for the character literally.
		PADDING value
		  Set the number of pad characters to use while
		  receiving files.
		START-OF-PACKET
		  Set the default start of packet character for 
		  receiving files (See SET SEND START-OF-PACKET for
		  considerations.) Default is <>A

	SEND parameter value
		SET a send parameter
		PAD-CHAR
		  Sets the pad character to use while sending files.
		  You will be prompted for the character literally.
		PADDING value
		  Set the number of pad characters to use while sending 
		  files. 

		START-OF-PACKET
		  Set the default start of packet character for sending 
		  files. The SOP character is Control-A by default, but it 
		  may be necessary to change this on some networks. Choose 
		  a control character not otherwise used, ie not <>-M 
		  (return) <>-J (linefeed) <>-H (backspace) <>-G (bell) or 
		  <>-I (tab).

	TACTRAP
		Set the TAC intercept character. If you are attached to a 
		TAC (or indeed any other piece of equipment which "eats" a 
		particular character) you can specify the character to 
		Kermit so that it will double it up during transmission.

	TERMINAL VT52 | DUMB
		When connected as a terminal to a foreign host, controls 
		whether the micro emulates  a VT52  or runs in "native 
		mode".    TERMINAL is VT52 by default. 

	TIMER ON | OFF
		Enable  or  disable the timer.  The timer is off by 
		default, because in the normal case KERMIT-88 is 
		communicating  with  a  mainframe  KERMIT  that has its own 
		timer.  Mainframe KERMIT timers tend to be more  precise or  
		adaptable  to  changing  conditions.  You should SET TIMER 
		ON if you are communicating  with  a  KERMIT  that does  
		not have a timer.  You should SET TIMER OFF if you are 
		communicating over a network with long delays.

	WARNING ON | OFF
		Warn  user  of  filename  conflicts when receiving files 
		from remote host, and attempt to generate a unique  name by  
		adding  numeric characters  to  the  given name. ON by 
		default.

SHOW
	Shows various settable parameters.

STATUS
	A synonym for SHOW

STRING text
	Sends a character string to the remote system. It is intended for 
	use in TAKE files. The text can include octal control characters 
	in the form \nnn where nnn can be less than or equal to \377. Eg. 
	\015 is a carriage-return character.        


TAKE filespec
	Takes commands from the specified file as if they had been typed 
	at the keyboard. This is useful if you want to set up a batch job 
	to dialup a remote machine for example. The TAKEfile must be an 
	ASCII file such as a Pipedream file saved with Save Plain Text 
	option set to Yes. An automatic TAKE is performed when Kermit is 
	started, taking commands from KERMIT.INI if it exists in the 
	current directory. This is useful for setting up a commonly used 
	baud-rate, parity etc.

TRANSMIT filespec reply-string
	Send  the  specified  file to the system on the other end of the 
	connection as though it were being typed at  the  terminal,  one 
	line  at  a  time.    No  KERMIT protocol is involved.  You must 
	manually confirm each line and Kermit waits until it receives the 
	reply-string before continuing. This is useful for sending files 
	to systems  that don't have a KERMIT program.  During 
	transmission, you may type the escape  character  followed  by  
	one  of  these single-character commands:
	C   Cease transmission 
	R   Re-transmit the previous line

TYPE filespec
	Types an ASCII text file to the screen, pausing every 8 lines. 
	This is meant for quickly looking at TAKE files or other plain 
	text files. Pipedream documents are not particularly legible.

VERSION
	Show  the  name, edit number, and edit date of several of the 
	modules that make up Kermit-88.


Wally Wright
4 Welland Court
ST.NEOTS
Cambridgeshire
PE19 3JZ

Tel. (0480) 212904
