<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Mon, 06 Jun 1983 2035-:00mst
From   : Kevin B. Kenny <Kenny.G8ARCH%system-m.phoenix.honeywell@BRL.ARPA>
Subject: Altos 5-5D Computer

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
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>