Please don't send technical BBC questions to the maintainer of this site, as I will
probably not be able to answer them. Your best bet is to join the BBC micro mailing list,
and post your query there. There are many, very competent people there, and many problems
have been solved through this list.
You should also consider retrieving the mailing list archives, to see if your subject has
already been discussed.
ROM is an acronym for "Read Only Memory", and is normally a chip in your computer that
stores permanent data. In the case of the BBC, it came with two essential pieces of software
stored in ROM:
All proper BBC emulators will need these two pieces of software available as ROM image files,
to be able to provide you with proper BBC emulation. If you don't have these two ROM images,
it's like trying to boot your computer without those two chips inside - i.e. it simply won't
work. Please read on.
The later BBC models (the Masters, for example) came bundled with lots more application
software in ROM.
Where can I find ROM images?
Quite a few ROM images can be found here.
Be careful when downloading ROMs using your browser, as some (Netscape is one) downloads
ROM files as ASCII text over http, and adds certain control characters to the file.
A ROM file should always be a multiple of 1024 bytes long, typically 8192 or 16384 bytes.
If you use ftp, turn on BINARY mode. Most graphical clients do this for you.
Practically all BBC emulators need at least two ROM images to run properly:
"OS 1.2" (the BBC operating system) and "BASIC 2" (version 2 of the BBC BASIC programming language).
While Acorn still existed, the company did not permit usage of the contents of these ROMs
outside authentic Acorn hardware. Nobody seems to care anymore, so:
The Acorn OS 1.2 ROM is available here.
The BBC BASIC 2 ROM is available here.
Acorn DFS ROMs are available here, though I would recommend
Watford's DFS 1.44,
which is Acorn DFS compatible, supports twice as many files on a disk, and has commands
for "downloading" programs in BBC memory.
There are also a couple of "E00" DFS ROMs available (here and
here) which are very often able to load those pesky tape
games from disc, by storing most of the DFS code in sideways RAM or ROM.
(In BeebEm, boot it up with the E00 DFS, go to "Options", "Allow ROM Writes" and choose "DFS".
Press Ctrl+Break (Ctrl+F12 on your PC), and you should see the E00 DFS message.)
How do I use ROMs/ROM images?
In the real microcomputer, ROMs are present and physically fixed in place when you turn it on.
To use ROM images in a real BBC, you must "burn" the image onto a physical ROM chip.
(Anyone care to give more info on this?)
Emulators load the images into memory from files when they are started.
The emulators provide various levels of configurability
when it comes to which ROMs to load, what they are named, and so on.
Consult the documentation for each emulator for details.
In general, issuing the "*HELP" command in the emulator (or a real BBC)
should give you an indication of what ROMs have been recognized, loaded and
How can I transfer BBC software from my old tapes?
If you want to transfer tape software directly to your PC, you'll need a soundcard to
connect your tape player to. Next, you'll need one of the programs found
here to decode the sound signals into files.
Please read the documentation for the program which suits you best.
Transferring software from tape to a BBC floppy disk might require special
attention. First try this simple procedure:
Note that many tape based games load their next parts using the indetermined
commands CHAIN "", '*LOAD' or '*RUN' commands (i.e. without the file names). These
won't work from disk without modification.
As a last resort, you might want to try the "Tape To Disc" ROM software, found
here. Software transferred to disk using this method
has been verified to work on emulators as well.
How can I *LOAD "locked" files?
The following piece of code lets you *LOAD a "locked" file:
Some standard DFS disk images can be found here. Some Watford DFS disk images can be found here.
Also see the Net resources page for links to other
pages which might have disk images.
How do I read BBC disks? / How do I make disk images?
BBC floppy diskettes use "single density" compared to "modern" diskettes used
on PCs (which are "double" and "high" density).
Modern PCs use floppy drive controllers which are simply not capable of
reading such low densities. However, if you own or have access to an old PC (with
an old floppy controller, of course), it is well worth the try to see if one of the
disk image creation programs in the File transfer
software section works for you. Out of these programs, FDC is recommended.
The readme file which comes with FDC states that the
floppy controller needs two crystals, a 16Mhz and a 9.6Mhz, in order to
be able to read single density.
According to Mark Usher, his GigabyteDX motherboard (with a P-200) is able to read BBC disks,
but only if they've been formatted using Watford DFS. This might be related to the different
layout of the sectors using this DFS.
Also, for the adventurous, this text file describes how to
modify your floppy controller for reading single density diskettes.
Does anyone have information on reading BBC diskettes on Macs or Acorn machines?
"The BBC Lives!" does not provide a "disk image making" service.
Reading BBC disks on an Acorn machine
(By Andrew Weston)
There used to be a serial link cable available from The Really Good Software Company (http://www.argonet.co.uk/users/sales.rgsc/) which linked the BBC Micro and 32-bit Acorn or Acorn-compatible using programs (provided) on each machine
to transfer the original files. These files could then be used with your BBC emulator. Some games I can confirm in personal experience would transfer successfully but other would pose problems often due to load/execution addresses not bei
ng transferred along with the file data itself.
there is software called !65link which enables you to use the 32bit
Acorn as a hard drive for your BBC. This should be found:
However you need to make a cable and do some other tinkering with
hardware which makes this far less convenient than if it was supplied
Otherwise I believe people have bought old external 5.25" drvies and
connected them to the floppy drive socket of the Acorn machine, but you
still need to make a cable unfortunately,
Hope this helps
How do I use disk images?
To use the images with a real BBC, you need to transfer the image to a physical floppy disk.
Otherwise, you need to be using an emulator which supports disk images.
Currently, only the BeebEm family of emulators provides this support (single density images).
The DOS port provides a rudimentary menu from which you can choose any SSD and DSD images in the current directory.
The other versions determine which image to load be interpreting the environment variable BeebDiscLoad - see the BeebEm documentation for details.
From version 0.7 onwards, BeebEm for Windows lets you mount disk images on the fly.
Also, make sure you use a DFS ROM image which matches the type of disk image you want to use.
In the Watford disk image archive, double sided images are available
with each side in separate files, e.g. side 0 in acorn1_a.zip, and side 1 in acorn1_b.zip. These should be joined (interleaved) before loading with BeebEm.
You will need a Watford DFS ROM image to access these images correctly.
See conversion below.
What is the difference between SSD and DSD disk images?
An SSD image is an image of a single sided disk. All data is present linearly as seen on the disk.
A DSD image is taken from a double sided disk - sectors are (usually) interleaved, alternating
between side 0 and side 1.
What is the difference between standard DFS and Watford DFS disks?
A DFS disk is limited to 31 files. A Watford DFS disk supports a format proprietary of Watford
which increases the capability to 62 files. To successfully use a Watford disk image, you must
be using a Watford DFS ROM. A standard DFS ROM won't be able to recognize the last 31 files in
If all you want is to convert standard format files from "The BBC Lives!"
to a disk image, you'll need either "BBC Explorer" or "bbcim" from the software page.
BBC Explorer is a drag-and-drop Windows program that can create a new disk image from dragged
BBC files or their *.inf files, or extract such files from an exisiting image.
bbcim is a command line utility that is very versatile. The most basic usage is to create
or add files to a disk image, using the command "bbcim -a image.ssd file1 file2 file3 ...".
For this command to work, file1.inf, file2.inf and so on must exist.
Here's my 4DOS/4NT batch script for making a disk image of
the files in the current directory. Even if you don't have 4DOS or 4NT, it should be useful
as a reference. The result is a single sided image, but it will produce double sided images
if the current directory contains only the directories "0" and "2" (which in turn has the
files intended for each side of the disk).
For more general instructions, read this (written by Mark de Weger).
How do I boot a disk image?
Hold down SHIFT then press BREAK. In an emulator, read the documentation to find out which key has been mapped to BREAK.
How do I make a disk !BOOT-able?
First of all you need a file named !BOOT on your disk, which is easily created as follows:
Without the *OPT command, !BOOT will never be loaded. The "3" tells the DFS that !BOOT is to be *EXEC'ed, much like a batch file in DOS.
(Other values: "0" - disable !BOOT, "1" LOAD !BOOT as a BASIC program, "2" CHAIN !BOOT as a BASIC program.)
If you're using a disk image, your first bet should be to boot the disk image
itself. Do this by pressing SHIFT+BREAK. If there's a file called "!BOOT" on
the disk, it should load and run. Many disks come with menus of all the games
available on the disk. (Look in your emulator's documentation to find out which
key on your keyboard provides the BREAK function.)
If no menu or game starts up upon booting the disk, you'll have to look at the
individual files on the disk.
Note that some games provide a machine code or BASIC !BOOT file.
The boot option (*OPT 4) may not have been set correctly on your disk image to
reflect this. If booting the disk crashes or fails otherwise, try one of the
Here are some more useful DFS commands:
Note that BASIC commands always require double quotes around the file name, but
that OS commands (like the ones above) or other custom "*" commands usually
Find the file most likely to be the "loader", i.e. the file you should
initially run - it is usually the file named most closely to the game's name.
Another common alternative is the name "LOADER". Here are the common ways to
load and run a game:
If you're not up and running by now, repeat the process with another likely
loader, or please read on.
Why doesn't game/program X work with emulator Y?
Sooner or later you'll see one of the following messages:
Here are some suggestions for cranking a game into an emulator and running it:
If you think your problem doesn't fit any of these suggestions, and you got
the program from the archives on this site, let me know. There might be missing files or files with errors in them. I can never fully guarantee that any program will work for you.
Downloading on the BBC means loading a file into a certain range of memory,
then moving it to another range, usually lower in memory. A common case
where this is useful is when you need to run a tape based program from disk.
Such a program can for example be a relatively large BASIC program, typically
a text adventure, other BASIC program which assumes that PAGE=&E00;, or
machine code programs which load and execute from specific hard-coded
PAGE is the variable which dictates where to start loading and
running BASIC programs. To be able to read files from disks you need
a DFS ROM, which needs some workspace in RAM. On a BBC (or emulator) without
DFS, PAGE, is preset to &E00.; When a DFS is installed, its value is typically
raised to &1900, subsequently reducing the amount of RAM you have available
to your games and programs.
The load and execution addresses of machine code programs can be located
with the "*INFO f" command (where f is the file name). Such programs are
not at all affected by the value of PAGE.
You can't simply set PAGE to &E00; and then CHAIN your BASIC program, because
as the file is loaded into address &E00; and beyond, the disk filing system's
workspace is being overwritten, and anything can happen. The BBC is probably
going to crash.
Similarly, machine code programs which load into the DFS' working space
will 99% likely yield the same result.
By downloading, you load the file into a "safe" range of memory, then copy
it down to the correct range (e.g. at PAGE=&E00;), and start execution at
the correct address. When loading is finished, you should make sure no disk
accesses are being made afterwards, as such accesses will likely crash either
your program or the DFS (not that you'd notice much difference).
How do I "download" a program?
It is assumed that you are using the Watford DFS ROM (see above), which has
the *MLOAD and *MRUN commands for downloading. Writing the downloading code
yourself for a single file is simple, but a bit tedious.
An implementation of the *MRUN command has been added to the archive, and can
be found here.
Downloading should always be performed in "MODE 7", since it has the most
available RAM for the initial loading of the file. In any other mode the
process is much more likely to overwrite screen memory, and data corruption
Downloading a BASIC program in file f:
Downloading a machine code program in file f (simple):
If the above didn't work, the BASIC or machine code program might be trying to read more files before the game itself can start. Since the DFS's internal state data is likely to be corrupted, the BBC is likely to crash. Getting such a program to load and execute correctly is one of the more advanced tasks you can undertake, and you might need to:
This section will be step by step guides to getting the most popular emulators up and running.
It is assumed you have the BBC BASIC 2 and OS 1.2 ROM images available - I'm not allowed to
provide these to you. For some emulators you also need a DFS ROM image.
Note that the version specific information given below is terribly out of date.
For the most popular emulators, there are much newer versions available.
Always check the emulators page for the latest
Always read the the documentation for the emulator for the most up to date information.
ZIP files should be
uncompressed with a utility that preserves long file names (like Infoware's unzip or
WinZip). Also make sure you expand full directory path names.
All versions can be found here. Below, "the current
directory" means the directory where you execute the executable from (not
neccessarily the directory where the executable resides!).
First some instructions specific to each version:
Next, prepare the ROM files needed to run the emulator. They must be copied into the
directory indicated above, and renamed like this:
In the UNIX (all) and Windows (pre 0.7) versions, a disc image is selected by setting the environment variable
"BeebDiscLoad" from the command line before running the executable. The format is
"sided:tracks:path" (note the colons!), and the default value is "D:80:discims/elite" (a double-sided, 80-track image
called "elite" in the "discims" directory):
Read this for help on converting games found on "The BBC Lives!" to
(I have not used the Mac version of Horizon, so I'm assuming it works similar to Horizon 95. Also, I have not used the registered version.)
Horizon 95 requires Direct Draw support to run, and Direct Sound support to produce
sound. These are parts of Direct X. Horizon 95 runs with both Windows 95 and NT 4.0.
Unzip this archive, and change to the
"HZN101DM" directory. The executable is named "HZN101DM.EXE".
Create a subdirectory named "ROMs", and copy the OS 1.2 and BASIC 2 ROM image
files to that subdirectory. Rename them to "OSROM" and "BASIC", respectively.
Software found in the main "The BBC Lives!" software archive must be converted
to Horizon's format. For each BBC file, you'll need to look at the corresponding
"*.inf" file to take note of the load and exec addresses (the first two numbers
after the file name). Copy each file (without the "*.inf" files) to the
"RAWFILES" subdirectory in your Horizon directory. Next, run the APPEND.EXE
utility included with Horizon and type in the name of each file, followed by
its load and exec addresses. Read Horizon's documentation on organizing and using
files in subdirectories, and so on.
If anyone writes a script or program for automating this conversion, please
let me know.
The emulator requires a mouse driver to be loaded, as well as a VESA driver. You can edit the file
"BBC.CFG" to experiment with different modes, amongst lots of other things.
The emulator works in DOS, but also in a DOS window in Windows 95. I have not got
it to work in NT 4.0.
Copy the OS 1.2 and BASIC 2 ROM image files to the directory with the executable, and rename
them to "os12.rom" and "basic2.rom", respectively.
Games found at "The BBC Lives!" are converted for use on this emulator using Tom's "WSCONV.EXE"
program that is included in the archive. Run it without parameters for instructions.
I've never even touched an Acorn RISC PC, so I've no idea how this thing
The most common question from RISC users concern how to convert
games from the archive format used at "The BBC Lives!" to Acorn's
BBC/RISC format. Darren Salt has written BeebArc,
which is supposed to take care of this.