Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!bbn!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: a small point..... 64 images of same byte... Keywords: Limited to addresses up to 0x0400 only?? Message-ID: <1275@cfa.cfa.harvard.EDU> Date: 19 Nov 88 20:39:03 GMT References: <5065@whuts.ATT.COM> <4229@encore.UUCP> Organization: Harvard-Smithsonian Ctr. for Astrophysics Lines: 28 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 only 1024 I/O byte locations available due to the partial (10-bits out of the possible 16-bit I/O address space) I/O address decoding inflicted on us by IBM. This 1024 byte I/O address space repeats itself 64 times within the 64K I/O address space. Said another way, there are 64 distinct I/O addresses you can use to access exactly the same I/O byte. As has been pointed out, for purposes of I/O instructions on Intel 8088/86/286 micros (probably 386, too) only 16 address lines are used. The memory address space is larger, being 20 address lines for the XT/AT's. I believe that Mr. Corbin is saying what I just said, but the spate of several postings needed at least one more followup :-) Steve W. ward@cfa.harvard.edu