SERIAL INTERFACE
The
system-software views
the
SIO as four bi-directional
peripheral ports, located
in
the
system
input/output
space.
The
port
addresses, as defined by
the
SIO select
and
the
system
address bus connections, are detailed below.
Address
Port
60H
Channel
A
transmit/receive
data
62H
Channel
A
commands/status
64H
Channel
B
transmitlreceive
data
66H
Channel
B
commands/status
Writing
data
to
the
I/O
address
location
60H
loads
data
into
the
transmit
buffer of
channel
A;
reading
data
from
the
same
location
accesses
data
stored
in
the
receive buffer of
channel
A. Similarly,
writing
data
to
the
I/O
address
location
64H
loads
data
into
the
transmit
buffer of
channel
B;
reading
data
from
the
same
location
accesses data stored
in
the
receive buffer of
channel
B.
Writing
data
to
the
Write
Registers
(command
registers)
and
reading
data
from
the
Read Registers (status registers)
in
the
two
channels, generally requires
two
data transfers.
The
first
transfer is a
write
to
the
commands/status
address of
the
channel,
and
provides
the
SIO
with
a
pointer
to
determine
the
register for
the
next
read or
write
operation.
If
the
next
operation
is
writing
to
the
command/status
address location, a
command
byte
is loaded
into
the
Write
Register specified
by
the
pointer.
If
the
next
operation is
reading
from
the
commands/status
location, a
status
byte
is
accessed
from
the
Read Register specified by
the
pointer.
Following
the
second
transfer
operation
the
pointer
within
the
SIO is always cleared
to
zero.
Write Register Definition
Both
channels
contain
seven
Write
Registers each,
which
configure
the
SIO
to
match
the
desired
mode
and
application. Five of
these
registers are
command
registers