PART I.  INSTALLATION
 
Program Kermit implements the KERMIT protocol under HONEYWELL/CP6.
 
Authors:   Philip Murton - original RT-11 PASCAL program.
           Bruce W. Pinn - modified version for VAX/VMS.
           Douglas Vaughan, Cheryl Poostay, Kevin Asplen, Jay Undercoffler
                         - modified VAX/VMS version for HONEYWELL/CP6.
 
Date:  March 27, 1985
 
Site:  Bucknell University Computing Services
       Lewisburg, Pennsylvania 17837
       (717) 524-1801
 
 
Files:
     KERMIT - Source code and JCL to create the Kermit rununit.
     INSTALL - Installation instructions, description of
               operation, and summary of Kermit commands.
     DRIBBLE - Dribble file of the transfers of a test file from
               CP6 to an IBMPC and from the IBMPC back to CP6.
     OCTAL - Octal listing of the dribble file.
 
 
   The file 'KERMIT' is a BATCH  file containing the JCL and source
code required to create the rununit KERMIT_RU.  The bulk of the code
is written in PASCAL and was compiled at Bucknell using CP6 PASCAL
Version B01.  The NDB (no debug) compiler option is used in an effort
to maximize file transfer speed.  The CP6 system dependent routines
are written in PL6 and were compiled at Bucknell using PL6 Version
B02.
 
   To create the rununit KERMIT_RU, !BATCH KERMIT .
 
 
PART II.  PROGRAM OPERATION
 
   Kermit-CP6 runs interactively with a user connected to CP6 via
a remote Kermit.  File transfers from CP6 to the remote Kermit and
from the remote Kermit to CP6 must originate from Kermit-CP6.
 
   The following Bucknell documentation illustrates the logging on
and file transfer processes between CP6 and an IBMPC running Kermit-MS.
 
BUCKNELL KERMIT INSTRUCTIONS
 
LOGGING ON
 
1....Obtain the KERMIT software from either the programming
     assistant or the bulletin board adjacent to the phone.
 
2....Open the door on Drive A (left drive).  With the label
     side up and your thumb on the label insert the KERMIT
     disk into Drive A.  Close the drive door.
 
3....Power on the IBM.  If the IBM is powered on, press the
     Del key while holding down both the Ctrl and Alt keys.
 
4....Type KERMIT   <--'   in response to the A> prompt.
 
6....Press   <--' .
 
7....Log On.
 
8....!PROFILE IBMPC
 
9....Return the KERMIT software.
 
FILE TRANSFERS
 
TO SEND A CP6 FILE TO THE IBMPC
 
     1....LOGON to CP6.
     2....Insert a formatted IBM disk into Drive B (right drive).
     3....Start the CP6 file transfer program.
              !START KERMIT_RU
 
     4....Initiate the file transfer.
          Kermit-CP6>SEND CP6filename  <--'
 
     5....Within 10 seconds, hold down the Ctrl key and press ] ; release both
          keys.  Type the letter C.
 
     6....Continue the file transfer.
          Kermit-IBM>RECEIVE IBMfilename  <--'
 
          An IBM filename is 1-8 characters in length, and can be followed by a 1-3
          character extension.  The following characters can be used for filenames
          and extensions: A-Z  0-9  $  &  #  @  !  %  "  (  )  -  {  }  _  /  \
 
          To confirm the file transfer: Kermit-IBM>DIR
 
 
     7....Return to CP6.
          Kermit-IBM>CONNECT <--'  and press <--'
 
     8....Repeat Steps 4-6 to send another file
                       OR
          Kermit-CP6>Q  to quit CP6 Kermit.
 
     9....Logoff.
 
TO SEND AN IBMPC FILE TO CP6
 
    1.....LOGON to CP6.
    2.....Insert the disk containing the IBM file to be sent into Drive B.
    3.....Start the CP6 file transfer program.
             !START KERMIT_RU
 
    4.....Initiate the file transfer.
          Kermit-CP6>RECEIVE   CP6filename  <--'
 
    5.....Within 10 seconds, hold down the Ctrl key and press ] ; release both keys.
          Type  C  .
 
    6.....Continue the file transfer.
          Kermit-IBM>SEND IBMfilename  <--'
 
    7.....Return to CP6.
          Kermit-IBM>CONNECT <--'  and press <--'
 
     8....Repeat Steps 4-6 to send another file
                       OR
          Kermit-CP6>Q  to quit CP6 Kermit.
 
     9....Logoff.
 
PART III.  SUMMARY OF KERMIT-CP6 COMMANDS.
 
The valid KERMIT-CP6 commands are:
 
   HELP        STATUS      EXIT/QUIT
   SEND        RECEIVE     SET         SHOW
 
A description of each command follows.
 
1.  HELP
    In order to use the HELP facilities on KERMIT-CP6, type 'HELP command'.
    Abbreviated HELP can be obtained on selected commands by typing 'command ?'.
 
 
2.  STATUS
 
    Description:
      Displays information on the most recent file transmission of data.
 
    Example:
        KERMIT-CP6> STATUS
 
3.  EXIT/QUIT
 
    Description:
        Exits KERMITCP6 and returns to IBEX.
 
    Examples:
        KERMIT-CP6> QUIT
        KERMIT-CP6> EXIT
 
 
4.  SEND filespec
 
    Description:
        Sends the specified CP6 file to the remote Kermit.
        Wildcarding is not allowed; only one file per SEND is allowed.
 
    filespec:
        any valid, existing CP6 file-specification.
 
    Examples:
        KERMIT-CP6> SEND MYFILE
        KERMIT-CP6> SEND ANOTHER_FILE
 
5.  RECEIVE filespec
 
    Description:
        Prepares KERMITCP6 to receive a file being sent by the remote Kermit.
        Wildcarding by the remote Kermit is allowed.
 
    filespec:
        Any valid CP6 file-specification.
        If omitted, the file-specification will be obtained from the
           file header sent by the remote Kermit.
        If the remote Kermit is sending more than one file, the first
           CP6 filename will be obtained from filespec(if specified);
           subsequent filenames will be obtained from the file headers
           sent by the remote Kermit.
 
    WARNING!  KERMIT will overwrite an existing
              file with the given filespec.
 
    Examples:
        KERMIT-CP6> RECEIVE MYFILE
        KERMIT-CP6> RECEIVE
 
6.  SET keywords
 
          SEND  <option>
          RECEIVE <option>
          TRANSMODE <ASCII | binary>
          EIGHT-QUOTE <character>
          FILERECORD <CRLF | lf | cr>
          PARITY <NONE | even | odd>
          DEBUGGING <on | OFF>
          SPEED  <decimal>
          DELAY  <decimal>
 
 
6.1  SET SEND keyword
 
          PACKET-LENGTH <decimal>
          PADDING <decimal>
          PADCHAR <octal value>
          TIMEOUT <decimal>
          END-OF-LINE <octal value>
          QUOTE <character>
 
6.1.1  SHOW SEND PACKET-LENGTH par
 
       Description:
           Shows the send packet length.
       par:
            may be any decimal value between 10 and 96
            Default Value = 94
 
       Note that SETting this will have no effect since
       the remote Kermit will send the value it requires.
 
       Affect this change by SETting the RECEIVE PACKET-LENGTH
       parameter of the remote Kermit.
 
       Example:
             KERMIT-CP6> SHOW SEND PACKET-LENGTH
             KERMIT-IBM> SET RECEIVE PACKET-LENGTH 80
 
 
 
6.1.2  SHOW SEND PADDING
 
       Description:
           Shows the number of padding characters that will be
           sent to the remote Kermit.
 
       Note that SETting this will have no effect since
       the remote Kermit will send the value it requires.
 
       Affect this change by SETting the RECEIVE PADDING
       parameter of the remote Kermit.
 
       Example:
           KERMIT-CP6> SHOW SEND PADDING
           KERMIT-IBM> SET RECEIVE PADDING 30
 
 
6.1.3    SHOW SEND PADCHAR
 
         Description:
             Shows the character that will be sent as padding to the
             remote Kermit.
 
         Note that SETting this parameter will have no effect since
         the remote Kermit will send the value it requires.
 
         Example:
             KERMIT-CP6> SHOW SEND PADCHAR
 
 
6.1.4    SHOW SEND TIMEOUT par
 
         Description:
             Shows the number of seconds Kermit CP6 will wait for
             a response to a packet sent to the remote Kermit.
             The SEND is terminated if a timeout occurs.
         par:
             may be any positive decimal number, given in seconds
             Default value = 20 seconds
 
         Note that SETting this will have no effect since
         the remote Kermit will send the value it requires.
 
         Affect this change by SETting the RECEIVE TIMEOUT
         parameter of the remote Kermit.
 
         Example:
             KERMIT-CP6> SHOW SEND TIMEOUT
             KERMIT-IBM> SET RECEIVE TIMEOUT 10
 
 
