home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
87xx
/
8705.d64
/
raster-irq
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
1KB
|
62 lines
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