Changes

Jump to: navigation, search

SP0256 Instruction Set

671 bytes added, 21:49, 19 December 2010
* [[SP0256 Allophones]]
* [[SP0256 Pin-Outs]]
* [[SP0256 on Printer Port (DIY)]]
== Memory ==
1110b JUMP Jump to 12-bit PAGE-Relative Address
1111b PAUSE Silent Pause
Each opcode starts with a 4bit parameter field, followed by the 4bit opcode number, eventually followed by further Nbit parameter(s).
== Opcodes ==
The delta updates are applied to the 8-bit encoded forms of the coefficients, not the 10-bit decoded forms.
The update to the amplitude register is a normal 2s complement update to the entire register. This means that any carry/borrow from the mantissa will change the value of the exponent. The update doesn't know anything about the format of that register.
 
== Program Counter and Stack Note ==
 
As seen in the datasheets for external speech ROMs, the Program Counter & Stack seem to be part of the ROM (not of the microprocessor). So, when using external ROMs, one would theoretically have separate stacks for each ROM. NB. this explains why the Target values are reversed; apparently the ROMs use different bit-order (for memory addresses) than the microprocessor does for its own values (ie. the opcodes and voice-parameters).
== Credits ==
When updating filter coefficients with a delta-update, the microsequencer performs plain 2s-complement arithmetic on the 8-bit value in the coefficient register file. No attention is paid to the format of the register.
[[Category:Music and sound]]
4,585
edits