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

17. April 2026, 06:28: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: 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 5 Guests are viewing this topic.

TFM

Quote from: LambdaMikel on 24. June 2019, 20:55:20
OK, wir koennen das Bereitschaftsbyte gerne aendern! Mache ich in der naechsten Version.

Sehr schön! Dann weiß die Applikation / der RSX ob (noch) der Serielle Modus an ist.

Quote from: LambdaMikel on 24. June 2019, 20:55:20
"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? Also, die 4 RRAs einfach mal weg lassen in der naechsten Version.

Alles klar, ich lass den 4x rechtsschieben weg, dann empfehle ich Dir aber auf die Version 16 zu gehen und nicht auf &x11110001, ok?

Klar mit der Kompatibilität ist es dann nix mehr, aber die Funktion wird doch bisher eh in keinem Programm oder was auch immer eingesetzt. Also gute Idee!  :)
EDIT: Ok, hab's geändert. Um das zu unterscheiden hab ich den RSX auf !GETVER umbenannt (zuvor war es !GETVERSION).  :zwinker0018:
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 25. June 2019, 12:45:38
Sag mal ist in der neuen Firmware die Sprachausgabe am Start entfernt?
Ja, so ist der LS3 schneller einsatzbereit.
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: LambdaMikel on 25. June 2019, 06:22:55
An sich würde es ja reichen das NUR mit !GETVER zu machen :-)

P.s.: Wäre super, wenn die Firmware auch immer ein Datum im Namen hätte.  :flehan:

OK, let's make it so.
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)

Rennert

so programmieren funzt jetzt am Modul, stecke es aber vom CPC dabei ab. Der andere ATmega wird erstmal nicht mehr erkannt. Gab beim programmieren nen Error. Muss ich mal nen Quarz als Takt anschliessen, so hatte ich schonmal einen gerettet. aber hab nur 25MHz und das ist zuviel ohne Schaltung, bei AVR nimmt er nur 1,845MHz als höchstes 1/4 ISP Takt.

LambdaMikel

Quote from: Rennert on 25. June 2019, 15:38:51
so programmieren funzt jetzt am Modul, stecke es aber vom CPC dabei ab. Der andere ATmega wird erstmal nicht mehr erkannt. Gab beim programmieren nen Error. Muss ich mal nen Quarz als Takt anschliessen, so hatte ich schonmal einen gerettet. aber hab nur 25MHz und das ist zuviel ohne Schaltung, bei AVR nimmt er nur 1,845MHz als höchstes 1/4 ISP Takt.

Falls Du ihn ganz versemmelt hast, hilt der Fuse Doktor mit Elektroshock-Therapie:

https://www.ebay.de/itm/ATMEL-AVR-ATMEGA-ATTINY-Fuse-Repair-Programmer-Fuse-Doctor/222853553561?hash=item33e31b5d99:g:busAAOSwEfVcUG7O

LambdaMikel

Ich werde in der naechsten Firmware noch versuchen eine weitere neue Funktion unterzubringen:
das Auslesen vom EEPROM. Damit koennte man dann beliebige Daten bis zu 128 KBs speichern.
Und ins RAM kopieren mittels |eeprom2ram,<startpage>,<number of pages>, <cpcram start address>

Wie waere es mit |hibernate und |resume als Anwendungsfall fuer das EEPROM?

Ich jedenfalls wuerde es cool finden wenn ich im BASIC -Coden bin und einfach |HIBERNATE machen koennte und aus, und dann setze ich mich wieder ran und |RESUME. Dann muesste ich nicht rumfummeln mit DDI3 und so weiter.

Rennert


TFM

Interessant.... naja, ein EEPROM könnte man sicherlich oft genug beschreiben.  :)

Anbei das neueste ROM (fast ungetestet) für die Firmware die in wenigen Stunden rauskommt.
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 25. June 2019, 20:30:53
Interessant.... naja, ein EEPROM könnte man sicherlich oft genug beschreiben.  :)

Anbei das neueste ROM (fast ungetestet) für die Firmware die in wenigen Stunden rauskommt.

Upps,  da warst Du ja wieder schnelle als die Polizei erlaubt!  :bgdev:

Klar, EEPROM ist robust, und selbst wenn es mal kaputt geht, kann man ja einfach fuer 5 EUR ein neues reinstecken.

TFM

Und gesockelt ist es ja auch... also her mit dem Firmware-Update, die Nacht hält nicht ewig.  :zunge0020:
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, hier ist die neuste "Beta (nicht offizielle) Version".

Neue Control Bytes:


