                        KERMIT v. 2.28 for the Victor 9000

                                20 January 1986
                               Bryan G. Peterson
                           (PETERSON@BYUVAX.BITNET)

The support for KERMIT on the Victor 9000/Sirius microcomputers is contained
in two assembly-language files, MSXV90.ASM and MSYV90.ASM.  The support
includes the full option list of baud rates (45.5 to 38400 baud), the use of
either serial port, full HEATH emulation, and restoration of the screen to
its previous condition when reconnecting to the same port after disconnecting.
The SET KEY option has not been supported since that does not seem to be
necessary with the Victor's soft keyboard.

The default escape character is ^].  The use of a mode line during terminal
emulation is supported (in reverse video).  There is no support of screen
rollback beyond the memory of what the screen looked like when connect mode
is exited, and restoration of that screen when a connection is made to the
same port.  Printer control is only available through the logging capabilities
of the basic KERMIT.

Because of the way the Victor documentation refers to the two serial
connectors on the system box, more options were added on the SET PORT
command.  These are
     COM1, TTY, A, or 1 - referring to the port in the center rear
     COM2, UL1, B, or 2 - referring to the port on the right
You can use the one which makes the most sense to you.

As near as I could determine, there is no way to poll the 8253 timer to
determine the current baud rate on entry, so the routine GETBAUD has been set
to return a default baud rate the first time it is called for each port, and
to do absolutely nothing on subsequent calls.  The default baud is set by
the parameter DEF_BAUD defined near the start of the file.  As it is being
send, this parameter is set to 1200 baud (primarily due to the fact that I
do my work over a modem).

Terminal emulation is left entirely up to the BIOS of the Victor's operating
system.  Since the BIOS handles the HEATH/ZENITH-19 emulation, the KERMIT
emulation just passes all incoming data directly to the BIOS.  This is true
whether HEATH emulation is set on or off.

The proper link command for generating the executable file (MSV9000.EXE) is

link msxdmb mscmd mscomm msfile mskerm msrecv mssend msserv msset msterm+
msxv9000 msyv9000 msfinal,msv9000,msv9000/map;


                           TEKTRONIX EXTENSION

For those who would like to get more out of the Victor 9000, there is also
a version of MSYV90.ASM which gives full Tektronix 4010 emulation.  This
module provides full text, graphics, and graphics input (GIN) emulation.
The graphics are good quality, thanks to the quality of the Victor's screen,
and the graphics input appears to be adequate for most needs.  However, the
text leaves a little to be desired in terms of readability.  The font is
home grown (my home) and I didn't have a lot of time to put into fine tuning
the different characters for readability, but they can be deciphered with a
little practice.

There are three Victor-specific modules required to generate the Tektronix
version.  These are
      MSZV90.ASM - replaces MSXDMB to get the segments in the right order
      MSXV90.ASM - same one used for the regular KERMIT
      MSYV9T.ASM - provides the Tektronix emulation
The first module is required to get the segment containing the graphics
screen region as low as possible in memory.  Because of the way the Victor
screen controller works, it is necessary that the program be loaded so that
the graphics screen falls entirely in either the first or second 64K of memory,
but doesn't span the boundary between the two sections.  If it does happen to
load such that the boundary is spanned, it will do no damage to the system
(i.e., write all over something critical), but the screen will have a bunch of
random trash in the lower portion.  The emulation is unusable in that condition
and it will be necessary to find a way to get it loaded into the right region
by adjusting the amount of memory used by permanently installed options such
as CALC.

The Tektronix emulation mode is entered by setting the HEATH mode off
(i.e., SET HEATH OFF).  There are two features of the emulation that must be
explained to be useful.

First is the effect of having text "scroll" off the bottom of the screen.
Since the screen can't really scroll, the emulator will ring the bell once
and print a small, all-white, horizontal rectangle in the lower left corner
of the screen, just below the last line of text.  The serial input buffer will
continue to capture data and all handshaking and flow control will continue,
but no characters will be processed to be placed on the screen.  In order to
clear the screen and continue processing it is necessary to press the key which
generates the hex value 0F1H (function key #1 on the default Victor keyboard).
The key used for clearing the page is defined by the parameter CLEAR defined
near the top of the file MSYV9T.ASM.

Second, when the emulator is placed in GIN mode by receipt of the appropriate
command sequence from the host, a small cursor will be displayed at the current
graphics cursor location.  This cursor can be moved around using the arrow keys
if they are defined to produce the proper HEATH codes (esc-A, esc-B, esc-C, and
esc-D for up, down, right, and left respectively).  The movement is done in
Tektronix units rather than Victor units, so it may be necessary to hit the
appropriate arrow key twice before the cursor will actually move.  But this
does give the user the capability of pinpointing a location on the screen
with a maximum error of 1 Tektronix unit.  In addition, since it is rather
tedious to hit the arrow key 1023 times to move from one side of the screen to
the other, hitting the escape key followed by a numeric key (1 through 9) will
set the increment for the arrow keys to the value of the numeric key, e.g.,
pressing esc followed by the '9' key, will cause the cursor to move 9 units for
each press of the arrow key.  This increment value will be retained between
successive activations of the GIN mode.  GIN mode is exited by pressing any key
(other than the sequences for the arrow keys or for changing the increment
value).  If it is desirable to send an esc key as the GIN mode terminator, just
strike the escape key twice.

The command to create the Tektronix emulator version (MSV9TEK.EXE) is

link mszv9000 mscmd mscomm msfile mskerm msrecv mssend msserv msset msterm +
msxv9000 msyv9tek msfinal,msv9tek,msv9tek/map;

I did not make the Tektronix version the only one available because of the
extra 40000 bytes in the executable file size for the extra emulation and
the graphics screen area.  It takes a while to load the extra code which
may be unacceptable for someone who never uses the graphics emulation.

                               DISCLAIMER

Due to the limited nature of the equipment available for testing, certain
features of KERMIT have not been adequately tested.  These include SERVER
mode and some of the less common baud rates.  It works very well for file
transmissionand terminal emulation.  In fact, since the serial I/O is
interrupt driven and doesn't loose data as readily, I much prefer KERMIT
over CROSSTALK in spite of the limited emulation available.
