mmbeeb: MultiMediaCard interface and software for the BBC computer

Martin Mather's MMC beeb website, slightly reorganized and made a bit more pretty by WHS (Martin's original site is/was at, and before that at, was originally created on 22-02-2006, last updated 20-11-2008, and apparently won't be updated any further).

WHS: Note that I reorganised it for myself only, so things can be changed or removed at any time. The windows stuff isn't of interest to me for example, has been put on a separate page, and may be removed. I will make some utilities for FreeBSD (or any other unix variant) to do what MMB imager does and possibly the other utilities. I've removed the links to the standard BBC micro websites, just keeping those for hardware references.


More on this MMC card/software can be found in this forum topic. See also: MMC windows software

MMC interface hardware


(Click images to enlarge)

This simple device plugs into the BBC’s User Port.  It contains a 3.3V regulator to supply the MMC card with power, resistors to reduce the User Port’s 5V signals to approximately 3.3V, and an “edge-connector” into which the card is inserted.

The associated software (see below) uses the interface to create a serial “SPI” bus to communicate with the MMC card.  The clock (PB1) and data out (PB0) are controlled by software, and data in (CB2) is shifted into the 6522’s Shift Register (SRMODE0 - see the Advanced User Guide, page 409).

The read/write speed is approximately 10Kbytes/second.

As-built drawing - Note I built this board without planning its layout first.

The following is a diagram of the circuit:

The components used are (with Maplin's Stock Code and prices inc. VAT as at 27-10-2006):

Code Qty Description Cost Comment
JP47B 1 Stripboard 29 x 39 2.70 The one shown is a 29 x 39 way cut in half, i.e. 29 x 19.
  1 47K Resistor    
  5 4K7 Resistors    
QL80B 1 1N4148 Diode 0.16  
JC03D 1 2 x 31 Way 0.1" Pitch Edge Connector 1.30 I cut this down to suit with a junior hacksaw.
N57CA 1 TS1086CZ-3.3 0.94 A 3.3V voltage regulator.
WW68Y 2 10uF 16V Tantalum Capacitors 0.70 ea. As per the voltage regulator's datasheet.
JH36P 1 16 Way DIL Header 1.06 To connect the ribbon cable neatly to the stripboard.
  1 16 Way Ribbon Cable x approx. 14"   I used part of an old floppy disk cable.
FG84F 1 2 x 10 Way IDC Plug 1.88 For the BBC's User Port.
BL94 1 10m Bell Wire 1.55 Plenty spare!

Of course you also need a soldering iron, solder (lead free), and a “spot cutter”, plus a multi-meter is useful to check for shorts, and that the voltages of the signals to the card are ok.

See Page 426 of the Advanced User Guide for a diagram of the User Port socket.


MMC interface software and documentation

The interface is accessed via a patched DFS (Acorn DFS 0.90) with extra commands (DUTILS).


The TUBE is supported, and a number of bugs have been removed.  However, the maximum size of a single block for reading or writing is 63.75 KB.

The actual DFS disk images are stored in a single “MMB” image file.  This can contain up to 511 single sided 200Kb disk images, i.e. 99.8Mb of data.

An actual MMC card being used with a BBC must be partitioned and formatted as FAT16.  The MMB file must not be fragmented, its filename must be “BEEB.MMB” and be in the first 8 entries in the main directory.  (Note: Long filenames use several directory entries.)

Other programs and documentation:

Note by WHS: I've been having problems transferring files with osword 7F from Opus Challenger to MMC. I think the problems are due to DFS 0.90. For example, it doesn't appear to handle service calls 0B (NMI release), 0C (NMI claim), 0F (vectors claimed), 10, 12 (Initialise filing system). I'm working on disassembling DNFS and using that as a basis for a new MMC rom. I've disassembled it already and am comparing it to DFS 0.90...

MMC games menu

The games menu screen
Allows quick selection of your favourite game!

Can be used with a standard DFS, or with dfs09mmb.rom. With the former the user is prompted to insert the required disk.

The dataset is based on the 'STH Collection', but others can be created using the associated VB6 MakeGamesData program.

All the files for the MMC games menu can be found in the following zip file:
Games menu (zip) (source: Games Menu source code (BBC and PC utility))



64MB MMC und PIC-Mikrocontroller This site gave me all the info I needed on MMC cards and how to interface to them. Information on the 6502 and associated chips.
The Electronics Club Information on electronics!