I got a ZX Spectrum +2A a few months before coming to Australia. That was my first computer in 1989, and by 2016 I wanted to get a unit back, so that I could get into some tinkering and old-school gaming and programming.

A ZX Spectrum +2A

However, pretty much the second time I was pulling it off the box, I decided to move countries. I didn’t want to risk it and I decided that the Spectrum wasn’t going to come with me in the plane, so I gave it to my brother.

And, fast forward to today, I recently got a similar unit (a +2, grey case) and a Commodore 64. I am not going to write about them, or post pictures –I have done it on Mastodon–, but rather about what I want to get from them.

With 8-Bit computers, the user must always learn some programming; even for the most basic usage of the computer they would have to deal with a BASIC interpreter to some extent.

+2A Menu+3 Basic Listing +3 Result

Nevertheless, a BASIC programmer would hit a wall when trying to emulate the programmers of the best games available: BASIC is not enough for that and Assembly is the way to go. To write programs in Assembly, one has to know the structure of the memory, what positions controlled the screen, the sound chips, and so on. Those things that could be accessed and controlled just by writing numbers in specific positions, would give the programmer all that they needed in order to to achieve their goals. An 8-bit computer programmer, when writing Assembly, programs the machine.

On the other hand, computers nowadays are extremely hard to control entirely by oneself. Programmers usually interface with the Operating System in terms of accessing the computer’s resources, and thus the complexity of accessing devices is hidden behind system calls. Even if one dares to program Assembly routines or programs, those must adhere to the rules imposed by the Operating System’s Kernel when accessing the various devices. We can say that, today, an application programmer programs the Operating System instead the computer –at least, most of the times.

There is a lot of educational value, then, in owning these computers and trying to write software for them. Either if they are just demos, or small games, writing Assembly programs for 8-Bit computers would force the programmer to understand the hardware, the timings, the interruptions and the dangers of using the memory without much else.

That is one of the things I want to get.

The other one is learning to fix them and keeping them in shape, which I will cover in other posts.


Comment on this post on Mastodon, or write to the email at the bottom of the page