Open Source BBC Micro In JavaScript
Thursday, 15 May 2014

The BBC Micro was a revolutionary computer that had a worldwide impact. Now you can try it out in JavaScript in your browser.

What can be done with JavaScript today is impressive, but is emulating a 32K BBC Micro an indication of how powerful JavaScript is or is it an indication of how feeble home computers were?

The BBC Micro is a special computer because it introduced a generation in the UK to programming and it led to the creation of the ARM processor that is almost universal in mobile devices. It was also the inspiration for the amazingly successful Raspberry Pi - which has a model A and B just like the BBC Micro to show its roots. 

 

bbcmicroexpertguide

 

Matt Godbolt has just created an open source emulation of a 32K BBC Micro model B, jsbeeb, using nothing but standard JavaScript and what is really noteworthy is that he has started to describe how it all works.  

So far we only have an account of how the CPU was emulated. There are a number of 6502 emulators including some in JavaScript. If you think that emulating a CPU is a big problem - it is, but you have to keep in mind that processors like the 6502 have only a single byte op code. This results in a total of 256 possible op codes and in practice most of these aren't used. So what you need is a big select to dispatch each op code to a routine that processes it. In practice, for efficiency reasons, it is better to use a dispatch table of 256 references to funcitons that implement each of the operations. 

The 6502 may be a simple CPU, but getting it right so that it can be used to run real software is still a big problem. There are bugs in the hardware that are often made use of by anti-copy and security code and these have to be emulated if you want commercial code to run unmodified.

Then there is the small matter of timing. The code running in the emulator might well check to see how long an instruction took as judged by the way other peripherals change state. Matt Goodbolt's article describes how attention to timing was all-important for most software protection - read the article for the fine detail.

Of course, a machine is a lot more than just its CPU and we are promised more about the screen and peripheral emulation in a future part. 

 

BBCMICROelite

 

You can try the emulation out at jsbeeb and once you have it running you can use all the BBC Micro commands and you need to know that F0 is F10, the Break Key is F12 and the "star" key is on the 2 key or the @ key. There is a disk image supplied with one of the most famous games on the BBC Micro - Elite. To run it enter *Elite3 and follow the instructions. 

Of course you could always download the code from GitHub and install it on your own server. 

Banner


Google Gets To Keep Chrome
03/09/2025

Despite realizing and ruling that Google was and is a monopoly in search and advertising, Judge Amit Mehta has decided that Google can keep control of one of the biggest tools in maintaining that [ ... ]



System Initiative Releases AI Infrastructure Automation Platform
01/09/2025

System Initiative has released an AI-native infrastructure automation platform. The company says the platform means engineering teams can work directly with AI agents that not only understand every de [ ... ]


More News

 

pico book

 

Comments




or email your comment to: comments@i-programmer.info

 

<ASIN:0130031615>

Last Updated ( Sunday, 04 December 2016 )