@Part(VMSMIT,root="KUSER")
@Chapter<VAX/VMS KERMIT>
@Begin<Description,Leftmargin +12,Indent -12,spread 0>
@i(Authors:)@\Robert C. McQueen, Nick Bush, Stevens Institute of Technology

@i(Language:)@\Bliss-32, Common Bliss

@i(Version:)@\3@q<.>1

@i(Date: )@\November 1983
@end<Description>
KERMIT for the Digital Equipment Corporation VAX/VMS system is called
"KERMIT-32" since the VAX is DEC's 32-bit line of computers.  KERMIT-32 can be
run from @q<SYS$SYSTEM:>.  It will prompt for input from @q<SYS$COMMAND:>.

Kermit-32 can be run in either local or remote modes.  In remote mode,
transfers take place over the controlling terminal line.  Ususally, Kermit-32
is used in remote mode as a "server", meaning that it will accept commands from
the other Kermit.  In local mode, Kermit-32 will perform transfers over a
terminal line other than the controlling terminal.  In local mode, Kermit-32 is
capable of giving commands to a "server" Kermit.  Note that in order to use
Kermit-32 in local mode, the protection code for the terminal to be used must
allow the user access.  This is set by the system manager.  Kermit-32 is put
into local mode by using the SET LINE TTcnn: command.

Currently, VMS Kermit does not allocate the terminal line you are using
for CONNECT or transfers.  Therefore, when going between CONNECT and
SEND or RECEIVE, VMS hangs up the phone for you.  This is easily solved
by using the DCL ALLOCATE command to allocate the terminal line
before entering Kermit.

VMS KERMIT implements a large subset of "ideal" KERMIT, for both remote and
local operation. 

Here is a summary of the commands of KERMIT-32:
@begin<description,leftmargin +8,indent -8>
CONNECT [@i<dev:>]@\ The CONNECT command will allow you to connect as a virtual
terminal over the line that was specified by the SET LINE command, or to the
terminal line specified in the command.  The terminal line must be one which is
accessible to the users process.  This means that the applicable protection
code for the terminal must have been set to allow your process to access it
(done by the system manager).  The format of the CONNECT command is:
@example(Kermit-32>CONNECT)
 or
@example(Kermit-32>CONNECT TT@i[cn]:)
where @q<TT@i(cn):>  is the terminal line name to be used.

HELP [@i<keyword> [@i<keyword>...]]@\Give VMS-@|style help on KERMIT commands.

EXIT, QUIT@\Exit from Kermit-32.

RECEIVE@\The RECEIVE command is used to put Kermit-32 into remote mode waiting
for a single file transfer transaction, or to have a local Kermit-32 request a
file from the remote Kermit.  If no file specification is given, Kermit-32 will
wait for a file transfer initialization sequence from the other Kermit.  This
is most useful if the other Kermit does not support local server commands.  In
order for a file specification to be given, Kermit-32 must be running as a
local Kermit (i.e. a SET LINE command must have been done).  Kermit-32 will
then request the other Kermit (which must be running in server mode) to
transfer the specified file (or set of files) to Kermit-32.  The file
specification must be in the format of the system on which the server Kermit is
running.  The format of the command is:
@example[Kermit-32>RECEIVE]
or
@example[Kermit-32>RECEIVE @i(file-specification)]
where "file-specification" is any valid file specification on the system on
which the server Kermit is running.

GET @i<filespec>@\This command is identical to the RECEIVE @i<filespec>
command.  It is now the preferred command to cause the other Kermit (when
running in server mode) to transmit a file to Kermit-32.

BYE@\This command will cause Kermit-32 (when in local mode)  to  tell  the
other  Kermit  (which  should  be in server mode) to exit from Kermit
and, if applicable, terminate  its  job  (or  process,  etc.).   When
Kermit-32  receives  the  acknowledgement that this is being done, it
will exit to VMS.

FINISH@\This command will cause Kermit-32 (when in local mode)  to  tell  the
other  Kermit  (which  should be in server mode) to exit from Kermit.
After  receiving  the  acknowledgement  that  this  is  being   done,
Kermit-32 will prompt for another command.

LOGOUT@\This command will cause Kermit-32 (when in local mode)  to  tell  the
other  Kermit  (which  should  be in server mode) to exit from Kermit
and, if applicable, terminate  its  job  (or  process,  etc.).   When
Kermit-32  receives  the  acknowledgement that this is being done, it
will prompt for another command.

