CP/M-86 8086/8088-based KERMIT
------------------------------

V 2.1:  4 Jan 84 Adds missing commands, wildcard sends; Ron Blanford, U Wash.
V 0.2: 19 Dec 83 Corrects problem with RTS and DTR; Brian Orr.
V 0.1:  2 Dec 83 Adds interrupt driven i/o, GET command; Bill Catchings.
V 0.0: 21 Oct 83 Initial coding and pre-release; Bill Catchings, Columbia.

This version of KERMIT is written in Digital Research CP/M-86 assembler,
ASM86.  It is designed to support any CP/M-86 system.  So far it supports:

    DEC Rainbow-100
    NEC Advanced Personal Computer (APC)

Features and restrictions:

. Performs all standard KERMIT functions.
. Has commands to talk to KERMIT servers.
. Runs up to 9600 baud on all systems tested.
. No local CP/M functions (ERA, DIR, SET DEFAULT disk) as in KERMIT-80 3.6.
. No 8th-bit prefixing.
. No repeat-count prefixing.
. No 2- or 3-character block checks.
. No protocol to interrupt a transfer (^X/^Z in other KERMITs), but ^C during
   file transfer gets back to Kermit-86 command level.

Known Problems:

. Can not communicate with IBM mainframes (SET IBM doesn't work right).
. Buffer clearing is not done often enough, so that if long intervals
   pass between issuing server commands, there may be some confusion.
. SET <parameter> <CR> has no effect at all.
. There's no way to simulate a timeout during file transfer, for instance
  by typing carriage return (as other microcomputer KERMITs allow).

The known problems will be fixed in forthcoming releases.

CP/M-8 KERMIT is broken up into several source modules:

    86KERCMD.A86	Command parser
    86KERFIL.A86	File handler
    86KERIO.A86		System Dependent I/O
    86KERMIT.A86	Main Program
    86KERPRO.A86	Protocol Module
    86KERUTL.A86	Utilities

The main program module, 86KERMIT.A86, contains INCLUDE directives for the
other files.  The program may be built on the CP/M-86 system by obtaining
all the source files listed above, storing them on the current disk with the
names indicated, setting the appropriate conditional assembly parameters
(RAINBO or NECAPC) in 86KERMIT.A86 to TRUE or FALSE, and doing:

    ASM86 86KERMIT $PZ  (this takes about 6 minutes on the Rainbow)
    GENCMD 86KERMIT     (takes less than a minute)

and, if desired,

    REN KERMIT.CMD=86KERMIT.CMD

Note: all system-dependent code should be in the i/o module; currently there is
some system-dependent code in the main (86KERMIT) module which should be moved.
This includes error message text and command tables (which may be feature
dependent), version header text, the DTR code.
