SD/MMC interface for MSX

by Danjovic on 12-04-2007, 01:13
Topic: Hardware

Danjovic has announced an interesting new hardware extension for the MSX: an SD/MMC interface that works even on ordinary MSX1 configurations. On 3.58MHz data can be read from SD or MMC cards at 154 Kb/s whereas writing data reaches a respectable 145 Kb/s. Both hardware and software (firmware) for this new SD/MMC interface have already been completed.

Using ordinary, low-cost components and the standard MSX I/O ports it's fairly simple and cheap to produce and use. All information on how to create an SD/MMC interface yourself - for those into DIY - is publically and freely available. For more information you can contact danjovic. On Hotbit at Blogspot you can find out more information on the SD/MMC interface and a picture of a working prototype.

Relevant link: Hotbit at Blogspot

Comments (13)

By Huey

Prophet (2681)

Huey's picture

12-04-2007, 08:24

cheap? How cheap will that be?

Sounds interesting. But are there any system requirements for using it on MSX1?

By ro

Scribe (4563)

ro's picture

12-04-2007, 08:40

wot's an SD/MMC ? Question

By Unicorn

Master (138)

Unicorn's picture

12-04-2007, 09:08

Cheap, fast and easy? This is VERY interesting! Can I order one?

SD = Secure Digital and MMC = Multimedia Card, both are small memory cards that can contain up to several gig’s of data.

By cax

Prophet (3736)

cax's picture

12-04-2007, 10:39

I can't find a picture of working prototype, and from the pcb's and diagrams it seems this SD drive is not a standalone cartridge...

By legacy

Hero (570)

legacy's picture

12-04-2007, 16:38

I've download the pcb and schematics, and it's a normal cartridge pcb, I couldn't find the hex-file, though, If I have the hex, I'll make one.
Looking at the components, it should not very expensive.

By doraemonppc

Master (244)

doraemonppc's picture

12-04-2007, 16:40

It can be connected to the standard cartrige conector?
Seems to be a extrange conector for the Expert's MSX, no?
How much does it cost? It will be Dos2 compatible? All the actual software will work? Fat16?


By roadfighter

Champion (426)

roadfighter's picture

13-04-2007, 08:32

Probebly it doesn't work on a msx turbo-r so thats a pitty, maby if somone would make it turbo-r compatible then its nice, and some software for the interface would be nice to.

By Danjovic

Master (212)

Danjovic's picture

14-04-2007, 15:42

I´ll try to clarify some questions

Q: How cheap will that be?
A: I've spent under $40 in components of Base Board, RTC Board and SD/MMC Board. Here I put a worksheet with Farnell codes (Price is in Brazilian R$)

Q: Can I Order One?
A: Since I´m a hobbyist, I've designed this project to be a DIY one. I don't intend to commercialize it, but I'm aware that some the MSX enthusiasts may not have time/resources/technical skill to build it (mainly due the PCBs). That's the reason why I choose an open license also for the hardware, which allows any people or company to build it and even sell it. The only "fee" of this license is to maintain any implementation/improvement/modification under the same free license, and to keep the original credits for the project.

Q: Is it a Standalone Cartridge? Can it Be connected directly to MSX cartridge port ?
A: The base circuit has 2 versions, one with 50 pin header, which connects via a 50-wire ribbon cable to the rear connector of the EXPERT (a Brazilian MSX), but it's straightly adaptable to any other MSX. The other version uses a 34 pin header, and was designed to be connected to another Board containing a ROM, which provides a MEGAROM style switching mechanism. This ROM shall contain the DOS (see below)

Q: It will be Dos2 compatible? All the actual software will work? Fat16?
A: I haven´t yet patched the MSXDOS/BDOS to work altogether with this interface. Indeed, I am looking for some help to do it. That´s why I am working right now on the documentation of the low level drivers, which are already working and provides routines for INIT, IDENTIFY PARAMETERS, READ BLOCK and WRITE BLOCK (and also some verbose info for debug purposes)

Q: Where are the Hex Files?
A: The Binary and Basic files, are here:
in. The sources are here:

Q: Does is Work on Turbo R?
A: I've made some tests on the Turbo R of a friend. Even in In R800 mode, the clock available in MSX-BUS is 3.58MHz, which is not fast enough, because this project relies on the time the Z80 takes between two INI/OUTI instructions (16+4 clock cycles). We confirmed this by writing an application to initialize the card using BASIC INP and OUT instructions :). My friend (who owns the turbo R) is, at the moment, working with two possibilities to allow the operation in machines who ran internally at a clock speed greater than the externally available clock: a. A clock doubler; b; an external clock source

By Manuel

Ascended (18392)

Manuel's picture

15-04-2007, 10:33

Note: 40 R$ is almost 15 euros.

By cax

Prophet (3736)

cax's picture

15-04-2007, 17:09

>$40 in components of Base Board, RTC Board and SD/MMC Board

If I understand correctly, 40 R$ (~ 15 euro) are spent for all 3 boards above, and building only a SD-drive cartridge should cost even less ? If so, and components are easy to find, I'd like to try making one myself, but I cannot find a SD-cartridge PCB on the site.

By Danjovic

Master (212)

Danjovic's picture

15-04-2007, 17:38

Some additional info to help:

Project´s root Directory

Board information Directory

#/Placa Principal == Base board, two versions, one with 50 pin header, with straight connection to MSX BUS (by a Flat Cable), and another with 34 pin Header, to be connected via 34 pin flat cable to the ROM Board

#/Placa ROM == Optional Board with a ROM containing MSXDOS, adapted from this project

#/Placa RTC == Real Time Clock Board. This is optional also.

#/Placa Soquete SD-MMC == Board with MMC/SD socket. Shall be connected to Main Board

#/Sonda Logica == Logic Probe With count indication (much better than simple pulse indication). This is a good tool to be used during the assembly of this project and other projects, as well. Also is optional

Source code directory - Plain ASCII

Disk files (read from MSX disk)

I2C008.BIN - I2C Driver
MMC037.BIN - SD/MMC Driver
RTCTST.BAS - RTC test program written in BASIC
SDMMCT.BAS - SD/MMC test program written in BASIC

In the root directory is alto the Assembly and Test Guide

And the documentation about the I2C driver (SD/MMC driver documentation is been written new)

Both guides are in Portuguese. I´ve tried the babel fish translation on them and the result was some kind of weird but is, at least, understoodable :)

And Last, but not least:

* A little bug in design was found during high speed tests in Turbo R and it´s already corrected and tested. It was found only now because it doesn't shows up in 3,58Mhz. Refer to

* I haven't patched the MSXDOS/BDOS to work altogether with this interface yet. I thinks is a matter of time. How much or how less time will depend upon I get some help to do it or not. That´s why I am working right now on the documentation of the low level drivers that I have wrote. I´ll translate such doc to English.

* The cost is estimated under (US)$40,00. The worksheet In link above contains the prices in Brazilian Money taken from, but the Farnell Codes shall work in either and

By cax

Prophet (3736)

cax's picture

15-04-2007, 23:10

Danjovic, thank you very much for clarifications !

By OeiOeiVogeltje

Paragon (1402)

OeiOeiVogeltje's picture

12-04-2013, 22:28

Anyone here (except Danjovic) ever made such a device??