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

17. April 2026, 06:26:23

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: 0
Guests: 184
Total: 184

184 Guests, 0 Users

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 6 Guests are viewing this topic.

LambdaMikel

... anbei eine Version mit kleiner Schönheitskorrektur (|eeup und |pcmup Sprachmeldungen gefielen mir nicht mehr). v21.

Zudem DSK images aufgeräumt.

Diese Firmware habe ich jetzt ersteinmal als "offiziell" deklariert, scheint ja alles zu laufen.  S. Github.

@TFM, sollten wir in den CPC Boards Bescheid sagen dass neues FW Update jetzt lohnt?

TFM

Quote from: LambdaMikel on 29. June 2019, 05:41:26
HOWEVER, es kann den Bildschirmspeicher nicht restaurieren.
Stimmt, da die RSXe im ROM ausgeführt werden, kann man den Bildschirmsspeicher nicht auslesen. Wenn es also unbedingt sein muss, dann das V-RAM z.B. vom &C000 bis &FFFF nach &4000 kopieren, und dann sichern. Aber IMHO ist der Bildschirm ja nicht so wichtig. Oder?

Ansonsten: Klar AF', BC', SP und der Stack-Inhalt sind auch noch zum sichern (neben dem RAM).  :)

Quote from: LambdaMikel on 29. June 2019, 06:34:50
Diese Firmware habe ich jetzt ersteinmal als "offiziell" deklariert, scheint ja alles zu laufen.  S. Github.
@TFM, sollten wir in den CPC Boards Bescheid sagen dass neues FW Update jetzt lohnt?
Ich komme ja kaum noch mir dem brennen mit, muss diese erst mal installieren. Sicherlich sollten wir so ziemlich jetzt mal eine stabile Version anstreben (also nur noch debugging und keinen neuen Funktionen), da ja bald das Review stattfinden soll. Außer Du verschiebst das in die Zukunft.
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

Genau! Die Firmware ist jetzt erstmal final, wenn Du nicht noch was findest. Neue Funktionen fallen mir keine mehr ein :-)

Der Rest geht in's ROM...  wie gesagt, Register sichern und Bildschirmspeicher bzw. den gesamt CPC Zustand per |hibernate and |resume würde ich super finden!

.... übrigens - ist das |ee easteregg von Dir ?  :smiley027: oder ist das im xmem rom....

Den kleinen Bug report hattest Du gesehen?
|getvolume, |getvoice etc. liefern alle "4". |getver funktioniert richtig. 

LG

TFM

Quote from: LambdaMikel on 29. June 2019, 21:13:57
|getvolume, |getvoice etc. liefern alle "4". |getver funktioniert richtig. 
Da habe ich im ROM nichts geändert, wir wollten das ja zum LS 1-2 kompatibel halten. Oder hab ich was falsch verstanden?
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

Ja, interessanter Effekt! Nein, hast Du richtig verstanden... und sollte auch funktionieren.

Es scheint ein Timinig-Problem zu sein? Es sollte der gleiche Wert wie bisher rauskommen, also 16 * <wert>.
Für get Volume default = 13: 13 * 16 = 208. Das kommt auch raus, wenn man BASIC macht. Oder erwartest Du dass die unteren 4 Bit gesetzt sind?  S. auch WELCOME.BAS. Die Werte werden zur Ausgabe durch 16 geteitl ("Current Volume 13" -> 208 / 16 = 13 wird angezeigt). Strange!

Habe das LS3 ROM gerade mit LS 1.95 getestet - da kommt der richtige Wert zurück!

Das einzige was ich mir vorstellen kann - der Wert erscheint u.U. einige us später auf dem Port als mit der letzten Firmware Version. Kan es das sein, dass Du "zu früh" liest? Das sollte wirklich eine minimalste Änderung sein... evtl. reichen schon 3 NOPs.

PS. Ich würde ja die Routine vom letzten Mal wieder einbauen, aber ich habe nicht genügend Platz in der Firmware! So habe ich die Funktion die den Wert auf den Datenbus schreibt mit einem weiteren ARgument versehen, dass angibt, ob 4 oder 8bittiger Wert. D.h., der einzige Unterschied zur vorherigen Firmware ist ein "if (four_bit) { ... }" und ein weiteres Argument. Das kann wie gesagt zu einer leichten Verzögerung von einige us führen.

TFM

Naja, ich hoffe Du bekommst das noch hin. im ATmega ist ja ab &EAA0 noch Platz frei, zuvor warst Du doch schon bis &F2xx voll. Da müsste sich doch eine simple, schnelle Lese-Routine einbauen lassen. Also wie zuvor.  :)

Also wenn der 4 MHz Z80 auf den 20 MHz ATmega warten muss, dann fühlt sich da komisch an.  :irre:

