While most iOS Developers around the globe are busy learning Apple’s new programming language Swift or playing with early versions of iOS8 and Yosemite, I’m deeply involved in something much less cutting edge. In fact it’s from over 30 years ago, and it’s courtesy of Microsoft:
I’m having fun getting back into BASIC 2.0 as featured on the legendary Commodore 64 (or C64 or CBM 64).
This was my first computer, and I’ll never forget it. German computer magazine “64er” dubbed it the VC-64, or “Volks Computer” (because Commodore’s previous machine was called the VC-20 or VIC-20). It was huge everywhere, but particularly in Germany it was just THE machine to have.
Sure, there was the Amstrad CPC664 and 464 (which were re-branded as Schneider) or the ZX-81 and Spectrum, but they were somewhere in that 5% category of “other home computers”. We never had the BBC Micro – for obvious reasons, and none of my friends could afford anApple II.
I no longer own the hardware, but some of that early day knowledge is still in me, together with many burning questions that have never been answered. There’s so much I always wanted to know about the C64, and so much I wanted to do with it: write programmes, learn machine language, and generally use it for development. I had no idea that there was such a thing as a Programmer’s Reference or developer tools. Time to get back into it!
Today we have wonderful emulators such as VICE (the Versatile Commodore Emulator) and it’s just like sitting down with my old computer again, on modern day hardware. I’m even doing it on a plastic Windows laptop for a touch of antiqueness (if I don’t get too annoyed with that).
Don’t ask me why this piece of computer history has become such an obsession with me over the last couple of weeks. I feel that for some reason it fits in with all this high-end cutting edge development I’m doing and rekindles me with how all this super technology started: with cheap plastic that was to change all our lives forever.
I remember the questions from members of my family who had not jumped on the computer bandwagon: “So what do you actually DO with a computer?” – and I guess today as much as back then you would answer, “What am I NOT doing with a computer anymore?”
The 8 bit “home computer” revolution started all that, including the stuff we use every day and half-heartedly take for granted – like downloading a PDF on the beach at 100Mbps, while sending videos to loved ones across the globe in half a second.
Before I get too old to remember, let me see if I can piece the story of “Me and The Machine” together (before my brain inevitably turns into that of a retired old gentleman yelling at the neighbour’s dog in a foreign accent).
Etelsen, Germany, ca. 1985
Picture this if you will: a small village much like Cabot Cove, but without the boats. Or the killings. Somewhere in the north of Germany, 15km away from the nearest town which had a population 20.000 (the nearest town, not the village). Our story begins close to the wolrd famous picturesque Castle of Etelsen in Flecken Langwedel.
I genuinely hated every minute of it. But I was stuck there for the time being, maybe aged 12 or 13.
Several of my school friends already had a C64, mainly for playing video games. They avidly traded tapes and I often joined them after school or on weekends for extended computer sessions. I was hooked – but I didn’t have the hardware myself. It was way too expensive, and as I remember money was never in ample supply – especially after that spontaneous interest rise in the eighties from which my parents never recovered.
This machine fascinated me: you could type stuff in English, and it would seemingly reply. This was futureworld, and it finally came to rescue me from my miserable life.
I remember never really asking my parents for anything substantially material – I knew full well they couldn’t afford it. This C64 thing was an exception: I had to have one, there was no way about it. It was the only thing I could think of. I even tried getting a paper route like my friend Frank to earn some money – but after only three days I understood that this sort of work just wasn’t for me. I was more of an “ideas man” you understand…
Somehow my parents got hold of a used computer system from a neighbour we never hung out with: a C64 breadbox, complete with proper monitor, 1541 floppy drive, boxes full of software and a Seikoshi needle printer (with dried out cartridge, noisy as hell). This was the jackpot – and way more than I had hoped for in my wildest dreams.
It was like heaven! I was late to the C64 party – only by 6 months mind you, in those days it felt like eternity to me. I finally had a system and could trade software – by which time many of my friends started using floppy disks as well. Hey I was one of the first guys who traded floppies rather than tapes!
To be compatible though we found a dark grey 1531 Datasette drive which was originally made for the C16 but could be used on the C64 with an adaptor. I hardly used it, but I sure loved having it at my disposal. This computer became my life. It was a social tool, an “in” to a new circle of friends that were in the know. The 64 Club.
We played it all: Maniac Mansion, Zak McKracken, Test Drive, Ghostbusters, Seven Cities of Good, Blue Max, Paradroid – you name it, we played it. I don’t know who my parents had to kill for this, but I knew that I would have a friend for life in that beige piece of plastic and its many intricacies.
By this time I started noticing that English was more valuable in this world than German ever would be: not only was BASIC more or less plain English, but all those games were seemingly in English too. I guess the computer games industry in those days was just too small to dedicate a team of translators to the task – unlike the film and TV industry which is busy overdubbing (or re-shooting) every show into German.
My favourites were (English) text adventures by Magnetic Scrolls, like The Pawn. It was the one and only “original” unckracked game I had, everything else was an illegal copy – as nothing was allowed to cost any money in those days. I also liked the (American) Infocom stories – but they were so difficult for me to understand that most of them were lost on me (think Zork, Bureaucracy, Hitchhiker’s Guide, and notably Nort and Bert).
Ron Gilbert’s LucasFilm games were much more to my liking.
Shortly afterwards my school started investing into Amiga 1000 computers and started after school classes. I didn’t like the Amiga so I never joined in.
Coding: The Early Days
But games aside, what fascinated me more than the “phenomenon of the home computer come arcade” was the programming capabilities of the C64. You could seemingly talk to the machine and it would answer back – whoa dude! At the same time of course we were all influenced by movies such as War Games, Weird Science, 2001 and 2010 – where the impossible was done with computers (none of which resembled what any of us had at home).
I frequently typed in listings from that German computer magazine, part of which made me feel like a real hacker, but it was more of an exercise in frustration – especially if after 3 hours of mundane typing resulted in “?SYNTAX ERROR IN 10”. Or worse: a crash if it was machine code that didn’t even make sense.
I did get my head around BASIC eventually, but I didn’t have the brain of a coder, nor did any of the German computer books explain to me what was going on in a way that I could understand it. I had plenty of ideas or apps as we’d call them today, but I never knew enough about “proper coding” to make my visions a reality.
Had I known about all the programming tools that were available from reputable software sellers (HESMON, BASIC extensions, compilers, cartridges – and all that) I would have found the money somewhere. I just never knew that “real” tools for real programmers were available and didn’t pursue my hobby any further than being an “advanced user”.
There were some project that I did write though: for example, a double-disk digitised sound machine in which I had sampled pieces of popular 80’s songs and looped parts creatively – so that the 10 second worth of RAM we had available would last nearly a whole minute. I asked an electronics friend of mine to solder me this A/D converter that I would use to digitize music. Whoa dude! This project contained five songs in total I believe, and spoken introduction by yours truly, and I even managed to integrate a fast-loader utility and a “turn disk over” command.
My friends loved it – on the one occasion they used it.
Another project was a text adventure with a rather impressive parser that would allow text input in the style of Magnetic Scrolls. The player could type “Pick up the gun and walk north”. It took forever to come up with an answer, but it did work. I forgot the title of that project, but I remember it was set at our school in Verden/Aller and the player had to solve a murder. Many of my teachers made an appearance in this fantasy fest, portrayed perhaps in a slightly sarcastic way. I never finished it, and there are no surviving copies either.
I also started writing a secret diary for which I wrote an input routine. It would write the characters straight to disk via “DOS shell commands”, character by character, and it would encrypt those on the fly. I made it so secure in fact that years later – when I had an SX64 in the late nineties – I couldn’t decrypt my own diary anymore (because I had forgotten the password I used to decrypt it).
Then there was Machine Language
The whole reason for the “home computer revolution” was that certain microprocessors had become cheap enough to be used by homebrew hackers, specifically the MOS 6502/6510. This was an affordable CPU, but so that ordinary humans could make use if it, these computers had to come with a friendly operating system:
BASIC, or Beginner’s All-purpose Symbolic Instruction Code.
But due to the amount of time a scripting language such as BASIC takes to process statements “on the fly”, serious apps were partly or entirely written in Machine Code. Those are instructions that the processor understands directly – they don’t have to be interpreted (compiled) by a higher language.
Machine Language – or Assembly – is so low level that it’s really not a joy at all to make the simplest things happen. But because it’s extremely fast, and because nerds like me like a challenge that’s too difficult for them, I wanted to learn and understand it.
It was way too difficult for me. Even though I looked at the concepts, I lacked the explanations, guidance, documentation and input tools to progress past a long staring session. The monitor usually won. Today we have the internet, and many those manuals from 30 years ago are freely available. Time to start catching up on some reading!
Several apps and games, like Sid Meier’s Pirates! for example, used a combination of BASIC and Machine Language. I thought that was a cool idea to mix the “best of both worlds”. I always wanted to try my hand at such an approach – and perhaps today I finally can!
30 Years Later
My old C64 hardware is of course long gone, and I can’t quite remember what happened to it, the original bread machine from that village in northern Germany. I remember still using it in Berlin up until 92/93, but by that time it was an ageing product and well past its prime. It just so happened that my Mum’s then boyfriend had a spare Intel based IBM 386DX clone that I started exploring, and at some point was allowed to take it with me to Berlin where I did my apprenticeship in Film and Video Engineering. That’s when a new computer chapter started for me – but I’ll leave that for another time.
I do recall however that sometime in Hamburg, between 1994 and 1999 I got hold of a free SX-64, a portable “in a box” type design of a C64, complete with monitor and floppy drive. It wasn’t supposed to be a laptop, but could be used to diagnose things away from the desk with the help of a computer. I got that for free from somebody’s basement and sold it off for about DM 150 when I had moved to London already. But I digress…
What fascinates me to work with an operating system that’s 30 years old and no longer supported is much the same that fascinates me when I take a picture with a 40 year old Polaroid camera: back to basics, back to the beginning. Sure it’s slower and more tedious, but it was possible – and that’s what makes it fun.
Over the last decade I have looked at C64 emulators every so often, mainly because I wanted to play a game like Bard’s Tale III, or my old time favourite The Pawn. Even though the disk images (ROMs) were always plentiful on the web, the emulators 10 years ago weren’t great. Or maybe it was my hardware, or the lack of input controls.
That’s all changed when I discovered VICE recently – an Open Source Commodore Emulator. This puppy can emulate them all – even computers that I never used:
- C64
- C128 (with two screens – yowser!)
- Plus/4 (aka the Minus 60)
- VIC-20
- PET
- and several others too
It works on every platform you can think of, Mac and Windows or course, but also Linux, Be/OS, OS/2, Amiga – the list goes on. It’s like a total dream come true!
For me, VICE is a wonderful present, and an amazing discovery for me.
Emulators really are the way to go, to preserve the spirit of hardware as it once was. Because really, hardware is just – like a human body – and outer shell, and not what “on the inside”. Thanks to emulators, the software that was written for extinct hardware can live on.
And therefore, I have my old C64 back. FOR FREE! No missing cables, read errors, space I need to clear, all on the current hardware under my command.
Even better: the C128 I could never afford is also at the tip of my fingers – after so many years. I remember the sessions with my friend Frank who had a paper route and bought himself a C128 system. I taught him BASIC commands! He even had a modem and we had tons of fun dialling up those BBSes or booting into CP/M (not that we knew what we were doing). Thanks to VICE I can relive the glory days 😉
And what makes this so enjoyable for me is that I now have access to all the documentation, like the Developer’s Reference that I didn’t know existed back in the day. It explains step by step what all those computer magazines were preaching snippet by snippet. Commodore did a superb job explaining their systems to both users and developers.
If I could go back in time 30 years, I would focus on writing apps for the C64 full time – with all the tools that were available. Let’s see if I can write a new text adventure, or just have fun fiddling with line numbers. Or machine language.
Thanks, Team VICE! Long live Commodore!