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

17. April 2026, 07:41:18

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,834
  • Total Topics: 1,528
  • Online today: 215
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 1
Guests: 144
Total: 145

144 Guests, 1 User
xesrjb

LambdaSpeak CPC Sprach-Synthesizer, Sample Player, RTC, MP3, UART Erweiterung

Started by LambdaMikel, 01. May 2017, 09:41:34

Previous topic - Next topic

0 Members and 5 Guests are viewing this topic.

TFM

Quote from: Rennert on 21. June 2019, 18:55:36
ist die Firmware schon veröffentlicht?
Hänge die neueste Version hier mal als Datei an (sonnst bei GitHub LambdaSpeak)...
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

Wie immer, Hammer das neue LS3 ROM vom @TFM !  :smiley027:

Da es so gut läuft ist die "alternative Firmware" nun die "offizielle" Firmware. Hänge mal die neuste Version an.

Änderungen:
- PCMUP is nun super schnell - seitenweises Schreiben (Faktor 512 oder so)  :irre:
  S. "DRUMLD2" auf MIDEFSEQ2.DSK. Alle Drums können nun in wenigen Sekunden hochgeladen und ins EEPROM gebrannt werden.

  Das dauert voher 5 Minuten bzw. 15 Minuten (BASIC). Schön wäre natürlich jetzt ein |PCMUPFILE, sodass ich gleich Captain Future
  128 KB in einem Rutsch aus ner Datei hochladen kann  :) Wunschkonzert für's nächste LS3 ROM Update....  ;)
- READY und BUSY wird nun konsistent überall im seriellen Modus verwendet. Auch wenn Argumente von Seriellen Kommandos erwartet werden.
- Für alle seriellen Kommandos, die Werte liefern (z.B. Empfangs-Puffer auslesen, Byte für Byte), wird nun das altbekannt "Protokoll" zur LambdaSpeak 3 -> CPC Datenübermittlung verwendet:

1. sende Nutzbyte
2. warte (s. fast oder slow getters) - 50 us oder 10 ms
3. sende 0
4. warte (wie 2.)
5. dann 32 (READY) wenn bereits für nächstes Kommando.

Ich habe das "SERIAL.BAS" auf der LS300.DSK angepasst. Diese Protokoll kann man gut im Screenshot anbei sehen, wo Byte x eingelesen wird vom Seriellen Interface (aus dem Eingangs-Puffer). Dieses Byte aus dem Puffer wird mittles 255, 9 angefordert, und dann kann man sehen, wie die Schritte 1 bis 5 durchlaufen werden. S. Screenshot.

Für TFM ergibt sich dadurch keine Änderungen, da er noch keine Seriellen Kommandos implementiert hat, die Daten vom LS3 im Seriellen Modus lesen (wäre ja schön, wenn das MP3 Modul was senden würde, tut es ja aber leider nicht).

Ausserdem gibt es auf den MIDEFSEQ2.DSK nun "DRUMMER2.BAS", der ebenfalls |PCMPLAY verwendet.

Bitte beachten - das MP3 Modul sendet mir nix als Bestätigung!! Da hilft also nur warten und Kommandos nicht zu schnell hintereinander schicken damit nichts verschluckt wird. Wie TFM das schon richtig macht. Wie gesagt, ein READY vom LS3 heisst hier eben nicht, dass das MP3-Module ebenfalls READY ist. Ich weiß es eben nicht.


Ansonsten - die MP3 Funktionen funktionieren super! Tolle Sache, TFM. 

Außerdem habe ich die Github Doku und Dateien dort alle aktualisiert und angepasst. Die DSK Images und Firmware haben gleichen Stand, wie hier angehängt.

https://github.com/lambdamikel/LambdaSpeak3


TFM

WoW! Super! Da geht's ja richtig vorwärts!  :jubelaola:
Dann werde ich mich mal wieder ans RSX ROM setzen und da noch ein paar Ideen verwirklichen  :)
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


TFM

Frage / Idee...

Wenn man im seriellen Modus ist, dann meldet der LS3 ja &20 als Bereitschafts-Byte. Das ist auch so im Epson- und Dec Modus. Wie kann man wissen in welchem Modus man ist? (Die Frage kommt jetzt deswegen, weil manchmal der Ausstieg aus dem seriellen Modus nicht klappt).

Wenn es keinen sicheren Weg gibt, um festzustellen ob man im seriellen Modus ist, könnte man dann nicht z.B. &10 (anstatt &20) als Bereitschafts-Byte nutzen?
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

Den aktuelle Modus koenntest Du mittels &F2 auslesen, oder?
Allerdings habe ich das laenger nicht getestet.
EDIT - hmm, ne das geht nicht, da hast du Recht... denn das muesste ja also 255, &f2 gesendet werden im seriellen. OK, wir koennen das Bereitschaftsbyte gerne aendern! Mache ich in der naechsten Version.

Falls es NICHT geht um den seriellen Modus zu unterscheiden von den anderen, kann ich das gerne noch aendern.

