Rev 171 | Details | Compare with Previous | Last modification | View Log
Rev | Author | Line No. | Line |
---|---|---|---|
171 | demige | 1 | ;"a"=a |
2 | ;"x"=c (b=0) |
||
3 | ;"y"=e (d=0) |
||
4 | |||
5 | macro checka |
||
6 | inc a |
||
7 | dec a |
||
8 | endm |
||
9 | |||
10 | macro checkx |
||
11 | inc c |
||
12 | dec c |
||
13 | endm |
||
14 | |||
15 | macro checky |
||
16 | inc e |
||
17 | dec e |
||
18 | endm |
||
19 | |||
20 | macro sei ;ei |
||
21 | endm |
||
22 | |||
23 | macro cld ;clear decimal mode |
||
24 | endm |
||
25 | |||
26 | macro txs ;set stack pointer = x |
||
27 | endm |
||
28 | |||
29 | macro beq addr |
||
30 | jp z,addr |
||
31 | endm |
||
32 | |||
33 | macro bne addr |
||
34 | jp nz,addr |
||
35 | endm |
||
36 | |||
37 | macro bcs addr |
||
38 | jp c,addr |
||
39 | endm |
||
40 | |||
41 | macro bcc addr |
||
42 | jp nc,addr |
||
43 | endm |
||
44 | |||
45 | macro bmi addr |
||
46 | jp m,addr |
||
47 | endm |
||
48 | |||
49 | macro bpl addr |
||
50 | jp p,addr |
||
51 | endm |
||
52 | |||
53 | macro jsr addr |
||
54 | call addr |
||
55 | endm |
||
56 | |||
57 | macro jmp addr |
||
58 | jp addr |
||
59 | endm |
||
60 | |||
61 | macro jmpindirect addr |
||
62 | ld hl,(addr) |
||
63 | jp (hl) |
||
64 | endm |
||
65 | |||
66 | macro rts |
||
67 | ret |
||
68 | endm |
||
69 | |||
70 | macro rti ;return from interrupt |
||
71 | ret |
||
72 | endm |
||
73 | |||
74 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
75 | |||
76 | macro sec |
||
77 | scf |
||
78 | endm |
||
79 | |||
344 | alone | 80 | macro secsub ;��७�� � ���⠭�� ������� |
171 | demige | 81 | or a |
82 | endm |
||
83 | |||
344 | alone | 84 | macro cmpcy ;��७�� �� �ࠢ����� ������� |
171 | demige | 85 | ccf |
86 | endm |
||
87 | |||
344 | alone | 88 | macro clc ;��࠭�� Z ��� ������ � chkjumpstringmetatiles |
171 | demige | 89 | scf |
90 | ccf |
||
91 | endm |
||
92 | |||
93 | macro lsr |
||
94 | srl a ;set Z,N,CY |
||
95 | endm |
||
96 | |||
97 | macro ror |
||
98 | rr a ;set Z,N,CY |
||
99 | endm |
||
100 | |||
101 | macro rol |
||
102 | rl a ;set Z,N,CY |
||
103 | endm |
||
104 | |||
105 | macro asl |
||
106 | add a,a ;set Z,N,CY |
||
107 | endm |
||
108 | |||
109 | macro lsri addr |
||
110 | ld hl,addr |
||
111 | srl (hl) |
||
112 | endm |
||
113 | |||
114 | macro rori addr |
||
115 | ld hl,addr |
||
116 | rr (hl) |
||
117 | endm |
||
118 | |||
119 | macro roli addr |
||
120 | ld hl,addr |
||
121 | rl (hl) |
||
122 | endm |
||
123 | |||
124 | macro asli addr |
||
125 | ld hl,addr |
||
126 | sla (hl) |
||
127 | endm |
||
128 | |||
129 | macro rorx shift,x |
||
130 | push af |
||
131 | ld hl,shift |
||
132 | add hl,bc |
||
133 | pop af |
||
134 | rr (hl) |
||
135 | endm |
||
136 | |||
137 | macro rolx shift,x |
||
138 | push af |
||
139 | ld hl,shift |
||
140 | add hl,bc |
||
141 | pop af |
||
142 | rl (hl) |
||
143 | endm |
||
144 | |||
145 | macro oran value ;TODO don't spoil CY |
||
146 | or value |
||
147 | endm |
||
148 | |||
149 | macro eorn value ;TODO don't spoil CY |
||
150 | xor value |
||
151 | endm |
||
152 | |||
153 | macro andn value ;TODO don't spoil CY |
||
154 | and value |
||
155 | endm |
||
156 | |||
157 | macro orax shift,x |
||
158 | ;push af |
||
159 | ld hl,shift |
||
160 | add hl,bc |
||
161 | ;pop af |
||
162 | or (hl) ;TODO don't spoil CY |
||
163 | endm |
||
164 | |||
165 | macro oray shift,y |
||
166 | ;push af |
||
167 | ld hl,shift |
||
168 | add hl,de |
||
169 | ;pop af |
||
170 | or (hl) ;TODO don't spoil CY |
||
171 | endm |
||
172 | |||
173 | macro eorx shift,x |
||
174 | ;push af |
||
175 | ld hl,shift |
||
176 | add hl,bc |
||
177 | ;pop af |
||
178 | xor (hl) ;TODO don't spoil CY |
||
179 | endm |
||
180 | |||
181 | macro eory shift,y |
||
182 | ;push af |
||
183 | ld hl,shift |
||
184 | add hl,de |
||
185 | ;pop af |
||
186 | xor (hl) ;TODO don't spoil CY |
||
187 | endm |
||
188 | |||
189 | macro andx shift,x |
||
190 | ;push af |
||
191 | ld hl,shift |
||
192 | add hl,bc |
||
193 | ;pop af |
||
194 | and (hl) ;TODO don't spoil CY |
||
195 | endm |
||
196 | |||
197 | macro andy shift,y |
||
198 | ;push af |
||
199 | ld hl,shift |
||
200 | add hl,de |
||
201 | ;pop af |
||
202 | and (hl) ;TODO don't spoil CY |
||
203 | endm |
||
204 | |||
205 | macro orai addr ;TODO don't spoil CY |
||
206 | ld hl,addr |
||
207 | or (hl) |
||
208 | endm |
||
209 | |||
210 | macro eori addr ;TODO don't spoil CY |
||
211 | ld hl,addr |
||
212 | xor (hl) |
||
213 | endm |
||
214 | |||
215 | macro andi addr ;TODO don't spoil CY |
||
216 | ld hl,addr |
||
217 | and (hl) |
||
218 | endm |
||
219 | |||
220 | macro biti addr ;TODO don't spoil CY |
||
221 | ld hl,(addr) |
||
222 | ld h,a |
||
223 | and l |
||
224 | ld a,h |
||
225 | endm |
||
226 | |||
227 | macro adcn value |
||
228 | adc a,value |
||
229 | endm |
||
230 | |||
231 | macro sbcn value |
||
232 | sbc a,value |
||
233 | endm |
||
234 | |||
235 | macro adci addr |
||
236 | ld hl,addr |
||
237 | adc a,(hl) |
||
238 | endm |
||
239 | |||
240 | macro sbci addr |
||
241 | ld hl,addr |
||
242 | sbc a,(hl) |
||
243 | endm |
||
244 | |||
245 | macro adcx shift,x |
||
246 | push af |
||
247 | ld hl,shift |
||
248 | add hl,bc |
||
249 | pop af |
||
250 | adc a,(hl) |
||
251 | endm |
||
252 | |||
253 | macro sbcx shift,x |
||
254 | push af |
||
255 | ld hl,shift |
||
256 | add hl,bc |
||
257 | pop af |
||
258 | sbc a,(hl) |
||
259 | endm |
||
260 | |||
261 | macro adcy shift,y |
||
262 | push af |
||
263 | ld hl,shift |
||
264 | add hl,de |
||
265 | pop af |
||
266 | adc a,(hl) |
||
267 | endm |
||
268 | |||
269 | macro sbcy shift,y |
||
270 | push af |
||
271 | ld hl,shift |
||
272 | add hl,de |
||
273 | pop af |
||
274 | sbc a,(hl) |
||
275 | endm |
||
276 | |||
277 | macro cmpn value |
||
278 | cp value |
||
279 | endm |
||
280 | |||
281 | macro cpxn value |
||
282 | ld l,a |
||
283 | ld a,c |
||
284 | cp value |
||
285 | ld a,l |
||
286 | endm |
||
287 | |||
288 | macro cpyn value |
||
289 | ld l,a |
||
290 | ld a,e |
||
291 | cp value |
||
292 | ld a,l |
||
293 | endm |
||
294 | |||
295 | macro cmpi addr |
||
296 | ld hl,addr |
||
297 | cp (hl) |
||
298 | endm |
||
299 | |||
300 | macro cpxi addr |
||
301 | ld hl,(addr) |
||
302 | ld h,a |
||
303 | ld a,c |
||
304 | cp l |
||
305 | ld a,h |
||
306 | endm |
||
307 | |||
308 | macro cpyi addr |
||
309 | ld hl,(addr) |
||
310 | ld h,a |
||
311 | ld a,e |
||
312 | cp l |
||
313 | ld a,h |
||
314 | endm |
||
315 | |||
316 | macro cmpx shift,x |
||
317 | ;push af |
||
318 | ld hl,shift |
||
319 | add hl,bc |
||
320 | ;pop af |
||
321 | cp (hl) |
||
322 | endm |
||
323 | |||
324 | macro cmpy shift,y |
||
325 | ;push af |
||
326 | ld hl,shift |
||
327 | add hl,de |
||
328 | ;pop af |
||
329 | cp (hl) |
||
330 | endm |
||
331 | |||
332 | macro dex |
||
333 | dec c |
||
334 | endm |
||
335 | |||
336 | macro inx |
||
337 | inc c |
||
338 | endm |
||
339 | |||
340 | macro dey |
||
341 | dec e |
||
342 | endm |
||
343 | |||
344 | macro iny |
||
345 | inc e |
||
346 | endm |
||
347 | |||
348 | macro deci addr |
||
349 | ld hl,addr |
||
350 | dec (hl) |
||
351 | endm |
||
352 | |||
353 | macro inci addr |
||
354 | ld hl,addr |
||
355 | inc (hl) |
||
356 | endm |
||
357 | |||
358 | macro incx shift,x |
||
359 | ;push af |
||
360 | ld hl,shift |
||
361 | add hl,bc |
||
362 | ;pop af |
||
363 | inc (hl) |
||
364 | endm |
||
365 | |||
366 | macro decx shift,x |
||
367 | ;push af |
||
368 | ld hl,shift |
||
369 | add hl,bc |
||
370 | ;pop af |
||
371 | dec (hl) |
||
372 | endm |
||
373 | |||
374 | macro incy shift,y |
||
375 | ;push af |
||
376 | ld hl,shift |
||
377 | add hl,de |
||
378 | ;pop af |
||
379 | inc (hl) |
||
380 | endm |
||
381 | |||
382 | macro decy shift,y |
||
383 | ;push af |
||
384 | ld hl,shift |
||
385 | add hl,de |
||
386 | ;pop af |
||
387 | dec (hl) |
||
388 | endm |
||
389 | |||
390 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
391 | |||
392 | macro pha |
||
393 | push af |
||
394 | endm |
||
395 | |||
396 | macro pla |
||
397 | ;pop hl |
||
398 | ;ld a,h ;keep CY |
||
399 | ;inc a |
||
400 | ;dec a ;keep CY, set Z,N |
||
401 | pop af |
||
402 | endm |
||
403 | |||
404 | macro plakeepcy |
||
405 | pop hl |
||
406 | ld a,h ;keep CY |
||
407 | inc a |
||
408 | dec a ;set Z,N |
||
409 | endm |
||
410 | |||
411 | macro plarol ;pla:rol |
||
412 | pop hl |
||
413 | ld a,h ;keep CY |
||
414 | rla |
||
415 | endm |
||
416 | |||
417 | macro txa |
||
418 | ld a,c |
||
419 | ;inc a |
||
420 | ;dec a ;keep CY, set Z,N |
||
421 | endm |
||
422 | |||
423 | macro tya |
||
424 | ld a,e |
||
425 | ;inc a |
||
426 | ;dec a ;keep CY, set Z,N |
||
427 | endm |
||
428 | |||
429 | macro tax |
||
430 | ld c,a |
||
431 | ;inc a |
||
432 | ;dec a ;keep CY, set Z,N |
||
433 | endm |
||
434 | |||
435 | macro tay |
||
436 | ld e,a |
||
437 | ;inc a |
||
438 | ;dec a ;keep CY, set Z,N |
||
439 | endm |
||
440 | |||
441 | macro ldan value |
||
442 | ld a,value |
||
443 | ;inc a |
||
444 | ;dec a ;keep CY, set Z,N |
||
445 | endm |
||
446 | |||
447 | macro ldxn value |
||
448 | ld c,value |
||
449 | ;inc c |
||
450 | ;dec c ;keep CY, set Z,N |
||
451 | endm |
||
452 | |||
453 | macro ldyn value |
||
454 | ld e,value |
||
455 | ;inc e |
||
456 | ;dec e ;keep CY, set Z,N |
||
457 | endm |
||
458 | |||
459 | macro ldyn16 value |
||
460 | ld de,value |
||
461 | endm |
||
462 | |||
463 | macro lda addr |
||
464 | ld a,(addr) |
||
465 | ;inc a |
||
466 | ;dec a ;keep CY, set Z,N |
||
467 | endm |
||
468 | |||
469 | macro ldx addr |
||
470 | ld hl,addr |
||
471 | ld c,(hl) |
||
472 | ;inc c |
||
473 | ;dec c ;keep CY, set Z,N |
||
474 | endm |
||
475 | |||
476 | macro ldy addr |
||
477 | ld hl,addr |
||
478 | ld e,(hl) |
||
479 | ;inc e |
||
480 | ;dec e ;keep CY, set Z,N |
||
481 | endm |
||
482 | |||
483 | macro ldax shift,x ;??? |
||
484 | ;push af |
||
485 | ld hl,shift |
||
486 | add hl,bc |
||
487 | ;pop af |
||
488 | ld a,(hl) |
||
489 | ;inc a |
||
490 | ;dec a ;keep CY, set Z,N |
||
491 | endm |
||
492 | |||
493 | macro ldaxkeepcy shift,x ;??? |
||
494 | push af |
||
495 | ld hl,shift |
||
496 | add hl,bc |
||
497 | pop af |
||
498 | ld a,(hl) |
||
499 | ;inc a |
||
500 | ;dec a ;keep CY, set Z,N |
||
501 | endm |
||
502 | |||
503 | macro lday shift,y ;??? |
||
504 | ;push af |
||
505 | ld hl,shift |
||
506 | add hl,de |
||
507 | ;pop af |
||
508 | ld a,(hl) |
||
509 | ;inc a |
||
510 | ;dec a ;keep CY, set Z,N |
||
511 | endm |
||
512 | |||
513 | macro ldaykeepcy shift,y ;??? |
||
514 | push af |
||
515 | ld hl,shift |
||
516 | add hl,de |
||
517 | pop af |
||
518 | ld a,(hl) |
||
519 | ;inc a |
||
520 | ;dec a ;keep CY, set Z,N |
||
521 | endm |
||
522 | |||
523 | macro ldxy shift,y ;??? |
||
524 | ;push af |
||
525 | ld hl,shift |
||
526 | add hl,de |
||
527 | ;pop af |
||
528 | ld c,(hl) |
||
529 | ;inc c |
||
530 | ;dec c ;keep CY, set Z,N |
||
531 | endm |
||
532 | |||
533 | macro ldyx shift,x ;??? |
||
534 | ;push af |
||
535 | ld hl,shift |
||
536 | add hl,bc |
||
537 | ;pop af |
||
538 | ld e,(hl) |
||
539 | ;inc e |
||
540 | ;dec e ;keep CY, set Z,N |
||
541 | endm |
||
542 | |||
543 | macro ldayindirect addr,y ;??? |
||
544 | ;push af |
||
545 | ld hl,(addr) |
||
546 | add hl,de |
||
547 | ;pop af |
||
548 | ld a,(hl) |
||
549 | ;inc a |
||
550 | ;dec a ;keep CY, set Z,N |
||
551 | endm |
||
552 | |||
553 | macro sta addr |
||
554 | ld (addr),a |
||
555 | endm |
||
556 | |||
557 | macro stx addr |
||
558 | ld hl,addr |
||
559 | ld (hl),c |
||
560 | endm |
||
561 | |||
562 | macro sty addr |
||
563 | ld hl,addr |
||
564 | ld (hl),e |
||
565 | endm |
||
566 | |||
567 | macro stax shift,x ;??? no branches found after stax |
||
568 | ;push af |
||
569 | ld hl,shift |
||
570 | add hl,bc |
||
571 | ;pop af |
||
572 | ld (hl),a |
||
573 | endm |
||
574 | |||
575 | macro stay shift,y ;??? no branches found after stay |
||
576 | ;push af |
||
577 | ld hl,shift |
||
578 | add hl,de |
||
579 | ;pop af |
||
580 | ld (hl),a |
||
581 | endm |
||
582 | |||
583 | macro stxy shift,y ;??? no branches found after stxy |
||
584 | ;push af |
||
585 | ld hl,shift |
||
586 | add hl,de |
||
587 | ;pop af |
||
588 | ld (hl),c |
||
589 | endm |
||
590 | |||
591 | macro styx shift,x ;??? no branches found after styx |
||
592 | ;push af |
||
593 | ld hl,shift |
||
594 | add hl,bc |
||
595 | ;pop af |
||
596 | ld (hl),e |
||
597 | endm |
||
598 | |||
599 | macro stayindirect addr,y ;??? no branches found after stayindirect |
||
600 | ;push af |
||
601 | ld hl,(addr) |
||
602 | add hl,de |
||
603 | ;pop af |
||
604 | ld (hl),a |
||
605 | endm |