SEND@\The SEND command will allow you  to  send  a  file(s)  to  the  other
Kermit.   The SEND command will allow file wild card processing as is
found in VMS.  If Kermit-32 is running in remote mode, the file  will
be  sent on the controlling terminal line after waiting the number of
seconds specified by the SET DELAY command.  This gives the user time
to  escape  back to the other Kermit and issue a receive command.  If
Kermit-32 is running in local mode, the file will be sent immediately
on the terminal line specified by the SET LINE command.
The command format is:
@example[Kermit-32>SEND @i(file-specification)]
Where "file-specification" is any normal VAX/VMS file specification.

SERVER@\This command will cause Kermit-32 to enter server  mode.   The  other
Kermit  can  then  issue  server  commands  to send and receive files
without having  to  give  SEND  or  RECEIVE  commands  to  Kermit-32.
Kermit-32  may  be  put  into  SERVER  mode while running as either a
remote Kermit (transmitting over the controlling terminal  line),  or
as  a  local  Kermit (transmitting over a terminal specified by a SET
LINE command).  Note that in order to correctly receive binary  files
while  in  SERVER mode, a SET FILETYPE BINARY must be done first.  At
this time there is no way  for  Kermit-32  to  determine  whether  an
incoming file is ASCII or binary.
The format of the command is:
@example[Kermit-32>SERVER]

STATUS@\The current status of Kermit-32 will be displayed.  This includes the
number of characters that have been sent and received from the remote
Kermit.  Also included is an estimate of the effective baud  rate  of
@end<description>

@heading<The SET Command>

The SET command is used to set various parameters in Kermit.
@begin<description>
BLOCK@q<_>CHECK@q<_>TYPE@i<keyword>@\
where keyword is one of:
@begin(example)
1@q<_>CHARACTER@q<_>CHECKSUM  @i<or> ONE@q<_>CHARACTER@q<_>CHECKSUM
2@q<_>CHARACTER@q<_>CHECKSUM  @i<or> TWO@q<_>CHARACTER@q<_>CHECKSUM
3@q<_>CHARACTER@q<_>CRC@q<_>CCITT @i<or> THREE@q<_>CHARACTER@q<_>CRC@q<_>CCITT
@end(example)

DEBUGGING@\The SET DEBUGGING command is used to set the debug type  out  on
the user's  terminal.   The command will accept either the keywords ON or
OFF.  Kermit-32 can only do debugging type  out  when  running  as  a
local  Kermit (SET LINE command done).  This is because the debugging
type out would interfere with the file transfer if it  were  sent  to
the controlling terminal line in remote mode.
@example[Kermit-32>SET DEBUGGING @i<state>]
 Where state is either 'ON' or 'OFF'.

DELAY@\The DELAY parameter is the number of seconds to wait  before  sending
data  after  a SEND command is given.  This is used when Kermit-32 is
running in remote mode to allow the user time to escape back  to  the
other Kermit and give a RECEIVE command.
@example[Kermit-32>SET DELAY @i<number-of-seconds>]
Where number of seconds is the (decimal) number  of  seconds  to  wait
before sending data.

ESCAPE@\This command will set the escape character for the CONNECT processing.
The command will take the octal value of the character to use as the escape
character.  This is the character which is used to "escape" back to Kermit-32
after using the CONNECT command.  It defaults to CTRL-] (octal 35).  It is
usually a good idea to set this character to something which is not used (or at
least not used very much) on the system being to which Kermit-32 is CONNECTing.
@example[Kermit-32>SET ESCAPE @i<octal-character-value>]
where
@i<octal-character-value> is the ASCII value of the character to use as the
escape character (in octal).

FILE@q<_>TYPE@\This command will set the file type that Kermit is receiving.  A
file type of ASCII should be used to receive text files which are to be used as
text files on the VMS system.  The file type BINARY should be used for binary
files, such as CP/M @q<.COM> files, which need to be kept in a format that
allows the file to be returned without any changes.
@example[Kermit-32>SET FILE@q<_>TYPE @i<type>]
where @i<type> is one of:
@begin<description>
ASCII@\File type ASCII is for text files.

BINARY@\File type BINARY is for non-text files.  Note that binary files which
are  generated  on  a VMS system cannot be transferred to another VMS
system  without  losing  file  attributes.   This  means  that   (for
example),  an  @q<.EXE> file cannot be transmitted with Kermit-32.  (This
problem should be resolved in a future version of Kermit).
@end<description>

