Der Bootvorgang beim C64

Es gibt 4 Antworten in diesem Thema, welches 1.241 mal aufgerufen wurde. Der letzte Beitrag (15. April 2014 um 21:23) ist von sauhund.

  • Ich habe zu testzwecken mal bei Vice einen Watch exec auf den Resetvector gesetzt und einen Hardreset gemacht.
    $00 ist auf 00, $01 auf $1f direkt nach dem Einschalten- macht ja auch Sinn, I/O, Kernal und Basic werden ja beim Hochfahren benötigt. Später, nach dem Boot steht $01 dann ja auf $37, wenn ich nicht irre.
    Nun meine Frage: WARUM ist da beim Einschalten schon ein definierter Inhalt in Speicherzelle 1? Gibt es da eine Schaltung für oder wird das intern vom 6502 geregelt?

    Es gibt keinen wirklich praktischen Anlass für meine Frage, die Neugier allein treibt mich. Habe beim Suchen bislang nichts dazu gefunden, gibt es irgendwo eine ausführliche Beschreibung des Bootvorgangs bis zum Eintritt in den Direktmodus?

    GREETINGS PROFESSOR FALKEN
    A STRANGE GAME.
    THE ONLY WINNING MOVE IS NOT TO PLAY.
    HOW ABOUT A NICE GAME OF CHESS?

  • *Klugscheißermodus on*

    Das weiß ich auch nicht, aber ein 6502 dürfte nicht weit kommen im 64er :anonym

    *Klugscheißermodus off*

    :D

  • Das dürfte mehr mit der PLA als der CPU zu tun haben, oder?

    Außerdem ist $01 nicht unbedingt $01 (--> RAM unter $01) ;)

  • Der Reset schaltet den Port auf Input. Jetzt schau in den Schaltplan, was an den Pins für Werte anliegen.

    Die drei Leitungen zur PLA haben Pullups, damit sie definierte Pegel haben und der C64 mit korrekter Speicheraufteilung booten kann.

  • Nun meine Frage: WARUM ist da beim Einschalten schon ein definierter Inhalt in Speicherzelle 1?


    das ist schaltungstechnisch so vorgegeben - und bei i/o ports auch allgemein üblich.

    Zitat

    Die drei Leitungen zur PLA haben Pullups, damit sie definierte Pegel haben und der C64 mit korrekter Speicheraufteilung booten kann.


    wobei man das gleiche ergebnis auch ohne die pullups (und ohne aussenbeschaltung) bekommen sollte.... ob die ganze schaltung dann noch funktionieren würde ist ne andre frage :)