Beiträge von WTE im Thema „Reset-Vektor $fffe“

    oder du baust in das program noch eine dummy rem zeile ein die dann wenn der basicstart bei $0401 ist so liegt das der poke nur irgendwas irrelevantes in der rem zeile ändert.


    Da die Veränderung wieder rückgängig gemacht wird, kann nur was passieren, wenn die fragliche Stelle genau in dem Teil des Programms liegt, dass gerade diese Manipulation durchführt. Eigentlich nicht sehr wahrscheinlich, aber bei meinem Glück wird es gernau so sein ;) Das muss ich dann eben testen und mit etwas REM oder Umstellung von Programmzeilen lösen. Das Programm muss sowieso von einem CBM abgespeichert werden, da die alten Kisten keinen Verschiebelader kennen.

    Gruß WTE

    Es sieht so aus, als müsste ich mir meine Antwort selber geben.
    Nach langem Herumgestöber im ROM habe ich endlich gefiunden, was Abhilfe schafft.
    [Dank an die Autoren der "The Ultimate Plus/4 map": S\_/S of [FIRE] crew]

    Es gibt im RAM (ab $0494) eine Routine, die bei jedem PEEK durchlaufen wird. Hier wird als Quell-Bank RAM selektiert. Wenn man diese Routine "zerpoket" kann man das unterbinden und es wird aus dem ROM "gepeekt". Das ganze kann dann so aussehen, wie auf dem folgenden Screenshot. Wenn man zuvor noch testet, ob der Wert in der Speicherstelle $499 (=1177) = 63 ist, kann man das auf jedem Rechner (fast) ohne Gefahr ausführen. [Verbleibendes Risiko ist, dass man sich den aktuell ausgeführten Teil des Programmcodes zerschießt.]

    Bitte melde dich an, um diesen Anhang zu sehen.

    Gruß WTE

    die vektoren im rom könnten ja zb auch durch ein anderes kernel verändert sein.

    Genau! Und deshalb soll in dem Fall ja auch der Text "Unbekannter Computer oder unbekanntes Kernal" ausgespuckt werden. In beiden Fällen kann das Folgeprogramm nicht (mit Sicherheit) korrekt arbeiten. Ich schlage also alle Fliegen mit einer Klappe. Bzw. eben nicht, da mir der PluVi dazwischenfunkt. :grr:

    WTE

    einfach auslesen? der steht doch im rom, also was sollte da das problem sein? *kratz*


    Das hatte ich ja auch gedacht und einfach mal gePEEKt. Aber - und da ist der (sau)Hund begraben ;) - man erhält beim Plus4/C16/C116 Werte aus dem RAM nicht aus dem ROM. Ich will die Daten aber mittels PEEK aus Basic auslesen. Mit ML wäre es kein Problem. Beim SYS wird die Speicherkonfiguration auf ROM umgestellt (sonst wären Kernalaufrufe ja aus BASIC nicht möglich).

    Ich wollte eine "Systemerkennung" (C64/P4/C128/PET/CBM/CBMII/VIC20) auf dem Wert für den IRQ-Verktor aufbauen und deshalb nur einfaches BASIC 2.0 verwenden... geht wohl nicht :(

    WTE

    ... Reset-Vektor ($fffe/ffff) die Werte $b3 $fc ...


    Hier kann man wohl jeden Blödsinn posten, liest ja doch keiner :(
    Bei fffe/ffff ist natürlich der IRQ nicht der Reset. Trotzdem ist es mir schleierhaft, warum da "Mist" drinnstehen kann (selbst bei einem C16, der an dieser Stelle gar kein RAM hat - oder doch? und wenn ja wieso?)

    Die Frage bleibt, kann man den IRQ/BRK-Vektor per PEEK auslesen? Und wenn ja, wie?

    WTE

    Die Frage war wohl doch nicht trivial?
    Hat dazu keiner eine Antwort?

    Wenn ich in VICE das RAM von 64k auf 32k oder 16k begrenze, erhalte ich übrigens mit PEEK die Werte 255 und 5.
    Das ($05ff) entspricht aber auch keinem vernünftigem RESET-Vektor.

    Gruß WTE

    Isch hab' da mal 'n blöd Frach...

    Im Monitor (Vice) sehe ich beim P4 beim Reset-Vektor ($fffe/ffff) die Werte $b3 $fc
    Aus BASIC heraus erhalte ich bei PEEK aber jedesmal den Wert 255 ($ff).
    Das hat sicher was mit ROM und RAM zu tun. Beim C64 erhalte ich immer den richtigen ROM-Wert.
    Wie komme ich beim P4 an den richtigen Wert?

    Un noch'n blöd Frach...

    Wie unterscheide ich am einfachsten P4, C16 und C116 ?

    Gruß WTE