MSX ROM Cartridge

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

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 output enable because it can be asserted in a memory write cycle, which will lead to a bus contention.

Summary

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

  • MSX /CS1 -> ROM /OE
  • MSX /SLTSL -> ROM /CE
  • MSX A15 -> ROM A14
    • or: GND -> ROM A14
  • MSX GND -> ROM A15

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

  • MSX /CS2 -> ROM /OE
  • MSX /SLTSL -> ROM /CE
  • MSX A14 -> ROM A14
    • or: GND -> ROM A14
  • MSX GND -> ROM A15

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

  • MSX /CS12 -> ROM /OE
  • MSX /SLTSL -> ROM /CE
  • MSX A15 -> ROM A14
  • MSX GND -> ROM A15

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

  • MSX /RD -> ROM /OE
  • MSX /SLTSL -> ROM /CE
  • MSX A14 -> ROM A14
  • MSX A15 -> ROM A15

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