Watch the Video
Loading Screens, and loading bars; it’s a question which plagued my mind for many years. Why, when loading games from audio tape or cassette software do many home computers display horizontal raster bars on screen in varying colours? Why don’t we have a picture of a little guy landing on the moon? WHY DO WE HAVE LOADING BANDS? Bars? Rasters? Lines? Loading Lines??! Whatever you want to call them?
If you’ve ever owned one of the more popular 8 bit home computers, and you had software on tape, then you’re almost certainly familiar with loading bands, loading lines or raster bars, whatever you choose to call them.
These multi coloured bands would grace our home television screens as data streamed in at a baud rate similar to that of early dial up modems, and for a kid in the ’80s, these multi coloured flashing bands were pretty awe inspiring just in themselves, but what exactly do these lines mean?
Well, first we need to understand how the data is stored. Software is encoded on tape as a sequence of pulses, the same as would transmit data to Freeserve in the late 90s over your 56k modem. Since many 8 bit machines had only a rudimentary tape interface, data was recorded using an unusually simple and very reliable modulation, similar to pulse-width modulation but without a constant clock rate. These pulses of different widths (durations) represent 0s and 1s, which are interpreted by the ROM and CPU into usable code.
Because of the problems often faced with loading data from cassette, solutions were devised to keep the user informed their software was loading correctly. However not all computers graced their users with this feature, for example, the BBC Micro, Acorn and Dragon 32 would usually show a loading screen, but a lot of the time, no other loading cues were provided to reassure the anxious gamer.
The original source of these lines could be charted back to Clive Sinclair’s early machine, the ZX81. This early home computer did have loading bands, but in this case they were simply a quirk of the design. The cassette audio in used the same pin on the ULA chip as the display, hence an interference pattern would be displayed. Handily, the width of the bars on this interference pattern could actually be used to determine the correct volume for the tape output. A volume set too low, or too high could crash the loading process out as the machine struggled to either receive a signal strong enough or received a signal which was too distorted to be usable.
Sinclair’s later machine, the Spectrum adopted these bands as an official part of the loading routine, and in the case of this machine, these bands were intentional and hard coded into ROM. Slow and thick Cyan and Red bands would indicate searching, or the pilot signal for the data. Thinner Blue and Yellow bands indicate header and data blocks loading into memory. You can see this at the start of most software loads, where a header is received and displayed on screen straight away. This happens quickly as the header file is only about 15 bytes, and the Spectrum loads at roughly 1,300 bits per second, or 160 bytes. This rate varies, and the thinner the stripe, the higher the baud rate.
It’s actually possible to alter the border colours by modifying the parameters of many custom loaders and making the border flashing with multicoloured stripes to obtain a fancy border effect during the loading process. The centre of the screen can be used to display graphics, information of even games whilst loading.
Over on other machines such as the Commodore 64, and Amstrad CPC, the raster bars work a little differently…
If you load software on either of these machines, you may notice that some titles will load without any banding appearing at all, just like the Acorn machines.
However usually the loading band routines are added by the software coders themselves, and each publisher tended to have their own signature loader. Some software will load by changing the border colour for each data block loaded. Some will display an on screen counter, but most will use multi coloured bands, which were universally recognised from Sinclair users, and allowed easy manipulation of the screen in both terms of processing time and loading time, providing more time & cycles to load the software, rather than some fancy loading sequence.
The C64 also differs in that the cassette data sound isn’t played through your television’s speaker, making a loading routine even more important for signifying everything is a-ok. Of course, this allowed coders to utilise the 64’s brilliant SID chip and play music whilst loading, to ease the tedious time spent waiting for Daily Thompson’s Decathlon to spring to life. This was more of a necessity on the 64, as the original datasette would load at roughly 50 bytes per second, although in the later ’80s turbo tape software arrived, which allowed software to load a lot faster through improved decoding and compression methods.
If you’re wondering why the programmers never opted for vertical bars. The simple answer is simple; it would require precise screen timing, and this differs between NTSC and PAL. TV’s naturally scan from top to bottom, left to right, so plonking some arbitrary colours on screen whilst it refreshes is the natural choice. In the Commodore this can be done from a single memory address.
And so ends the tale of 8 bit raster bars.
Nostalgia Nerd is also known by the name Peter Leigh. They routinely make YouTube videos and then publish the scripts to those videos here. You can follow Nostalgia Nerd using the social links below.