
Because I can't seem to find anyone who wants to sell me their Compukit, I decided to do the next best thing - build my own - in software, of course.
This page presents my current efforts in writing an emulator. I have written everything from scratch, including the 6502 core. This is a work in progress, and is in no way a complete running program! I am offering it here in case someone out there wants to help me find the bugs in my code! I assume absolutely no responsibility for any damage this code may do to your machine. All code is copyright Ian McLaughlin, and is made available here for anyone who is interested. Suggestions, bug fixes, and additional code is welcomed.
3 October 1998: Well, it's been a little while since I've updated anything here. I've decided to zip up my current work-in-progress on my Windows port and make it available, source code and all, to the public. Please let me know what you think. I haven't optimized the code yet, but if you notice any bugs, or can offer any improvements, please let me know!
2 July 1998: I have started porting my DOS-based code to Windows 95. I am having some problems with the portability of the graphics library I'm using on different machines, so I've decided to migrate my work to the Windows platform. Watch this space for the Windows version.
22 Apr 1998: Here's version 0.2 of the Compukit emulator. I now have propper debugging of the CPU core, including display of the registers, the stack, and a disassembly of instructions being executed. This is in preparation for debugging my 6502 core (that still has a few bugs). After that, it's on to working on the cassette interface.
28 Mar 1998: Here's the first 'official' release of the emulator. I have included a few features that people have asked for. I'm still working on the core, so the source isn't available yet. Give me a little while, and it'll be ready... Hope you enjoy. Documentation is available in the ZIP.
12 Mar 1998: I have a compiled binary available for people who want to see what I've got running so far. I'm cheating a little with this, because I retrofitted a 6502 core I found on the net into my code to temporarily replace my core. The emulator runs perfectly. Now, I'm using this to compare with my core to see what instruction(s) I have wrong. Until I have my own core ready, I don't want to release the source (sorry).
04 Mar 1998: First release of the current code for public perusal. Please remember that this is still very experimental, with many, many inconsistencies in the code. There's lots of debugging printf statements in real strange places scattered throughout the code. Please let me know if you find the bug I think I have in my 6502 core. I am able to run any of the monitor ROMs that I have. The character generator works correctly. The keyboard routines seem to be very fussy. My current stumbling block is as follows. I am able to hit 'C' for cold start, then hit enter twice for the MEMORY SIZE and TERMINAL WIDTH prompts. I then get an out of memory error, and I get the prompts again. This happens with both copies of BASIC that I have. I'm sure it's caused by an incorrect instruction in my 6502 core, but I haven't been able to locate it yet.
ROMs
basic1.bin BASIC ROM #1 from an Ohio Superboard II basic2.bin BASIC ROM #2 from an Ohio Superboard II basic3.bin BASIC ROM #3 from an Ohio Superboard II basic4.bin BASIC ROM #4 from an Ohio Superboard II BASUK01.ROM BASIC ROM #1 from a Compukit UK101 BASUK02.ROM BASIC ROM #2 from a Compukit UK101 BASUK03.ROM BASIC ROM #3 from a Compukit UK101 BASUK04.ROM BASIC ROM #4 from a Compukit UK101 c1s.bin Monitor ROM from an Ohio Superboard II MONUK02.ROM Monitor ROM from a Compukit UK101 cegmon.101 CEGMON monitor ROM from a Compukit UK101 CHGUK101.ROM Character generator ROM from a Compukit UK101
Emulator Files
uk101v01.zip Superboard II/Compukit UK101 Emulator version 0.1 uk101v02.zip Superboard II/Compukit UK101 Emulator version 0.2 uk101v04.zip Superboard II/Compukit UK101 Emulator version 0.4