Im Gegensatz zu modernen x86- oder ARM-CPUs arbeitet der 6502 mit extrem wenigen internen Registern:
Zero-Page-Magie ($00–$FF): Die ersten 256 Bytes im RAM benötigen nur eine 8-Bit-Adresse. Lese- und Schreibzugriffe auf die Zero-Page sparen einen vollen Taktzyklus pro Instruktion!
Wie man mit wenigen Zeilen Assembler die Rahmenfarbe synchron zum Kathodenstrahl des CRT-Monitors ändert:
* = $c000 ; Startadresse im RAM (SYS 49152)
sei ; Interrupts sperren
lda #$7f
sta $dc0d ; CIA1 Timer-Interrupts deaktivieren
lda #$01
sta $d01a ; VIC-II Raster-Interrupt aktivieren
lda #100 ; Ziel-Rasterzeile (Zeile 100)
sta $d012
lda $d011
and #$7f ; High-Bit der Rasterzeile auf 0
sta $d011
lda #<irq_routine ; Low-Byte des IRQ-Handlers
sta $0314 ; KERNAL IRQ-Vektor verbiegen
lda #>irq_routine ; High-Byte des IRQ-Handlers
sta $0315
cli ; Interrupts wieder freigeben
rts ; Zurück zu BASIC
irq_routine:
inc $d020 ; Rahmenfarbe ändern (Visueller Rasterbalken!)
dec $d020 ; Rahmenfarbe zurücksetzen
asl $d019 ; VIC-II Interrupt quittieren
jmp $ea31 ; Standard-KERNAL IRQ ausführen