wiki:WikiStart

All open tickets#12

Cross-Platform MMB access library and tools

The BBC Microcomputer has been around for many years (over 30 years now), and in all that time it has supported Tape, Floppy Disk, and occasionally small Hard Disk Drive storage (If you have a 1770 and ADFS) but thanks to the work of a number of enthusiasts there is now an inexpensive add-on to allow any BBC Microcomputer (even those without Floppy Disk hardware) to access mass storage on MMC Flash Cards.

Version 0.5

The next release will be 0.5 which will be a "beta" release. There is no timeframe for this release yet, that largely depends on my time, and on how quickly testing is done (Hint: More people = more testing = faster release).

Downloads from PyPi

Version 0.1 RELEASED

Version 0.1 has been released. This is not a full release as the GUI isn't ready yet, but it should make it easier to install for those wanting to help with testing. Testing so far has shown no major bugs. Please report any you find.

Reporting etiquette

If you believe you have found a bug please first make sure you are on the latest version. If you are then go to the All Open Tickets list and look to see if your bug has already been reported:

  • If it has not been reported already, please raise a new ticket
  • If it has already been reported, please comment on the ticket with any additional information.

Please don't raise duplicates if you can help it.

Note: You must be a project member to create tickets.

The format is relatively simple:

  • A flash card is formatted FAT16 (i.e. DOS) and a file called BEEB.MMB is created which is a specially formatted container for up to 511 200k floppy disk images.
  • The file BEEB.MMB on the flash card ("The MMB file") contains:
    • Some static settings (image to virtual drive mappings etc) - 16 bytes
    • A directory 511 image names and flags - Each entry 16 bytes
    • Space for 511 floppy images - Each 200k
  • Each floppy image is a DFS formatted disk (or a selection of other related enhanced formats such as Watford DDFS with 64 directory entries, Solidisk DFS, ADT *SWAP directories etc)

This is wonderful but then poses a further problem, how to get the disk images that the MMC/SuperMMC/TurboMMC hardware supports onto the flash card?

There are some tools which have been used for several years, they work ok, as long as you are running a supported version of Windows (They don't work, for example, under Wine or CrossoverOffice), but I've found them a little confusing. The process to create an MMB, add a new disk and put files on it is well documented but requires several steps and provides ample opportunity for mistakes.

This is where PyMMB is intended to fit in. The aim of the project is to provide a platform independant library, command-line tools, and GUI application for managing files stored on DFS disks, contained within MMB files. The project now also sports a trendy new FUSE driver so your BBC storage can become part of your Unix or MacOS filesystem.

Documentation

The Documentation is still a work in progress. I've started the Library and Command Line Tools sections, if you want to help, this would be a great point to start.

How do I join in?

Well, firstly you can join the project by creating a Trac account. Click the Register link, On the right of the page, below the search box. This will allow you to create tickets, and you can request additional access to create Trac wiki pages or even commit code.

Secondly, (or perhaps even before firstly), you can checkout the latest trunk code and get stuck in looking for bugs, suggesting new features etc.

All are welcome to contribute, except those who want to spam or advertise - You are expressly forbidden from accessing this server!

Components

PyMMBlib
Library containing all the DFS and MMB access functions required to support the rest of the project.
PyMMBtool
Command line toolset providing access to all essentials functions of PyMMBlib
PyMMBgui
Graphical interface providing an easy way to manipulate DFS and MMB format files
PyMMBfuse
FUSE (Filesystem in Userspace) module providing the ability to mount MMB and DFS images as native filesystems on Linux and other operating systems supporting FUSE.

Features

  • Fundamental features
    • Support MMB container
    • Support DFS Discs
    • Support for contained DFS discs
    • Support for entries on DFS discs
  • Copy disc image into MMB
  • Copy disc image out of MMB

Planned Features

  • Write files to DFS
  • Compact DFS

If you are interested in contributing, please join in!

Formats

MMBFormat

DFSFormat

Reference Works

DFS Disc Format

Last modified 15 months ago Last modified on 16/01/2013 00:02:09