Beiträge von LogicDeLuxe im Thema „d64 so umwandeln, dass ein c128d sie sofort startet“

    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.
    Bitte melde dich an, um diesen Anhang zu sehen.

    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.

    Auf meiner Crazy Light Tools Diskette befindet sich ein Installer für einen solchen Bootblock, den ich mal selbst geschrieben hatte. Der Bootblock funktioniert einwandfrei und bootet direkt in den C64-Modus, um dort die erste Datei zu laden. Bei einer 1581 wird der Bootblock zudem per Datei geschützt, sodaß er ein Validate und anschießendens Befüllen sicher überlebt. Allerdings war ich wohl zu bequem, den Installer wirklich bugfrei zu machen. Daher Nutzung auf eigene Gefahr: Bitte melde dich an, um diesen Link zu sehen.
    Wer dafür einen sauberen Installer schreiben möchte, hat hiermit meine Erlaubnis.

    Falls die Diskette bereits voll ist aber die Directory-Spur noch Platz hat, kann man Track 1, Sector 0 frei machen, indem man den Inhalt auf Track 18 verschiebt und die Links entsprechend verbiegt. Das war bei meinem Installer allerdings nicht vorgesehen.