6502 future-proofing: do not overwrite the variable with the access address on a read in case we want to rerun it

This commit is contained in:
Olivier Galibert 2022-09-06 17:26:46 +02:00
parent 98c6ead6ed
commit 6563dfe9cf
9 changed files with 369 additions and 369 deletions

View File

@ -7,8 +7,8 @@
adc_aba adc_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read(TMP); TMP2 = read(TMP);
do_adc(TMP); do_adc(TMP2);
prefetch(); prefetch();
adc_abx adc_abx
@ -18,8 +18,8 @@ adc_abx
read(set_l(TMP, TMP+X)); read(set_l(TMP, TMP+X));
} }
TMP += X; TMP += X;
TMP = read(TMP); TMP2 = read(TMP);
do_adc(TMP); do_adc(TMP2);
prefetch(); prefetch();
adc_aby adc_aby
@ -29,8 +29,8 @@ adc_aby
read(set_l(TMP, TMP+Y)); read(set_l(TMP, TMP+Y));
} }
TMP += Y; TMP += Y;
TMP = read(TMP); TMP2 = read(TMP);
do_adc(TMP); do_adc(TMP2);
prefetch(); prefetch();
adc_idx adc_idx
@ -59,15 +59,15 @@ adc_imm
adc_zpg adc_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
do_adc(TMP); do_adc(TMP2);
prefetch(); prefetch();
adc_zpx adc_zpx
TMP = read_pc(); TMP = read_pc();
read(TMP); read(TMP);
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_adc(TMP); do_adc(TMP2);
prefetch(); prefetch();
and_aba and_aba
@ -332,8 +332,8 @@ clv_imp
cmp_aba cmp_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read(TMP); TMP2 = read(TMP);
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cmp_abx cmp_abx
@ -343,8 +343,8 @@ cmp_abx
read(set_l(TMP, TMP+X)); read(set_l(TMP, TMP+X));
} }
TMP += X; TMP += X;
TMP = read(TMP); TMP2 = read(TMP);
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cmp_aby cmp_aby
@ -354,8 +354,8 @@ cmp_aby
read(set_l(TMP, TMP+Y)); read(set_l(TMP, TMP+Y));
} }
TMP += Y; TMP += Y;
TMP = read(TMP); TMP2 = read(TMP);
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cmp_idx cmp_idx
@ -384,22 +384,22 @@ cmp_imm
cmp_zpg cmp_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cmp_zpx cmp_zpx
TMP = read_pc(); TMP = read_pc();
read(TMP); read(TMP);
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cpx_aba cpx_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read(TMP); TMP2 = read(TMP);
do_cmp(X, TMP); do_cmp(X, TMP2);
prefetch(); prefetch();
cpx_imm cpx_imm
@ -409,15 +409,15 @@ cpx_imm
cpx_zpg cpx_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
do_cmp(X, TMP); do_cmp(X, TMP2);
prefetch(); prefetch();
cpy_aba cpy_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read(TMP); TMP2 = read(TMP);
do_cmp(Y, TMP); do_cmp(Y, TMP2);
prefetch(); prefetch();
cpy_imm cpy_imm
@ -427,8 +427,8 @@ cpy_imm
cpy_zpg cpy_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
do_cmp(Y, TMP); do_cmp(Y, TMP2);
prefetch(); prefetch();
dec_aba dec_aba
@ -1021,8 +1021,8 @@ rts_imp
sbc_aba sbc_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read(TMP); TMP2 = read(TMP);
do_sbc(TMP); do_sbc(TMP2);
prefetch(); prefetch();
sbc_abx sbc_abx
@ -1032,8 +1032,8 @@ sbc_abx
read(set_l(TMP, TMP+X)); read(set_l(TMP, TMP+X));
} }
TMP += X; TMP += X;
TMP = read(TMP); TMP2 = read(TMP);
do_sbc(TMP); do_sbc(TMP2);
prefetch(); prefetch();
sbc_aby sbc_aby
@ -1043,8 +1043,8 @@ sbc_aby
read(set_l(TMP, TMP+Y)); read(set_l(TMP, TMP+Y));
} }
TMP += Y; TMP += Y;
TMP = read(TMP); TMP2 = read(TMP);
do_sbc(TMP); do_sbc(TMP2);
prefetch(); prefetch();
sbc_idx sbc_idx
@ -1073,15 +1073,15 @@ sbc_imm
sbc_zpg sbc_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
do_sbc(TMP); do_sbc(TMP2);
prefetch(); prefetch();
sbc_zpx sbc_zpx
TMP = read_pc(); TMP = read_pc();
read(TMP); read(TMP);
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_sbc(TMP); do_sbc(TMP2);
prefetch(); prefetch();
sec_imp sec_imp

