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.