Background information
BBC Micros were used in schools and colleges in the 1980's. This project is a full emulation of a BBC Micro and allows you to use one from within the confines of Scratch!
Games currently included
There are over 60 games included in the project. It also has the ability to import any BBC Micro disk image from the internet!
Disk images that work but not with 100% accuracy
Elite (doesn't do the split-screen modes which is why the bottom section doesn't look great)
The Oregon Trail (Scratch resolution doesn't allow for display of 80 columns so we get word-wrap on a 40 column display)
Disk images that have been found to be unplayable
Boffin (uses overdraw which I can emulate but which won't fit into the space I've set aside for displaying the screen image)
Pharoah's Curse (uses light pen position and interrupt latch which is too insane)
Spear of Destiny (interrupt driven palette changes mean full screen refresh every single frame - would be incredibly laggy)
What is fully implemented
Pretty much everything! The full OS, the Disk Filing System, the BASIC ROM. The entire computer is emulated!
How do I program the computer?
I thoroughly recommend reading through the remastered BBC Micro User Guide. This will take you through every step of programming BASIC on the BBC Micro and will even touch upon the subject of programming in assembly language! You can view (or download) the manual from www.rokcoder.com/bbcmicro.
What about sideways ROMs?
Sideways ROMs are the EPROMS used to expand the BBC Micro. Two examples are BASIC and Disk Filing System which are both included in the emulator. There are many other sideways ROMs ranging from word processors to Logo implementations. The emulator supports sideways ROMs so if there are any that you would particularly like to see in the emulator then let me know and I'll add them!
The built-in debugger
You'll see the debug button at the top left of the screen when looking at games in the emulator. If you tap that button you'll see the built-in debugger. I made extensive use of this for debugging the emulator while I was working on it.
Play - this shows a trace of the 6502 code as it is executing
Step - steps through execution one instruction at a time
Step 50 - steps through in steps of 50 instructions
Frame - steps through an entire frame (with the BBC Micro running at 50 frames per second)
Set BP - allows you to set a break point in the 6502. After hitting the play button, execution will stop when it reaches a breakpoint
Watch - display the value of a memory location (2 bytes) while stepping through or playing the project
Watch BP - allows a breakpoint to be set that is activated when the contents of the given memory location are updated
Clear - empties the log window. The window fills up extremely quickly. With 1000000+ lines it is going to start using a lot of resources!
Src+OS - toggles between including OS code. Any memory addresses above $8000 exist in the OS code
Analyse - sorts through the recorded log file to sort opcodes into order of frequency of use. This allowed me to concentrate optimisation efforts
More to add…
There are a lot more details and instructions that I could (and might) add. These include how to write your own BASIC or 6502 games using the emulator. How to use the emulated disk system to save your projects and much more…
