geschrieben am 05.01.2013 11:47:36
PHB und PHK pushen/pullen den Wert des Data Bank Registers vom Stack. Das Data Bank Register (DBR) wird immer dann gebraucht, wenn man mit 16-Bit-Adressierung aus ROM-Speicher liest: LDA $89AB würde aus der ROM-Adresse $0089AB laden, wenn das DBR $00 ist, und aus $1289AB, wenn es $12 ist.
PHK pusht das Program Bank Register, das ist die Bank, in der der Code gerade läuft. PLK kann es deswegen nicht geben, denn den Ort, an dem der Code läuft, kann man nicht manipulieren.
Besonders häufig wird die Kombination aus PHB, PHK und PLB in Sprites eingesetzt, wo man eigentlich immer am Anfang so etwas findet wie
PHB : PHK : PLB : JSR SpriteCode : PLB : RTL. PHK : PLB überträgt den Wert des Program Bank Register in das Data Bank Register - heißt also, der Code soll die Daten (Tilemaps zum Beispiel) aus derselben Bank lesen, in der er gerade läuft. Die PHB und PLB ganz am Anfang und Ende diesen dazu, den ursprünglichen Wert des DBR beizubehalten und wiederherzustellen.
Ohne diese Befehle kann es passieren, dass man aus der falschen Stelle liest. Wenn man zum Beispiel in Bank $23
LDA Tilemap,x schreibt und sich Tilemap an der Stelle $CDEF befindet, aber das Data Bank Register $00 ist, liest der Code LDA Tilemap,x nicht aus $23CDEF, sondern aus $00CDEF, und das will man meistens nicht.
Abiturklausuren (schamlos geklaut von spinatkuchen >_>):
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)