SD MMC drive

SD MMC drive

MMC/SD Drive v1- v3.10 (2004,2008) by Yeongman Seo

News october 2009: SD MMC drive new bios, new manual, improved emulator support in ParaMSX
Works for all MMC/SD variants (1.0, SCC based V2, Erik van Son non-SCC V2.2).

What is it?

An MMC/SD cartridge works as an External Disk Drive, and can use SD or MMC memory cards as additional storage for your MSX. It can use memory cards from 32 to 256MB, but cards up to 2GB have been reported to work (although only a maximum of 10x23MB can be allocated with FAT12). It can work with both DOS1 and DOS2, it can emulate floppy-drives with *.DSK images, and it can work with a FAT16 file-system (than up to 2GB can be allocated on the memory cards).
It has built-in Flash-ROM and one or two slots for MMC/SD memory cards. The Flash-ROM is rewritable like a normal floppy drive. Some MMC/SD cartridges also have an internal SCC sound chip.

  • DOS2 v2.20 Kernel is integrated.
  • BASIC v2.1 is integrated.
  • FAT16 file-system is supported with the FAT16 driver from Okei (v0.12 is tested.).
  • SymbOS driver is supported.
    The supplied BIOS of 512kB supports hardware versions V1 and V2.x.
    The BIOS ROM file consists of:
    – DISK Driver with DOS v1 Kernel (16KB),
    – DISK Driver with DOS v2.20 Kernel (64KB),
    – BASIC v2.1 (16KB)
    – Flash-ROM and MMC/SD Driver (32KB),
    – Flash-ROM Disk-Image (384KB).
  • Disk speeds measured by DOSSCAN.COM
    – HW V1 on Z80 3.58MHz mode : 40kB/Sec
    – HW V1 on Z80 7.16MHz mode : 76kB/Sec
    – HW V2 on Z80 3.58MHz mode : 130kB/Sec
    – HW V2 on Z80 5.37MHz mode : 180kB/Sec
    – HW V2 on Z80 7.16MHz mode : 230kB/Sec
    – HW V2 on R800 DRAM mode : 145kB/Sec

System requirements

Minimal configuration

  • MSX1
  • 64KB RAM
  • 1 free primary slot. (The MMC/SD cartridge does not fully work at an Expanded slot)
  • Also runs on PC emulation with Paramsx

Recommended configuration:

  • MSX2 (or above)
  • 128KB RAM (or more)
  • 1 free primary slot. (The MMC/SD cartridge does not fully work at an Expanded slot)

Included software

The Flash-ROM Disk (included in MMCDISK.ROM) contains DOS1 and/or DOS2 system files, the Flash-ROM programming tool and several other software tools. The different ROM files, have different function and can be used with different hardware versions.

  • MMCDISK1.ROM for DOS1 & HW V1
  • MMCDISK2.ROM for DOS2 & HW V2/V2.1
  • MMCDISK3.ROM for DOS2 & HW V2.2 (Double MMC/SD Slot)

INSTALL.BAT
The MMC/SD System Installer programme, to set up your memory card for the use with your MMC/SD cartridge. Please note: all previous data will get lost on the MMC/SD card with this programme.

  • Insert MMC/SD cartridge on MSX without an MMC/SD card.
  • Boot your MSX, drive A will be a Flash-ROM disk on you MMC/SD cartridge.
  • Insert an MMC/SD memory card into the cartridge.
  • Run INSTALL.BAT, this will create a System Disk, containing partition information.
  • Choose the System Disk Size (minimal 720kB ~ maximum 23MB)

This System Disk can now also be accessible via a memory card reader with Windows.

ATLOAD.COM
The Flash-ROM programming tool, to load useful software into the flash-ROM chip inside the MMC/SD. Used for loading the BIOS files into you MMC/SD cartridge. It can also be used to load other software into the Flash-ROM (note: ROM, not RAM, so read-only), but this must be started from a drive not controlled by the MMC/SD cartridge, for example a real floppy drive.

  • For programming the Atmel AT29C040A Flash-ROM chip (4Mbits / 512kB).
  • It can also be used for any SCC-mapper type megaroms.

