Christopher Dewhurst, the Drag ‘n Drop Publications editor, has released an excellent compilation of 55 BBC Micro Books, all together on one CD ROM.
For any RISC OS user who wants to have a go at BASIC programming these are an essential buy. Although biased towards the BBC Micro, quite a few of the programs will run on current RISC OS machines, or can be edited to do so quite simply. Some of the subjects covered in the books and programs are:
- Graphic programming
- Sound and Music (many fail unless modified)
- Machine/Assembly code
For those books that include or cover machine code programming, it should be remembered that these are for earlier machines (the Acorn Electron and BBC Micro). These machines used an 8-bit 6502 CPU, which is altogether different to the 32-bit ARM CPU used in RISC OS computers. It may be possible for some readers to be able to translate or rewrite the 6502 assembly language into ARM assembly language, but that won’t be a task for beginners.
The CD ROM Books
The books can be read using a good choice of software – as below – although not all formats are available:
EasiWriter is an excellent tool for extracting a piece of code and turning it into a BASIC file. This can be done with the HTML versions, but more care has to be taken because erroneous characters can cause odd results when the program is run.
CD ROM Programs
All of the books come complete with programs – although not all are on the CD ROM with the correct BASIC (&ffb) filetype. Those filetyped as BASIC can be run directly, but for others the filetypes need to be changed. This can be done en masse, but bear in mind an error – or worse still a machine crash – may occur if the original program is not actually BASIC. It is probably safer to refer to the book text associated with a particular program to see what type of file you are dealing with. An example would be a data file (&ffd) – setting one of these to BASIC may cause some nasty surprises if run, because they can contain just about anything.
With any book nothing is perfect, and the accuracy of the content relies on the author’s dedication and their proofreaders – and the same is true here. Some books contain few errors, but some may be significant – so you need to watch out for these. A common example is the confusion between the number 1 and lower-case letter l. A simple error routine pointing to a specific line number will indicate which line of the program is at fault.
Some programs have filenames relating directly to a specific page in its associated book, but this is not always the case, which can make finding the relevant text tedious.
Many of the games (e.g. Best of PCW Software) won’t run on fast ARM machines without modification, and any that do may need slowing down. Some appear to cause the hardware to malfunction, in which case rebooting the machine is often the simplest and quickest solution. A significant number of programs contain the dreaded GOTO statement(s) making them hard to modify.
For me it is a bonus that many of the books cover graphics programming. For example the Drawing and Plotting chapter in BBC Micro Graphics and Sound is an excellent guide to understanding the processes of drawing geometric shapes, and includes the essential trigonometric functions sine and cosine.
My Raspberry Pi is connected to a wide screen, high resolution monitor, so I need programs that work at a high resolution. It is simple to substitute the default mode (e.g. MODE 1) in the examples to MODE MODE, forcing the program to operate at the screen resolution you are generally using. Similarly, adjusting the X and Y values found in the programs to those suitable for your preferred resolution, and editing the shape radius/diameter to cope with the extra pixels, you can ensure the graphics fill the entire screen. A well written program should cope with these changes.
Another aspect is the colour rendering – with high resolution monitors operating at sixteen million colours, more modern commands can be used:
- Set text colour: COLOUR OF r,g,b
- Set text background colour: COLOUR ON r,g,b
- Set graphic colour: GCOL OF r,g,b
- Set graphic background colour: GCOL ON r,g,b
Where in all of these, r,g,b represents the amount of red, green and blue respectively (with a maximum of 256 levels, from 0 to 255).
Program delays using the typical FOR and NEXT loop run so quickly on modern machines that it almost seems as though they are ignored. Remember, these programs were written for the Acorn BBC Micro which was incredibly slow compared with the modern ARM machines like the Raspberry Pi – so a good solution is to substitute such loops with something like:
Z = INKEY(100)
This would give a one second delay, and also provide the option of moving on by tapping a key.
With the caveats mentioned above many programs can be made to run on Raspberry Pi computers, though I cannot recommend running the programs on ARMX6 platforms. Apparent delays before programs are run and after exiting them can be frustrating, and I believe are due to the way video is handled in hardware.
As a final comment this CD ROM release is definitely worth the £12.00, plus £1.00 postage and packing.