Video circuits · Voltmace Database


The Voltmace Database, along with many other UK video game consoles and home computers of that era, sent their PAL-I output to an analog TV set. To do that, the output had to be modulated on an RF signal. This was done inside a little tin box. The Database used an ASTEC UM-1233 tuned to channel 36.

While I don’t care too much about the analog wizardy that goes on inside this box, I thought I should research it a little for the sake of completeness, and for help in adjusting voltage levels if I ever hope to get a useable TV signal. There doesn’t seem to be a whole lot of detail about it anywhere, but this article (translated by Google, I think from Hungarian), seems to describe the circuitry in depth.

Perhaps more useful are these snippets of information from Motorola application note ” AN4921D A video display board for CD-i development” :

The MC13077’s composite video output (COMP V) connects to both of 1C45’s non-inverting inputs. This means that both of the MCi4576A’s amplifiers output composite video. One amplifier drives to CENELEC
/RS-343 levels, while the other provides an input to an RF-modulator (1C46). As the UM1233 RF-modulator requires a 0.64V peak-to-peak input around a 2.83V black level, the associated amplifier output signal
requires some level conversion. Resistors R27, 28 reduce the peak-to-peak voltage and a 470μF capacitor (ClO) provides AC-coupling. The LM317LZ regulator (1C43) and associated circuitry provides a DC-bias for the AC-coupled signal.

Voltmace Database

First look inside my Voltmace Database

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.


Indirect relative addressing

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.

DASMx · Disassembly · Leapfrog · WinArcadia

The puzzle of a lifetime

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 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!