[net.micro.cpm] Altos 5-5D Computer

EJS%mit-mc@sri-unix.UUCP (04/29/83)

From:  Eric J. Swenson <EJS@mit-mc>

Does anyone know the CONTROL and DATA ports for the Serial i/o ports on the
Altos 5-5D (or 5-15D) micro?  Also, what are the bits to test for read and
write?  As you might imagine, I'm trying to get MDM70X running on it.
Thanks.

Kenny.G8ARCH%system-m.phoenix.honeywell@BRL.ARPA@sri-unix.UUCP (06/07/83)

From:      Kevin B. Kenny <Kenny.G8ARCH%system-m.phoenix.honeywell@BRL.ARPA>

In-Reply-To:
    Subject: Altos 5-5D Computer
    Date: 28 April 1983 21:49 EDT
    From: Eric J. Swenson <EJS@mit-mc>
    To: info-cpm@brl, info-micro@brl

The ALTOS serial ports are as follows:

CHIP        DEVICE      CONNECTOR   STATUS  DATA

Z80A-SIO   Console #2       JD        2C     2D
           Console #1       JC        2E     2F

Z80A-DART  Console #3       JB        1C     1D
           Printer          JA        1E     1F

     If you're going to do I/O directly, there are some things to watch
out for, since the ALTOS BIOS is interrupt-driven.  If you just start
doing IN's and OUT's you'll confuse it with extraneous interrupts (and
probably hang the system).

     I recommend using console 2 (JD) as the modem port, if you have a
choice, since the Mostek SIO is more forgiving than the Zilog DART.  One
sequence that works for me is to send the following to the status port
to configure the SIO:

     18H     ; Channel reset. (get rid of any funny conditions)
     01H     ; Select register 1
     04H     ; Disable the SIO interrupts
     04H     ; Select register 4
     44H     ; Set x16 clock, one stop bit, no parity.
     03H     ; Select register 3
     0C1H    ; Receiver enabled always, bytesize = 8 bits, no parity.
     05H     ; Select register 5
     68H     ; Transmitter enabled always, bytesize = 8 bits, no parity.

     I put all this junk in a file called SETMODEM.COM that I run once to
initialize things after power up.

    Following this, an IN from the status port will have bit 2 (04H) on
if the SIO is ready to send a character, and bit 0 (01H) ON if a
character is ready for the CPU to read.

    If you ever need to give the SIO channel back to the BIOS, send the
status port the sequence:

    18H    ; Channel reset
    01H    ; Select register 1
    1FH    ; Interrupt on received characters, parity does not affect
           ; vector, status does affect vector, transmission interrupt
           ; enable, external/status interrupt enable.

and then hope for the best.  It usually works for me, but I don't do it
very often.

Hope this helps

/k**2