IBM@q<_>MODE@\For communicating with IBM mainframes; sets parity MARK,
handshake XON, and local echo during CONNECT.
@example[Kermit-32>SET IBM@q<_>MODE @i<keyword>]
where @i<keyword> is either ON or OFF.

INCOMPLETE@q<_>FILE@q<_>DISPOSITION@\
The SET INCOMPLETE@q<_>FILE@q<_>DISPOSITION allows the user to determine what
is  done  with  a  file  that  is  not  completely  received. 
@example[Kermit-32>SET INCOMPLETE@q<_>FILE@q<_>DISPOSITION @i<keyword>]
where @i<keyword> is either DISCARD or KEEP.

LINE@\This will set the terminal line that you  are  using.   The  terminal
line  must  be  one  which  is accessible to the user's process.  This
means that the applicable protection code for the terminal must  have
been  set  to  allow  your  process  to access it (done by the system
manager).  You should also ALLOCATE the line from DCL before giving this
command.
@example[Kermit-32>SET LINE @i<device>:]
The device must be a terminal line (e.g. @q<TTA0:>).

LOCAL@q<_>ECHO@\The SET LOCAL@q<_>ECHO command specifies whether characters
should be echoed locally when CONNECTing to another system.  
@example[Kermit-32>SET LOCAL@q<_>ECHO @i<keyword>]
where keyword is either ON (local echo) or OFF (full duplex, normal case).

MESSAGE@\This command sets the type of typeout Kermit-32 will do during
transfers in local mode.  Kermit-32 can type out the file specification being
transferred, the packet numbers being sent an received, both or neither.  The
default is to type file specifications but not packet numbers.
@example[Kermit-32>SET MESSAGE @i<type keyword>]
Where type is either FILE or PACKET, and keyword is either ON or OFF.

PARITY@\This command determines the type of parity to use on the transmission
line.   Kermit-32  normally  uses characters which consist of eight data
bits with no parity bit.
@example[Kermit-32>SET PARITY @i<keyword>]
where keyword is NONE (default), MARK, SPACE, EVEN, or ODD.
If any parity other than NONE is specified, 8th-bit-@|prefixing will be
requested for transmission of binary files.

RETRY@\This command sets the maximum number of times Kermit-32 should try to
send a specific packet.
@example[Kermit-32>SET RETRY @i<keyword number>]
where @i<keyword> is either INITIAL@q<_>CONNECTION (for initial connection
packet) or PACKET (for all other packets), and @i<number> is the decimal number
of retries to attempt.

RECEIVE@\It  is  possible  to  set  various  parameters  associated  with  the
receiving  of  the  data  from  the  remote Kermit.  SET RECEIVE will
enable you to set the various receive parameters.
@begin<description>
PACKET@q<_>LENGTH@\This will  set  the  receive  packet  length,  
between 10 and 96.  The default value is 80.
@example[Kermit-32>SET REC PACKET@q<_>LEN 60]

PADDING@\This command will set the number of padding characters that  will  be
sent to the other Kermit.  The default value is 0.
@example[Kermit-32>SET RECEIVE PADDING @i<n>]
Where @i<n> is the decimal number of padding characters to use.

PADCHAR@\This parameter is the padding character that is sent  to  the  remote
Kermit.   The  parameter must be an octal number in the range of 0 to
37 or 177.  All other values are illegal.  The default value is 0 (an
ASCII NUL).
@example[Kermit-32>SET RECEIVE PADCHAR @i<nnn>]
where @i<nnn> is the ASCII value of the character to be  used  as  a  pad
character (in octal).

START@q<_>OF@q<_>PACKET@\This command will set the start of packet character
for Kermit.   The start of packet character must be in the range of 0 to 36
octal. The default value is 1 (ASCII SOH, CTRL-A).  This value  should  only
be changed  if  absolutely  necessary.   It must be set the same in both
Kermits.
@example[Kermit-32>SET REC START@q<_>OF@q<_>PACK 3]

TIMEOUT@\This will set the number of seconds before Kermit-32  will  time  out
the  attempt  to  receive a message.  This time out is used to handle
transmission errors which totally lose a message.  The default  value
is 15 seconds.
@example[Kermit-32>SET RECEIVE TIMEOUT @i<n>]
where @i<n> is the number of seconds to wait for a message (in decimal).

