CBM Tape Pi - Datasette mit Raspberry Pi emulieren

  • Das musst Du mir mal erklären... da steht ein Laptop (mit Mikrofon-Eingang) nebendran, dann ist da noch ein Raspi, eine Platine mit Taster, und der C64.

    Statt direkt den Laptop zu nehmen, und per Mikrofoneingang und später dem Headset-Ausgang den C64 direkt zu bedienen, wird der Raspi und diese Platine mit dem Taster noch dazwischen geschaltet (so sieht's auch auf dem Video aus).

    Selbst wenn der Raspi selbst eine Tastatur und einen Monitor bekommt, aber der Laptop wegfällt, ist die Lösung nicht wirklich elegant.


    Soll das später nur ein kleines Kästchen mit Einzeilen-Display und zwei Tasten werden (nur so würde es Sinn machen) ?

    "The biggest communication problem is we do not listen to understand. We listen to reply." - Stephen Covey


    Webseite und Blog ist immer noch - seit fast 20 Jahren - online.

  • Das musst Du mir mal erklären... da steht ein Laptop (mit Mikrofon-Eingang) nebendran, dann ist da noch ein Raspi, eine Platine mit Taster, und der C64.

    Statt direkt den Laptop zu nehmen, und per Mikrofoneingang und später dem Headset-Ausgang den C64 direkt zu bedienen, wird der Raspi und diese Platine mit dem Taster noch dazwischen geschaltet (so sieht's auch auf dem Video aus).

    Selbst wenn der Raspi selbst eine Tastatur und einen Monitor bekommt, aber der Laptop wegfällt, ist die Lösung nicht wirklich elegant.


    Soll das später nur ein kleines Kästchen mit Einzeilen-Display und zwei Tasten werden (nur so würde es Sinn machen) ?

    Genau, sowas in der Richtung!


    Der erste Schritt war, das Laden vom Raspi hinzubekommen.


    Jetzt funktioniert auch das Speichern.


    Die serielle Schnittstelle ist wesentlich einfacher anzubinden, als SD-Karte oder USB-Stick,

    deswegen wird darauf ersteinmal zurückgegriffen.


    Nun, wo die Übertragung in beide Richtungen funktioniert,

    werde ich (bei Gelegenheit) mit Interrupts und SD-Karte weitermachen.


    Dass es mir persönlich bei dem Projekt auch um die Bare Metal - Entwicklung an sich geht,

    hatte ich ja schon in vorherigen Posts klar gemacht.


    Mir geht es auch darum, direkt am CBM schnell mal zwischendurch speichern zu können

    und da bin ich mir nicht sicher, ob das mit Mikrofon & Headset wirklich die elegantere Lösung ist

    (natürlich vom CBM Tape Pi - Entwicklungsaufwand abgesehen).

    Beispielsweise, wenn man direkt auf dem Commodore Computer entwickeln möchte

    (natürlich auch nur zum Spaß - wie alles hier im Forum diskutierte, oder?).

  • Gibt es jetzt eigentlich eine Erfolgsmeldung dazu (also funktioniert der RaspPi als Datasette ohne Probleme) ?

    Immer, wenn ich mal Zeit habe, bastel ich daran weiter (siehe auch GitHub)!


    Die SD-Karte soll ja letztendlich die Kommunikation mit dem PC per serieller Schnittstelle ersetzen (siehe Videos).


    Aktueller Stand (noch nicht im aktuellen Release):


    - Lesen und Schreiben der SD-Karte funktioniert.


    - FAT32-Dateisystem wird unterstützt.


    - Das Verfahren zum gezielten Laden und Speichern per Commodore wird gerade umgesetzt.


    Falls Interesse, kann ich da gern noch mehr zu schreiben.

  • Die serielle Verbindung zu einem PC, der die PRGs vorhält, ist nun nicht mehr notwendig.

    Mit dem neuesten Release können direkt PRGs von der SD-Karte gelesen und darauf gespeichert werden.


    Release: CBM Tape Pi v1.6.1


    YouTube video (geschnitten beim Speichern/Laden, da noch kein Fast Loader implementiert ist): Video mit CBM 3032.

  • gelöscht. ;)

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • gelöscht. ;)

    :) Kann ich trotzdem gern nochmal für andere erklären, die sich evtl. (auch) wundern:


    Warum der merkwürdige Syntax mit SAVE"...":LOAD ?


    CBM Tape Pi lädt noch keine Software (Fastloader/Wedge), sondern alles funktioniert mit dem normalen Commodore ROM.


    LOAD sendet aber keine Daten (z.B. den Dateinamen) an die Datassette,

    sondern liest bei Eingabe des Dateinamens (LOAD"MYFILE.PRG") einfach so lange vom Datassetten-Port,

    bis der Begin der Daten einer Datei mit dem Namen (MYFILE.PRG) geladen wird.


    Deswegen sende ich alle Kommandos an den Raspberry Pi via SAVE"...", eben auch den Ladebefehl.

  • gelöscht. ;)


    LOAD sendet aber keine Daten (z.B. den Dateinamen) an die Datassette,

    Ja, genau. Deswegen hatte ich meine Frage gleich wieder gelöscht. Weil mir das nach kurzem Nachdenken dann auch klar geworden ist. ;)

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • @RhinoDevel:


    ...bin recht neu hier im Forum und finde Dich eben hier als Entwickler von CBM Tape Pi! :anbet::anbet::anbet:

    Ich hatte Dein Projekt schon vor geraumer Zeit im Web gefunden und würde es gerne mit meiner Mistica (MIST Clone FPGA Board) verwenden - denkst Du das würde funktionieren???

    Die Mistica hat eine Audio Schnittstelle als Ein- und Ausgang implementiert und manche Cores unsterstützen das (z.B. der C64 und der VIC20 Core).

    Da die Raspberry ja keinen ADC hat ist mir schleierhaft wie Dein Teil eigentlich funktioniert! Sendet die Datasette denn normalerweise Binärdaten?


    :)Franky

    • Offizieller Beitrag

    Die Commodore Datassette sendet und empfängt einen binären Datenstrom mit TTL-Pegeln.

    Die A/D bzw. D/A Wandlung passiert in der Datassette.

    Der große Vorteil gegenüber den Geräten, die einen gewöhnlichen Cassettenrecorder mit Audioanschlüssen verwenden ist, daß das nervige Gehampel mit dem richtigen Audiopegel entfällt.

  • Ist genauso, wie Toast_r geschrieben hat.


    Nur so nebenbei:


    Der Stand bei CBM Tape Pi ist, dass ich Fastload und -save implementiert habe, es aber noch nicht ausreichend "poliert" ist für ein Release.

    Werde ich demnächst mal mit weitermachen (hoffentlich!).

    Denn dann fängt es ja erst an, Spaß zu machen (obwohl es jetzt ja auch funktioniert).


    Viel Erfolg bei Deinem Projekt!

  • ich bevorzuge für mich immer noch den MP3-gefütterten Kassettenadapter. Aber hey - alles, was Spaß macht, soll erlaubt sein! Dafür ist dieser Verein doch da.::hacking::

    Hallo :)
    mich würde interessieren, ob Du den mp32c64 am Pet zum Laufen bekommen hast?


    Meinen mp32c64 hab ich gestern zusammengebaut und mich an diese Beschreibung gehalten:

    https://web.archive.org/web/20…032-sk-datasette-emulator

    trotzdem bleibt es bei mir bei "Searching" ... es wird nichts gefunden.


    Dazu habe ich einige PRGs von zimmers.net konvertiert und auch die Kodierung der Daten (also VC20/C64 ...) und das Abspielformat der Audiodaten in jede erdenkliche Form zu ändern. Nichts. Der CBM 4032 findet einfach nichts :/ dabei sollte das doch kein Hexenwerk sein, oder?
    Leider fehlt mir ein C64 um den mp32c64 zu überprüfen.

    Viele Grüße,

    Jürgen



    Update: Es lag an der Lautstärke und dem Abspielgerät. Mit dem alten Samung Galaxy Note 3 hatte ich keinen Erfolg. Mit einem alten iPod Shuffle beim zweiten Versuch die richtige Lautstärke getroffen. *freu*

  • Glückwunsch:thumbup:

    mit Kassettenadapter meinte ich aber etwas in der Art:

    Kassettengerät habe ich nämlich - intern im 2001 und extern am 8032:tüdeldü:

  • Hallo zusammen,


    es gibt auch eine geniale Hardware von Jan Drogee, das CASSIOPEI. Das funktioniert an allen CBM-Geräten mit Datasette-Port und unterstützt TAP als auch PRG.


    Grüsse


    Arndt


  • Die neue Version von CBM Tape Pi v1.7.0 ist jetzt verfügbar.


    Wichtigste neue Funktionen:

    • Fast Mode per Befehlserweiterung (Wedge) für CBM/PETs, VC 20 und C64.
    • Unterstützung für den Raspberry Pi 3 (neben 1, 2 und Zero).

    Ein paar HIghlights:

    • Es wird nur der Datasetten-Port belegt (gleichzeitig Diskettenlaufwerk verwenden sollte z.B. gehen).
    • Durch die Verzeichnisse gehen und Dateien auswählen geht direkt über den Commodore.
    • Bei den CBM/PETs gibt es Support für BASIC v1, v2 und v4.
    • Bei den CBM/PETs kann man wählen, ob die Befehlserweiterung in den Kassettenpuffern oder am Ende des BASIC RAMs hinterlegt werden soll, beim C64 zwischen Ende des BASIC RAMs und direkt vor $D000.
    • Gibt dem alten, herumliegenden Raspberry Pi eine neue Aufgabe.
    • Open Source.
    • Minimaler Bastelaufwand (z.B. keine ICs - außer dem Raspberry Pi..).
    • Offizieller Beitrag

    Sehr interessant!

    Mindestens ein ungenutzter Pi1 ist hier noch vorhanden.

    Hoffentlich finde ich mal Zeit, das auszuprobieren.

    Wie hoch ist die Übertragungsrate im Fast Mode?


    Du schreibst, der Pi soll immer zuerst ein- und zuletzt ausgeschaltet werden.

    Wäre gleichzeitig auch noch sicher?

    Bei den CBMs ist ja die Stromversorgung für Erweiterungen vorgesehen, dann könnte man den Pi darüber versorgen.

  • Der Pi will aber 1A , besser bißchen mehr. Das ist evtl. gar nicht da.


    Mich würde mal interessieren, was die Elektoniker zu der Art dert Verbindung sagen. Ist das OK, oder macht man sich damit ganz schnell den GPIO Port kaputt (oder den Stein hinter dem Datasettenport), etwa wenn man das abzieht und noch ein Gerät an ist.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Die Übertragungsrate ist ganz grob bei 2.5 Kilobyte pro Sekunde.

    Das Übertragungsprotokoll ist aber derzeit auch nicht auf Geschwindigkeit ausgerichtet,

    sondern darauf, dass es unabhängig von der Reaktionszeit der verbundenen Geräte ist

    (viel Handshaking..). Das könnte man also noch wesentlich beschleunigen, denke ich.


    Es sollte nichts passieren, wenn man die Geräte gleichzeitig ein-/ausschaltet.

    Ich bin die Kombinationen (Standard-GPIO-PIN-Einstellungen, Pull-ups / Pull-downs, CBM an/aus, etc.) durchgegangen

    und habe mich dazu entschieden, das so einzuschränken.

  • Der Pi will aber 1A , besser bißchen mehr. Das ist evtl. gar nicht da.


    Mich würde mal interessieren, was die Elektoniker zu der Art dert Verbindung sagen. Ist das OK, oder macht man sich damit ganz schnell den GPIO Port kaputt (oder den Stein hinter dem Datasettenport), etwa wenn man das abzieht und noch ein Gerät an ist.

    Nicht alle Pis wollen 1A. Beim Zero solltest Du z.B. mit 500mA auskommen.


    Dass man die Geräte nicht im laufenden Betrieb abziehen soll, steht in der README.

    Das ist ja nichts neues bezüglich der alten Computer/DIskettenlaufwerke, oder?


    Man kann die Schaltung ja auch mit Level Shiftern versehen.


    Mir ging es aber auch darum, zu schauen, wie weit man mit einfachen/diskreten Komponenten kommt (und dem Pi).

  • Alles gut - ich wollte doch eigentlich nur wissen, wie empfindlich sowas dann auf der Pi Seite behandelt werden muß, oder ob das definitiv beim ersten falschen Ein- oder Ausstecken sofort den Pi Port defektiert. Daß man das besser nicht machen sollte, ist schon klar, es ging eher so um das 'wenn doch'.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Mir geht es auch darum, direkt am CBM schnell mal zwischendurch speichern zu können

    und da bin ich mir nicht sicher, ob das mit Mikrofon & Headset wirklich die elegantere Lösung ist

    (natürlich vom CBM Tape Pi - Entwicklungsaufwand abgesehen).

    Beispielsweise, wenn man direkt auf dem Commodore Computer entwickeln möchte

    (natürlich auch nur zum Spaß - wie alles hier im Forum diskutierte, oder?).

    Daher mag ich meine PETdisk Max und ihre WIFI-Funktionalität. Einfach am PC in den freigegebenen Ordner speichern, fertig. Der PET sieht es instant auf seinem Laufwerk. Rückzu genauso. Bindet man den Ordner PC-seitig in Vice ein, kann man direkt aus Vice auf dem PET speichern und vice versa. Schneller geht's nicht.