Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 722

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 722

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 705

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 705

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 722

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 705

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 705

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 705

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 705

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 722

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 722

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 722

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 722

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 705

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 700

Warning: Invalid argument supplied for foreach() in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 701

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 705

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 722

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 722
SP0256-012 - Intellivision Wiki

SP0256-012


Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/content/30/6867330/html/intellivision/wiki/includes/MagicWord.php on line 722
From Intellivision Wiki

Jump to: navigation, search
(Overview)
m (Protected "SP0256-012" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)))
 
Line 4: Line 4:
<tr><td>Clock Speed</td><td>1.6Mhz</td></tr>
<tr><td>Clock Speed</td><td>1.6Mhz</td></tr>
</table>
</table>
 +
 +
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. 
 +
 +
[[Image:Sp0256b_block_diagram_16color.png||Block Diagram]]
 +
 +
The "012" designation indicates an SP0256 programmed with Mattel's [[SP0256 Resident ROM|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|SPB640 Speech FIFO]] in new programs.  This is, for instance, how Tag Along Todd 2 in SDK-1600 speaks.
==General Behavior==
==General Behavior==
Line 10: Line 21:
==Registers==
==Registers==
<table border>
<table border>
-
<tr><td>[[PC]]</td><td>16-bit program counter</td></tr>
+
<caption>Microsequencer Registers</caption>
-
<tr><td>[[PAGE]]</td><td></td></tr>
+
<tr><td>[[SP0256 Program Counter|PC]]</td><td>19-bit, bit-aligned program counter</td></tr>
 +
<tr><td>[[SP0256 Page Prefix|PAGE]]</td><td>4-bit address extension register</td></tr>
 +
<tr><td>[[SP0256 Coefficient Mode|MODE]]</td><td>2-bit precision select, register-set select</td></tr>
 +
<tr><td>[[SP0256 Repeat Prefix|RPT PFX]]</td><td>2-bit repeat count prefix</td></tr>
 +
<tr><td>[[SP0256 Stack|STACK]]</td><td>16-bit 1-deep address stack</td></tr>
 +
<tr><td>[[SP0256 Command Address|COMMAND]]</td><td>8-bit pending command from [[SP0256 Address Load|ALD]]</td></tr>
 +
</table>
 +
<br/><br/>
 +
<table border>
 +
<caption>Speech Core Registers</caption>
 +
<tr><td>[[SP0256 Coefficient Registers|B0]]</td><td>Stage 0 Bandwidth Coefficient</td></tr>
 +
<tr><td>[[SP0256 Coefficient Registers|B1]]</td><td>Stage 1 Bandwidth Coefficient</td></tr>
 +
<tr><td>[[SP0256 Coefficient Registers|B2]]</td><td>Stage 2 Bandwidth Coefficient</td></tr>
 +
<tr><td>[[SP0256 Coefficient Registers|B3]]</td><td>Stage 3 Bandwidth Coefficient</td></tr>
 +
<tr><td>[[SP0256 Coefficient Registers|B4]]</td><td>Stage 4 Bandwidth Coefficient</td></tr>
 +
<tr><td>[[SP0256 Coefficient Registers|B5]]</td><td>Stage 5 Bandwidth Coefficient</td></tr>
 +
<tr><td>[[SP0256 Coefficient Registers|F0]]</td><td>Stage 0 Frequency Coefficient</td></tr>
 +
<tr><td>[[SP0256 Coefficient Registers|F1]]</td><td>Stage 1 Frequency Coefficient</td></tr>
 +
<tr><td>[[SP0256 Coefficient Registers|F2]]</td><td>Stage 2 Frequency Coefficient</td></tr>
 +
<tr><td>[[SP0256 Coefficient Registers|F3]]</td><td>Stage 3 Frequency Coefficient</td></tr>
 +
<tr><td>[[SP0256 Coefficient Registers|F4]]</td><td>Stage 4 Frequency Coefficient</td></tr>
 +
<tr><td>[[SP0256 Coefficient Registers|F5]]</td><td>Stage 5 Frequency Coefficient</td></tr>
 +
<tr><td>[[SP0256 Amplitude Register|A]]</td><td>Amplitude Register</td></tr>
 +
<tr><td>[[SP0256 Pitch Register|P]]</td><td>Pitch Register</td></tr>
 +
<tr><td>[[SP0256 Amplitude Interpolation Register|AI]]</td><td>Amplitude Interpolation Register</td></tr>
 +
