Hello, Guest the thread was viewed3.2k times and contains 8 replies

last post from Pentagon at the

Transfer C64 / 1541 - Kassette PET-2001 ???

  • Hallo,


    ich habe ein D64 vom PET-2001 auf eine 1541 Diskette geschrieben. Jetzt wollte ich die Dateien am C-64 mit der 1541 einladen und dann auf eine Kassette speichern.
    Das einladen am 64er klappt prima, aber wenn ich dann mit "SAVE" das Programm auf Kassette abspeichere verändert er irgendwie die Startadresse oder den Header und der PET-2001 kann es nicht einlesen.
    Also habe ich recherchiert und laut Google und PET FAQ soll man das Programm UNICOPY vom Jim Butterfield zum kopieren nehmen. Das Programm funktioniert aber nicht und bricht während dem Kopieren von 1541 nach Datasette einfach mit Fehlermeldung ab.


    Wie kann ich die Dateien am C-64 einladen und PET-2001 Konform auf Datasette abspeichern?


    HELP!


    gruss
    Pentagon

  • Siehe die Beschreibung von $2B-$2C TXTTAB in Mapping the Commodore 64 . Da steht wie man Programme zwischen C64 und PET teilen kann. Ich kann es hier repetieren aber leider funktioniert copy-and-paste nicht sehr gut. Einige Zeichen werden leider als Smilies interpretiert:



    Ich habe auch die folgende Auskunft an einem anderen Platz gefunden so vielleicht muss man die Beschreibung oben ein bisschen modifizieren:


  • Mit einem Basic 2.0 CBM oder 4.0 koennte es auch anders gehen :


    1: Programm laden
    2: Pointer auslesen
    3: In den internen Speichermonitor springen
    4: Speichern nach Geraet #1


    s"programm",01,start,ende



    Vieleicht reicht auch nur ein :


    1: Save"programm",1{,1}


    :)


    Michael

  • Das Problem sind die unterschiedlichen Startadressen des BASIC.
    Beim PET beginnen Basic-Pogramme bei $0401, beim C64 bei $0801.


    Wenn die Disk mit PET Programmen auf einem PET erstellt wurde, dann sollten die Programme darauf auch schon mit $0401 beginnen. Du kannst das leicht testen indem du einfach mal so ein Programm mit der 1541 in den C64 liest, und zwar mit ,8,1 ! (nicht nur ,8 ) Dann sollte Müll am Bildschrim erscheinen. Ist z.b. auch so bei einigen Programmen von der Test/Demo Disk für die 1541 ;)


    Wenn dem also so ist, dann kannst du die Programme ganz einfach mit einem Kopierprogramm wie z.b. Copy 190 von Disk auf Tape schreiben und sollte dann funktionieren.



    Wenn die PET Programme allerdings bereits auf der Disk bei $0801 starten, dann mußt du sie erst nach $0401 verscheiben. Leider ist das etwas mühsam weil beim 64er dort ja der Bildschirmspeicher liegt...
    Geht dann wahrscheinlich mit cbmhardware's Methode mit BASIC 4.0 am einfachsten.


    Das Problem ist auch daß die Datasette immer nach der gespeicherten Startadresse liest ( entspricht also einem ,8,1 Load von Disk )


  • Das Problem liegt daran dass beim Abspeichern die Zeiger für den Programmstart mit abgespeichert werden.
    Es tritt folgendes Dilemma auf:
    PET : BASIC von $0400 - $7FFF, Video-RAM von $8000-$83FF
    C64 : BASIC von $0800 - $9FFF, Video-RAM von $0400-$07FF


    Als erstes muss man den Bildschirmspeicher nach $8000 legen.
    Dies geschieht mit nachfolgendem 4-Zeiler:


    VIC-Adressbereich in den Bereich $8000-$BFFF legen:


    10 POKE 56576, PEEK(56576) AND 252 OR 1


    Video-RAM nach $8000 legen (=$0000 innerhalb des VIC-Bereichs):


    20 POKE 53272,PEEK(53272) AND 15 OR 0


    Jetzt noch dem BASIC-Interpreter dies mitteilen:


    30 POKE648,32768/256


    40 PRINT CHR$(147):REM SCHIRM LOESCHEN


    Das war schonmal die halbe Miete.


    Den verfügbaren BASIC-Speicher auf $0400-$7FFF einstellen:


    50 POKE641,0: POKE642,4


    Das BASIC-Ende auf $7FFF legen:


    60 POKE643,0: POKE644,128


    BASIC-Kaltstart $E394 ausführen damit die Zeiger für BASIC stimmen:


    70 SYS58260


    -> 31743 BASIC BYTES FREE


    Fertig.


    Der Konvertierung sollte nun nichts mehr im Wege stehen.

  • Quote

    Original von Overdoc
    Das Problem sind die unterschiedlichen Startadressen des BASIC.
    Beim PET beginnen Basic-Pogramme bei $0401, beim C64 bei $0801.
    [...]
    Wenn die PET Programme allerdings bereits auf der Disk bei $0801 starten, dann mußt du sie erst nach $0401 verscheiben. Leider ist das etwas mühsam weil beim 64er dort ja der Bildschirmspeicher liegt...


    Dieses "Verschieben" kann man schon direkt auf der Diskette erledigen, indem man den Startpointer der Programmdatei manipuliert. Ich habe dafür vor zwei Jahrzehnten einmal ein Programm geschrieben. Wen es interessiert: http://www.c128.net/articles/load_cbm.htm (läuft auf allen CBMs, C64 etc.)


    Gruß WTE

  • Quote

    Original von Wan-Tu-Eit


    Dieses "Verschieben" kann man schon direkt auf der Diskette erledigen, indem man den Startpointer der Programmdatei manipuliert. Ich habe dafür vor zwei Jahrzehnten einmal ein Programm geschrieben. Wen es interessiert: http://www.c128.net/articles/load_cbm.htm (läuft auf allen CBMs, C64 etc.)


    Gruß WTE


    Nein, daran liegt's nicht.


    Die Programme dürften auf der Disk schon "richtig" vorliegen, d.h. mit Pointer auf $0401.


    Quote

    Original von PentagonIch habe ein D64 vom PET-2001 auf eine 1541 Diskette geschrieben. Jetzt wollte ich die Dateien am C-64 mit der 1541 einladen und dann auf eine Kassette speichern.


    Commodore modifizierte ab VC20 das Betriebssystem und baute einen relocativen Lader.
    Diese Modifikation lädt Programme grundsätzlich an den tatsächichen BASIC-Start, d.h beim VC20 je nach Speicherbestückung nach $1000, $0400, $1200 +1.


    Umgehen kann man dies nur mit dem absoluten LOAD-Befehl, nämlich LOAD"Name",Device,1 .
    Das Dilemma beim C64 liegt, wie bereits von mir ausgeführt, daran dass der C64 die Programme nur nach $0801 laden kann (Beginn BASIC-Code).


    Wenn Pentagon wie bereits beschrieben BASIC-Start und Bildschirm verschiebt muss es auch mit der Datasette funktionieren weil der C64 die Pointer richtig setzt.

  • Hallo,


    ich kann es zur Zeit leider nicht ausprobieren, muss erst den Monitor reparieren. Bin etwas geknickt, das kann noch dauern. Bei dem schönen Wetter möchte ich auch nicht umbedingt drinnen sitzen und löten. Aber ich sobald das Ding wieder funktioniert, gehts wieder ans Thema.


    Wäre schon ganz gut, wenn ich die Dateien mit dem 64er übertragen kann.


    Gruss
    Pentagon