Memories of Computing

Memories of Computing: late 70’s to mid-80s (8-bit era)

The first time I ever programmed a computer was at my secondary school in about 1979. That’s not to say it was the first time I had ever been in the presence of one, because and older relative had taken me to work one day at the offices of a major ice cream company and demonstrated the mainframe system for which he was responsible and proudly printed out an ascii art Asterix for me as a keepsake. This experience whetted my appetite to learn more, but it was still the world where a digital watch was an exotic device and computers were hard to come by, so when my school acquired a Commodore Pet, I was one of the first to sign up to use it.

The Microsoft BASIC was perhaps a tad primitive by modern standards and a disturbingly large number of mysterious PEEKs and POKEs were needed to achieve even the simplest of tasks, but those first few lines of code I typed in opened a new world. It was a world which made sense to me, unlike the rather unpredictable and disordered one in which I was forced to live most of the time through biological necessity.

Like many others of that early home computing era, I believe my first program invited the user to enter their name and then said hello to them several hundred times. The words scrolled down the green screen in, as I recall, a pleasingly futuristic blur. And so, I was hooked. Alas, showing me how to achieve such an impressive feat of software engineering represented the sum-total of technical expertise among the teaching staff of the school and so I was pretty much on my own after that, save for the sage advice from my fellow pupils which mostly comprised of theories about the rumoured “POKE of death” which would potentially fry some part of the innards of the computer with a single line of BASIC code (and which I later discovered had more truth to it than most urban legends).

Some months later, The Sunday newspaper magazine began to feature an advert for the Sinclair ZX80. I gazed longingly at it for weeks and weeks, regularly saving what meagre sums of money a teenage boy of the time might be able to scrape together in the hope of affording one. By the time I could afford it, the sleek white ZX80 had been superseded by the more compact and comparatively streamlined jet-black ZX81.

I had to then save again to expand the RAM from 1K to 16K via an expansion module which plugged into a slot at the back of the computer. Serious programming could now begin, as the 1K couldn’t even hold a screen’s worth of information. The dialect of BASIC which came with the Sinclair machines was, in my opinion, a tad more sophisticated than that of the Commodores of the same era, but they were slow. However, Sinclair computers lacked the dedicated tape recorder which came with the Commodores, which we used for saving programs and data (unless you had access to a prohibitively expensive floppy disk drive). On the ZX81, saving programs and data (which was effectively the same thing on that machine) was a stressful process where the user watched black waves squiggle up and down the screen as information was dumped onto a cassette tape; I believe programmers of all faiths and none would secretly to confess mentally praying for the info could be safely read back in… there was no way of verifying a save, you just had to hope.

When the school acquired a BBC micro the next year, many of us gathered together to marvel at the colour, the (still quite impressive, even now) sound and the “high-res” graphics. Such things were dreams to most of us when it came to the notion of ownership, as it was prohibitively expensive.

Fortunately, the ZX Spectrum galloped to the rescue, offering 48K, colour and even basic sound for a very affordable price. I still regard this as one of the cleverest of the early microcomputers in terms of design, flexibility, and value for money. Yes, Commodore replaced its excellent VIC 20 with the superior Commodore 64, but it was priced similarly to the BBC and was just too expensive for many of us.

My next 8-bit computer was going to be a BBC, but just as I was about to buy one, Amstrad launched the CPC 464 micro. I was seduced by its convenient 1-plug solution, servicing the monitor, computer and built-in tape drive.  While BBC BASIC was probably the superior, Amstrad interpreter built in several excellent facilities which interested the programming nerd.

However, most of the 8-bit computer were slow when running BASIC programs. It was fine for most things which didn’t require a lot of processor work – maybe a business application or a database. But anything too graphics-based or real-time was pushing your luck. The ZX81 was particularly slow. How slow, you ask? The machine had FAST and SLOW commands (if you needed to number crunch, you used FAST-mode to turn off the video output and allow the CPU to focus on the task in hand) but even then, it was still very possible to make a cup of tea during many sets of calculations.

That left only one option. Learn machine code. I taught myself Z80 machine code for the ZX81 as it was the only way of doing some things with any sense of speed. The back pages of the manual contained the assemble mnemonics alongside their matching decimal and hex codes. Machine code was directly POKEd into an area of memory and called with the USR function. The only safe way to work was by writing out your hex on paper first and then meticulously typing it in – if the machine code was wrong, it would crash the machine and all would be lost.

The ZX Spectrum and Amstrad CPC-464 also used the Z80 chip, which saved me time and effort, though I also learned 6502 machine code on the BBC micro (which was much more accommodating to the assembly language programmer). This all led to my first programming job (part-time) when I was in the 6th form – writing assembler for the Z80 chips in cash registers.

I’ve used many systems since those days, but I can honestly say the satisfaction I gained from challenge of the 8-bit era makes them my favourites. I can still see elements of those primitive machine in the Windows 10 laptop on which I type these words.

Dane Bradley-Carter FIAP