Jump to content

Amstrad SSA-1 Speech Synthesizer: Difference between revisions

From CPCWiki - THE Amstrad CPC encyclopedia!
Nocash (talk | contribs)
Phi2x (talk | contribs)
 
(20 intermediate revisions by 6 users not shown)
Line 18: Line 18:
== Technical Specs. ==
== Technical Specs. ==


The clock frequency (passed to the speech chip) is fixed, the exact frequency is unknown (?)
In the SSA-1, the SP0256-AL2 speech chip is clocked by a 3.12MHz ceramic resonator (unlike the similar dk'tronics device, where it is clocked at 4MHz).


Uses I/O port: [[I/O_Port_Summary|#FBEE]], of which (according to the manual) only A10,A4,A0 are decoded.
The SSA-1 uses I/O port: [[I/O_Port_Summary|#FBEE]], of which (according to the manual) only A10,A4,A0 are decoded.


Port FBEEh READ:
Port FBEEh READ - SP0256-AL2 Status:
   bit7  Status 1 (0=Speech Busy, 1=Ready/Halted)  (SBY Pin, Speech Busy)
   bit7  Status 1 (0=Speech Busy, 1=Ready/Halted)  (SBY Pin, Standby)
   bit6  Status 2 (0=Ready to Receive Data, 1=Busy) (/LRQ Pin, Load Request)
   bit6  Status 2 (0=Ready to Receive Data, 1=Busy) (/LRQ Pin, Load Request)
   bit5-0 Not used (garbage, probably usually highz)
   bit5-0 Not used (garbage, probably usually high)
Port FBEEh WRITE:
 
   bit7-6 Reserved (must be zero)
Port FBEEh WRITE - SP0256-AL2 Allophone:
  bit5-0 Allophone number               ;data can be send when Status.Bit6=0
   bit7-0 Allophone number             
 
Port FAEEh WRITE - Accidently used in the included RSX driver cassette (the driver sets BC=FBEEh and executes OUTI, which pre-decrements B, so the OUT accidently goes to FAEEh - the driver works despite of that bug since FBEEh is mirrored to that address).
 
* A new allophone number can be send when Status.Bit6=0.
* The allophone number should/must be in range of 00h..3Fh (6bit).
* However, the whole 8bit databus is connected in the SSA-1.
 
For details on the speech chip, see:


* [[SP0256]]
* [[SP0256]]
Line 36: Line 44:
* [[SP0256 Pin-Outs]]
* [[SP0256 Pin-Outs]]


== Supported Games ==
== Software Support ==
=== Games ===
* [[3D Boxing]]
* [[3D Stunt Rider]]
* [[Alex Higgins World Pool]]
* [[Alex Higgins World Snooker]]
* [[Darkwurlde]]
* [[Glen Hoddle Soccer]]
* [[Roland in Space]]
* [[Tubaruba]]


* 3D Boxing
=== Serious Software ===
* 3D Stunt Rider
* [[FutureOS]] (limited)
* Alex Higgin's World Snooker / World Pool
* Darkwurlde
* Glen Hoddle Soccer
* Roland In Space
* Tubaruba


'''Caution''' - Some webpages do (incorrectly) list further games: Gremlins (spanish version), Seablood and Robin of Sherwood (these contain code for using Port FBEC & FBEF for some kind of data transfer - not for speech). Also, Dragon Gold is listed as speech game (not sure why, it doesn't seem to use any special I/O ports; unless different versions of that game exist?)
'''Caution''' - Some webpages do (incorrectly) list further games:
 
Gremlins (spanish version),
Seablood and Robin of Sherwood (these contain code for using Port FBEC & FBEF for some kind of data transfer, possibly for [[PDS development system]] - but, not for speech).
Also, Dragon Gold is listed as speech game (not sure why, it doesn't seem to use any special I/O ports; unless different versions of that game exist?)


== Pictures ==
== Pictures ==
Line 58: Line 74:
Image:FullManual Tape.jpg|Manual and Tape
Image:FullManual Tape.jpg|Manual and Tape
Image:SSA1 FullBox.jpg|Box (front)
Image:SSA1 FullBox.jpg|Box (front)
Image:Amstrad SSA-1 Schematic.png|Schematic
</gallery>
</gallery>


Line 83: Line 100:
* [[Media:Amstrad SSA-1 (Main Program).zip]] (cassette)
* [[Media:Amstrad SSA-1 (Main Program).zip]] (cassette)
* [[Media:Amstrad SSA-1 (Programas Basic).zip]] (cassette)
* [[Media:Amstrad SSA-1 (Programas Basic).zip]] (cassette)
* [[Media:SSA-1.zip‎|Amstrad SSA-1 drivers (English)]] [http://www.jonathanen.com/pages/Items/Amstrad/SSA-1/SSA-1.zip] (DSK for Emulators)
* [[Media:Sp0256-al2-reversed-bit-order.zip|SP0256-AL2 ROM]] ('''caution''' - the bytes in the file are in reversed bit-order, ie. the "Target" values are unreversed, all other opcodes and parameters are reversed)
* [[Media:Sp0256-al2-reversed-bit-order.zip|SP0256-AL2 ROM]] ('''caution''' - the bytes in the file are in reversed bit-order, ie. the "Target" values are unreversed, all other opcodes and parameters are reversed)


== Manual ==
== Manual ==


[[File:Amstrad SSA-1_User_Instruction_Manual.pdf]]
* [[File:Amstrad SSA-1_User_Instruction_Manual.pdf]] (pdf)
 
* [[Manual of the Amstrad SSA-1 Speech Synthesizer]] (jpg's)
[[Manual of the Amstrad SSA-1 Speech Synthesizer]] Individual pages
* [https://framagit.org/offset/ssa-1-acepansion SSA-1 ACEpansion] on Framagit


== Other Speech Synthesizers ==
== Other Speech Synthesizers ==


* [https://github.com/lambdamikel/Speak-SID Speak-SID ''SSA-1 emulation''] Speech Synthesizer, SID Soundcard, MIDI IN SID+AY Synthesizer
* [[Dk'tronics Speech Synthesizer]]
* [[Dk'tronics Speech Synthesizer]]
* [[MHT Speech Synthesizer]] (MHT Ingenieros)
* [[MHT Speech Synthesizer]] (MHT Ingenieros)
* [[TMPI speech synthetizer]] (TechniMusique)
* [[TMPI speech synthetizer]] (TechniMusique)


[[Category:Hardware]] [[Category:Peripherals]] [[Category:Music and sound]][[Category:Manual]]
[[Category:Amstrad Products]]
[[Category:FutureOS]]
[[Category:Manual]]
[[Category:Music and sound]]
[[Category:Peripherals]]

Latest revision as of 01:11, 10 April 2025

Error creating thumbnail: Unable to save thumbnail to destination
Amstrad SSA1 box cover
Error creating thumbnail: Unable to save thumbnail to destination
The bundle

A Speech Synthesizer from Amstrad based on the SPO256-AL2 Speech Synthesizer

Software

  • |SAY,@<string> - Converts a string af ASCII text to speech
  • |ECHO,<mode> - Activates text to speech conversion on text printed to the screen.
  • |APHONE,<allophone>[,<allophone>] - Send allophones directly to the interrupt driven allophone buffer.
  • |ROOM,@<value> - Find out how many free locations in the allophones buffer.
  • |QUIET - Clears the allophone buffer.
  • |SPON - Activates the speech interrrupt event.
  • |SPOFF - To prevent output of data from the allophone buffer.
  • |SPSTATUS,@<value> - Read the status of the speech processor.
  • |SPOUT,<allophone>[,<allophone>] - Sends allophones directly to the soundprocessor.

Technical Specs.

In the SSA-1, the SP0256-AL2 speech chip is clocked by a 3.12MHz ceramic resonator (unlike the similar dk'tronics device, where it is clocked at 4MHz).

The SSA-1 uses I/O port: #FBEE, of which (according to the manual) only A10,A4,A0 are decoded.

Port FBEEh READ - SP0256-AL2 Status:

 bit7   Status 1 (0=Speech Busy, 1=Ready/Halted)   (SBY Pin, Standby)
 bit6   Status 2 (0=Ready to Receive Data, 1=Busy) (/LRQ Pin, Load Request)
 bit5-0 Not used (garbage, probably usually high)

Port FBEEh WRITE - SP0256-AL2 Allophone:

 bit7-0 Allophone number               

Port FAEEh WRITE - Accidently used in the included RSX driver cassette (the driver sets BC=FBEEh and executes OUTI, which pre-decrements B, so the OUT accidently goes to FAEEh - the driver works despite of that bug since FBEEh is mirrored to that address).

  • A new allophone number can be send when Status.Bit6=0.
  • The allophone number should/must be in range of 00h..3Fh (6bit).
  • However, the whole 8bit databus is connected in the SSA-1.

For details on the speech chip, see:

Software Support

Games

Serious Software

Caution - Some webpages do (incorrectly) list further games:

Gremlins (spanish version), Seablood and Robin of Sherwood (these contain code for using Port FBEC & FBEF for some kind of data transfer, possibly for PDS development system - but, not for speech). Also, Dragon Gold is listed as speech game (not sure why, it doesn't seem to use any special I/O ports; unless different versions of that game exist?)

Pictures

Reviews


Examples of the Amstrad synth in use

{{#ev:youtube|fesVxipNaw8|300}} {{#ev:youtube|v8WKbKK3Apg|300}}

Downloads

Manual

Other Speech Synthesizers