UK101 emulator

Introduction

This program in javascript is an emulation of the UK101 a copy of the OSI superboard from 1979. UK101 Manual gives the best guide to the intended operation. The monitor ROM fitted to this emulator is Cegmon .
Nov 2014 original monitor added as an option.

Screen

I have emulated the UK101 with the 32 line modification, the screen displays the full 64x32, although the real uk101 would only display around 48x32 of these locations. This just gives a large blank margin unused on the screen. I have used character bit maps from an original rom, so the full 256 char should appear as normal. For the original rom the screen reverts to the original 16 line.

Keyboard

This is the least satisfactory part of the emulation. The original keyboard had a slightly different layout to current PCs. I have tried to map PC keys to the matching key, but in use you will rapidly find those where the match is not good. First you need CAPS LOCK on, this will normally match the setting on your PC, but can get out of sync. All the letters and numbers should work as expected, the shifted value of the numbers will be as the UK101, not as marked on your keyboard. The remaining UK101 keys have been mapped to any unused key I can access from JavaScript, hopefully in more than one browser. The photo of the keyboard is to help you find keys.
I have captured the keys strokes and not passed them on to the browser, this allows control keys to work.

Tape

As a way to save programs I have included a emulated tape recorder. Use is just as with the original. See the UK101 manual for details.

To save a program you have typed in.
Type "SAVE" return Type "LIST" but before you press return click record. When the list has completed ( this is a high speed tape ) click stop. Type "LOAD" then a SPACE and return.

Load from Tape
Type "LOAD" return Click Play and when complete type a SPACE and return.

Edit Tape
This give you the chance to view and edit the contents of the tape, and cut and paste between the tape and other documents on your PC.

File Load

I have now added a direct file load from your local file system. The file should contain the exact data the UK101 is expecting. When the file has loaded into the emulator type "LOAD" on the UK101.

Problems

I have a to do list of improvements, which may or may not happen. I have only tested on Firefox 3.6 and 4.0 and Chromium 8.0.552.224 all on Linux. It may work on some other combination.

Performance

I have run 3 performance testing routines on my original UK101 and this emulator with pleasingly similar results. The emulator is running on Firefox under Ubuntu. All run with CEGMON 28line window
Test 1 Processor speed Test 2 Screen write Test 3 ACIA speed
5 B=0
10 FOR A=1TO10000
20 B=B+A
30 NEXT
40 PRINT B
Result 5.00071E+07
10 FOR A=1TO1000
20 PRINT A
30 NEXT
And again with SAVE @ 300baud
10 FOR A=1TO100
20 PRINT A
30 NEXT

Results UK101 Emulator
Processor speed 32sec 30sec
Screen write 46sec 45sec
ACIA speed 58sec 64sec

Code and Licence

The emulator is written in JavaScript and released under the GPL licence. Updates, patches and improvements are welcome. Please also download a copy of the files if you can host them, as who knows how long I will keep this site. As all open projects should be this is based on the work of many who have gone before, most particularly Stian Soreng of 6502asm.com who created the 6502 emulator. George one of the cegmon authors.Tim Baldwin who found how to run superInvaders. See uk101.sourceforge.net