Tandy 1000
inter
Technical Reference Manual
8237A/8237A-4/8237
A-5
Channel
Slgnete
De"
B
..
DIG-OIl
Regleter Operellon
CS
lOR lOW
A3 A2
Al
AD
Internel
Flip-Flop
0
Bas.
end Current Address
Write
0 1 0
0
0 0
0 0
AO'-Al
0
1
0 0 0 0
0
1
AS-A15
Curront Addre
••
Read
0 0
1
0 0 0 0 0 AO'-Al
0
0
1
0 0 0
0
1
AS-A15
Base end Current Word Count
Write
0
1
0
0
0 0 1 0
WO:-Wl
0
1 0
0 0 0
1 1
W8-W15
Curront Word Count Read
0
0
1
0
0
0
1
0 WY;>-Wl
0
0
1
0
0
0
,
1
W8-W15
1 Base and Current Address Write
0
1
0
0
0
,
0
0
AO'-Al
0
1 0 0 0 1
0
1
A8-A15
Current Address Reed
0
0
1
0
0
1
0 0 AO'-Al
0 0 1
0
0
1
0 1
AS-A15
Ba.e
end Current Word Count Write
0
1
0 0 0
1
1
0 WO:-Wl
0 1 0
0
0 1 1 1
W8-W15
Current Word Count
Read
0
0
1
0
0
1 1
0
WOWl
0 0
1
0
0
1
1 1
W8-W15
2
Bas.
and Current Address
Write
0
1
0 0
1
0 0
0
AO'-Al
0
1
0
0
1 0 0 1
AS-A15
Current Address Read
0 0
1
0
1
0 0
0
AO'-Al
0
0
1
0
1
0 0 1 A8-A15
Base and Current Word Count
Write
0
1
0
0
1
0
,
0 WO'-Wl
0
1
0 0
1
0 1 1 W8-W15
Current Word Count Read
0 0
1
0
1
0 1
0 WY;>-Wl
0
0
1
0
1
0 1 1 W8-W15
3
Base and Current Address
Write
0
1 0
0
1
1
0 0 AO'-Al
0
1
0 0
1
1
0
1 A8-A15
Current Address Reed
0
0
1
0
1 1
0 0 AO'-Al
0 0
1
0
1
1
0
1
A8-A15
Base and Current Word Count
Write
0
1
0 0
1
1 1
0 WO:-W1
0
1
0 0
1 1
1 1
W8-W15
Current Word Count Reed
0
0
1
0
1 1
1 0 WY;>-Wl
0
0
1
0
1
1
,
1
W8-W15
Figure
7.
Word
Count
and
Address
Register
Command
Codes
PROGRAMMING
The 8237A
will
accept programming from the host proc-
essor any
time
that HLDA
is
inactive;
this
is true even
if
HRQ is active. The responsibility
of
the
host
is to assure
that programming and HLDA are
mutually
exclusive.
Note that a problem can
occur
il
a DMA request occurs,
on
an
unmasked channel while the 8237A is being pro-
grammed. For instance, the CPU may
be
starting to
reprogram the two byte Address register
of
channel 1
when channel 1 receives a DMA request.
II
the 8237A is
enabled (bit 2 in the command register
is
0)
and channel
1 is unmasked, a DMA service
will
occur
after only one
byte
01
the Address register has been reprogrammed.
This can be avoided by disabling the
controller
(setting
bit
2 in the command register)
or
masking the channel
before programming
any
other
registers. Once the pro-
gramming is complete, the
controller
can be enabled/un-
masked.
After
power-up
it
is
suggested that all internal locations,
especially the Mode registers, be loaded
with
some
valid value. This should be done even
if
some channels
are unused.
2-95
AFN·OO789D