SuperCPU Tutorial Listings - Part 7
Listing 7.1 ; 65816 Native Mode IRQ-Programming ; written in 1997 by Malte Mundt ; for GO64! £ba $c000 £la rasterpointer=$02 sei clc ; native mode xce lda #$35 ; disable rom sta $01 lda #$01 ; enable sta $d01a ; raster-irq lda #$1b sta $d011 lda #$61 ; at position $61 sta $d012 lda #$7f ; disable cia-irq sta $dc0d ; lda $dc0d ; clear poss. old cia irq lda #$00 sta $d020 sta $d021 lda $d019 ; vic- sta $d019 ; irq clr lda #irq ; native sta $ffef ; vector cli loop: sep #$30 ; 8 bit inc $d800 ; color-ram +1 rep #$30 ; 16 bit inc $0400 ; $0400/01 +1 jmp loop irq: pha ; save accu phx ; save x php ; save status sep #$10 ; index 8 bit rep #$20 ; akku 16 bit £al £rs ldx rasterpointer lda coltab,x ; get 16 bit sta $d020 ; to $d020/21 sep #$20 ; accu 8 bit £as inc $d012 ; new irq inx ; inc x by 2 inx cpx #12 bne skip lda #$61 ; next sta $d012 ; frame ldx #0 skip: stx rasterpointer lda $d019 sta $d019 plp ; reset status pla ; reset accu plx ; reset x rti coltab: £by $06,$02 £by $0e,$0a £by $01,$07 £by $0e,$0a £by $06,$02 £by $00,$00
Assembler Code © by Malte Mundt
Partial translation and cosmetical changes by Count Zero/SCS*TRC
[ Listings Part 6 ][
Tutorial Part 7 ][ Index ][ Listings
Part 8 ]