SP0256-012

From Intellivision Wiki
Jump to: navigation, search

Overview

Clock Speed1.6Mhz

The SP0256-012 is a specific variant of the SP0256 Narrator speech processor. As seen in the block diagram below, the SP0256 combines a microsequencer and a 2K x 8 bit masked ROM with an LPC-12 speech core that was derived from a previous device, the SP0250.

Block Diagram

The "012" designation indicates an SP0256 programmed with Mattel's Resident ROM (RESROM) image, as used in the United States. According to the Blue Sky Rangers, Mattel developed or planned to develop variants for other languages intended for other countries. It seems none were produced. There are other known SP0256 variants, including:

  • 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 has 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

Microsequencer Registers
PC19-bit, bit-aligned program counter
PAGE4-bit address extension register
MODE2-bit precision select, register-set select
RPT PFX2-bit repeat count prefix
STACK16-bit 1-deep address stack
COMMAND8-bit pending command from ALD



Speech Core Registers
B0Stage 0 Bandwidth Coefficient
B1Stage 1 Bandwidth Coefficient
B2Stage 2 Bandwidth Coefficient
B3Stage 3 Bandwidth Coefficient
B4Stage 4 Bandwidth Coefficient
B5Stage 5 Bandwidth Coefficient
F0Stage 0 Frequency Coefficient
F1Stage 1 Frequency Coefficient
F2Stage 2 Frequency Coefficient
F3Stage 3 Frequency Coefficient
F4Stage 4 Frequency Coefficient
F5Stage 5 Frequency Coefficient
AAmplitude Register
PPitch Register
AIAmplitude Interpolation Register
PIPitch Interpolation Register
RPT6-bit Repeat Count

Instruction Set

RangeOpcode
$00 RTS
$01-$0FSETPAGE
$10-$1FLOADALL
$20-$2FLOAD_2
$30-$3FSETMSB_3
$40-$4FLOAD_4
$50-$5FSETMSB_5
$60-$6FSETMSB_6
$70-$7FJMP
$80-$8FSETMODE
$90-$9FDELTA_9
$A0-$AFSETMSB_A
$B0-$BFJSR
$C0-$CFLOAD_C
$D0-$DFDELTA_D
$E0-$EFLOAD_E
$F0-$FFPAUSE