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

25. May 2026, 14:21:42

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,858
  • Total Topics: 1,530
  • Online today: 730
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 2
Guests: 216
Total: 218

216 Guests, 2 Users
Devilmarkus, Rennert

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 1 Guest are viewing this topic.

TFM

Also Warteschleifen sind mir ein Gräuel und deshalb verwende ich sie nur wo bitter nötig. Im Falle der GET Kommandos warte ich zuerst bis der LS3 ungleich &40, dann lese ich den Wert. Das klappt super, aber eben nicht dann wenn der LS3 den Wert 4 liefert, also &40. Daran hätte ich denken sollen, aber es war hald mal wieder spät in der Nacht. Habe es jetzt geändert, ein paar Befehle umgestellt, und schaue mal ob das mit dem dadurch erzwungenem "Warten" zwischen OUT Kommando und IN Daten auch ausreicht. Will es aber erst mal testen.  :)
Danke für die neue Firmware!!!  :smiley027:

EDIT: Neue Version der ROMs hochgeladen. Link: Siehe meine Signatur. Scheint alles zu klappen.

:director: Liebe LS3 Nutzer, bitte Fehlerberichte hier ins Forum stellen. Bin für jeden Kommentar dankbar.
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

Super dass |getmode jetzt funtz! Vielen Dank!  :jubelaola:

Allerdings hängt |resume,0 bei mir meist noch. Mit oder ohne |lsinit.

Ich habe aus der "eeget" Routine noch einmal ein paar CPC z80 halt statements ausgebaut... macht aber keinen Unterschied. Anbei.

LambdaMikel

Hier die letzte Version, v26 - hoffentlich endlich final!

https://github.com/lambdamikel/LambdaSpeak3/blob/master/firmware/atmega644/lambdaspeak3-firmware-v26-07-02-19.hex

Neu in dieser Version - jetzt haben wir auch MIDI.
https://ubld.it/products/midi-breakout-board/
Die erforderliche BAUD Rate 31250 ist nun eingebaut (BAUD Setting 6).

Siehe MIDI.BAS demo auf LS300.DSK anbei.


TFM

Erst mal Danke für's Firmware Update, werde es gleich installieren.  :whip2:

Quote from: LambdaMikel on 03. July 2019, 03:30:02
Allerdings hängt |resume,0 bei mir meist noch. Mit oder ohne |lsinit.

Schau mal auf "LambdaSpeak_III_RSX_2019-07-02.DSK" in die Datei "LS3-ROM.MAX" rein, Und suche da nach dem Wort "RESUME", ab da steht der Source Code. Mein Z80 Teil scheint mir korrekt zu sein. Ich hab mir einen "Emulator" für diesen Zweck geschrieben, und so konnte ich den Z80 code testen, es scheint alles zu passen. Aber vielleicht fällt Dir ja noch etwas auf, z.B. irgendetwas nicht berücksichtigt oder so.  :-X

Meine Tests haben nur ergeben, dass die EEPROM lesen/schreiben Schleife nicht verlassen wird. Warum? Keine Ahnung!
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 03. July 2019, 16:59:24
Erst mal Danke für's Firmware Update, werde es gleich installieren.  :whip2:

Quote from: LambdaMikel on 03. July 2019, 03:30:02
Allerdings hängt |resume,0 bei mir meist noch. Mit oder ohne |lsinit.

Schau mal auf "LambdaSpeak_III_RSX_2019-07-02.DSK" in die Datei "LS3-ROM.MAX" rein, Und suche da nach dem Wort "RESUME", ab da steht der Source Code. Mein Z80 Teil scheint mir korrekt zu sein. Ich hab mir einen "Emulator" für diesen Zweck geschrieben, und so konnte ich den Z80 code testen, es scheint alles zu passen. Aber vielleicht fällt Dir ja noch etwas auf, z.B. irgendetwas nicht berücksichtigt oder so.  :-X

Meine Tests haben nur ergeben, dass die EEPROM lesen/schreiben Schleife nicht verlassen wird. Warum? Keine Ahnung!

Also HIBERNATE scheint immer zu funktionieren. Nur beim RESUME haengt er meist und es scheint so zu sein, dass er einfach aufhoert, Daten anzufordern. Evtl. ist er der Meinung, er haette schon alle Daten oder "verzaehlt" sich, sodass er einfach aufhoert und LS3 haengt dann?

Zudem hatte ich den sehr komischen Effekt, dass er in eine Endlosschleife ging, und immer wieder "EEPROM Get Data. Send start page number" usw sagt, als ob das Command in einer Schleife immer wieder abgesetzt wurde.

OK, ich gucke mal in den Source Code demnaechst. EEUP und EEGET scheinen das Problem uebrigens nicht zu haben. Ich habe einmal den gesamten Speicherbereicht von &2000- &C000-1 ins EEPROM geladen, "Checksumme" ueber diesen Speicherbereich gemacht (einfach Summe MOD 256), dann wieder eingeladen mittels |EEGET und erneut "Checksumme", und die Werte waren identisch. Auch haengte er nicht fest.


TFM

Ja, danke, hab derweil !LED eingebaut.

Wegen !RESUME, probier mal !CONFOFF davor. Hilft das?
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 03. July 2019, 18:16:55
Ja, danke, hab derweil !LED eingebaut.

Wegen !RESUME, probier mal !CONFOFF davor. Hilft das?

Nein, nicht wirklich. Auch |lsinit hilft nicht wirklich.

Cool, das |LED RSX!  :smiley027:

Rennert


TFM

Nein, ich abreite an BIGWATCH, das tut aber nicht wie es soll...

Michael, könntest Du Dir bitte in der Firmware mal den Funktion GET_HOUR ansehen?

Das geht zwar in BASIC, aber nicht im MC.

Wenn ich das Werte lese, wechseln die durch, aber keiner davon ist die Stunde, und der erste gelesene Wert scheint eher zufällig zu sein. Keine Ahnung woran es liegt  :irre:



Beispiel, gib mal folgendes im Maxam Assember (ROM) ein:

org &9000
ld bc,&fbee
ld a,&d5
out (c),a
ld hl,&4000

loop in a,(c)

ld (hl),a
inc hl
ld a,h
rlca
jr nc,loop
ret

Dann assemblieren, ab &9000 aufrufen und mit Edit ab &4000 im RAM nachschauen.

Die Routine schreibt &4000 bis &7FFF voll mit Bytes die vom LS3 gelesen werden.
Allerdings ist keines davon die Stunde.

Andere LS3 Nutzer bitte auch mal probieren! Danke!
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

Anbei als HOURS.BAS (MAXAM 1.5).
Ich glaube, Du hast die Sekunden erwischt  :zwinker0018:

Du hast ein paar Nächte zu viel / lang durchgemacht, schlaf mal aus  :zwinker0018:  ;)

Clevere Idee mit der Schleife und rlca und jr nc, loop übrigens... um das zu verstehen musste ich tatsächlich noch mal in's Z80 Buch reingucken, mein Z80 ist ja schon 30+ Jahre her  :zunge0020:

LambdaMikel

Quote from: TFM on 03. July 2019, 22:12:54
Nein, ich abreite an BIGWATCH, das tut aber nicht wie es soll...

Oh, BIGWATCH? Da hätte ich auch noch eine  :jubelaola:
... aber funktioniert noch nicht mit LS3. Musste nur dran denken als Du es erwähntest.



TFM

Ähm, ja Schlafmangel und Komplexität des LS3... hab heute mal 9 Stunden geschlafen...

Ja, sollte Stunde (D3) lesen und nicht die Sekunden, glaube das Problem ist dass der LS3 die Daten im Binärformat liefert, also man erhält hex &13 für 19 dezimal. Mein Fehler. Und vor dem Lesen der Daten muss man 2 NOPs warten (8 us ist fein, 4 reicht nicht), denn sonnst liest man &40 (LS3 noch beschäftigt). Bei über 100 Funktionen verliere ich wohl langsam die Übersicht, da hilft's in Deinem super Online-Manual nachzulesen.  :)

EDIT: Ein weiteres Problem sind (erstaunlich aber wahr), die Systeminterrupts des nativen CPC-OS! Die brauchen so viel Zeit, dass sie (zumindest bei FAST GETTERS) zu Problemen führen. Das lösen wir einfach mit DI und EI und gut ist es.

... BIGWATCH läuft.  :)
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

Yeah! Download please  :flehan:
Wir können die Fast Getters sonst auch etwas ausbremesen und länger machen.... wie Du meinst.

Interrupts sind leider oft destruktiv... beim ATMega hatte ich das Problem auch (obwohl der gar kein OS hat!  :irre:). Disablen ist manchmal das Beste  :smiley027:

Kann ich Dein Assembler-Beispiel zum Auslesen auf's Github tun?

LambdaMikel

... wo wird gerade dabei sind - weiß einer von einem MID file song player für den CPC in BASIC?

Stefan, hier ist unser nächstes Projekt  :love: Schmeiss mal Deinen Windows Media Player an (der spielt MID)
Wäre doch nett, wenn das aus dem CPC käme, oder?  :smiley027:

TFM

Quote from: LambdaMikel on 04. July 2019, 17:45:53
Yeah! Download please  :flehan:
Wir können die Fast Getters sonst auch etwas ausbremesen und länger machen.... wie Du meinst.

Interrupts sind leider oft destruktiv... beim ATMega hatte ich das Problem auch (obwohl der gar kein OS hat!  :irre:). Disablen ist manchmal das Beste  :smiley027:

Kann ich Dein Assembler-Beispiel zum Auslesen auf's Github tun?

Nee, fast getters passt schon, hab ein paar DI's und EI's eingebaut.  ;)

Download ist oben, siehe Signatur unten.

Michael, Du kannst gerne alles immer von mir auf GitHub tun.  :) :) :)
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)