SP0256-012
Overview
Clock Speed | 1.6Mhz |
The SP0256-012 is a specific variant of the SP0256 Speech Processor. The SP0256 combines a microsequencer and a 2K bit masked ROM with an LPC-12 speech core that was derived from a previous device, the SP0250. The "012" designation indicates an SP0256 programmed with Mattel's Resident ROM (RESROM) image, as used in the United States.
Other known SP0256 variants known to exist include:
- SP0256-AL2. This is probably the most common variant, as it was sold by Radio Shack for an extended period of time. The SP0256-AL2 contains a set of allophones, thus enabling text-to-speech applications. Allophone-based speech is rather low quality as compared to the dedicated samples in the SP0256-012's RESROM, or in Mattel's voice-enabled games.
- SP0256-019. This variant is found in the Odyssey 2's "The Voice" attachment. It a number of game oriented phrases, as well as hooks for a rather large library of speech ROMs. One of these speech ROMs appears to contain the same allophone library as appears in the SP0256-AL2.
- SP0256-017. Unknown contents. (Believed to come from a talking clock?)
The speech data from other SP0256 variants can be dumped and reused on the Intellivoice via the SPB640 Speech FIFO in new programs. This is, for instance, how Tag Along Todd 2 in SDK-1600 speaks.
General Behavior
TBD
Registers
PC | 19-bit, bit-aligned program counter |
PAGE | 4-bit address extension register |
MODE | 2-bit precision select, register-set select |
RPT PFX | 2-bit repeat count prefix |
STACK | 16-bit 1-deep address stack |
COMMAND | 8-bit pending command from ALD |
B0 | Stage 0 Bandwidth Coefficient |
B1 | Stage 1 Bandwidth Coefficient |
B2 | Stage 2 Bandwidth Coefficient |
B3 | Stage 3 Bandwidth Coefficient |
B4 | Stage 4 Bandwidth Coefficient |
B5 | Stage 5 Bandwidth Coefficient |
F0 | Stage 0 Frequency Coefficient |
F1 | Stage 1 Frequency Coefficient |
F2 | Stage 2 Frequency Coefficient |
F3 | Stage 3 Frequency Coefficient |
F4 | Stage 4 Frequency Coefficient |
F5 | Stage 5 Frequency Coefficient |
A | Amplitude Register |
P | Pitch Register |
AI | Amplitude Interpolation Register |
PI | Pitch Interpolation Register |
RPT | 6-bit Repeat Count |
Instruction Set
Range | Opcode |
---|---|
$00 | RTS |
$01-$0F | SETPAGE |
$10-$1F | LOADALL |
$20-$2F | LOAD_2 |
$30-$3F | SETMSB_3 |
$40-$4F | LOAD_4 |
$50-$5F | SETMSB_5 |
$60-$6F | SETMSB_6 |
$70-$7F | JMP |
$80-$8F | SETMODE |
$90-$9F | DELTA_9 |
$A0-$AF | SETMSB_A |
$B0-$BF | JSR |
$C0-$CF | LOAD_C |
$D0-$DF | DELTA_D |
$E0-$EF | LOAD_E |
$F0-$FF | PAUSE |