SP0256-012

From Intellivision Wiki

Revision as of 09:12, 4 December 2010 by Mr z (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

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:

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
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox