Orphaned Computers & Game Systems

Vol. I, Issue 2    August 1994

Programming the Classics

by Adam Trionfo

There has been a lot of talk lately about writing new games for the classic game systems. These systems are difficult to write programs for, because these programs must be written in assembly language or machine language. There is no easy means of obtaining the above-mentioned language programs, but it would be really great to have a public-domain library stocked with games for systems that commercial manufacturers no longer support.

There must be a better way. There is.

The classic computer systems would be a great place to start. There are many alternative languages that are easier to learn and give terrific results. Most classic computers are equipped with built-in BASIC interpreters. This language has advantages, because you can start programming immediately. However, BASIC is not designed for speed, and thus does not make a good game language. You could use other languages, like C or Pascal, which are popular. Of course, there are always assembly and machine language. One last advantage that BASIC does have is that it can be compiled so that it can run up to fifteen times faster than normal, depending on the program to be compiled and the compiler itself. This means that a BASIC program could run almost as quickly as something written in assembly.

Not everyone is interested in writing games for the classic systems; most people just like to play them. (There are few people who still enjoy playing the classics in the first place.) There are others, myself included, who have limited experience in programming, but who would like to try and write games -- but just don't have the time to figure out where to begin. Then there is that few who could write a game if they were given enough time. There are few of the last type, I think. It takes a great amount of time to write games, and I find it hard to believe that one person, or even two people, could have the patience to write a commercial-quality game.

Since it is a hobby, the programmer would be lucky to break even. The people who programmed the great games for the classic systems did not do so overnight. Atari 2600 Solaris, for example, took two years of work to program -- and remember that programming Solaris was not a hobby, but a full-time job! When the game was completed, there wasn't even a large number of buyers. They had all moved on to other, more advanced systems.

Classic computer systems are available at very inexpensive prices. I saw an Atari 800 with a disk drive and all power supplies for $6.99 the other day, at a thrift store. Even stripped, with just the very basics, this system has 16K of RAM, far more than that available on any of the classic game systems. That is all the hardware a programmer needs to begin. Software, including programming languages, is available in the public domain, each for the price of a disk and copying costs (usually two or three dollars!). There are hundreds of programming examples to find in the public domain. Most of the programs can be modified, too, and this makes learning easier.

Of course, if you find that you would still rather program a classic game system, a computer makes the job much easier. It gives the advantage of a full, typewriter-style keyboard instead of the keypads that contain only a few buttons apiece. Those keypads can be so tedious, you would welcome the change! You could also use the computer as a word processor, database or whatever else you need a computer for. Remember that a classic system can do almost anything a new computer does; it just takes more time.

Since most people would prefer to program games, the 40-column screen display will not cause problems. Some people will be surprised at how much programmers managed to get out of those classic systems. The Atari 8-bit computers are only capable of displaying five players on the screen at a time. A player is often called a sprite, but these are different in a few ways. A player stretches from above the top view of the screen to below the bottom view of the screen. In order to make a character, most of the player is left empty, and the background can be seen through it. There is more to it than that, but that gives you a rough idea.

The Commodores and most other 8-bits used sprites (in fact, that is still the modern term). A sprite is very similar to a player, but is superior in many ways. Most computers could display more than just four sprites on the screen at one time. The C64, for example, could display eight. Unlike the Atari, it could display sprites with colors that were independent of the background colors.

I would like to have more information in future issues on programming, but I am not too proficient on the subject. If you have experience with any system, please write me. I would be interested in including small demo programs to type in. (Yes, small: nothing too long.) I have been tossing the idea around in my head of making PD disks for some computers each month. Anyone interested?

What follows is a few sources from which you would be able to get additional information on programming:

Compute! Books

These are excellent resources. Compute! magazine produced books for the Commodore 64, VIC-20, Plus-4, Atari 8-bits, TI, and a few others. However, they are no longer in print, and Compute! is no longer with us. Do not confuse Compute! with Compute. The latter is published by the same company that produces Omni and Penthouse, among others. If you look around, you should have no problem finding places that carry these books. (The computer books, that is!)

Harry Dodgeson

He has created a monitor cartridge for the 2600/7800. It requires a 7800 ProSystem to run. A monitor is a program that lets you write machine-language and assembly-language programs. I have read good things about this fairly new item. The new version even lets you write the program on an IBM, and then load it through an interface in the cartridge. For more information, write to Harry Dodgeson, P.O. Box 19547, Kalamazoo, MI, 49019-0574.

There are far too many systems to program for me to include information about all of them. If you would like more information, please contact me, as I would like to get anyone interested as much information for the specific system of their choice as possible.