Klar, ich könnte das ROM ändern und probieren wie lange ich warten muss, aber dann wäre der LS3 langsamer als der alte LS 1.x. Ich warte jetzt mal ab, bin mir sicher Du kannst das noch irgendwie hinzaubern.  :) :) :)


Entzwischen versuche ich das mal mit dem Code im ROM zu kompensieren.
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

Quote from: TFM on 30. June 2019, 15:17:27
Naja, ich hoffe Du bekommst das noch hin. im ATmega ist ja ab &EAA0 noch Platz frei, zuvor warst Du doch schon bis &F2xx voll. Da müsste sich doch eine simple, schnelle Lese-Routine einbauen lassen. Also wie zuvor.  :)

Also wenn der 4 MHz Z80 auf den 20 MHz ATmega warten muss, dann fühlt sich da komisch an.  :irre:

Klar, ich könnte das ROM ändern und probieren wie lange ich warten muss, aber dann wäre der LS3 langsamer als der alte LS 1.x. Ich warte jetzt mal ab, bin mir sicher Du kannst das noch irgendwie hinzaubern.  :) :) :)


Entzwischen versuche ich das mal mit dem Code im ROM zu kompensieren.

Danke fürs Hartnäckig-Bleiben!
In der  Test, es ist etwas noch eigenartigeres... denn im EPSON / LAMBDA / DECTALK Modus funktionieren die Commands.
Es liegt also gar nicht an BASIC oder MC, sondern an der Hardware-Konfiguration... muss ich mal nachsehen was das ist.

TFM

Und ich bin derweil an !HIBERNATE und !RESUME, irgendetwas will da noch nicht, und ich finde den Fehler nicht. Hat aber nix mit dem LS3 zu tun. Eher ein Problem mit dem nativen CPC-OS.

Hier das aktuelle ROM, es kompensiert die "Wartezeit" bei den GETxxx Befehlen, in dem es wartet bis der LS3 nicht-&40 sendet.

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

Quote from: TFM on 30. June 2019, 18:42:09
Und ich bin derweil an !HIBERNATE und !RESUME, irgendetwas will da noch nicht, und ich finde den Fehler nicht. Hat aber nix mit dem LS3 zu tun. Eher ein Problem mit dem nativen CPC-OS.

Hier das aktuelle ROM, es kompensiert die "Wartezeit" bei den GETxxx Befehlen, in dem es wartet bis der LS3 nicht-&40 sendet.

INteressant... und |getvolume funktioniert im SSA1 (DEFAULT) mode dann?

LambdaMikel

Quote from: TFM on 30. June 2019, 18:42:09
Und ich bin derweil an !HIBERNATE und !RESUME, irgendetwas will da noch nicht, und ich finde den Fehler nicht. Hat aber nix mit dem LS3 zu tun. Eher ein Problem mit dem nativen CPC-OS.

Hier das aktuelle ROM, es kompensiert die "Wartezeit" bei den GETxxx Befehlen, in dem es wartet bis der LS3 nicht-&40 sendet.

Super, jetzt funktioniert es, vielen Dank für die Kompensation!
Es scheint so zu sein, dass ein Unterprogrammaufruf |getvolume im |lambda / Epson modus weniger Zeit benötigt als im SSA1 Emu modus, und die vorherige Version hat den Wert vom Port "zu schnell" gelesen... das Umschalten des CPLDs Routings etc. dauert eben auch ein bißchen. Die Hardware und Firmware ist wesentlich komplexer als LS 1.95, daher scheint das Timinig an einige Stellen etwas schlechter geworden zu sein.

War am Untersuchen, aber es wäre recht schwierig gewesen, es er Firmware-Änderung hinzukriegen. Vielen Dank daher für die Software-Lösung.

Letzte Firmware anbei.

Hmm, wenn alle Register und so weiter gesichert werden, und Interrupts werden gesperrt währen HIBERNATE? Viel Glück...! Hat sowas nicht schon einmal einer gemacht wo man was klauen kann?

TFM

Quote from: LambdaMikel on 30. June 2019, 20:12:07
Hmm, wenn alle Register und so weiter gesichert werden, und Interrupts werden gesperrt währen HIBERNATE? Viel Glück...! Hat sowas nicht schon einmal einer gemacht wo man was klauen kann?

Ja, hab soetwas im FutureOS, und ... hab's da genau so gemacht. Aber es geht nix über selber machen. Kopieren ist pfui!  :stop:

So, habe heute den ganzen Tag versucht !HIBERNATE und !RESUME zum laufen zu kriegen, geht nicht.

Aber: Wenn man zuerst !LSINIT eingibt, dann funktioniert es. Also damit kann man arbeiten und dann wird es in der nächsten Version auch hoffentlich immer laufen :-)

Quote from: LambdaMikel on 30. June 2019, 19:27:02
Interessant... und |getvolume funktioniert im SSA1 (DEFAULT) mode dann?

Ja, tut es. :-)
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

Quote from: TFM on 01. July 2019, 01:44:13
Quote from: LambdaMikel on 30. June 2019, 20:12:07
Hmm, wenn alle Register und so weiter gesichert werden, und Interrupts werden gesperrt währen HIBERNATE? Viel Glück...! Hat sowas nicht schon einmal einer gemacht wo man was klauen kann?

Ja, hab soetwas im FutureOS, und ... hab's da genau so gemacht. Aber es geht nix über selber machen. Kopieren ist pfui!  :stop:

So, habe heute den ganzen Tag versucht !HIBERNATE und !RESUME zum laufen zu kriegen, geht nicht.

Aber: Wenn man zuerst !LSINIT eingibt, dann funktioniert es. Also damit kann man arbeiten und dann wird es in der nächsten Version auch hoffentlich immer laufen :-)

Quote from: LambdaMikel on 30. June 2019, 19:27:02
Interessant... und |getvolume funktioniert im SSA1 (DEFAULT) mode dann?

Ja, tut es. :-)

Super Fortschritt!
Ach, dann liegt es irgendwie am LS3 Zustand ob es geht oder nicht?? Also nach einem LS3 Reset klappt es?
Muss ich denn nun noch was ändern in der Firmware oder nicht?

Bei mir hat es leider nicht geklappt am 6128 mit XMem und LS3. Beim |resume hängt er.


TFM

Quote from: LambdaMikel on 01. July 2019, 02:56:47
Super Fortschritt!
Ach, dann liegt es irgendwie am LS3 Zustand ob es geht oder nicht?? Also nach einem LS3 Reset klappt es? Muss ich denn nun noch was ändern in der Firmware oder nicht?

Bei mir hat es leider nicht geklappt am 6128 mit XMem und LS3. Beim |resume hängt er.
Anders rum.  :) Nach dem Reset geht es nicht. Aber nach !LSINIT geht es.

Du kannst ja mal probieren, welche der Befehle: !getfast, !englisch, !blockoff, !lambda, !setdelay,1 es braucht das es klappt. Ich habe das heute schon länger getestet, aber irgendwie ist da schwer zu reproduzieren. Aber das kriegen wir auch noch hin  :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)

TFM

Fehlerbericht:

Hier ein paar Sachen, die im ROM funktionieren sollten, aber nicht tun. Bitte in der Firmware nachschauen wo da Probleme vorhanden sind. Einfach mal selber ausprobieren.

- !GETMODE funktioniert zwar, aber nach dem Einschalten in SSA1 Modus gibt er den Wert &00 aus, und sagt es wäre Modus 4.

- Kommandos !saytemp, !saytime und !saydate sollten auch im (Confirmations OFF) Modus noch ihre Daten ansagen, da diese Kommandos ja extra aufgerufen werden um zu sprechen. Allerdings sind sie bisher nach !CONFOFF still.

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

Quote from: TFM on 01. July 2019, 21:32:57
Fehlerbericht:

Hier ein paar Sachen, die im ROM funktionieren sollten, aber nicht tun. Bitte in der Firmware nachschauen wo da Probleme vorhanden sind. Einfach mal selber ausprobieren.

- !GETMODE funktioniert zwar, aber nach dem Einschalten in SSA1 Modus gibt er den Wert &00 aus, und sagt es wäre Modus 4.

- Kommandos !saytemp, !saytime und !saydate sollten auch im (Confirmations OFF) Modus noch ihre Daten ansagen, da diese Kommandos ja extra aufgerufen werden um zu sprechen. Allerdings sind sie bisher nach !CONFOFF still.

Bzgl. |getmode (&cf) - wenn ich


10 out &fbee,&cf
20 print inp(&fbee)
30 goto 20


mache, sehe ich 64 = 4 * 16 = "Current mode 4".

Allerdings liefert |getmode in der Tat 0... könntest Du hier bitte ebenfalls die gleiche Verzögerung einbauen; all diese Bytes


   case 0xCF : get_mode(); break;
    case 0xCE : get_volume(); break;
    case 0xCD : get_voice(); break;
    case 0xCC : get_rate(); break;
    case 0xCB : get_language(); break;
    case 0xCA : get_delay(); break;
    case 0xC9 : get_version(); break; 

   case 0xF2 : get_full_mode(); break;



sollten die gleiche Verzögerung haben.
Falls |getmode die schon hat, ist sie u.U. zu kurz, und ich würde Dich bitten, das noch weiter zu verzögern.
Ich kann da in der Firmware leider nichts ändern.

Ja, |saytemp |saytime |saydate werde ich ändern, Danke! - Done: v23 anbei.