mirror of
https://github.com/jborza/emu6502.git
synced 2024-11-21 23:31:19 +00:00
TXA, TAX, TYA, TAY tests
This commit is contained in:
parent
f1e79589f3
commit
5000f27a0f
73
test6502.c
73
test6502.c
@ -1064,6 +1064,77 @@ void test_INY() {
|
|||||||
test_cleanup(&state);
|
test_cleanup(&state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TXA, TAX, TYA, TAY
|
||||||
|
|
||||||
|
void test_TXA() {
|
||||||
|
State6502 state = create_blank_state();
|
||||||
|
state.x = 0xEE;
|
||||||
|
|
||||||
|
char program[] = { TXA };
|
||||||
|
memcpy(state.memory, program, sizeof(program));
|
||||||
|
|
||||||
|
test_step(&state);
|
||||||
|
|
||||||
|
assertA(&state, 0xEE);
|
||||||
|
assert_flag_z(&state, 0);
|
||||||
|
assert_flag_n(&state, 1);
|
||||||
|
|
||||||
|
test_cleanup(&state);
|
||||||
|
}
|
||||||
|
|
||||||
|
void test_TAX() {
|
||||||
|
State6502 state = create_blank_state();
|
||||||
|
state.a = 0xEE;
|
||||||
|
|
||||||
|
char program[] = { TAX };
|
||||||
|
memcpy(state.memory, program, sizeof(program));
|
||||||
|
|
||||||
|
test_step(&state);
|
||||||
|
|
||||||
|
assertX(&state, 0xEE);
|
||||||
|
assert_flag_z(&state, 0);
|
||||||
|
assert_flag_n(&state, 1);
|
||||||
|
|
||||||
|
test_cleanup(&state);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void test_TYA() {
|
||||||
|
State6502 state = create_blank_state();
|
||||||
|
state.y = 0xEE;
|
||||||
|
|
||||||
|
char program[] = { TYA };
|
||||||
|
memcpy(state.memory, program, sizeof(program));
|
||||||
|
|
||||||
|
test_step(&state);
|
||||||
|
|
||||||
|
assertA(&state, 0xEE);
|
||||||
|
assert_flag_z(&state, 0);
|
||||||
|
assert_flag_n(&state, 1);
|
||||||
|
|
||||||
|
test_cleanup(&state);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void test_TAY() {
|
||||||
|
State6502 state = create_blank_state();
|
||||||
|
state.a = 0xEE;
|
||||||
|
|
||||||
|
char program[] = { TAY };
|
||||||
|
memcpy(state.memory, program, sizeof(program));
|
||||||
|
|
||||||
|
test_step(&state);
|
||||||
|
|
||||||
|
assertY(&state, 0xEE);
|
||||||
|
assert_flag_z(&state, 0);
|
||||||
|
assert_flag_n(&state, 1);
|
||||||
|
|
||||||
|
test_cleanup(&state);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////
|
/////////////////////
|
||||||
|
|
||||||
typedef void fp();
|
typedef void fp();
|
||||||
@ -1075,6 +1146,7 @@ fp* tests_ldy[] = { test_LDY_IMM, test_LDY_ZP, test_LDY_ZPX, test_LDY_ABS, test_
|
|||||||
fp* tests_stx[] = { test_STX_ZP, test_STX_ZPY, test_STX_ABS};
|
fp* tests_stx[] = { test_STX_ZP, test_STX_ZPY, test_STX_ABS};
|
||||||
fp* tests_sty[] = { test_STY_ZP, test_STY_ZPX, test_STY_ABS };
|
fp* tests_sty[] = { test_STY_ZP, test_STY_ZPX, test_STY_ABS };
|
||||||
fp* tests_inx_iny_dex_dey[] = { test_DEX, test_DEX_wraparound, test_DEY, test_DEY_wraparound, test_INX, test_INX_wraparound, test_INY, test_INY_wraparound};
|
fp* tests_inx_iny_dex_dey[] = { test_DEX, test_DEX_wraparound, test_DEY, test_DEY_wraparound, test_INX, test_INX_wraparound, test_INY, test_INY_wraparound};
|
||||||
|
fp* tests_txa_etc[] = { test_TXA, test_TAX, test_TYA, test_TAY };
|
||||||
|
|
||||||
#define RUN(suite) run_suite(suite, sizeof(suite)/sizeof(fp*))
|
#define RUN(suite) run_suite(suite, sizeof(suite)/sizeof(fp*))
|
||||||
|
|
||||||
@ -1093,4 +1165,5 @@ void run_tests() {
|
|||||||
RUN(tests_stx);
|
RUN(tests_stx);
|
||||||
RUN(tests_sty);
|
RUN(tests_sty);
|
||||||
RUN(tests_inx_iny_dex_dey);
|
RUN(tests_inx_iny_dex_dey);
|
||||||
|
RUN(tests_txa_etc);
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user