Archive for June, 2012

Shop Demo Software Shenanigans

Saturday, June 9th, 2012

Back in the 1980s, a friend of mine had some serious phun with BBC model B’s in stores that also sold software.

He would take a box of 5.25 inch floppy disks, all but a few of which was labelled “Watford Electronics Compatibility checker”. (Watford Electronics were a third-party supplier of peripherals; they made an improved disk system for the BBC, better than but slightly incompatible with the “official” Acorn upgrade and some software, especially games, would not work with it.)

So my friend would ask to “check” if a game would be “compatible” with his Watford disk system. Inserting the “compatibility checker” disk into the drive of a BBC computer and pressing shift+BREAK produced a fancy screen with a progress indicator; which then asked for the game disk to be inserted, thrashed the drive a bit, then asked for the checker disk again. After a series of such disk swaps came the dreaded announcement that the game was not compatible with the WE DFS. He would return the compatibility checking disk to the back of the box, and ask the shop assistant if he could compatibility-check another game. While the assistant was away fetching it, my friend whipped out the compatibility-checking disk from the front of the box (nobody ever noticed this blatant switch, which was done with no sleight-of-hand) and booted it up.

Again the compatibility-checking process would require several disk swaps, and again it would fail. And my friend would wander off, dejected, before the shop assistant could work out what had just happened right under their nose.

What had happened, of course, was that the “compatibility checker” disk contained a program that loaded itself into RAM, then copied the game disk sector-by-sector first to RAM, then to the “checker” disk (overwriting the original copy of itself into the bargain, but it was already running from RAM, and each of several disks in the box contained a copy of the same software.) As there was only 32KB of RAM and some of that was eaten up by the OS, copying a 100KB disk (yes, you read that right: 102 400 bytes) had to be done in stages.