Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!bu-cs!encore!pinocchio!corbin From: corbin@pinocchio.Encore.COM (Steve Corbin) Newsgroups: comp.sys.ibm.pc Subject: Re: Usable I/O Address range on the PC bus ... Keywords: Limited to addresses up to 0x0400 only?? Message-ID: <4229@encore.UUCP> Date: 18 Nov 88 17:05:56 GMT References: <5065@whuts.ATT.COM> Sender: news@encore.UUCP Reply-To: corbin@pinocchio.UUCP (Steve Corbin) Organization: Encore Computer Corp, Marlboro, MA Lines: 32 In article <5065@whuts.ATT.COM> jmbj@whuts.ATT.COM (BITTMAN) writes: >> |I read in a manual that the addresses above 0x0400 were unusable? > >Base I/O addresses above this range cannot be used without claiming >the address equal to the lower 10 bits. > >> This is not true. What is true is that the motherboard and most >> plug-ins only decode (the low) 10 address bits. So if you use address >> 4f0, it will collide with the motherboard's 0f0. > >> Every byte that you pick is equivalent to 64 bytes. If you pick byte > ^^^^ ^^^^^^^^ >> 200, you can also use 600, A00, etc. No other hardware can possibly be >> broken by this since it is the same as if you only decoded the low 10 >> address bits. You know all the address bits are there as 20 or more >> bits are needed for memory addressing. In theory this method should work. > >Assuming a "byte" here is an I/O address, there are at least 1024 >addresses available for each I/O address claimed, the 8-bit PC XT bus has >10 "extra" address lines (1024) and the AT has 14 "extra" for a >total of (16384). Just use the lower 10 address bits like high-order >bits on any other system, to select your board. Then use the upper >bits as decodes or direct ram addressing, etc. The original poster was correct. 64 bytes are available 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. Stephen Corbin UUCP: {bu-cs,decvax,necntc,talcott}!encore!corbin Internet: corbin@multimax.ARPA