<tr><td>[[SP0256 Pitch Interpolation Register|PI]]</td><td>Pitch Interpolation Register</td></tr>
 +
<tr><td>[[SP0256 Repeat Count|RPT]]</td><td>6-bit Repeat Count</td></tr>
</table>
</table>
Line 17: Line 54:
<table border>
<table border>
<tr><th>Range</th><th>Opcode</th></tr>
<tr><th>Range</th><th>Opcode</th></tr>
-
<tr><td>$00</td><td>[[RTS]]</td></tr>
+
<tr><td>$00   </td><td>[[SP0256 RTS|RTS]]</td></tr>
-
 
+
<tr><td>$01-$0F</td><td>[[SP0256 SETPAGE|SETPAGE]]</td></tr>
-
<tr><td>$01-$0F</td><td>[[SETPAGE]]</td></tr>
+
<tr><td>$10-$1F</td><td>[[SP0256 LOADALL|LOADALL]]</td></tr>
-
 
+
<tr><td>$20-$2F</td><td>[[SP0256 LOAD_2|LOAD_2]]</td></tr>
-
<tr><td>$10-$1F</td><td>[[LOADALL]]</td></tr>
+
<tr><td>$30-$3F</td><td>[[SP0256 SETMSB_3|SETMSB_3]]</td></tr>
-
 
+
<tr><td>$40-$4F</td><td>[[SP0256 LOAD_4|LOAD_4]]</td></tr>
-
<tr><td>$20-$2F</td><td>[[LOAD_2]]</td></tr>
+
<tr><td>$50-$5F</td><td>[[SP0256 SETMSB_5|SETMSB_5]]</td></tr>
-
 
+
<tr><td>$60-$6F</td><td>[[SP0256 SETMSB_6|SETMSB_6]]</td></tr>
-
<tr><td>$30-$3F</td><td>[[SETMSB_3]]</td></tr>
+
<tr><td>$70-$7F</td><td>[[SP0256 JMP|JMP]]</td></tr>
-
 
+
<tr><td>$80-$8F</td><td>[[SP0256 SETMODE|SETMODE]]</td></tr>
-
<tr><td>$40-$4F</td><td>[[LOAD_4]]</td></tr>
+
<tr><td>$90-$9F</td><td>[[SP0256 DELTA_9|DELTA_9]]</td></tr>
-
 
+
<tr><td>$A0-$AF</td><td>[[SP0256 SETMSB_A|SETMSB_A]]</td></tr>
-
<tr><td>$50-$5F</td><td>[[SETMSB_5]]</td></tr>
+
<tr><td>$B0-$BF</td><td>[[SP0256 JSR|JSR]]</td></tr>
-
 
+
<tr><td>$C0-$CF</td><td>[[SP0256 LOAD_C|LOAD_C]]</td></tr>
-
<tr><td>$60-$6F</td><td>[[SETMSB_6]]</td></tr>
+
<tr><td>$D0-$DF</td><td>[[SP0256 DELTA_D|DELTA_D]]</td></tr>
-
 
+
<tr><td>$E0-$EF</td><td>[[SP0256 LOAD_E|LOAD_E]]</td></tr>
-
<tr><td>$70-$7F</td><td>[[JMP]]</td></tr>
+
<tr><td>$F0-$FF</td><td>[[SP0256 PAUSE|PAUSE]]</td></tr>
-
 
+
-
<tr><td>$80-$8F</td><td>[[SETMODE]]</td></tr>
+
-
 
+
-
<tr><td>$90-$9F</td><td>[[DELTA_9]]</td></tr>
+
-
 
+
-
<tr><td>$A0-$AF</td><td>[[SETMSB_A]]</td></tr>
+
-
 
+
-
<tr><td>$B0-$BF</td><td>[[JSR]]</td></tr>
+
-
 
+
-
<tr><td>$C0-$CF</td><td>[[LOAD_C]]</td></tr>
+
-
 
+
-
<tr><td>$D0-$DF</td><td>[[DELTA_D]]</td></tr>
+
-
 
+
-
<tr><td>$E0-$EF</td><td>[[LOAD_E]]</td></tr>
+
-
 
+
-
<tr><td>$F0-$FF</td><td>[[PAUSE]]</td></tr>
+
-
 
+
</table>
</table>

Latest revision as of 09:12, 4 December 2010

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox