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

17. April 2026, 09:06:34

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: 155
Total: 156

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

TFM

Quote from: LambdaMikel on 18. July 2019, 21:57:53
ok, jetzt musst du nur noch tfm triggern, dass er das timing fuer den kc compact anpasst (laenger macht?) damit eeup, eeget, pcmup, hibernate, resume gehen.  ;)

Welche der RSX Befehle gehen denn beim KCc nicht?
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 19. July 2019, 16:51:45
Quote from: LambdaMikel on 18. July 2019, 06:45:31
- der Lese-Code für RESUME ist unterschiedlich zu EEGET.
- der Code von EEGET gefällt mir besser, da Du hier nach 512 gelesenen Bytes mittels CALL LS_WALP eine Warteschleife hast (CALL LS_WALP). Bei RESUME zählst Du nicht in 512er Seiten, sondern mittels DE global die Anzahl der Bytes, und machst keine Pause nach 512. Das könnte das Synchronisationsproblem erklären. OK, Du machst in jedem Schritt Test auf READY, allerdings brauchen wir nach 512 Bytes wie gesagt eine zusätzliche Pause... nach READY müssen wir noch etwas warten.

Und wie lange (in us) soll die Pause sein?

Klar ist der Code anders, würde man bei !RESUM einen CALL verwenden so würde ein Wert auf den Stack geschrieben. Das wäre in den Fall eine Crash-Garantie.

Habe ich doch geschrieben... so 10 ms sollten reichen. Wenn nicht, 10 ms  :D



Ja aber Du koenntest ja trozdem die Pause machen nach 512 Bytes, das ist mein Hauptkritikpunkt  ;)

EDIT: ZUmindest dacht ich das. Ich wuerde erst einmal mit 10 ms probieren, dann 20 ms, ... die Pause wird benoetigt, da der ATMega Daten vom EEPROM puffern muss, und das Lesen dauert ein bisschen. Ich weiss leider nicht, wie lange.  Selbst wenn es 10 ms sind nach 512 bytes, addiert sich das ja nur zur ne zusaetzlichen Sekunde oder zweien. 

In BASIC reicht die Zeit, die das print "wait wait wait" benoetigt, ich denke also, es ist im zweistellinge millisekunden bereichl

Rennert

Quote
PCMMode, eeget, eeput hängen den KCC auf. Hibernate und resume gehen daher auch nicht.

Du meinst PCMUP? PCMPLAY / PCMMODE sollte den KC nicht aufhaengen...

TFM

Nun, es geht ja auch ohne Pause wie man sieht, wenn Pause, dann einmal am Ende, aber auch das hab ich getestet und es ist einfach nur ominös. Also Du sagst 10 ms. Na gut ich teste das dann nochmals.

Quote from: LambdaMikel on 19. July 2019, 18:05:05
Quote from: TFM on 19. July 2019, 16:51:45
Quote from: LambdaMikel on 18. July 2019, 06:45:31
- der Lese-Code für RESUME ist unterschiedlich zu EEGET.
- der Code von EEGET gefällt mir besser, da Du hier nach 512 gelesenen Bytes mittels CALL LS_WALP eine Warteschleife hast (CALL LS_WALP). Bei RESUME zählst Du nicht in 512er Seiten, sondern mittels DE global die Anzahl der Bytes, und machst keine Pause nach 512. Das könnte das Synchronisationsproblem erklären. OK, Du machst in jedem Schritt Test auf READY, allerdings brauchen wir nach 512 Bytes wie gesagt eine zusätzliche Pause... nach READY müssen wir noch etwas warten.

Und wie lange (in us) soll die Pause sein?

Klar ist der Code anders, würde man bei !RESUM einen CALL verwenden so würde ein Wert auf den Stack geschrieben. Das wäre in den Fall eine Crash-Garantie.

Habe ich doch geschrieben... so 10 ms sollten reichen. Wenn nicht, 10 ms  :D



Ja aber Du koenntest ja trozdem die Pause machen nach 512 Bytes, das ist mein Hauptkritikpunkt  ;)

EDIT: ZUmindest dacht ich das. Ich wuerde erst einmal mit 10 ms probieren, dann 20 ms, ... die Pause wird benoetigt, da der ATMega Daten vom EEPROM puffern muss, und das Lesen dauert ein bisschen. Ich weiss leider nicht, wie lange.  Selbst wenn es 10 ms sind nach 512 bytes, addiert sich das ja nur zur ne zusaetzlichen Sekunde oder zweien. 

In BASIC reicht die Zeit, die das print "wait wait wait" benoetigt, ich denke also, es ist im zweistellinge millisekunden bereichl
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

Quote from: Rennert on 19. July 2019, 18:43:47
Quote from: TFM on 19. July 2019, 16:56:59
Quote from: LambdaMikel on 18. July 2019, 21:57:53
ok, jetzt musst du nur noch tfm triggern, dass er das timing fuer den kc compact anpasst (laenger macht?) damit eeup, eeget, pcmup, hibernate, resume gehen.  ;)

Welche der RSX Befehle gehen denn beim KCc nicht?

PCMMode, eeget, eeput hängen den KCC auf. Hibernate und resume gehen daher auch nicht.

