Inside the Bush Internet Surf Set
What can you do with a £20 RISC OS computer? Andrew Flegg continues his investigations
Last time we looked at the Bush Internet Surf Set: a web browser in a set-top box which, for less than twenty pounds, gives you the ability to use NCFresco on your telly. In this article, we are going to look at turning this funky little box into a fully-functioning RISC OS machine, using an Iomega Zip drive and a "donor" RISC OS 3.7 box. We'll also investigate some of the hidden features of the box, including how to change the ISP and homepage.
Playing with the box
Acorn machines since the BBC have used Shift-Break to invert the default boot procedure: on a BBC, this usually meant running the !Boot file on the current floppy; on a RISC OS machine with a full !Boot structure, Shift-Break will actually bring the machine up in a minimal configuration. So the first thing to try when wanting to fiddle with these machines is to try holding down Shift whilst turning it on. Not really very surprisingly, it works! So, the first step is to hold down "Shift" on the remote control whilst plugging the unit into the mains. You'll still have to press the yellow "Internet" button to enable the video output and the default cursor position was off the top of my TV, however pressing "Enter" a few times will eventually bring up a flashing cursor next to an asterisk:
Here we can now do all the things that we used to do on Beebs: type "
A useful thing to remember here is the control codes to change the screen mode: after turning the box on and having the cursor off the top of the screen you can use Ctrl-V followed by Ctrl-O to change to mode 12, which should be a little easier to read on a TV set.
We can also use standard commands such as
Several interesting things stick out from the above list, including Zip drivers; Easter Eggs and ISP details configuration. But how do we access them? Some of the cool things which can be done with the box are below, along with a description of how and why they work. However, first things first, though: getting the box into a usable state:
"Easter Eggs" are little secrets that systems designers purposely place in the code to either access hidden functionality or as their own mark on a product. The file Resources.PassFilter.Config seems to contain a list of keys, URLs to activate on and commands to run. All the URLs are the same:
Unfortunately, however, typing "@ISPCAccessPassword" on the main page doesn't seem to do anything; however "ISPCAccessPassword" also shows up in Resources.NVRAM.Tags, and it turns out that the @-prefix is an indicator to not use that string directly, but the value locked away in the non-volatile RAM.
Changing the ISP
As mentioned above, the password to change the ISP is contained in the non-volatile (permanent) RAM. Examining !Boot.Utils.BootZip reveals how to read a value:
A little bit of experimentation is required to determine the API, after which we find the following code will print the password (type it from a BASIC prompt, as outlined above):
On my IBX-100, this gives a reply of 39d8sk43k2. Restarting the box normally allows this to be entered at the main screen and it does take you into the ISP configuration system, which consists of three pages:
You can change any or all of the above options: for example, I've changed the home page on mine to a customised mini-portal, but others have changed the ISP to a SurfTime (or similar) account allowing unmetered browsing through the box.
Enabling the Zip drive
The ROM contains a version of Argo's IZipFS filing system and driver for Iomega's 100MB parallel port Zip drive, so will only recognise 100MB disks, formatted with Argo's tool. These drives may now be a little hard to get hold of if you haven't already got one, however many are still available second hand. !Boot.!Run runs !Boot.Utils.BootZip and then, later, contains the line:
Which says that if there's a file called "Auto" in the root directory of the Zip drive, run it. BootZip is where the drivers are loaded: the NVRAM-held value of "PrinterCode" is read and, if it's 999 then the two modules in !Boot.Modules are loaded.
Setting the printer code to 999 is easy, as that's exactly what !Boot.Utils.EnableZip does - so either run it directly or use the Easter Egg shortcut above: type "zipdebugging" at the main "World Wide Web" and "Options" page.
Once we've got the Zip drive up and running we can either take a copy of "Resources:$" back to a RISC OS machine for easier fiddling, or start copying stuff from another RISC OS machine to better use the box. Here, for example, is an Obey file I used during debugging - simply place it in the root directory of a Zip disk and call it Auto:
You could also
Getting to the Desktop
If you've got a RISC OS 3.7 machine to act as a donor then it is possible to get a fully functioning desktop on your TV. In the related files Zip, you'll find the following directory structure:
After unpacking the files onto a RISC OS 3.7 (others may work), simply run the !CopyROS37 Obey file and the appropriate bits will be copied into the appropriate directories. Then, Auto and Magic should be copied onto the root directory of an Argo-formatted Zip disk. Then, if the Zip drive is connected and enabled when the box is powered-up you'll be left with a supervisor prompt at which typing
Using the box...
Although the box doesn't have any sound hardware, the "suggested" module set includes the sound drivers as most games assume they'll be available. But now the machine's up and running at the desktop anything which runs on an A7000 should run on this, including most desktop applications; games etc. A quick list includes:
...but much, much more should be possible. It's certainly strange to be playing old BBC games on a telly again, but on a RISC OS-based set-top box running a BBC emulator!
Areas for future investigation
Although we've learnt a lot about what the box can do, there's still a lot more to investigate:
Some of these have already been discussed on comp.sys.acorn.misc, comp.sys.acorn.hardware and Alan Cox's diary. But there are still lots of unanswered questions about this flexible, cheap box - perhaps you can find the answers! ;-)
Andrew Flegg <firstname.lastname@example.org>