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 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