m6502: Add the missing uses_custom_memory_interface. Avoid multiple instructions on one line for when reads at restartable.

This commit is contained in:
Olivier Galibert 2022-09-23 10:22:37 +02:00
parent 7c5569a385
commit 4e1aabff48
6 changed files with 29 additions and 15 deletions

View File

@ -30,7 +30,7 @@ m6502_device::m6502_device(const machine_config &mconfig, device_type type, cons
sync_w(*this), sync_w(*this),
program_config("program", ENDIANNESS_LITTLE, 8, 16), program_config("program", ENDIANNESS_LITTLE, 8, 16),
sprogram_config("decrypted_opcodes", ENDIANNESS_LITTLE, 8, 16), PPC(0), NPC(0), PC(0), SP(0), TMP(0), TMP2(0), A(0), X(0), Y(0), P(0), IR(0), inst_state_base(0), mintf(nullptr), sprogram_config("decrypted_opcodes", ENDIANNESS_LITTLE, 8, 16), PPC(0), NPC(0), PC(0), SP(0), TMP(0), TMP2(0), A(0), X(0), Y(0), P(0), IR(0), inst_state_base(0), mintf(nullptr),
inst_state(0), inst_substate(0), icount(0), nmi_state(false), irq_state(false), apu_irq_state(false), v_state(false), nmi_pending(false), irq_taken(false), sync(false), inhibit_interrupts(false) inst_state(0), inst_substate(0), icount(0), nmi_state(false), irq_state(false), apu_irq_state(false), v_state(false), nmi_pending(false), irq_taken(false), sync(false), inhibit_interrupts(false), uses_custom_memory_interface(false)
{ {
} }

View File

@ -97,7 +97,8 @@ vbl_zpg
# exceptions # exceptions
reset_16 reset_16
P |= F_I; PC = read_arg(0xfff1); P |= F_I;
PC = read_arg(0xfff1);
PC = set_h(PC, read_arg(0xfff0)); PC = set_h(PC, read_arg(0xfff0));
prefetch(); prefetch();
inst_state = -1; inst_state = -1;

View File

@ -1220,10 +1220,14 @@ tya_imp
reset reset
read_pc_noinc(); read_pc_noinc();
read_pc_noinc(); read_pc_noinc();
read(SP); dec_SP(); read(SP);
read(SP); dec_SP(); dec_SP();
read(SP); dec_SP(); read(SP);
P |= F_I; PC = read_arg(0xfffc); dec_SP();
read(SP);
dec_SP();
P |= F_I;
PC = read_arg(0xfffc);
PC = set_h(PC, read_arg(0xfffd)); PC = set_h(PC, read_arg(0xfffd));
prefetch(); prefetch();
inst_state = -1; inst_state = -1;

View File

@ -775,9 +775,12 @@ wai_imp
reset_c reset_c
read_arg(0xffff); read_arg(0xffff);
read_pc_noinc(); read_pc_noinc();
read(SP); dec_SP(); read(SP);
read(SP); dec_SP(); dec_SP();
read(SP); dec_SP(); read(SP);
dec_SP();
read(SP);
dec_SP();
P = (P | F_I) & ~F_D; P = (P | F_I) & ~F_D;
PC = read_arg(0xfffc); PC = read_arg(0xfffc);
PC = set_h(PC, read_arg(0xfffd)); PC = set_h(PC, read_arg(0xfffd));

View File

@ -435,9 +435,12 @@ twa_imp
reset_r reset_r
read_pc(); read_pc();
read_pc_noinc(); read_pc_noinc();
read(SP); dec_SP(); read(SP);
read(SP); dec_SP(); dec_SP();
read(SP); dec_SP(); read(SP);
dec_SP();
read(SP);
dec_SP();
P = (P | F_I) & ~F_D; P = (P | F_I) & ~F_D;
PC = read_arg(0xfffe); PC = read_arg(0xfffe);
PC = set_h(PC, read_arg(0xffff)); PC = set_h(PC, read_arg(0xffff));

View File

@ -865,9 +865,12 @@ tsb_s_zpg
reset_s reset_s
read_arg(0xffff); read_arg(0xffff);
read_pc_noinc(); read_pc_noinc();
read(SP); dec_SP(); read(SP);
read(SP); dec_SP(); dec_SP();
read(SP); dec_SP(); read(SP);
dec_SP();
read(SP);
dec_SP();
P = (P | F_I) & ~F_D; P = (P | F_I) & ~F_D;
PC = read_vector(0xfffc); PC = read_vector(0xfffc);
PC = set_h(PC, read_vector(0xfffd)); PC = set_h(PC, read_vector(0xfffd));