Uebrigens - die typischen "get voice", "get volume", "get version" commands sind all 4-bittig... und zwar wird da auch noch eine Konvertierung "right shift um 4 Bits" gemacht, weil ich urspruenglich in LS 1.5 nur 4bit Ausgang hatte! D.h., "get version" is momentan 15, der LS 3 sendet das als 11110000 und RSX shiftet das um 4 nach rechts, damit wieder 00001111 = 15 zurueckkommt.

TFM, koennen wir das mal aendern? Dann koennte ich naemlich auch die Versionsnummer mal hochzaehlen, die momentan bei 15 "maximal" ist. Und ausserdem koennte "get mode" dann einen 8bit Deskriptor zurueckgeben. Das waere nett. Ich habe jetzt ja volle 8BIt als Ausgang. Also, die 4 RRAs einfach mal weg lassen in der naechsten Version.

Allerdings ist das nicht mehr abwaertskompatibel zur alten RSX, da diese wie gesagt das Bitshifting der oberen 4 Bits in die unteren 4 Bits macht.





LambdaMikel

... und hier ein interessantes neues UART Modul - Sprachsteuerung fuer den CPC:
[CPCEmulator]https://youtu.be/8cJCXA7OfCk[/CPCEmulator]

Habe ich mir mal bestellt.

Rennert

Na Mist, wollte den AVR programmieren und habe gar keinen Programmer 8)
und keine Anschluß am Modul ;D Muss ich ne Fassung nehmen und dort die Drähte anlöten vom Diamex AVR Stick.


Rennert

hab die Kabel ans LS1.99 gelötet und dann am Modul über meinen Diamex USB ISP Programmer geflasht.
werde mir aber mal noch für 5Dollar so ein Teil holen.

LambdaMikel

Gut, dass der ollle LS 1.99 noch für was gut ist! Als AVR-Programmer genutzt, wer hätte das gedacht!
+1 for MacGyver Award.  :birthday:

LambdaMikel

Quote from: TFM on 24. June 2019, 19:30:21
Frage / Idee...

Wenn es keinen sicheren Weg gibt, um festzustellen ob man im seriellen Modus ist, könnte man dann nicht z.B. &10 (anstatt &20) als Bereitschafts-Byte nutzen?

OK, habe ich einmal ausprobiert - bitte testen. Es wird &10 als READY im seriellen Modus verwendet.
S. SERIAL2.BAS auf LS300.DSK.

Außerdem - ich gebe die Werte nun, wie besprochen, 8bittig aus, also bitte keinen rechtsshift mehr machen für |getvolume, |getversion etc. |getversion sollte jetzt 16 liefern. S. WELCOME2.BAS auf LS300.DSK. Einziger Unterschied zu WELCOME.BAS ist dass ich für Get Volume, Get Voice, nicht mehr durch 16 teile.

MP3 Befehle gehen mit dieser Version nicht mehr, da diese auf 32 warten, im Seriellen Modus mit der alternative Firmware aber 16 (&10) wie gewünscht ausgegeben wird.

Wenn es gut läuft, können wir das gerne offiziell so machen!

Frage - würdest Du auch gerne geänderte "READY" bzw. "WAITING FOR INPUT" für die anderen "Modi" haben, also z.B., wenn Parameter für das Setzen der Uhrzeit, das Hochladen der EEPROM Samples, |pcmplay bzw. |pcmup etc.? Auch hier wird ja 32 verwendet um anzuzeigen, dass das nächste Byte gesendet werden kann. Wir könnten das ebenfalls auf z.B. 8 oder 4 oder 2 oder 1 ändern. Ganz wie Du magst!

Prinizipiell könnte LS3 in diesen Modi natürlich ebenfalls "festhängen", und es reagiert in diesen Modi nicht auf Reset Command, sodass diese Modi nur verlassen werden können, wenn die geforderte Anzahl von Parametern gesendet wurde. Und da könnte es natürlich gut sein zu wissen, in welchem Modus man gerade ist indem man auf das READY Signal achtet. Allerdings wüsste man dann immer noch nicht, wie viele Bytes noch ausstehen bzw. gesendet werden müssen, damit der Modus verlassen wird. Insofern würde ich sagen, lassen wir's wie es ist (also Standardy READY Signal in diesen Siutation = 32).

Und für den seriellen Modus machen wir's so, wie Du vorgeschlagen hast, und wie in der alternative Firmware hier angehängt. Also &10.





Rennert

 :schonwieder ne neue FW? Hab doch gestern erst geflasht :)

Werde mir an der Rückseite des LS3 Stifte anlöten zum schnellen Programmieren.
Muss nicht immer der 644 raus aus der Fassung.

LambdaMikel

... also die alternative Firmware ist erstmal nur für TFM, der dann die RSX / ROM erst mal anpassen müsste... falls alles läuft können wir diese dann offiziell machen. So langsam pendelt es sich ein.

Gute Idee mit den Löt-Stiften!

Rennert

Stifte sind dran ;)

Sag mal ist in der neuen Firmware die Sprachausgabe am Start entfernt?
Sonst kam immer LambdaSpeak initialized, SSA1 Mode