#ifdef LS300
    case 0xFE : eeprom_pcm_upload_mode(1); break;
    case 0xFD : eeprom_pcm_play_mode(4); break;
    case 0xFC : eeprom_pcm_play_mode(3); break;
    case 0xFB : eeprom_pcm_play_mode(2); break;
    case 0xFA : eeprom_pcm_play_mode(1); break;

    case 0xF9 : eeprom_pcm_upload_mode(0); break;
    case 0xF8 : eeprom_pcm_clear_all(); break;
    case 0xF7 : eeprom_get_data(); break;

      // case 0xF6 : eeprom_get_id(); break;

    case 0xF5 : eeprom_full_check(); break;
    case 0xF4 : non_blocking_confirmations(); break;
    case 0xF3 : blocking_confirmations(); break; 
    case 0xF2 : get_full_mode(); break;
    case 0xF1 : usart_mode_loop(); break;
#endif



Zum Daten-Upload gibt es jetzt F9 - das ist genauso wie FE, allerdings macht er kein "Now testing", da es sich ja nicht um einen PCM Sample handelt. Wäre also gut, wenn wir dafür |eepromupload hätten.

Zudem kann man dann genau EINE SEITE (512) Bytes auslesen, mittels F7.
Bitte einmal auf LS300.DSK EEPROM2.BAS ansehen, dann wird es klar. Es wird nur ein Argument übermittelt, die Start-Seite. Und die kann auch 0 sein. Beim Hochladen (|pcmup, |eepromup) kann Startseite ebenfalls 0 sein. Nur beim |pcmplay ist 0 nicht erlaubt als Start-Seite. Außerdem gibt es wie gesagt nur die Möglichkeit, 1 Seite pro F7 auszulesen. Für die nächste Seite muss man eben noch einmal F7 mit der nächsten Start-Seitennummer aufrufen. Seite für Seite.

|pcmup hat einen Fehler - das letzte Byte wird nicht richtig gesendet! Bitte einmal nachsehen. S. Testprogramm EEPROM.BAS, das |pcmup verwendet, und das den Fehler zeigt - das letzte gelesene Byte der Seite (Adr. 511 = 512. Byte) ist nicht 255, sollte es aber sein. Bitte einmal nachschauen, wo der Fehler in |pcmup ist (bei PCM Samples ist das natürlich egal da man das eine Byte eh nicht hört, aber bei Daten kann es natürlich fatal sein).

Die Getversion ist wie gesagt 8bittig, und auch get-full-mode  (F2). Alles andere wie gehabt 4bittig.

|pcmtest habe ich auch mal geändert, in etwas schöneres das auch noch weniger PROGMEM benötigt  ;D

Gruß und bis bald

Michael 




TFM

WoW! Da bist da ja nicht 24/7 sondern eher 36/9 dran!  :jubelaola:

Wie ist denn &F2 (get full mode) aufgeschlüsselt? Welches Bit heißt was?
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 26. June 2019, 17:25:56
WoW! Da bist da ja nicht 24/7 sondern eher 36/9 dran!  :jubelaola:

Wie ist denn &F2 (get full mode) aufgeschlüsselt? Welches Bit heißt was?

Kommt heute Abend, bin auf der Arbeit.

LambdaMikel

Mich interessiert natuerlich insbesondere, wie schnell Du 64 KBs mittels F7 auslesen kannst... schreiben wissen wir ja jetzt dass das in 3 bis 4 Sekunden geht.

Evtl. will ich mal nachsehen, ob ich nicht mehr als 1 Seite lesen kann. Sollte eigentlich auch machbar sein.
Fuer die naechste Version kannst Du davon ausgehen, dass F7 nicht nur Startseite, sondern auch Anzahl Seiten als Argument erwartet.

LambdaMikel





typedef enum { SSA1_M = 0, LAMBDA_EPSON_M = 1, LAMBDA_DECTALK_M = 2, DKTRONICS_M = 3, AMDRUM_M = 4, SSA1_SPO_M = 5,  DKTRONICS_SPO_M = 6,  EEPROM_PCM_UPLOAD_M = 7, EEPROM_PCM_PLAY_M = 8, SERIAL_M = 9, START_OVER_SAME_MODE = 10 } LS_MODE;

static volatile LS_MODE CUR_MODE = SSA1_M;

....

void get_full_mode(void) {
 
  uint8_t bout  = CUR_MODE;  // 0  - 9 : 4 bits

  bout |= BLOCKING << 4; 
  bout |= NON_BLOCK_CONFIRMATIONS << 5; 
  bout |= LANGUAGE << 6;   
  bout |= CONFIRM_COMMANDS << 7;

  cpc_input("Current full mode ", bout, 0);  // 8 bit

}

[code]