Friday, October 14, 2011

Generation 6502

I read a post at headcaseGames-Blog that got me thinking. What makes a programmer? Way back in the late 1970's, the very forward-thinking Bill Brown, principal of Miller Elementary, allowed students' families to "rent" the school computer for a weekend at a time (for a paltry $10.) On several occasions, my family did this. My younger brothers and I would load games that used Commodore's character graphics set off of cassette tapes and were in complete bliss. The poor Atari VCS (which was actually a Sears Tele-Games, if I recall correctly... there was no "2600" nomenclature back then) sat unused in the presence of the COMMODORE P.E.T. with its mighty 8k RAM.

My dad observed what we were doing and asked, "Why don't you just write your own game?"

"You can write your own game?"

"Sure. Let me show you." (Cue clouds parting and sunlight pouring down.) In about 10 minutes my dad had figured out how to use the machine's built-in BASIC interpreter to write a little "guess the number" game. My brothers and I took turns changing the target number in the program and then reveling in watching each other guess and be told by a computer whether their guess was high or low. Upon correctly guessing, the number of attempts would be reported. It was pure magic. Those ten minutes my dad spent showing us how to write a tiny BASIC program charted the course for the next 30 years of my life.

Like many of my nerdy friends, I ended up buying my own computer, and we all were programmers. Well, we all programmed anyway. Between the Vic-20's, the TI-99/4A's, the Apple II's, the C-64's and the Atari 400/800's we had a diverse little platform group, most of which were based on the MOS 6502 CPU. They had their differences, but at the core they all had a BASIC interpreter built into ROM. Sure there was lots of software available on cartridge or cassette or even the mythical 5.25" floppy, but all of us put a great deal of time into writing our own programs. We even performed the time consuming activity of typing programs into our computers that were published in Compute! magazine or its ilk. After a few hours of typing (typically with one friend dictating) we would hold our breath and type RUN. If it didn't work we would pour over the code and figure out what we typed wrong, often one number in the endless blocks of DATA statements.

So not only did we hunger to program, but we had endless good examples of simple programs to help us understand how the whole thing worked. There was voodoo that we didn't understand yet (Interrupt requests! Player/Missile graphics! Machine language! Sprites!) but we marched relentlessly forward in our knowledge. I clearly remember learning about string variables by analyzing a program I had loaded, forever loosing me from the constraints of only storing numbers.

Years later I wonder how any kid gets into programming today. My daughter is at the age when I was obsessed with programming. She loves computer games, but the idea of programming has no real appeal for her. Everything she could do, all those little triumphs I experienced, have been done 100 times better already, and there is too much competition for her free time to make those first steps seem appealing. Maybe if I get her an Android phone I can get her interested in the Corona SDK.

3 comments:

  1. For them to really get interested you require a "need". A hobby or something that gives them a reason to create or alter an application for their own use. Not like the old days where I learned about scripting so I could make a webpage about my 40K models. :)

    ReplyDelete
  2. I've tried to get my son started with development in scratch ... It's awesome, check it out... http://scratch.mit.edu

    No dice. He'd rather waste his time making his own universe on the PS3 in little big planet.

    ReplyDelete
  3. What the heck is an Atari Commodore?

    ReplyDelete