Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!husc6!cfa!ward From: ward@cfa.harvard.EDU (Steve Ward) Newsgroups: comp.sys.ibm.pc Subject: Re: Usable I/O Address range on the PC bus ... Summary: play it again, Sam... Keywords: Limited to addresses up to 0x0400 only?? Message-ID: <1276@cfa.cfa.harvard.EDU> Date: 21 Nov 88 07:10:06 GMT References: <5065@whuts.ATT.COM> <4229@encore.UUCP> <1275@cfa.cfa.harvard.EDU> <3626@pt.cs.cmu.edu> Organization: Harvard-Smithsonian Ctr. for Astrophysics Lines: 35 In article <3626@pt.cs.cmu.edu>, ralf@b.gp.cs.cmu.edu (Ralf Brown) writes: > In article <1275@cfa.cfa.harvard.EDU> ward@cfa.harvard.EDU (Steve Ward) writes: > }In article <4229@encore.UUCP>, corbin@pinocchio.Encore.COM (Steve Corbin) writes: > }> ...there are 64 bytes at each I/O > }> address if you decode the extra address lines. There 20 address lines > }> for memory on the 8088/8086 but only 16 lines are used for I/O. > }> > } Just to prevent misunderstanding, there are 64 images, or "copies" > } of each of the 1024 I/O byte-addressable registers, or I/O byte > } locations. This means any I/O addressing done to any of these > } 64 "imaged, copied, ghosted, etc" address locations will result > } in an access to the same I/O byte location. > > There are 64 copies of each I/O address used by the motherboard. All 16 > I/O address lines are available on the bus, and a board can choose to decode > all 16 if it so desires (though many, if not most, don't) I think I said that?!!! Again, since somebody might get confused, sure, you can decode all 16 address lines for I/O, but because of the partial address decoding on the motherboard and on plug-in cards, you better decode them carefully! It buys you nothing to decode the extra lines since the I/O addresses above 0x400 are not available except to the extent that there is a "hole" in the first 1k addresses. Sure, for the very hard up, you can leave a hole in the first 1k (never ever use 10-bit decoding in the hole, 16-bit decoding is ok) and then you can use 16-bit decoding in the 64 different (1k apart) slots within the 64kb I/O space. The disadvantage is potential I/O address clashing due to the non (IBM) standard decoding. Of course, you always put on dip switches so you can switch to somewhere in the first 1k :-) Given the dozens of boards out there, all using 10-bit decoding, it doesn't promise much return for decoding all 16 address lines for I/O, though I have described a desperation method for garnering I/O addresses. ward@cfa.harvard.edu .