Path: utzoo!attcan!uunet!seismo!sundc!pitstop!sun!decwrl!amdcad!diablo!phil From: phil@diablo.amd.com (Phil Ngai) Newsgroups: comp.sys.ibm.pc Subject: Re: Usable I/O Address range on the PC bus ... Summary: there's a neat trick Keywords: Limited to addresses up to 0x0400 only?? Message-ID: <23546@amdcad.AMD.COM> Date: 16 Nov 88 01:20:15 GMT References: <3552@hubcap.UUCP> Sender: news@amdcad.AMD.COM Reply-To: phil@diablo.AMD.COM (Phil Ngai) Distribution: na Organization: Advanced Micro Devices, Inc. Sunnyvale CA Lines: 28 In article <3552@hubcap.UUCP> oolidjr@hubcap.UUCP (Joe Moll) writes: |I read in a manual that the addresses above 0x0400 were unusable? Is |this true?? I don't see how this could be, since all the address lines |and control signals off the 8088 are available on the bus. 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. This seems to be very inconvenient but there is a nice trick to get lots of IO address space. 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. In practice, this is the method Lotus, Intel, and Microsoft use for expanded (not extended) memory, so you know it has to work. I strongly recommend you grab the least number of bytes possible out of the range 0-3ff. It's a very limited resource that has to be shared with all the plug-ins in the world. -- Phil Ngai, phil@diablo.amd.com {uunet,decwrl,ucbvax}!amdcad!phil