Nur um sicher zu sein, hast es mal so ausprobiert: !LSINIT zuvor eingegeben?
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

Kann es sein, dass man die RTC nicht lesen kann wenn Kommando &F4 zuvor gesendet wurde?
(Nicht, dass das jetzt wichtig wäre).  :)
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: LambdaMikel on 19. July 2019, 18:05:05
In BASIC reicht die Zeit, die das print "wait wait wait" benoetigt, ich denke also, es ist im zweistellinge millisekunden bereichl

Der Effekt kann ganz gut beobachtet werden - nimm aus EEPROM3.BAS mal das print wait wait wait raus, und dann siehst Du, dass es zu Lesefehlern kommt beim ersten Byte der naechsten Seite oder so.

Wohlgemerkt, wenn sogar das lahme BASIC Lesefehler feststellt, dann treten diese erst recht in MC auf denke ich.

LambdaMikel

Quote from: TFM on 19. July 2019, 19:00:11
Kann es sein, dass man die RTC nicht lesen kann wenn Kommando &F4 zuvor gesendet wurde?
(Nicht, dass das jetzt wichtig wäre).  :)

Koennte sein, habe ich nicht getestet.

LambdaMikel

Quote from: Rennert on 19. July 2019, 18:43:47

PCMMode, eeget, eeput hängen den KCC auf. Hibernate und resume gehen daher auch nicht.

Du meinst PCMUP? PCMPLAY / PCMMODE sollte den KC nicht aufhaengen...

LambdaMikel

Quote from: TFM on 19. July 2019, 16:51:45
Klar ist der Code anders, würde man bei !RESUM einen CALL verwenden so würde ein Wert auf den Stack geschrieben. Das wäre in den Fall eine Crash-Garantie.

Warum das denn... der CALL kehrt doch mit RET wieder zurueck und dann ist auch der Stack wiederhergestellt.... und im letzten SChritt wenn alles eingelesen ist holst Du Dir den SP doch aus dem RAM...  Du meinst weil der Stackbereich im RAM evtl. "seitenueberlappend" (also ueber 2 Seiten verteilt) wieder hergestellt wird? Sollte ein CALL / RET zwischen Seiten/RAM-Veraenderungen nicht trotzdem problemlos gehen?  Ach so... der RAM Stackbereich passt nicht mehr zum Stackpointer, und der Stackpointer wird erst am Ende wieder hergestellt.

Verstehe! Gute Beobachtung, pfiffig!!  :winke0002: :jubelaola:

Rennert

Quote from: TFM on 19. July 2019, 18:59:12
Quote from: Rennert on 19. July 2019, 18:43:47
Quote from: TFM on 19. July 2019, 16:56:59
Quote from: LambdaMikel on 18. July 2019, 21:57:53
ok, jetzt musst du nur noch tfm triggern, dass er das timing fuer den kc compact anpasst (laenger macht?) damit eeup, eeget, pcmup, hibernate, resume gehen.  ;)

Welche der RSX Befehle gehen denn beim KCc nicht?



PCMMode, eeget, eeput hängen den KCC auf. Hibernate und resume gehen daher auch nicht.

Nur um sicher zu sein, hast es mal so ausprobiert: !LSINIT zuvor eingegeben?

Ich teste zuhause nochmal alles, ja Lsinit mache ich immer vorher.
Nach Z.B. PCMMODE, 4 kam kein Cursor mehr.

Andere Frage: Was hört man bei Pcmtest? Ich verstehe den Satz nicht als Deutscher :P

LambdaMikel

S. Video YOuTUbe oben - Dillinger talks to the MCP - "End of line"

Ich kann Dir ja mal ein PCMTEST EEPROM passend zum KC Kompakt machen - wuerde Dir das besser gefallen?

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

;D ;D Nix fuer ungut  - Spass muss sein! ;D

Rennert

Ahhh, habe immer End the line verstanden. Also funzt der PCMTest.

Rennert

habe mal im X-Mem alles auser FOS, LS3 Rom und Parados deaktiviert.
beim drumload hat er mal die Files geladen, aber alle 1110 bytes und hat sie beim Laden richtig abgespielt.dann bei drummer gingen nur die ersten 3 Files, die restlichen waren leer.
habe mal den Rechner ausgemacht und neu an. jetzt lädt er wieder nur mit 0 bytes und nix geht mehr.
eeprom3 läuft immer ohne Probs durch

LambdaMikel

Quote from: Rennert on 19. July 2019, 20:51:17
habe mal im X-Mem alles auser FOS, LS3 Rom und Parados deaktiviert.
beim drumload hat er mal die Files geladen, aber alle 1110 bytes und hat sie beim Laden richtig abgespielt.dann bei drummer gingen nur die ersten 3 Files, die restlichen waren leer.
habe mal den Rechner ausgemacht und neu an. jetzt lädt er wieder nur mit 0 bytes und nix geht mehr.
eeprom3 läuft immer ohne Probs durch

alle 1110 bytes is nicht richtig, dann spielt er beim testen eben nur die 1110 bytes ab.
du musst im basic programm drumload.bas rausfinden, wie zeile 310 length=.... beim kc compact berechnet werden kann. zur not musst du die laenge fuer jede datei von hand eingeben: 310 input length.


und eetest sagt am ende "done testing" ?