A Look At My Programming History – Part 1
Posted by Jake on Mar 15, 2013 in Programming
I’m an old man – I’ve just broken through the 40 year barrier – and I’ve been coding a long time. By my guesstimation, about 30 years or so – starting with a Basic cartridge on my IBM PCjr.
It was my first real machine, and my mom paid a king’s ransom for it at the time. It was very upsetting to her when I took it all apart to explore the guts (I’ve always been a take-it-apart kinda guy. I could take apart anything. Remember real metal indestructible Tonka trucks – yeah, I took them apart, too). Luckily, I got it all back together and working to avoid Armageddon, but I digress.
Back to Basic programming on that behemoth… I knew nothing about programming back then, but I was always curious as to how this machine did things. Being the inquisitive person that I am – I researched. There were no interwebs back then, no Google, no BBSs – I had no other recourse but to RTFM that came in the box – which was good enough to get me going. The light went on, and I had the perfect project in mind to practice my new skills!
Some background on my selected project. I, like most 10 yr old boys at the time, really dug AD&D. You know – the Dungeons and Dragons role-playing game series (my mom loathed it, but that’s another story in its own right). AD&D was great fun, the only problem was that you really couldn’t play it alone – you needed a player and a Dungeon Master, at the very least. Not only that, you kinda needed a dungeon or something similar in which to adventure. The gathering of folks to play, as you can imagine, wasn’t always easy. But I was in luck! The Dungeon Master’s Guide had in its appendix a series of random dungeon generation tables! Awesome stuff! You roll a D20 die and based on the result you could get the room size, layout, creatures, treasures, etc.
My project was set! Random number generation, if/then/else, GOTO, GOSUB – Those tables would work perfectly as the basis for my first major computer program. So I went about implementing them in Basic – tedious and long hours of trial and error hacking away on my weird keyboard. Hell, the source printed out took up about 50 pages of dot matrix printer paper.
But it worked – after lots of debugging (without a debugger). I had just bent that machine to my will… I took the cumbersome task of rolling dice, looking up the result, writing out the details on paper, etc. and crafted a system, using my knowledge, that I then bid this machine to execute. Simply awesome!
This was my very first taste of technical satisfaction, of creation, of empowerment.
The ability to create something from an abstract nothing appealed to me greatly. It appealed to my mind, my ego. But it was more than just that. Much more…
Without going into my turbulent history too much, I’ll tell you that even at that young age I knew I had very little control over what happened in my life, to those around me, to situations that arose. Whether I consciously thought that, or intrinsically knew it is irrelevant – it was just fact to me. But I had just stumbled upon something I could control. Something that I had complete and absolute power over – the machine. I owned it. There was nothing I commanded that I could not coerce it to carry out.
I had just found my safe haven – my home. And I loved it.
I soon found, however, that I could not persuade the machine to carry out all my commands. It mocked my limited knowledge and dared to defy me. There was still too much I didn’t know – I needed more. I needed more knowledge! And the more I learned, the more I understood how much I still didn’t know. It was infuriating – why couldn’t I just shove all this stuff in my head and be done with it?
But alas – it simply doesn’t work that way. Well, at least it doesn’t currently – who knows with wetware technology of the future…
So my quest for knowledge and my thirst for knowledge continued – and still continues.
I moved on from the IBM PCjr to the greatest single machine of all-time – then and now – the Commodore 64. This machine was the enthusiasts dream. You could easily code on it – in CBM Basic and machine code – all with the same program (PEEKs and POKEs to do register work). It also had a variety of open ports for electronics projects too, even including the complete schematics! I wish I would’ve taken more advantage of back in the day since I’m now getting into electronics.
This machine was so popular that there was a plethora of published information on this guy back in the day, and I absorbed all of it on my continuing quest. So much so that when my elementary school started a computer class featuring the C=64, hosted by a teacher win only PC experience, I literally taught the class.
OPEN 1,8,15,”N0:DISK,01”:CLOSE 1
I’ll spare you the details of my love affair with this most beautiful creation. Suffice it to say that I, at this moment, have one sitting on my desk in front of me – in full working order…
As the years rolled on I still maintained my fascination… There was a lull in my quest for technical knowledge that coincided with more strong desires of my teenage years – girls and parties (where’d I’d find even more girls). Again, a story (or multiple) for another time…
My technical drive finally returned, eventually moving me from the C=64 to the Amiga 500. This move was fairly short-lived as Commodore, for all intents and purposes, went out of business – forcing me to leave the platforms that I grew to love. Time to jump to the PC!
And no, the Mac wasn’t even remotely an option – if you’re wondering.
Wow, I’ve rambled on quite a bit. I tried to summarize as much as possible to hurry you through my technological adolescence. The next article in this series will lead you through my epiphany period – my brain’s golden age, if you will.
Until then – go learn something!