Assembler-Beispiel 49 - EOR (RAUTE)$nn.asm

Aus C64-Wiki
Zur Navigation springenZur Suche springen
; Dieses Programm invertiert den gesamt Bildschirm.
; Programmstart mit SYS 49152

*=$c000

L_BLOCK      = $fb
H_BLOCK      = $fc
H_BILDSCHIRM = $0288

start            lda #$00         
                 sta L_BLOCK

                 ldy H_BILDSCHIRM
                 sty H_BLOCK       ; Startadresse des Bildschirmspeichers in $fc/$fb

                 tax               ; X=0 
                 tay               ; Y=0

schleife         lda (L_BLOCK),Y   ; Zeichen lesen
                 eor #%10000000    ; invertiere Bit7 (Reverse-Bit)
                 sta (L_BLOCK),Y   ; Zeichen schreiben
                 iny
                 bne schleife      ; verzweige solange Y<>0 (256 Bytes)

                 inc H_BLOCK       ; erhöhe High-Byte der Bildschirmspeicheradresse
                 inx
                 cpx #$04          ; 4 Pages
                 bne schleife      ; verzweige solange X<>4

                 rts               ; Rücksprung zu BASIC