Programs I wrote for the Color Computer 2.

The culmination of all the software that I wrote for the Tandy TRS-80 Color Computer 2 between the spring of 1987 to 1991 can be found here and here.  To use it, you must have an emulator that will emulate the Color Computer 2 (such as MESS).  Just mount it as a disk for the color computer 2 and type RUN "MENU" to begin.  These programs were written with a stock Color Computer with 64K of RAM (though none of them require more than 32K), with Extended Color Basic 1.1, and Color Basic 1.2.  They were ported to a disk using Disk Extended Color Basic 1.0 and the only program that "misbehaves" (by garbling the file control blocks) is Sea Battle.  Here is a run-down of each of the programs.


This program is just some silliness I did with the Color Computer and the BASIC language.  When you run it, you will see two sides shooting at one another.  When they do it simultaneously, strange and evil things happen....


What's a game programmer who did not reinvent the classics (such as pong and breakout) at least once.  This was my reinvention of these two games.  No instructions are given but you use the left joysticks to move your paddles.  This game utilizes the semi-graphics 4 video mode and the full range of the analog joysticks output.


Just a few pieces of music for the Color Computer to play.  All of them came from the manual that came with the computer so there is nothing original here.

Space Voyage

This was something I wrote along with my step-dad.  Basically it is about a space ship that travels to the moon (or some planet), lands, places a flag on it, and then returns to Earth.  For the scenes that show the space ship sitting still, just press the space-bar to continue the story.

You can clearly see the artifact colors in PMODE 4 (the video mode used by this program).


Another exercise what to program an analog / digital clock using the Color Computer.  There is an example program in the manual that shows a count down clock, counting down to a bomb exploding.  That count down clock was the basis for the analog clock that you see in this program.  Press 1 to adjust the hours, 2 to adjust the minutes, and 3 to adjust the seconds.  You can also press 4 to toggle between analog and digital clocks.


This program is simply an exercise using sine and cosine math to draw circles and waves.  It uses semi-graphics 4 to draw them.


This was one of my 'original' games that I did for the computer when I got it back in Christmas of 1986.  Back then, I was not familiar with machine language programming so the games were simpler (even simpler than this one).  Those games did not survive as I did not have a suitable storage device to keep them.  In 1991, I redid this game by adding a bit of machine language programming to speed some things up and this game is the result of that.  You can use either the joystick or the keyboard to play.  The object it to find all the 'riddle rooms' (rooms with a flashing dot), get the flashing dot, and solve the 'riddles.'  The riddles are mostly math problems and other types of questions.  Solve them all and you win.

You control the blue dot and the doors are in between the green dots.  You can encounter snakes, pin balls, boulders, arrows, and ghosts along the way.

Easter Egg:  type "WHERE AM I" when asked for your name and you can choose which level and room to start off in.  (Press L to change the level and S to change the screen).

Sub Battle

I wrote this game originally sometime after I received my computer for Christmas in 1986.  It was written completely in BASIC and it was SLOW.  It uses PMODE 3 graphics to get some pretty decent resolution which meant more pixels to move around and using BASIC's GET and PUT statements are slow.  This program was rewritten in 1991 in assembly language using the EDTASM+ tool and the performance was greatly enhanced.  There is one caveat when running this program from disk.  The software was written to run on a computer that did not have Disk Extended Color Basic, therefore it draws its screen starting at byte position 0x600 (1536) which is the normal default for Extended Color Basic (right after the text frame buffer).  This is the same location that Disk Extended Color Basic stores its file control block information.  Therefore if you run it, press RESET to stop it, and wish to do anything disk related, type in POKE 117,0:EXEC 40999 to do a warm reboot of the CoCo first.  Otherwise, Disk Extended Color Basic will corrupt the disk and destroy the contents of it.

Notice the USA on the submarine?  My step-dad wanted me to put it there back when I wrote the original one in 1986.  Evidently he is a very patriotic guy and I carried it forward to this version.  ;)


This program is an exercise in having the computer print out the name of the number that you type in words.  Just type a number, press enter, and watch the computer write its name.  Do it over and over until you get bored.  Try to break it with really large or small numbers.  I broke it with 1,000,000 (dang, I thought I did a better job than that).

It also seems to break when you specify digits behind the decimal (two for two!).


I remember staying out of school one day for being sick (probably pretending) and I was toying with the Color Computer's ability to scroll the screen vertically upward really fast with the print statement.  Years earlier (before I got a computer) I was trying neat effects of having the computer move arrows upward using this technique.  Just the basic stuff that people often did with these computers in the 1980's.  Stuff like:

    10 PRINT "Some garbage like your name."
    20 GOTO 10

This time, I decided to see if I can write some sort of game with this technique.  A few hours later, snake was born.  The reason why I called it snake is because the "at symbol" gets scrolled up with the rest of the screen and appears to be a long snake.

Space War

By reducing the size of the rocket (taken directly from the manual) and adjusting its drawing angle, I managed to have the computer draw two opposing rockets.  Making them smaller enabled me to use a smaller array and increase (somewhat) the performance of the game.  This game was written in BASIC and uses PMODE 4 graphics.  This game is a (rather limited) clone of the classic game that bears the same name.  It is rather simplistic, actually, and is usually one of the first games I write for another platform (it was ported to QBasic sometime later).


Or, Electronic Football (as called by the actual game) was an exercise for me to duplicate (and somewhat enhance) the original electronic football game produced by Mattel Electronics on the Color Computer.  This game is the result of my efforts.  It was written multiple times with enhancements added each time.  I recall one version of the game where the quarterback did 'square passes.'  Basically, the football went straight up or down until it's Y coordinate matched the player receiver, then moved horizontally to reach the receiver's position.  This version properly computes the slope and moves the football in a linear fashion to the position where the receiver was when the pass was initiated.

You play the receiver (red dot), the quarterback is the orange dots, and the defensive team are the yellow dots.

Russian Roulette

Taken from the examples given in the programming manual that came with the Color Computer.  A few enhancements here and there but overall the same basic game.

Sea Battle

I wrote this game as a enhancement to the original sub battle game that I wrote earlier but before I learned machine language programming (and writing the improved sub battle game).  It uses PMODE 1 graphics and smaller sprites to enhance the performance of the game.  I also enhanced it by writing three modes (or levels) into the game.  In one mode, you are a submarine battling a ship, in another you are a ship battling a submarine, and in the third mode you are a ship battling three submarines.  Now if this game bears any resemblence to the 1979 Sega game Invinco / Deep Scan that was no accident.  This game was actually the inspiration for both this game and the Sub Battle games.

Oh, and I did not put the USA on any of the submarines or the ship.  My step-dad did not get to show his patriotism in this game.  Besides, the sprites were too small and the resolution was too small to make it legible.

Drawing Board

This was simply and improvement over the program listed in the programmer's manual.


This was one of my larger projects that I wrote in my first year taking electronics at Vo-Tech.  I actually had to scale back some of the requirements to get the game completed.  It uses semi-graphics 4 mode and is written entirely in BASIC and is therefore SLOW.  It was never enhanced (like its sequel was) so this is basically it.  The slowness makes it very painful to play.

You control the white dot and you must avoid all the orange dots (originally I was going to make them yellow, red, cyan, and orange but I had to scale that back).  You collect the non-moving idle (not idol as I believe I indicated in the game itself) dots for points and bonuses.  You can shoot the cyan (light blue) walls and destroy them but the pink walls are indestructible.  There is also an Easter egg bonus where if you are in a particular spot and you press @ or SHIFT+@, a special bonus dot appears.  Gather all the idle dots (or at least enough until the exit appears) and then exit the maze to go to the next one (20 in all).

Another scale back in features was the removal of a boss monster that would appear at the end of the 20th maze.  I also wanted to make this more of an adventure game than it currently is.

This games appears to be corrupted on the GAMES2 disk file, but works fine on this disk file.


I wrote this game sometime later as a kind of more simplistic version of Maze-a-mania.  It is actually an enhancement of my earlier maze games that I wrote back when I first got my computer.  None of them were saved as I did not have a reliable storage mechanism at the time.  This game took what I learned while writing Maze-a-mania and added the feature of enabling the player to draw his or her own mazes to play in.

The object is simple, simply stay away from the other dots chasing you until the time expires.  Then a door will open up at the top of the screen.  Exit through this door to finish the level.  This game also has a weird feature that I added just for fun, it allows for up to eight players and draws the player's dot to the color that corresponds to the color code of the player number (1 - 8).


This game is an exercise in string manipulation using BASIC functions.  I used it primarily to learn how to manipulate strings in BASIC.  It is a real crude game of hangman that does not support graphics (only text).

Math Quiz

This program is an exercise in writing programs that quiz you on doing math problems.  Pretty simple and it includes a game called Guess My Number which is a replica of the game I learned to play on a Tomy Electronics handheld game I played with during the summer of 1985.

Snake 2

This game is an enhancement of the original snake game I wrote.  A few enhancements include support for five players each with its own unique snake, pac-man like levels, and some final scrolling levels that use semi-graphics 4 graphics.  It has no real plot but my friends and I at the time created a kind of plot for it involving snakes trying to enter Indian (Native American) camps and escape them to become king of the snakes.  Okay, a rather dumb plot but it at least explains the arrows.

Watch out for the lava (red blocks), pitfalls (black blocks), and walls (white blocks) in the final 5 stages on your way to the crown.

I see I misspelled congratulations on this (and other) games that I did.

Maze-a-mania 2

This is an enhancement and sequel to the Maze-a-mania game.  It consists of 36 mazes divided into 6 levels.  Written entirely in BASIC, this game is extremely slow and like Maze-a-mania, very painful to play.  A few enhancements include the ability to pick up and use bombs and keys, as well as revealing extra hidden treasures after blasting doors (or boulders) with the bombs.  In addition to this, there are 'warp dots' that move you quickly to other mazes in the level.  Since it uses semi-graphics 4 graphics, everything is represented by dots.

The blue dot is the player, the orange dots are the 'bats,' the yellow dots are the bombs, and the white blocks in the maze corridors are the boulders / doors that can be blasted by them.  The green dot is the coin and there are also pink dots (keys), and red dots (the warp portals).  This game was also later enhanced using machine language subroutines in a later version (which was lost because I overwrote it with the numbers program).  This particular version (at its enhanced version) is title Maze-a-mania 2: Lost Items due to the 'items' that you have to pick up to win the game. I attempted to write a larger version of this game in 1991 with more enhancements such as 72 mazes divided into 8 levels, boss monsters, more items per maze, and improve its speed by writing it entirely in machine language.  That game, however, was never completed as I moved on to the PC world from the Co Co.