2 minute read

Finally!!! I have set up Robo-1 on GitHub - I’ve created a new repo beeb-typeins where I’ll try and share anything I’ve pulled from aging cassettes, that had been dutifully typed in from magazines and saved for posterity. Didn’t quite have this in mind when I did that, all those years ago!

Robo-1 in your browser

Robo-1 in a Microvitex monitor

Simply fire up Robo-1 in your browser, made possible c/o the amazing work of Matt Godbolt on jsbeeb and those that came before such as Sarah Walker’s C B-Em emulator.

The source code is hosted in GitHub, in raw ASCII text form (line numbers stripped). jsbeeb is then started up to read the source code directly from GitHub (via a raw source link). The code is effectively typed in at the command line - as if AUTO had been typed beforehand, via the loadBasic URL parameter. The parameters autorun and embed are used to then start the code, and to make it look prettier in a web page, respectively.

The code needs to load from cassette at PAGE=&0E00, otherwise LOMEM sneaks above &3000 and MODE 2 is no longer available. I’ve struggled to get jsbeeb to go straight to *TAPE with a lower PAGE value, so lazy workaround for jsbeeb is to get it to emulate a BBC Master… URL argument is model=Master.

Where’s it been?

Well, alas Computer & Video Games missed part of the listing out when the printed the magazine all those years ago, and rather then reprint the listing, offered to send a copy to anyone who sent in a stamped, self-addressed envelope.

Notes on the code

This game was written very early in my computing career… back in school when I’d just started learning how to code BBC BASIC, so it’s rather simple - managed to use PROC rather than GOSUB but there are still some GOTOs in there…

The graphics were before I knew about assembler and sprites, so multiple custom characters had to be defined instead - as they are single colour, multiple passes were required for Robo-1. I ran out of steam for the ghost and the money. You can see that Atic Atac had recently been published - I loved that game, so there’s a minor homage with the above view of the room.

Sound effects were at the same level of complexity - low! A rather clunky 2001 extract to start with, and a beep to let you know Robo-1 has moved… at least a slightly alarming siren let you know when you’ve run out of energy and failed.

Strangely enough, when rooting around I found an earlier version of the code (check the history of Robo-1.txt); I thought jsbeeb had gone loopy - no, it was me. The older version didn’t have audio or a countdown timer (“energy bar”).

The collision detection is rudimentary - check colour of pixel to top right of Robo-1; if yellow - congratulations! Collect the money. Note that yellow is only used (outside Robo-1) for the money bags.

Final thought on the game is that, there isn’t a “win” condition - just a high-score, and an energy timer to give you a challenge. So a bit rudimentary then - but, I was learning, and just happy to have some moving graphics!

Transfer process

A mildly refurbished Sony Walkman and a quickly hacked BBC BASIC tape2disc copier pulled all the data from the tape; the magic of a GOTEK gave me an ADFS disc target - which then was opened via the Mac ADFS Explorer.

Much fettling of MarkDown and one GitHub repo later, I was done :)