I finally got around to opening up one of my Voltmace Database consoles today. It wasn’t as easy as I thought, but I was able to take lots of photos of the hardware. My main motive was to see what condition it was in, and decide whether to replace any electrolytic capacitors before attempting to power it up. At some point I also want to create a circuit diagram of it, but this is going to be a bigger job than I imagined.
The first thing I noticed was that the console seems to have originally been designed to have an internal loudspeaker. The console case has a hidden grille, with a circular mounting ring and screw holes. The circuit board has space for missing components, I’m guessing to make an audio amplifier, and the bottom of the console has a cutout that might have taken a switch, probably to turn the speaker on or off.
The circuit board is double sided, but not plated through. Where a through connection is required, a pin is inserted and soldered on both sides.
I was also interested in the exact vintage of the machine. The retail box had a sticker with the Voltmace name and their Park Drive address. The console itself had the earlier Videomaster brand on the front, but the back had a Voltmace label with their earlier Church Street address. The latest date code I could find was 8134 on one of the voltage regulators.
0BC0 : 0D 1F 94 loda,r1 X1F94
0BC3 : 51 rrr,r1
0BC4 : C9 FB strr,r1 *X0BC1
In this example, r1 is saved back to its original location (1F94) using indirect relative addressing. This saves one byte of code. The disassembler doesn’t resolve the full address of the save operation, which makes it a little hard to follow. I shall fix this with comments eventually, unless anyone can suggest a better way.
Way back in November 1982 I finished writing Leapfrog, a game for the Voltmace Database console, and based on the arcade game Frogger. In 2003 I came across a mention of Voltmace on a old-computers.com and did a short interview for them, but it wasn’t until 2017 that I got interested in retro programming, and discovered the WinArcadia emulator. The binary of Leapfrog doesn’t run on the emulator, so I made a start at disassembling it to try and figure out where things are going wrong and maybe helping to improve the emulator. (Somewhere along the line I had tracked down my boss at Voltmace, but unfortunately he had recently thrown out all the stuff he had from the long defunct Voltmace.)
I used the disassembler DASMx which made a pretty good stab at the job right out of the box, and I made a start at trying to document a paper copy, with limited success. However, life got in the way as it so often does, and I’m only now getting back to the task. This time around I read the instructions that came with DASMx (!) and understand the need for the symbol file and how to make best use of it. After multiple loops of disassembling, checking the results and slowly figuring out what is data and what is code, I am getting close to having something useful. I’m now at the stage of trying to assign somewhat meaningful labels to all of the RAM locations and some of the code branch locations and the few subroutines that I used (more on that later). I’m still a long way off fully understanding why I test certain bits, increment certain counters, or did things the way I did. It is turning into a huge cryptic puzzle, but one I’m enjoying immensely.
It would have been nice to have had the original source file though!
Animation of video games follows the same principles as on film. This short video from TED-Ed is a useful introduction to the subject.
WinArcadia is a freeware program that not only emulates a number of video game consoles, but also includes an assembler and debugger. It can be downloaded at Emerson Arcadia 2001 Central under the Software heading.