DISKMAN.COM
A Disk Manager programme for the MMC/SD cartridge, for managing different partitions on the MMC/SD memory cards on your MSX.

  • Insert/Delete Disk (Partition).
    Support 7 different disk type
    (360kB, 720kB, 1.44MB, 2.88MB, 5.76MB, 11.5MB, 23.0MB)
    You cannot enter disk names with a space. (‘ ‘) But an under-score ‘_’ will appear as a space character ‘ ‘.
  • Select Disk
    It will mount selected disk to Drive A:, this information is written on the System disk.
    The selected disk/partition will be started at next boot.
  • Multiple disks (max.9) can be allocated.
    When Disk-ROM access MMC/SD, it check ‘RUN’ or ‘STOP’ key.
    (‘RUN’ key is between ‘SPACE’ and ‘KANA’ key in Panasonic MSX2+/turboR)
    If Disk-ROM checked ‘RUN’ or ‘STOP’ key down, CAPS LED lights dimly.
    Now you can select another Disk #1~#9 by pressing 1~9 key of numeric keypad.
    (0:System Disk Only, 1~9:For Multiple Disk)

Disk No.0 cannot be deleted, because all disk information is saved at Disk No.0 in the file DISKMAN.DAT. DISKMAN.COM cannot be used for FAT16 disks.

DISKMAN.EXE
A Disk Manager programme for managing different partitions on the MMC/SD memory cards with Windows 2000 or Windows XP.
The functions are similar to the programme DISKMAN.COM for the MSX.

DISKEXE.EXE
A programme to start a MMC/SD Disk/partition directly.
After selecting disk in DISKMAN, it can be used to boot disk directly.
It supports changing boot options. (Eg: ROM-banking disable, turboR CPU mode, etc)

XCHGMMC.COM
A programme that allows you to change the memory card, without a reboot.
Use this when you exchange your MMC/SD memory card.

INITMMC.COM
Initialises the MMC/SD when booting/installing, do NOT execute this manually.

DSKCOPY.COM
A programme to copy Disk Images (*.dsk), only for FAT12, not for FAT16.

  • It copies disk images to current selected 2DD partition directly.
  • It supports combined/ multiple DSK files.

ROMDUMP.COM
Programme to write the contents of the internal Flash-ROM to a 512kB ROM file.

FDMMCSD.DRV
Disk driver for the operating system SymbOS. See SYMB.BAT in the Flash-ROM Disk.
Only System disk on Drive A is accessible.

Getting started

  1. Make sure your MSX is switched off, and insert the MMC/SD cartridge without a memory card.
  2. Switch on your machine, you should see a little intro screen of the MMC/SD, and end up in DOS on the flash-drive. If not, try again or reprogram the Flash-ROM using ATLOAD.COM
  3. Insert you MMC/SD memory card into the cartridge.
  4. Run INSTALL.BAT, and choose a size for your system disk. If your memory card is not detected, try again from step II, or try formatting the card first on your PC
  5. Reboot your machine, you are now starting on the first drive/partition of you MMC/SD memory card. Your MMC/SD cartridge and memory card are now ready for use.
  6. Start DISKMAN.COM (from you memory card, not from the FlashROM) if you want to add disks/partitions.

Boot Option keys

All keys may be combined with each other when booting your MSX with MMC/SD cartridge.
– [INS] Skip installing DOS2 Kernel. DOS1 Kernel will be used.
This can solve some software compatibility issues in E.g.: Metal Gear2 disk version
– [CTRL] Force to enable one drive only
– [TAB] Disable ROM Banking of SCC
This prevents unwanted ROM-banking of some games, which causes BIOS hang-up.
This can solve some software compatibility issue in E.g.: FEEDBACK and QUINPL
– [SHIFT] Skip installing DOS2, and boot directly from MMC/SD DOS1 Disk-ROM.
This will disable internal floppy drives. This can solve some software compatibility issue.
(E.g. with KOEI games)
– [Z] Force to use V1 hardware driver. (to slow-down disk speed)
This can solve some software compatibility issue in E.g.: XAK series

