• Welcome to Schneider / Amstrad CPC Forum.
Welcome to Schneider / Amstrad CPC Forum. Please login.

16. April 2026, 10:33:54

Login with username, password and session length

Shoutbox

TFM

2024-04-08, 20:42:44
Happy Sonnenfinsternis!  :)

TFM

2024-01-15, 17:06:57
Momentan billige Farbbänder auf Ebay für PCW

Devilmarkus

2023-07-09, 10:37:40
Zweiter 👋😂🤣

TFM

2023-06-13, 14:21:49
Sommerloch!

Recent

Members
Stats
  • Total Posts: 12,832
  • Total Topics: 1,528
  • Online today: 444
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 1
Guests: 198
Total: 199

198 Guests, 1 User
xesrjb

Assembler Source Listing von RSX Befehl |SAY?

Started by LambdaMikel, 30. June 2025, 05:33:27

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

LambdaMikel

Hallo meine Lieben CPCler,

weiß jemand ob irgendwo das disassemblierte Sourcecode-Listing von der RSX-Erweiterung für den SSA1 Amstrad Sprach-Synthesizer liegt? Speziell würde mich der |SAY-Befehl interessieren. Der macht nämlich "Text 2 Speech" - Englisch nach SP0256-AL2 Allophone Codes für Sprachausgabe. Das könnte ich prima für dieses Projekt gebraucht, wo ich den LambdaSpeak 1.99 an den Microprofessor rangehängt habe. Leider habe ich natürlich nicht die RSX-Treibersoftware. Wäre toll wenn mir hier jemand helfen könnte!

[CPCEmulator]https://youtu.be/XMrv2D5dri0[/CPCEmulator]

TFM

Freut mich, dass Dein Kanal wieder belebt wird.  :smiley027:
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 24.12.2025)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 29.01.2025)

LambdaMikel

Dankeschön, aber der Kanal ist nach wie vor geschlossen. Da werden nur kleine Clips hochgeladen; richtige Videos mache ich nicht mehr. Das ist Vergangenheit.

VG,
Michael

BadCPC

Hi Lambda, ich zerlege gerade die SSA1.BIN von der demodisc vom SSA1,

Ist schon recht lustig, haben relocable gemacht, das hab ich soweit weg;) und dann arbeiten die noch mit tablen ;(

LambdaMikel

Super! Ja mit den Tabellen kann ich mir vorstellen; man macht da üblicherweise "Regeln" für die Verarbeitung. Die sind sicher in den Tabellen kodiert. 

Relocatable war klar, da der Lader nach der Start-Addresse fragt.

BadCPC

die Alophones sollten doch die gleichen sein wie bei dem DK-Tronics oder irre ich micht da ?

LambdaMikel

Ja, genau. DK'tronics hatte ebenfalls text 2 speech. Das ROM wäre sonst auch ein Kandidate, wenn das mit SSA-1 zu schwierig ist.

BadCPC

ist funny wie die das gemacht haben, verschiedene zeichen werden nicht wiedergegeben gesprochen ;)
stand der. dinge schicke ich dir per pn wenn das geht

TFM

Gute Arbeit Jungs! Wenn es da ein kommentiertes Listing gibt, dann bitte auch hier einstellen.  :smiley027:
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 24.12.2025)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 29.01.2025)

BadCPC

