annotate level2/modules/joydrv_joy.asm @ 2733:ebf319736e9c

Adjusted disk format for dw .dsk's, took a blank line out of regdmp to compact its display
author gheskett
date Mon, 10 Dec 2012 07:28:11 -0500
parents b8c7b7fbf3c9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1 ********************************************************************
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2 * JoyDrv - Joystick Driver for CoCo 3 Hi-Res Mouse
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
4 * $Id$
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
5 *
1263
205b4fbc08cd Fixed comments, revs to zero
boisy
parents: 0
diff changeset
6 * Edt/Rev YYYY/MM/DD Modified by
205b4fbc08cd Fixed comments, revs to zero
boisy
parents: 0
diff changeset
7 * Comment
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
8 * ------------------------------------------------------------------
1288
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
9 * 6 1998/10/09 Robert Gault
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
10 * Added annotations to the L2 Upgrade distribution version
1263
205b4fbc08cd Fixed comments, revs to zero
boisy
parents: 0
diff changeset
11 *
2144
65e3494fa1f3 Corrected misspellings
boisy
parents: 1933
diff changeset
12 * 7 2003/08/28 Robert Gault
1933
1e312b144f4d Major changes:
boisy
parents: 1288
diff changeset
13 * Contains routine for H6309 from VTIO
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
14
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
15 nam JoyDrv
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
16 ttl Joystick Driver for CoCo 3 Hi-Res Mouse
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
17
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
18 * Disassembled 98/09/09 09:07:45 by Disasm v1.6 (C) 1988 by RML
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
19
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
20 ifp1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
21 use defsfile
2624
b8c7b7fbf3c9 Major changes:
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2144
diff changeset
22 use cocovtio.d
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
23 endc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
24
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
25 tylg set Systm+Objct
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
26 atrv set ReEnt+rev
1263
205b4fbc08cd Fixed comments, revs to zero
boisy
parents: 0
diff changeset
27 rev set $00
1288
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
28 edition set 7
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
29
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
30 mod eom,name,tylg,atrv,start,size
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
31 size equ .
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
32
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
33 name fcs /JoyDrv/
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
34 fcb edition
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
35
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
36 start lbra Init setup for special button state & clear buttons
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
37 lbra Term clear button but don't change special flag
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
38 lbra SSMsBtn read and process button values
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
39 lbra SSMsXY read joystick values; with processing
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
40 lbra SSJoyBtn clear keyboard input and return raw button info
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
41
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
42 SSJoyXY pshs y,x,b,a read joystick values
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
43 pshs x,b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
44 ldx #PIA0Base point to PIA#1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
45 lda <$23,x read sound enable state?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
46 ldb <$20,x read 6-bit DAC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
47 pshs b,a save current states
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
48 anda #%11110111 clear sound enable
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
49 sta <$23,x set switch
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
50 lda $01,x read MUX SEL#1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
51 ldb $03,x read MUX SEL#2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
52 pshs b,a save current state
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
53 orb #$08 set SEL#2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
54 lda $08,s read ?what?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
55 anda #$02 keep only left or right joystick
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
56 bne L0047 if left then don't
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
57 andb #%11110111 clear SEL#2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
58 L0047 stb $03,x enable SEL#2 value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
59 leay <L0097,pcr point to high res routine
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
60 ldb $0D,s flag for high/low res
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
61 bne L0054
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
62 leay >L010F,pcr point to low res routine
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
63 L0054 lda ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
64 ora #$08 set MUX SEL#1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
65 jsr ,y read pot
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
66 tst $0D,s here the same byte seems to be used for x/y flag??
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
67 beq L0060
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
68 bsr L00DB convert from width to height value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
69 L0060 std $06,s return joystick value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
70 lda ,s now read the other direction
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
71 anda #$F7 flip the MUX SEL#1 bit
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
72 jsr ,y read the second pot
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
73 std $04,s save the other value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
74 puls b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
75 sta $01,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
76 stb $03,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
77 puls b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
78 stb <$20,x reset the DAC and sound selector
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
79 sta <$23,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
80 puls y,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
81 lda ,s flag for double button?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
82 cmpa #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
83 bne L0094
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
84 ldb #$80 minimum flag
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
85 lda $05,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
86 bne L008B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
87 cmpx #32 minimum joystick value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
88 bcc L0092
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
89 L008B cmpx #320 maximum joystick value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
90 bcc L0092 if less than don't change flag
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
91 ldb #$C0 maximum flag
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
92 L0092 stb ,u save max/min flag value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
93 L0094 leas $06,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
94 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
95 L0097 pshs cc high res routine
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
96 sta $01,x select x/y pot
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
97 lda #$FF full DAC value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
98 sta <$20,x store in DAC to charge capacitor
1288
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
99 IFNE H6309
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
100 lda #$80
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
101 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
102 lda #$5A timing loop; wait for voltage to settle
1288
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
103 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
104 L00A2 deca
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
105 bne L00A2 wait
1288
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
106 IFNE H6309
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
107 ldd #$2F0
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
108 lde #2
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
109 ELSE
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
110 ldd #$329
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
111 pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
112 lda #$02
1288
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
113 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
114 orcc #IntMasks kill interrupts
1288
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
115 IFNE H6309
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
116 ste <$20,x
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
117 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
118 sta <$20,x clear DAC; mask RS-232; start cap. discharge
1288
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
119 ENDC
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
120 L00B1 equ *
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
121 IFNE H6309
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
122 lde ,x
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
123 ELSE
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
124 lda ,x test comparator
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
125 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
126 bmi L00C0
1288
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
127 IFNE H6309
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
128 decd
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
129 ELSE
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
130 decb counter
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
131 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
132 bne L00B1 loop until state change
1288
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
133 IFNE H6309
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
134 ldd #MaxRows-1 Too big, force to highest possible coord
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
135 puls cc,pc
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
136 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
137 dec ,s 3 -> 0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
138 bpl L00B1 loop again
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
139 puls a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
140 bra L00D6 branch to maximum value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
141 L00C0 puls a
1288
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
142 ENDC
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
143 IFNE H6309
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
144 L00C0 equ *
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
145 ENDC
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
146 decb
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
147 IFNE H6309
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
148 ldw #MaxRows Max coord
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
149 subr d,w Subtract the timing ramp value we got
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
150 bhs L0A11 If didn't wrap, we're fine
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
151 clrd If went negative, force to 0 coord
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
152 puls cc,pc Turn interrupts back on & return
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
153 L0A11 tfr w,d Move to proper exit register for now
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
154 cmpd #MaxRows-1 Past maximum X coordinate?
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
155 blo L0A1A No, leave it alone
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
156 ldd #MaxRows-1 Don't let it get past end of screen
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
157 L0A1A puls pc,cc
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
158 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
159 pshs b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
160 ldd #640
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
161 subd ,s++ convert from 640 -> 0 to 0 -> 640
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
162 bcc L00D0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
163 clra minimum value is $00
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
164 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
165 puls pc,cc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
166 L00D0 cmpd #639
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
167 bcs L00D9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
168 L00D6 ldd #639 maximum value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
169 L00D9 puls pc,cc
1288
adad42855d76 Robert Gault's 6309/6809 merged changes
boisy
parents: 1263
diff changeset
170 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
171 * This routine converts a pot value from width (640) to height (192) to match
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
172 * possible screen values; ie. value divided by 3.33
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
173 L00DB pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
174 lda #$09
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
175 pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
176 lda #$03
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
177 mul
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
178 pshs b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
179 lda $03,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
180 ldb #$03
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
181 mul
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
182 exg b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
183 addd ,s++
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
184 L00EF clr $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
185 cmpa #$0A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
186 bcs L00F9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
187 inc $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
188 suba #$0A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
189 L00F9 lsr $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
190 rolb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
191 rola
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
192 dec ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
193 bne L00EF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
194 cmpb #$BF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
195 beq L010B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
196 cmpa #$0A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
197 bcs L010B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
198 addb #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
199 L010B clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
200 leas $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
201 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
202 * Low res binary tree search for joystick value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
203 L010F sta $01,x set MUX SEL#1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
204 lda #$7F DAC value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
205 ldb #$40
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
206 bra L0122
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
207 L0117 lsrb reset DAC offset value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
208 cmpb #$01
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
209 bhi L0122
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
210 lsra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
211 lsra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
212 tfr a,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
213 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
214 rts return with voltage
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
215 L0122 pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
216 sta <$20,x set DAC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
217 tst ,x test comparator
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
218 bpl L012F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
219 adda ,s+ adjust binary tree search
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
220 bra L0117
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
221 L012F suba ,s+ adjust binary tree search
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
222 bra L0117
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
223
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
224 SSMsXY leay ,y get flag??
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
225 lbne SSJoyXY go read joystick pots
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
226 lbsr SSJoyXY go read joystick pots and then convert values
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
227 tfr x,d multiply regX by 10 and regY by 3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
228 lda #$0A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
229 mul
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
230 tfr d,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
231 cmpx #630
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
232 bcs L014B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
233 ldx #634 maximum limit on regX
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
234 * may be an error and could be 639
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
235 L014B tfr y,d
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
236 lda #$03
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
237 mul
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
238 tfr d,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
239 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
240
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
241 Init ldb #$80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
242 stb ,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
243
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
244 Term clr $01,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
245 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
246
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
247 SSJoyBtn ldx #PIA0Base PIA#1 base address
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
248 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
249 comb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
250 stb $02,x clear PIA#1 key strobe lines
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
251 ldb ,x read data lines
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
252 comb only buttons and comparator valid
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
253 andb #$0F only buttons; 0=off 1=on
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
254 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
255
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
256 SSMsBtn bsr SSJoyBtn
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
257 tfr b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
258 anda #%11111010 regA=left buttons; should be $0A not $FA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
259 pshs a save left button values
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
260 andb #$05 regB=right buttons
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
261 orb $01,u ORB with previous state??
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
262 leax <L0187,pcr point to sequential switch table possibilities
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
263 lda b,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
264 anda #%00001010 keep only left values
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
265 sta $01,u save for change test
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
266 ldb b,x repeat
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
267 andb #%10000101 keep flag and right values
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
268 bpl L0184
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
269 ldb ,u previous min/max state
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
270 L0184 orb ,s+ ORB with current left values and pop stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
271 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
272 L0187 fcb $00,$03,$00,$03,$08,$06,$02,$06,$80,$02,$00,$02,$08,$06,$0a,$06
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
273
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
274 emod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
275 eom equ *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
276 end
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
277