I was looking at the signals present on the slot connector of an MSX machine, but can't find any valid option to implement DMA. So, no such an option on these systems?

1 Answer 1


No, MSX slots do not support DMA

The MSX cartridge slot(s) are strictly memory orientated expansion design.

  • Address lines are defined as output only
  • Control lines (RD, WR, IORQ,MRQ, etc.) are output only
  • Bus management signals (BREQ, BACK) are not present

What Can be Done:

The closest thing to DMA that can be done are the repeating string operations (OTIR/INIR/etc.). With fast devices (like SSD) this will as fast as using a DMA unit. With slower devices it may need blocking by adding wait cycles.

But Some Machines Have Expansion Ports

True, many manufacturers did add an expansion connector to some of their machines. Most common a 50 pin two row pinheader which carries the same signals as the slot - so not really helpful.

Same goes for Yamaha's 60 signal module slot which is present at some other manufacturers systems as well. The additional signals only provide ways to interact with video signals.

Really None?

Very few, did add a greatly enhanced bus connector which really does feature all signals for bus takeover. For example the Victor HC-90 and Victor HC-95 MSX2 computers had VG96 type bus connector providing even more signals for deep integration. But all of those connectors are extreme machine specific.

  • Did any notable cards use faster approaches then LDIR/OTIR? If a cartridge had a 768-byte range of address space where an access without M1 asserted would fetch a byte from e.g. an I/O device card, that would allow transferring 256 bytes at a rate of 14 cycles/byte--about 33% faster than LDIR (the ROM would hold a repeating sequence 36 xx 2C, where the xx would be ignored in favor of data from the I/O device).
    – supercat
    Commented Sep 15, 2023 at 20:42
  • Why? INIR gets a transferrate of >150 KiB/s, more than enough for any device during 8 bit times - including a 2.88 EHD drive. Since MSX isn't exactly a multi tasking system the CPU would wait anyway. So why spending even a single penny on additional hardware?
    – Raffzahn
    Commented Sep 15, 2023 at 20:55
  • When something like a CPU-controlled floppy drive finishes reading one sector, it can't start looking the next until data from that sector reaches the host CPU. Depending upon the disk format, sector gaps may be too short to transmit a sector within the inter-sector gap, but I know some disk formats used longer gaps than others. If a 16-sector format is 8% "gap", that would leave about 1ms/sector when reading. At 4MHz, 256 bytes would take about 1.34ms using LDIR, or 0.9ms using faster techniques. Maybe even faster techniques wouldn't be fast enough to catch every sector in one go...
    – supercat
    Commented Sep 15, 2023 at 21:26
  • 1
    @supercat No, they didn't. MSX DOS is using pretty standard WD17xx or compatible controllers writing MFM disks with 180/360 KiB for 5.25 and 360/720 KiB on 3.5. Filesystem is a basic FAT12, same as MS-DOS. Keep in mind, MSX is of 1983, a good 6+ years after the mid 1970s cheapnick approach of Commodore or Apple. Controller chips were cheap by then and there was no need to keep compatibility with som homebrew.
    – Raffzahn
    Commented Sep 15, 2023 at 22:01
  • 1
    Well, you can build DMA on the slot itself (have the I/O device write to memory you supply on the cartridge to provide for the CPU to read). But that's obviously not what has been asked for.
    – tofro
    Commented Sep 16, 2023 at 8:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .