Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/lynx/c65c02.cpp
2 views
1
#include "system.h"
2
3
#include "c65c02.h"
4
5
void C65C02::Reset()
6
{
7
TRACE_CPU0("Reset()");
8
mRamPointer=mSystem.GetRamPointer();
9
mA=0;
10
mX=0;
11
mY=0;
12
mSP=0xff;
13
mOpcode=0;
14
mOperand=0;
15
mPC=CPU_PEEKW(BOOT_VECTOR);
16
mN=FALSE;
17
mV=FALSE;
18
mB=FALSE;
19
mD=FALSE;
20
mI=TRUE;
21
mZ=TRUE;
22
mC=FALSE;
23
mIRQActive=FALSE;
24
25
mSystem.gSystemNMI=FALSE;
26
mSystem.gSystemIRQ=FALSE;
27
mSystem.gSystemCPUSleep=FALSE;
28
}
29
30
void C65C02::SetRegs(C6502_REGS &regs)
31
{
32
PS(regs.PS);
33
mA=regs.A;
34
mX=regs.X;
35
mY=regs.Y;
36
mSP=regs.SP;
37
mOpcode=regs.Opcode;
38
mOperand=regs.Operand;
39
mPC=regs.PC;
40
mSystem.gSystemCPUSleep=regs.WAIT;
41
mSystem.gSystemNMI=regs.NMI;
42
mSystem.gSystemIRQ=regs.IRQ;
43
}
44
45
void C65C02::GetRegs(C6502_REGS &regs)
46
{
47
regs.PS=PS();
48
regs.A=mA;
49
regs.X=mX;
50
regs.Y=mY;
51
regs.SP=mSP;
52
regs.Opcode=mOpcode;
53
regs.Operand=mOperand;
54
regs.PC=mPC;
55
regs.WAIT=mSystem.gSystemCPUSleep;
56
regs.NMI=mSystem.gSystemNMI;
57
regs.IRQ=mSystem.gSystemIRQ;
58
}
59
60
SYNCFUNC(C65C02)
61
{
62
NSS(mA);
63
NSS(mX);
64
NSS(mY);
65
NSS(mSP);
66
NSS(mOpcode);
67
NSS(mOperand);
68
NSS(mPC);
69
70
NSS(mN);
71
NSS(mV);
72
NSS(mB);
73
NSS(mD);
74
NSS(mI);
75
NSS(mZ);
76
NSS(mC);
77
78
NSS(mIRQActive);
79
80
// don't need to save these:
81
// mRamPointer
82
// mBCDTable
83
}
84
85
86
void C65C02::Update(void)
87
{
88
if(mSystem.gSystemCPUSleep) return;
89
if(mSystem.gSystemIRQ && !mI && !mIRQActive)
90
{
91
// Push processor status
92
PUSH(mPC>>8);
93
PUSH(mPC&0xff);
94
PUSH(PS()&0xef); // Clear B flag on stack
95
96
mI=TRUE; // Stop further interrupts
97
mD=FALSE; // Clear decimal mode
98
99
// Pick up the new PC
100
mPC=CPU_PEEKW(IRQ_VECTOR);
101
}
102
// Fetch opcode
103
mOpcode=CPU_PEEK(mPC);
104
TRACE_CPU2("Update() PC=$%04x, Opcode=%02x",mPC,mOpcode);
105
mPC++;
106
107
// Execute Opcode
108
109
switch(mOpcode)
110
{
111
#define ADDCYC(x) { mSystem.gSystemCycleCount += ((x) * 4); if(mSystem.gSuzieDoneTime) mSystem.gSuzieDoneTime += ((x) * 4); }
112
//
113
// 0x00
114
//
115
case 0x00:
116
ADDCYC(7);
117
// IMPLIED
118
xBRK();
119
break;
120
case 0x01:
121
ADDCYC(6);
122
xINDIRECT_X();
123
xORA();
124
break;
125
case 0x04:
126
ADDCYC(5);
127
xZEROPAGE();
128
xTSB();
129
break;
130
case 0x05:
131
ADDCYC(3);
132
xZEROPAGE();
133
xORA();
134
break;
135
case 0x06:
136
ADDCYC(5);
137
xZEROPAGE();
138
xASL();
139
break;
140
case 0x08:
141
ADDCYC(3);
142
// IMPLIED
143
xPHP();
144
break;
145
case 0x09:
146
ADDCYC(3);
147
xIMMEDIATE();
148
xORA();
149
break;
150
case 0x0A:
151
ADDCYC(2);
152
// IMPLIED
153
xASLA();
154
break;
155
case 0x0C:
156
ADDCYC(6);
157
xABSOLUTE();
158
xTSB();
159
break;
160
case 0x0D:
161
ADDCYC(4);
162
xABSOLUTE();
163
xORA();
164
break;
165
case 0x0E:
166
ADDCYC(6);
167
mSystem.gSystemCycleCount+=(1+(5*CPU_RDWR_CYC));
168
xABSOLUTE();
169
xASL();
170
break;
171
172
//
173
// 0x10
174
//
175
case 0x10:
176
ADDCYC(2);
177
// RELATIVE (IN FUNCTION)
178
xBPL();
179
break;
180
case 0x11:
181
ADDCYC(5);
182
xINDIRECT_Y();
183
xORA();
184
break;
185
case 0x12:
186
ADDCYC(5);
187
xINDIRECT();
188
xORA();
189
break;
190
case 0x14:
191
ADDCYC(5);
192
xZEROPAGE();
193
xTRB();
194
break;
195
case 0x15:
196
ADDCYC(4);
197
xZEROPAGE_X();
198
xORA();
199
break;
200
case 0x16:
201
ADDCYC(6);
202
xZEROPAGE_X();
203
xASL();
204
break;
205
case 0x18:
206
ADDCYC(2);
207
// IMPLIED
208
xCLC();
209
break;
210
case 0x19:
211
ADDCYC(4);
212
xABSOLUTE_Y();
213
xORA();
214
break;
215
case 0x1A:
216
ADDCYC(2);
217
// IMPLIED
218
xINCA();
219
break;
220
case 0x1C:
221
ADDCYC(6);
222
xABSOLUTE();
223
xTRB();
224
break;
225
case 0x1D:
226
ADDCYC(4);
227
xABSOLUTE_X();
228
xORA();
229
break;
230
case 0x1E:
231
ADDCYC(7);
232
xABSOLUTE_X();
233
xASL();
234
break;
235
236
//
237
// 0x20
238
//
239
case 0x20:
240
ADDCYC(6);
241
xABSOLUTE();
242
xJSR();
243
break;
244
case 0x21:
245
ADDCYC(6);
246
xINDIRECT_X();
247
xAND();
248
break;
249
case 0x24:
250
ADDCYC(3);
251
xZEROPAGE();
252
xBIT();
253
break;
254
case 0x25:
255
ADDCYC(3);
256
xZEROPAGE();
257
xAND();
258
break;
259
case 0x26:
260
ADDCYC(5);
261
xZEROPAGE();
262
xROL();
263
break;
264
case 0x28:
265
ADDCYC(4);
266
// IMPLIED
267
xPLP();
268
break;
269
case 0x29:
270
ADDCYC(2);
271
xIMMEDIATE();
272
xAND();
273
break;
274
case 0x2A:
275
ADDCYC(2);
276
// IMPLIED
277
xROLA();
278
break;
279
case 0x2C:
280
ADDCYC(4);
281
xABSOLUTE();
282
xBIT();
283
break;
284
case 0x2D:
285
ADDCYC(4);
286
xABSOLUTE();
287
xAND();
288
break;
289
case 0x2E:
290
ADDCYC(6);
291
xABSOLUTE();
292
xROL();
293
break;
294
//
295
// 0x30
296
//
297
case 0x30:
298
ADDCYC(2);
299
// RELATIVE (IN FUNCTION)
300
xBMI();
301
break;
302
case 0x31:
303
ADDCYC(5);
304
xINDIRECT_Y();
305
xAND();
306
break;
307
case 0x32:
308
ADDCYC(5);
309
xINDIRECT();
310
xAND();
311
break;
312
case 0x34:
313
ADDCYC(4);
314
xZEROPAGE_X();
315
xBIT();
316
break;
317
case 0x35:
318
ADDCYC(4);
319
xZEROPAGE_X();
320
xAND();
321
break;
322
case 0x36:
323
ADDCYC(6);
324
xZEROPAGE_X();
325
xROL();
326
break;
327
case 0x38:
328
ADDCYC(2);
329
// IMPLIED
330
xSEC();
331
break;
332
case 0x39:
333
ADDCYC(4);
334
xABSOLUTE_Y();
335
xAND();
336
break;
337
case 0x3A:
338
ADDCYC(2);
339
// IMPLIED
340
xDECA();
341
break;
342
case 0x3C:
343
ADDCYC(4);
344
xABSOLUTE_X();
345
xBIT();
346
break;
347
case 0x3D:
348
ADDCYC(4);
349
xABSOLUTE_X();
350
xAND();
351
break;
352
case 0x3E:
353
ADDCYC(7);
354
xABSOLUTE_X();
355
xROL();
356
break;
357
//
358
// 0x40
359
//
360
case 0x40:
361
ADDCYC(6);
362
// IMPLIED
363
xRTI();
364
break;
365
case 0x41:
366
ADDCYC(6);
367
xINDIRECT_X();
368
xEOR();
369
break;
370
case 0x45:
371
ADDCYC(3);
372
xZEROPAGE();
373
xEOR();
374
break;
375
case 0x46:
376
ADDCYC(5);
377
xZEROPAGE();
378
xLSR();
379
break;
380
case 0x48:
381
ADDCYC(3);
382
// IMPLIED
383
xPHA();
384
break;
385
case 0x49:
386
ADDCYC(2);
387
xIMMEDIATE();
388
xEOR();
389
break;
390
case 0x4A:
391
ADDCYC(2);
392
// IMPLIED
393
xLSRA();
394
break;
395
case 0x4C:
396
ADDCYC(3);
397
xABSOLUTE();
398
xJMP();
399
break;
400
case 0x4D:
401
ADDCYC(4);
402
xABSOLUTE();
403
xEOR();
404
break;
405
case 0x4E:
406
ADDCYC(6);
407
xABSOLUTE();
408
xLSR();
409
break;
410
411
//
412
// 0x50
413
//
414
case 0x50:
415
ADDCYC(2);
416
// RELATIVE (IN FUNCTION)
417
xBVC();
418
break;
419
case 0x51:
420
ADDCYC(5);
421
xINDIRECT_Y();
422
xEOR();
423
break;
424
case 0x52:
425
ADDCYC(5);
426
xINDIRECT();
427
xEOR();
428
break;
429
case 0x55:
430
ADDCYC(4);
431
xZEROPAGE_X();
432
xEOR();
433
break;
434
case 0x56:
435
ADDCYC(6);
436
xZEROPAGE_X();
437
xLSR();
438
break;
439
case 0x58:
440
ADDCYC(2);
441
// IMPLIED
442
xCLI();
443
break;
444
case 0x59:
445
ADDCYC(4);
446
xABSOLUTE_Y();
447
xEOR();
448
break;
449
case 0x5A:
450
ADDCYC(3);
451
// IMPLIED
452
xPHY();
453
break;
454
case 0x5D:
455
ADDCYC(4);
456
xABSOLUTE_X();
457
xEOR();
458
break;
459
case 0x5E:
460
ADDCYC(7);
461
xABSOLUTE_X();
462
xLSR();
463
break;
464
465
//
466
// 0x60
467
//
468
case 0x60:
469
ADDCYC(6);
470
// IMPLIED
471
xRTS();
472
break;
473
case 0x61:
474
ADDCYC(6);
475
xINDIRECT_X();
476
xADC();
477
break;
478
case 0x64:
479
ADDCYC(3);
480
xZEROPAGE();
481
xSTZ();
482
break;
483
case 0x65:
484
ADDCYC(3);
485
xZEROPAGE();
486
xADC();
487
break;
488
case 0x66:
489
ADDCYC(5);
490
xZEROPAGE();
491
xROR();
492
break;
493
case 0x68:
494
ADDCYC(4);
495
// IMPLIED
496
xPLA();
497
break;
498
case 0x69:
499
ADDCYC(2);
500
xIMMEDIATE();
501
xADC();
502
break;
503
case 0x6A:
504
ADDCYC(2);
505
// IMPLIED
506
xRORA();
507
break;
508
case 0x6C:
509
ADDCYC(6);
510
xINDIRECT_ABSOLUTE();
511
xJMP();
512
break;
513
case 0x6D:
514
ADDCYC(4);
515
xABSOLUTE();
516
xADC();
517
break;
518
case 0x6E:
519
ADDCYC(6);
520
xABSOLUTE();
521
xROR();
522
break;
523
//
524
// 0x70
525
//
526
case 0x70:
527
ADDCYC(2);
528
// RELATIVE (IN FUNCTION)
529
xBVS();
530
break;
531
case 0x71:
532
ADDCYC(5);
533
xINDIRECT_Y();
534
xADC();
535
break;
536
case 0x72:
537
ADDCYC(5);
538
xINDIRECT();
539
xADC();
540
break;
541
case 0x74:
542
ADDCYC(4);
543
xZEROPAGE_X();
544
xSTZ();
545
break;
546
case 0x75:
547
ADDCYC(4);
548
xZEROPAGE_X();
549
xADC();
550
break;
551
case 0x76:
552
ADDCYC(6);
553
xZEROPAGE_X();
554
xROR();
555
break;
556
case 0x78:
557
ADDCYC(2);
558
// IMPLIED
559
xSEI();
560
break;
561
case 0x79:
562
mSystem.gSystemCycleCount+=(1+(3*CPU_RDWR_CYC));
563
xABSOLUTE_Y();
564
xADC();
565
break;
566
case 0x7A:
567
ADDCYC(4);
568
// IMPLIED
569
xPLY();
570
break;
571
case 0x7C:
572
ADDCYC(6);
573
xINDIRECT_ABSOLUTE_X();
574
xJMP();
575
break;
576
case 0x7D:
577
ADDCYC(4);
578
xABSOLUTE_X();
579
xADC();
580
break;
581
case 0x7E:
582
ADDCYC(7);
583
xABSOLUTE_X();
584
xROR();
585
break;
586
//
587
// 0x80
588
//
589
case 0x80:
590
ADDCYC(3);
591
// RELATIVE (IN FUNCTION)
592
xBRA();
593
break;
594
case 0x81:
595
ADDCYC(6);
596
xINDIRECT_X();
597
xSTA();
598
break;
599
case 0x84:
600
ADDCYC(3);
601
xZEROPAGE();
602
xSTY();
603
break;
604
case 0x85:
605
ADDCYC(3);
606
xZEROPAGE();
607
xSTA();
608
break;
609
case 0x86:
610
ADDCYC(3);
611
xZEROPAGE();
612
xSTX();
613
break;
614
case 0x88:
615
ADDCYC(2);
616
// IMPLIED
617
xDEY();
618
break;
619
case 0x89:
620
ADDCYC(3);
621
xIMMEDIATE();
622
xBIT();
623
break;
624
case 0x8A:
625
ADDCYC(2);
626
// IMPLIED
627
xTXA();
628
break;
629
case 0x8C:
630
ADDCYC(4);
631
xABSOLUTE();
632
xSTY();
633
break;
634
case 0x8D:
635
ADDCYC(4);
636
xABSOLUTE();
637
xSTA();
638
break;
639
case 0x8E:
640
ADDCYC(4);
641
xABSOLUTE();
642
xSTX();
643
break;
644
645
//
646
// 0x90
647
//
648
case 0x90:
649
ADDCYC(2);
650
// RELATIVE (IN FUNCTION)
651
xBCC();
652
break;
653
case 0x91:
654
ADDCYC(6);
655
xINDIRECT_Y();
656
xSTA();
657
break;
658
case 0x92:
659
ADDCYC(5);
660
xINDIRECT();
661
xSTA();
662
break;
663
case 0x94:
664
ADDCYC(4);
665
xZEROPAGE_X();
666
xSTY();
667
break;
668
case 0x95:
669
ADDCYC(4);
670
xZEROPAGE_X();
671
xSTA();
672
break;
673
case 0x96:
674
ADDCYC(4);
675
xZEROPAGE_Y();
676
xSTX();
677
break;
678
case 0x98:
679
ADDCYC(2);
680
// IMPLIED
681
xTYA();
682
break;
683
case 0x99:
684
ADDCYC(5);
685
xABSOLUTE_Y();
686
xSTA();
687
break;
688
case 0x9A:
689
ADDCYC(2);
690
// IMPLIED
691
xTXS();
692
break;
693
case 0x9C:
694
ADDCYC(4);
695
xABSOLUTE();
696
xSTZ();
697
break;
698
case 0x9D:
699
ADDCYC(5);
700
xABSOLUTE_X();
701
xSTA();
702
break;
703
case 0x9E:
704
ADDCYC(5);
705
xABSOLUTE_X();
706
xSTZ();
707
break;
708
709
//
710
// 0xA0
711
//
712
case 0xA0:
713
ADDCYC(2);
714
xIMMEDIATE();
715
xLDY();
716
break;
717
case 0xA1:
718
ADDCYC(6);
719
xINDIRECT_X();
720
xLDA();
721
break;
722
case 0xA2:
723
ADDCYC(2);
724
xIMMEDIATE();
725
xLDX();
726
break;
727
case 0xA4:
728
ADDCYC(3);
729
xZEROPAGE();
730
xLDY();
731
break;
732
case 0xA5:
733
ADDCYC(3);
734
xZEROPAGE();
735
xLDA();
736
break;
737
case 0xA6:
738
ADDCYC(3);
739
xZEROPAGE();
740
xLDX();
741
break;
742
case 0xA8:
743
ADDCYC(2);
744
// IMPLIED
745
xTAY();
746
break;
747
case 0xA9:
748
ADDCYC(2);
749
xIMMEDIATE();
750
xLDA();
751
break;
752
case 0xAA:
753
ADDCYC(2);
754
// IMPLIED
755
xTAX();
756
break;
757
case 0xAC:
758
ADDCYC(4);
759
xABSOLUTE();
760
xLDY();
761
break;
762
case 0xAD:
763
ADDCYC(4);
764
xABSOLUTE();
765
xLDA();
766
break;
767
case 0xAE:
768
ADDCYC(4);
769
xABSOLUTE();
770
xLDX();
771
break;
772
773
//
774
// 0xB0
775
//
776
case 0xB0:
777
ADDCYC(2);
778
// RELATIVE (IN FUNCTION)
779
xBCS();
780
break;
781
case 0xB1:
782
ADDCYC(5);
783
xINDIRECT_Y();
784
xLDA();
785
break;
786
case 0xB2:
787
ADDCYC(5);
788
xINDIRECT();
789
xLDA();
790
break;
791
case 0xB4:
792
ADDCYC(4);
793
xZEROPAGE_X();
794
xLDY();
795
break;
796
case 0xB5:
797
ADDCYC(4);
798
xZEROPAGE_X();
799
xLDA();
800
break;
801
case 0xB6:
802
ADDCYC(4);
803
xZEROPAGE_Y();
804
xLDX();
805
break;
806
case 0xB8:
807
ADDCYC(2);
808
// IMPLIED
809
xCLV();
810
break;
811
case 0xB9:
812
ADDCYC(4);
813
xABSOLUTE_Y();
814
xLDA();
815
break;
816
case 0xBA:
817
ADDCYC(2);
818
// IMPLIED
819
xTSX();
820
break;
821
case 0xBC:
822
ADDCYC(4);
823
xABSOLUTE_X();
824
xLDY();
825
break;
826
case 0xBD:
827
ADDCYC(4);
828
xABSOLUTE_X();
829
xLDA();
830
break;
831
case 0xBE:
832
ADDCYC(4);
833
xABSOLUTE_Y();
834
xLDX();
835
break;
836
837
//
838
// 0xC0
839
//
840
case 0xC0:
841
ADDCYC(2);
842
xIMMEDIATE();
843
xCPY();
844
break;
845
case 0xC1:
846
ADDCYC(6);
847
xINDIRECT_X();
848
xCMP();
849
break;
850
case 0xC4:
851
ADDCYC(3);
852
xZEROPAGE();
853
xCPY();
854
break;
855
case 0xC5:
856
ADDCYC(3);
857
xZEROPAGE();
858
xCMP();
859
break;
860
case 0xC6:
861
ADDCYC(5);
862
xZEROPAGE();
863
xDEC();
864
break;
865
case 0xC8:
866
ADDCYC(2);
867
// IMPLIED
868
xINY();
869
break;
870
case 0xC9:
871
ADDCYC(2);
872
xIMMEDIATE();
873
xCMP();
874
break;
875
case 0xCA:
876
ADDCYC(2);
877
// IMPLIED
878
xDEX();
879
break;
880
case 0xCB:
881
ADDCYC(2);
882
// IMPLIED
883
xWAI();
884
break;
885
case 0xCC:
886
ADDCYC(4);
887
xABSOLUTE();
888
xCPY();
889
break;
890
case 0xCD:
891
ADDCYC(4);
892
xABSOLUTE();
893
xCMP();
894
break;
895
case 0xCE:
896
ADDCYC(6);
897
xABSOLUTE();
898
xDEC();
899
break;
900
//
901
// 0xD0
902
//
903
case 0xD0:
904
ADDCYC(2);
905
// RELATIVE (IN FUNCTION)
906
xBNE();
907
break;
908
case 0xD1:
909
ADDCYC(5);
910
xINDIRECT_Y();
911
xCMP();
912
break;
913
case 0xD2:
914
ADDCYC(5);
915
xINDIRECT();
916
xCMP();
917
break;
918
case 0xD5:
919
ADDCYC(4);
920
xZEROPAGE_X();
921
xCMP();
922
break;
923
case 0xD6:
924
ADDCYC(6);
925
xZEROPAGE_X();
926
xDEC();
927
break;
928
case 0xD8:
929
ADDCYC(2);
930
// IMPLIED
931
xCLD();
932
break;
933
case 0xD9:
934
ADDCYC(4);
935
xABSOLUTE_Y();
936
xCMP();
937
break;
938
case 0xDA:
939
ADDCYC(3);
940
// IMPLIED
941
xPHX();
942
break;
943
case 0xDB:
944
ADDCYC(2);
945
// IMPLIED
946
xSTP();
947
break;
948
case 0xDD:
949
ADDCYC(4);
950
xABSOLUTE_X();
951
xCMP();
952
break;
953
case 0xDE:
954
ADDCYC(7);
955
xABSOLUTE_X();
956
xDEC();
957
break;
958
//
959
// 0xE0
960
//
961
case 0xE0:
962
ADDCYC(2);
963
xIMMEDIATE();
964
xCPX();
965
break;
966
case 0xE1:
967
ADDCYC(6);
968
xINDIRECT_X();
969
xSBC();
970
break;
971
case 0xE4:
972
ADDCYC(3);
973
xZEROPAGE();
974
xCPX();
975
break;
976
case 0xE5:
977
ADDCYC(3);
978
xZEROPAGE();
979
xSBC();
980
break;
981
case 0xE6:
982
ADDCYC(5);
983
xZEROPAGE();
984
xINC();
985
break;
986
case 0xE8:
987
ADDCYC(2);
988
// IMPLIED
989
xINX();
990
break;
991
case 0xE9:
992
ADDCYC(2);
993
xIMMEDIATE();
994
xSBC();
995
break;
996
default:
997
case 0xEA:
998
ADDCYC(2);
999
// IMPLIED
1000
xNOP();
1001
break;
1002
case 0xEC:
1003
ADDCYC(4);
1004
xABSOLUTE();
1005
xCPX();
1006
break;
1007
case 0xED:
1008
ADDCYC(4);
1009
xABSOLUTE();
1010
xSBC();
1011
break;
1012
case 0xEE:
1013
ADDCYC(6);
1014
xABSOLUTE();
1015
xINC();
1016
break;
1017
//
1018
// 0xF0
1019
//
1020
case 0xF0:
1021
ADDCYC(2);
1022
// RELATIVE (IN FUNCTION)
1023
xBEQ();
1024
break;
1025
case 0xF1:
1026
ADDCYC(5);
1027
xINDIRECT_Y();
1028
xSBC();
1029
break;
1030
case 0xF2:
1031
ADDCYC(5);
1032
xINDIRECT();
1033
xSBC();
1034
break;
1035
case 0xF5:
1036
ADDCYC(4);
1037
xZEROPAGE_X();
1038
xSBC();
1039
break;
1040
case 0xF6:
1041
ADDCYC(6);
1042
xZEROPAGE_X();
1043
xINC();
1044
break;
1045
case 0xF8:
1046
ADDCYC(2);
1047
// IMPLIED
1048
xSED();
1049
break;
1050
case 0xF9:
1051
ADDCYC(4);
1052
xABSOLUTE_Y();
1053
xSBC();
1054
break;
1055
case 0xFA:
1056
ADDCYC(4);
1057
// IMPLIED
1058
xPLX();
1059
break;
1060
case 0xFD:
1061
ADDCYC(4);
1062
xABSOLUTE_X();
1063
xSBC();
1064
break;
1065
case 0xFE:
1066
ADDCYC(7);
1067
xABSOLUTE_X();
1068
xINC();
1069
break;
1070
}
1071
}
1072
1073