home *** CD-ROM | disk | FTP | other *** search
- *= $1000 ;
-
- sei ;irq sperren
- lda #<start ;high und
- sta $0314 ;lowbyte der neuen
- lda #>start ;einsprungsadresse
- sta $0315 ;festlegen
-
- lda #$00 ;selbstmodifizierendes
- sta selfmod+1 ;register loeschen
-
- lda $dc0d ;timerwert
- and #$7f ;verknuepfen
- ora #$01 ;und wieder
- sta $dc0d ;schreiben
- lda #$2e ;rasterzeile auf
- sta $d012 ;$2e festlegen
- lda $d011 ;yscroll-register
- and #$7f ;auf den
- sta $d011 ;standardwert setzen
- lda #$01 ;nur rasterzeilen-irq
- sta $d01a ;zulassen
- cli ;irq freigeben
- jmp * ;endlosschleife
-
- start inc $d019 ;irr erhoehen
-
- selfmod ldx #$00 ;zaehler auf null setzen
- again lda $d012 ;rasterzeile laden
- ldy #$02 ;und kurz
- rza1 dey ;warten
- bne rza1 ;
- wait cmp $d012 ;warten, bis der raster-
- beq wait ;strahl wieder auf der alten
- and #$07 ;position steht
- adc #$18 ;werte verknuepfen und
- sta $d011 ;ins register $d011 schreiben
- dex ;zaehler vermindern
- bne again ;ungleich null, dann von vorne
- lda selfmod+1 ;selbstmodifikations-reg
- cmp #$01 ;laden und pruefen, ob
- beq irqend ;es bereits bei eins ist
- dec selfmod+1 ;
- irqend jmp $ea31 ;zur alten irq-routine
-
-