Emulation: Acorn & Risc PCs

By John Crane

Originally published in EUG #64

Introduction

A great web resource for an up-to-date list of Emulators is at The BBC Lives website. Suffice it to say, there are more than a few. In this article, I am going to concentrate on just three which cater for emulating BBC 8-bit computers using the Acorn and RISC OS machines. These are, in no particular order !65Host, !6502Em and !BeebIt.

!65Host and !6502Em allow direct disk access, so are ideal if you have loads of stuff on floppy (or even CD!) which you want to run directly. However floppies will need to be of the 3.5" variety unless you have a 5.25" drive hooked up to your RISC OS computer (which in many cases is not possible). Also, out of the box (so to speak) these emulators only do ADFS. However, with a utility called !DFS, they can be persuaded to read DFS disks. Again though they need to be 3.5".

If you're mainly interested in downloading image files for emulation, there are utilities, e.g. Dimager and ADFimager (amongst others) which can reassemble the image back to a disk to allow you to use it with !65Host and !6502Em. However, by far the easiest option in this case is to use !BeebIt, which can run image files straight off. If you mark the images as "writeable" you can even load a program within the emulator, alter its coding (assuming it is in BASIC) and then resave it. The image will then be updated, which is useful.

I shall now look at each emulator in turn, starting with !65Host.

!65Host

I've started with this as it was the first emulator out, and is still quite usable, albeit needing a few tweaks to use with modern RISC OS computers.

It was originally given away with the Acorn Axxxx series computers and called "Archimedes". Although later models dropped this name, it is still copyrighted (and currently owned by Pace Microtechnology Limited), so if you haven't got a copy then it may now be difficult to get hold of one legally. It isn't now given away with modern RISC OS machines.

However, assuming you have a copy that perhaps you got with an older Acorn machine and kept when you upgraded then you might wish to make use of it. It emulates a BBC B but with ADFS rather than the DFS you might expect. It will allow direct access to floppy discs, CDs (if your computer has a CD-ROM drive fitted) and also your computer's Hard Drive. It follows the Acorn numbering standards, so if you copy an entire floppy disc onto your Hard Drive and then run it from within !65Host, you need to change any references to drives 0, 1, 2 and 3 within the files. Otherwise, the program will start accessing the floppy drive. If you obtain !DFS from: http://homepages.paradise.net.nz/mjfoot, then you can also run DFS disks (subject to the provisos in the introduction).

Once in emulation, you are pretty much within the Beeb environment. The only real difference with !65Host is that it uses the standard RISC OS (standard PC layout) keyboard. All other emulators tend to emulate the keyboard as well.

Okay, that's the feel of it. Now to the "modding" part.

If you've got a Strongarm RISC PC (including Kinetic) !65Host will just not work. There are two solutions. One is to load up an app called StrongGuard before running !65Host. This is available to buy from the ARM Club (http://www.armclub.org.uk) and enables many programs which are not Strongarm-compatible to run, so may be of use if you have other items which don't work on a Strongarm PC.

The other free solution is to modify the coding of !65Host itself. As with all modifications, make sure you take a backup copy of !65Host before you start - in case things go wrong!

A clever little utility called !PCR13 is available to make the necessary modifications at http://home-1.worldonline.nl/~jandboer.

You just basically run !PCR15 and follow the instructions. It pretty much does everything for you, leaving you with a Strongarm-friendly version of !65Host. The only thing I have noticed with this solution is that within the emulator, CTRL-BREAK is mapped to CTRL-SCROLL LOCK. All other keys are standard (i.e. not mapped as per a BBC).

If you are running a RISC OS computer with RISC OS4, then you need to run a little bit of code before running !65Host. The easiest way to do this is to copy the file "RO4Patch" into the !65Host directory and add the following line to the "!Run" file

<65Host$Dir>.RO4Patch

The line needs to be inserted immediately underneath the line

Set 65Host$Dir 
If you've got a Strongarm RISC PC with RO4 then you will obviously need to do both. Update !65Host with !PCR13 first then add the "RO4Patch" and alter the run file.

The most up-to-date RISC OS computer you can currently buy is called an IYONIX and runs a true 32-bit RISC OS using a current (Intel) XSCALE arm processor and running RISC OS5 (http://www.iyonix.com). I would imagine that !65Host will probably need some modification to run on this, but it may run with the assistance of "aemulor", a 26-bit emulator available to buy and which allows RO4 (and below) programs to run on RO5. Go to: http://www.aemulor.com for more information. If anyone knows whether a modification is needed or not I would be grateful if you would let me know. However, I am assured that !BeebIt does run on IYONIX/RO5.

!6502Em

!6502Em is a commercial BBC emulator for RISC OS computers and currently works with all versions of RISC OS from 3.1 upwards, with the exception of the latest IYONIX/RO5 machine (see http://www.iyonix.com for details of the latest RISC OS computer). One proviso is that emulation on ARM250 machines (e.g. A3010, A3020 and A4000) is very slow due to the programming being optimised for the ARM3 chipset. If you are using one of these machines, it really is not worth the money. You will be better off sticking with !65Host which will have come with it.

!6502Em can be bought from Warm Silence Software (otherwise known as WSS and at: http://www.warmsilence.demon.co.uk). Once you've bought it, to bring it bang up-to-date there is a bugfix available from Michael Borcherds' (the programmer) personal website (http://www.borcherds.dsl.pipex.com).

This emulator is more exacting in that it can do different emulations for different 8-bit Beebs. To be precise, it can do Electron, BBC B (OS 1.2), Master (either OS 3.2 or OS 3.5) and Master Compact.

To use this emulator legally you should have the machines concerned and utilities are given for you to be able to assemble ROM images for the ones you require (All of them if you have them!). If you don't have the machines, there are plenty of second hand ones about which people are often giving away.

Oddly, despite it being OS 1.2, it only works with ADFS. However, like !65Host, if you obtain !DFS from: http://homepages.paradise.net.nz/mjfoot, then you can work with DFS.

As with !65Host, !6502Em gives direct disk access (subject to the provisos in the introduction) so image files will first need to be made back into disks before you can use them.

One thing to bear in mind is that !6502Em, in common with most emulators (the notable exception being !65Host), it is a full emulation. That is, the keyboard is also emulated. It is worth familiarising yourself with a real Beeb keyboard layout as, apart from the letters and numbers, most other characters are in a different place to those on a standard PC keyboard.

BeebIt

Compared to the other two emulators examined so far, there's not so much needs to be said, except it runs on all RISC OS computers from RO 3.1 right up to and including the latest IYONIX/RO5 (See www.iyonix.com for details of latest RISC OS computer). If all you want of your emulator is to be able to run image files, then this is all you need! It's free from the Michael Foot's (the author) website.

If you make the image files writeable, then once within the emulator you can load the individual (BASIC) programs you can alter and re-save them. The image file is then effectively updated, which is quite useful.

It will emulate a BBC B (DFS), BBC B+ (ADFS or DFS, but not at the same time), Master (ADFS and DFS - It defaults to DFS but just typing *ADFS within the emulator switches to ADFS) and Master Compact (ADFS). As with !6502Em, you need to source ROM images for the computers you want to emulate, but once set up, it's a breeze!

Utilities

Three more items of note here:

!DFS
As previously noted, this is available from: http://homepages.paradise.net.nz/mjfoot.

It is useful when used in conjunction with !65Host and !6502Em to allow them to access DFS disks. As well as this though, it is an actual RISC OS desktop application and does actually add DFS functionality to a RISC OS computer (At least up to RO4; not tried with RO5). Thus when a program is loaded, you get DFS drives added to the icon bar and any DFS-formatted floppies (3.5") can be looked at via the RISC OS filer and then run via one of the emulators if required. It can also format DFS 40 or 80 Track floppies on 3.5" discs. If you can get a 5.25" drive hooked up, it will cater for them as well. But most RISC OS floppy controllers cannot cope with 5.25" drives.

Formatter
RISC OS running up to RO4 (again I don't know the situation with RO5/IYONIX) can recognise all floppy ADFS formats including the now-obsolete ones that used to be called S, M and L. However it can only format the L format of the obsolete ones (now referred to as ADFS 640K (L)). A problem can arise then if you have an image file built from a "M" format ("S" as well but this is very unlikely as I don't think the format was ever that widespread!). There are lots of utilities available to 'unpack' a "M" ADFS image to disk, but they expect to have a disk of that format already in the drive. Also, you may have occasion to make a backup copy of a "M" format disk. You can do this using Deepcopy but you need to have a blank "M" format disk to start the ball rolling.

This, then is where Formatter comes in. It will let you format many different formats but most of interest here are the 'dead' ADFS floppy formats. I originally got the program from the ARM club (http://www.armclub.co.uk) but be warned this version does not cater for these formats. It is PD, so Malcolm Ripley kindly added these formats to it. Thus I'm not sure if it is available anywhere else. I can send a copy to anyone who wants it.

Deepcopy II
This basically allows you to copy any ADFS format floppy of any flavour (including ones which are copy-protected). Basically I use it to copy disks made in the now-obsolete formats that the RISC OS filer can't cope with. Available from the ARM club. Originally the ARM club sent out PD on Floppies but all its software is now on a collection of CDs. So you may have to buy at least one PD-CD to get it. As with the others, it works fine up to RO4 but I don't know about its suitability for RO5 or IYONIX.

John Crane, EUG #64