Apple ][ Speicher
Der Apple ][ hat noch keine MMU (Memory Management Unit).
Seine 64KB waren per Konvention verteilt.
Adresse | Inhalt |
$0000 - $00FF | Zero-Page |
$0100 - $01FF | 6502-Stack |
$0200 - $02FF | Keyboardbuffer |
$0300 - $03FF | |
$0400 - $07FF | Videobereich für Text und LoRes |
$0800 - &BF00 | BASIC-Programme |
$C000 - $CFFF | I/O-Bereich |
$D000 - $F7FF | BASIC-ROM |
$F800 - $FFFF | Monitor-ROM |
Damit ist ein 48KB Apple beschrieben. Die restlichen 16KB eines 64KB-Apples
befinden sich parallel zum ROM.
Zero-Page ($0000-$00FF)
Die Zero-Page ist der Speicherbereich von 0 bis 256. Für die Adressierung wird
das Highbyte nicht benötigt. Diese Adressen sind für den 6502 von besonderer
Bedeutung. Aus diesem Grund liegen hier viele systemrelevante Informationen.
6502-Stack ($0100-$01FF)
Die CPU hat hier ihren Stackbereich. Mit 256 Byte ist dieser nicht gerade gewaltig.
Da aber keine Parameter auf den Stack gelegt werden und nur 2 Byte für jede
Rücksprungadresse gebraucht werden, reicht dieser Bereich für 128 verschachtelte
Unterprogrammaufrufe in Assembler.
Keyboardbuffer ($0200-$02FF)
Dieser Bereich wird von BASIC als Zeilenpuffer verwendet. Für Assemblerprogrammierer
also ein meist freier Bereich. Einige kleine Utilities legen sich in den oberen Bereich
in der Annahme, dass niemand ernsthaft 256 Zeichen eingibt.
$0300-$03FF
Hier ist ein 256-Byte Speicherbereich, der nicht belegt ist. Hier residieren viele
Utilities, die BASIC ein paar Aufgaben abnehmen sollen. Das Problem ist, dass nur
eines dieser Programme hier gleichzeitig geladen werden kann und jeder Assemblerprogrammierer
diese Adresse kennt.
Text und LoRes