6.1.5    SET/SHOW SEND END-OF-LINE par
 
         Description:
             This command sets/shows the end of line character KERMITCP6 will
             send to the remote Kermit.
 
         par:
             may be any ASCII value for a character, given in octal
             Default value = 15 (ASCII CR, CTRL-M)
 
         Examples:
             KERMIT-CP6> SET SEND END-OF-LINE 12
             KERMIT-CP6> SHOW SEND END-OF-LINE
 
 
6.1.6    SET/SHOW SEND QUOTE par
 
         Description:
             Sets/shows the printable character KERMITCP6 will
             send to the remote Kermit to prefix control characters.
         par:
             may be any printable character
             Default value = "#" (ASCII 35(dec) )
             NOTE:  Change the quote character to send
                    CP6 files with many '#' characters.
         Affect this change by
           SETting the RECEIVE QUOTE parameter of the remote KERMIT,
                   the SEND QUOTE parameter of the remote KERMIT, and
                   the SEND QUOTE parameter of Kermit CP6 to the same value.
         Examples:
             KERMIT-CP6> SHOW SEND  QUOTE
             KERMIT-CP6> SET SEND QUOTE +
             KERMIT-IBM> SET SEND QUOTE 43 (The ASCII value of '+' is 43.)
             KERMIT-IBM> SET RECEIVE QUOTE 43
 
 
6.2     SET RECEIVE keyword
 
        Keywords:
          PACKET-LENGTH <decimal>
          PADDING <decimal>
          PADCHAR <octal value>
          TIMEOUT <decimal>
          END-OF-LINE <octal value>
          QUOTE <character>
 
6.2.1    SET/SHOW RECEIVE PACKET-LENGTH par
 
         Description:
             Sets/shows the maximum of number of characters
             in a message received by KermitCP6.
 
         par:
             may be any decimal value between 10 and 96
             Default Value = 94
 
         Examples:
             KERMIT-CP6> SET RECEIVE PACKET-LENGTH 60
             KERMIT-CP6> SHOW RECEIVE PACKET-LENGTH
 
 
6.2.2    SET/SHOW RECEIVE PADDING par
 
         Description:
             Sets/shows the number of padding characters will
             precede a message received by KERMITCP6.
 
         par:
             may be any positive decimal number
             Default value = 0
 
         Examples:
             KERMIT-CP6> SET RECEIVE PADDING 5
             KERMIT-CP6> SHOW RECEIVE PADDING
 
 
6.2.3    SET/SHOW RECEIVE PADCHAR par
 
         Description:
             Sets/shows the character that will precede
             a message received by KERMITCP6.
             See SET RECEIVE PADDING.
 
         par:
             may be any ASCII value, given as an octal
             number in the range: 0-37, or 177
             Default value = 0  (ASCII NUL)
 
         Examples:
             KERMIT-CP6> SET RECEIVE PADCHAR 15
             KERMIT-CP6> SHOW RECEIVE PADCHAR
 
 
6.2.4    SET/SHOW RECEIVE TIMEOUT par
 
         Description:
             Sets/shows the number of seconds KERMITCP6 will
             wait while attempting to receive a message from the remote Kermit.
 
         par:
             may be any positive decimal number, given in seconds
             Default value = 20 seconds
 
         Examples:
             KERMIT-CP6> SET RECEIVE TIMEOUT 15
             KERMIT-CP6> SHOW RECEIVE TIMEOUT
 
 
 
6.2.5    SET/SHOW RECEIVE END-OF-LINE par
 
         Description:
             Sets/shows the end of line character KERMITCP6 will
             expect to receive from the remote Kermit.
 
         par:
             may be any ASCII value for a character, given in octal
             Default value = 15 (ASCII CR, CTRL-M)
 
         Examples:
             KERMIT-CP6> SET RECEIVE END-OF-LINE 12
             KERMIT-CP6> SHOW RECEIVE END-OF-LINE
 
 
