« Home | Google Reader IE7 Flatline » | VSTO SE links and thoughts » | GoogleReader+Firefox2+TabletPC » | Core 2 Duo bang for your buck » | Viewbox scaling in ElementHost » | EID and Standalone XAML » | ClickOnce Adventures » | Dns.GetHostEntry: No such host is known » | MacroView Studio VNC » | MVS Reports Script Tips »

Killer Tomato Memory Lane

I was listening to a Plumbers at Work podcast and they talked about Google code search for a bit. As a lark I did a quick search to see if any of my source code has turned up on the public web. Surprisingly the following came up as one of the results which made me laugh out loud.


This was the first piece of software work that I was actually paid money for way back in my younger days. My first exposure to programming was at high school. In year 8 (1978), the year above us had remote access to a PDP machine which was kept in a small locked room. All data entry and terminal output was via a printer based terminal. To me it was all technical voodoo that the Year 9’s had access to. The following year, finally my mates and I finally got access to the new “top of the line” Index 2000 computer. This was a Z-80 based computer housed in a single unit with keyboard, 80x25 black and white text screen, 8 inch floppy disks and a basic interpreter. Man I wish I could find a picture of that sucker. We mainly wrote 80x25 text games for it at school and it became quite addictive. Some of my friends actually broke into school to use it on weekends.

The games I wrote included a version of asteroids which leveraged the 80x25 text scrolling to move the asteroids (O and o characters). It didn’t have any graphics just text output. It was also too slow to move large numbers of text characters around the screen to properly simulate large numbers of asteroids. Because of this, the automatic line scrolling of the screen was leveraged to get large numbers of asteroid characters to move. The space-ship (< ^ > V characters) could move freely around the 80x25 space and included basic physics given thrust and movement commands. The same applied to the missiles (. character) fired by the space ship. Another game was a moon landing game with the lunar landscape defined by text character sequences and basic gravity/thrust physics affecting the lunar lander movement.

Because of this exposure to the wonderful Index 2000 and its basic programming language, I had a hankering to get my own computer during my teenage years. Unfortunately I didn’t have access to the money needed to by one. There was many a time spent drooling over Apple II and  Commodore Pet machines and PC trade shows - sad and geeky but true. Finally I saved up the $200 or so needed to buy a Dick Smith VZ200. It hooked up to a TV, had 320x200 8 colour graphics and a cassette tape for loading and saving programs. Oh yeah. I think the model I bought had a 2MHz CPU and 16K of RAM, but thats just from memory.

Creating 320x200 graphic games on the VZ200 in basic was frustrating as the run speed was so slow. You couldn’t practically animate more than a few sprites at a time at even slow speeds. For that reason, I started to learn Z-80 machine code. There was no assembler for the machine at the time. So the approach taken was to write a basic program with the machine codes specified in an array and then POKE the code into memory at program load time. This gave an enormous performance improvement as machine code was directly modifying the video memory. It also meant that I learnt the Z80 instruction set machine code values off by heart by the time my first VZ200 program was finished.

That program was called “Attack of the Killer Tomatoes” and was similar to one of the arcade games available at the time. You were stuck in a generated maze with a bunch of killer tomatoes that were out to get you. Your only defence was to be dig holes which the tomatoes would fall into and die a horrible death. As each level was passed more tomatoes would be added to the maze. They would also get faster the longer the time spent in the maze. Dick Smith added the game to the VZ200 catalogue and sold the game as cassettes wrapped in basic plastic in their stores. The royalties gave me some spending money and helped pay for a desk that I used through University and still have in a back room today. Dick Smith couldn’t have made much money from selling these type of games, so it was pretty cool that they fostered a small community for VZ200 software at the time

Anyway.. back to the intro of this post. The Google code searched showed that the binaries for the killer tomatoes game was available on a retro emulator site. I had long ago lost the original basic loader and machine code values for the program, so it was a pleasant surprise to see it as a downloadable image.

VZ200 game download site: http://vzalive.bangrocks.com/downloads/downloads.html

VZ200 emulator download page: http://vzalive.bangrocks.com/emulators/

Interview with the emulator developer: http://vzalive.bangrocks.com/interview/

The emulator running on Windows XP SP2 runs the old game, but the keyboard entry doesn’t work so the game character just sits there waiting for a death by tomatoes. The game image is only 4K, but I do remember sweating over the machine code in that piddly 4K! (Literally sweating as it was an Australian summer and we didn’t have air conditioning in those days)


Cool - did you know: there is a VZ mailing list on Yahoo Groups called vzemu? You didn't mention that the game was also published in print in the VZ200 Second Book of Games.

Also, I have a Wiki at vz200.ajlaird.id.au/wiki

Andrew Laird.

Thanks for plugging my VZ-ALiVE site! We loved the game then and still do now :) It's a retro-memory for many VZ fans.

Out of curiosity, did you happen to write any other VZ software that DSE sold? (example: spaceram or crash --- they look similiar in screen design/layout)


I only now just saw your comment i.e. blogger didn't email me the comment occurrence originally.

Killer tomatoes was the only VZ game I wrote that was sold.

By the way, the keyboard does work on the emulation, it's just that the keys are mapped and you need to know the mapping.

Andrew Laird.

Post a Comment

Links to this post

Create a Link