Path: utzoo!mnetor!tmsoft!torsqnt!news-server.csri.toronto.edu!bonnie.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!usc!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!att!cbnewsi!ejy From: ejy@cbnewsi.att.com (eugene.yurek) Newsgroups: comp.sys.ibm.pc.hardware Subject: Re: 16 bit memory cycles & MEMCS16 (was Re: Dual monitors) Message-ID: <1991Feb20.200706.14275@cbnewsi.att.com> Date: 20 Feb 91 20:07:06 GMT References: <54860@bigtex.cactus.org> Organization: AT&T Bell Laboratories Lines: 45 From article <54860@bigtex.cactus.org>, by james@bigtex.cactus.org (James Van Artsdalen): > In <8345@davidsys.com>, douglass@davidsys.com wrote: > >> In article <1991Feb12.010248.7563@cs.mcgill.ca>, phil@cs.mcgill.ca > (Philip LOCONG) writes: > > | As earlier posts suggested it, the ISA bus specifications force the bus > | to run each 128k section of RAM entirely in 8-bit mode or entirely in > | 16-bit mode, that means the A-B section has to be either 8 or 16-bit. > > This is exactly correct. I side with James. Having designed several PC cards in the past, I can attest to the fact that everything he has said is correct. There really is a 128k block problem for ISA bus memory accesses above the 1MB address. This has been a source of endless problems for an uncounted number of people. Think about this scenario: There are two cards in a system, both of which reside in the same 128kbyte block of ISA bus memory addressing, and one is a 16 bit card where the other is an 8 bit card. Since you can only use the LA[23:17] address lines to activate MEMCS16, every access to this block becomes a 16 bit one. If a user program or the ROM BIOS tries to access the 8 bit card, a 16 bit memory cycle will be initiated. This won't have much effect on even address accesses since this is the low byte on the bus anyway. ALL odd address byte access cycles will fail miserably because, thinking its doing a 16 bit access, the processor (or AT chipset) will put the odd address databyte on the high 8 bits of the data bus (D[15:8]). The 8 bit card doesn't (and can't) look at these upper data bus lines, and junk gets read from the 8 bit card. On writes, the data falls off the end of the earth. I needn't say what kind of wierd problems this causes. If you move the base address of a card, and your problems go away, you've most probably been bitten by the 128k block problem. -- Eugene J. Yurek Internet: ejy@honasa.att.com AT&T Bell Laboratories UUCP: ...!att!honasa!ejy Holmdel, NJ Voice: (201) 949-3753