6.2.6    SET/SHOW RECEIVE QUOTE par
 
         Description:
             Sets/shows the printable character KermitCP6 expects
             to be prefixed to the control characters of messages sent
             by the remote Kermit.
         par:
             may be any printable character
             Default value = "#" (ASCII 35(dec) )
         NOTE:  Change the quote character to receive remote Kermit
               files with many '#' characters.
         Affect this change by SETting
             the SEND QUOTE parameter of the remote Kermit,
             the SEND QUOTE parameter of CP6 Kermit, and
             the RECEIVE QUOTE parameter of CP6 Kermit to the same value.
         Examples:
             KERMIT-CP6> SHOW SEND  QUOTE
             KERMIT-CP6> SET RECEIVE QUOTE +
             KERMIT-CP6> SET SEND QUOTE +
             KERMIT-IBM> SET SEND QUOTE 43  (The ASCII value of '+' is 43.)
 
 
6.3    SET/SHOW TRANSMODE par
 
       Description:
            Sets/shows the type of file KERMITCP6 will receive.
 
       par:
           must be one of the following...
                ASCII  - for text files
                BINARY - for non-text files
           Default value = ASCII
 
       Examples:
           KERMIT-CP6> SET TRANSMODE BINARY
           KERMIT-CP6> SHOW TRANSMODE
 
 
6.4    SET/SHOW EIGHT-QUOTE par
 
       Description:
           Sets/shows the character KERMITCP6 will send
           to the remote Kermit as a quote for eight-bit characters.
 
       par:
           may be any printable character
           Default value = "&"  (ASCII 38(dec) )
 
       Examples:
           KERMIT-CP6> SET EIGHT-QUOTE %
           KERMIT-CP6> SHOW EIGHT-QUOTE
 
6.5    SET/SHOW FILERECORD par
 
         Description:
             Sets/shows the end of line character being used
             to separate records in a file being  sent from CP6
             to the remote Kermit.
 
         par:
             must be one of the following ...
                CR   - a carriage return
                LF   - a line feed
                CRLF  - a carriage return, followed by a linefeed
             Default value = CRLF
 
         SUGGESTED USE:
             SET FILERECORD LF to transmit a PASCAL source to an APPLE IIe.
 
         Examples:
             KERMIT-CP6> SET FILERECORD LF
             KERMIT-CP6> SHOW FILERECORD
 
6.6    SET/SHOW PARITY par
 
       Description:
           Sets/shows the type of parity being used on the
           the transmission line.
 
       par:
           must be EVEN, ODD, or NONE
           Default value = NONE (others require eight-bit prefixing
                                for binary files)
       Examples:
           KERMIT-CP6> SET PARITY EVEN
           KERMIT-CP6> SHOW PARITY
 
 
 
6.7    SET/SHOW DEBUGGING par
 
       Description:
           Sets/shows the state of KermitCP6's debugging
           messages.  When on, messages are sent to the user's terminal.
           Redirect messages to a CP6 file by using an
           IBEX SET command '!SET DEBUGGING fid, CTG=YES'.
 
       par:
           must be ON or OFF
           Default value = OFF
       NOTE:  Debugging is only meaningful for modification of Kermit code.
 
       Examples:
           KERMIT-CP6> SET DEBUGGING ON
           KERMIT-CP6> SHOW DEBUGGING
 
 
6.8    SHOW SPEED
 
       Description:
           Shows the baud rate of transmission.
 
       NOTE:  SPEED must be SET by the microcomputer Kermit.
 
       Example:
           KERMIT-CP6> SHOW SPEED
 
6.9    SET/SHOW DELAY par
 
       Description:
           Sets/shows the number of seconds KERMITCP6 will
           wait before sending data following a SEND command.
 
       par:
           may be any positive decimal number, given in seconds
           Default value = 5 seconds
 
       Examples:
           KERMIT-CP6> SET DELAY 25
           KERMIT-CP6> SHOW DELAY
           NOT YET IMPLEMENTED !!
 
 
7.0    SHOW keyword
 
       Keywords:
         SEND  <option>    (Reference 6.1)
         RECEIVE <option>  (Reference 6.2)
         TRANSMODE         (Reference 6.3)
         EIGHT-QUOTE       (Reference 6.4)
         FILERECORD        (Reference 6.5)
         PARITY            (Reference 6.6)
         DEBUGGING         (Reference 6.7)
         SPEED             (Reference 6.8)
         DELAY             (Reference 6.9)
         ALL
 
7.1    SHOW ALL
 
       Description:
           Shows the current values of the KermitCP6
           SEND, RECEIVE, and Local System parameters.
 
       Example:
           KERMIT-CP6> SHOW ALL