Drive-letters used

How the drives of your MMC/SD cartridge are mapped, depends on the number of SD/MMC memory cards inserted, the version of your MMC/SD cartridge and if FAT16 file-system is used.

With the MMC/SD cartridge inserted in your MSX and without MMC/SD Memory Card

  • Drive A and B are mapped to the Flash-ROM Disk.
  • Drive C is disabled.
  • Drive D is disabled.
  • Drive E is the first real floppy drive (if available)

With one or more MMC/SD Memory Cards inserted, and if drive C is FAT12

  • Drive A is mapped to MMC/SD Disk #1. (FDD Emulation)
  • Drive B is mapped to Flash-ROM Disk. (Read/Write)
  • Drive C is mapped to System Disk of MMC/SD Disk #1.
  • Drive D is mapped to MMC/SD Disk #2.

With one or more MMC/SD Memory Cards inserted, and if drive C is FAT16

  • Drive A and B are mapped to the Flash-ROM Disk. (Read/Write)
  • Drive C is mapped to MMC/SD Disk #1.
  • Drive D is mapped to MMC/SD Disk #2.

Notes

  • The MMC/SD Interface Cartridge can be used in a primary slot (or slot 0 of an slot expander). It will not work in expanded slots
    .
  • FAT16 is supported with Okei’s FAT16 driver. (v0.12 is tested.)
  • The write protection switch of the MMC/SD Cards is not supported.
  • The Kanji driver is disabled on DOS2 v2.20
  • If you have internal FDD,
    Some games do not work correctly due to a big work area problem on DOS1.
    In this case, you have to press [CTRL] key during boot.
    You can disable internal FDD to press [SHIFT] key during boot.
    (eg. Koei Games)
    With DOS2 environment, you can use DISKEXE program to boot game disk directly in DOS. This is a more easy way and it provides several boot-options like a turboR CPU mode.
  • Tested on real MSX computers:
    Panasonic MSX turboR FS-A1GT (RAM 1024KB) MSX2+ FS-A1WSX (RAM 512KB)
    Philips MSX2 NMS 8250, MSX2(+) NMS 8280
    Yamaha MSX2 YIS503IIIR
    Daewoo MSX2 CPC-300 (RAM 128KB)
  • Tested on MSX emulator:
    (paraMSX v0.48b with MMC/SD HW V2 Drive Emulation)
    Daewoo MSX1 DPC-200 (RAM 64KB), MSX2 CPC-300 (RAM 512KB), MSX2 CPC-400 (RAM 512KB)
    Panasonic MSX1 FS-4000 (RAM 64KB), MSX2 FS-A1F (RAM 512KB)
    Philips MSX2 VG8240 (RAM 128KB)

Ieongman Seo (E-mail:sharksym@hitel.net)

With contributions by Erik van Son, Stanislav Borutsky, and Bastiaan Hubers (2009)

Archive with all programs, texts and circuit diagrams.

Alternative versions of the ROMs, to choose partitions with the normal 0-9 key instead of the numeric keypad. Patches made by Erik van Son, use at your own risk!

Here a collection of notes found on the internet.

SD MMC

SD MMC

SD MMC

SD MMC

Labels

(download fullsize label by rightclicking on image)

sd mmc

High quality version by:Bastiaan Hubers:

sd mmc

By Sinfox

sdmmc

SD v1.0 by Erik van Son

A PCB design made by Erik van Son of version 1. Fits nicely in a Sunrise housing.

The circuit on the PCB is the same as desigmed by Yeongman Seo, with a new SCC IC. And not a Konami SCC cart destroyed!

The SD comes from Erikwith mmcdisk1.rom in the flash, so it works out of the box on a MSX 1.

See also the SD V2.2 design by Erik for MSX 1 experiences.

SD V1.0

SD V1.0

DAC for SD V1.0

To enable ssound output from the SCC you can add the next circuit to the interface.

sd mmc

SD V2.2

Original design by Yeongman Seo, hardware redesigned by Erik van Son.

The original design is based on the mapper in the Konami SCC sound IC, so it is required to adapt an original Konami game cart. A bit of a waste and a lot of wires. Quite costly

The interface designed and built by Erik van Son is made with only two modern components:
– a 512KBflash RAM
– a CPLD taking care of the MSX slot interface, two MMC/SD interfaces and the SCC identical memory mapper for the flash RAM.

So its a very clean, professional (gold plated connectors!) and compact solution with a low price and the high performance of V2.2!

See the top of the page on the SD interface, on how to use and obtain the software.

The software is identical, no sources are available of the software. This solutiuon has the same advantages and disadvantages:

– this version works only in any primary slot
– you can use a FAT32 2gb card to transport files from PC to MSX
– the first partition of the SD card is also accessible on a Windows PC
– dual logic: Floppy and ROM emulation
– a switch for disabling the rom. If you flash the memory with a game you then can switch of the flash memory to re-flash it. So you don’t have to hot-insert your cart. Otherwise the game will keep on starting and you are not able to flash any more

original files from sharksym
The BIOS ROM file consists of:
– DISK Driver with DOS v1 Kernel (16KB),
– DISK Driver with DOS v2.20 Kernel (64KB),
– BASIC’n v2.1 (16KB)
– FlashROM and MMC/SD Driver (32KB),
– Flash-ROM Disk-Image (384KB).
Total 512KB in size.

Minimum required system:
-MSX1 with 64KB RAM
-1 Primary slot. (Does not work at Expanded slot)

Recommended system:
-MSX2 with 128KB RAM(or above)
-1 Primary slot. (Does not work at Expanded slot)

SD V2 on a MSX 1

Erik delivers the SD V2 interface with the mmcdisk3.rom bios in the flash rom. This means you cannot use the SD drive on a MSX 1 without some work. If you only have a MSX 1, ask for mmcdisk1.rom to be flashed.

Here is how to use the SD V2 on a MSX 1 if mmcdisk3.rom is in the flash.

SD V2.2 works fine on an MSX 1. With some limitations, since MSX DOS 2 does not run on a MSX 1.

See the alternative ROMS made by Erik van Son, to be able to use the numeric keys on top of the keyboard.

This is how to flash mmcdisk1.rom into a SD v2

  1. Required is a MSX (1 or 2) with double sided floppy drive.
  2. Prepare a floppy double sided 720kB (the ROM is too big for a 360K floppy)
  3. Add to the floppy:
    – command.com
    – msxdos.sys
    Copy from the SD MMC archive
    – atload.com
    – mmcdisk1.rom
  4. Set the switch on top of the SD drive at the other position
  5. Place the SD cart into slot 1, no SD card inserted
  6. Put the floppy prepared in the steps above in the floppy drive
  7. Switcv on the MSX an see it boot from the floppy
  8. Set the switch on top of the SD drive at the original position
  9. Start the flash program
    A:\atload mmcdisk1.rom 1
  10. See it flash the ROM (O’s appearing for each step)

Now the SD drive is ready to use on a standard MSX 1. There are limitations, it is a MSX 1 with MSX DOS, so no FAT16, no subdirectories etc. But the floppy drive emaulation works fine!

See the alternative ROMS made by Erik van Son, to be able to use the numeric keys on top of the keyboard.

Tested MSX 1’s

Tests performed with V1 and v2.2

ML-F48: MSX1 computer, 32kB RAM
Works in slot 1! Starts in Disk Basic, 32kB is not enough for MSX DOS. So thios machine cant initialize Sd cards or run any of the MSX DOS programs. But it can read and write from within Basic to SD card and flash memory.

JHC-7GB: MSX1 computer, 64kB RAM
Works perfect

HX-10: MSX1 computer, 64kB RAM
Works perfect

It looks like the SD interface behaves as a well behaved device following the MSX standards.

SD V2.2

SD V2.2

SD V2.2

Final production PCB

SD V2.2

Development system

SD V2.2

SD V2.2