Hallo Besucher, der Thread wurde 4,6k mal aufgerufen und enthält 26 Antworten

letzter Beitrag von Mac Bacon am

d64 so umwandeln, dass ein c128d sie sofort startet

  • GO64 kann man wohl nicht ohne den BlueScreen machen, habe ich mir sagen lassen.

    Klar geht das. Dazu braucht es lediglich die Modulkennung bei $8000, um die KERNAL-Initialisierung abzufangen. Die KERNAL-Routinen, die unter Anderem die Zero-Page initialisieren, sollte man dann natürlich in einer eigenen Routine aufrufen. Sonst wird das nichts mit KERNAL-Load.
    Mein Bootblock, den ich bei meinen Crazy Light Tools nutze, funktioniert ganz ähnlich, also mit GO64 und Modulkennung. Allerdings habe ich nicht versucht, den blauen Startbildschirm zu umgehen oder es sonst wie ästhetisch ansprechend zu machen. Größtmögliche Kompatibilität war das Ziel, weswegen das Laden auch im Direktmodus erfolgt. Da ist sicher Luft nach oben, und evtl. wäre er sogar eine Anregung zur Lösung.

  • Zitat
    • Es gibt leider keinen. Ich hab das vor Ewigkeiten mal im Action-Replay-Monitor programmiert, als wir noch einen C128D hatten. Bei nur einem Block hält sich der Aufwand aber auch in Grenzen, und es sollte noch einigermaßen überschaubar sein.

    also du hast irgendwo a90a, also die 10 in den Akku. Danach direkt schreibst du den irgendwohin im Speicher. Und danach direkt in 8d20d0, also $d020. Wenn ich dazwischen eine andere Farbe "einfüge", also "länger mache", dann klappt garnichts mehr. Könnte also eine nicht relative Sprungverknüpfung sein, die da explodiert.


    Wenn ich das richtig kapiere arbeitet das Basicprg so, daß es den einen Block direkt rein schreibt, der als ASM anhängt. Aber wo exakt der Block als Daten anfängt und aufhört kapiere ich noch nicht. 'Könnte man da einfach ein ASM-Progrämmchen schreiben und per Asskick assemblieren. Dann nur mit Okteta reinkopieren, fertig?



    Zitat

    Dazu braucht es lediglich die Modulkennung bei $8000, um die KERNAL-Initialisierung abzufangen. Die KERNAL-Routinen, die unter Anderem die Zero-Page initialisieren, sollte man dann natürlich in einer eigenen Routine aufrufen. Sonst wird das nichts mit KERNAL-Load.


    Ok, das ist übervernünftigmenschlich. Wäre super, wenn Du das hinkriegst. :) Also Mac Bacon zu überrunden wäre wirklich eine Herausforderung. Wenn Du das schaffst, dann stehst Du demnächst auch in der Creditliste.


    Edit: Ach, bist ja schon drauf.

  • also du hast irgendwo a90a, also die 10 in den Akku. Danach direkt schreibst du den irgendwohin im Speicher. Und danach direkt in 8d20d0, also $d020. Wenn ich dazwischen eine andere Farbe "einfüge", also "länger mache", dann klappt garnichts mehr. Könnte also eine nicht relative Sprungverknüpfung sein, die da explodiert.

    Die 10 wird außerdem nach $c6 geschrieben, was die Länge des Tastaturpuffers ist. Der Tastaturpuffer wird zweimal befüllt. Erst, um einen SYS-Befehl auszuführen, und anschließend nochmal, um die Ladeanweisung im Direktmodus auszuführen, die vorher auf dem Bildschirm ausgegeben wird. Den sta $d020 hab ich da wahrscheinlich mal eingefügt, um zu sehen, daß das Programm den Code auch tatsächlich ausführt, und später wohl einfach stehen gelassen.

    Wenn ich das richtig kapiere arbeitet das Basicprg so, daß es den einen Block direkt rein schreibt, der als ASM anhängt.

    Das BASIC-Programm ist nicht unbedingt geeignet, um den Bootblock zu verstehen. Nimm den Action Replay-Monitor und lade den Bootblock mit @br0100.


    Ich hab das jetzt mal gemacht, daß es nach der KERNAL- und BASIC-Initialisierung sofort alles schwarz macht. Passende Bootmeldung ist auch dabei.
    trapthem_boot.d64

  • GO64 kann man wohl nicht ohne den BlueScreen machen, habe ich mir sagen lassen.

    Unsinn. Die Modus-Umschaltung wirkt sich nur auf MMU und (via PLA) die ROMs aus, die CPU läuft einfach weiter. Wenn man nicht manuell den Resetvektor anspringt, wird auch kein C64-typischer Reset ausgeführt.

    Mein Bootblock, den ich bei meinen Crazy Light Tools nutze, funktioniert ganz ähnlich, also mit GO64 und Modulkennung. Allerdings habe ich nicht versucht, den blauen Startbildschirm zu umgehen oder es sonst wie ästhetisch ansprechend zu machen. Größtmögliche Kompatibilität war das Ziel, weswegen das Laden auch im Direktmodus erfolgt.

    Ja, genau so mache ich das auch, aus den gleichen Gründen.


    VM: Angehängt sind die Sources zu den beiden Blöcken, tob Dich aus.