blob: 7f7276164115ea7a71497a6319e1070df02e74d8 [file] [log] [blame]
adamdunkels942aabf2003-04-09 00:31:13 +00001
2;---------------------------------------------------------------------
3
4 .import _ctk_mouse_joyx, _ctk_mouse_joyy
5 .import _ctk_mouse_firebutton
6 .export _ctk_mouse_asm_irq
7;---------------------------------------------------------------------
8.bss
9lastjoydy: .res 1
10lastjoydx: .res 1
11joydycnt: .res 1
12joydxcnt: .res 1
13;---------------------------------------------------------------------
14.data
15;---------------------------------------------------------------------
16.code
17_ctk_mouse_asm_irq:
18 lda $dc00
19 ldy #0
20 ldx #0
21 lsr
22 bcs nodey
23 dey
24nodey:
25 lsr
26 bcs noiny
27 iny
28noiny:
29 lsr
30 bcs nodex
31 dex
32nodex:
33 lsr
34 bcs noinx
35 inx
36noinx:
37 and #1
38 eor #1
39 sta _ctk_mouse_firebutton
40
41 cpy lastjoydy
42 sty lastjoydy
43 bne noydy
44 tya
45 pha
46 inc joydycnt
47 lda joydycnt
48 bpl nostajoydycnt
49 lda #$80
50 sta joydycnt
51nostajoydycnt:
52 lsr
53 lsr
54 lsr
55 lsr
56 tay
57 pla
58asldeyloop:
59 asl
60 dey
61 bpl asldeyloop
62 tay
63 jmp ydy
64noydy:
65 lda #0
66 sta joydycnt
67ydy:
68
69 tya
70 clc
71 adc _ctk_mouse_joyy
72 sta _ctk_mouse_joyy
73 php
74 lda #$ff
75 cpy #0
76 bmi nolda0
77 lda #0
78nolda0:
79 plp
80 adc _ctk_mouse_joyy+1
81 sta _ctk_mouse_joyy+1
82
83 cpx lastjoydx
84 stx lastjoydx
85 bne noxdx
86 txa
87 pha
88 inc joydxcnt
89 lda joydxcnt
90 bpl nostajoydxcnt
91 lda #$80
92 sta joydxcnt
93nostajoydxcnt:
94 lsr
95 lsr
96 lsr
97 lsr
98 tax
99 pla
100asldexloop:
101 asl
102 dex
103 bpl asldexloop
104 tax
105 jmp xdx
106noxdx:
107 lda #0
108 sta joydxcnt
109xdx:
110
111 txa
112 clc
113 adc _ctk_mouse_joyx
114 sta _ctk_mouse_joyx
115 php
116 lda #$ff
117 cpx #0
118 bmi nolda02
119 lda #0
120nolda02:
121 plp
122 adc _ctk_mouse_joyx+1
123 sta _ctk_mouse_joyy+1
124
125 lda _ctk_mouse_joyy
126 clc
127 adc #$30
128 sta $d001
129
130 lda _ctk_mouse_joyx
131 clc
132 adc #$18
133 sta $d000
134 lda #0
135 adc _ctk_mouse_joyx+1
136 and #1
137 sta $d010
138 jmp $ea31