Commodore Free Magazine, Issue 88 - Part 8
From
Stephen Walsh@39:901/280 to
All on Wed Jul 1 16:56:33 2015
ge built in. BASIC
was a mystery to me and for weeks I had little comprehension as to how it worked. I knew how to LIST a program, which I did out of curiosity before running any program. Even to this day if I use a Commodore emulator, I'll
type LIST just to see what language the program is written in and what
program might have been used to compress it or compile it.
Not knowing how BASIC operated, I remember one of my very first attempts at using the BASIC language went something like this:
10 to the computer, print a border ar
ound the screen 20 place random boxes inside the bord
er of the screen
Needless to say this approach failed. While I understood the concept of
line numbers, which the computer executed from lowest to highest, the BASIC language would be a learning curve for me. It took time to learn commands
such as the PRINT and INPUT. We had no documentation on how to use the PET
at the time.
I remember one day I was trying some elementary BASIC coding and hearing a student ask the teacher, "Sir, how do you turn off reverse field?" I had absolutely no idea what reverse field was, and hearing that made me quite frustrated. What was reverse field? Oh man, I'm never going to learn how
to use this computer. For those who are unfamiliar with BASIC, reverse
field is simply text shown in reverse highlight, or a reverse image of
itself. For example pressing SPACE in reverse field would create a sold square.
Well, I stuck it out - and went on to learn how to use Reverse Field. I mastered the GOSUB and RETURN commands, the POKE AND PEEK commands, FOR
NEXT loops, and READ/DATA. I created the same elementary program that
we've all created at one time or another - the random number guesser.
10 PRINT "PICK A NUMBER FROM 1 TO 10"
20 N = INT(RND(1)*10) 30 INPUT A 40
IF A > N THEN PRINT "TOO HIGH": GO
TO 30
50 IF A<N THEN PRINT "TOO LOW": GOTO3
0
60 IF A= N THEN PRINT "YOU GOT IT"
70 END
PEEK and POKE took some time to comprehend. I knew how to POKE an asterisk
on the screen with POKE 32768,42 but I couldn't understand how PEEK worked. PEEK 32768, 42 just wasn't working for me. It would take some examination
of other programs to learn that the proper method to read a location was
PRINT PEEK(32768). Learning PEEK and POKE was essential for any decent
game that you were looking to create.
BASIC was, as the name implies, quite simple to learn and while not a very
fast language it accomplished many tasks for early Commodore users. BASIC
was used to create adventure games, simple graphic games such as Miner, educational programs and it was used in bulletin board systems (BBS).
Software for the PET wasn't easy to acquire, for during the early 1980's
tapes were either mailed through the post office or hand delivered. You
could imagine the excitement when our teacher walked into school with some
new cassette tapes full of games! There was no downloading of games
because there were no modems at the time for the PET let alone a local
Bulletin Board System (BBS) we could dial into.
Space Invaders was a student favourite. On our last day of Grade 8 classes
our teacher wheeled a PET into our classroom for us to play. I believe I
was the Space Invaders champ of the day.
The Commodore PET was something that either ended up attracting students, arousing casual interest or was of no interest at all to students. Young
girls tended to avoid using the PET while the athletic students might only
play a casual game or two during free class time. It was the 'geeks' that gravitated toward the PET. By 'geek' I'm not referring to the
stereotypical boy with large glasses, but rather the young men who were fascinated with this new technology and who lived for it. They wrote out
games on paper which they'd then type into the computer. They stayed after school to play games and to program. They played dungeons and Dragons on weekends. They also went on to very successful jobs in computer software
and information technology.
With so little software available on the PET computer, many users resorted
to writing their own software. This took some learning and some trial and error but it also brought about results. I remember playing a game in the arcade where you'd explore various rooms and encounter different enemies,
while picking up treasure. Having acquired the skills for BASIC, I sat
down one summer and began typing away the code to recreate the arcade game
on the Commodore PET. Sure, it ran much slower than the arcade game as
BASIC was a slower language, but it was something that I'd created on my
own using my own imagination.
Some of the software that made its way to our classroom contained some mysteries of their own:
One particular game that's always amazed me was Space Invaders. The game
was written entirely in 6502 machine code (the native language of the PET)
and played just like the arcade game did. It was the type of game that you could have written and played it against yourself and still found it challenging. Not only did the programming amaze me but the fact that
whoever wrote this game did so in the very early days of the PET years,
surely they'd had prior experience in programming 6502. Why didn't they
put their name in the game for credit? What was their programming
background?
When you loaded the game Night Driver for the PET, it read "Created by J. Suzuki HM-1020". For years I've wondered what the significance of the
HM-1020 was. I used to think that it meant home room 1020, now I think it
may have been a college course code. I was intrigued that somewhere out
there in the world there may have been an actual class held where students learned how to program machine language. Was Night Driver a student's
project and if so were there other student games like it?
PET's were not only being used in elementary classes but also universities.
The University of Waterloo in particular had some very talented Commodore
PET programmers. The university assisted in the development of the
SuperPET. Jim Summers, the author of some the greatest PET games ever such
as Star Spores and Slime also attended Waterloo University. If you Google
it, there's an interview I did with Jim where he discusses his early PET
days.
In 1978 the Toronto Pet Users Group (TPUG) was founded with the intention
of bringing together Commodore owners through monthly meetings. TPUG maintained a library of public domain software. If you'd created a word processor or a recipe organizer, you could submit it to TPUG where it would
be shared by other members. TPUG software was great for the home user. I remember people lining up at our local chapter meetings to purchase a disk
full of TPUG software. Of course this was shareware, not commercial and I found much of it not very exciting. I was always looking for the 'cracked' commercial software - and on that note so were many adults. TPUG's
membership would reach almost 20,000 users worldwide by the mid 1980's.
TPUG also released a monthly magazine and occasional newsletters. Inside
the magazine readers might find BASIC programs that they could type into
their own computers. Jim Butterfield was a regular contributor to the TPUG magazine. Jim was a great wealth of knowledge when it came to BASIC and
6502 machine code. His articles were beneficial in helping many people
learn machine language.
The Commodore PET was primarily a school computer, far too expensive for a beginner home computer. Some teenagers like myself had teachers for
parents and were fortunate enough to bring these machines home for the
summer when the schools were vacant. Many nights were spent in our
basement hacking away on the PET as we created some new universe to take ourselves to, or to battle Klingons.
The PET was also featured in a television series. In 1983 TV Ontario aired
a program called Bits and Bytes which featured Luba Goy and Billy Van. In
the series, Luba would walk Billy through the process of loading software
into a PET as well as taking him through some basic programming. Today
you're not likely to find any television programs dedicated to learning how
to program, that's best left to the huge assortment of pricey books at your local Chapter's.
1. This is something that I pity the current young generation for. They
know how to load albums onto their I-Pods, they know how to text message
and they can use Instagram to tag a photo with 80 hashtags - but they don't know how to use their imagination! By sitting down with a goal in mind,
and typing on a keyboard, we could literally invent a new game much the way
a painter could paint a portrait using his hands. If you required a recipe book, a program to track your expenses, or a database of phone numbers all
you had to do was sit down and CREATE it. There was no downloading of applications, no purchasing of software, no trial ware, no pop up ads -
just one's own imagination. If you required help on programming, there
were dozens of back issues of magazines covering BASIC programming and Commodore computers.
From 1980 until about 1982 I met only two people outside of school who introduced me to new PET games - one was my neighbour and the other was a university student I'd met in a Radio Shack store. You have to remember
that during this period Commodore programmers were quite isolated. There wasn't an internet or local gaming groups at the time and regional TPUG chapters didn't exist until much later.
When I started junior high school in 1982, their computer room contained
PET computers. The classroom had approximately 20 computers connected by a shared disk drive. Yes, I'd graduated to an actual disk drive which made loading software so much faster. One of the first programs I wrote in high school was a 'graffiti wall' which allowed the students at their computer
to leave a message on the 'wall' which could be read by others at their computers. It was Facebook circa 1982. The wall was really just a
SEQ-uential file and eventually it would become too large and would need to
be deleted. There was no Zuckerberg behind this social wall, just a few
dozen lines of code on a PET disk drive to "social network" the different students together.
Teachers and students would often share BASIC programming tips with one another, there was no age barrier in the Commodore world. The junior high computer teacher had his class do projects about the Commodore computer
which were then presented to the classroom.
A few years later the PETs disappeared from our classroom and were replaced
by Unisys ICON computers (yuck). They stopped teaching BASIC and things
became very boring. I've often wondered where those old PET computers
ended up.
THE VIC 20
In 1980 Commodore released the VIC-20 home computer. The VIC-20 had a mere
5k of memory, a 22 character wide screen and one joystick port. The VIC-20
was an affordable home computer and was marketed by Commodore on television with ads featuring William Shatner. By 1982 approximately one million
VIC-20's had been sold. These machines were available in chain stores such
as K-Mart.
2. People who'd learned BASIC or machine language (6502 code) on the
Commodore PET were able to port their skills over to the new machine. As a result there was less of a learning curve for people to create new software
on the Vic-20 than on the Commodore PET.
By now there were more computer magazines on the store shelves that catered
to the home computer user. Some of these magazines included Compute! RUN, Ahoy! And Commodore Power Play. Now it was possible to create a game and
have it published in a magazine for thousands of other people to be able to play. It might take hours to type in the many pages of code and mistyping
one character might mean the difference between a fully working game and
one that crashed. It could be frustrating going over five pages of printed text to see where you'd made an error. Some programs were pure BASIC, some were a mix of BASIC and machine language and some were pure machine
language. Machine language was used for things such as smooth scrolling, playing music and other effects that were necessary to occur at a precise interval.
In December of 1983 Compute! Magazine introduced MLX. MLX was an editor program that you typed into your computer once, and saved. If an author
wanted to publish a machine language program in a future issue of Compute! Magazine their program would be listed in MLX format. MLX provided a
fail-safe way of typing in programs. Every line of code that was featured
in the magazine contained a checksum number, so if a person inadvertently
made an error such as typing in "132" rather than "133" the MLX editor
would make a buzzing sound and alert the person to an error in the line of numbers. This worked only for machine language programs, BASIC programs
were still susceptible to errors.
As the popularity of the VIC-20 computer grew, more home software was
produced. As with the Commodore PET, the main source of new software was
your classmates and neighbourhood friends. If someone purchased a new game
on cassette tape, they might bring it to school and you could borrow it for
a night. Some of the youth who'd already knew BASIC, wrote their own
homemade games which they shared with others. It was through these
classmates that new connections were made. I remember sitting beside a kid named Eric back in Grade 9. Eric mentioned owning a Vic-20 and suggested I visit him on the weekend for some game trading. Eric had written a few of
his own games in BASIC and I eagerly wanted to copy them. As it was, he declined because in his words, "I want more people to know I created it
first" which was a reasonable answer. I never did get Eric's homemade game
but we did swap some others.
Many weekends were spent riding our bikes over to people's homes who owned
a Vic-20 and playing or trading games. This was our own social network, a network where you didn't have to know someone for years to be invited into their house. All you needed was a mutual friend to introduce you to
someone, and you had a new friend. My neighbour who lived three doors down owned a Vic-20 and I knew him but not well enough to go over to his house
and do things together. Upon learning he owned a Vic-20 I found myself
making up reasons to want to head to his house. One day I walked over to
this neighbour's house because Compute! Magazine had published a tank game where two people could play with a joystick. The second joystick was
connected by a series of wires to the rear port of the Vic-20. So to accomplish this I brought over some wires and alligator clips to use as connectors. The other end of the wire would be connected to the joystick.
Well as you know, an alligator clip is conductive on both sides of the clip
and upon connecting it to the Vic-20 I shorted out the upper and lower pins
and blew the Vic-20. It was dead. My neighbour began freaking out
claiming I blew his computer, as his mother watched on in horror. Feeling
very uncomfortable and not knowing how to respond, I politely made my out
the front door. As it would turn out I'd just blown a fuse which was
easily replaced. I'm still friends with this person today although we
don't speak as often.
Around 1982 my father purchased a Vic-20 for our household. Now there was
no longer a need to find reasons to visit my friend, I could get my
computer fix at home. Much of the time was spent playing games that came
on cartridge. This provided opportunity for us youngsters to trade
cartridges with one another. In fact you could even 'rent' these
cartridges from the local video store. There were also Colecovision and
Atari 2600 cartridges for rent. We'd played Colecovision and Atari but
there was more appeal in creating something of your own design on a
Commodore.
By reading the accompanying programmer's guide, I learned that I could
create custom graphics on th
--- MBSE BBS v1.0.4 (GNU/Linux-i386)
* Origin: Dragon's Lair ---:- bbs.vk3heg.net -:--- (39:901/280)