[sci.electronics] Address decoding circuitry

wdp@dukee.egr.duke.edu (William D. Palmer) (10/10/90)

Tuesday, 09 OCT 90

Fellow Net Ones:

I mailed a reply to the post below.  Judging from the followups in 
sci.electronics, I thought there might be enough general interest for
me to post my reply.  Here it is:

> From: steve@nuchat.UUCP (Steve Nuchia)
> Subject: cheap address decode ideas?
> Date: 29 Sep 90 06:46:04 GMT

> Given a desire to have N (=5 in this case) I/O port groups
> decoded at arbitrary addresses without using a whole boatload
> of parts?

> My current best, decoding 6 bits (sufficient) is a pair of 74ls138 ...

My advice would be to use the 74LS688, which compares two eight-bit words
and produces an active low output when the words are equal.  One word is 
the appropriate eight lines from your address bus, the other is set by an
eight position dipswitch.  Then you need only one dipswitch and one '688 
per port group.  I have used this on several cards which work in 
IBM PC/XT/AT computers.

> Thanks.

No problem.

Dev Palmer
wdp@dukee.egr.duke.edu
Duke Electrical Engineering
Room 309 Old Engineering Bldg.
Durham, NC  27706
(919) 660-5282

wb8foz@mthvax.cs.miami.edu (David Lesher) (10/10/90)

I once built a decoder out of a 256k EPROM. This case would not be that
big, but here is the idea. Use the data lines for output, and the
address lines for input. Burn the PROM such that when the desired
address is input, the appropriate output line is {high, low}. When the
second address is input, the next output line is..... etc. This proved
to save lots of chips in this specific case.

In my case, several address lines were mode selectors, and the rest
came from a difference counter that indicated how much {available}
memory was left in a large data buffer. The outputs were various levels
of panic (empty, >10%, =50%, >50%, >95%, and OH_SHIT--Data lost) for
other systems to respond to.

It was a bit of pain to come up with an input file to feed to the
Data_I/O burner. I used a large mainframe editor, and wrote 64k lines
of "db_xxxxH" statements. In my case there were only 5 or 6 different
kinds of lines, so I used LOTS of linecopy commands.  It took the
Perkins-Elmer that had the 232 line to the burner forty minutes each
time I ran the 8080 cross-assembler.

-- 
A host is a host from coast to coast.....wb8foz@mthvax.cs.miami.edu 
& no one will talk to a host that's close............(305) 255-RTFM
Unless the host (that isn't close)......................pob 570-335
is busy, hung or dead....................................33257-0335