Amiga Format
This article was originally written by Simon N Goodwin for Amiga Format magazine, and is used by permission of the joint copyright holders. It should not be copied any further without written permission. The free emulators mentioned were included on the accompanying CD with the magazine, and are generally available - often in updated form - from this site. The text is as originally submitted to the magazine - which means there are some differences, mostly extra text which was cut to fit into the pages available - with the addition of hyperlinks to new or updated information which has since become available. This approach has been taken to preserve the structure of the original series, while making new information readily available. Simon welcomes comments from readers, care of Tomas Amsrud, who has generously prepared the material for publication on the Internet.
PrevNext
Main

AER


BBC and ORIC Emulators

Simon N Goodwin examines Amiga emulators
for BBC Micro and Oric home computers


This month we test emulators for two classic British micros: Acorn BBC and Oric machines, both born in Cambridge in the early 1980s. Other shared features include an eight colour palette, MOS Technology 6502A processor and three channel mono sound.

There are good Amiga emulators for both systems; you can emulate either without investing in a super-fast modern processor. The BBC Micro was more sophisticated in term of graphics and programming, but relatively expensive.

BBC Micros

Acorn's BBC Micro arrived in 1981, after a deal between Cambridge computer firm Acorn and the UK broadcasting corporation. The BBC wanted to base a series of TV programmes around a new, British computer. Acorn scooped the contract, and guaranteed sales into UK schools.

The first computer encountered by many '80s pupils was a BBC Micro, usually a Model B with floppy drives or a network adapter. The original tape-based Model A had just 16K RAM. A later version, the Acorn Electron, was smaller, cheaper and slower, but ran much the same programs.

Display resolution ranges from 160 to 640 pixels per line, depending on the number of colours, with 256 lines. Beebs use digital colour - turning the red, green and blue signals entirely on or off - limiting them to eight colours or flashing combinations. Sound comes from the ubiquitous three channel sound chip, limited to square waves, with poor pitch and volume resolution, but easily programmed from BASIC.

The Model B had just 32K of RAM and the same amount of ROM. In theory this filled the address space of the 2 MHz 6502A processor, but Acorn got around this with switching schemes and add-on processors. This was important because high resolution displays could consume almost two thirds of the standard RAM, leaving only around 10K for the program.

BBC BASIC has a good reputation because of its speed and improvements over Microsoft BASIC, including concessions to structured programming and a built-in assembler. But BBC BASIC is over-rated. It's greedy for scarce memory, there are serious gaps in its structured programming extensions, and it gets slow when meaningful variable names are used. These days HiSoft BASIC on Amiga, or even Microsoft's QBASIC, can run rings around it, but some people still like it and it has a neat screen editor with two cursors, indicating the source and destination for copied characters.

BBC Emulators

There are three ways to emulate a BBC Micro on your Amiga - one Amiga original, a conversion from Unix, and an Apple Mac Beeb emulator for Emplant or Shapeshifter. You could also run BBC BASIC programs under C64 or PC emulation, with commercial language interpreters, but I shall not dwell on this possibility as you're better off using Amiga-specific code.

The oldest is appropriately if confusingly known as 'The Emulator', bundled with Commodore's 'Class of the Nineties' Amiga education pack. This uses a re-write of the Acorn ROM in 68000 assembler, so BASIC programs run at impressive speed even on the slowest Amiga. Simple loops run at full speed and even transcendental maths comes close, although precision suffers because it uses the Amiga's seven digit FFP library.

Amiga disk drives, serial and parallel ports are accessible, and there's support for serial transfers between a real Beeb and the emulator. Amiga text files may be generated or read with new *ASPOOL and *AEXEC commands, which transfer data and program listings between the BBC and Amiga environment. But there's no provision to read original BBC micro cassettes or disks.

6502 machine code, in most games and many utilities, must be interpreted, running at a fraction of the original speed on 16 bit Amigas. More seriously, the emulator does not allow programs direct access to display memory. This leaves 60K free for programs, but stops many of the best BBC micro games working correctly. Utilities and educational programs that use BASIC or the operating system work fine, usually at impressive speed.

This emulator was written for the 68000, and has not been updated for later processors, so it needs patches to run on modern machines. The Aminet utility TUDE does the trick for 68020 and 68030 users. Use the options 'Privileged' and 'Caches=None'. These slow the machine down slightly, but emulation is still very fast. I've yet to find a way to run 'The Emulator' on a 68040 or 68060 Amiga.

Keyboard mapping is good, adapting to the Amiga configuration. Screen emulation is quick but not quite perfect. The Emulator runs on its own screen and you can pause it to switch out to other tasks, but emulation stalls in the meantime. The sound chip is well emulated.

The Emulator is a good choice for basic Amigas, but not for modern processors with copyback cache. Luckily there's an alternative, ABeeb, which absolutely needs the power of modern machines.

ABeeb

ABeeb is based on the XBeeb emulator for Unix computers, programmed in C by James Fidell. The original suits NetBSD on fast Amigas with graphics cards, but I've concentrated on testing the version converted for Amiga OS by Jonathan Belson. This will be released to Aminet after documentation and testing. I've reviewed an early version.

Preparation

ABeeb requires extra files to run properly, including the large and cumbersome IXEMUL library, which adds Unix features to the Amiga environment, and ROM images from a late-model Beeb with OS 1.2 and BASIC 2. It does not tell you the required ROM names, but you can work them out from the error messages.

You must copy almost 100K of fonts to your workbench. These are for Teletext displays, and include upper and lower halves for the double-height Teletext characters. ABeeb uses its own snapshot format but comes with BBCIM, a Dutch command-driven utility which converts files to and from the BBC disk image format used on the Net.

Startup

ABeeb complained about the versions of IXEMUL and IXNET on my system, but ran regardless. Messages spew out in the console window as every key-press is received and before the screen is updated; starting the task with XBEEB <>nil: improves speed somewhat.

Reports indicate that keys are registered at once, but the emulator is slow at passing them on to the machine. I guess that a redundant 'key debouncing' routine causes the slow response. The keyboard layout is that of the BBC Micro, not the Amiga, so it takes trial and error to find all the symbols unless you can type blind on a real BBC keyboard.

Display

ABeeb opens a window on the workbench, overflowing the screen on a Multisync monitor in 'productivity' mode. It expects a DoublePAL display or graphics card, although at a pinch Workbench 3 users with 15 KHz displays could get by, scrolling around a superbitmap. The next version promises to support a PAL screen.

Display updates use WritePixelArray, a recent addition to Amiga OS, so you need Workbench 3 and either PatchWPA8 (from Aminet) or SetPatch 43.4, from Amiga Technologies. The output window has a close gadget but no other Intuition goodies. The latest version offers a start-up option to run it in 'quarter screen' mode, which will fit a normal PAL display, but makes the highest resolution 640 by 256 pixel MODE 0 useless.

Sixteen colours must be free on your workbench so the emulator can allocate 'pens' for the eight BBC colours and flashing combinations. This means a sluggish workbench of 32 or more colours. If run with fewer pens it substitutes preset workbench colours for the BBC ones.

Performance

Emulation speed is glacial on an A4000/030. ABeeb takes about 14 seconds to run a FOR loop which would execute in a second on a 'real' Beeb, and keyboard entry is painful, with a delay of several seconds between the recognition of one key and the next, and no apparent buffering of keystrokes, so you have to hold the key down until it appears.

There's no cursor in graphics modes, and changing from MODE 0 to MODE 1 does not clear the screen completely, even though it spends a few seconds and several slow passes trying to do so. Teletext MODE 7 has faster keyboard response - though it still can't keep up with input of one key per second - and shows a cursor, eventually. If the whole screen is updated it is slowly redrawn over a period of about a second from top to bottom.

A 68040 helps, but it's hampered by the slow A4000 motherboard memory. You need an accelerator with it's own fast memory to get the best from ABeeb. On a Cyberstorm 68060 it's quite usable in BASIC, though a graphics card is advisable for games.

ABeeb overall

ABeeb lacks emulation of the BBC micro sound chip. It's system friendly and stable, and runs machine-code games unlike The Emulator, but it is horribly slow because the 6502 emulator and graphics support is all written in compiled C. It's worth a look if you've progressed from a Beeb to a power Amiga, but needs more work to make it accessible to the majority of Amiga owners.

Horizon

Horizon is a shareware BBC emulator for Apple Macs, formerly freeware and known as MacBeebEm. It's programmed in C and needs a fast machine. It's worth a look if your Amiga has Mac emulation and a graphics card.

The Oric Emulator

The Oric 1 was launched at the beginning in 1983, developed by Tangerine Computer Systems who made a bare-board computer similar to Acorn's original model. In those days, fruity names like Apple and Apricot were fashionable among computer firms.

Oric 1s had either 16K or 48K RAM. The name Oric came from Greek mythology, via the SciFi TV series Blake's Seven and it's irascible talking computer Orac - one of very few TV computers to contain a real micro - in that case, a Nascom 1.

Oric BASIC is a bit better than the Microsoft interpreter on which it was modelled. There are display modes for text and bit-mapped graphics. Both use serial attributes, like Teletext, which limit the colour changes on each line to eight-pixel boundaries. The screen resolution of 240 by 224 pixels leaves wide margins on an Amiga.

The original Oric sold 160,000 in its first year, when it was replaced by the Oric Atmos, with improved keyboard, BASIC and cassette loading. Sales increased, particularly in France where the Oric was the leading home computer for a while, and a year later production moved to Normandy.

AmOric

Jean-Francois Fabre's Oric emulator started life as a C program, running on Unix workstations. Oric emulators are also available for PC and Atari ST. The Amiga version makes extensive use of assembly language and runs at acceptable speed on any 32 bit Amiga with fast memory. There's a slow version for old 68000-based Amigas with Kickstart 1.3.

AmOric 020 requires Kickstart 2 or better; it is system friendly and multi-tasks well. It has good AmigaGuide documentation, and simple on-screen help. Run-time options are controlled by a configuration file and function keys.

The keyboard layout of Orics and US Amigas correspond; most keys are where British users would expect, apart from quotes, at and hash symbols, which are in US rather than UK positions. The UK pound sign takes the place of underscore.

Amiga joysticks can emulate Oric keys, which helps A1200 owners who run into problems when pressing several keys at once. Software compatibility is good, but undocumented 6502 instructions and some timer operations are ignored, and there are some differences in sound between AmOric and the real thing. The AmigaGuide lists over 100 Oric games that are correctly emulated, and just half a dozen that fall over.

The screen update rate depends on your processor, and is inevitably slow on unaccelerated Amigas. Graphics cards and Multisync displays are supported, and there's a mono screen option which trades colours for time. The PrintScreen key saves the Oric screen as an IFF file.

AmOric can emulate either the Oric 1 or the Oric Atmos, depending on your choice of ROM file. Both ROMs are included, with example programs. By default AmOric diverts cassette loading and saving to Amiga drives, but you can read original Oric cassettes, given patience and an eight bit sampler.

File transfer

TRANSF is a shell utility that reads a file sampled from an Oric cassette and generates data that AmOric can load directly. Like all cassette loaders this is fine in theory but fraught in practice. If you've got Web access it's easier to look for the programs there first, as lots of programs have already been converted. Another utility, TapeInfo, scans sample files to analyse the contents and correct synchronisation errors.

Expanded Oric systems used Hitachi three inch disk drives. It's theoretically possible to connect these to the Amiga - as I noted last month - but I'm not aware of software that can decode the Oric directory structure so you'd have to work sector by sector and build up the file in a disk editor: a laborious process.

AmOric is GiftWare, so the author would be happy to receive just about anything from its users. I hope you readers will respond, because AmOric is good and the author deserves encouragement.

Availability

AmOric 1.5 is on AFCD7 and the current CD, joined by TUDE, which allows The Emulator to run on 32 bit Amigas. Updates are available on Aminet and this site. The Emulator was originally a commercial product but some PD libraries have the files, and they're on the Emulators Unlimited CD. I bought the complete package, with manual, for a few pounds at an All Formats Computer Fair.

Contacts:
Web support
http://www.cistron.nl/~wouters/bbc/bbc-etc.html
http://www.nvg.unit.no/bbc/
http://www.ensica.fr/frances/oric/oric_english.html
ftp://mic-atm.lancs.ac.uk/micros/bbc
Usenet News:
comp.sys.oric
comp.sys.acorn.misc
comp.sys.acorn.programmer

Web page design Copyright © Tomas Amsrud
Articles Copyright © 1996-2002 Simon Goodwin