Massenspeicher, aber nicht an Serial oder Modulport?

  • Massenspeicher, aber nicht an Serial oder Modulport?

    Hi,

    es gibt so viele schöne Lösungen für Massenspeicher am Serial- oder am Modulport des C64. Leider habe ich einen Anwendungsfall bei dem diese beiden Ports belegt sind, ich aber gerne auf ca. 1 Megabyte Daten außerhalb des Cevi zugreifen möchte. Der Zugriff braucht nur sequentiell zu sein (also keine Unterstützung für beliebigen Zugriff oder ein Dateisystem). Benutzen will ich das ganze zum automatischen Test von Time of Silence 2, dem Spiel das ich entwickle. Idealerweise wäre es leicht, den Speicher mit wechselnden Daten aus dem PC zu befüllen (ein EPROM wäre z.B. schlecht).

    Gibt es dafür schon bekannte Lösungen? Ich war erstaunt, dass ich gar nichts für den Userport gefunden habe, der sich doch eigentlich anbieten würde. Ich weiß dass es das Tapecart gibt, das wäre wohl die einzige mir bekannte Lösung für mein Problem (wenn es denn zu bekommen sein wird). Gibt es Alternativen?
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────
  • Auf Anhieb fällt mir noch 64net ein.

    Evtl. kommt auch mein "Slave2CBM" in Frage. Hab ich nie offiziell released, aber die Forumssuche sollte ein paar erklärende Beiträge von mir liefern - benötigt aber einen Linux-PC mit echtem Parallelport.

    EDIT: Oh, Du willst die Kontrolle auf PC-Seite haben. Ja, dann Hennings xlink.
    Yes, I'm the guy responsible for the ACME cross assembler
  • Aha, ja die Low-Level-API die Henning für XLink beschreibt könnte genau das tun was ich brauche! Vielen Dank für die Info, ich schreib ihn mal an, ob es irgendwo PCBs gibt (oder ob ich eine Sammelbestellung mache, oder selber eins ätzen muss :hammer: :strom: :cry )
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────
  • mc71 schrieb:

    Ich hätte schwören können der serielle Bus verträgt mehrere Geräte aufs Mal
    Das ist natürlich richtig und ich habe es auch in Erwägung gezogen. Mein Schnelllader würde wohl auch mehr als ein Device am Bus erlauben.

    Für meinen Usecase machen mir dabei aber fürchte ich die Zugriffszeiten einen Strich durch die Rechnung: die Idee ist, die Joystick- und Tastaturabfragen zum Testen durch das Einlesen eines Bytestreams zu ersetzen (und damit mühselige Speed-Runs zu automatisieren). Dadurch sind Wartezeiten auf das Device quasi verboten. Nach meiner Erfahrung mit dem sd2iec (und das wäre das einzige megabytefähige Massendevice das mir in den Sinn käme) könnte das schwierig werden, weil es immer in Blocks von 251 Bytes arbeitet und dann einen Moment zum Laden von der Karte braucht.
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────
  • Ja, wie im OP erwähnt wäre das eine Möglichkeit, wenn es denn erhältlich wäre. Ein Nachteil im Vergleich zum xlink wäre aber das zeitaufwändige Befüllen am Cevi.
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────
  • Im Prinzip ja, weswegen ich mal mit Henning bzgl. KeyMan in Kontakt war. Wichtig ist allerdings, dass die Daten synchron zur Verarbeitung im C64 zur Verfügung gestellt werden, was im KeyMan wegen seiner unabhängigen Clock nicht geht. Ein Drift führt dazu, dass irgendwann eine Joystickbewegung zu früh oder spät kommt und der Spieler z.B. nicht mehr um eine Ecke rumkommt. Geschweige denn von unvorhersehbaren Verzögerungen wie sie z.B. durch das Laden von Diskette entstehen.
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────
  • Naja, ohne jetzt großartig Werbung machen zu wollen:

    Mit dem TC64 könntest du über USB Daten vom PC direkt in den Speicher schreiben. Schau mal hier: retro-programming.de/retro-wel…n-64/tc64-programmierung/

    Nachteil: Der ExPort wäre dann belegt.
    Was hast du denn daran angeschlossen? Ggf. kann man das ja als crt verwenden?
    Vorteil: Original Kernel...
    ______________________________________________
    Wenn ich posten will, werde ich Briefträger...
  • Wenn die Abfrage wie üblich einmal pro Frame kommt, sollte das machbar sein: Statt aus dem Joystickport liest der C64 aus dem CIA-Schieberegister und invertiert anschließend eine Leitung als Quittung. Der PC reagiert darauf und hätte dann einen ganzen Frame Zeit, das nächste Byte ins Schieberegister zu pumpen.
    Yes, I'm the guy responsible for the ACME cross assembler


  • Hab eine 1541U2 :baeh: :D , aber leider nützt mir der Ansatz nichts: im Modulport steckt ein (nicht-emulierbares) Custom-Modul und DMA hilft mir nicht wirklich weiter, ich brauche halt alle 4 Frames mal ein Byte, das dann aber sofort.
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────
  • Mac Bacon schrieb:

    Wenn die Abfrage wie üblich einmal pro Frame kommt, sollte das machbar sein: Statt aus dem Joystickport liest der C64 aus dem CIA-Schieberegister und invertiert anschließend eine Leitung als Quittung. Der PC reagiert darauf und hätte dann einen ganzen Frame Zeit, das nächste Byte ins Schieberegister zu pumpen.
    Genau das kann man nach meinem Verständnis mit dem xlink machen. Darauf bezieht sich Deine Aussage, oder?
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────
  • Mac Bacon schrieb:

    Wenn die Abfrage wie üblich einmal pro Frame kommt, sollte das machbar sein: Statt aus dem Joystickport liest der C64 aus dem CIA-Schieberegister und invertiert anschließend eine Leitung als Quittung.
    Oder man liest vom Userport und nutzt das Hardware-Handshaking der CIA, welches bei diesem Lesevorgang automatisch einen 1us-Puls auf einer anderen Leitung erzeugt.

    Quellcode

    1. 10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    2. 20 forj=1to5:printchr$(rnd(1)*16+70);:next
    3. 30 printint(rnd(1)*328)-217

    sd2iec Homepage
  • Es gibt auch von @GMP und @LazyJones das Servant64 für den Userport.
    Damit lassen sich Tastatureingaben vom PC steuern.
    Ob eine Steuerung per Batch möglich ist müsste man bei den beiden mal erfragen.

    Infos: servant64.de/

    Video zu den Remote Funktionen:
    ______________________________________________
    Wenn ich posten will, werde ich Briefträger...
  • Oh ja, es gibt ja doch einiges an Userport-Hardware! Ich habe ein sehr freundliches Angebot für ein xlink bekommen, daher werde ich es erst mal damit probieren. Herzlichen Dank für all die Hilfe!

    EDIT: nanu, ich kann das Thema gar nicht als erledigt markieren! Das ging doch früher mal?
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────