home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er 1987 May
/
64er_Magazin_87-05_1987_Markt__Technik_de.d64
/
lightp.-irq
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
2KB
|
99 lines
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