Neuer Voice Synthesizer für Model 1 & III / 4

  • Hallo Freunde des TRS-80,


    habt Ihr schon ein Bastel-Projekt für den Herbst? Falls nicht, möchte ich gerne auf den Talker/80 hinweisen - einen neuen Voice Synthesizer für den TRS-80. Alle Infos, Gerbers und OpenSource Firmware sind hier zu finden:


    https://github.com/lambdamikel/Talker-80


    Es gibt auch die Möglichkeit, Bausätze und vollständig zusammengebaute Talker/80 von mir zu erwerben (eBay). Der Zusammenbau ist recht einfach - kein SMD, nur Through Hole. Demo Videos gibt's einige auf YouTube.


    Viele Grüße,

    Michael


    Einmal editiert, zuletzt von LambdaMikel ()

  • ganz schön abgedreht ! Da ich aber weder einen TRS80-M1 noch M3/M4 besitze gleich die Frage: ginge das auch für CP/M ? Im zip auf Github sind alle Basic-Progs tokenized bzw. als *.cmd Programme enthalten. Das ist etwas hinderlich. Läst sich das offener gestallten, d. h. als ASCII bzw. im source ?

  • ganz schön abgedreht ! Da ich aber weder einen TRS80-M1 noch M3/M4 besitze gleich die Frage: ginge das auch für CP/M ? Im zip auf Github sind alle Basic-Progs tokenized bzw. als *.cmd Programme enthalten. Das ist etwas hinderlich. Läst sich das offener gestallten, d. h. als ASCII bzw. im source ?

    Ja, die MIII / M4 (DSK, JV3, HFE) Diskette hat die Programme im ASCII (.TXT).

    Die M1 Version hat nur tokenized BAS, aber konvertieren in ASCII kannst Du einfach selbst machen.


    Lade TRS80GP


    http://48k.ca/trs80gp.html


    wähle M1, dann LDOS für Disk 0, TALKER80.DSK M1-Version für Disk 1 aus dem Repo, dann Reset. Mittels "DIR :1" Inhalt von TALKER80.DSK ansehen. Dann BASIC starten (BASIC eintippen). Von BASIC:


    LOAD "WELCOME/BAS"


    Abspeichern als ASCII geht mittels


    SAVE "WELCOME/TXT", A


    Viel Spaß damit - trs80gp ist DER *Hammer Emulator* für den TRS-80!



  • Für CP/M - gute Frage! Talker/80 hört auf Z80 IO Port 11.

    Jedes Programm, dass den Port 11 beschicken kann, kann Talker/80 ansprechen.

    Ich kenne mich mit CP/M nicht gut aus. Gibt es z.B. CP/M BASICs, die Port IO erlauben?

    Ich denke, dass könte etwas zu "low level" sein für CP/M. Dann müsste man selbst ein Utility schreiben.

    Sollte nicht schwierig sein. Vielleicht mache ich das einmal (wenn ich Zeit finde). Gute Idee.

  • Die Dinge sind leider doch etwas komplizierter: Mein erster Gedanke war, den Talker-80 über einen 8255-IO Port zu steuern (Mein CP/M-System besteht nur aus einem FPGA plus 8255-PIO). Dann muß die Software aber vermutlich anders ansteuern, d.h., Signale wie n_WR & n_RD etc. müssen per Software gesteuert werden, damit es geht. Grundsätzlich sollte das aber kein großes Problem sein, solange der Datenfluß stimmt oder ?

  • Die Dinge sind leider doch etwas komplizierter: Mein erster Gedanke war, den Talker-80 über einen 8255-IO Port zu steuern (Mein CP/M-System besteht nur aus einem FPGA plus 8255-PIO). Dann muß die Software aber vermutlich anders ansteuern, d.h., Signale wie n_WR & n_RD etc. müssen per Software gesteuert werden, damit es geht. Grundsätzlich sollte das aber kein großes Problem sein, solange der Datenfluß stimmt oder ?

    Ja, korrekt. Klar, Talker/80 ist für den TRS-80 M1 und M3/M4 Erweiterungsbus ausgelegt. Die sind zudem auch noch verschieden! So bietet die M1-Version sowohl Memory Based IO (notwendig für die Emulation des TRS Voice Synthesizers - der macht sowas wie VIDEO RAM Snooping!), als auch Port Based IO (notwendig für den VS-100 und "native" DECtalk / EPSON Modus des Talker/80). Auf dem M3/M4 ist Memory Based IO ("Video RAM Snooping") nicht möglich. Der Adress-Dekoder (U1 im Schaltbild) der M1-Version macht also "mehr".


    Als Basis für Dein Projekt würde es also Sinn machen, die M3 / M4 Version zu nehmen. Die Schaltung wird auch funktionieren, wenn du U1 nicht eingesteckt hast. Am einfachsten wird sein, einfach SPEECH_WRITE und D0-D7 vom FPGA bereitstellen zu lassen. SPEECH_WRITE ist active high. Um ein Byte zu schicken müsstest Du also D0-D7 bereitstellen, und dann high triggern. Timing ist unkritisch.


    SPEECH_READ brauchst Du nur, falls Du den Status vom Talker/80 via CP/M lesen willst - ob Talker/80 bereit ist, wieder Daten zu empfangen. Evtl. nicht notwendig. SPEECH_READ ist ebenfalls active high. Hier wird dann O0 - O7 vom ATMega (Status Byte) auf den Datenbus ausgegeben (D0-D7). Falls Du Lesen willst mittels INP, müsstest Du also einen bidirektionalen Datenbus haben. Der U2 hat also die Aufgabe eines TriState Latches (SPEECH_WRITE), und eines TriState transceivers (bi-direktionaler Buffer).


    Habe jetzt übrigens mal mittels CP/M und MBASIC INP / OUT getested auf dem M4 - funktioniert!


    Also - mit 9 oder 10 GPIO PINs in Deinen FPGA bist Du dabei!


    https://github.com/lambdamikel…atics/m3m4/schematics.jpg


    3 Mal editiert, zuletzt von LambdaMikel ()

  • Der Emic 2 ist auch gut, der serielle Anschluss wäre sogar noch besser. Eine Hörprobe der wav-File klingt sogar recht gut - mich stört jedoch, dass nur English und Spanisch als Sprache möglich sind. Englische Phoneme fuer deutsche Texte zu nehmen dürfte ein recht schwer verständliches Ergebnis erzeugen. Können die Phonem-Daten des Talker-80 ausgetauscht werden ? Im Ordner /Talker-80-master/src/atmega644 gibt es einige *.h Files die das vermuten lassen.

  • Nein, die DECtalk Firmware (Emic 2 + Talker/80 benutzen das gleiche Epson Firmware Image!) unterstützt kein Deutsch. Der Phonem-Satz macht das unmöglich m.E. Probieren kannst Du es ja - im DECtalk ARPABET Modus (der das Singen etc. ermöglicht) hast Du volle Kontrolle über die existierenden Phoneme. Aber gut wird es nicht klingen für Deutsch. Ansonstent können Emic 2 und Talker/80 exakt das gleiche.