home *** CD-ROM | disk | FTP | other *** search
- 0 sys32768:.opt p,oo
- 10 .tit "rasterzeilen-interrupt"
- 11 .pag 255
- 12 *= $c000
- 13 rando = 106
- 14 randu = 194
- 15 irqalt = $ea31
- 16 raster = $d012
- 17 mask = $d01a
- 18 request = $d019
- 19 modus = $d018
- 20 klein = 21
- 21 gross = 23
- 22 ;
- 23 ;initialisierung
- 24 ;===============
- 25 ;
- 26 sei ;interrrupt verhindern
- 27 lda #<irqneu
- 28 ldx #>irqneu
- 29 sta $0314 ;irq-vektor auf neue
- 30 stx $0315 ;routine setzen
- 31 lda #rando
- 32 sta raster ;1.zeile fuer irq
- 33 lda raster-1
- 34 and #%01111111 ;high-byte loeschen
- 35 sta raster-1
- 36 lda #%10000001 ;irq durch raster-
- 37 sta mask ;zeilen festlegen
- 38 cli ;irq freigeben
- 39 rts
- 40 ;
- 41 ;neue interruptroutine
- 42 ;=====================
- 43 ;
- 44 irqneu lda request ;irq-register
- 45 sta request ;loeschen
- 46 bmi rasterirq ;zum raster - irq
- 47 ;
- 48 ;timer-interrupt
- 49 ;===============
- 50 ;
- 51 lda $dc0d ;irq-reg. loeschen
- 52 cli ;irq zulassen
- 53 jmp irqalt ;timer-irq-routine
- 54 ;
- 55 ;rasterzeilen-interrupt
- 56 ;======================
- 57 ;
- 58 rasterirq lda raster ;zeile holen
- 59 cmp #randu ;unterer rand
- 60 bcs ok ;ja, sprung
- 61 lda #klein ;nein, auf kein-
- 62 sta modus ;schrift schalten
- 63 lda #randu
- 64 jmp exit ;zum schluss
- 65 ok lda #gross ;grossschriftmodus
- 66 sta modus ;einschalten
- 67 lda #rando
- 68 exit sta raster
- 69 jmp $ea7e ;irq beenden
-