]> git.sur5r.net Git - cc65/blob - libsrc/pce/joytokbd.s
simple conio test works again
[cc65] / libsrc / pce / joytokbd.s
1 ;
2 ; File generated by cc65 v 2.9.5
3 ;
4         .fopt           compiler,"cc65 v 2.9.5"
5         .autoimport     on
6         .case           on
7         .debuginfo      off
8         .importzp       sp, sreg, regsave, regbank, tmp1, ptr1, ptr2
9         .macpack        longbranch
10         .import         _joy_masks
11         .import         _joy_read
12         .import         _clock
13         .export         _kbhit
14         .export         _cgetc
15
16 .segment        "DATA"
17
18 __lastkey:
19         .byte   $00
20 __chardelay:
21         .dword  $00000000
22 _rptkey:
23         .byte   $00
24
25 ; ---------------------------------------------------------------
26 ; void _getkey (void)
27 ; ---------------------------------------------------------------
28
29 .segment        "CODE"
30
31 .proc   __getkey
32
33 .segment        "CODE"
34
35         jsr     decsp2
36         ldx     #$00
37         lda     __lastkey
38         cmp     #$00
39         jsr     booleq
40         jeq     L003F
41         lda     #$00
42         jsr     _joy_read
43         ldy     #$01
44         sta     (sp),y
45         ldx     #$00
46         lda     #$00
47         ldy     #$00
48         sta     (sp),y
49         ldy     #$01
50         ldx     #$00
51         lda     (sp),y
52         jsr     pushax
53         ldx     #$00
54         lda     _joy_masks+4
55         jsr     tosandax
56         stx     tmp1
57         ora     tmp1
58         jeq     L0010
59         ldx     #$00
60         lda     #$0A
61         ldy     #$00
62         sta     (sp),y
63         jmp     L003A
64 L0010:  ldy     #$01
65         ldx     #$00
66         lda     (sp),y
67         jsr     pushax
68         ldx     #$00
69         lda     _joy_masks
70         jsr     tosandax
71         stx     tmp1
72         ora     tmp1
73         jeq     L0016
74         ldx     #$00
75         lda     #$01
76         ldy     #$00
77         sta     (sp),y
78         jmp     L003A
79 L0016:  ldy     #$01
80         ldx     #$00
81         lda     (sp),y
82         jsr     pushax
83         ldx     #$00
84         lda     _joy_masks+2
85         jsr     tosandax
86         stx     tmp1
87         ora     tmp1
88         jeq     L001C
89         ldx     #$00
90         lda     #$03
91         ldy     #$00
92         sta     (sp),y
93         jmp     L003A
94 L001C:  ldy     #$01
95         ldx     #$00
96         lda     (sp),y
97         jsr     pushax
98         ldx     #$00
99         lda     _joy_masks+3
100         jsr     tosandax
101         stx     tmp1
102         ora     tmp1
103         jeq     L0022
104         ldx     #$00
105         lda     #$04
106         ldy     #$00
107         sta     (sp),y
108         jmp     L003A
109 L0022:  ldy     #$01
110         ldx     #$00
111         lda     (sp),y
112         jsr     pushax
113         ldx     #$00
114         lda     _joy_masks+1
115         jsr     tosandax
116         stx     tmp1
117         ora     tmp1
118         jeq     L0028
119         ldx     #$00
120         lda     #$02
121         ldy     #$00
122         sta     (sp),y
123         jmp     L003A
124 L0028:  ldy     #$01
125         ldx     #$00
126         lda     (sp),y
127         jsr     pushax
128         ldx     #$00
129         lda     _joy_masks+7
130         jsr     tosandax
131         stx     tmp1
132         ora     tmp1
133         jeq     L002E
134         ldx     #$00
135         lda     #$14
136         ldy     #$00
137         sta     (sp),y
138         jmp     L003A
139 L002E:  ldy     #$01
140         ldx     #$00
141         lda     (sp),y
142         jsr     pushax
143         ldx     #$00
144         lda     _joy_masks+5
145         jsr     tosandax
146         stx     tmp1
147         ora     tmp1
148         jeq     L0034
149         ldx     #$00
150         lda     #$15
151         ldy     #$00
152         sta     (sp),y
153         jmp     L003A
154 L0034:  ldy     #$01
155         ldx     #$00
156         lda     (sp),y
157         jsr     pushax
158         ldx     #$00
159         lda     _joy_masks+6
160         jsr     tosandax
161         stx     tmp1
162         ora     tmp1
163         jeq     L003A
164         ldx     #$00
165         lda     #$16
166         ldy     #$00
167         sta     (sp),y
168 L003A:  ldy     #$00
169         ldx     #$00
170         lda     (sp),y
171         cmp     #$00
172         jsr     boolne
173         jeq     L003F
174         ldy     #$00
175         ldx     #$00
176         lda     (sp),y
177         jsr     pushax
178         ldx     #$00
179         lda     _rptkey
180         jsr     toseqax
181         jeq     L0043
182         lda     __chardelay+3
183         sta     sreg+1
184         lda     __chardelay+2
185         sta     sreg
186         ldx     __chardelay+1
187         lda     __chardelay
188         jsr     pusheax
189         jsr     _clock
190         jsr     tosugteax
191         jeq     L0043
192         jmp     L003F
193 L0043:  ldy     #$00
194         ldx     #$00
195         lda     (sp),y
196         sta     _rptkey
197         jsr     _clock
198         ldy     #$06
199         jsr     inceaxy
200         sta     __chardelay
201         stx     __chardelay+1
202         ldy     sreg
203         sty     __chardelay+2
204         ldy     sreg+1
205         sty     __chardelay+3
206         ldy     #$00
207         ldx     #$00
208         lda     (sp),y
209         sta     __lastkey
210 L003F:  jsr     incsp2
211         rts
212
213 .endproc
214
215 ; ---------------------------------------------------------------
216 ; unsigned char __fastcall__ kbhit (void)
217 ; ---------------------------------------------------------------
218
219 .segment        "CODE"
220
221 .proc   _kbhit
222
223 .segment        "CODE"
224
225         jsr     __getkey
226         ldx     #$00
227         lda     __lastkey
228         cmp     #$00
229         jsr     booleq
230         jeq     L004E
231         ldx     #$00
232         lda     #$00
233         jmp     L0052
234         jmp     L0052
235 L004E:  ldx     #$00
236         lda     #$01
237         jmp     L0052
238 L0052:  rts
239
240 .endproc
241
242 ; ---------------------------------------------------------------
243 ; unsigned char __fastcall__ cgetc (void)
244 ; ---------------------------------------------------------------
245
246 .segment        "CODE"
247
248 .proc   _cgetc
249
250 .segment        "CODE"
251
252         jsr     decsp1
253 L0056:  ldx     #$00
254         lda     __lastkey
255         cmp     #$00
256         jsr     booleq
257         jeq     L0057
258         jsr     __getkey
259         jmp     L0056
260 L0057:  ldx     #$00
261         lda     __lastkey
262         ldy     #$00
263         sta     (sp),y
264         ldx     #$00
265         lda     #$00
266         sta     __lastkey
267         ldy     #$00
268         ldx     #$00
269         lda     (sp),y
270         jmp     L0055
271 L0055:  jsr     incsp1
272         rts
273
274 .endproc
275