I remember those days when a childhood friend and I, in the mid-nineties, were writing a computer adventure game for the ZX Spectrum.
The development environment was a notebook and a pen. We drew levels on paper, first drew sprites in a squared notebook, and then entered them into the computer as bit masks. The Spectrum had no operating system at all; when switched on, the computer immediately went into the command interpretation mode of the BASIC language, where you could enter the program line by line.
The first disappointment was that the Spectrum had fairly little RAM: just 48 KB. And if you also subtract video memory (about 6 KB), system variables (about 2 KB), and the character generator (about 1 KB), then even less than 40 KB remains. The program was stored in memory as a certain bytecode; I mean that a single command was encoded in one or two bytes. I distinctly remember sitting there and typing in levels, and after yet another line of code my character generator crashed: the program had reached such a size that the bytecode started overwriting the character generator. That was when we realized we weren’t going to write anything serious in BASIC. We knew that the assembly language for the Z80 microprocessor existed, but we had absolutely no idea how it worked. Let me remind you that this was the mid-90s; there was no internet with Wikipedia yet. That is, nobody had the internet, though of course in general it existed somewhere. But Wikipedia definitely didn’t exist anywhere.
And then my friend and I found out that there was a special book, How to Write a Game in Assembly for the ZX Spectrum. Nobody had any money back then, and my friend asked his mom for money to buy a T-shirt, and we secretly went and bought a programming book with that money. Times were harsh; democracy was already marching full speed across Ukraine, so admitting that you had spent money not on food, not on clothes, but on a book was a dangerous thing to do.
I’ll repeat: there was no internet, and there weren’t very many books either. So in that state of information hunger, books were read more than once.
One of the first sensations of writing a game in assembly compared with BASIC was that everything worked much faster and, naturally, took up less memory. Unfortunately, programming in assembly requires a lot of knowledge and perseverance; not everything was fully clear, and because of that development went slowly. And then the computer broke altogether, and that was the end of my career as a Spectrum programmer. The game remained unfinished.
Back then we squeezed the maximum out of the few sources of information we had. But now I look around and everyone has computers with internet, there are lots of books, and lots of forums where they’ll quickly answer the questions you need answered, too, yet young people are still in some kind of stupor. For an engineer, the internet is like an excavator for a digger. Over these decades, the informatization of our country has grown by orders of magnitude. Everything is already there. The only obstacles to success left are internal ones.
I’d do some programming on the Spectrum now, but you can’t get the years back.