[time-nuts] PC-104 ISA by Luis Cupido
Dean Weiten
dmw at weiten.com
Tue Feb 26 20:26:00 UTC 2008
Luis,
As have many others, I've stubbed my toes on ISA interfacing lots of
times. The best reference on the subject is "Interfacing to the IBM (r)
Personal Computer", by Lewis C. Egeebrecht, from Sams. It's old and may
be out of print, but it's an essential resource for anybody dealing with
8 or 16-bit ISA. You will have to ignore the sections in PS/2 Micro
Channel architecture of course :-) There are a few typos (e.g chapter
10 - description of SBHE - SBHE should be inverted, and /SBHE=0 A0=1 is
odd byte 8 bit transfer not "invalid") but it is an *excellent* reference.
Back to your problem. 8 bit I/O should work if you are decoding the
lower 16 bits of address (NB **only** 16 bits) qualified by AEN low and
using /IOW & /IOR to strobe. One common error that I've made a few
times is to ignore the AEN, which typically works but messes up the DMA
so that floppy drive access fails. Be sure to leave I/O Channel Ready
alone unless you want to extend the I/O cycle time; and then only drive
it low when your device is accessed.
To enable 16 bit I/O, you drive I/O CS 16 low when you have valid
address to your board (address & AEN, no need for strobe), then you must
do an 8 bit or a 16 bit cycle in accordance with A0 & /SBHE. This
because the X86 instruction set allows for 8 and 16 bit I/O, and you
don't know which one you will be seeing when you get selected.
That should be all there is to it. All this with the caveat of course
that free advice is worth... well, you know :-)
Regards,
Dean Weiten
dmw -at- weiten.com
More information about the Time-nuts_lists.febo.com
mailing list