8-Bit Software Online Conversion

BBC Emulators. Taken from the Internet. Submitted by J.Looyenga (L1M) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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@st-and.ac.uk. For those of you already on this 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, FTP site and any hardware requirements if you want them to be included. Please note that the list is *not* maintained by me or Mark Cooke any more. It's maintained by someone else (David Gilbert I think). To subscribe to it, send a message to: beeb-emulators-request@OiT.co.uk With the *subject* line: subscribe And hopefully you'll be added. The list address is beeb-emulators@OiT.co.uk but please use this sparingly if you are not subscribed. Chris Last update 29/2/96 --------------------------------------------------------------------- 1 Emulator: Beeb Author(s): James Bonfield (jkb@mrc-molecular-biology.cambridge.ac.uk) and Steve Youell (8271 emulation) (wgc-e@rx.xerox.com) 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] --------------------------------------------------------------------- 2 Emulator: !6502em Author(s): Michael Borcherds (borchrds.teaching@physics.oxford.ac.uk) Platform: Acorn RISC OS Machines Language: ARM Assembler Implementation: Features: o Runs the original unaltered OS 1.2 ROM o Superb sound emulation o Full filing system (*SPOOL, *EXEC, OSGBPB etc), o Page at &E00 o Proper emulation of the keyboard interrupt & keyboard o Completely redefinable keymap o Full emulation of both VIAs o Full emulation of strange screen shapes o Snapshots o RISC OS * Commands from within emulator o Supports paged ROMs o Desktop frontend (F12 to return) o Elite works o Emulation of the DFS directory structure within ADFS o Option to use RISC OS's OS_ReadC to emulate OSRDCH Still to do: o Master 128 emulation o Caps Lock light o AMX mouse emulation o Mid-screen mode/palette changes (maybe) The Emulation ============= The processor emulated is the 65C12 as in the Master 128, with the following exceptions: o Opcodes &07, &4B, &87, &DC emulate the respective 6502 undocumented opcodes o The timing of opcodes when in BCD mode is as for the original 6502, not the 65C12 o A few of the opcode timings are not quite correct yet o Opcodes &03 and &23 are used for internal purposes by the emulator NB "Unused" Opcodes are defined to be NOPs The extra Rockwell opcodes are not supported The 6845 CRTC ------------- Registers 1,6,12,13,14,15 are fully emulated Register 3 is partially emulated In practical terms, the cursor is the only part not fully emulated The Video ULA ------------- Fully emulated, except for "mode 8" and the cursor Gap modes are displayed without gaps The Paged ROM Select Register (ROMSEL) -------------------------------------- Fully Emulated Supports ROM or RAM in any of the 16 banks The 6522 VIAs ------------- The VIAs are fully emulated except for the shift register The System VIA -------------- Interrupts supported from 6845, keyboard and the two timers Interrupts from 7002 ADC and light pen not supported Keyboard, sound and the screen wrap address supported Keyboard LEDs not supported The User Via ------------ Interrupts supported from the 2 timers User & Printer ports not supported [epic courtesy of MB :-)] --------------------------------------------------------------------- 3 Emulator: BPC 2.00 Author(s): Mark Cooke (mpc@star.sr.bham.ac.uk) Platform: PC Language: 80386 Assembler Requires: 386+ CPU, EMS (for sideways ram/rom) Register level compatible VGA card Implementation: In previous revisions of the software, I have had the system via, timers and screen code operating nicely. It should just be a case of integrating them all into the final version. The screen uses one of two modes - either a true 640x256 mode (hence the need for register comatible VGA and multisync - although this may work on a normal VGA monitor), or a 640x350 letterbox/debugging mode. The internal representation of the screen is such that split screen modes are fully supported. Palette manipulation is also possible. Fairly fast because of optimized machine code writing directly to the screen memory. Probably not as hardware independant as it should be. Direct hardware irq hooking to try to provide accurace emulation of the beeb keyboard response with regard to inkey's and so forth. Initial keypresses are translated into a grid organized like the Beeb keyboard. The grid columns have total number of keys pressed count, that is used in the VIA processing to reduce the amount of work done in multiplexing the grid ala the beeb. Sound: None Disk/Tape support: None yet Sideways Rom/Ram: Fully supported for ROM/RAM as boot time. Outstanding Issues: Lots. Mainly time, disk/tape handling. Messing around with direct hardware manipulation for improving speed. The screen code is fast, but slows the system down a lot. I will probably revamp it before I go much further with it. Release Date: realistically with my workload at the momennt, not before the end of the year at the earliest. The Xray telescope is taking priority right now - sorry guys :-) [MC, cut a bit by CR] --------------------------------------------------------------------- 4 Emulator: Xbeeb v0.2 Author(s): James Fidell (james@hermione.demon.co.uk) Platform: Unix / X Windows Language: C FTP : ftp.demon.co.uk /pub/emulators/bbc/Xbeeb/ Homepage: http://www.oit.co.uk/ Implementation: o Support for the NMOS 6502A and CMOS Rockwell 65C02 and 65C12 processors including all undocumented/illegal opcodes. o Emulates a Model A or Model B machine. o Near complete support for the 6522 VIAs -- most of the time you probably won't miss what I haven't implemented yet. o Support for MODE 7 teletext (including its own teletext fonts). o All the bitmapped screen modes including hardware scrolling and odd screen geometries, all done via emulation of the 6845 CRTC and video ULA. A few minor bugs remain here. o Full colour support, including flashing colours. (And the stripy screen in MODEs 3 and 6 if you do VDU 19,0,4,0,0,0). o Sound (under Linux/VoxWare) -- at the alpha stage at the moment. o Emulated DFS. Xbeeb comes with it's own DFS ROM to allow emulation of many of the Acorn DFS commands. File images are created as part of the standard UNIX directory structure. o Sideways ROM/RAM are fully supported. o Two keymaps are available -- one which uses the key legends as input to the emulator and another which bases the keypress information on the position of the key on the keyboard, making many games much easier to play. o Start-up MODE and keyboard DIP-swtich setting from the command line. o Runs about 90% of the games that I have tested so far, including Frak!, Zalaga, nearly all the Acornsoft games and many of the Ultimate games. Notable exceptions at the moment are Elite, Revs and Acheton. I'm working on those :-) The source is known to compile and run under Solaris 2.5 and Linux. --------------------------------------------------------------------- 5 Emulator: Beebem Author(s): David Gilbert (gilbertd@cs.man.ac.uk) (Core and X) Nigel Magnay (magnayn@cs.man.ac.uk) (MS Windows port) Platform: (X-windows on Unix) or MS Windows (3.1x/95 /NT) Works on every Unix box tried so far (Linux/HP/Sun/Alpha...) although it tends to need gcc. Language: C, some in C++ (for X) FTP: ftp.compsoc.man.ac.uk /pub/beebem 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. Register level 8271 emulation works fine (read only). Keyboard emulation is at hardware level. Runs with unmodified Basic, OS1.2 and DNFS roms. Speed is a bit limiting; runs at about beeb speed on a Pentium 90. Runs Elite fine (with palette switch); the only program with known problems is Revs which seems to have very touchy timing requirements. There's an alpha version for Linux which has sound on the FTP site. [DG] --------------------------------------------------------------------- 6 Emulator: Horizon (was MacBeebEm) Version: 1.0, March 1996 Author(s): Chris Lam, Aston University, UK (lamcw@aston.ac.uk) Platform: Apple Macintosh (and possibly Windows 95) Language: Codewarrior 8 Implementation: New name, new version. Horizon has been significantly updated... some 20% speed up, full sound support, fast large/full screen displays, proper Apple keyboard layout, much better Teletext mode, speedometer and more. Plays Revs, Elite and many others. Available for both 68k and PPC machines. Horizon is no longer freeware. A cut-down demo version is available to the public and the full shareware version costs 15 UKP. For the demo and info about Horizon's sister emulator Rainbow (Atari 8bit), visit http://www.aston.ac.uk/~lamcw/emulators.html where there are also some hotlinks to other Beeb sites. [CWL] --------------------------------------------------------------------- 7 Emulator: BBC386 Author: Stephen Quan (quan@sol.surv.utas.edu.au) 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] --------------------------------------------------------------------- 8 Emulator: TOL - The Owl Lives (formerly My6502) Version: 3.0 (29th February 1996) Author(s): Chris Rae (clr1@st-and.ac.uk) Platform: UNIX (based on Linux on the PC at the moment) Language: C Requires: not much so far Homepage: http://www.st-and.ac.uk/~www_sa/personal/clr1/bbc Implementation: I wiped My6502 by mistake - it doesn't exist at all now. However, undaunted, I am now writing a completely new one in C. At the moment, hardly any of the program actually exists at all. The only reason it's in this list is because it's mine (and hey, it's my list!) and because soon it will exist. More here and on the WWW pages when it's at a more realistic stage. [CR] ------------------------------------------------------------------- 9 Emulator: MODEL-B (soon to be renamed, possibly) Author(s): Tom Seddon (T.W.Seddon@ncl.ac.uk) Platform: PC, MS-DOS, 386+ Language: C (djgpp) Release date: Unknown (hopefully mid-April or so) FTP: no Version: 0.1 Homepage: http://www.ncl.ac.uk/~n5013784/bbcmicro.html Implementation: Bitmap graphics modes, odd screen sizes, split palette, split mode, basic teletext, pop-up control menu, system VIA, user VIA... all OK. Speed is now about 110% on average, on my 486dx2-80. It feels slower though. I am currently working on a filing system; for the moment I am done with the hardware side of things. After I have released it I will work on converting it into 386 assembler, and add better teletext emulation, snapshot support and maybe even sound. [TS] -------------------------------------------------------------------- 10 Emulator: BBCEm Author(s): Nigel Something; sorry - no surname! (apm1001@phx.cam.ac.uk) 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] -----------------------------------------------------------------------