Kopierprogramm von Diskette (petSD+) auf Kassette

  • Juhu CBM-Kenner,


    gibt es ein Kopierprogramm, welches ein Programm von Diskette auf eine Kassette zu kopieren vermag?

    Es handelt sich um ein Assemblerprogramm, weshalb ich es nicht einfach laden und dann speichern kann.


    Dankeschön! :)


    Viele Grüsse,

    Matthias

  • Nimm ExMon, der kann Assembler Programme auf Tape speichern.


    Ich denke sogar der interne TIM kann das.

    Puuuh.

    Dazu müsste ich wissen, wo das Programm im Speicher anfängt, wo es aufhört... wie bekomm ich sowas raus? Meine Kenntnisse sind da quasi nicht vorhanden. :)

    Ich hab ein Programm, welches man nach dem Laden mit SYS1038 starten muss.

    Wenn ich nun vom TIM aus ein Programm auf Tape speichere, kann ich es doch auch nur wieder über den TIM laden, oder?

    Wie gesagt: Ich kenne mich da leider überhaupt nicht aus. Nicht EINEN Assembler-Befehl kenne ich, noch kann ich sowas auch nur im Ansatz bedienen. :(

    Deshalb dachte ich, es gäbe da ein Programm, welches das praktischerweise erledigt.

    So, wie die ganzen Disk-Kopierprogramme von damals.

  • gibt es ein Kopierprogramm, welches ein Programm von Diskette auf eine Kassette zu kopieren vermag?

    ...Du könntest versuchen, die Diskette mit dem PC auszulesen:

    Commodore Info Page - Artikel: Das Konstruieren eines X1541 Kabels [de]


    ...dann evtl. mit DirMaster das eigentliche Programm extrahieren:

    DirMaster: a d64 editor and more (d81, g64, t64, lister, search, ...) | Style


    ...und mit mtap wieder auf eine Diskette kopieren:

    Commodore Info Page - Artikel: Übertragung von Kassetten [de]

    Minstrel's Commodore page


    Wobei ich mir erst recht nicht sicher bin, ob das auch mit CBM's und nicht nur mit C64 funzt...

    ...evtl. hilft auch das hier dann weiter - es gibt wohl auch ein mjtap:

    Kassette bzw. tap Image voller PET/CBM .PRG Files erstellen - Forum64
    Hallo zusammen,Ich plane mir demnächst eine Kassette mit diversen PET Programmen, Spielen etc. zu befüllen, und auch ein .TAP Image davon, um diese bei Bedarf…
    www.forum64.de


    :)Franky

  • MJTAP? Das kenne ich gar nicht. Wo gibt's das?

    • 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."

  • Eigentlich ist das nicht schwierig.

    Die Startadresse steht in den ersten zwei Bytes der PRG Datei. Die Größe des Programms kann man aus der Anzahl der Blöcke auf der Diskette ersehen. Jeder Block enthält netto 254 Bytes. Daraus errechnet sich die Endadresse.

    Der .S Befehl im TIM arbeitet mit Start- und Endadresse.

    Das ist aber nur die 08/15 Methode ohne Unterlagen.

    Besser wäre, man sucht sich mit die Adressen der Vektoren raus, die durch LOAD gesetzt werden, dann stimmt das ganze ohne Rechnerei aufs Byte genau.

  • Eigentlich ist das nicht schwierig.

    Die Startadresse steht in den ersten zwei Bytes der PRG Datei. Die Größe des Programms kann man aus der Anzahl der Blöcke auf der Diskette ersehen. Jeder Block enthält netto 254 Bytes. Daraus errechnet sich die Endadresse.

    Der .S Befehl im TIM arbeitet mit Start- und Endadresse.

    Das ist aber nur die 08/15 Methode ohne Unterlagen.

    Besser wäre, man sucht sich mit die Adressen der Vektoren raus, die durch LOAD gesetzt werden, dann stimmt das ganze ohne Rechnerei aufs Byte genau.

    Ok, für dich klingt das alles einfach. Ich verstehe exakt nur Bahnhof. :)

    Wie öffne ich eine PRG-Datei so, dass ich die ersten zwei Bytes sehe? Im Windows-Editor geht es nicht. War da nicht was mit einem Hex-Editor? Das könnte ich mal testen.

    Was sind denn diese Adressen der Vektoren? Was sind Vektoren? Du siehst... bis auf rudimentäres Basic bring ich genau garnichts hin, auf diesen Maschinchen. :(


    Genial wäre, das Ganze auf dem Rechner selbst machen zu können. Alles andere ist doof, weil man dann ein TAP-File irgendwie mit einem Tapedeck auf Kassette bringen müsste. Dies hatte ich in der Vergangenheit mehrfach getestet. Hat genau kein Mal funktioniert. :D


    *edit*

    Startadresse ist also 0401:


    Das Programm hat 14 Blocks, also 14 * 254 Bytes = 3556 Bytes. Und wie finde ich so die Endadresse? :/


    Evtl. ist es 1192?


    Wie müsste der Speicherbefehl für die Kassette im TIM dann aussehen- so?

    pasted-from-clipboard.png


    Und selbst, wenn es dann funktioniert- wie lade ich das Programm dann?

    Über LOAD"NAME" oder nur im TIM?


    Ich frag so doof, weil ich das grad alles nicht live testen kann. ;)


    Viele Grüsse,
    Matthias

  • Und selbst, wenn es dann funktioniert- wie lade ich das Programm dann?

    Über LOAD"NAME" oder nur im TIM?

    Du kannst alles was du im TIM speicherst ganz normal mit LOAD wieder rein laden.

    Und umgekehrt auch.



    Der Unterschied liegt nur im SAVE.

    Beim TIM kann man einen Adress Bereich angeben, beim SAVE nicht.

  • Also im Basic einfach LOAD "TEST" eingeben, ohne vorher im TIM sein zu müssen?

    Das ist ja GENIAL!

    Dann teste ich es mal so, danke!

  • Da die Adresse ja $0401 ist (BASIC Start beim CBM), müsste auch ein einfaches

    • LOAD "PROG",8
    • SAVE "PROG",1

    genügen, um das File "PROG" von Diskette auf Kassette zu kopieren.



    Das geht natürlich nicht, wenn die Ladeadresse nicht gleich $0401 ist.

  • Da die Adresse ja $0401 ist (BASIC Start beim CBM), müsste auch ein einfaches

    • LOAD "PROG",8
    • SAVE "PROG",1

    genügen, um das File "PROG" von Diskette auf Kassette zu kopieren.



    Das geht natürlich nicht, wenn die Ladeadresse nicht gleich $0401 ist.

    Das Listing besteht aber nur aus einer Zeile mit dem SYS-Befehl:



    Beim C64 ging so was nie, daran erinnere ich mich noch (also dieses "direkte" Laden und Speichern).

    Gespeichert wurde dann nur der "sichtbare" Teil des Programmes, also "10 SYS01038".

    Wollte man das dann ausführen, ging natürlich nix mehr.


    Muss ich wohl mal testen, wenn ich daheim bin. :)

  • Das Listing besteht aber nur aus einer Zeile mit dem SYS-Befehl:

    Das macht nichts.


    Auch wenn da nur eine BASIC Zeile ist.

    Das BASIC schützt das GESAMTE Programm das geladen wurde.

    Und beim SAVE wird auch das gesamte Programm wieder geschrieben.


    Du kannst es ja mal laden von Disk und wieder speichern auf Disk.

    Dann siehst du, dass zwei idente Dateien da sind.


    Man darf nur kein UNNEW machen.

    Denn dann setzt dies den Programm Ende Pointer auf das Ende der letzten BASIC Zeile,

  • Ok, teste ich heute Abend mal.

    Fraglich bloß, weshalb es beim 64er damals nicht ging?

  • Verrückt! Es geht einwandfrei:



    Hab’s auf einem 8000er mit petSD+ und angeschlossener Datasette geladen und gespeichert. Dann die Kassette in den 2001er -> geladen -> geht. :)


    Danke euch!