Christmas and a trip down memory lane
Yes, it is that time of the year. Seeing my three little ones getting all excited about Santa’s imminent visit and the anticipation of Christmas brings back a lot of good memories. It is interesting to see how much technology has “invaded” the Christmas holidays — the kids watching on-demand TV and playing games on their tablets with my father-in-law ditching his beloved Sudoku books for a Sudoku app on his iPad this year.
I’m not going to wade into the debate about technology and gadgets during the Christmas holidays, but our traditional board games and card decks are definitely being brought out alongside the iPads.
As a kid I did a lot of sports, but I was also into computers from a very early age. I never thought of myself as a “geek”, but if you ask Santa he would most certainly say that I was one based on the presents he brought me over the years. I thought I would go a bit “off-piste” with this blog post and reflect, from a personal perspective, on how technology has evolved over the years since I got my first computer back in 1983.
Actually, it wasn’t Santa who brought me my first computer, instead I “inherited” it from one of my older cousins after Santa brought him a Commodore 64 back in 1982. His old computer, a Sinclair ZX81, was starting to collect dust in his drawer and thanks to my aunt, who clearly had noticed my geeky side, made sure I got it. It was 1983 and I was over the moon to have my own computer at the tender age of nine.
You may not be familiar with the ZX81, but with today’s measures its specification is quite entertaining — released in 1981 it came with a screen resolution of 32x24 characters, or 64x48 pixels in graphics mode, and 1KB RAM (Random Access Memory). It also came with OS Sinclair BASIC, which is how I first got exposed to programming. Sinclair BASIC was originally developed in 1979 to fit in the 4KB of ROM (Read Only Memory) available on the Sinclair ZX80, and evolved through the 8 KB ROM on the ZX81. Perhaps of little relevance these days, but I’m still amazed and truly impressed that they managed to write a language interpreter (a program that translates user input into machine language that the computer understands) in less than 8,192 characters to fit into an 8KB ROM.
The reason they used a 1KB RAM in the ZX81 was simply to keep costs down as memory was quite expensive — a cost that has decreased exponentially ever since. The logarithmic graph below, based on a cost analysis done by John C. McCallum, illustrates how the memory price has dropped from an astonishing £1,600/MB in 1983 to less than £0.003/MB in 2015.
Even if the ZX81 seems very boring in comparison with today’s computers it had me hooked and I spent many hours writing my own little games and routines, at least until Santa brought me my very own Commodore 64 for the Christmas of 1984. With 64KB RAM, 16 colours and 320x200 pixels screen resolution it was a real monster compared with the ZX81.
The C64 came with its own version of BASIC known as Commodore BASIC, which was licenced from Microsoft. Jack Tramiel, founder of Commodore International, revealed at a 25th Anniversary Celebration event in 2007 that he turned down Bill Gate’s offer of a $3 per unit licence and instead managed to secure a $25,000 perpetual licence. With over 12m units sold it turned out to be a very shrewd move.
I never got much into BASIC programming on the C64, instead I turned my attention to assembly programming starting to make simple games and demos learning new tricks from computer magazines and other C64 enthusiasts. It was also a time when classic game titles such as Ghost’n Goblins, Way of the Exploding Fist and Bubble Bobble were released. While programming was lots of fun I must admit that I also spent a fair bit of time with my TAC-2 joystick in my hand.
Santa brought me my next big gift in 1987, an Amiga 500, which came with 512KB memory, a colour palette of 4096, and a Motorola 68000 processor running at 7.09 MHz (PAL). Its OS, AmigaOS, had to be “kickstarted” from a floppy disk, but I only used it a handful of times as you didn’t really need an OS — at least that was the opinion of the legion of assembly programmers that set out to master the ins and outs of the Amiga hardware.
With no Internet and limited literature available I had to find other means to learn and share coding tricks. One way was to use a bulletin board system, or BBS. A BBS is a computer server running custom software that allows users to connect to the system using a terminal program. Once logged in, it was possible to upload and download software, read news, and exchange messages with other users.
The big difference compared with early websites was that instead of an URL you connected to a BBS by dialling a fixed phone number. Unless the BBS had multiple phone lines and modems it could only handle one concurrent user — talk about scalability challenges. Network speeds were nothing like these days either, but my 2400 Supra Modem (2400 bits per second) and later the 14.4K version served me well — thinking about the sound they made when connecting to a BBS still makes me smile. Nevertheless, it was a hugely popular way to share software and information although my parents weren’t particularly happy about the phone bills coming through the mailbox.
Another great way to share ideas and meet like-minded programmers was copy parties. I’m probably committing a cardinal sin by comparing copy parties in the late 80’ to today’s hackathons, but it would be the simplest way to try and explain what a copy party looked like.
It was at one of these events I met one of my oldest and closest friends, Anders Cedronius, who is a true legend on the Atari scene. With Amiga and Atari owners being arch-enemies this may sound surprising, but we both loved programming, particularly code optimisation on the Motorola 68000 (Amiga and Atari had the same CPUs), and neither of us actually cared much about the rivalry — it was far more important to share ideas and learn from each other. I could write a lot about the cool things we did and how we optimised 3D vector algorithms by eliminating unnecessary and “expensive” DIVU/DIVS assembler instructions, but I have a feeling that I would lose most readers that have made it this far into my blog.
While I eventually moved on from the Amiga and assembly programming in the early 90’ to explore C, C++, Java/J2EE, and the World Wide Web to name only a few other marvellous inventions, it is these early years that come to mind when I see my own little ones getting excited about Christmas. Considering the continued pace of technology advancements, who knows what technology wonders they will unwrap in the years to come.
Before I’ll finish this blog post I wanted to leave you with a few info-nuggets:
- A 20MB hard drive for the Amiga costed £289 in 1991 and today you can get a 150,000 times bigger hard drive, a 3TB Seagate, on Amazon for £67.90.
- With parallel processing and multicore processors the focus has been taken off pure CPU clock speeds, but my laptop’s quad core processor still runs at a clock speed 2,500 times faster than my old C64 (2.5Ghz vs. 0.985 MHz).
- It takes me about 2 minutes to download a HD movie at home, but it would take 1,200 hours (50 days) to download the same movie on my old 2400 Supra Modem.
- My iPhone 6 has a screen resolution of 1334×750, more than one million pixels, which can be compared with 64,000 pixels on my old C64.
- The ZX81 came with 1KB RAM and managed to squeeze its “OS” into an 8KB ROM, which can be compared with the minimum requirement of 2GB RAM and 20GB disk space needed for Windows 10. On the other hand, RAM prices have dropped with a factor of 650,000 during the same period.
Originally published at www.linkedin.com.