Reset-Vektor $fffe

Es gibt 17 Antworten in diesem Thema, welches 4.084 mal aufgerufen wurde. Der letzte Beitrag (3. Februar 2008 um 00:10) ist von 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

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • 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

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • ... 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

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.


  • Hier kann man wohl jeden Blödsinn posten, liest ja doch keiner :(

    Weil keiner da ist der sich mit dem C16 auskennt? ;)

    Blog: Bitte melde dich an, um diesen Link zu sehen. - The Seventies Board: Bitte melde dich an, um diesen Link zu sehen. Bitte melde dich an, um diesen Link zu sehen.

    Ein Terminal und ein Z80 :D

  • Zitat


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

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

  • 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

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • mmmmh, hört sich komisch an....aber keine ahnung was da passiert, ich hab noch so gut wie nix mit plus4 usw gemacht.... allerdings schon eine detection, probier mal sowas:

  • mmmmh, hört sich komisch an....aber keine ahnung was da passiert, ich hab noch so gut wie nix mit plus4 usw gemacht.... allerdings schon eine detection, probier mal sowas:


    Deine Routine kenne ich. Genau so wollte ich es nicht machen ;)

    WTE

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • mmerhin funktioniert es so aber :=)


    Du bist Dir aber schon im Klaren darüber, dass diese Feststellung das Ende jeder Innovation bedeutet - oder?

    WTE

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Zitat


    Du bist Dir aber schon im Klaren darüber, dass diese Feststellung das Ende jeder Innovation bedeutet - oder?

    äh, nein, nicht wirklich :) ich sag ja auch garnix gegen deinen ansatz.... wenn würde ich den aber *zusätzlich* noch in meinen code da mit reinfummeln. das problem bei all diesen tests (also auch denen in meinem program da) ist ja grundsätzlich das sie nicht wirklich sicher sind, die vektoren im rom könnten ja zb auch durch ein anderes kernel verändert sein.

  • 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

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • mmmmh. wie wäre es denn wenn du eine kurze routine wie zb

    lda $ffff
    sta $ffff
    lda $fffe
    sta $fffe
    rts

    irgendwo ins ram POKEst, anspringst und DANN die werte liesst?

  • Keine schlechte Idee, aber nicht mehr heute ;)

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Isch hab' da mal 'n blöd Frach...
    Wie komme ich beim P4 an den richtigen Wert?

    Un noch'n blöd Frach...
    Wie unterscheide ich am einfachsten P4, C16 und C116 ?


    a) die PEEK-Bank auf ROM umstellen? Müßte im Handbuch stehen- bin mir
    aber grad unsicher ob das überhaupt geht, oder ob man eine
    lebenswichtige Routine im unteren Speicherbereich umpatchen muß... beim
    Monitor ist jedenfalls ein Flag dafür vorgesehen. Bevor man das macht
    sollte man natürlich ne Ahnung haben, daß man grad auf ner 264er-Kiste
    unterwegs ist. Wenn man aber schonmal so weit ist, ist der Peek
    eigentlich überflüssig.


    b) am Gehäuse :wink: C16 und C116 bekommst Du programmtechnisch gar nicht
    auseinander. Der Haupt-Unterschied in der Schaltung ist, daß beim C116
    drei Chips andere Nummern haben, weil die Anschlüsse gegenüber dem C16
    vertauscht sind :wink: Nen +4 kannst Du von einem auf 64k aufgerüsteten
    'Kleinen' an der ACIA oder dem voll belegten und rücklesbaren
    Cassettenport auseinanderhalten.

    KI-Verwendung in diesem Posting: Rechtschreibkontrolle des Browsers.
    Abweichungen aufgrund des technischen Fortschritts oder individueller Vorlieben vorbehalten.

  • 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

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

    Einmal editiert, zuletzt von WTE (4. Juni 2008 um 01:38)

  • Zitat


    Verbleibendes Risiko ist, dass man sich den aktuell ausgeführten Teil des Programmcodes zerschießt.

    eventuell vorher basic start testen? wenns auf nem PET zb läuft würde es eventuell knallen :) 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.

  • 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

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.