Page
Der RAM-Speicher des C64 ist in sogenanntes 256 Byte große Pages (Seiten) unterteilt vorstellbar, was vor allem die Eigenschaften des Speicherzugriffs und Speicherorganisation bei der MOS 6510-CPU widerspiegelt. Diverse Adressierungen der CPU orientieren sich anhand der Page-Struktur oder werden von dieser in der Laufzeit beeinflusst.
Der 16-Bit Adressraum der CPU über 64 KByte RAM ist dabei in 256 Pages (adressiert vom High-Byte) zu je 256 Bytes innerhalb einer Page (adressiert vom Low-Byte) organisiert.
- Page 0: $0000 - $00FF ... Zeropage
- Page 1: $0100 - $01FF ... Prozessor Stapel
- Page 2: $0200 - $02FF
- ...
- Page 255: $FF00 - $FFFF
Siehe Speicherbelegungsplan für weitere Details.
In der Hexadezimal-Darstellung einer 16-Bit Adresse ist dabei das High-Byte die Page-Nummer und das Low-Byte die Position innerhalb der Page. Der Page-Bereich lässt sich somit mit 8 Bit adressieren, der Register-Breite der CPU.
Page-Grenze[Bearbeiten | Quelltext bearbeiten]
Das Überschreiten einer Page-Grenze hat bei diversen, meist index-basierten Adressierungsmodi der CPU je nach Art der Instruktion einen negativen Einfluss auf die Laufzeit und wird mit zusätzlichen Taktzyklen "bestraft":
- Absolute X-indizierte Adressierung
- Absolute Y-indizierte Adressierung
- Indirekte Y-nachindizierte Zeropage-Adressierung
- Relative Adressierung
Bei anderen Adressierungsmodi kommt es zu einem Wrap-around, d.h. der Zugriff bleibt auf die Page begrenzt (die Adresskalkulation wird ohne Übertrag für das High-Byte vorgenommen) und damit werden über das Page-Ende hinausgehende Adressen schlicht wieder bezogen auf den Page-Anfang abgebildet: