Date : Wed, 26 Apr 1995 18:02:18 +0100 (BST)
From : Chris Rae <clr1@...>
Subject: Every-so-often post: BBC emulators under progress
- cut here ------------------------------------------------------------
This is a list of all BBC B emulators currently under progress, to the
best of my knowledge. Any updates, alterations or additions should be
mailed to me, clr1@... For those of you already on the list;
while I was compiling it I thought of a couple of extra things to put in.
Could you please mail me with version number, latest release date and any
hardware requirements if you want them to be included. Please note that
the list is *not* maintained by me any more; it's maintained by Mark
Cooke. His address is in the list, I can't be bothered looking it up. ;-)
Thanks,
Chris
Emulator: Beeb
Author(s): James Bonfield (jkb@...) and
Steve Youell (8271 emulation) (wgc-e@...)
Platform: Unix, with or without X11
Language: C
Implementation (core emulator):
Currently has good 6502 and reasonable 6522 support. The keyboard is
handled correctly by generating the necessary 6522 interrupts and letting
the "hardware" do the work. Graphics support is dodgy. Sideways RAM and
ROMS work fine too. I have minimal 6845 support, but this currently does
work for modes 0, 1 and 2. It even provides some semblance of hardware
scrolling (but only in the Y direction). I'll rewrite the 6845 again from
scratch though as I've got better ideas now which should allow for split
screen modes.
Implementation (8271 emulation):
The idea is to emulate the 8271 rather than OSWORD &7F as in effect all
OSWORD &7F does is to give the 8271 all the data in the argument block.
There will also be the Disk Box which is an X program for selecting disks
and giving them to the drive. It's quite easy really, I don't have to
worry about particularly tight programming as anything I write will be
faster than the beeb disk drive. The idea is to have a program on the beeb
which will take a disk and make an image from it containing all the sector
id's and data. The final goal which would truly show off the beeb emulator
and the disk drive I am writing would be to be able to have a disk image
of exile, to be able to load it, protection 'n' all and then for the
emulator to run it. [SY]
Emulator: !6502em
Author(s): Mike Borcherds (borchrds.teaching@...)
Platform: Archimedes
Language: ARM Assembler
Implementation:
65C02 emulated, only known opcode problem is with SBC in BCD mode
Screen - supports funny sized modes, 6522 latch, no split screens or
palette or cursor yet
Keyboard - inkey with -ve numbers works from hardware, but the keyboard
interrupt doesn't work (because I didn't realise you have to set the
bit in FE4D even if interrupts are disabled!), so I'm intercepting
OSRDCH and OSBYTE for keyboard handling
(shift & ctrl break work OK)
Interrupts - I'm currently faking a timer 1 and a vsync interrupt at
fairly arbitrary intervals, which seems to work reasonably
FE30 - emulated
Filing System - I'm intercepting OSFSC (& OSBPUT, OSBGET etc etc)
to implement a full filing system, sending errors back via a BRK
which works very nicely, the only problem being how to do commands
(like *.) which send stuff back to the screen.
A better solution will be to write a filing system, then I can run
the original ROM
6522 - no timers emulated yet
Sound - emulated by trapping OSWORD [MB]
Emulator: BPC 2.00
Author(s): Mark Cooke (ee2015@...)
Platform: PC DOS 486+
Language: Assembler
Implementation:
Calamity struck installing Linux. I now have a working 6502 with partial
6522 support. The keyboard matrix is fudged - it took me a long time
first time round to get it working right.
Screen is a basic text screen. Reimplementing the old screen handling
code should be fairly easy - it dealt with split screen modes, palettes
and non-standard settings (reasonably well).
Version is now 2.00 (even though 1.0 is dead). Release date is very
dependant on my workload at Uni - probably soon after Christmas. [MC]
Emulator: Xbeeb
Author(s): James Fidell (jfid@...)
Platform: Unix / X Windows
Language: C
Implementation:
MODE 7 teletext works, near enough complete 6502 and 6522 emulation, some
CRTC emulation, no sound, no graphics. [JF]
Emulator: untitled, as far as I know
Author(s): David Gilbert (gilbertd@...)
Platform: X-windows
Language: C, some in C++ (for X) compiled to Linux, Sun 4.1.3 and HP
Implementation:
All graphics modes now emulated (except the cursor) including wierd ones
like the AUG mode 8. Virtually full emulation of the 6845. Also supports
change palette halfway down the screen, etc. Now trying to get
register-level 8271 emulation working. Keyboard emulation is at hardware
level.
Speed is a bit limiting; runs at about 1/3 of beeb speed on a Pentium 90.
Emulator: MacBeebEm
Version: 12 September 1994
Author(s): Chris Lam, Aston University, UK (lamcw@...)
Platform: Apple Macintosh
Language: Think C 6.00
Implementation:
Emulator: BBC386
Author: Stephen Quan (quan@...)
Platform: MS-DOS, Unix
Language: 386+ and C
Implementation:
I am currently working on both a C version and a 386 (assembly) version of
an emulator for a bbc model-b. The C version will actually run on any
platform with a C compiler (no graphics yet...), but it is terrible slow
since I have not implemented any optimisations. Rather, I use the C
version to verify my ideas before I dive into deep water with assembly
code.
The current status is, I have implemented 6502 without BCD and have hacks
for OSWRCH and OSRDCH.
I am now working on the keyboard and other shiela functions in FE40-FE4F.
When this is completed, I can remove the hack for OSRDCH. Later on I will
work on some of the 6845 (sheila functions in FE00-FE0F, I think) so I can
remove the hack for OSWRCH.
Overall, the hardware side, Fred, Jim & Sheila seems a bit more complex
than I thought, and reading the AUG, studying (2nd semester started) and
working, will mean I might be forced to a snail's pace. [SQ]
Emulator: My6502
Version: 2.7 (5 August 1994)
Author(s): Chris Rae (clr1@...)
Platform: IBM PC
Language: 80286 assembler under Turbo Pascal 6 IDE
Requires: 286+ processor, VGA
Implementation:
6502 instruction set working okay; still some minor bugs. No SHEILA I/O
implemented. Screen emulated in mode 0; too bad it boots into mode 4!
Aaarggghh! Working currently on keyboard. The system boots into BASIC,
but you can't type anything because I haven't got the k/b working. [CR]
Future plans:
To implement &FE30 ROM switching, proper screen refreshing, filing system.
Emulator: BBCEm
Author(s): Nigel Something; sorry - no surname! (apm1001@...)
Platform: Acorn Archimedes
Language: ARM Assembler
Implementation:
Has no hardware poking as yet, can read keyboard boot up state on "switch
on", takes input by blasting key presses into the 16byte keyboard buffer.
Output is done after processing as the monitor is not yet connected. Can
boot up to BASIC prompt in 1.5 secs Can execute BASIC programs and draw
graphics. There are some OPcode bugs that cause it to crash occasionally. [N]