Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ISA bus address decoding

523 views
Skip to first unread message

Darrick West

unread,
Jan 3, 1997, 3:00:00 AM1/3/97
to

I designed an 8-bit ISA bus I/O card that uses 2 of 8 switch selectable
addresses(200H, 208H, 220H, 228H, 300H, 308H, 320H, 328H). I know some of
these addresses are reserved, but if they aren't in use I've been able to
use them without problems. Address 220H is basically out of the picture
ofcourse, and so is address 200H. But some of the other addresses causes
serial port, and floppy port conflicts. Why?!! I'm not using the serial,
or floppy port addresses.

This I/O board was designed several years ago, and worked very well. But
now I get these address conflicts with the new motherboards. Should I
decode the entire 64K address space to make sure my board responds only to
my address selection, or has there been a an industry change in I/O port
address allocation?

Antony E. Brinlee

unread,
Jan 3, 1997, 3:00:00 AM1/3/97
to Darrick West


Yes you should. Useually the boards use the A6-9 line into a 3 to 8
line decoder. Quickest fix is to use an 8 input AND gate ( for A8-15 )
as the input to the gate pin (most often done with a 74xx30 NOR gate and
a 74xx04 inverter).

As you've obviously noticed an incomplete address decode causes you to
get I/O read/writes at addresses above the A9 line. You are on the
right track.

Have any problems let me know.

Tony Brinlee
AEB, Inc.
tbri...@ix.netcom.com

Carla Fong

unread,
Jan 5, 1997, 3:00:00 AM1/5/97
to

A good suggestion, and one that I used extensively until I discovered PLA
devices. We're now using a 16V8 or 20Vxx device for address decoding with
a couple of advantages:

1: Single package for all address decoding, with user assignable input and
output pins. Makes printed circuit design much easier, especially on
2-layer boards.

2: enough extra gates to provide buffering for the IO read and write
lines, still in 1 package...

3: can address multiple IO spaces in 1 package, and can provide a range
switch by putting hardware jumpers on a couple of input pins and including
them in the address logic.

4: High input impedance does not load the bus.

Disadvantages: Slightly higher cost compared to 74xx devices and you need
a programmer to tell the chippies what to do... but once you get one,
you'll never go back!

Have fun!
--
car...@teleport.COM God has angels to help with her work,
The devil has politicians

Charles Manning

unread,
Jan 7, 1997, 3:00:00 AM1/7/97
to

In article <01bbf994$dc4c8920$6077...@agentman.erols.com>, agen...@erols.com
says...

>
>I designed an 8-bit ISA bus I/O card that uses 2 of 8 switch selectable
>addresses(200H, 208H, 220H, 228H, 300H, 308H, 320H, 328H). I know some of
>these addresses are reserved, but if they aren't in use I've been able to
>use them without problems. Address 220H is basically out of the picture
>ofcourse, and so is address 200H. But some of the other addresses causes
>serial port, and floppy port conflicts. Why?!! I'm not using the serial,
>or floppy port addresses.
>
>This I/O board was designed several years ago, and worked very well. But
>now I get these address conflicts with the new motherboards. Should I
>decode the entire 64K address space to make sure my board responds only to
>my address selection, or has there been a an industry change in I/O port
>address allocation?
>

Most of the new motherboards have onboard peripherals (serial, parallel etc)
right in the motherboard chipset. These can clash with your card even if you
have no conflicting ISA cards installed. There are normally CMOS settings
which allow you to control these peripherals (ie. set addresses or even turn
them off completely).

Decoding the whole 16bit IO address space will not resolve a clash as only
A9..A0 (or so) are actually used. At one place I worked, we used the other
address lines for extra addressing. This normally worked OK so long as the
A9..A0 bits didn't clash with other devices. I say "normally" because some 386
memory managers would not support addresses over 3FF in the virtual 86 tables
and the memory manager would throw an exception if we attempted to use any
value other than zero on A15..A10 address bits.


Good luck!

-- Charles


Tony Tyner

unread,
Feb 12, 1997, 3:00:00 AM2/12/97
to

