MSX ROM Cartridge

How to wire a simple ROM cartridge to connect to your MSX Computer.

From MSX BUS, each physical slot has a signal called /SLTSL, activate in low, which signals when CPU may want access physically that slot. Note that this signal do not specify if it is a memory read, memory write or even a memory refresh cycle (?).

Another interesting signals are: /CS1, /CS2, /CS12, activate in low, which signals when CPU want to read that memory address range. In this case, It’s for sure a memory read! BUT every slot will receive this signal, so you can not tell if this read attempt is for you or not.

Signal /CS1 activates when memory read address is between &H4000 and &H7FFF; signal /CS2 activates when memory read address is between &H8000 and &HBFFF; and /CS12 when address is between &H4000 and &HBFFF.

So to connect a simple ROM you’ll use two signals: /SLTSL to chip enable and /CS1 or /CS2 or /CS12 to output enable.

IMPORTANT: DO NOT use /SLTSL to control output enable (/OE) because it can be asserted in a memory write cycle, which will lead to a bus contention.

Summary

All examples below are pictured with a 64KB ROM (like 27C512) with all its data pins (D0..D7), addresses (A0..A13), Vcc and GND connected to the bus.

16KB cartridge (PAGE1, addresses &H4000..&H7FFF)

MSX ROM
/CS1 /OE
/SLTSL /CE
A15 or GND A14
GND A15

16KB cartridge (PAGE2, addresses &H8000..&HBFFF)

MSX ROM
/CS2 /OE
/SLTSL /CE
A14 or GND A14
GND A15

32KB cartridge (PAGES 1 and 2, addresses &H4000..&HBFFF)

MSX ROM
/CS12 /OE
/SLTSL /CE
A15 A14
GND A15

64KB cartridge (all pages, maybe not useful but it’s possible)

MSX ROM
/RD /OE
/SLTSL /CE
A14 A14
A15 A15

REF: https://retrocomputing.stackexchange.com/questions/12701/what-is-the-circuit-for-a-16k-or-32k-msx-computer-cartridge