diff options
author | Jaedyn Draper | 2012-12-27 23:19:47 -0800 |
---|---|---|
committer | Jaedyn Draper | 2012-12-27 23:19:47 -0800 |
commit | 3fff289e60df73b25c483807f5cf73c011804117 (patch) | |
tree | d8a44c6256c2a7652b028525054e0e55d756ff15 /source/spc700.cpp | |
parent | 74211924afc184870627c90ce522c4c5743761db (diff) | |
parent | c01a2a42168695233ecc69c4a60ed918e7701fb9 (diff) | |
download | snes9x2005-3fff289e60df73b25c483807f5cf73c011804117.tar.gz snes9x2005-3fff289e60df73b25c483807f5cf73c011804117.tar.bz2 snes9x2005-3fff289e60df73b25c483807f5cf73c011804117.zip |
Merge pull request #26 from Nebuleon/master
Merge to CATSFC 1.10+
Diffstat (limited to 'source/spc700.cpp')
-rw-r--r-- | source/spc700.cpp | 747 |
1 files changed, 368 insertions, 379 deletions
diff --git a/source/spc700.cpp b/source/spc700.cpp index fe13ae8..69ed120 100644 --- a/source/spc700.cpp +++ b/source/spc700.cpp @@ -107,19 +107,6 @@ void S9xAPUSetByte (uint8, uint32 address); #include "apumem.h" #endif -START_EXTERN_C -extern uint8 Work8; -extern uint16 Work16; -extern uint32 Work32; -extern signed char Int8; -extern short Int16; -extern long Int32; -extern short Int16; -extern uint8 W1; -extern uint8 W2; - -END_EXTERN_C - #define OP1 (*(IAPU.PC + 1)) #define OP2 (*(IAPU.PC + 2)) @@ -179,7 +166,7 @@ void STOP (char *s) // XXX: HalfCarry - BJ fixed? #define SBC(a,b)\ -Int16 = (short) (a) - (short) (b) + (short) (APUCheckCarry ()) - 1;\ +int16 Int16 = (short) (a) - (short) (b) + (short) (APUCheckCarry ()) - 1;\ IAPU._Carry = Int16 >= 0;\ if ((((a) ^ (b)) & 0x80) && (((a) ^ (uint8) Int16) & 0x80))\ APUSetOverflow ();\ @@ -192,21 +179,22 @@ if(((a) ^ (b) ^ (uint8) Int16) & 0x10)\ APUSetZN8 ((uint8) Int16); // XXX: HalfCarry - BJ fixed? +// XXX: HalfCarry used Int16 before; trying to fix it with Work16 [Neb] #define ADC(a,b)\ -Work16 = (a) + (b) + APUCheckCarry();\ +uint16 Work16 = (a) + (b) + APUCheckCarry();\ IAPU._Carry = Work16 >= 0x100; \ if (~((a) ^ (b)) & ((b) ^ (uint8) Work16) & 0x80)\ APUSetOverflow ();\ else \ APUClearOverflow (); \ APUClearHalfCarry ();\ -if(((a) ^ (b) ^ (uint8) Int16) & 0x10)\ +if(((a) ^ (b) ^ (uint8) Work16) & 0x10)\ APUSetHalfCarry ();\ (a) = (uint8) Work16;\ APUSetZN8 ((uint8) Work16); #define CMP(a,b)\ -Int16 = (short) (a) - (short) (b);\ +int16 Int16 = (short) (a) - (short) (b);\ IAPU._Carry = Int16 >= 0;\ APUSetZN8 ((uint8) Int16); @@ -219,62 +207,62 @@ APUSetZN8 ((uint8) Int16); (b) >>= 1;\ APUSetZN8 (b); #define ROL(b)\ - Work16 = ((b) << 1) | APUCheckCarry (); \ + uint16 Work16 = ((b) << 1) | APUCheckCarry (); \ IAPU._Carry = Work16 >= 0x100; \ (b) = (uint8) Work16; \ APUSetZN8 (b); #define ROR(b)\ - Work16 = (b) | ((uint16) APUCheckCarry () << 8); \ + uint16 Work16 = (b) | ((uint16) APUCheckCarry () << 8); \ IAPU._Carry = (uint8) Work16 & 1; \ Work16 >>= 1; \ (b) = (uint8) Work16; \ APUSetZN8 (b); #define Push(b)\ - *(IAPU.RAM + 0x100 + APURegisters.S) = b;\ - APURegisters.S--; + *(IAPU.RAM + 0x100 + IAPU.Registers.S) = b;\ + IAPU.Registers.S--; #define Pop(b)\ - APURegisters.S++;\ - (b) = *(IAPU.RAM + 0x100 + APURegisters.S); + IAPU.Registers.S++;\ + (b) = *(IAPU.RAM + 0x100 + IAPU.Registers.S); #ifdef FAST_LSB_WORD_ACCESS #define PushW(w)\ - *(uint16 *) (IAPU.RAM + 0xff + APURegisters.S) = w;\ - APURegisters.S -= 2; + *(uint16 *) (IAPU.RAM + 0xff + IAPU.Registers.S) = w;\ + IAPU.Registers.S -= 2; #define PopW(w)\ - APURegisters.S += 2;\ - w = *(uint16 *) (IAPU.RAM + 0xff + APURegisters.S); + IAPU.Registers.S += 2;\ + w = *(uint16 *) (IAPU.RAM + 0xff + IAPU.Registers.S); #else #define PushW(w)\ - *(IAPU.RAM + 0xff + APURegisters.S) = w;\ - *(IAPU.RAM + 0x100 + APURegisters.S) = (w >> 8);\ - APURegisters.S -= 2; + *(IAPU.RAM + 0xff + IAPU.Registers.S) = w;\ + *(IAPU.RAM + 0x100 + IAPU.Registers.S) = (w >> 8);\ + IAPU.Registers.S -= 2; #define PopW(w)\ - APURegisters.S += 2; \ - (w) = *(IAPU.RAM + 0xff + APURegisters.S) + (*(IAPU.RAM + 0x100 + APURegisters.S) << 8); + IAPU.Registers.S += 2; \ + (w) = *(IAPU.RAM + 0xff + IAPU.Registers.S) + (*(IAPU.RAM + 0x100 + IAPU.Registers.S) << 8); #endif #define Relative()\ - Int8 = OP1;\ - Int16 = (int) (IAPU.PC + 2 - IAPU.RAM) + Int8; + int8 Int8 = OP1;\ + int16 Int16 = (int) (IAPU.PC + 2 - IAPU.RAM) + Int8; #define Relative2()\ - Int8 = OP2;\ - Int16 = (int) (IAPU.PC + 3 - IAPU.RAM) + Int8; + int8 Int8 = OP2;\ + int16 Int16 = (int) (IAPU.PC + 3 - IAPU.RAM) + Int8; #ifdef FAST_LSB_WORD_ACCESS #define IndexedXIndirect()\ - IAPU.Address = *(uint16 *) (IAPU.DirectPage + ((OP1 + APURegisters.X) & 0xff)); + IAPU.Address = *(uint16 *) (IAPU.DirectPage + ((OP1 + IAPU.Registers.X) & 0xff)); #define Absolute()\ IAPU.Address = *(uint16 *) (IAPU.PC + 1); #define AbsoluteX()\ - IAPU.Address = *(uint16 *) (IAPU.PC + 1) + APURegisters.X; + IAPU.Address = *(uint16 *) (IAPU.PC + 1) + IAPU.Registers.X; #define AbsoluteY()\ - IAPU.Address = *(uint16 *) (IAPU.PC + 1) + APURegisters.YA.B.Y; + IAPU.Address = *(uint16 *) (IAPU.PC + 1) + IAPU.Registers.YA.B.Y; #define MemBit()\ IAPU.Address = *(uint16 *) (IAPU.PC + 1);\ @@ -282,19 +270,19 @@ APUSetZN8 ((uint8) Int16); IAPU.Address &= 0x1fff; #define IndirectIndexedY()\ - IAPU.Address = *(uint16 *) (IAPU.DirectPage + OP1) + APURegisters.YA.B.Y; + IAPU.Address = *(uint16 *) (IAPU.DirectPage + OP1) + IAPU.Registers.YA.B.Y; #else #define IndexedXIndirect()\ - IAPU.Address = *(IAPU.DirectPage + ((OP1 + APURegisters.X) & 0xff)) + \ - (*(IAPU.DirectPage + ((OP1 + APURegisters.X + 1) & 0xff)) << 8); + IAPU.Address = *(IAPU.DirectPage + ((OP1 + IAPU.Registers.X) & 0xff)) + \ + (*(IAPU.DirectPage + ((OP1 + IAPU.Registers.X + 1) & 0xff)) << 8); #define Absolute()\ IAPU.Address = OP1 + (OP2 << 8); #define AbsoluteX()\ - IAPU.Address = OP1 + (OP2 << 8) + APURegisters.X; + IAPU.Address = OP1 + (OP2 << 8) + IAPU.Registers.X; #define AbsoluteY()\ - IAPU.Address = OP1 + (OP2 << 8) + APURegisters.YA.B.Y; + IAPU.Address = OP1 + (OP2 << 8) + IAPU.Registers.YA.B.Y; #define MemBit()\ IAPU.Address = OP1 + (OP2 << 8);\ @@ -304,7 +292,7 @@ APUSetZN8 ((uint8) Int16); #define IndirectIndexedY()\ IAPU.Address = *(IAPU.DirectPage + OP1) + \ (*(IAPU.DirectPage + OP1 + 1) << 8) + \ - APURegisters.YA.B.Y; + IAPU.Registers.YA.B.Y; #endif void Apu00 () @@ -355,7 +343,7 @@ void Apu3F () // CALL absolute void Apu4F () // PCALL $XX { - Work8 = OP1; + uint8 Work8 = OP1; PushW (IAPU.PC + 2 - IAPU.RAM); IAPU.PC = IAPU.RAM + 0xff00 + Work8; } @@ -449,7 +437,7 @@ void ApuF2 () } #define BBS(b) \ -Work8 = OP1; \ +uint8 Work8 = OP1; \ Relative2 (); \ if (S9xAPUGetByteZ (Work8) & (1 << (b))) \ { \ @@ -500,7 +488,7 @@ void ApuE3 () } #define BBC(b) \ -Work8 = OP1; \ +uint8 Work8 = OP1; \ Relative2 (); \ if (!(S9xAPUGetByteZ (Work8) & (1 << (b)))) \ { \ @@ -553,8 +541,8 @@ void ApuF3 () void Apu04 () { // OR A,dp - APURegisters.YA.B.A |= S9xAPUGetByteZ (OP1); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A |= S9xAPUGetByteZ (OP1); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } @@ -562,16 +550,16 @@ void Apu05 () { // OR A,abs Absolute (); - APURegisters.YA.B.A |= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A |= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 3; } void Apu06 () { // OR A,(X) - APURegisters.YA.B.A |= S9xAPUGetByteZ (APURegisters.X); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A |= S9xAPUGetByteZ (IAPU.Registers.X); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC++; } @@ -579,23 +567,23 @@ void Apu07 () { // OR A,(dp+X) IndexedXIndirect (); - APURegisters.YA.B.A |= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A |= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } void Apu08 () { // OR A,#00 - APURegisters.YA.B.A |= OP1; - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A |= OP1; + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } void Apu09 () { // OR dp(dest),dp(src) - Work8 = S9xAPUGetByteZ (OP1); + uint8 Work8 = S9xAPUGetByteZ (OP1); Work8 |= S9xAPUGetByteZ (OP2); S9xAPUSetByteZ (Work8, OP2); APUSetZN8 (Work8); @@ -605,8 +593,8 @@ void Apu09 () void Apu14 () { // OR A,dp+X - APURegisters.YA.B.A |= S9xAPUGetByteZ (OP1 + APURegisters.X); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A |= S9xAPUGetByteZ (OP1 + IAPU.Registers.X); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } @@ -614,8 +602,8 @@ void Apu15 () { // OR A,abs+X AbsoluteX (); - APURegisters.YA.B.A |= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A |= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 3; } @@ -623,8 +611,8 @@ void Apu16 () { // OR A,abs+Y AbsoluteY (); - APURegisters.YA.B.A |= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A |= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 3; } @@ -632,15 +620,15 @@ void Apu17 () { // OR A,(dp)+Y IndirectIndexedY (); - APURegisters.YA.B.A |= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A |= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } void Apu18 () { // OR dp,#00 - Work8 = OP1; + uint8 Work8 = OP1; Work8 |= S9xAPUGetByteZ (OP2); S9xAPUSetByteZ (Work8, OP2); APUSetZN8 (Work8); @@ -650,9 +638,9 @@ void Apu18 () void Apu19 () { // OR (X),(Y) - Work8 = S9xAPUGetByteZ (APURegisters.X) | S9xAPUGetByteZ (APURegisters.YA.B.Y); + uint8 Work8 = S9xAPUGetByteZ (IAPU.Registers.X) | S9xAPUGetByteZ (IAPU.Registers.YA.B.Y); APUSetZN8 (Work8); - S9xAPUSetByteZ (Work8, APURegisters.X); + S9xAPUSetByteZ (Work8, IAPU.Registers.X); IAPU.PC++; } @@ -758,7 +746,7 @@ void ApuEA () void Apu0B () { // ASL dp - Work8 = S9xAPUGetByteZ (OP1); + uint8 Work8 = S9xAPUGetByteZ (OP1); ASL (Work8); S9xAPUSetByteZ (Work8, OP1); IAPU.PC += 2; @@ -768,7 +756,7 @@ void Apu0C () { // ASL abs Absolute (); - Work8 = S9xAPUGetByte (IAPU.Address); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); ASL (Work8); S9xAPUSetByte (Work8, IAPU.Address); IAPU.PC += 3; @@ -777,16 +765,16 @@ void Apu0C () void Apu1B () { // ASL dp+X - Work8 = S9xAPUGetByteZ (OP1 + APURegisters.X); + uint8 Work8 = S9xAPUGetByteZ (OP1 + IAPU.Registers.X); ASL (Work8); - S9xAPUSetByteZ (Work8, OP1 + APURegisters.X); + S9xAPUSetByteZ (Work8, OP1 + IAPU.Registers.X); IAPU.PC += 2; } void Apu1C () { // ASL A - ASL (APURegisters.YA.B.A); + ASL (IAPU.Registers.YA.B.A); IAPU.PC++; } @@ -794,35 +782,35 @@ void Apu0D () { // PUSH PSW S9xAPUPackStatus (); - Push (APURegisters.P); + Push (IAPU.Registers.P); IAPU.PC++; } void Apu2D () { // PUSH A - Push (APURegisters.YA.B.A); + Push (IAPU.Registers.YA.B.A); IAPU.PC++; } void Apu4D () { // PUSH X - Push (APURegisters.X); + Push (IAPU.Registers.X); IAPU.PC++; } void Apu6D () { // PUSH Y - Push (APURegisters.YA.B.Y); + Push (IAPU.Registers.YA.B.Y); IAPU.PC++; } void Apu8E () { // POP PSW - Pop (APURegisters.P); + Pop (IAPU.Registers.P); S9xAPUUnpackStatus (); if (APUCheckDirectPage ()) IAPU.DirectPage = IAPU.RAM + 0x100; @@ -834,21 +822,21 @@ void Apu8E () void ApuAE () { // POP A - Pop (APURegisters.YA.B.A); + Pop (IAPU.Registers.YA.B.A); IAPU.PC++; } void ApuCE () { // POP X - Pop (APURegisters.X); + Pop (IAPU.Registers.X); IAPU.PC++; } void ApuEE () { // POP Y - Pop (APURegisters.YA.B.Y); + Pop (IAPU.Registers.YA.B.Y); IAPU.PC++; } @@ -856,9 +844,9 @@ void Apu0E () { // TSET1 abs Absolute (); - Work8 = S9xAPUGetByte (IAPU.Address); - S9xAPUSetByte (Work8 | APURegisters.YA.B.A, IAPU.Address); - Work8 &= APURegisters.YA.B.A; + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + S9xAPUSetByte (Work8 | IAPU.Registers.YA.B.A, IAPU.Address); + Work8 &= IAPU.Registers.YA.B.A; APUSetZN8 (Work8); IAPU.PC += 3; } @@ -867,9 +855,9 @@ void Apu4E () { // TCLR1 abs Absolute (); - Work8 = S9xAPUGetByte (IAPU.Address); - S9xAPUSetByte (Work8 & ~APURegisters.YA.B.A, IAPU.Address); - Work8 &= APURegisters.YA.B.A; + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + S9xAPUSetByte (Work8 & ~IAPU.Registers.YA.B.A, IAPU.Address); + Work8 &= IAPU.Registers.YA.B.A; APUSetZN8 (Work8); IAPU.PC += 3; } @@ -883,7 +871,7 @@ void Apu0F () #else PushW (IAPU.PC + 1 - IAPU.RAM); S9xAPUPackStatus (); - Push (APURegisters.P); + Push (IAPU.Registers.P); APUSetBreak (); APUClearInterrupt (); // XXX:Where is the BRK vector ??? @@ -1050,7 +1038,7 @@ void Apu40 () void Apu1A () { // DECW dp - Work16 = S9xAPUGetByteZ (OP1) + (S9xAPUGetByteZ (OP1 + 1) << 8); + uint16 Work16 = S9xAPUGetByteZ (OP1) + (S9xAPUGetByteZ (OP1 + 1) << 8); Work16--; S9xAPUSetByteZ ((uint8) Work16, OP1); S9xAPUSetByteZ (Work16 >> 8, OP1 + 1); @@ -1061,8 +1049,8 @@ void Apu1A () void Apu5A () { // CMPW YA,dp - Work16 = S9xAPUGetByteZ (OP1) + (S9xAPUGetByteZ (OP1 + 1) << 8); - Int32 = (long) APURegisters.YA.W - (long) Work16; + uint16 Work16 = S9xAPUGetByteZ (OP1) + (S9xAPUGetByteZ (OP1 + 1) << 8); + int32 Int32 = (long) IAPU.Registers.YA.W - (long) Work16; IAPU._Carry = Int32 >= 0; APUSetZN16 ((uint16) Int32); IAPU.PC += 2; @@ -1071,7 +1059,7 @@ void Apu5A () void Apu3A () { // INCW dp - Work16 = S9xAPUGetByteZ (OP1) + (S9xAPUGetByteZ (OP1 + 1) << 8); + uint16 Work16 = S9xAPUGetByteZ (OP1) + (S9xAPUGetByteZ (OP1 + 1) << 8); Work16++; S9xAPUSetByteZ ((uint8) Work16, OP1); S9xAPUSetByteZ (Work16 >> 8, OP1 + 1); @@ -1083,68 +1071,69 @@ void Apu3A () void Apu7A () { // ADDW YA,dp - Work16 = S9xAPUGetByteZ (OP1) + (S9xAPUGetByteZ (OP1 + 1) << 8); - Work32 = (uint32) APURegisters.YA.W + Work16; + uint16 Work16 = S9xAPUGetByteZ (OP1) + (S9xAPUGetByteZ (OP1 + 1) << 8); + uint32 Work32 = (uint32) IAPU.Registers.YA.W + Work16; IAPU._Carry = Work32 >= 0x10000; - if (~(APURegisters.YA.W ^ Work16) & (Work16 ^ (uint16) Work32) & 0x8000) + if (~(IAPU.Registers.YA.W ^ Work16) & (Work16 ^ (uint16) Work32) & 0x8000) APUSetOverflow (); else APUClearOverflow (); APUClearHalfCarry (); - if((APURegisters.YA.W ^ Work16 ^ (uint16) Work32) & 0x10) + if((IAPU.Registers.YA.W ^ Work16 ^ (uint16) Work32) & 0x10) APUSetHalfCarry (); - APURegisters.YA.W = (uint16) Work32; - APUSetZN16 (APURegisters.YA.W); + IAPU.Registers.YA.W = (uint16) Work32; + APUSetZN16 (IAPU.Registers.YA.W); IAPU.PC += 2; } // XXX: BJ: i think the old HalfCarry behavior was wrong... // XXX: Or is it between bits 7 and 8 for ADDW/SUBW? +// XXX: Used Work32 instead of Int32 before. Fixed? [Neb] void Apu9A () { // SUBW YA,dp - Work16 = S9xAPUGetByteZ (OP1) + (S9xAPUGetByteZ (OP1 + 1) << 8); - Int32 = (long) APURegisters.YA.W - (long) Work16; + uint16 Work16 = S9xAPUGetByteZ (OP1) + (S9xAPUGetByteZ (OP1 + 1) << 8); + int32 Int32 = (long) IAPU.Registers.YA.W - (long) Work16; APUClearHalfCarry (); IAPU._Carry = Int32 >= 0; - if (((APURegisters.YA.W ^ Work16) & 0x8000) && - ((APURegisters.YA.W ^ (uint16) Int32) & 0x8000)) + if (((IAPU.Registers.YA.W ^ Work16) & 0x8000) && + ((IAPU.Registers.YA.W ^ (uint16) Int32) & 0x8000)) APUSetOverflow (); else APUClearOverflow (); - if (((APURegisters.YA.W ^ Work16) & 0x0080) && - ((APURegisters.YA.W ^ (uint16) Int32) & 0x0080)) + if (((IAPU.Registers.YA.W ^ Work16) & 0x0080) && + ((IAPU.Registers.YA.W ^ (uint16) Int32) & 0x0080)) APUSetHalfCarry (); APUSetHalfCarry (); - if((APURegisters.YA.W ^ Work16 ^ (uint16) Work32) & 0x10) + if((IAPU.Registers.YA.W ^ Work16 ^ (uint16) Int32) & 0x10) APUClearHalfCarry (); - APURegisters.YA.W = (uint16) Int32; - APUSetZN16 (APURegisters.YA.W); + IAPU.Registers.YA.W = (uint16) Int32; + APUSetZN16 (IAPU.Registers.YA.W); IAPU.PC += 2; } void ApuBA () { // MOVW YA,dp - APURegisters.YA.B.A = S9xAPUGetByteZ (OP1); - APURegisters.YA.B.Y = S9xAPUGetByteZ (OP1 + 1); - APUSetZN16 (APURegisters.YA.W); + IAPU.Registers.YA.B.A = S9xAPUGetByteZ (OP1); + IAPU.Registers.YA.B.Y = S9xAPUGetByteZ (OP1 + 1); + APUSetZN16 (IAPU.Registers.YA.W); IAPU.PC += 2; } void ApuDA () { // MOVW dp,YA - S9xAPUSetByteZ (APURegisters.YA.B.A, OP1); - S9xAPUSetByteZ (APURegisters.YA.B.Y, OP1 + 1); + S9xAPUSetByteZ (IAPU.Registers.YA.B.A, OP1); + S9xAPUSetByteZ (IAPU.Registers.YA.B.Y, OP1 + 1); IAPU.PC += 2; } void Apu64 () { // CMP A,dp - Work8 = S9xAPUGetByteZ (OP1); - CMP (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByteZ (OP1); + CMP (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } @@ -1152,16 +1141,16 @@ void Apu65 () { // CMP A,abs Absolute (); - Work8 = S9xAPUGetByte (IAPU.Address); - CMP (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + CMP (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 3; } void Apu66 () { // CMP A,(X) - Work8 = S9xAPUGetByteZ (APURegisters.X); - CMP (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByteZ (IAPU.Registers.X); + CMP (IAPU.Registers.YA.B.A, Work8); IAPU.PC++; } @@ -1169,24 +1158,24 @@ void Apu67 () { // CMP A,(dp+X) IndexedXIndirect (); - Work8 = S9xAPUGetByte (IAPU.Address); - CMP (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + CMP (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } void Apu68 () { // CMP A,#00 - Work8 = OP1; - CMP (APURegisters.YA.B.A, Work8); + uint8 Work8 = OP1; + CMP (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } void Apu69 () { // CMP dp(dest), dp(src) - W1 = S9xAPUGetByteZ (OP1); - Work8 = S9xAPUGetByteZ (OP2); + uint8 W1 = S9xAPUGetByteZ (OP1); + uint8 Work8 = S9xAPUGetByteZ (OP2); CMP (Work8, W1); IAPU.PC += 3; } @@ -1194,8 +1183,8 @@ void Apu69 () void Apu74 () { // CMP A, dp+X - Work8 = S9xAPUGetByteZ (OP1 + APURegisters.X); - CMP (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByteZ (OP1 + IAPU.Registers.X); + CMP (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } @@ -1203,8 +1192,8 @@ void Apu75 () { // CMP A,abs+X AbsoluteX (); - Work8 = S9xAPUGetByte (IAPU.Address); - CMP (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + CMP (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 3; } @@ -1212,8 +1201,8 @@ void Apu76 () { // CMP A, abs+Y AbsoluteY (); - Work8 = S9xAPUGetByte (IAPU.Address); - CMP (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + CMP (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 3; } @@ -1221,16 +1210,16 @@ void Apu77 () { // CMP A,(dp)+Y IndirectIndexedY (); - Work8 = S9xAPUGetByte (IAPU.Address); - CMP (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + CMP (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } void Apu78 () { // CMP dp,#00 - Work8 = OP1; - W1 = S9xAPUGetByteZ (OP2); + uint8 Work8 = OP1; + uint8 W1 = S9xAPUGetByteZ (OP2); CMP (W1, Work8); IAPU.PC += 3; } @@ -1238,8 +1227,8 @@ void Apu78 () void Apu79 () { // CMP (X),(Y) - W1 = S9xAPUGetByteZ (APURegisters.X); - Work8 = S9xAPUGetByteZ (APURegisters.YA.B.Y); + uint8 W1 = S9xAPUGetByteZ (IAPU.Registers.X); + uint8 Work8 = S9xAPUGetByteZ (IAPU.Registers.YA.B.Y); CMP (W1, Work8); IAPU.PC++; } @@ -1248,23 +1237,23 @@ void Apu1E () { // CMP X,abs Absolute (); - Work8 = S9xAPUGetByte (IAPU.Address); - CMP (APURegisters.X, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + CMP (IAPU.Registers.X, Work8); IAPU.PC += 3; } void Apu3E () { // CMP X,dp - Work8 = S9xAPUGetByteZ (OP1); - CMP (APURegisters.X, Work8); + uint8 Work8 = S9xAPUGetByteZ (OP1); + CMP (IAPU.Registers.X, Work8); IAPU.PC += 2; } void ApuC8 () { // CMP X,#00 - CMP (APURegisters.X, OP1); + CMP (IAPU.Registers.X, OP1); IAPU.PC += 2; } @@ -1272,24 +1261,24 @@ void Apu5E () { // CMP Y,abs Absolute (); - Work8 = S9xAPUGetByte (IAPU.Address); - CMP (APURegisters.YA.B.Y, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + CMP (IAPU.Registers.YA.B.Y, Work8); IAPU.PC += 3; } void Apu7E () { // CMP Y,dp - Work8 = S9xAPUGetByteZ (OP1); - CMP (APURegisters.YA.B.Y, Work8); + uint8 Work8 = S9xAPUGetByteZ (OP1); + CMP (IAPU.Registers.YA.B.Y, Work8); IAPU.PC += 2; } void ApuAD () { // CMP Y,#00 - Work8 = OP1; - CMP (APURegisters.YA.B.Y, Work8); + uint8 Work8 = OP1; + CMP (IAPU.Registers.YA.B.Y, Work8); IAPU.PC += 2; } @@ -1297,8 +1286,8 @@ void Apu1F () { // JMP (abs+X) Absolute (); - IAPU.PC = IAPU.RAM + S9xAPUGetByte (IAPU.Address + APURegisters.X) + - (S9xAPUGetByte (IAPU.Address + APURegisters.X + 1) << 8); + IAPU.PC = IAPU.RAM + S9xAPUGetByte (IAPU.Address + IAPU.Registers.X) + + (S9xAPUGetByte (IAPU.Address + IAPU.Registers.X + 1) << 8); // XXX: HERE: // APU.Flags |= TRACE_FLAG; } @@ -1336,8 +1325,8 @@ void ApuE0 () void Apu24 () { // AND A,dp - APURegisters.YA.B.A &= S9xAPUGetByteZ (OP1); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A &= S9xAPUGetByteZ (OP1); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } @@ -1345,16 +1334,16 @@ void Apu25 () { // AND A,abs Absolute (); - APURegisters.YA.B.A &= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A &= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 3; } void Apu26 () { // AND A,(X) - APURegisters.YA.B.A &= S9xAPUGetByteZ (APURegisters.X); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A &= S9xAPUGetByteZ (IAPU.Registers.X); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC++; } @@ -1362,23 +1351,23 @@ void Apu27 () { // AND A,(dp+X) IndexedXIndirect (); - APURegisters.YA.B.A &= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A &= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } void Apu28 () { // AND A,#00 - APURegisters.YA.B.A &= OP1; - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A &= OP1; + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } void Apu29 () { // AND dp(dest),dp(src) - Work8 = S9xAPUGetByteZ (OP1); + uint8 Work8 = S9xAPUGetByteZ (OP1); Work8 &= S9xAPUGetByteZ (OP2); S9xAPUSetByteZ (Work8, OP2); APUSetZN8 (Work8); @@ -1388,8 +1377,8 @@ void Apu29 () void Apu34 () { // AND A,dp+X - APURegisters.YA.B.A &= S9xAPUGetByteZ (OP1 + APURegisters.X); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A &= S9xAPUGetByteZ (OP1 + IAPU.Registers.X); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } @@ -1397,8 +1386,8 @@ void Apu35 () { // AND A,abs+X AbsoluteX (); - APURegisters.YA.B.A &= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A &= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 3; } @@ -1406,8 +1395,8 @@ void Apu36 () { // AND A,abs+Y AbsoluteY (); - APURegisters.YA.B.A &= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A &= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 3; } @@ -1415,15 +1404,15 @@ void Apu37 () { // AND A,(dp)+Y IndirectIndexedY (); - APURegisters.YA.B.A &= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A &= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } void Apu38 () { // AND dp,#00 - Work8 = OP1; + uint8 Work8 = OP1; Work8 &= S9xAPUGetByteZ (OP2); S9xAPUSetByteZ (Work8, OP2); APUSetZN8 (Work8); @@ -1433,16 +1422,16 @@ void Apu38 () void Apu39 () { // AND (X),(Y) - Work8 = S9xAPUGetByteZ (APURegisters.X) & S9xAPUGetByteZ (APURegisters.YA.B.Y); + uint8 Work8 = S9xAPUGetByteZ (IAPU.Registers.X) & S9xAPUGetByteZ (IAPU.Registers.YA.B.Y); APUSetZN8 (Work8); - S9xAPUSetByteZ (Work8, APURegisters.X); + S9xAPUSetByteZ (Work8, IAPU.Registers.X); IAPU.PC++; } void Apu2B () { // ROL dp - Work8 = S9xAPUGetByteZ (OP1); + uint8 Work8 = S9xAPUGetByteZ (OP1); ROL (Work8); S9xAPUSetByteZ (Work8, OP1); IAPU.PC += 2; @@ -1452,7 +1441,7 @@ void Apu2C () { // ROL abs Absolute (); - Work8 = S9xAPUGetByte (IAPU.Address); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); ROL (Work8); S9xAPUSetByte (Work8, IAPU.Address); IAPU.PC += 3; @@ -1461,26 +1450,26 @@ void Apu2C () void Apu3B () { // ROL dp+X - Work8 = S9xAPUGetByteZ (OP1 + APURegisters.X); + uint8 Work8 = S9xAPUGetByteZ (OP1 + IAPU.Registers.X); ROL (Work8); - S9xAPUSetByteZ (Work8, OP1 + APURegisters.X); + S9xAPUSetByteZ (Work8, OP1 + IAPU.Registers.X); IAPU.PC += 2; } void Apu3C () { // ROL A - ROL (APURegisters.YA.B.A); + ROL (IAPU.Registers.YA.B.A); IAPU.PC++; } void Apu2E () { // CBNE dp,rel - Work8 = OP1; + uint8 Work8 = OP1; Relative2 (); - if (S9xAPUGetByteZ (Work8) != APURegisters.YA.B.A) + if (S9xAPUGetByteZ (Work8) != IAPU.Registers.YA.B.A) { IAPU.PC = IAPU.RAM + (uint16) Int16; APU.Cycles += IAPU.TwoCycles; @@ -1493,10 +1482,10 @@ void Apu2E () void ApuDE () { // CBNE dp+X,rel - Work8 = OP1 + APURegisters.X; + uint8 Work8 = OP1 + IAPU.Registers.X; Relative2 (); - if (S9xAPUGetByteZ (Work8) != APURegisters.YA.B.A) + if (S9xAPUGetByteZ (Work8) != IAPU.Registers.YA.B.A) { IAPU.PC = IAPU.RAM + (uint16) Int16; APU.Cycles += IAPU.TwoCycles; @@ -1509,8 +1498,8 @@ void ApuDE () void Apu3D () { // INC X - APURegisters.X++; - APUSetZN8 (APURegisters.X); + IAPU.Registers.X++; + APUSetZN8 (IAPU.Registers.X); #ifdef SPC700_SHUTDOWN IAPU.WaitCounter++; @@ -1522,8 +1511,8 @@ void Apu3D () void ApuFC () { // INC Y - APURegisters.YA.B.Y++; - APUSetZN8 (APURegisters.YA.B.Y); + IAPU.Registers.YA.B.Y++; + APUSetZN8 (IAPU.Registers.YA.B.Y); #ifdef SPC700_SHUTDOWN IAPU.WaitCounter++; @@ -1535,8 +1524,8 @@ void ApuFC () void Apu1D () { // DEC X - APURegisters.X--; - APUSetZN8 (APURegisters.X); + IAPU.Registers.X--; + APUSetZN8 (IAPU.Registers.X); #ifdef SPC700_SHUTDOWN IAPU.WaitCounter++; @@ -1548,8 +1537,8 @@ void Apu1D () void ApuDC () { // DEC Y - APURegisters.YA.B.Y--; - APUSetZN8 (APURegisters.YA.B.Y); + IAPU.Registers.YA.B.Y--; + APUSetZN8 (IAPU.Registers.YA.B.Y); #ifdef SPC700_SHUTDOWN IAPU.WaitCounter++; @@ -1561,7 +1550,7 @@ void ApuDC () void ApuAB () { // INC dp - Work8 = S9xAPUGetByteZ (OP1) + 1; + uint8 Work8 = S9xAPUGetByteZ (OP1) + 1; S9xAPUSetByteZ (Work8, OP1); APUSetZN8 (Work8); @@ -1576,7 +1565,7 @@ void ApuAC () { // INC abs Absolute (); - Work8 = S9xAPUGetByte (IAPU.Address) + 1; + uint8 Work8 = S9xAPUGetByte (IAPU.Address) + 1; S9xAPUSetByte (Work8, IAPU.Address); APUSetZN8 (Work8); @@ -1590,8 +1579,8 @@ void ApuAC () void ApuBB () { // INC dp+X - Work8 = S9xAPUGetByteZ (OP1 + APURegisters.X) + 1; - S9xAPUSetByteZ (Work8, OP1 + APURegisters.X); + uint8 Work8 = S9xAPUGetByteZ (OP1 + IAPU.Registers.X) + 1; + S9xAPUSetByteZ (Work8, OP1 + IAPU.Registers.X); APUSetZN8 (Work8); #ifdef SPC700_SHUTDOWN @@ -1604,8 +1593,8 @@ void ApuBB () void ApuBC () { // INC A - APURegisters.YA.B.A++; - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A++; + APUSetZN8 (IAPU.Registers.YA.B.A); #ifdef SPC700_SHUTDOWN IAPU.WaitCounter++; @@ -1617,7 +1606,7 @@ void ApuBC () void Apu8B () { // DEC dp - Work8 = S9xAPUGetByteZ (OP1) - 1; + uint8 Work8 = S9xAPUGetByteZ (OP1) - 1; S9xAPUSetByteZ (Work8, OP1); APUSetZN8 (Work8); @@ -1632,7 +1621,7 @@ void Apu8C () { // DEC abs Absolute (); - Work8 = S9xAPUGetByte (IAPU.Address) - 1; + uint8 Work8 = S9xAPUGetByte (IAPU.Address) - 1; S9xAPUSetByte (Work8, IAPU.Address); APUSetZN8 (Work8); @@ -1646,8 +1635,8 @@ void Apu8C () void Apu9B () { // DEC dp+X - Work8 = S9xAPUGetByteZ (OP1 + APURegisters.X) - 1; - S9xAPUSetByteZ (Work8, OP1 + APURegisters.X); + uint8 Work8 = S9xAPUGetByteZ (OP1 + IAPU.Registers.X) - 1; + S9xAPUSetByteZ (Work8, OP1 + IAPU.Registers.X); APUSetZN8 (Work8); #ifdef SPC700_SHUTDOWN @@ -1660,8 +1649,8 @@ void Apu9B () void Apu9C () { // DEC A - APURegisters.YA.B.A--; - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A--; + APUSetZN8 (IAPU.Registers.YA.B.A); #ifdef SPC700_SHUTDOWN IAPU.WaitCounter++; @@ -1673,8 +1662,8 @@ void Apu9C () void Apu44 () { // EOR A,dp - APURegisters.YA.B.A ^= S9xAPUGetByteZ (OP1); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A ^= S9xAPUGetByteZ (OP1); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } @@ -1682,16 +1671,16 @@ void Apu45 () { // EOR A,abs Absolute (); - APURegisters.YA.B.A ^= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A ^= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 3; } void Apu46 () { // EOR A,(X) - APURegisters.YA.B.A ^= S9xAPUGetByteZ (APURegisters.X); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A ^= S9xAPUGetByteZ (IAPU.Registers.X); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC++; } @@ -1699,23 +1688,23 @@ void Apu47 () { // EOR A,(dp+X) IndexedXIndirect (); - APURegisters.YA.B.A ^= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A ^= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } void Apu48 () { // EOR A,#00 - APURegisters.YA.B.A ^= OP1; - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A ^= OP1; + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } void Apu49 () { // EOR dp(dest),dp(src) - Work8 = S9xAPUGetByteZ (OP1); + uint8 Work8 = S9xAPUGetByteZ (OP1); Work8 ^= S9xAPUGetByteZ (OP2); S9xAPUSetByteZ (Work8, OP2); APUSetZN8 (Work8); @@ -1725,8 +1714,8 @@ void Apu49 () void Apu54 () { // EOR A,dp+X - APURegisters.YA.B.A ^= S9xAPUGetByteZ (OP1 + APURegisters.X); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A ^= S9xAPUGetByteZ (OP1 + IAPU.Registers.X); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } @@ -1734,8 +1723,8 @@ void Apu55 () { // EOR A,abs+X AbsoluteX (); - APURegisters.YA.B.A ^= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A ^= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 3; } @@ -1743,8 +1732,8 @@ void Apu56 () { // EOR A,abs+Y AbsoluteY (); - APURegisters.YA.B.A ^= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A ^= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 3; } @@ -1752,15 +1741,15 @@ void Apu57 () { // EOR A,(dp)+Y IndirectIndexedY (); - APURegisters.YA.B.A ^= S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A ^= S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } void Apu58 () { // EOR dp,#00 - Work8 = OP1; + uint8 Work8 = OP1; Work8 ^= S9xAPUGetByteZ (OP2); S9xAPUSetByteZ (Work8, OP2); APUSetZN8 (Work8); @@ -1770,16 +1759,16 @@ void Apu58 () void Apu59 () { // EOR (X),(Y) - Work8 = S9xAPUGetByteZ (APURegisters.X) ^ S9xAPUGetByteZ (APURegisters.YA.B.Y); + uint8 Work8 = S9xAPUGetByteZ (IAPU.Registers.X) ^ S9xAPUGetByteZ (IAPU.Registers.YA.B.Y); APUSetZN8 (Work8); - S9xAPUSetByteZ (Work8, APURegisters.X); + S9xAPUSetByteZ (Work8, IAPU.Registers.X); IAPU.PC++; } void Apu4B () { // LSR dp - Work8 = S9xAPUGetByteZ (OP1); + uint8 Work8 = S9xAPUGetByteZ (OP1); LSR (Work8); S9xAPUSetByteZ (Work8, OP1); IAPU.PC += 2; @@ -1789,7 +1778,7 @@ void Apu4C () { // LSR abs Absolute (); - Work8 = S9xAPUGetByte (IAPU.Address); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); LSR (Work8); S9xAPUSetByte (Work8, IAPU.Address); IAPU.PC += 3; @@ -1798,70 +1787,70 @@ void Apu4C () void Apu5B () { // LSR dp+X - Work8 = S9xAPUGetByteZ (OP1 + APURegisters.X); + uint8 Work8 = S9xAPUGetByteZ (OP1 + IAPU.Registers.X); LSR (Work8); - S9xAPUSetByteZ (Work8, OP1 + APURegisters.X); + S9xAPUSetByteZ (Work8, OP1 + IAPU.Registers.X); IAPU.PC += 2; } void Apu5C () { // LSR A - LSR (APURegisters.YA.B.A); + LSR (IAPU.Registers.YA.B.A); IAPU.PC++; } void Apu7D () { // MOV A,X - APURegisters.YA.B.A = APURegisters.X; - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A = IAPU.Registers.X; + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC++; } void ApuDD () { // MOV A,Y - APURegisters.YA.B.A = APURegisters.YA.B.Y; - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A = IAPU.Registers.YA.B.Y; + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC++; } void Apu5D () { // MOV X,A - APURegisters.X = APURegisters.YA.B.A; - APUSetZN8 (APURegisters.X); + IAPU.Registers.X = IAPU.Registers.YA.B.A; + APUSetZN8 (IAPU.Registers.X); IAPU.PC++; } void ApuFD () { // MOV Y,A - APURegisters.YA.B.Y = APURegisters.YA.B.A; - APUSetZN8 (APURegisters.YA.B.Y); + IAPU.Registers.YA.B.Y = IAPU.Registers.YA.B.A; + APUSetZN8 (IAPU.Registers.YA.B.Y); IAPU.PC++; } void Apu9D () { //MOV X,SP - APURegisters.X = APURegisters.S; - APUSetZN8 (APURegisters.X); + IAPU.Registers.X = IAPU.Registers.S; + APUSetZN8 (IAPU.Registers.X); IAPU.PC++; } void ApuBD () { // MOV SP,X - APURegisters.S = APURegisters.X; + IAPU.Registers.S = IAPU.Registers.X; IAPU.PC++; } void Apu6B () { // ROR dp - Work8 = S9xAPUGetByteZ (OP1); + uint8 Work8 = S9xAPUGetByteZ (OP1); ROR (Work8); S9xAPUSetByteZ (Work8, OP1); IAPU.PC += 2; @@ -1871,7 +1860,7 @@ void Apu6C () { // ROR abs Absolute (); - Work8 = S9xAPUGetByte (IAPU.Address); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); ROR (Work8); S9xAPUSetByte (Work8, IAPU.Address); IAPU.PC += 3; @@ -1880,25 +1869,25 @@ void Apu6C () void Apu7B () { // ROR dp+X - Work8 = S9xAPUGetByteZ (OP1 + APURegisters.X); + uint8 Work8 = S9xAPUGetByteZ (OP1 + IAPU.Registers.X); ROR (Work8); - S9xAPUSetByteZ (Work8, OP1 + APURegisters.X); + S9xAPUSetByteZ (Work8, OP1 + IAPU.Registers.X); IAPU.PC += 2; } void Apu7C () { // ROR A - ROR (APURegisters.YA.B.A); + ROR (IAPU.Registers.YA.B.A); IAPU.PC++; } void Apu6E () { // DBNZ dp,rel - Work8 = OP1; + uint8 Work8 = OP1; Relative2 (); - W1 = S9xAPUGetByteZ (Work8) - 1; + uint8 W1 = S9xAPUGetByteZ (Work8) - 1; S9xAPUSetByteZ (W1, Work8); if (W1 != 0) { @@ -1913,8 +1902,8 @@ void ApuFE () { // DBNZ Y,rel Relative (); - APURegisters.YA.B.Y--; - if (APURegisters.YA.B.Y != 0) + IAPU.Registers.YA.B.Y--; + if (IAPU.Registers.YA.B.Y != 0) { IAPU.PC = IAPU.RAM + (uint16) Int16; APU.Cycles += IAPU.TwoCycles; @@ -1926,25 +1915,25 @@ void ApuFE () void Apu6F () { // RET - PopW (APURegisters.PC); - IAPU.PC = IAPU.RAM + APURegisters.PC; + PopW (IAPU.Registers.PC); + IAPU.PC = IAPU.RAM + IAPU.Registers.PC; } void Apu7F () { // RETI // STOP ("RETI"); - Pop (APURegisters.P); + Pop (IAPU.Registers.P); S9xAPUUnpackStatus (); - PopW (APURegisters.PC); - IAPU.PC = IAPU.RAM + APURegisters.PC; + PopW (IAPU.Registers.PC); + IAPU.PC = IAPU.RAM + IAPU.Registers.PC; } void Apu84 () { // ADC A,dp - Work8 = S9xAPUGetByteZ (OP1); - ADC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByteZ (OP1); + ADC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } @@ -1952,16 +1941,16 @@ void Apu85 () { // ADC A, abs Absolute (); - Work8 = S9xAPUGetByte (IAPU.Address); - ADC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + ADC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 3; } void Apu86 () { // ADC A,(X) - Work8 = S9xAPUGetByteZ (APURegisters.X); - ADC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByteZ (IAPU.Registers.X); + ADC (IAPU.Registers.YA.B.A, Work8); IAPU.PC++; } @@ -1969,24 +1958,24 @@ void Apu87 () { // ADC A,(dp+X) IndexedXIndirect (); - Work8 = S9xAPUGetByte (IAPU.Address); - ADC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + ADC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } void Apu88 () { // ADC A,#00 - Work8 = OP1; - ADC (APURegisters.YA.B.A, Work8); + uint8 Work8 = OP1; + ADC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } void Apu89 () { // ADC dp(dest),dp(src) - Work8 = S9xAPUGetByteZ (OP1); - W1 = S9xAPUGetByteZ (OP2); + uint8 Work8 = S9xAPUGetByteZ (OP1); + uint8 W1 = S9xAPUGetByteZ (OP2); ADC (W1, Work8); S9xAPUSetByteZ (W1, OP2); IAPU.PC += 3; @@ -1995,8 +1984,8 @@ void Apu89 () void Apu94 () { // ADC A,dp+X - Work8 = S9xAPUGetByteZ (OP1 + APURegisters.X); - ADC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByteZ (OP1 + IAPU.Registers.X); + ADC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } @@ -2004,8 +1993,8 @@ void Apu95 () { // ADC A, abs+X AbsoluteX (); - Work8 = S9xAPUGetByte (IAPU.Address); - ADC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + ADC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 3; } @@ -2013,8 +2002,8 @@ void Apu96 () { // ADC A, abs+Y AbsoluteY (); - Work8 = S9xAPUGetByte (IAPU.Address); - ADC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + ADC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 3; } @@ -2022,16 +2011,16 @@ void Apu97 () { // ADC A, (dp)+Y IndirectIndexedY (); - Work8 = S9xAPUGetByte (IAPU.Address); - ADC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + ADC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } void Apu98 () { // ADC dp,#00 - Work8 = OP1; - W1 = S9xAPUGetByteZ (OP2); + uint8 Work8 = OP1; + uint8 W1 = S9xAPUGetByteZ (OP2); ADC (W1, Work8); S9xAPUSetByteZ (W1, OP2); IAPU.PC += 3; @@ -2040,25 +2029,25 @@ void Apu98 () void Apu99 () { // ADC (X),(Y) - W1 = S9xAPUGetByteZ (APURegisters.X); - Work8 = S9xAPUGetByteZ (APURegisters.YA.B.Y); + uint8 W1 = S9xAPUGetByteZ (IAPU.Registers.X); + uint8 Work8 = S9xAPUGetByteZ (IAPU.Registers.YA.B.Y); ADC (W1, Work8); - S9xAPUSetByteZ (W1, APURegisters.X); + S9xAPUSetByteZ (W1, IAPU.Registers.X); IAPU.PC++; } void Apu8D () { // MOV Y,#00 - APURegisters.YA.B.Y = OP1; - APUSetZN8 (APURegisters.YA.B.Y); + IAPU.Registers.YA.B.Y = OP1; + APUSetZN8 (IAPU.Registers.YA.B.Y); IAPU.PC += 2; } void Apu8F () { // MOV dp,#00 - Work8 = OP1; + uint8 Work8 = OP1; S9xAPUSetByteZ (Work8, OP2); IAPU.PC += 3; } @@ -2066,38 +2055,38 @@ void Apu8F () void Apu9E () { // DIV YA,X - if (APURegisters.X == 0) + if (IAPU.Registers.X == 0) { APUSetOverflow (); - APURegisters.YA.B.Y = 0xff; - APURegisters.YA.B.A = 0xff; + IAPU.Registers.YA.B.Y = 0xff; + IAPU.Registers.YA.B.A = 0xff; } else { APUClearOverflow (); - Work8 = APURegisters.YA.W / APURegisters.X; - APURegisters.YA.B.Y = APURegisters.YA.W % APURegisters.X; - APURegisters.YA.B.A = Work8; + uint8 Work8 = IAPU.Registers.YA.W / IAPU.Registers.X; + IAPU.Registers.YA.B.Y = IAPU.Registers.YA.W % IAPU.Registers.X; + IAPU.Registers.YA.B.A = Work8; } // XXX How should Overflow, Half Carry, Zero and Negative flags be set?? - // APUSetZN16 (APURegisters.YA.W); - APUSetZN8 (APURegisters.YA.B.A); + // APUSetZN16 (IAPU.Registers.YA.W); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC++; } void Apu9F () { // XCN A - APURegisters.YA.B.A = (APURegisters.YA.B.A >> 4) | (APURegisters.YA.B.A << 4); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A = (IAPU.Registers.YA.B.A >> 4) | (IAPU.Registers.YA.B.A << 4); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC++; } void ApuA4 () { // SBC A, dp - Work8 = S9xAPUGetByteZ (OP1); - SBC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByteZ (OP1); + SBC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } @@ -2105,16 +2094,16 @@ void ApuA5 () { // SBC A, abs Absolute (); - Work8 = S9xAPUGetByte (IAPU.Address); - SBC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + SBC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 3; } void ApuA6 () { // SBC A, (X) - Work8 = S9xAPUGetByteZ (APURegisters.X); - SBC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByteZ (IAPU.Registers.X); + SBC (IAPU.Registers.YA.B.A, Work8); IAPU.PC++; } @@ -2122,24 +2111,24 @@ void ApuA7 () { // SBC A,(dp+X) IndexedXIndirect (); - Work8 = S9xAPUGetByte (IAPU.Address); - SBC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + SBC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } void ApuA8 () { // SBC A,#00 - Work8 = OP1; - SBC (APURegisters.YA.B.A, Work8); + uint8 Work8 = OP1; + SBC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } void ApuA9 () { // SBC dp(dest), dp(src) - Work8 = S9xAPUGetByteZ (OP1); - W1 = S9xAPUGetByteZ (OP2); + uint8 Work8 = S9xAPUGetByteZ (OP1); + uint8 W1 = S9xAPUGetByteZ (OP2); SBC (W1, Work8); S9xAPUSetByteZ (W1, OP2); IAPU.PC += 3; @@ -2148,8 +2137,8 @@ void ApuA9 () void ApuB4 () { // SBC A, dp+X - Work8 = S9xAPUGetByteZ (OP1 + APURegisters.X); - SBC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByteZ (OP1 + IAPU.Registers.X); + SBC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } @@ -2157,8 +2146,8 @@ void ApuB5 () { // SBC A,abs+X AbsoluteX (); - Work8 = S9xAPUGetByte (IAPU.Address); - SBC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + SBC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 3; } @@ -2166,8 +2155,8 @@ void ApuB6 () { // SBC A,abs+Y AbsoluteY (); - Work8 = S9xAPUGetByte (IAPU.Address); - SBC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + SBC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 3; } @@ -2175,16 +2164,16 @@ void ApuB7 () { // SBC A,(dp)+Y IndirectIndexedY (); - Work8 = S9xAPUGetByte (IAPU.Address); - SBC (APURegisters.YA.B.A, Work8); + uint8 Work8 = S9xAPUGetByte (IAPU.Address); + SBC (IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; } void ApuB8 () { // SBC dp,#00 - Work8 = OP1; - W1 = S9xAPUGetByteZ (OP2); + uint8 Work8 = OP1; + uint8 W1 = S9xAPUGetByteZ (OP2); SBC (W1, Work8); S9xAPUSetByteZ (W1, OP2); IAPU.PC += 3; @@ -2193,42 +2182,42 @@ void ApuB8 () void ApuB9 () { // SBC (X),(Y) - W1 = S9xAPUGetByteZ (APURegisters.X); - Work8 = S9xAPUGetByteZ (APURegisters.YA.B.Y); + uint8 W1 = S9xAPUGetByteZ (IAPU.Registers.X); + uint8 Work8 = S9xAPUGetByteZ (IAPU.Registers.YA.B.Y); SBC (W1, Work8); - S9xAPUSetByteZ (W1, APURegisters.X); + S9xAPUSetByteZ (W1, IAPU.Registers.X); IAPU.PC++; } void ApuAF () { // MOV (X)+, A - S9xAPUSetByteZ (APURegisters.YA.B.A, APURegisters.X++); + S9xAPUSetByteZ (IAPU.Registers.YA.B.A, IAPU.Registers.X++); IAPU.PC++; } void ApuBE () { // DAS - if ((APURegisters.YA.B.A & 0x0f) > 9 || !APUCheckHalfCarry()) + if ((IAPU.Registers.YA.B.A & 0x0f) > 9 || !APUCheckHalfCarry()) { - APURegisters.YA.B.A -= 6; + IAPU.Registers.YA.B.A -= 6; } - if (APURegisters.YA.B.A > 0x9f || !IAPU._Carry) + if (IAPU.Registers.YA.B.A > 0x9f || !IAPU._Carry) { - APURegisters.YA.B.A -= 0x60; + IAPU.Registers.YA.B.A -= 0x60; APUClearCarry (); } else { APUSetCarry (); } - APUSetZN8 (APURegisters.YA.B.A); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC++; } void ApuBF () { // MOV A,(X)+ - APURegisters.YA.B.A = S9xAPUGetByteZ (APURegisters.X++); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A = S9xAPUGetByteZ (IAPU.Registers.X++); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC++; } @@ -2249,7 +2238,7 @@ void ApuA0 () void ApuC4 () { // MOV dp,A - S9xAPUSetByteZ (APURegisters.YA.B.A, OP1); + S9xAPUSetByteZ (IAPU.Registers.YA.B.A, OP1); IAPU.PC += 2; } @@ -2257,14 +2246,14 @@ void ApuC5 () { // MOV abs,A Absolute (); - S9xAPUSetByte (APURegisters.YA.B.A, IAPU.Address); + S9xAPUSetByte (IAPU.Registers.YA.B.A, IAPU.Address); IAPU.PC += 3; } void ApuC6 () { // MOV (X), A - S9xAPUSetByteZ (APURegisters.YA.B.A, APURegisters.X); + S9xAPUSetByteZ (IAPU.Registers.YA.B.A, IAPU.Registers.X); IAPU.PC++; } @@ -2272,7 +2261,7 @@ void ApuC7 () { // MOV (dp+X),A IndexedXIndirect (); - S9xAPUSetByte (APURegisters.YA.B.A, IAPU.Address); + S9xAPUSetByte (IAPU.Registers.YA.B.A, IAPU.Address); IAPU.PC += 2; } @@ -2280,14 +2269,14 @@ void ApuC9 () { // MOV abs,X Absolute (); - S9xAPUSetByte (APURegisters.X, IAPU.Address); + S9xAPUSetByte (IAPU.Registers.X, IAPU.Address); IAPU.PC += 3; } void ApuCB () { // MOV dp,Y - S9xAPUSetByteZ (APURegisters.YA.B.Y, OP1); + S9xAPUSetByteZ (IAPU.Registers.YA.B.Y, OP1); IAPU.PC += 2; } @@ -2295,30 +2284,30 @@ void ApuCC () { // MOV abs,Y Absolute (); - S9xAPUSetByte (APURegisters.YA.B.Y, IAPU.Address); + S9xAPUSetByte (IAPU.Registers.YA.B.Y, IAPU.Address); IAPU.PC += 3; } void ApuCD () { // MOV X,#00 - APURegisters.X = OP1; - APUSetZN8 (APURegisters.X); + IAPU.Registers.X = OP1; + APUSetZN8 (IAPU.Registers.X); IAPU.PC += 2; } void ApuCF () { // MUL YA - APURegisters.YA.W = (uint16) APURegisters.YA.B.A * APURegisters.YA.B.Y; - APUSetZN16 (APURegisters.YA.W); + IAPU.Registers.YA.W = (uint16) IAPU.Registers.YA.B.A * IAPU.Registers.YA.B.Y; + APUSetZN16 (IAPU.Registers.YA.W); IAPU.PC++; } void ApuD4 () { // MOV dp+X, A - S9xAPUSetByteZ (APURegisters.YA.B.A, OP1 + APURegisters.X); + S9xAPUSetByteZ (IAPU.Registers.YA.B.A, OP1 + IAPU.Registers.X); IAPU.PC += 2; } @@ -2326,7 +2315,7 @@ void ApuD5 () { // MOV abs+X,A AbsoluteX (); - S9xAPUSetByte (APURegisters.YA.B.A, IAPU.Address); + S9xAPUSetByte (IAPU.Registers.YA.B.A, IAPU.Address); IAPU.PC += 3; } @@ -2334,7 +2323,7 @@ void ApuD6 () { // MOV abs+Y,A AbsoluteY (); - S9xAPUSetByte (APURegisters.YA.B.A, IAPU.Address); + S9xAPUSetByte (IAPU.Registers.YA.B.A, IAPU.Address); IAPU.PC += 3; } @@ -2342,56 +2331,56 @@ void ApuD7 () { // MOV (dp)+Y,A IndirectIndexedY (); - S9xAPUSetByte (APURegisters.YA.B.A, IAPU.Address); + S9xAPUSetByte (IAPU.Registers.YA.B.A, IAPU.Address); IAPU.PC += 2; } void ApuD8 () { // MOV dp,X - S9xAPUSetByteZ (APURegisters.X, OP1); + S9xAPUSetByteZ (IAPU.Registers.X, OP1); IAPU.PC += 2; } void ApuD9 () { // MOV dp+Y,X - S9xAPUSetByteZ (APURegisters.X, OP1 + APURegisters.YA.B.Y); + S9xAPUSetByteZ (IAPU.Registers.X, OP1 + IAPU.Registers.YA.B.Y); IAPU.PC += 2; } void ApuDB () { // MOV dp+X,Y - S9xAPUSetByteZ (APURegisters.YA.B.Y, OP1 + APURegisters.X); + S9xAPUSetByteZ (IAPU.Registers.YA.B.Y, OP1 + IAPU.Registers.X); IAPU.PC += 2; } void ApuDF () { // DAA - if ((APURegisters.YA.B.A & 0x0f) > 9 || APUCheckHalfCarry()) + if ((IAPU.Registers.YA.B.A & 0x0f) > 9 || APUCheckHalfCarry()) { - if(APURegisters.YA.B.A > 0xf0) APUSetCarry (); - APURegisters.YA.B.A += 6; + if(IAPU.Registers.YA.B.A > 0xf0) APUSetCarry (); + IAPU.Registers.YA.B.A += 6; //APUSetHalfCarry (); Intel procs do this, but this is a Sony proc... } //else { APUClearHalfCarry (); } ditto as above - if (APURegisters.YA.B.A > 0x9f || IAPU._Carry) + if (IAPU.Registers.YA.B.A > 0x9f || IAPU._Carry) { - APURegisters.YA.B.A += 0x60; + IAPU.Registers.YA.B.A += 0x60; APUSetCarry (); } else { APUClearCarry (); } - APUSetZN8 (APURegisters.YA.B.A); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC++; } void ApuE4 () { // MOV A, dp - APURegisters.YA.B.A = S9xAPUGetByteZ (OP1); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A = S9xAPUGetByteZ (OP1); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } @@ -2399,16 +2388,16 @@ void ApuE5 () { // MOV A,abs Absolute (); - APURegisters.YA.B.A = S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A = S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 3; } void ApuE6 () { // MOV A,(X) - APURegisters.YA.B.A = S9xAPUGetByteZ (APURegisters.X); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A = S9xAPUGetByteZ (IAPU.Registers.X); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC++; } @@ -2416,16 +2405,16 @@ void ApuE7 () { // MOV A,(dp+X) IndexedXIndirect (); - APURegisters.YA.B.A = S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A = S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } void ApuE8 () { // MOV A,#00 - APURegisters.YA.B.A = OP1; - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A = OP1; + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } @@ -2433,16 +2422,16 @@ void ApuE9 () { // MOV X, abs Absolute (); - APURegisters.X = S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.X); + IAPU.Registers.X = S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.X); IAPU.PC += 3; } void ApuEB () { // MOV Y,dp - APURegisters.YA.B.Y = S9xAPUGetByteZ (OP1); - APUSetZN8 (APURegisters.YA.B.Y); + IAPU.Registers.YA.B.Y = S9xAPUGetByteZ (OP1); + APUSetZN8 (IAPU.Registers.YA.B.Y); IAPU.PC += 2; } @@ -2450,16 +2439,16 @@ void ApuEC () { // MOV Y,abs Absolute (); - APURegisters.YA.B.Y = S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.Y); + IAPU.Registers.YA.B.Y = S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.Y); IAPU.PC += 3; } void ApuF4 () { // MOV A, dp+X - APURegisters.YA.B.A = S9xAPUGetByteZ (OP1 + APURegisters.X); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A = S9xAPUGetByteZ (OP1 + IAPU.Registers.X); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } @@ -2467,8 +2456,8 @@ void ApuF5 () { // MOV A, abs+X AbsoluteX (); - APURegisters.YA.B.A = S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A = S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 3; } @@ -2476,8 +2465,8 @@ void ApuF6 () { // MOV A, abs+Y AbsoluteY (); - APURegisters.YA.B.A = S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A = S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 3; } @@ -2485,24 +2474,24 @@ void ApuF7 () { // MOV A, (dp)+Y IndirectIndexedY (); - APURegisters.YA.B.A = S9xAPUGetByte (IAPU.Address); - APUSetZN8 (APURegisters.YA.B.A); + IAPU.Registers.YA.B.A = S9xAPUGetByte (IAPU.Address); + APUSetZN8 (IAPU.Registers.YA.B.A); IAPU.PC += 2; } void ApuF8 () { // MOV X,dp - APURegisters.X = S9xAPUGetByteZ (OP1); - APUSetZN8 (APURegisters.X); + IAPU.Registers.X = S9xAPUGetByteZ (OP1); + APUSetZN8 (IAPU.Registers.X); IAPU.PC += 2; } void ApuF9 () { // MOV X,dp+Y - APURegisters.X = S9xAPUGetByteZ (OP1 + APURegisters.YA.B.Y); - APUSetZN8 (APURegisters.X); + IAPU.Registers.X = S9xAPUGetByteZ (OP1 + IAPU.Registers.YA.B.Y); + APUSetZN8 (IAPU.Registers.X); IAPU.PC += 2; } @@ -2516,8 +2505,8 @@ void ApuFA () void ApuFB () { // MOV Y,dp+X - APURegisters.YA.B.Y = S9xAPUGetByteZ (OP1 + APURegisters.X); - APUSetZN8 (APURegisters.YA.B.Y); + IAPU.Registers.YA.B.Y = S9xAPUGetByteZ (OP1 + IAPU.Registers.X); + APUSetZN8 (IAPU.Registers.YA.B.Y); IAPU.PC += 2; } |