Sunday, February 17, 2013

Geek Post: Talking Valentine Card I Built in 1991 Still Works!

UPDATE: Welcome, Hack a Day readers!  You might also enjoy my work with the STM32F4.
 Please click here to see my latest posts when you're done!  Thanks!


Back in 1991, Ol' Backwoods Engineer was still a spring chicken, and a newlywed.  My wife and I were going to a big St. Valentine's Day shindig at our church, and the thing was, the guys were all supposed to make (not buy) a Valentine's card for our wives and significant gals.    The gals were supposed to guess which card was theirs based on the reading of them.

Well, y'all know Ol' Backwoods has to go big, or go home.  So, I skipped a few classes in Vector Calculus and some others, and built this Talking Valentine's Day Card, and wrote the firmware for it.

Here is a video of it still working in 2013!  It is saying, "OK!  Hello, I am your Talking Valentine Card.  'Love Is A Many-Splendored Thing' and in this case also needs batteries!"

My wife knew it was hers as soon as it started talking.  She didn't even need to hear the part about "Love is a many-splendored thing" which was a song in our wedding.  She knew, geek card had to be from her man.  And she was right.

This Talking Valentine card is one of my wife's prized possessions.  I have replaced batteries and battery holders over the years, but the rest of the thing is all original.

Taking a look at the internal construction, on the left we have a 4-AA battery pack putting out 6V, that is regulated down to 5.1V by a Zener and a resistor.  That thing gobbles the current, since most of the chips in it are the old NMOS variety.

You might also notice that it is wired with a combination of wire-wrap and point-to-point wiring.  All the crystals (there are 4 of them!) are soldered directly to the packages of the ICs, or to the wire-wrap sockets.  No loading capacitance was required with all that hanging wire!

Below is a zoom of the rear of the circuit board.    Wrap-IDs, the little labels that went over wire-wrap sockets, are still available today, believe it or not.  They are very handy.

Below is a shot of the front of the board.  I have added some comments in red of the various chips, but they are probably too small to see.

The top-most 40-pin chip is an 8035, an NMOS ROM-less variant of the then-popular MCS-48 microcontroller family from Intel.  (Intel is out of the microcontroller business now!)  It rocks a ginormous 64 bytes of RAM.

Below that, on the left, is a UV EPROM containing the firmware for the microcontroller.  To save room on the board, I used an 8764 EPROM that has built-in address latches, as the 8035's address bus has the lower 8 bits multiplexed with the data bus.

To the right of the EPROM is the General Instruments SP0256A-AL2 speech phoneme generator, that once upon a time Radio Shack used to sell.  Of course, General Instruments created the PIC microcontroller, which begat Microchip Corporation.  I didn't have the exact crystal frequency the SP0256 required, so I used a colorburst crystal (3.57945 MHz), which were plentiful then, because every TV set had one.  With digital TV taking over, colorburst crystals are not as important.

Below the EPROM is a programmable logic device, a UV-erasable PALC22V10. I wrote the pattern for this device using an ancient HDL compiler called PALASM, which some of the old-timers may remember.  This PAL acts as an address latch for the text-to-speech processor below it, and also does some glue logic to tie the whole circuit together.  It saved space from having to have different packages of TTL logic.

To the far right is an LM386 audio amplifier.   I wish I had increased the gain, as the speaker is still not very loud.

Below that is the General Instruments CTL256A-AL2 text-to-speech processor, that Radio Shack also used to sell.  This chip is a masked-ROM TMS-7000 (from TI) microprocessor, whose job is to translate English words and phrases into speech phonemes for the SP0256.  I had to spell some words strangely to get it to sound right.

I have the 5-1/4" floppy is that contains the source code, and I'll have to find a computer that can read it!  Below are the schematics, mechanical plan, and the source code for the PAL.

Sure, nobody's going to replicate this, but it gives you an idea of how things were done back in the day.

PALASM source code for the PALC22V10:

My original hand-drawn schematics:

 Please click here to see my latest posts when you're done!  Thanks!


  1. What a freaking mess!

    Excellent work! :-))

  2. Sounds like the freq. counter i made at uni... :-)

  3. Any chance of releasing the source code for this project?