🗺️Speicherkarte & Bank-Umschaltung
Der Z80 sieht nur 64 KB. Der CPC 6128 hat aber 128 KB RAM und 32 KB ROM (plus Erweiterungs-ROMs) – der Trick heißt Einblenden: Lesezugriffe können ROM sehen, Schreibzugriffe gehen immer ins RAM darunter.
📐Aufteilung der 64 KB (nach SOFT 968, Abschnitt 2.1)
LD A,(&C000) ein ROM-Byte – LD (&C000),Aschreibt trotzdem in den Bildschirmspeicher. Genau deshalb schaltet jeder Firmware-Einsprung (LOW JUMP) das obere ROM ab.RST 4 (RAM LAM) liest das Byte bei (HL) mit abgeschalteten ROMs, KL LDIR/KL LDDR kopieren ebenso.🏦RAM-Organisationen &C0–&C7 (nur CPC 6128)
; Organisation 0 per Firmware (nur 6128):
ld a,0
call &bd5b ; KL BANK SWITCH
; … oder direkt über den Port (Befehl &C0+n):
ld bc,&7fc0
out (c),cTabelle aus SOFT 968, Abschnitt 2.5. Beim Einschalten gilt Organisation 0; die Blöcke 0 und 2 enthalten Firmware-Variablen, Sprungleisten und Stapel und müssen für Firmware-Aufrufe an ihrem Platz bleiben. Der Bildschirm kann nur in den Blöcken 0–3 liegen.
🎛️Gate Array: Modus und ROM-Auswahl
ld bc,&7f8d ; B = &7F: Gate Array, C = Wert &8D
out (c),cFunktion „Modus und ROM-Auswahl“ (Bits 7/6 = 1 0). Die Firmware merkt sich diesen Wert in C' – wer ihn direkt schreibt, sollte C' anpassen (SOFT 968, Appendix XI).
🔢Welches obere ROM?
; Oberes ROM auswählen: Port &DFxx
ld bc,&df07 ; ROM 7 = AMSDOS beim 6128
out (c),c
; Firmware-Weg (merkt sich die alte Auswahl):
ld c,7
call &b90f ; KL ROM SELECT
…
call &b918 ; KL ROM DESELECTQuellen: SOFT 968 Abschnitte 2.1–2.5, 10.2, Appendix XI; Gate-Array-Register nach K. Thacker „Amstrad CPC Gate-Array“ (cpctech.cpcwiki.de).