The ISA spec for I/O devices states that you need only decode the 1K I/O
address space. A0-A9 is sufficient.
You may have an address enable conflict. If the AEN bus signal is not
implemented correctly, you could be getting conflicts when the floppy
disk is in use. You may inadvertently be decoding the floppy
controllers's address, which is a DMA tranfer. During this time, the AEN
signal is de-asserted to indicate a DMA transfer is in progress. You can
run the AEN signal directly into you address buffer's enable signal to
eliminate this problem.

--
_______________________________________________________________

Tony Tyner mailto:tyn...@gte.net http://home1.gte.net/tynerae
Hurco Companies, Inc. (317) 298-2637 x2245
_______________________________________________________________

Richard Steven Walz

unread,
Feb 13, 1997, 3:00:00 AM2/13/97
to tyn...@gte.net

In article <3301FF...@gte.net>, Tony Tyner <tyn...@gte.net> wrote:
>The ISA spec for I/O devices states that you need only decode the 1K I/O
>address space. A0-A9 is sufficient.
>You may have an address enable conflict. If the AEN bus signal is not
>implemented correctly, you could be getting conflicts when the floppy
>disk is in use. You may inadvertently be decoding the floppy
>controllers's address, which is a DMA tranfer. During this time, the AEN
>signal is de-asserted to indicate a DMA transfer is in progress. You can
>run the AEN signal directly into you address buffer's enable signal to
>eliminate this problem.
-------------------------------------
Well, you're right, EXCEPT for the hoard of modern cards using the holes of
unused range in the lowest A0-A9 which are limited somewhat, so all the
better for cards which are 16 bit configurable, so they can avoid stomping
each others' lower 10 bit address. And yes, the AEN must be LO for I/O or
you can stomp the DMA!! That's what it is FOR!! The AEN HI says, this
address for I/O is for the DMA chip only!!! And you said "de-asserted to
indicate a DMA transfer..." above, which is backwards. Undoubtedly a slip.
The line is NOT considered active LO, it is active HI asserted FOR DMA when
HI!! It doesn't MEAN ISA Expansion *Address ENable*! It means direct memory
Access ENable !! Thus AEN, but it is decoded for LO on an expansion I/O
adapter card.
-Steve
--
-Steve Walz rst...@armory.com http://www.armory.com/~rstevew/
-Lots of New FTP Electronics Stuff!! 900 Files/45 Dirs (Full Mirror ==> *)
--
-Steve Walz rst...@armory.com ftp://ftp.armory.com:/pub/user/rstevew *
Europe:(Italy) ftp://ftp.cised.unina.it:/pub/electronics/ftp.armory.com *
Oz: (Australia) ftp://gold.apana.org.au:/pub/electronics/ftp.armory.com *
(U.Cinci) ftp://ieee.cas.uc.edu:/pub/electronics/mirrors/ftp.armory.com *

Stan Eker

unread,
Feb 15, 1997, 3:00:00 AM2/15/97
to

Tony Tyner penned:
: The ISA spec for I/O devices states that you need only decode the 1K I/O
: address space. A0-A9 is sufficient.
: You may have an address enable conflict. If the AEN bus signal is not
: implemented correctly, you could be getting conflicts when the floppy
: disk is in use. You may inadvertently be decoding the floppy
: controllers's address, which is a DMA tranfer. During this time, the AEN
: signal is de-asserted to indicate a DMA transfer is in progress. You can
: run the AEN signal directly into you address buffer's enable signal to
: eliminate this problem.

True. However, many of the motherboards since the early '386 days also
drive the rest of the lines (A10-A15). If they didn't, things like the
new parallel port IEEE-1284 wouldn't work since they rely on the second
`1K bank' of I/O addressing. IBM didn't decode the upper lines on their
old boards, MOST of the plug-in cards don't, but it's required for some.

Just something to keep in mind. It's *not* required to decode the extra
lines, but the addresses ARE available in many machines, nowadays. It's
been a long, slow evolution. In 1980, 1K I/O space was overkill. Today,
I'd be happier with 64K, at least.

0 new messages