Page

Aus C64-Wiki
Zur Navigation springenZur Suche springen

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":

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: