Kevin's Research Blog

BBC Micro: Tapes

I feel that I am just a tad too young to have been around during the glory days of when computer software came on a standard audio cassette tape. I did see one person while I was growing up briefly using a tape recorder with his TI-80 I believe it was, but I never had the chance to really experience it first hand. I do believe the early Apple ][ computers did have cassette support, and some software was shipped on it. However, the hand me down Apple ][+ I received came with a standard Disk II Interface card, and many wonderful 5.25" floppy disks with a ton of software. In fact, in terms of the 6502/Z80 micro days, the computer from that era that I was exposed to the most was in fact the Apple // class of computers. My elementary school also had plenty of them, as well as a program I later attended. They were rather popular throughout my childhood, despite me growing up in the late 80s, and into the 90s. Perhaps my schools were just dirt poor. I still remember the elementary school's first actual full multimedia computer in perhaps the early 90s was a Macintosh, equipped with a CD-ROM with a lot of multimedia software aimed at the children of that era. A year or so later, the school introduced a full Macintosh PC lab, or I think that was a later school I attended. I was rarely at the same school for more than a year or two, three tops... Anyways, onto less gloomy subjects...

Personal Microcomputer History

For this post, I will be using the popular BeebIt emulator for RISC-OS, as that is actually how I even first learned about this micro-computer in the first place. I was aware of the British Broadcasting Corporation, and a bit more through the Raspberry Pi and later Micro:Bit, but I had no idea they commissioned a micro-computer in the 80s. Prior to the BBC Micro and the rest of it series, I was aware of the popular Commodore 64, but oddly given it's popularity, I've never seen one in person. I did purpose the Commodore 64 Mini console as a curiosity, and have tried using various emulators. I also knew of the TI-80, and believe I may have actually owned one at one point growing up, but I think I lacked a lot of the needed equipment for saving and loading, so I don't think I used it that much as a result. I knew of the Amiga, only through a second hand purpose of a program called Virtual Reality Studio which proudly advertised it's Amiga version on the box. Although, I've also never seen or even used an Amiga in person either. I did briefly try to emulate an Amiga, but could get very far. I did try a port of it's popular BASIC language through SDLBasic, but that's really it. I've also heard and used emulation of some older Atari computers, namely the Atari ST, only because it has an interesting cult following, with projects such as Atari FRee Operating System. It is a full mix of open source software into a modernish distro for the Atari ST. It has a lot of interesting features, and I highly recommend checking it out if you are interested in this sort of thing.

There were a few other popular Microcomputers during this era, and I apologize if I forgot to mention your favourite here. I cannot recall each one of them, and I haven't even tried most of them, not even in an emulated form. I wonder if there is an online museum of sorts similar to say Infinite Mac, but covers all the older microcomputers. It should also be more like a museum exhibit where it will also explain a bit of history, and perhaps provide access to a catalogue of the most popular software and games for it. It is always interesting to see how someone would have used a computer back then for typical office work, such as what the most popular word processor on it. I find that a lot of preservation sites only hold games, but nothing that truly shows how these machines were used. The sort of games on some of these older machines are more of a fun novelty to see how games may have looked back then. However, I do not hold any nostalgia for games of this era. I may download a couple, but what I am usually most interested in exploring is how various programs and how potential workflows worked back then. That is true preservation, as real human beings, our ancestors used these older micro-computers for office work, and also in the home to keep track of their personal lives. Not even many movies and TV shows of the era show many people even using micro-computers, and they were usually just delegated to a background shot or something. In some movies, if the plot demanded it, like in the popular movie Ghost, you would see the odd snippet of some sort of unknown and unmarked office computer, running some sort of unnamed software. I get that TV and movies aren't suppose to be historical preservation of a society long gone, but oddly, if you watch something modern... How many Apple and Microsoft logos can you spot now? Some TV shows and movies tend to hide it, or change the names to some sort of fake company, but it's interesting how computers seen in TV and movies has changed in our society over the past three or even four decades.

That got a tad off topic, onto the more technical stuff...

Using Tape Archives

As mentioned the emulator I will be using is the one in RISC-OS called BeebIt. If there is one problem I've noticed with it, is that it cannot open tape archives which have been gzipped, which seem very common for the UEF format. To make matters even more tedious, I do not currently have a gzip program for RISC-OS, so I needed to do all the decompression on my Linux PC. I feel that perhaps most other popular BBC Micro emulators might natively support gzip tapes, which is why this is the format for these downloads. I have heard that RISC-OS does use this same zlib compression with it's !Squash program, but it requires a special header, and so I was unable to use that program to depression it.

With the tapes decompressed, using them with the BeebIt emulator is rather trivial. It can be emulated with a floppy disk or not, if you choose not to use the DFS ROM, then the PAGE will be set correctly to &0E00, as a lot of older tape software might require the PAGE be set to this in order to run properly. To place the virtual tape into the recorder, you need to open the Configure->Drives box and drag the tape file into the appropriate box. Once you boot, there doesn't seem to be a way to just Shift-Break the tape to auto-boot. Instead, unless otherwise states, the easiest way to start a tape-based program is to run CHAIN"". This will start the first program it finds on the tape.

One interesting aspect of tape storage, is that unlike a disc, it cannot just randomly seek to another place to write some data, such as a file allocation table. All data on a tape is entirely read in sequence. A direct result of this, is that the filename for each program and it's information is stored right before it's actual data. While it is possible to use the *CAT command on a tape, it will take forever, or rather a long time to scan through the entire tape to write out all the files it finds. This command is more so handy if say you don't have a written index from the creator of the tape, or lost your own written index of a personally written tape. From what I've been reading, is that a person from the era using such a tape storage device should be noting the time dial on the cassette recorder itself each time they decide to write and then later read a program. This can allow the user to fast forward the tape themselves to the needed place on the cassette, rather than having the computer play through it all.

I've read a common thing to do with personal cassette tapes was to start the counter at 0 from the beginning of the tape itself. Then to write each program to say every 10 or 20 notches. This gap might at first seem like a waste of space, but then place consider if you ever need to update a program or document on the tape? If you leave no space after each file, it will begin to overwrite the file just after it, causing data loss. Tapes from magazines and commercial outlets I assume were all packed tight, and left no gaps between the programs to optimize as much space as possible.

If you know the filename you want to load into an emulator, unfortunately, emulators do not provide any way to set the counter on the recorder, or at least BeebIt doesn't. This means to load a file at a later point on a cassette, it will first need to be rewound if the file is located before the current location. If you just ran *CAT then you'll be at the end of the tape and will need to rewind it to the beginning. Once it's rewound, you can then do a CHAIN "MYAPP", in which it will then begin Searching... until I find a file on the cassette with that name, then will begin to load it. This can take a fair amount of time, and I'd imagine on real hardware, it would have been a great time to grab that cup of tea. An interesting effect of having each file sequentially like this with the filenames preceding the file data, is that more than one file can have the same name. It will only load the first one first, but if you do another load after that without rewinding, it will load the second file with the same name. I've seen at least one cassette I downloaded do this.

Magazine Cassettes

By far, the most interesting cassettes you can try are the Acorn User ones, and some from other magazine outlets. These tend to showcase multiple actually interesting demonstrations, and actively talks about the micro-computer itself. Most of them also have an interesting ability, to copy itself to a disc, with an included program TTOD, otherwise known as Transfer TO Disc. As the software on these magazine cassettes tend to not load sequentially, as they are a ton of small demos, software, and games, it can be easier to use from a classic disc over a cassette tape.

Commercial Cassettes

I'm not sure if any of the ones I tried were actually commercial software back in the day or not, but I am going to assume at least some of these were.

One interesting thing about commercial cassettes is that they were made to be used in a sequential method, so the user never had to rewind it back during their session. Usually the first program to load and run from the cassette tape was an introduction program, which shows a title of sorts, then explains the application itself. Some of them begin to load their actual program at this point, and others expect the user to provide some answers to a few questions before moving forward. When there was a cassette loading screen, which usually took a lot longer than your typical disc loading screens, it usually tried to display something interesting or useful.

An Interesting Relic

Nowadays, we no longer use audio cassettes for our personal computer storage or software. While there are industrial cassettes still being used in the world, these are for very specific computers, and usually to perform mass storage backups. Most everyday people are never exposed to cassette tapes in any capacity these days. I don't even think I've seen a VHS for at least 5 years or more. Even the modern optical media is seeing more and more of a decline in favour of solid state storage.

It was interesting look at how tapes worked on the BBC Micro, and I do plan on playing through the rest of the tapes I downloaded to see what mysteries they might hold... Like literally, some of them have names that I don't even recognize, but looked interesting to check out.

#bbcmicro #retro