From 4e1aabff48b957d877191f14a5378af4d38e4847 Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Fri, 23 Sep 2022 10:22:37 +0200 Subject: m6502: Add the missing uses_custom_memory_interface. Avoid multiple instructions on one line for when reads at restartable. --- src/devices/cpu/m6502/m6502.cpp | 2 +- src/devices/cpu/m6502/odeco16.lst | 3 ++- src/devices/cpu/m6502/om6502.lst | 12 ++++++++---- src/devices/cpu/m6502/om65c02.lst | 9 ++++++--- src/devices/cpu/m6502/or65c19.lst | 9 ++++++--- src/devices/cpu/m6502/ow65c02s.lst | 9 ++++++--- 6 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/devices/cpu/m6502/m6502.cpp b/src/devices/cpu/m6502/m6502.cpp index cee985adeb3..55276aeba00 100644 --- a/src/devices/cpu/m6502/m6502.cpp +++ b/src/devices/cpu/m6502/m6502.cpp @@ -30,7 +30,7 @@ m6502_device::m6502_device(const machine_config &mconfig, device_type type, cons sync_w(*this), 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), - 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) { } diff --git a/src/devices/cpu/m6502/odeco16.lst b/src/devices/cpu/m6502/odeco16.lst index 53f9e1b1977..ebcac8522a7 100644 --- a/src/devices/cpu/m6502/odeco16.lst +++ b/src/devices/cpu/m6502/odeco16.lst @@ -97,7 +97,8 @@ vbl_zpg # exceptions reset_16 - P |= F_I; PC = read_arg(0xfff1); + P |= F_I; + PC = read_arg(0xfff1); PC = set_h(PC, read_arg(0xfff0)); prefetch(); inst_state = -1; diff --git a/src/devices/cpu/m6502/om6502.lst b/src/devices/cpu/m6502/om6502.lst index 91219eb30fe..0fe5d0edeb9 100644 --- a/src/devices/cpu/m6502/om6502.lst +++ b/src/devices/cpu/m6502/om6502.lst @@ -1220,10 +1220,14 @@ tya_imp reset read_pc_noinc(); read_pc_noinc(); - read(SP); dec_SP(); - read(SP); dec_SP(); - read(SP); dec_SP(); - P |= F_I; PC = read_arg(0xfffc); + read(SP); + dec_SP(); + read(SP); + dec_SP(); + read(SP); + dec_SP(); + P |= F_I; + PC = read_arg(0xfffc); PC = set_h(PC, read_arg(0xfffd)); prefetch(); inst_state = -1; diff --git a/src/devices/cpu/m6502/om65c02.lst b/src/devices/cpu/m6502/om65c02.lst index b1db307504b..62eb0a31cf1 100644 --- a/src/devices/cpu/m6502/om65c02.lst +++ b/src/devices/cpu/m6502/om65c02.lst @@ -775,9 +775,12 @@ wai_imp reset_c read_arg(0xffff); read_pc_noinc(); - read(SP); dec_SP(); - read(SP); dec_SP(); - read(SP); dec_SP(); + read(SP); + dec_SP(); + read(SP); + dec_SP(); + read(SP); + dec_SP(); P = (P | F_I) & ~F_D; PC = read_arg(0xfffc); PC = set_h(PC, read_arg(0xfffd)); diff --git a/src/devices/cpu/m6502/or65c19.lst b/src/devices/cpu/m6502/or65c19.lst index b107e8fe9e6..34ff488eadb 100644 --- a/src/devices/cpu/m6502/or65c19.lst +++ b/src/devices/cpu/m6502/or65c19.lst @@ -435,9 +435,12 @@ twa_imp reset_r read_pc(); read_pc_noinc(); - read(SP); dec_SP(); - read(SP); dec_SP(); - read(SP); dec_SP(); + read(SP); + dec_SP(); + read(SP); + dec_SP(); + read(SP); + dec_SP(); P = (P | F_I) & ~F_D; PC = read_arg(0xfffe); PC = set_h(PC, read_arg(0xffff)); diff --git a/src/devices/cpu/m6502/ow65c02s.lst b/src/devices/cpu/m6502/ow65c02s.lst index f4775615f65..a5d334389a9 100644 --- a/src/devices/cpu/m6502/ow65c02s.lst +++ b/src/devices/cpu/m6502/ow65c02s.lst @@ -865,9 +865,12 @@ tsb_s_zpg reset_s read_arg(0xffff); read_pc_noinc(); - read(SP); dec_SP(); - read(SP); dec_SP(); - read(SP); dec_SP(); + read(SP); + dec_SP(); + read(SP); + dec_SP(); + read(SP); + dec_SP(); P = (P | F_I) & ~F_D; PC = read_vector(0xfffc); PC = set_h(PC, read_vector(0xfffd)); -- cgit v1.2.3