            Addendum to Kermit manual for Sanyo MBC 550 and 555.

The Sanyo 550 version of MS-Kermit is derived from the IBM version, and
implements almost all of the same features.  The major differences are:

     Only one serial port, max baud rate 19,200
     No provision for network operation
     Different keyboard
     Detects whether the optional CGA-like video board is in use, and
        does BIOS screen I/O if not
     Tektronix emulation is only implemented for video board systems

This version should run on any Sanyo 550 or 555 with MS-DOS 2.11 and
more than 128K of memory.  This version has been tested at baud rates up
to 19.2 Kbaud.  At the higher baud rates, there is some fixed error in
the actual transmitted baud rate which may cause errors when
transmitting to devices that are fussy about the incoming baud rate.
Error free operation at 19.2 Kbaud was achieved between the Sanyo and an
IBM-PC and at 9600 baud between the Sanyo and a VAX.

The Sanyo keyboard hardware does not distinguish between keys which send
the same ascii character, so the keypad keys with numlock "on" cannot be
defined to transmit a key or string that differs from that transmitted
by the corresponding key on the regular keyboard.  Also, the Sanyo BIOS
returns the same scan code for some keystrokes which could be
distinguished at the hardware level.  For greater flexibility in
redefining keys, Sanyo Kermit has an option to replace the BIOS key
translation tables with its own tables.  Since the keyboard buffer
location varies with different operating system versions, this
replacement cannot be done cleanly; it requires patching the BIOS at
connect time, and restoring it on exit.  Installation of this patch will
fail (harmlessly) if the keyboard interrupt is already being intercepted
by some other program, such as a print spooler or pop-up utility.  This
option is disabled in the executable module normally distributed by
Columbia.  To enable it, the machine dependent routines MSU/X/Y/Z55X.ASM
must be assembled with the -dMODIFIED flag to MASM.

There are two possible video configurations for the Sanyo 550 series.
All machines have a 640x200 3-plane bit mapped graphics screen, and some
also have the approximate equivalent of an IBM color graphics adaptor.
To determine which is in use, the startup code writes two different
characters to the first character position of the current line with a
BIOS call, and then attempts to read them back from the CGA memory.
Since the usual result of reading from non-existent memory is a byte
with most or all bits set, there is no significant chance of this test
failing.  Having determined which type of video board is operating,
Kermit uses either BIOS calls or accesses the video RAM directly as
appropriate.  Without a CGA, screen updating is slow and it will
probably be necessary to use XON/XOFF handshaking at baud rates higher
than 1200.

The 550 series does not have a DMA disk controller.  This means that the
CPU must send out each byte to the disk controller, and must do so
within tight time constraints.  For this reason, the BIOS disables
interrupts when accessing a floppy disk.  This means that serial port
interrupts will not be serviced during disk activity.  This is not a
problem during protocol transfers since no attempt is made to overlap
disk and serial port I/O, but it is a severe problem when trying to
capture a session to disk.  The only cures for this problem are to
capture to a RAM or hard disk or to use a modem which buffers incoming
characters.  (Note that the problem persists even with some RAM disk
programs.  It appears that RAM disk programs which use any of the mode
letters A: through D: disable the interrupts during processing simply
because they use some of the same code used for access to hardware
floppy disk drives, while RAM disks which use mode letters E: or higher
do not.  Specific experience is that MDISK from Michtron loses a small
number of characters during each disk access but VARIRAM, a public
domain RAM disk by an unknown author, does not lose any.)

The Sanyo BIOS has another quirk which may cause problems with any
communications program.  Whenever a disk is accessed, the BIOS drops the
DTR signal.  Presumably this is done to tell the remote system that the
machine is not ready to accept characters, but what it also does is tell
some modems to hang up the phone.  There are several possible remedies:

(1) Most modems have a DIP switch that causes the modem to ignore the
state of the DTR line.  Setting this switch to the appropriate position
will prevent the inadvertent disconnect that would otherwise occur
during disk access, but it will also prevent the HANGUP command from
functioning.  With a Hayes compatible modem, you can probably create a
hangup macro which outputs +++, waits 1 second, and then outputs ATH0.
The same effect may be achieved by using a modem cable that has the DTR
line at the modem end jumpered to Data Set Ready (DSR) so the Modem is
fooled into thinking the "terminal" or computer is always ready.

(2) Sanyo users groups distribute a program called DTR.COM which patches
the in-core BIOS so that DTR is not dropped.  However, this program only
works with some BIOS versions.

(3) The BIOS can be patched permanently.

            Command differences in Sanyo Kermit

SET BAUD - all baud rates up to 19,200 are supported, but rates above
2400 baud are inaccurate and may cause problems on some systems.

SET PORT - not implemented, only one port is available.

SET TERM COLOR 2 or 3 - selects black and white (2) or color (3) mode.
The black and white mode supports high/low intensity and underline while
the color supports various color settings.  In the color mode, the
terminal emulation underline is represented by the color combination
that happens to coincide with the IBM attribute for underline.



               Keystrokes defined during terminal emulation

(These are the default values.  Other configurations may be defined by
the SET KEY commands in an MSKERMIT.INI file.  Codes marked with an
asterisk are different between the IBM and Sanyo versions.)

             VT-100 Keypad Key:          Corresponding Sanyo Key:

             PF1 to PF4                  PF1 to PF4  *
             Enter                       PF5  *
             Keypad 1 to 9,0             CNTL-1 to -9,-0
             Keypad comma                CNTL-comma  *
             Keypad period               CNTL-period  *
             Keypad hyphen               CNTL-slash  *
             Cursor Keys                 Keyboard Arrow Key

   Connect-mode Kermit Function:         Corresponding Sanyo Key:

             Send Break                  BREAK key  *
             Toggle Mode Line            PF6  *
             Toggle Terminal Type        PF7  *
             Reset                       PF8  *
             Printscreen                 PF9  *
             Screen Dump                 CNTL-END
             Exit CONNECT mode           CNTL-SHFT-X
             Show CONNECT STATUS         CNTL-SHFT-S
             Send Linefeed               SHFT-Return
             Connect mode HELP MENU      CNTL-SHFT-H

Screen Rollback:

             Back one screen             Page UP
             Back one line               CNTL-Right Arrow *(see note)
             Forward one screen          Page DOWN
             Forward one line            CNTL-Page DOWN
             Back to beginning of buffer Home
             Forward to end of buffer    End

Note: Back one line is defined as "CNTL-Right Arrow" because Sanyo key
codes do not allow the CNTL-PG UP key to be distinguished from the PG UP
key.  Assembling the Sanyo specific .ASM modules with the -dMODIFIED
switch on produces a version that fixes this and defines the CNTL-PG UP
key as the "Rollback one line" function.

Comments on this version should be sent to:

    Robert W. Babcock  4 Reeves Road          Bedford, MA  01730
    peprbv%cfaamp@harvard.harvard.edu (peprbv@cfaamp on BITNET)

    Joseph H. White    4320 Ryegate Drive     Raleigh, NC  27604
    jhw@rti.rti.org

Original Sanyo verison by Joe Smiley.