END@q<_>OF@q<_>LINE@\This will set the end of line  character  the  Kermit-32
expects to receive  from  the  remote  Kermit.   This  is  the  character
which terminates a packet.  The default value is 15 (ASCII CR, CTRL-M).
@example[Kermit-32>SET REC END@q<_>OF@q<_>LINE @i<nnn>]
where @i<nnn> is the ASCII value of the character to use  for  the  end  of
line character (in octal).

QUOTE@\This will set the quoting character that  Kermit-32  will  expect  on
incoming  messages.   This  is  the  character  used to quote control
characters.  The default value is 43 (ASCII "#").
@example[Kermit-32>SET RECEIVE QUOTE @i<nnn>]
where @i<nnn> is the ASCII value of the quoting character (in octal).
@end<description>

SEND@\It  is  possible  to  set  various  parameters  associated  with  the
receiving  of  the data from the remote Kermit.  SET SEND will enable
you to set the various SEND parameters.  These parameters should  not
normally be set, since as part of the transfer initialization process
the two Kermit's exchange their RECEIVE parameters.   The  capability
of  setting  these  parameters  is  provided  so  that  the  transfer
initialization can be completed even if the  default  parameters  are
not correct.
@begin<description>
PACKET@q<_>LENGTH@\This will set the SEND packet length.  The value for  this
parameter must  be between 10 and 96.  Packet lengths outside of this range are
illegal.  The default value is 80.

PADDING@\This command will set the number of padding characters that  will  be
sent to the other Kermit.  The default value is 0.

PADCHAR@\This parameter is the padding character that is sent  to  the  remote
Kermit.   The  parameter must be an octal number in the range of 0 to
37 or 177.  All other values are illegal.  The default value is 0 (an
ASCII NUL).

START@q<_>OF@q<_>PACKET@\This command will set the start of packet character
for Kermit.  The start of packet character must be in the range of 0 to 36
octal. The default value is 1 (ASCII SOH, CTRL-A).  This value should only be
changed if absolutely necessary.  It must be set the same in both Kermit's.

TIMEOUT@\This will set the number of seconds before Kermit-32 will time out a
message it has sent to the other Kermit.  message.  This time out is used to
handle transmission errors which totally lose a message.  The default value is
15 seconds.

END@q<_>OF@q<_>LINE@\This will set the end of line character the Kermit-32 will
send to the remote Kermit.  This is the character which terminates a packet.
The default value is 15 (ASCII CR, CTRL-M).

QUOTE@\This will set the quoting character that  Kermit-32  will  expect  on 
incoming  messages.   This  is  the  character  used to quote control
characters.  The default value is 43 (ASCII "#").
@end<description>
@end<description>

@subheading<The SHOW Command>

The SHOW command will allow you to show the various  parameters  that
are set with the SET command.
@begin<description>
ALL@\The SHOW ALL command will cause all of the parameters to be listed.

BLOCK@q<_>CHECK@q<_>TYPE@\This command will  type  out  what  type  of  block  check
is  being  requested.

COMMUNICATIONS@\This command will type out the communcations line related
parameters.  This includes the terminal line being used, the parity type, etc.

DEBUGGING@\The SHOW DEBUGGING command will print  the  state  of  the
debugging flag.

DELAY@\This will display the number of seconds delay that Kermit will use
before attempting to send or receive a file.

ESCAPE@\This will display the current escape character for the CONNECT
processing.

FILE@q<_>PARAMETERS@\This will display the parameters related to files being used.
This includes the file type and the incomplete file disposition.

FILE@q<_>TYPE@\This will display the current file type that is used in  sending
the file to or receiving the from the micro computer.

INCOMPLETE@q<_>FILE@q<_>DISPOSITION@\This will display the disposition of incompletely
received files. 

LOCAL@q<_>ECHO@\This will display the status of the local echo flag.

PACKET@\This will display the current settings of the send and receive packet 
parameters.

PARITY@\This will display the current parity setting.

SEND@\All of the send parameters will be displayed on the user's terminal.

RECEIVE@\The current values of the RECEIVE parameters will be displayed on the 
user's  terminal.   Only  the  parmeters  that  can  be  set  will be
displayed.

RETRY@\This command will show the maximum retry attempts  that  Kermit  will
attempt to send a message the remote.
@end<description>
