First post, by ifilot
Hello all,
I have an IBM 5150 motherboard with 256 KiB of RAM installed, and I’d like to expand it to 640 KiB. Among other things, this would let me run programs like EDIT more comfortably. I know I could just use something like picoMEM, or a period-correct ISA RAM expansion card (I already have one in another 5150), but for this particular machine I’d like to try building my own ISA memory expansion card as a learning project. My plan is to use three Alliance AS6C1008 SRAM chips (128 KiB each) and expose them to the proper memory windows via glue logic. Since these are modern SRAMs, they don’t need refresh and only require /CS, /WR, and /OE.
I’m aware that:
- You need to set SW2 correctly when more RAM is added so the BIOS knows where system memory ends.
- RAM must respond not only to CPU memory cycles but also DMA cycles. My plan here is **not** to use AEN — only to look at the address range and then gate the SRAMs with MEMR and MEMW signals from the ISA bus.
I have a couple of questions I hope someone here can help clarify:
- Address decoding: Is expanding conventional RAM over the ISA bus really as simple as using glue logic so that /CS is asserted when the CPU addresses fall within the appropriate regions (i.e., 256–640 KiB)? Or are there pitfalls I should be aware of with the 5150’s memory map and bus timing?
- Bus buffering: Are buffer chips like the 74HCT245 (or even 74ACT245) required, or just best practice? The AS6C1008s have fairly low VIH thresholds, and I’ve used them reliably with LS-series logic in other retro systems — but I don’t know if the extra loading on the 5150’s ISA bus makes buffering more important here.
Has anyone here attempted something similar or can otherwise offer me some advice here?
Thanks in advance!