Subversion Repositories NedoOS

Rev

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