Hier ein paar phonos
numbers_
label_9CB8 db &2B,&13,&0E,&35,&80 ; 0 Zero   
label_9CBD db &2E,&0F,&8B ; 1 One
label_9CC0 db &0D,&9F ; 2 Two
label_9CC2 db &1D,&33,&93 ; 3 Three 
label_9CC4 db &28,&BA ; 4 four
label_9CC7 db &28,&06,&A3 ; 5 five
label_9CCA db &37,&06,&2A,&B7 ; 6 Six     
label_9CCE db &37,&06,&23,&33,&8B ; 7 seven
label_9CD3 db &14,&91 ; 8 eight
label_9CD5 db &0B,&06,&8B ; 9 nine     
label_9CD8 db &0D,&07,&8B ; 10 ten           
label_9CDB db &13,&2D,&07,&23,&07,&8B ; 11 eleven               
label_9CE1 db &0D,&2E,&07,&2D,&A3 ; 12 twelve       
label_9CE6 db &1D,&33,&11,&13,&8B ; 13 thirdteen               
label_9CEB db &28,&3A,&11,&13,&8B ; 14 fourteen       
label_9CF0 db &28,&0C,&28,&11,&13,&8B ; 15 fiveteen               
label_9CF6 db &37,&0C,&2A,&37,&11,&13,&8B ; 16 sixteen             
label_9CFD  db &37,&07,&23,&07,&0B,&11,&13,&8B ; 17 seventeen               
label_9D05 db &14,&11,&13,&8B ; 18 eighteen
label_9D09 db &0B,&06,&0B,&11,&13,&8B ; 19 nineteen 
label_9D0F db &0D,&2E,&07,&0B,&11,&93 ; 2O twenty                 
label_9D15 db &1D,&34,&11,&93 ; 30 thirty
label_9D19 db &28,&28,&3A,&11,&93 ; 40 fourty
label_9D1E db &28,&28,&0C,&28,&11,&93 ; 50 fifty
label_9D24 db &37,&37,&0C,&2A,&37,&11,&93 ; 60 sixty
label_9D2B db &37,&37,&07,&23,&07,&0B,&11,&93 ; 70 seventy           
label_9D33 db &14,&11,&93 ; 80 eighty
label_9D36 db &38,&06,&0B,&11,&93 ; 90 ninty               
label_9D3B db &10,&0C,&2D,&13,&18,&8B ; millions
label_9D41 db &1D,&20,&2B,&1A,&0B,&95 ; tausend
label_9D47 db &1D,&0F,&0B,&21,&27,&07,&95 ; hundrets
;---------------------------------------------------------------------
; & % * /\ | @ ^ + - = < > # $
label_9D4E db &1A,&0B,&A1 ; (&) hexsymbol
label_9D51 db &09,&33,&37,&37,&06,&0B,&8D ; (%) Prozent
label_9D58 db &0D,&06,&10,&B7 ; (*) asterix
label_9D5C db &21,&0C,&23,&06,&15,&07,&15,&3F,&86 ; (/\) divider           
label_9D65 db &3F,&BB ; (|) tile             
label_9D67 db &1A,&8D ; (@) at             
label_9D69 db &09,&20,&B3 ; (^) sqaure   
label_9D6C db &09,&2D,&0F,&B7 ; (+) plus
label_9D70 db &10,&06,&0B,&0F,&B7 ; (-) minus
label_9D75 db &13,&07,&2D,&B7 ; (=) eval                     
label_9D79 db &2D,&07,&37,&37,&12,&1A,&8B ; (<) lesser
label_9D80 db &3D,&27,&14,&11,&33,&12,&1A,&8B ; (>) greater
label_9D88 db &21,&17,&3E,&3B,&B7            ; (space) not returned
label_9D8D db &09,&20,&0B,&15,&B7 ; (!) not returned
label_9D92 db &09,&17,&0C,&0B,&8D ; (") not returned
label_9D97 db &1B,&1A,&A5 ; (#) hash
label_9D9A db &37,&37,&0D,&27,&0C,&AC ; (§) String     

kannst du auch mit basic ausgeben lassen

so als bespielt
10 mode 2
20 read 2
30 if a=&FF then end
40 out &FBEE,a: ' SSA1 oder &FBFE für dks
50 goto 20
60 data &3D,&26,&17,&11,&33,&12,&1A,&8B,&FF


arbeite grad an der routine um wörter wieder zu geben

LambdaMikel

Ja, genau. Die "festprogrammierten" Wörte sind relativ klar. Die findest Du auch im SP0256-AL2-Manual; evtl. einfach im ROM auf diese Weise zu finden.

Interessant sind die Regeln / der Algorithmus, der beliebigen englischen Text in Allophone umwandelt.

@TFM wenn wir den Code haben, können wir das ins LambdaSpeak ROM miteinbauen! |say für den SP0256-AL2 bzw. die SP0-Emu.

TFM

Quote from: LambdaMikel on 10. July 2025, 08:38:29Interessant sind die Regeln / der Algorithmus, der beliebigen englischen Text in Allophone umwandelt.

@TFM wenn wir den Code haben, können wir das ins LambdaSpeak ROM miteinbauen! |say für den SP0256-AL2 bzw. die SP0-Emu.

Ja, das mache ich gerne. Dann wäre es auch wünschenswert Deutsche Sprachausgabe zu haben  :smiley027:
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 24.12.2025)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 29.01.2025)

BadCPC

Ich schreib mal was, hehe,

im ssa1 rsx werden leider nicht alle symbole ausgegeben ;)
möglich chars ;check for  & % * / | @ ^ + - = >
und checkt_table wenn du das schon bei der von mir drin hast ;)

ein grund dafür ist, das der say command verschieden chars zu kontrolle nutz, ein |say,"'1'2" gib one two zurück

if lenght = 1 load byte as single_phone else load byte as longphones;

on numbers and count numbers
if byte is &30 to &39 load numbers
load from table numbers


; if lower char
if byte > &61 or byte < &7B convert them to by and &DF  to upper_chars &41 - &5B

erschwerend sind die verückten addressen, teilweise aussßerhalbe der alphone table ;(

BSP. &9250 für alphabet als würde da wa fehlen, fehlt aber nix , der berechnet nur dähmlich.  Da gibts sogar &9244 im der laufzeit, debuggen macht ja so spass ;)

phonos
ssa1 der rsx teil
btw. im anhang die phonos soweit ich sie hab vom SSA1 RSX das ist
so crazy

Ab &A309 ist der rumtime varible block hab den zur Controlle  auf defs gesetzt , geht damit


Zu |echo der ist ähnlich wie der von dk-tronics aber ein bissle buggy ;(




LambdaMikel

Quote from: TFM on 10. July 2025, 12:18:36Deutsche Sprachausgabe zu haben  :smiley027:

Deutsche Sprachausgabe macht das aber nicht - nur English :) Falls Du Deutsch willst, kannst Du das BASIC-Programm das text 2 speech für Deutsch macht in Z80 übersetzen :D

LambdaMikel