Stunde 18
Disassembled: 2.296 / 1.048.576 Bytes (0,219%)
Gehört: Tomas Dvorak - Machinarium OST (+ Bonus EP)
So. Auf der Suche nach $90.
~~~
Gut, wie ich es mir dachte. $90 wird ein fester Wert in dem ganzen Definitionsbla vor der JSL-Anhäufung zugewiesen. Und: Es ist nicht #$00, sondern #$10. Jetzt werde ich schauen, ob der Inhalt in all diesen jenen Subroutinen verfremdet wird, und wenn nicht, weiß ich, wo ich schauen muss.
~~~
Öhm. Gut. Ich hätte nicht gedacht, dass ich in 10 Minuten dieses Durchsuchen abgeschlossen habe.
Also, ich habe nichts gesehen, Folglich gehe ich mal von $10 aus.
~~~
HA! hahaHAAH! Ich hatte REEECHT!
Ich bin nicht diesem flexiblen Jump-Befehl gefolgt, sondern bin "dem Hauptarm des Programmflusses" gefolgt. Es folgen noch drei JSLs, danach wird always-gebrancht. Und wohin?! Naaa!? Naaaaaa!? Röchtöch! Zu dem SEP weiter oben, was ich vor tausend Jahren (öh... zehn Arbeitsstunden?) als potentiellen Übergang zwischen Init und Intro markiert habe...
... und intelligenterweise auch schon vorab die Hexadresse in der ROM als Kommentar hinterlegt habe. ^.^ Manchmal liebe ich meinen Job.
Und darum, hier meine nächste Prognose aus meiner Glaskugel (die leider Milchglas ist, aber finde mal ein Deodorant mit einer klaren Kugel...!):
Dieser flexible Jumpbefehl, der mich gestern motivert hat, aufzuhören, wird vermulich auf einen Haufen von Jump-Befehlen führen. So kann man vielfach Branchen und muss nur eine kleine Variable mit neuem Wert versehen.
~~~
Die letzten zwanzig Minute habe ich das WDC-Handbuch zum 65816 bzgl. des Jump-Befehls befragt (um genau zu sein: Befehl $FC, Jump to Subroutine absolute indexed indirect).
Ich wusste nicht, ob auf die absolute Adressangabe X addiert wird und dort dann weitergemacht wird, oder ob man *den Inhalt der absoluten Adresse* nimmt und dadrauf X haut und das als Weitermach-Adresse erwählt. Ersteres ist der Fall. Und das ist nicht schön, weil dort viel Code kommt, der mir nicht gefällt (Stack-relativer Kram und so; das sind derart traumatische Sachen für mich, dass ich in Verdrängungsmanöver verfalle... "Nein, *schniff*, das
kann nicht sein. Das
DARF nicht sein, buhu...").
Aber ich bin schonmal einen Schritt weiter. "One step closer..."
"... to the edge..."

"... and I'm abouta break."

Ach ja, das waren noch Zeiten... an sowas denkt man wehmütig zurück, wenn "Burn it down" läuft. Aber, egal, ich schweife ab... RTI.

~~~
Ah, aaah... Pure Madness.
Es scheint doch so zu sein, was ich oben sagte. Mehr oder weniger. Und so, wie ich mir das vorstelle, scheint es dann auch im Handbuch dargestellt zu sein. Aber bevor ich an dieser Baustelle weitermache, möchte ich da die Antwort von einem Fachkundigen haben (ikari? d4s? ramsis? LostTemplar? byuu?

):
Absolute Indexed Indirect funktioniert, meinem Verständnis nach, so:
Ich drück dir was in X rein und gebe dir eine Adresse.
Du nimmst Adresse und addierst drauf.
Das nimmst du als neue Adresse.
Dort gehst du hin und nimmst, was du da findest, als neue Adresse, wo du weiterzumachen hast.
Das sieht für mich so aus. Ich bitte da aber um ein Statement... andernfalls werde ich mich jetzt erstmal um die restlichen "fixen" JSLs kümmern.
Stunde rum, Resümee:
Dieses Mal kann ich mir den Upload sparen, ich habe nur eine Subroutine ausgelagert und ein bisschen kommentiert. Dann werde ich mich gleich erstmal um andere Dinge kümmern. In dieser Stunde habe ich nämlich nur den Wert der Variable $90 herausgesucht und danach mich in der Handbuch-Recherche verloren.