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