Speicherbelegungsplan
Aus C64-Wiki
Zur Navigation springenZur Suche springenDie im folgenden Artikel Speicherbelegungsplan (englisch: memory map) aufgeführte Tabelle zeigt eine kurze Übersicht der Speicherbereiche und -adressen des C64 aus Sicht seiner CPU.
Hinweis: Diese Auflistung bezieht sich auf den Zustand nach dem Einschalten in der Standard-Ausgangskonfiguration ($37/55 in Speicherstelle $01, kein Steckmodul).
Die Details und Kurzbeschreibungen der einzelnen Speicherbereiche und -adressen sind in den entsprechenden Artikeln zu finden.
Die PLA regelt die Speicherverwaltung des C64, steuert also, wann welche Speicherbereiche/Register wo eingeblendet werden.
Überblick[Bearbeiten | Quelltext bearbeiten]
Die Speicheraufteilung des C64 im Normalzustand - für genauere Informationen siehe PLA. $FFFF = 65535 ┌───────────────┬───────────────┐ │---------------│|||||||||||||||│ ||| = wird z.B. bei PEEK gelesen │---------------│|||||||||||||||│ --- = wird z.B. bei POKE geschrieben │---------------│|||||||||||||||│ +++ = lesend + schreibend │---------------│||| KERNAL ||||│ sonst = von BASIC aus nicht erreichbar │---------------│|||||||||||||||│ │---------------│|||||||||||||||│ │---------------│|||||||||||||||│ $E000 = 57344 ├───────────────┼───────────────┼───────────────┐ │ │ │+++++++++++++++│ │ │ CHAR │+++++ I/O +++++│ │ │ │+++++++++++++++│ $D000 = 53248 ├───────────────┼───────────────┴───────────────┘ │+++++++++++++++│ │+++++++++++++++│ │+++++++++++++++│ $C000 = 49152 ├───────────────┼───────────────┐ │---------------│|||||||||||||||│ │---------------│|||||||||||||||│ │---------------│||| BASIC- ||||│ │---------------│||| ROM ||||│ │---------------│|||||||||||||||│ │---------------│|||||||||||||||│ │---------------│|||||||||||||||│ $A000 = 40960 ├───────────────┼───────────────┘ │+++++++++++++++│ │+++ BASIC- ++++│ │+++ RAM ++++│ \ . . - Details in Speicherbelegung (BASIC) . . / . . │+++ BASIC- ++++│ │+++ RAM ++++│ $0800 = 2048 │+++++++++++++++│-┐ $0400 = 1024 │+++++++++++++++│-┘Bildschirmspeicher $0000 └───────────────┘-┘Zeropage und Erweiterte Zeropage
Hex-Adresse | Dez-Adresse | Beschreibung |
$0000-$00FF | 00000-00255 | Zeropage - Speicherstelle $01 (der Prozessorport) steuert die Speicheraufteilung |
$0100-$01FF | 00256-00511 | Prozessorstapelspeicherbereich 1. Teil der Erweiterten Zeropage |
$0200-$03FF | 00512-01023 | Systemvariablen von BASIC-Interpreter und KERNAL 2. Teil der Erweiterten Zeropage |
$0400-$07FF | 01024-02047 | Bildschirmspeicher (Details) |
$0800-$9FFF | 02048-40959 | BASIC-RAM: BASIC-Benutzerspeicher (in diesem Bereich werden die BASIC-Programme nach dem Laden abgearbeitet, hier befinden sich auch alle Daten von Variablen und Feldvariablen). Dieser Speicher ist 38911 Bytes lang, wenn noch kein Programm geladen wurde. |
$8000-$9FFF | 32768-40959 | Bei Steckmodul-Nutzung wird hier typischerweise das Steckmodul-ROM (Details) eingeblendet |
$A000-$BFFF | 40960-49151 | 8 KByte BASIC-ROM - u.a. hier ist der BASIC-Interpreter abgelegt |
$C000-$CFFF | 49152-53247 | 4 KByte freies RAM (z.B. zum Ablegen von Assembler- bzw. Maschinenspracheprogrammen) |
$D000-$DFFF | 53248-57343 | Zeichensatz-ROM (falls über $01 eingeblendet, normalerweise aus). $D000-$D7FF: Großschrift / Grafikzeichen (Zeichensatz 1) $D800-$DFFF: Groß-/Kleinschrift (Zeichensatz 2) |
$D000-$D02E | 53248-53294 | Register des VIC (Video Interface Chip) - Details |
$D400-$D7FF | 54272-55295 | Register des SID (Sound Interface Device) - Details |
$D800-$DBFF | 55296-56319 | 1 KByte Farbspeicher (Farbwerte 0-15, wobei die oberen Nibbles undefiniert sind und (pseudo)zufällige Werte annehmen). Nur die ersten 1000 Bytes davon werden vom VIC genutzt. Dieses 1 KByte RAM existiert zusätzlich zu den normalen 64 KByte RAM |
$DC00-$DDFF | 56320-56831 | Register der beiden CIAs (Complex Interface Adapter) - Details |
$DE00-$DFFF | 56832-57343 | Reserviert für Schnittstellen-Erweiterungen $DE00-$DE01: Retro Replay $DE20-$DE37,$DE5F-$DEFF: IDE64 $DExx die meisten MIDI-Interfaces $DF00-$DF0A: CBM RAM Expansion Unit (REU) $DF40, $DF50, $DF60: Sound Expander $DF80-$DF87: Magic Voice Speech Modul |
$E000-$FFFF | 57344-65535 | 8 KByte KERNAL-ROM (Details) |
Die PLA erlaubt auch eine Vielzahl von abweichenden Konfigurationen.
Weblinks[Bearbeiten | Quelltext bearbeiten]
- Memory Map mit Wandervorschlägen in 64'er Sonderheft 07/1986
- All About Your 64 texts including memory map
- Commodore 64 memory map
- Commodore 64 memory map (modernes Design)
Programmierung-Portalseite
C64-BASIC: BASIC V2 · BASIC-Befehle · Variable