prime
Experienced Member
Hi all,
I've been designing a 16 bit XMS board for use on AT class motherboards that have limited onboard expansion. For example I have a Commodore PC-40-III that can only have 1MB onboard.
The board currently consists of between 2 and 8 AS6C4008-55PCN 512K x 8 bit SRAMs (one each for the high and low byte), the databus from these is buffered by a pair of 74HCT245s connected to the appropreate high/low bytes select lines (SBHE and A0) A1..A19 are connected to the RAMs A0..A18. I also have an XC9572XL CPLD on the board which does the decoding and selecting of each bank of RAM.
The CPLD code for slecting the buffers / RAM chips and asserting the MEMCS16 line to the motherboard, was developed by studying the schematcs for the IBM AT RAM cards, but obviously modifying for SRAM rather than DRAM.
Now this all appears to work, the BIOS** of the machine sees the RAM and I can run various RAM tests (Checkit 3, NDIAGS) against it which report no problems. Loading himem.sys works and it sees and reports the memory in the dos MEM command. However if I try to run with DOS=HIGH the machine crashes, alternately if I load dos low and try to run Windows 3.0 / 3.1 it hangs on the splashscreen. So I suspect that there is a problem running code out of the memory?
**Checked with The Commodore PC-40, 2.03, and IBM AT (8MHz) Both the IBM BIOS, and the AMI BIOS, plus a no-name baby-AT 286 16MHz also running AMI.
Does anyone have any idea what the problem could be? I personally suspect a timing error.
Cheers.
Phill.
I've been designing a 16 bit XMS board for use on AT class motherboards that have limited onboard expansion. For example I have a Commodore PC-40-III that can only have 1MB onboard.
The board currently consists of between 2 and 8 AS6C4008-55PCN 512K x 8 bit SRAMs (one each for the high and low byte), the databus from these is buffered by a pair of 74HCT245s connected to the appropreate high/low bytes select lines (SBHE and A0) A1..A19 are connected to the RAMs A0..A18. I also have an XC9572XL CPLD on the board which does the decoding and selecting of each bank of RAM.
The CPLD code for slecting the buffers / RAM chips and asserting the MEMCS16 line to the motherboard, was developed by studying the schematcs for the IBM AT RAM cards, but obviously modifying for SRAM rather than DRAM.
Now this all appears to work, the BIOS** of the machine sees the RAM and I can run various RAM tests (Checkit 3, NDIAGS) against it which report no problems. Loading himem.sys works and it sees and reports the memory in the dos MEM command. However if I try to run with DOS=HIGH the machine crashes, alternately if I load dos low and try to run Windows 3.0 / 3.1 it hangs on the splashscreen. So I suspect that there is a problem running code out of the memory?
**Checked with The Commodore PC-40, 2.03, and IBM AT (8MHz) Both the IBM BIOS, and the AMI BIOS, plus a no-name baby-AT 286 16MHz also running AMI.
Does anyone have any idea what the problem could be? I personally suspect a timing error.
Cheers.
Phill.