The Hardware Oddities: VC-1020, Magic Voice Cartridge, C64 80 Column Card, VC 40 IEEE-4888 Cartridge, Digi-Drum, "Music Synthesiser", Touch Screen Monitor, Tseng PET Graphics Board, Light Pen, SuperCartridge, MBS-100/150/CP, Commodore MIDI Keyboard
.jpg Image of the VC-1020
(62K, courtesy Nicolas Welte). This shows the shield up, exposing
the slots and connectors.
.jpg Image of the VIC-1020 (52K, courtesy Jacob Lindberg)
Thanks to Nicolas Welte and Asbjoern Djupdal for most of this entry.
The VC-1020 is basically an expansion box for the VIC-20. Released in Europe, as the name implies (although both Andre Reid and Eytan Kaziberdov report that it also appeared in Canada), the VC-1020 provides six cartridge slots, a slot for the RF modulator (may have included it, but this is not known for sure), and support for a TV on top. The sixth port is horizontal, allowing oversize cartridges like the IEEE-488 interface and those using external cables to trail out the back; the VIC-20's expansion port plugs into the cartridge expander. Unfortunately, the other rear ports are not replicated, so things like serial bus and Datasette cables had to be threaded in through the back and plugged into the unit that way. Rather annoying, but the device was in general a sound design. Many hacked homegrown clones of it emerged, proving that imitation truly is the finest compliment. Jacob Lindberg reports his Swedish unit is actually labeled VIC-1020, which makes sense since the VC designation was typically West German.
Text Vocabulary List (By Number) (thanks to Darren Spiteri). Compare this list with the vocabulary list actually printed on the Magic Voice box (.jpg, 178K), which is listed by word.
MP3 Voice Samples (access-controlled; please follow prompts)
Sample from Gorf (49K MPEG-1 Layer 3 audio, 96Kbps CBR encoding). This is the introductory speech from the Gorf cartridge when connected to the Magic Voice.
Output from Sample Program (153K MPEG-1 Layer 3 audio, 96Kbps CBR encoding). The sample program in the Comments below was used to generate this audio using the Magic Voice's default vocabulary and vocal style.
The Magic Voice, introduced at CES 1984 with the 264 series, is a Commodore speech synthesis module that accepts the computer's audio out and mixes its speech output with it independent of the SID, based on a custom chip (the Toshiba T6721A) developed by the actual engineers of the legendary Texas Instruments' Speak and Spell family of teaching toys.
In a 1984 Gazette interview, developer Richard Wiggins, head of Commodore's Speech Technology Division, explained that the Magic Voice is based on a Linear Predictive Coding (LPC) speech synthesis method, using a digitised fixed vocabulary in conjunction with various modulators designed to model the human vocal tract. (This is unlike the ingenious SAM "Software Automatic Mouth" which, while ultimately still relying on samples, uses sampled phonemes instead -- not words -- and strings them together with a very adept text-to-speech converter.) Interestingly enough, or maybe because the engineers were just plain lonely, the cartridge defaults to a female voice which is invariably described as very pleasant. Commodore marketing chose the female voice for educational purposes, citing studies that said children seemed to respond better to female voices. (Particularly boys, I guess?)
The vocabulary is billed as 235 words, but this is somewhat optimistic -- morphemes such as "th-" and "-ing" are considered words, as are the numbers one to ten, and the selection is also rather dubious (probably not much call for the word "Commodore" except in Commodore advertisements :-). However, the quality is quite good, and because the words are digitised speech captures carry surprisingly realistic inflection and voice expression. While the sampling rate is clearly no better than 4KHz or so, it is certainly more than enough to be intelligible.
Commodore also planned a variety of software that was supposed to work with the unit -- even cartridges could trigger speech thanks to a passthrough on top of the Magic Voice. Very few titles actually appeared, of course. The most famous Magic Voice-enabled title is the Wizard of Wor cartridge, which software-modifies the unit to speak, in a menacing male tone, utterances such as "your bones will lie in the Dungeons of Wor -- ha ha ha ha" and "my pets are getting hungry." Gorf was also billed as speech-ready, confirmed by David Vohs, who has successfully used the cartridge with his unit; when I demonstrated the Magic Voice at the Vintage Computer Festival, I also used Gorf. (By the way, the speech for Wizard of Wor gets reeeeeallly annoying quickly, but it's fairly irritating in the arcade version too, so I guess this is realism at work.) Nick Coplin has also found a cartridge called A, Bee, C's which *requires* the Magic Voice; it will not function without it. Commodore planned to turn this title into a series, but the announced sequels Spelling Bee and Counting Bee were apparently unreleased.
The Magic Voice and the 128 do not get along well because the Magic Voice does not play nice with the expansion port lines; it only asserts its final ROM banking signals after the 8502 has initialised (more accurately, according to Nicolas Welte, it starts up in Ultimax mode, copies code to $C000 [see below], and then suddenly changes the lines to restore BASIC and Kernal with the remainder of its addressing space at $A000). Because the 128's MMU is not expecting the lines to change in realtime, the machine is never set to the proper final memory configuration and the end result is a freeze. This was the rationale for 128 designer Bil Herd putting the Z-80 processor in the 128 as the master on startup since the Magic Voice's antisocial banking activity won't affect it. To get your Magic Voice and 128 to cooperate, hold down the C= key as you turn on the computer. (More about the 128's design misadventures is in the entry for the D128.)
Commodore's intent was to make the device easily programmable, and to that end they largely succeeded. A BASIC extension implemented SAY (speak), RATE (controls delay between words), VOC (load external vocabulary) and RDY (allows synchronization with speech chip, since speech was asychronous and in the background) commands (which also exist on the 364 as it also used the Magic Voice hardware). The MPEG Layer 3 clip above was created with this program:
10 SAY"I":SAY"AM":SAY"THE":SAY"COMMODORE":SAY"SIX":SAY"TY":SAY"FOUR":SAY"AND" 20 SAY"I":SAY"CAN":SAY"TALK":SAY"THANK":SAY"YOU":SAY"FOR":SAY"HEAR":SAY"ING" 30 SAY"THIS":SAY"PROGRAM":SAY"GOOD":SAY"BYE"Irritatingly, SAY does not allow multiple words in the string provided it. Another problem is that the space between words is painfully long, especially for compounds like "SIX" and "TY". This is particularly obvious in the speech sample. Something like this helps:
RATE1:SAY"SIX":SAY"TY":RATE0which sets the speech delay between words as low as possible, says the two words to be conjoined, and puts delay back to default. The words still do not flow wholly naturally, but it is an improvement.
Wiggins notes that the RDY keyword can be used to make programs that can work with or without the Magic Voice. To do so, set RDY to 0 without the module plugged in, and save your program. It will then work in either configuration.
The Magic Voice hardware was also accessible through a jump table (thanks Darren):
SRESET=$C003 - Resets speech unit SPSTAT=$C006 - Get status. Z flag set if ready, N flag otherwise. SAYIT =$C009 - Say word. Set A. to LSB of word, X. to MSB. The 16 bit capability is for the (vapour?) expansion vocab. Just use A. SAYRAM=$C00C - Same usage as above but for "hitting the metal". No other data. SPEED =$C00F - Set rate. A.=1-A SETTAB=$C012 - Set start add of user supplied speech data. A.=LSB, X=MSB. SIGNAL=$C015 - More barely documented stuff, enable vectoring to completion code. (?)Unfortunately, this was not as well documented as the BASIC extensions, but the functionality was easy to access (if inconvenient, since the driver code sat right in the $C000 space, a very untenable location). Software was also in the master schedule: a planned expansion disk would boost the vocabulary up to 10,000 entries, even allowing the user to digitise his or her own (RUN 4/1984 puckishly points out that "vulgarities will not be included!"), and Commodore was also talking the normal marketroid hogwash about educational titles and business applications to take advantage of the unit; among these was the apocryphal Magic Desk II. There were also plans to develop true text-to-speech software (finally!), a prototype of which was also demonstrated at CES 1984, but Commodore never released it either.
The internal electronics depicted in Danny's picture above are as follows, going from the MOS chip at top and then clockwise: MOS 6525B (4383), MOS 251476-01 (8A-06 4341) system ROM, General Instruments 8343SEA (LA05-123), Toshiba T6721A (3L) sound generator, CD40105BE (RCA H 432) and a 74LS222A logic chip. The 6525, according to Nicolas Welte, is not a version unique to this unit, but you'll need to steal it from a 500/600/700 or 1551, which unless the donor unit is dead is not exactly a nice way to treat unusual hardware. Oyvind Antonsen notes that the Commodore IEEE-488 interface has one too, though, if you have a spare, and so does the A570.
The Magic Voice's master chip was regarded with some derision in the Commodore RandD offices; according to Bil Herd, the custom DSP chip had a "pretty please" register. That is, you had to ask the chip twice ("pretty please") to get it to execute a command stored in its registers by writing the request register a second time -- in the Magic Voice ROM, Richard Atkinson reports that a common idiom is to see $DF81 (6525 Port B) loaded for the 6721A with the command in bits 0-3 and bit 4 clear, then OR'ed to turn bit 4 on and written again!
In typical Commodore management fashion, the Magic Voice chip was developed with utterly no input from Commodore designers and engineers, and inevitably was roundly criticized by them, along with the ill-fated 8563 (VDC) in the CBM 900, D128 and the 128. (Dave Haynie remembers the "Magic Voice" being referred to internally as the "Tragic Voice.") Unbelievably, the Magic Voice chip outlived its original application and survived to be implemented in the unreleased 364, using $FD20 for the "pretty-please" (based on Grosz Attila's disassembly) before the death of that unit and the entire 264 series killed the Magic Voice project altogether. A few units were released, and some sold -- in fact, several (Darren Spiteri's, David Vohs', and mine) are confirmed to exist today -- but the application software Commodore promised for it, save the cartridges noted above, never materialised and the cartridge languished in obscurity until Commodore discontinued it and the TED project for good.
The 364 has a slightly different vocabulary list, despite the same basic hardware (q.v.).
This astonishing unit, in the possession of Jon "Moloch" Mines, is nothing less than an 8563 VDC in a cartridge, designed for a 64. It is obviously a production model, but it is not known if it ever actually entered the assembly line.
This unit, of unknown age, is not so interesting because of what it does but rather what it's called; a VC-40 would suggest it was targetted at a VIC-40. Although the P500 was called the "VIC-40" at least in Sweden by some sources, the P500 already has an IEEE-488 port, so it wouldn't need this. Unfortunately, Bob does not know if it still functions.
.jpg Closeup of Badge (6K)
Thanks to David Vohs for the initial report. This digital drumpad, demonstrated at 1983 Winter CES, had its own internal SID chip and was intended for the VIC-20 or 64. Introduced with the "Music Synthesizer" and probably died with it (read on), but did have an MSRP announced ($59.95).
Thanks to David Vohs for the initial report. Move over, SIDStation: if one SID sounds good, how about three? Introduced 1983 Winter CES with the Digi-Drum (and no known official name), this 36-key synthesizer peripheral was intended for the VIC-20 or 64. Information in TPUG 3/84 forwarded to me by Todd Elliott states that this project was killed off officially by CES 1984 when stocks of SID chips needed for its manufacture proved insufficient (a shame -- this might have yielded some phenomenal music if suitably programmed by someone like Rob Hubbard or Martin Galway); this information also implies the Digi-Drum died in the same stroke.
Interestingly, a very late mention of an anonymous "musical keyboard and an electronic drum set" in RUN 5/84 implied that both the Digi-Drum and synth keyboard were still in progress then.
Few people know that Jack Tseng, who formed Tseng Labs in 1983 and was best known for his company's powerful PC graphics cards and accelerators before the company's erosion in the era of S3 and ATI, actually started life as an engineer at Commodore. One of his early works, according to Bob Russell, was this raster graphics board from around 1981-2; its features are unclear but Bob believes that it was designed for high-resolution graphics, with a screen resolution likely greater than 640x480. Although it was likely intended for the B/P series, this unit is for the original PETs and bears a handwritten ROM containing the system software. This prototype was never released in production form, and Bob does not know if it still functions. On the board view, the video output is through the DIN port at the upper left using an uncertain pinout.
There is a possibly related mention of a similar device in an E-mail interview with Michael Tomczyk, one of Commodore's lead executives during the period.