Wednesday 28 September 2022

8-bit beliefs

ZX Spectrum and Commodore 64 were all the rage. Information was not easily available, was in the wrong language, and most importantly I was a kid and had little patience for learning anything.


After writing the PRINT "Hello" example from ZX Spectrum manual, I thought the "Hello" on screen was some kind of intelligent response on part of the computer. I think I had a goosebumps moment, and reported this finding to my dad, who to my embarrassment corrected me.

I don't know why I was so sure all BASIC languages were same. I had gained some reputation as a programmer, getting things move on Spectrum screen with key presses. However, when I needed to demonstrate this ability on a friend's Commodore 64, I quickly found out it doesn't understand the PRINT AT x,y construct or the INKEY$ statement, both central to the program. I guess my reputation diminished at that point.

We also enthused about a MikroBITTI magazine article on writing adventure games. I think I knew better already, but somehow we hyped ourselves into believing the descriptions inside the PRINT statements would translate into fantastic animated graphics, sword fights etc. Next day my friend informed me with sage authority that this would not in fact happen.

Although I wrote a few type-in games from magazines, typing was infinitely boring. I had a habit of RUNning the game before the listing was complete, in order to see at least something happening on the screen, as if "half a game" could already be experienced. In some cases something interesting might happen, but it could just as well result in a crash, losing even the little amount that had been typed.

There was a time when I thought the English alphabet is ordered QWERTYUIOPASDFGHJKLZXCVBNM. Because why else would the keyboards be in this order?

Briefly I also had this idea that all computers came from "England", where ever that might be. Soon I knew they also came from USA and Japan. For years, Clive Sinclair was the only "computer genius" I knew by name, and I also thought Sinclair QL must be some kind of ultimate super computer. I guess Jack Tramiel was next but I had less definite idea of his achievements.

Slightly later:

As mentioned, I could do simple BASIC games with moving graphics. However, these tended to be jerky and flickering, based on PRINT AT y,x;"@" and LET x=x+1 statements. This way game elements moved one character at time.

At school, perhaps even during math class, I came up with an innovation: what if I used LET x=x+0.1 instead?! Surely the graphics would move smoothly! I could barely concentrate on the classes at all, and nearly ran to home just to test this hypothesis. I was disappointed. Yes, the character moved more slowly, but still at 8-pixel chunks.

Machine Code was really the final frontier. The ZX Spectrum manual listed all the Z80 Machine Code opcodes, but I couldn't find anything about what they do and how they are fed into the computer. I didn't see the connection between these and the way some BASIC listings used READ/POKE to fill in memory space with machine code.

Obviously they could not be typed directly into a listing, because the Spectrum prevents from typing nonsense. I tried creatively adding these commands after REM statements, because that at least was possible. Of course, nothing happened.

Sunday 18 September 2022

Anatomy of a Crash

Lately, I have been a little silent about my electric kickbike.

I always felt that since I don't drive drunk in the center of the city in the middle of Friday night, I would be immune to crashing. Not so!

My other pet theory said if I would crash it would likely be a collision with one of those ultra-fast cyclists. Not so either!

All happened in broad daylight through my own actions.

Some background. I had driven for more than 25 kilometers that day, experimenting with maximum range. After loading the battery half-full and getting a lift I headed back home, looking to drive some 10+ kilometers still.

The Grand Tour of Summer 2022

At that point I had my fill of driving for the day and had become tired and a little irritated. I just wanted to get back home quickly.

The crash occurred in middle of a central park, on non-paved roads with trees close by. It is something I'm not that experienced with, although I had survived the area earlier that day going the other direction. I diligently slowed down whenever there were other road users about, but when the coast was clear I often went for the 25km/h.

The story I have been telling since then went something like this:

Suddenly, the road profile changed rapidly from flat to a central bulge. I found myself veering towards the woods and could not brake efficiently enough. Something told me I should not try turning towards the middle of the path. Before halting, I hesitated and kind of semi-jumped off the board, letting the kickbike go over.

The morning of that day, not the actual crash site

I may have reduced the speed to possibly 15km/h or even less. Obviously when my feet hit the ground I could not keep balance, I rolled and fell on my left side, the shoulder taking the brunt of the impact. As my head lolled it took a bit of a knock too.

After swearing loudly and feeling my head for any blood, of which I found none, I lifted the kickbike, eyeballed it for any major damage and started immediately driving again. My two first thoughts were the fairly irrelevant "luckily no one saw this" and the more appropriate "why the fuck I didn't buy a helmet".

I soon felt it's insane to continue and needed to sit down, worrying about possible concussion. Taking stock of the situation, I realized my shoulder is very hurt, but that I could still navigate to home. After reaching there, I lied down and felt my collar bone and shoulder. After some Googling and a phone call it was off to the doctor. They confirmed the suspicion but fortunately the fracture was not major. A few weeks with an arm sling and a total of 6 weeks of recuperation would do.

It is somewhat fortunate the kickbike did not become damaged, although if I could now make a trade I would have preferred to have stayed healthy.

For a month I would not drive at all, and especially did not drive my own kickbike as I absolutely could not carry it in the stairs. So, as a punishment I also lost a lot of good driving weather.

Six weeks later, returning to the site

The evil road, revisited in Autumn

After having the experience I did reflect on it a lot, alternatively blaming myself and yet trying to find blame in the environment.

When I returned to the scene six weeks later, I couldn't really find evidence of that malevolent piece of road that threw me off. I couldn't really even find the exact crash site. Going backwards and forwards I couldn't see much wrong with the surface. To be honest the paths I had navigated in the morning of that day looked far more tricky.

All I can now say is that the path edges were perhaps a little vague. I may have already been sort of off-road when I noticed something is wrong. Or, there was some fairly minor anomaly in the road that could have been easily avoided had I not insisted on driving so near the edge.

Or I was just tired and did not pay attention to the path that looked easy compared to the other more narrow, twisting paths.

I have also thought I could have handled the situation better. But I maybe did the right thing after all, at least in braking first and letting the kickbike take its course, rather than trying to rapidly change the trajectory of a 100kg+ system in full speed. By not jumping off I might have avoided the fall, but it's hard to say what might have happened then.

I finally did get the helmet, though.