BBC Micro: SerialFS and the IFEL Flash ROM board, a match made in heaven.

I've been playing around with BBC Micro Computers recently. I've "accidentally" come to own 3 of them, having picked one up cheaply then finding 2 more that I intended on refurbishing and selling but couldn't bring myself to let go.

I like to demonstrate retro computing and communications hardware at various events which means the roles of the BBCs can change fairly frequently, which requires swapping out the EPROM chips inside the machines that contain the programs. This is something I'm not a big fan of, as it can result in bent pins and stresses the 40 something year old PCB and sockets.

Fortunately I've found a solution, the IFEL Flash ROM board and SerialFS.

The IFEL Flash ROM Board

ROM and RAM expansions for the BBC Micro aren't a new invention - the BBC's Machine Operating System (MOS) was designed to handle 16 slots of ROM and RAM and several commercial and DIY products existed to breakout these additional slots on expansion boards.

The ROM slots allowed a user to insert more than the standard 4 Read-Only ROMs, and RAM slots allowed users to temporarily load a ROM into RAM from a disc where it would behave like a ROM, allowing them to change ROMs without having to physically swap them out. Generally these would have been lost when the machine was powered off, but battery backed versions did exist.

Enter the IFEL Flash ROM Board, a modern, compact and easy to use device that straddles two of the sockets on the BBC main board and has 3 wires that connect to various points to allow it to appear to the BBC as 8x 16k ROMs. As the name suggests, the storage is Flash based which means it can be overwritten and will persist after the powers been switched off, but it also supports the addition of additional RAM chips to allow users to use some more exotic filing systems and games that require being in RAM. The kit also comes pre-programmed with an easy to use tool to read and write ROMs, which is also available as a Floppy Disc image should you need it.

The first thing to do is to fit the board. I strongly recommend following the excellent instructions supplied with the kit, but to demonstrate how easy the board is to fit here's some pictures.

IFEL Flash ROM board fitting in the two ROM sockets.

The 3 cables intercepting various signals on the board.

The kit is supplied with 3 cables fitted with convenient clips that allow you to hook them up to the ICs without soldering them. Longer term I'll probably solder them, but for now this works well.

With the ROM fitted you can (partially) reassemble the machine and power it on. Issuing the *ROMS command will show you the available ROMs supplied on the module:

The ROMs supplied on the Flash ROM module

The more observant amongst you will notice there's no Filing System (FS) ROM, which is responsible for letting the BBC access file systems such as Floppies, Hard Disks and more modern SD card based systems. This is by design as different users will be using different file systems, and some are incompatible or conflict with one another. Therefore its left to the user to install the FS ROM(s) of their choice, by installing it into one of the remaining slots on the main board, either permanently or temporarily so an FS can be copied to the Flash ROM module then removed.

That's a little too long winded for me, which is where SerialFS comes in. SerialFS is an excellent but relatively undiscovered tool that allows you to install a FS into memory over the Serial Port, and then serve files over the serial link. It's doesn't quite expose all the features of a full FS, but provides enough functionality to copy a ROM over serial and write it to the flash module. This makes it super convenient for boot strapping the first FS onto the module, but can also be utilized to swap filing systems around in the future, without making sure you've got a copy of all the ROMs and tools you might need on every different file storage medium you're using.  

To use SerialFS you will need a Linux based system, something like a Raspberry Pi, and a USB to RS232 serial cable with the 5 pin Domino DIN connector required for the BBC. I created some instructions on making such a cable here or there are some off-the-shelf solutions out there. 

To get the SerialFS server setup, see the README. After installing a few dependencies and copying over your ROMs and other files into the storage directory you can start up the server and copy the required ROMs over serial to your Flash Module.

The process looks something like this:

The *FX 2,1 command tells the BBC to accept input from the serial interface. The SerialFS server then detects that the BBC is ready to receive input and transfers itself over to the memory. *S then activates the file system, and *DIN ROMS changes over to a directory on the server where I keep the ROMS. From there we can use *CAT to see whats available, and finally *SST DFS120 14 R copies DFS version 1.20 over to slot 14 and resets the machine.

In my case it now displays "Acorn DFS" indicating DFS was successfully copied over and loaded and now I can go ahead and plug a Floppy Drive (Or GOTEK emulator) into the machine and load programs and potentially other ROMs off discs.

This neat setup brings me a little bit closer to my goal of having flexible machines that don't need to be dismantled in order to change their function. 

No comments:

Post a Comment