[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