I just realized that I am coming up on the 25th anniversary of my first program.
The year: 1983.
The computer: Sinclair ZX-Spectrum. A cigar box with light-blue rubber keys with the feel of something that has been dead for weeks. The 16K version. Which I made my father (bless him, he bought computers before they became a remotely sane investment… depending on your viewpoint, he gave me purpose, or sealed my fate) expand to 48K for about $250. To put matters in perspective, the $89 CPU in the laptop I am typing this on right now has more than 10 times that amount in L2 cache alone. To give you even more perspective, this laptop has exactly 64 times as much RAM as that box did… at a fifth of the cost.
I programmed BASIC. I programmed Z80 assembler. It was fun. Of course, my father saw that, and got us….
The year: 1986
A WANG (no, it’s an actual brand, look it up) PC-AT 10MHz 80286 with EGA graphics (the color monitor was an upgrade from Hercules) and a 20MB hard drive. To see Intel crank out processors with more L3 cache than that entire hard drive…
This machine could take on the world. It was the shiz-nite. I remember getting WordPerfect 5.1 on five 5 1/4″, 1.2MB floppy disks and having to set aside a full 9MB of the available 20MB to get it installed. I also remember why: 5.1 had full-screen, WYSIWYG print preview. No, really. You could actually see the document on your screen the way it would print out. Insert picture is Alt-F9, 1, 1, 2. Why the hell do I remember these things, and not the name of my boss that I met yesterday?
My programming started in earnest on that over-priced, here’s our retarded custom keyboard beige turd. And to start, it was all about efficiency. I saw an ASK.EXE that you could use in batch files to display a message passed to it, reply to the Yes or No keys (okay, it was J or N, I’m a foreigner), and did all of this in… 8.5KB?
Hell no. That was just dumb.
I could do better. I got myself an 8086 assembly book, a MS-DOS Assembly programming book, and went to town:
If you don’t know what that means, you’re young, and I envy you.
Suffice it to say, it is scary that I still remember what
mov ah, 9h
…means. Long story short, I duplicated all of the C-based ASK.EXE in my DEBUG-based ASK.COM. Thirty-farking-four bytes. Hah.
I sent it in to the local hobby-computing magazine (RAM), and it got published. Of course, I managed to lose our copy. If you have one, please contact me.
At the same time, of course, like everyone else, I experimented with GW-BASIC. Easy to learn, easy to get frustrated with. It felt like a toy, and I treated it as such. Play, play, ignore.
Then I was challenged. My favorite magazine at the time (think “Scientific American For Teens”) had a computer section, which for the longest time (read: since ZX81 days) was a “Best One Liner” type deal. It then changed from “One Liner” to “Super Liner”, with the requirement being “the best thing you can do in 50 lines”. Sign of the times: submissions were for the PC, for the Amiga, for the Atari ST… thinking back to those days when most had not figured out the obvious winner is amazing to me.
So. Super Liner. 50 lines. Like programming. Getting bored. Then it hit me (as it seems to hit every programmer at one time or another):
Hell yeah. Just write Tetris in 50 lines.
(to be continued)