curl@wjvax.UUCP (05/04/86)
I'm currently working on a custom board that uses 8 KBytes of the IBM PC/AT's memory space. We're running under DOS 3.1 and so are constricted to the 1 MByte limit of the 80286 in Real mode. Our original intention was to map the 8K block into the E000 segment since that's where the unused ROM sockets on the AT motherboard are mapped. We tried this and found that there was some kind of bus contention which prevented the custom board from working correctly. We could write to it, but when we tried to read, the data bus (on a logic analyzer) had the appearance of undergoing a tug of war between states. The board, when mapped to the 8000 segment (with our extra memory card removed) worked fine. The other cards in the system include two parallel/serial cards, an IBM EGA card, an Intel Above board memory card, and the disk controller card. We suspected that the memory card may have been causing the problem, but this was ruled out when we tried mapping to the E000 segment with the Intel card removed. The only thing left that we suspect is the EGA card. Without our custom card in the unit, the E000 segment appears to be floating; i.e., the data read is usually all 1's, although there are occassional 0's (not always consistant). With our card mapped to E000, our card, when trying to place 0's on the bus, fights with whatever is putting out those 1's. Does anybody have an answer for this one? I don't have the EGA technical documentation immediately available, but I'm not convinced that that's what it is anyways. Any suggestions would be appreciated. Jim Curl Watkins-Johnson, San Jose
bill@hp-pcd.UUCP (bill) (05/08/86)
The 64K at segment E000 is reserved for motherboard BIOS extension ROMs. Even though the ROM sockets on your board are empty, I'd expect that any attempt to read from them would still enable the 74ALS245 buffers that isolate the ROM sockets from the system bus; these buffers will hard drive the bus to some "unknown" state during a read (because of their floating inputs). You might try moving your card to somewhere in the C800-E000 range. This is the address range reserved for plug-in adapter BIOS extension ROMs. (Your EGA card lives at the 16K starting at segment C000). Just make sure the block you pick doesn't conflict with any of your other plug-in cards. Also, it may be necessary to add a wait state. You might also get hold of an AT Technical Reference Manual, if you don't already have one. Bill Frolik hp-pcd!bill
@hpislx.UUCP (05/08/86)
This message is empty.