*=$0810
sei ; CPU mag geen IRQs meer aanroepen
lda #$7f ; stop de CIA timers
sta $dc0d
sta $dd0d
lda $dc0d ; trigger nog een laatste keer de CIA IRQ
lda $dd0d
lda #$01 ; IRQ moet voortaan op raster reageren
sta $d01a
asl $d019 ; trigger nog een laatste keer de raster IRQ
ldx #<irq ; zet de IRQ vectoren op label 'irq'
ldy #>irq
stx $0314
sty $0315
lda #$80 ; 't lijntje van $d012 waarop de IRQ moet worden
sta $d012 ; aangeroepen
lda #$1b ; wat je hier ook doet, bit %10000000 van $d011
; moet altijd 0 zijn.
sta $d011 ; dat is namelijk de 'hoge' bit van de rasterlijn.
cli ; CPU mag weer naar IRQ springen
jmp * ; loop
; EERSTE IRQ
irqA asl $d019
lda #$02 ; maak border rood
sta $d020
ldx #<irqB ; zeg waar de 2e IRQ staat
ldy #>irqB
stx $0314
sty $0315
lda #$a0 ; die moet reageren op rasterlijn #$a0
sta $d012
jmp $ea31 ; einde IRQ
; TWEEDE IRQ
irqB asl $d019
lda #$00 ; maak de border zwart
sta $d020
ldx #<irqA ; zeg waar de 1e IRQ staat
ldy #>irqA
stx $0314
sty $0315
lda #$80 ; die moet reageren op rasterlijn #$80
sta $d012
jmp $ea31 ; einde IRQ