First Steps

September 1982. That was the month I bought my treasured Sinclair ZX81 computer. After a period of being mail-order only, the machine had launched into retail and was stocked by WHSmith in the UK.  I had saved the few pennies that came my way, sold my snooker table and bought it as soon as it was in financial range.  Of course the extra memory in the form of the infamously wobbly 16K RAM pack was out of range for the moment but I was finally to have a computer of my own.

Having a computer of one’s own was the goal for many kids at that time.  At least, those with even slightly geeky tendencies.  The novelty of controlling graphics on the TV screen had passed with the myriad of Pong home consoles, the Atari VCS and its competitors and the new wish was to create, to get a degree of control, to get lots of free games!  Somehow, the new wave of young computing evangelists knew that the computer was the future made real and tomorrow couldn’t start soon enough for us.

So, there I was with my ZX81 connected to a tape deck and so attempt to save and restore programs, a simply wonderful guide to programming in the form of the spiral bound book “ZX81 BASIC Programming” that came with the computer and the world was my oyster.  That’s when I discovered that there isn’t really a great deal you can do in BASIC with 1K of memory on a ZX81. A Space Invaders clone? Not going to happen. Lunar Lander? Nope. I worked my way through the programming book and tried out the snippets within but I needed more.

In the end, my early experiments were small utility tasks that may not seem useful but that didn’t really matter.  At the time there seemed to be a desperate need to convert from our Gregorian calendar to the Julian date, work out the Fibonacci Sequence or play Towers of Hanoi.  These programs would usually be taken from magazine type-in listings submitted no doubt by other new computer owners trying to develop their own programming skills and proud of their results.

Your Computer magazine.At the time there were a number of magazines dedicated to the Sinclair machines but there was one superb multi-format magazine that a school friend showed to me – Your Computer magazine.  Every month the magazine would probably have a review of some new wonder computer but would also have a number of type-in listings for various exotic machines such as the Commodore Vic-20, Acorn Atom, Commodore PET, Tandy TRS-80……

When I first saw a copy of Your Computer, it contained a type-in game listing for a ZX81 with 1K of RAM (yes, that’s for me!) and was in something exotic called “machine code”.  The game was called B-52 Bomber and was of a genre quite popular for type-ins back then but not at all politically correct in the present day.  The aim was to clear a cityscape with your limited bombs so that your damaged bomber, losing altitude, could land safely on newly flattened land, thus preserving your own life at the cost of thousands of civilians.  Hardly heroic, but you could convince yourself that the city was already deserted.

ZX81_B52The game listing consisted of little more than numbers to type in but get one of them wrong and the program would undoubtedly crash the computer.  Such is the nature of machine code, the native language of the computer, on a vintage micro.  I sat and copied out all the numbers to a sheet of paper that one lunchtime in September 1982 and after school that evening sat at my ZX81 and typed them all in.  Lo and behold, the game ran perfectly and all of my copied numbers had been correct.

I can’t remember whether I managed to save the program successfully or not. The ZX81 was always likely to fail in loading its own saved programs.  I also can’t remember how long I played the game.  It probably wasn’t all that long but then that wasn’t the point.  The point was to enter instructions into the machine that would allow it to perform  wonders that it was not able to do moments before.  We novice computer software authors would learn along the way.  I had just learnt that I needed to get more memory and that I needed to learn machine language.