home *** CD-ROM | disk | FTP | other *** search
- 0 sys32768:.opt p,oo:*= $c0df
- 1 .tit "lightpen/joystick-irq"
- 2 .pag 255
- 3 vic = $d000
- 4 flag = $9b
- 5 irqalt = $ea31
- 7 mask = $d01a
- 8 request = $d019
- 9 ;
- 10 ;initialisierung
- 11 ;===============
- 12 ;
- 13 sei ;interrrupt verhindern
- 14 lda #<irqneu
- 15 ldx #>irqneu
- 16 sta $0314 ;irq-vektor auf neue
- 17 stx $0315 ;routine setzen
- 18 lda #00 ;flag fuer text
- 19 sta flag ;setzen
- 20 lda #<$6000
- 21 sta $71
- 22 lda #>$6000 ;grafikschirm
- 23 sta $72
- 24 lda #00 ;ab $6000
- 25 ldx #32
- 26 l1 tay ;loeschen
- 27 l2 sta ($71),y
- 28 iny
- 29 bne l2
- 30 inc $72:dex
- 31 bne l1
- 32 lda #<$4400 ;videoram ab
- 33 sta $71
- 34 lda #>$4400 ;$4400 mit farbe
- 35 sta $72
- 36 lda #110 ;fuellen- punkt-
- 37 ldx #04
- 38 l3 ldy #00 ;fare hellblau,
- 39 l4 sta ($71),y
- 40 iny ;hintergrund blau
- 41 bne l4
- 42 inc $72:dex
- 43 bne l3
- 46 lda #%10001000 ;irq durch lightpen/
- 47 sta mask ;joystick festlegen
- 48 cli ;irq freigeben
- 49 rts
- 50 ;
- 51 ;neue interruptroutine
- 52 ;=====================
- 53 ;
- 54 irqneu lda request ;irq-register
- 55 sta request ;loeschen
- 56 bmi raster ;zum raster - irq
- 57 ;
- 58 ;timer-interrupt
- 59 ;===============
- 60 ;
- 61 lda $dc0d ;irq-reg. loeschen
- 62 cli ;irq zulassen
- 63 jmp irqalt ;timer-irq-routine
- 64 ;
- 65 ;rasterzeilen-interrupt
- 66 ;======================
- 67 ;
- 70 raster lda flag ;hgr oder text
- 71 cmp #00
- 72 beq hgr ;grafik einschalten
- 73 ;
- 74 ;auf textschirm schalten
- 75 ;=======================
- 76 ;
- 77 lda #%00011011
- 78 sta vic+17 ;grafik ausschalten
- 79 lda #%11001000 ;multicolor
- 80 sta vic+22 ;ausschalten
- 81 lda #%00010101 ;zeichensatz auf
- 82 sta vic+24 ;grosschrift
- 83 lda #%10010111 ;16 k-verschiebung
- 84 sta $dd00 ;des adressraumes
- 85 lda #00 ;flag auf hgr
- 86 sta flag ;schalten
- 87 jmp $ea7e ;irq beenden
- 88 ;
- 89 ;auf grafikschirm schalten
- 90 ;=========================
- 91 ;
- 92 hgr lda #%10111011
- 93 sta vic+17 ;grafik einschalten
- 94 lda #%11001000
- 95 sta vic+22 ;multicolor aus
- 96 lda #%00011101
- 97 sta vic+24 ;videoram nach $4400
- 98 lda #%10010110 ;16k-verschiebung
- 99 sta $dd00 ;des adressraumes
- 100 lda #01 ;flag auf text
- 101 sta flag ;schalten
- 102 jmp $ea7e ;irq beenden
-