[ main | what's new | search | software | emulators | archive | documentation | links ]

Frequently Asked Questions (FAQ)

This is a new section, and thus fairly limited as of yet. Much of the "how-to" information spread out over the other pages will be gathered in the relevant sections here.
  • How do I ...?
  • How do I connect ...?
  • ROMs
  • Tapes
  • Disk images
  • Finding and running games
  • Using emulators

  • How do I ...?

    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.


    How do I connect ...?

    How do I connect a SCSI device/hard disk to my BBC?

    Read Mark Usher's "HardDrive" document, found here.

    How do I connect a PC floppy drive to my BBC?

    Read Mark Usher's "Disc Drive and DFS Guide", found here.

    How do I connect a PC to my BBC?

    Read the documentation provided in Mark deWeger's XFer software.

    ROMs

    What are ROMs?

    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:
  • the OS (operating system): providing basic hardware configurability, input/output, ROM management, ...
  • BBC BASIC: the default language for the BBC micros
  • 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 activated.


    Tapes

    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:

  • *CAT the tape, taking note of load and execution addresses for each file, as well as their lengths.
  • *LOAD each file from into memory at PAGE for your DFS (typically &1900).
  • Enable DFS by typing *DISC.
  • *SAVE the file to disk from PAGE with the correct length.
  • Disable DFS by typing *TAPE, and repeat from the second point.
  • 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:
    P%=&C00;
    [PHA: LDA &3CA:AND #&FE;:STA &3CA:PLA:RTS]
    ?&220=0:?&221=&C;
    *FX14,4
    

    Disk images

    Where can I find disk images?

    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.

    The "Catweasel Advanced Floppy Controller" is available for PCs and Amigas, and is rumored to be able to read BBC-formatted disks using standard PC floppy drives.

    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.
    
    Also,
    
     there is software called !65link which enables you to use the 32bit
    Acorn as a hard drive for your BBC. This should be found:
    http://web.inter.nl.net/users/J.Kortink/software/65link.htm
    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
    already prepared.
    
    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
    
    Andrew
    

    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 the image.

    How do I make disk images or convert from one format to another?

    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:
    >*BUILD !BOOT
    0001 CH."MENU"
    0002 
    
    >*OPT 4,3
    
    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.)

    Finding and running games

    How do I find a game?

    The following instructions assume you're looking at the software archive page:
  • If you think you know the publisher of the game, click the "HTTP" link. This will list the major publishers in the archive. The "Various" directory contains software from minor publishers and individuals, and this directory is quite large.
  • If you know the name of the game, or at least the first letter(s) of its name, click the "index" link, select the first letter of the game's name as "Filter" and click "Submit Query".
  • If you'd like an alphabetically sorted listing of the contents of the archive, click the "index" link, select "Sort by: Filename" and press "Submit Query".
  • How do I run a game?

    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 following commands:

  • CHAIN "!BOOT" (assumes !BOOT is a BASIC program)
  • *RUN !BOOT (assumes !BOOT is machine code)
  • *EXEC !BOOT (assumes !BOOT is a command script)
  • Here are some more useful DFS commands:
  • The "*CAT" (or "*." for short) command provides a catalogue of the current side of the current drive. All files on the disk are listed, with the files in the current directory listed first, then all the other directories.
  • The "*DIR x" command changes the current directory to "x". "$" is the name of the root directory.
  • The "*DRIVE x" command selects the active disk drive and side (if your emulator supports disk images):
  • x=0 means drive 0, side 0
  • x=1 means drive 1, side 0
  • x=2 means drive 0, side 1
  • x=3 means drive 1, side 1
  • The "*INFO f" command shows detailed information about file "f", specifically the load and exec addresses, the file's length and starting sector, and its "locked" status. If "*INFO *" is used, information about all files is listed. This command is not supported by all emulators.
  • 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 never do.

    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:

  • First try running the game as a BASIC program: Use the command CHAIN "f" (or CH."f" for short) to run the BASIC program in file "f". If it is not a BASIC program the BBC will simply give you the error message "Bad program".
  • If CHAIN didn't get you going, try "*RUN f" (remember, no double quotes around the file name!), which will try to run the file as a machine code program. Lots of things can go wrong here (see next FAQ, for example), and if it is not a machine code program (or something else fails), your BBC (or emulator) will likely crash.
  • 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:
  • Bad program - you have probably loaded a file which is not a BASIC program - see above. Technically, this error is reported when the BASIC interpreter can't find a valid BBC BASIC program starting at the address given by the system variable PAGE.
  • No room - the BASIC program you are loading or running is out of memory. Try selecting MODE 7 and run it again. If that doesn't work, the value of PAGE needs to be lowered - see below.
  • Bad mode - the graphics MODE that you or the program is trying to select needs more memory than is available, typically because a BASIC program is too large or is loaded too high in memory. Try lowering the value of PAGE - see below.
  • Here are some suggestions for cranking a game into an emulator and running it:
  • You're not loading and running the correct file, or you're loading and running it incorrectly. See the previous FAQ.
  • The program needs another value of PAGE than what you're using in the emulator (they do differ). See the next FAQ.
  • The program uses capabilities not fully or perfectly emulated by the emulator. This is often clearly indicated by messages like "illegal opcode" or "no OSFIND", or the garbled displays seen in Revs in Tom's emulator and Exile in any emulator. Wait for a better version, use a better emulator, use a BBC, or cry when you go to sleep at night...
  • The program is tape based, and assumes PAGE is, or can be set to, &E00.; This can have disasterous results, as data crucial to the successful operation of a DFS can be overwritten by the program's data, often causing a crash when another file operation is attempted.
  • The program is tape based, and uses the command CH."" or *RUN to load the next file found on the tape, without specifying its name. This command has no meaning on a disk filing system. If you know what the next part is, you could try changing the CHAIN statement. This is relatively hard to fix for all but straight BASIC programs, as many BASIC game loaders have data or machine code attached to their ends, which will be corrupted when the size of the BASIC code changes.
  • The program is tape based and has been modified by end users to use custom '*' commands, like *MLOAD, *MRUN or *DOWNLOAD to make the program think it is possible to load low down in memory, so that the game can actually be run from disk. These commands load a file high, then move it down when all DFS operations are complete, possibly overwriting DFS data. For the BeebEm family of emulators, try using the Watford DFS 1.44 when running such a program. This ROM provides the commands *MLOAD and *MRUN. *DOWNLOAD seems to be provided by Computer Concepts' DiscDoctor ROM, but I haven't yet been able to test this. Read on for more about "downloading".
  • 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.

    Why do I need to "download" a program?

    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 addresses.

    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 might occur.

    Downloading a BASIC program in file f:

  • *MLOAD f (loads the file into "safe" memory, then moves the data to a range starting at the load address)
  • *TAPE (disables disk access)
  • PAGE=&E00; (locates the start of the BASIC program for editing and/or running - here it is assumed that the load address that *MLOAD uses is &E00;)
  • OLD (makes the BASIC language aware that there is a program here)
  • Now you can LIST, edit or RUN your BASIC program. If you get "Bad program", the load address might be different from &E00; - locate it using the *INFO command, then replace &E00; above with the correct address)
  • Downloading a machine code program in file f (simple):
  • *MRUN f (loads the file in "safe" memory, moves the data to the correct load address - this might corrupt the internal data structures of your DFS - then execution starts at the correct execution address)
  • 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:
  • write your own customized downloading routine,
  • make changes to the game's BASIC code to load and use data at different addresses,
  • patch the game's machine code for the same reasons,
  • ...

  • Using emulators

    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 versions!

    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. Get WinZip now!

    BeebEm

    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:

  • UNIX version 0.71b: Uncompress this archive.
    Build the executable for the emulator. Read the section called "Installation" in the file "ReadMe.1st" for instructions on this. The executable will typically be "beeb".
    ROM files are to be put in the "beebfile" directory.
  • Windows 95/NT version 0.71: Uncompress this archive. Read "ReadMe.1st", the "ReadMe.Win". The executables are "intelbin\BeebEm.exe" and "intelbin\BeebEmP.exe" (optimized for Pentium processors).
    ROM files are to be put in the "beebfile" directory. This emulator can load (mount) disk images on the fly, so you don't really need to bother with the environment variable described below.
  • Windows 95/NT version 0.4: Uncompress this archive. The executable is "example-intel-binaries\rbeebwin.exe".
    ROM files are to be put in the "beebfile" directory. To run, this emulator requires Microsoft's WinG library.
  • DOS version 1.1: Uncomress this archive.
    The executable is called "BEEBDOS.EXE". ROM files are to be put in the current directory. When started, the emulator provides a menu of disc images found in the same directory.
  • Next, prepare the ROM files needed to run the emulator. They must be copied into the directory indicated above, and renamed like this:
  • Rename the OS 1.2 ROM image to "os12".
  • Rename the BASIC 2 ROM image to "basic".
  • Rename a disc filing system (DFS) ROM image to "dnfs".
  • 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):
  • "sided" is "S" for a sigle-sided image or "D" for a double sided (interleaved) image.
  • "tracks" is 40 or 80 - 80 is a safe bet.
  • "path" is the file path to the image.
  • Read this for help on converting games found on "The BBC Lives!" to disk images.

    Horizon

    (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.

    Tom Seddon's emulator

    Unzip this archive. The executable is "BBC.EXE".

    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.

    6502Em

    I've never even touched an Acorn RISC PC, so I've no idea how this thing works.

    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.

    Robert Schmidt - rsc@nvg.org.