View File

@ -5,8 +5,8 @@
adc_c_aba adc_c_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read(TMP); TMP2 = read(TMP);
do_adc(TMP); do_adc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -20,8 +20,8 @@ adc_c_abx
read(set_l(TMP, TMP+X)); read(set_l(TMP, TMP+X));
} }
TMP += X; TMP += X;
TMP = read(TMP); TMP2 = read(TMP);
do_adc(TMP); do_adc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -35,8 +35,8 @@ adc_c_aby
read(set_l(TMP, TMP+Y)); read(set_l(TMP, TMP+Y));
} }
TMP += Y; TMP += Y;
TMP = read(TMP); TMP2 = read(TMP);
do_adc(TMP); do_adc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -81,8 +81,8 @@ adc_c_imm
adc_c_zpg adc_c_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
do_adc(TMP); do_adc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -103,8 +103,8 @@ adc_c_zpi
adc_c_zpx adc_c_zpx
TMP = read_pc(); TMP = read_pc();
read(TMP); read(TMP);
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_adc(TMP); do_adc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -206,8 +206,8 @@ bit_imm
bit_zpx bit_zpx
TMP = read_pc(); TMP = read_pc();
read(TMP); read(TMP);
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_bit(TMP); do_bit(TMP2);
prefetch(); prefetch();
bra_rel bra_rel
@ -563,8 +563,8 @@ ror_c_zpx
sbc_c_aba sbc_c_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read(TMP); TMP2 = read(TMP);
do_sbc(TMP); do_sbc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -578,8 +578,8 @@ sbc_c_abx
read(set_l(TMP, TMP+X)); read(set_l(TMP, TMP+X));
} }
TMP += X; TMP += X;
TMP = read(TMP); TMP2 = read(TMP);
do_sbc(TMP); do_sbc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -593,8 +593,8 @@ sbc_c_aby
read(set_l(TMP, TMP+Y)); read(set_l(TMP, TMP+Y));
} }
TMP += Y; TMP += Y;
TMP = read(TMP); TMP2 = read(TMP);
do_sbc(TMP); do_sbc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -639,8 +639,8 @@ sbc_c_imm
sbc_c_zpg sbc_c_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
do_sbc(TMP); do_sbc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -661,8 +661,8 @@ sbc_c_zpi
sbc_c_zpx sbc_c_zpx
TMP = read_pc(); TMP = read_pc();
read(TMP); read(TMP);
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_sbc(TMP); do_sbc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);

View File

@ -5,8 +5,8 @@
adc_ce_aba adc_ce_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read(TMP); TMP2 = read(TMP);
do_adc(TMP); do_adc(TMP2);
if(P & F_D) if(P & F_D)
set_nz(A); set_nz(A);
prefetch(); prefetch();
@ -15,8 +15,8 @@ adc_ce_abx
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP += X; TMP += X;
TMP = read(TMP); TMP2 = read(TMP);
do_adc(TMP); do_adc(TMP2);
if(P & F_D) if(P & F_D)
set_nz(A); set_nz(A);
prefetch(); prefetch();
@ -25,8 +25,8 @@ adc_ce_aby
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP += Y; TMP += Y;
TMP = read(TMP); TMP2 = read(TMP);
do_adc(TMP); do_adc(TMP2);
if(P & F_D) if(P & F_D)
set_nz(A); set_nz(A);
prefetch(); prefetch();
@ -71,16 +71,16 @@ adc_ce_imm
adc_ce_zpg adc_ce_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(B|TMP); TMP2 = read(B|TMP);
do_adc(TMP); do_adc(TMP2);
if(P & F_D) if(P & F_D)
set_nz(A); set_nz(A);
prefetch(); prefetch();
adc_ce_zpx adc_ce_zpx
TMP = read_pc(); TMP = read_pc();
TMP = read(B|uint8_t(TMP+X)); TMP2 = read(B|uint8_t(TMP+X));
do_adc(TMP); do_adc(TMP2);
if(P & F_D) if(P & F_D)
set_nz(A); set_nz(A);
prefetch(); prefetch();
@ -295,8 +295,8 @@ bit_ce_zpg
bit_ce_zpx bit_ce_zpx
TMP = read_pc(); TMP = read_pc();
TMP = read(B|uint8_t(TMP+X)); TMP2 = read(B|uint8_t(TMP+X));
do_bit(TMP); do_bit(TMP2);
prefetch(); prefetch();
bmi_ce_rel bmi_ce_rel
@ -436,16 +436,16 @@ cmp_ce_abx
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP += X; TMP += X;
TMP = read(TMP); TMP2 = read(TMP);
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cmp_ce_aby cmp_ce_aby
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP += Y; TMP += Y;
TMP = read(TMP); TMP2 = read(TMP);
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cmp_ce_idx cmp_ce_idx
@ -475,34 +475,34 @@ cmp_idz
cmp_ce_zpg cmp_ce_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(B|TMP); TMP2 = read(B|TMP);
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cmp_ce_zpx cmp_ce_zpx
TMP = read_pc(); TMP = read_pc();
read(TMP); read(TMP);
TMP = read(B|uint8_t(TMP+X)); TMP2 = read(B|uint8_t(TMP+X));
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cpx_ce_zpg cpx_ce_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(B|TMP); TMP2 = read(B|TMP);
do_cmp(X, TMP); do_cmp(X, TMP2);
prefetch(); prefetch();
cpy_ce_zpg cpy_ce_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(B|TMP); TMP2 = read(B|TMP);
do_cmp(Y, TMP); do_cmp(Y, TMP2);
prefetch(); prefetch();
cpz_aba cpz_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read(TMP); TMP2 = read(TMP);
do_cmp(Z, TMP); do_cmp(Z, TMP2);
prefetch(); prefetch();
cpz_imm cpz_imm
@ -512,8 +512,8 @@ cpz_imm
cpz_zpg cpz_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(B|TMP); TMP2 = read(B|TMP);
do_cmp(Z, TMP); do_cmp(Z, TMP2);
prefetch(); prefetch();
dec_ce_aba dec_ce_aba
@ -1212,8 +1212,8 @@ rts_ce_imp
sbc_ce_aba sbc_ce_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read(TMP); TMP2 = read(TMP);
do_sbc(TMP); do_sbc(TMP2);
if(P & F_D) if(P & F_D)
set_nz(A); set_nz(A);
prefetch(); prefetch();
@ -1222,8 +1222,8 @@ sbc_ce_abx
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP += X; TMP += X;
TMP = read(TMP); TMP2 = read(TMP);
do_sbc(TMP); do_sbc(TMP2);
if(P & F_D) if(P & F_D)
set_nz(A); set_nz(A);
prefetch(); prefetch();
@ -1232,8 +1232,8 @@ sbc_ce_aby
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP += Y; TMP += Y;
TMP = read(TMP); TMP2 = read(TMP);
do_sbc(TMP); do_sbc(TMP2);
if(P & F_D) if(P & F_D)
set_nz(A); set_nz(A);
prefetch(); prefetch();
@ -1278,8 +1278,8 @@ sbc_ce_imm
sbc_ce_zpg sbc_ce_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(B|TMP); TMP2 = read(B|TMP);
do_sbc(TMP); do_sbc(TMP2);
if(P & F_D) if(P & F_D)
set_nz(A); set_nz(A);
prefetch(); prefetch();
@ -1287,8 +1287,8 @@ sbc_ce_zpg
sbc_ce_zpx sbc_ce_zpx
TMP = read_pc(); TMP = read_pc();
read(TMP); read(TMP);
TMP = read(B|uint8_t(TMP+X)); TMP2 = read(B|uint8_t(TMP+X));
do_sbc(TMP); do_sbc(TMP2);
if(P & F_D) if(P & F_D)
set_nz(A); set_nz(A);
prefetch(); prefetch();

View File

@ -235,8 +235,8 @@ brk_m_imp
adc_m_aba adc_m_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read_data(TMP); TMP2 = read_data(TMP);
do_adc(TMP); do_adc(TMP2);
prefetch(); prefetch();
adc_m_abx adc_m_abx
@ -244,8 +244,8 @@ adc_m_abx
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+X)); read_dummy(set_l(TMP, TMP+X));
TMP += X; TMP += X;
TMP = read_data(TMP); TMP2 = read_data(TMP);
do_adc(TMP); do_adc(TMP2);
prefetch(); prefetch();
adc_m_aby adc_m_aby
@ -253,8 +253,8 @@ adc_m_aby
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP += Y; TMP += Y;
TMP = read_data(TMP); TMP2 = read_data(TMP);
do_adc(TMP); do_adc(TMP2);
prefetch(); prefetch();
adc_m_idx adc_m_idx
@ -279,8 +279,8 @@ adc_m_zpx
TMP = read_pc_noinc(); TMP = read_pc_noinc();
read_dummy(PC & 0xff); read_dummy(PC & 0xff);
PC++; PC++;
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_adc(TMP); do_adc(TMP2);
prefetch(); prefetch();
and_m_aba and_m_aba
@ -480,8 +480,8 @@ bvs_m_rel
cmp_m_aba cmp_m_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read_data(TMP); TMP2 = read_data(TMP);
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cmp_m_abx cmp_m_abx
@ -489,8 +489,8 @@ cmp_m_abx
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+X)); read_dummy(set_l(TMP, TMP+X));
TMP += X; TMP += X;
TMP = read_data(TMP); TMP2 = read_data(TMP);
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cmp_m_aby cmp_m_aby
@ -498,8 +498,8 @@ cmp_m_aby
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP += Y; TMP += Y;
TMP = read_data(TMP); TMP2 = read_data(TMP);
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cmp_m_idx cmp_m_idx
@ -524,22 +524,22 @@ cmp_m_zpx
TMP = read_pc_noinc(); TMP = read_pc_noinc();
read_dummy(PC & 0xff); read_dummy(PC & 0xff);
PC++; PC++;
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cpx_m_aba cpx_m_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read_data(TMP); TMP2 = read_data(TMP);
do_cmp(X, TMP); do_cmp(X, TMP2);
prefetch(); prefetch();
cpy_m_aba cpy_m_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read_data(TMP); TMP2 = read_data(TMP);
do_cmp(Y, TMP); do_cmp(Y, TMP2);
prefetch(); prefetch();
dec_m_aba dec_m_aba
@ -1010,8 +1010,8 @@ rts_m_imp
sbc_m_aba sbc_m_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read_data(TMP); TMP2 = read_data(TMP);
do_sbc(TMP); do_sbc(TMP2);
prefetch(); prefetch();
sbc_m_abx sbc_m_abx
@ -1019,8 +1019,8 @@ sbc_m_abx
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+X)); read_dummy(set_l(TMP, TMP+X));
TMP += X; TMP += X;
TMP = read_data(TMP); TMP2 = read_data(TMP);
do_sbc(TMP); do_sbc(TMP2);
prefetch(); prefetch();
sbc_m_aby sbc_m_aby
@ -1028,8 +1028,8 @@ sbc_m_aby
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP += Y; TMP += Y;
TMP = read_data(TMP); TMP2 = read_data(TMP);
do_sbc(TMP); do_sbc(TMP2);
prefetch(); prefetch();
sbc_m_idx sbc_m_idx
@ -1054,8 +1054,8 @@ sbc_m_zpx
TMP = read_pc_noinc(); TMP = read_pc_noinc();
read_dummy(PC & 0xff); read_dummy(PC & 0xff);
PC++; PC++;
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_sbc(TMP); do_sbc(TMP2);
prefetch(); prefetch();
sta_m_aba sta_m_aba
@ -1162,11 +1162,11 @@ sty_m_zpx
adct_aba adct_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(TMP);
do_adct(TMP); do_adct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
adct_abx adct_abx
@ -1174,11 +1174,11 @@ adct_abx
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+X)); read_dummy(set_l(TMP, TMP+X));
TMP += X; TMP += X;
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
do_adct(TMP); do_adct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
adct_aby adct_aby
@ -1186,11 +1186,11 @@ adct_aby
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP += Y; TMP += Y;
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
do_adct(TMP); do_adct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
adct_idx adct_idx
@ -1200,11 +1200,11 @@ adct_idx
TMP2 += X; TMP2 += X;
TMP = read(TMP2 & 0xff); TMP = read(TMP2 & 0xff);
TMP = set_h(TMP, read((TMP2+1) & 0xff)); TMP = set_h(TMP, read((TMP2+1) & 0xff));
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
do_adct(TMP); do_adct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
adct_idy adct_idy
@ -1212,11 +1212,11 @@ adct_idy
TMP = read(TMP2); TMP = read(TMP2);
TMP = set_h(TMP, read((TMP2+1) & 0xff)); TMP = set_h(TMP, read((TMP2+1) & 0xff));
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP = read_data(TMP+Y); TMP2 = read_data(TMP+Y);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
do_adct(TMP); do_adct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
adct_imm adct_imm
@ -1229,33 +1229,33 @@ adct_imm
adct_zpg adct_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
do_adct(TMP); do_adct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
adct_zpx adct_zpx
TMP = read_pc_noinc(); TMP = read_pc_noinc();
read_dummy(PC & 0xff); read_dummy(PC & 0xff);
PC++; PC++;
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
do_adct(TMP); do_adct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
andt_aba andt_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 &= TMP; TMP &= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
andt_abx andt_abx
@ -1263,12 +1263,12 @@ andt_abx
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+X)); read_dummy(set_l(TMP, TMP+X));
TMP += X; TMP += X;
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 &= TMP; TMP &= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
andt_aby andt_aby
@ -1276,12 +1276,12 @@ andt_aby
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP += Y; TMP += Y;
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 &= TMP; TMP &= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
andt_imm andt_imm
@ -1300,12 +1300,12 @@ andt_idx
TMP2 += X; TMP2 += X;
TMP = read(TMP2 & 0xff); TMP = read(TMP2 & 0xff);
TMP = set_h(TMP, read((TMP2+1) & 0xff)); TMP = set_h(TMP, read((TMP2+1) & 0xff));
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 &= TMP; TMP &= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
andt_idy andt_idy
@ -1313,42 +1313,42 @@ andt_idy
TMP = read(TMP2); TMP = read(TMP2);
TMP = set_h(TMP, read((TMP2+1) & 0xff)); TMP = set_h(TMP, read((TMP2+1) & 0xff));
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP = read_data(TMP+Y); TMP2 = read_data(TMP+Y);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 &= TMP; TMP &= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
andt_zpg andt_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 &= TMP; TMP &= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
andt_zpx andt_zpx
TMP = read_pc_noinc(); TMP = read_pc_noinc();
read_dummy(PC & 0xff); read_dummy(PC & 0xff);
PC++; PC++;
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 &= TMP; TMP &= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
cmpt_aba cmpt_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
do_cmp(TMP2, TMP); do_cmp(TMP, TMP2);
prefetch(); prefetch();
cmpt_abx cmpt_abx
@ -1356,9 +1356,9 @@ cmpt_abx
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+X)); read_dummy(set_l(TMP, TMP+X));
TMP += X; TMP += X;
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
do_cmp(TMP2, TMP); do_cmp(TMP, TMP2);
prefetch(); prefetch();
cmpt_aby cmpt_aby
@ -1366,9 +1366,9 @@ cmpt_aby
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP += Y; TMP += Y;
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
do_cmp(TMP2, TMP); do_cmp(TMP, TMP2);
prefetch(); prefetch();
cmpt_idx cmpt_idx
@ -1378,9 +1378,9 @@ cmpt_idx
TMP2 += X; TMP2 += X;
TMP = read(TMP2 & 0xff); TMP = read(TMP2 & 0xff);
TMP = set_h(TMP, read((TMP2+1) & 0xff)); TMP = set_h(TMP, read((TMP2+1) & 0xff));
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
do_cmp(TMP2, TMP); do_cmp(TMP, TMP2);
prefetch(); prefetch();
cmpt_idy cmpt_idy
@ -1388,9 +1388,9 @@ cmpt_idy
TMP = read(TMP2); TMP = read(TMP2);
TMP = set_h(TMP, read((TMP2+1) & 0xff)); TMP = set_h(TMP, read((TMP2+1) & 0xff));
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP = read_data(TMP+Y); TMP2 = read_data(TMP+Y);
TMP2 = read(X); TMP = read(X);
do_cmp(TMP2, read(TMP+Y)); do_cmp(TMP, read(TMP2+Y));
prefetch(); prefetch();
cmpt_imm cmpt_imm
@ -1401,29 +1401,29 @@ cmpt_imm
cmpt_zpg cmpt_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
TMP2 = read(X); TMP = read(X);
do_cmp(TMP2, TMP); do_cmp(TMP, TMP2);
prefetch(); prefetch();
cmpt_zpx cmpt_zpx
TMP = read_pc_noinc(); TMP = read_pc_noinc();
read_dummy(PC & 0xff); read_dummy(PC & 0xff);
PC++; PC++;
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
TMP2 = read(X); TMP = read(X);
do_cmp(TMP2, TMP); do_cmp(TMP, TMP2);
prefetch(); prefetch();
eort_aba eort_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 ^= TMP; TMP ^= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
eort_abx eort_abx
@ -1431,12 +1431,12 @@ eort_abx
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+X)); read_dummy(set_l(TMP, TMP+X));
TMP += X; TMP += X;
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 ^= TMP; TMP ^= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
eort_aby eort_aby
@ -1444,12 +1444,12 @@ eort_aby
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP += Y; TMP += Y;
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 ^= TMP; TMP ^= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
eort_idx eort_idx
@ -1459,12 +1459,12 @@ eort_idx
TMP2 += X; TMP2 += X;
TMP = read(TMP2 & 0xff); TMP = read(TMP2 & 0xff);
TMP = set_h(TMP, read((TMP2+1) & 0xff)); TMP = set_h(TMP, read((TMP2+1) & 0xff));
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 ^= TMP; TMP ^= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
eort_idy eort_idy
@ -1472,12 +1472,12 @@ eort_idy
TMP = read(TMP2); TMP = read(TMP2);
TMP = set_h(TMP, read((TMP2+1) & 0xff)); TMP = set_h(TMP, read((TMP2+1) & 0xff));
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP = read_data(TMP+Y); TMP2 = read_data(TMP+Y);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 ^= TMP; TMP ^= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
eort_imm eort_imm
@ -1491,24 +1491,24 @@ eort_imm
eort_zpg eort_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 ^= TMP; TMP ^= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
eort_zpx eort_zpx
TMP = read_pc_noinc(); TMP = read_pc_noinc();
read_dummy(PC & 0xff); read_dummy(PC & 0xff);
PC++; PC++;
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 ^= TMP; TMP ^= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
ldt_aba ldt_aba
@ -1594,12 +1594,12 @@ ldt_zpx
ort_aba ort_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 |= TMP; TMP |= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
ort_abx ort_abx
@ -1607,12 +1607,12 @@ ort_abx
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+X)); read_dummy(set_l(TMP, TMP+X));
TMP += X; TMP += X;
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 |= TMP; TMP |= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
ort_aby ort_aby
@ -1620,12 +1620,12 @@ ort_aby
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP += Y; TMP += Y;
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 |= TMP; TMP |= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
ort_imm ort_imm
@ -1644,12 +1644,12 @@ ort_idx
TMP2 += X; TMP2 += X;
TMP = read(TMP2 & 0xff); TMP = read(TMP2 & 0xff);
TMP = set_h(TMP, read((TMP2+1) & 0xff)); TMP = set_h(TMP, read((TMP2+1) & 0xff));
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 |= TMP; TMP |= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
ort_idy ort_idy
@ -1657,44 +1657,44 @@ ort_idy
TMP = read(TMP2); TMP = read(TMP2);
TMP = set_h(TMP, read((TMP2+1) & 0xff)); TMP = set_h(TMP, read((TMP2+1) & 0xff));
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP = read_data(TMP+Y); TMP2 = read_data(TMP+Y);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 |= TMP; TMP |= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
ort_zpg ort_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 |= TMP; TMP |= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
ort_zpx ort_zpx
TMP = read_pc_noinc(); TMP = read_pc_noinc();
read_dummy(PC & 0xff); read_dummy(PC & 0xff);
PC++; PC++;
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
TMP2 |= TMP; TMP |= TMP2;
set_nz(TMP2); set_nz(TMP);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
sbct_aba sbct_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
do_sbct(TMP); do_sbct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
sbct_abx sbct_abx
@ -1702,11 +1702,11 @@ sbct_abx
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+X)); read_dummy(set_l(TMP, TMP+X));
TMP += X; TMP += X;
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
do_sbct(TMP); do_sbct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
sbct_aby sbct_aby
@ -1714,11 +1714,11 @@ sbct_aby
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP += Y; TMP += Y;
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
do_sbct(TMP); do_sbct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
sbct_idx sbct_idx
@ -1728,11 +1728,11 @@ sbct_idx
TMP2 += X; TMP2 += X;
TMP = read(TMP2 & 0xff); TMP = read(TMP2 & 0xff);
TMP = set_h(TMP, read((TMP2+1) & 0xff)); TMP = set_h(TMP, read((TMP2+1) & 0xff));
TMP = read_data(TMP); TMP2 = read_data(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
do_sbct(TMP); do_sbct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
sbct_idy sbct_idy
@ -1740,11 +1740,11 @@ sbct_idy
TMP = read(TMP2); TMP = read(TMP2);
TMP = set_h(TMP, read((TMP2+1) & 0xff)); TMP = set_h(TMP, read((TMP2+1) & 0xff));
read_dummy(set_l(TMP, TMP+Y)); read_dummy(set_l(TMP, TMP+Y));
TMP = read_data(TMP+Y); TMP2 = read_data(TMP+Y);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
do_sbct(TMP); do_sbct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
sbct_imm sbct_imm
@ -1757,20 +1757,20 @@ sbct_imm
sbct_zpg sbct_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
do_sbct(TMP); do_sbct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();
sbct_zpx sbct_zpx
TMP = read_pc_noinc(); TMP = read_pc_noinc();
read_dummy(PC & 0xff); read_dummy(PC & 0xff);
PC++; PC++;
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
TMP2 = read(X); TMP = read(X);
read_dummy(X); read_dummy(X);
do_sbct(TMP); do_sbct(TMP2);
write(X, TMP2); write(X, TMP);
prefetch(); prefetch();

View File

@ -4,8 +4,8 @@
adc_nd_aba adc_nd_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read(TMP); TMP2 = read(TMP);
do_adc_nd(TMP); do_adc_nd(TMP2);
prefetch(); prefetch();
adc_nd_abx adc_nd_abx
@ -15,8 +15,8 @@ adc_nd_abx
read(set_l(TMP, TMP+X)); read(set_l(TMP, TMP+X));
} }
TMP += X; TMP += X;
TMP = read(TMP); TMP2 = read(TMP);
do_adc_nd(TMP); do_adc_nd(TMP2);
prefetch(); prefetch();
adc_nd_aby adc_nd_aby
@ -26,8 +26,8 @@ adc_nd_aby
read(set_l(TMP, TMP+Y)); read(set_l(TMP, TMP+Y));
} }
TMP += Y; TMP += Y;
TMP = read(TMP); TMP2 = read(TMP);
do_adc_nd(TMP); do_adc_nd(TMP2);
prefetch(); prefetch();
adc_nd_idx adc_nd_idx
@ -56,15 +56,15 @@ adc_nd_imm
adc_nd_zpg adc_nd_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
do_adc_nd(TMP); do_adc_nd(TMP2);
prefetch(); prefetch();
adc_nd_zpx adc_nd_zpx
TMP = read_pc(); TMP = read_pc();
read(TMP); read(TMP);
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_adc_nd(TMP); do_adc_nd(TMP2);
prefetch(); prefetch();
arr_nd_imm arr_nd_imm
@ -155,8 +155,8 @@ rra_nd_zpx
sbc_nd_aba sbc_nd_aba
TMP = read_pc(); TMP = read_pc();
TMP = set_h(TMP, read_pc()); TMP = set_h(TMP, read_pc());
TMP = read(TMP); TMP2 = read(TMP);
do_sbc_nd(TMP); do_sbc_nd(TMP2);
prefetch(); prefetch();
sbc_nd_abx sbc_nd_abx
@ -166,8 +166,8 @@ sbc_nd_abx
read(set_l(TMP, TMP+X)); read(set_l(TMP, TMP+X));
} }
TMP += X; TMP += X;
TMP = read(TMP); TMP2 = read(TMP);
do_sbc_nd(TMP); do_sbc_nd(TMP2);
prefetch(); prefetch();
sbc_nd_aby sbc_nd_aby
@ -177,8 +177,8 @@ sbc_nd_aby
read(set_l(TMP, TMP+Y)); read(set_l(TMP, TMP+Y));
} }
TMP += Y; TMP += Y;
TMP = read(TMP); TMP2 = read(TMP);
do_sbc_nd(TMP); do_sbc_nd(TMP2);
prefetch(); prefetch();
sbc_nd_idx sbc_nd_idx
@ -207,15 +207,15 @@ sbc_nd_imm
sbc_nd_zpg sbc_nd_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
do_sbc_nd(TMP); do_sbc_nd(TMP2);
prefetch(); prefetch();
sbc_nd_zpx sbc_nd_zpx
TMP = read_pc(); TMP = read_pc();
read(TMP); read(TMP);
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_sbc_nd(TMP); do_sbc_nd(TMP2);
prefetch(); prefetch();
isb_nd_aba isb_nd_aba

View File

@ -25,8 +25,8 @@ add_imm
add_zpg add_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read(TMP); TMP2 = read(TMP);
do_add(TMP); do_add(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -36,8 +36,8 @@ add_zpg
add_zpx add_zpx
TMP = read_pc(); TMP = read_pc();
read(TMP); read(TMP);
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_add(TMP); do_add(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);

View File

@ -9,8 +9,8 @@ adc_s_abx
read_pc_noinc(); read_pc_noinc();
} }
TMP += X; TMP += X;
TMP = read(TMP); TMP2 = read(TMP);
do_adc(TMP); do_adc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -25,8 +25,8 @@ adc_s_aby
read_pc_noinc(); read_pc_noinc();
} }
TMP += Y; TMP += Y;
TMP = read(TMP); TMP2 = read(TMP);
do_adc(TMP); do_adc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -66,8 +66,8 @@ adc_s_idy
adc_s_zpx adc_s_zpx
TMP = read_pc_noinc(); TMP = read_pc_noinc();
read_pc_noinc(); read_pc_noinc();
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_adc(TMP); do_adc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -174,8 +174,8 @@ bit_s_abx
bit_s_zpx bit_s_zpx
TMP = read_pc_noinc(); TMP = read_pc_noinc();
read_pc(); read_pc();
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_bit(TMP); do_bit(TMP2);
prefetch(); prefetch();
brk_s_imp brk_s_imp
@ -213,8 +213,8 @@ cmp_s_abx
read_pc_noinc(); read_pc_noinc();
} }
TMP += X; TMP += X;
TMP = read(TMP); TMP2 = read(TMP);
do_cmp(A, TMP); do_cmp(A, TMP2);
PC++; PC++;
prefetch(); prefetch();
@ -225,8 +225,8 @@ cmp_s_aby
read_pc_noinc(); read_pc_noinc();
} }
TMP += Y; TMP += Y;
TMP = read(TMP); TMP2 = read(TMP);
do_cmp(A, TMP); do_cmp(A, TMP2);
PC++; PC++;
prefetch(); prefetch();
@ -709,8 +709,8 @@ sbc_s_abx
read_pc_noinc(); read_pc_noinc();
} }
TMP += X; TMP += X;
TMP = read(TMP); TMP2 = read(TMP);
do_sbc(TMP); do_sbc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -725,8 +725,8 @@ sbc_s_aby
read_pc_noinc(); read_pc_noinc();
} }
TMP += Y; TMP += Y;
TMP = read(TMP); TMP2 = read(TMP);
do_sbc(TMP); do_sbc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);
@ -766,8 +766,8 @@ sbc_s_idy
sbc_s_zpx sbc_s_zpx
TMP = read_pc_noinc(); TMP = read_pc_noinc();
read_pc_noinc(); read_pc_noinc();
TMP = read(uint8_t(TMP+X)); TMP2 = read(uint8_t(TMP+X));
do_sbc(TMP); do_sbc(TMP2);
if(P & F_D) { if(P & F_D) {
read_pc_noinc(); read_pc_noinc();
set_nz(A); set_nz(A);

View File

@ -335,8 +335,8 @@ sta_xav_idx
adc_xav_zpg adc_xav_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read_zeropage(TMP); TMP2 = read_zeropage(TMP);
do_adc(TMP); do_adc(TMP2);
prefetch(); prefetch();
and_xav_zpg and_xav_zpg
@ -360,20 +360,20 @@ bit_xav_zpg
cmp_xav_zpg cmp_xav_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read_zeropage(TMP); TMP2 = read_zeropage(TMP);
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
cpx_xav_zpg cpx_xav_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read_zeropage(TMP); TMP2 = read_zeropage(TMP);
do_cmp(X, TMP); do_cmp(X, TMP2);
prefetch(); prefetch();
cpy_xav_zpg cpy_xav_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read_zeropage(TMP); TMP2 = read_zeropage(TMP);
do_cmp(Y, TMP); do_cmp(Y, TMP2);
prefetch(); prefetch();
dec_xav_zpg dec_xav_zpg
@ -450,8 +450,8 @@ ror_xav_zpg
sbc_xav_zpg sbc_xav_zpg
TMP = read_pc(); TMP = read_pc();
TMP = read_zeropage(TMP); TMP2 = read_zeropage(TMP);
do_sbc(TMP); do_sbc(TMP2);
prefetch(); prefetch();
sta_xav_zpg sta_xav_zpg
@ -579,8 +579,8 @@ sax_xav_zpy
adc_xav_zpx adc_xav_zpx
TMP = read_pc(); TMP = read_pc();
read_zeropage(TMP); // dummy read read_zeropage(TMP); // dummy read
TMP = read_zeropage(uint8_t(TMP+X)); TMP2 = read_zeropage(uint8_t(TMP+X));
do_adc(TMP); do_adc(TMP2);
prefetch(); prefetch();
and_xav_zpx and_xav_zpx
@ -603,8 +603,8 @@ asl_xav_zpx
cmp_xav_zpx cmp_xav_zpx
TMP = read_pc(); TMP = read_pc();
read_zeropage(TMP); // dummy read read_zeropage(TMP); // dummy read
TMP = read_zeropage(uint8_t(TMP+X)); TMP2 = read_zeropage(uint8_t(TMP+X));
do_cmp(A, TMP); do_cmp(A, TMP2);
prefetch(); prefetch();
dec_xav_zpx dec_xav_zpx
@ -690,8 +690,8 @@ ror_xav_zpx
sbc_xav_zpx sbc_xav_zpx
TMP = read_pc(); TMP = read_pc();
read_zeropage(TMP); // dummy read read_zeropage(TMP); // dummy read
TMP = read_zeropage(uint8_t(TMP+X)); TMP2 = read_zeropage(uint8_t(TMP+X));
do_sbc(TMP); do_sbc(TMP2);
prefetch(); prefetch();
sta_xav_zpx sta_xav_zpx

View File

@ -443,8 +443,8 @@ bit_imm
asr_xav_zpg asr_xav_zpg
TMP = read_pc(); // TODO: verify this, should it write back or set A? TMP = read_pc(); // TODO: verify this, should it write back or set A?
TMP = read_zeropage(TMP); TMP2 = read_zeropage(TMP);
do_asr(TMP); do_asr(TMP2);
prefetch(); prefetch();
asr_aba asr_aba