MPSC.COM is a program that sets up the Multi-Protocol Serial Controller
port on the Zenith Z-404 Multi-I/O board as a 'standard' serial port
useable by DOS and most 'well-behaved' programs.  It was written by Zenith
Data Systems and was originally known as COM3.COM in the IUTIL004.LBR file
from the Air Force's Dial-A-Log BBS on gunter-adam.af.mil.  The name
COM3.COM made it difficult to extract from the LBR file because it
conflicts with a device name.  I've renamed it to MPSC.COM to avoid this
problem and packaged it in a ZIP file with a pair of utilities for telling
DOS that there is another serial port available.  I have also included in
this file additional documentation on the MPSC program.
     
From the comments I've read on Usenet, Dial-A-Log, and Plato, there
appears to be some confusion over how to use the Z-404 serial port.  I
hope this documentation helps to clear up some of that confusion.  Because
ZDS is intentionally vague about the proprietary circuitry of the Z-404,
much of the information in this file are really only intelligent guesses
based on information gleaned from the various ZDS technical manuals
available to me and some experimentation.  If you find any errors in this
doc, please let me know.

The ZIP file contains the following:

README         This file.

MPSC.COM       Z-404 Multi-Protocol Serial Controller program.  

Z404MPSC.BAT   Sample BAT file for using SETCOM2.DBG and MPSC.COM.

SETCOM2.DBG    DEBUG input file to setup COM2.

SETCOM3.DBG    DEBUG input file to setup COM3.


                               Installation

1.  This requires some familiarity with DOS.  Determine which COM port you
want the Z-404 MPSC to look like.  COM1 is not recommended since most
Z-248s already have a standard COM1 serial port.  Setting up the MPSC as
COM1 will disable the standard port.  If for some reason you insist on
using the MPSC as COM1, then ignore any steps in the following
instructions that reference the SETCOM files.  The following instructions
assume a COM2 setup.  If you are installing the MPSC as COM3, then change
all the 2's to 3's in the text that follows.

2.  Move MPSC.COM and SETCOM2.DBG to your utility directory.  This can be
a subdirectory on the hard drive such as C:\UTILITY.  This directory
should also be part of your DOS PATH.

          copy mpsc.com c:\utility
          copy setcom2.dbg c:\utility

3.  Edit your AUTOEXEC.BAT file in your root directory to include the
following lines:

          debug <c:\utility\setcom2.dbg
          c:\utility\mpsc com2

4.  Reset the computer by pressing the Ctrl, Alt, and Del keys at the same
time.

Notes:  The BAUD rate and other serial port parameters for the MPSC can be
specified on either the MPSC.COM command line or by using the DOS MODE
command.  For example, to setup the MPSC as a 2400 BAUD COM2 port you
would use

          mpsc com2,2400

The possible MPSC parameters can be listed by entering

          mpsc ?

at the DOS command prompt.  You can also use the DOS MODE command to set
parameters, for example:

          mode com2:9600

sets up the MPSC at 9600 BAUD.  Lastly, you can also redirect the parallel
ports to it:

          mode LPT1:=COM2:

See the DOS user's guide and reference manual for more details on the MODE
command.  Certain restrictions apply depending on the version of DOS that
you are using.


                          Additional information

SETCOM2.DBG and SETCOM3.DBG are text files containing instructions for the
DOS DEBUG program to store the base address of the Z-404 board (0270H)
into location 40:2H or 40:4H.  If this is not done, DOS will not know
there is a COM2 or COM3 port and will not even attempt any BIOS calls to
those ports (ie. the MODE command will not work and many programs will not
acknowledge the existence of those ports).

MPSC.COM seems to run as a BIOS-level driver.  It hooks itself in as the
interrupt 14H handler and intercepts software BIOS calls for the port that
it was installed for.  The BIOS pathway for serial-port access is
relatively slow so terminal-emulation/modem-access programs may experience
problems with lost characters (see below for comments on operation with
Kermit and similar programs).  

However, serial printing through MPSC.COM is not adversely affected the
same way.  You should be able to run a serial printer using MPSC at high
BAUD rates.  For reasons explained in the following paragraph, you should
setup your application programs to use software handshaking (XON/XOFF)
with the serial printer.  The printer should also be setup to use XON/XOFF
handshaking.  Note that if your software only sends output to a parallel
printer, you will have to redirect the LPT1 port to the appropriate COM
port by using the MODE commands redirection feature as shown in the
example above.

MPSC.COM does not seem to affect the operation of the LPT2 port or the
COM1 port (if it wasn't installed for COM1).  I don't think it implements
the full BIOS set of instructions for the MPSC particularly with regard to
the modem status signals.  However, it seems to return TRUE signals for
these when a modem status query is received.  This will fake most programs
into running properly but make sure you set them up to do software
handshaking instead of hardware handshaking.  If a program requires
control of the modem status lines and/or hardware handshaking, there is a
good chance it will hang.  Programs that are known to do this include
RBBS-PC and NYTELINE.

Use with MS-Kermit.  The MPSC has been tested with MS-Kermit running at
1200 and 2400 BAUD through the Zenith 2400 BAUD modem to the DDN.  On an
8 MHz Z-248, Kermit experiences a problem of missing characters while
scrolling at the bottom of an already filled screen at 2400 BAUD (this may
be higher for faster Z-248s).  Characters are not lost if text is sent to
a freshly-cleared display screen.  This problem is probably caused by the
extra processing time required to move up the lines on the display
conflicting with the slow BIOS access method.  However, file transfers at
2400 BAUD and higher speeds work fine since there is very little screen
manipulation during a file transfer.  

The missing-character problem can be worked around if the host computer
you are logged on to can be set up to 1) pause slightly at the end of each
carriage-return, linefeed sequence, or 2) send a few NULL characters to
allow Kermit to finish scrolling the screen before it gets new characters,
or 3) clear the screen every 24 lines or at the bottom of each page.  See
your host command reference manual for details on configuring your
terminal line.  If your terminal line can be 'fixed' this way or if you
intend to do a lot of file transfers, you should logon at 2400 BAUD (or
higher for a direct line), otherwise use 1200 BAUD.  These comments
probably also apply to any other communication programs that access the
MPSC through the BIOS.

Complaints regarding the MPSC.COM program should be directed to the
authors (ZDS).  As mentioned earlier, MPSC.COM is known to ZDS as either
COM3.COM (or Z248COM3.COM) so refer to it by those names when you talk to
them.  MPSC.COM is not public domain but ZDS has provided it free of
charge to Z-248/Z-404 owners.

If you know of a more recent version of this program that fixes some of
the problems mentioned in the above paragraphs, I would appreciate hearing
from you.  If you have any other related questions or comments, one of the
following addresses or phone numbers will reach me.  

Internet e-mail:  tony@mpg.phys.hawaii.edu
BITnet e-mail:  querubin@uhunix

(808) 956-7660
AUTOVON 456-1232
Slow-mail address:
199th Weather Flight
Hawaii Air National Guard
Wheeler AFB, HI 96854-5000

Enjoy!
Antonio Querubin, Jr.