diff options
Diffstat (limited to 'src/devices/cpu/f8/f8.cpp')
-rw-r--r-- | src/devices/cpu/f8/f8.cpp | 267 |
1 files changed, 116 insertions, 151 deletions
diff --git a/src/devices/cpu/f8/f8.cpp b/src/devices/cpu/f8/f8.cpp index ce09d9ca835..a62c3037617 100644 --- a/src/devices/cpu/f8/f8.cpp +++ b/src/devices/cpu/f8/f8.cpp @@ -46,7 +46,6 @@ #include "emu.h" #include "f8.h" #include "f8dasm.h" -#include "debugger.h" /* status flags */ @@ -67,13 +66,22 @@ DEFINE_DEVICE_TYPE(F8, f8_cpu_device, "f8", "Fairchild F8") f8_cpu_device::f8_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : cpu_device(mconfig, F8, tag, owner, clock), m_program_config("program", ENDIANNESS_BIG, 8, 16, 0), - m_io_config("io", ENDIANNESS_BIG, 8, 8, 0) + m_regs_config("register", ENDIANNESS_BIG, 8, 6, 0, address_map_constructor(FUNC(f8_cpu_device::regs_map), this)), + m_io_config("io", ENDIANNESS_BIG, 8, 8, 0), + m_romc08_callback(*this, 0) { } +void f8_cpu_device::regs_map(address_map &map) +{ + // 64-byte internal scratchpad RAM + map(0x00, 0x3f).ram().share("regs"); +} + device_memory_interface::space_config_vector f8_cpu_device::memory_space_config() const { return space_config_vector { std::make_pair(AS_PROGRAM, &m_program_config), + std::make_pair(AS_DATA, &m_regs_config), std::make_pair(AS_IO, &m_io_config) }; } @@ -100,9 +108,9 @@ void f8_cpu_device::state_string_export(const device_state_entry &entry, std::st void f8_cpu_device::device_start() { - m_program = &space(AS_PROGRAM); - m_cache = m_program->cache<0, 0, ENDIANNESS_BIG>(); - m_iospace = &space(AS_IO); + space(AS_PROGRAM).cache(m_program); + space(AS_DATA).cache(m_r); + space(AS_IO).specific(m_ios); // zerofill m_debug_pc = 0; @@ -116,7 +124,6 @@ void f8_cpu_device::device_start() m_dbus = 0; m_io = 0; m_irq_vector = 0; - memset(m_r, 0, sizeof(m_r)); m_irq_request = 0; // register for savestates @@ -132,80 +139,35 @@ void f8_cpu_device::device_start() save_item(NAME(m_io)); save_item(NAME(m_irq_vector)); save_item(NAME(m_irq_request)); - save_item(NAME(m_r)); // register for debugger - state_add( F8_PC0, "PC0", m_pc0).formatstr("%04X"); - state_add( F8_PC1, "PC1", m_pc1).formatstr("%04X"); - state_add( F8_DC0, "DC0", m_dc0).formatstr("%04X"); - state_add( F8_DC1, "DC1", m_dc1).formatstr("%04X"); - state_add( F8_W, "W", m_w).formatstr("%02X"); - state_add( F8_A, "A", m_a).formatstr("%02X"); - state_add( F8_IS, "IS", m_is).mask(0x3f).formatstr("%02X"); - state_add( F8_J, "J", m_r[9]).formatstr("%02X"); - state_add( F8_HU, "HU", m_r[10]).formatstr("%02X"); - state_add( F8_HL, "HL", m_r[11]).formatstr("%02X"); - state_add( F8_KU, "KU", m_r[12]).formatstr("%02X"); - state_add( F8_KL, "KL", m_r[13]).formatstr("%02X"); - state_add( F8_QU, "QU", m_r[14]).formatstr("%02X"); - state_add( F8_QL, "QL", m_r[15]).formatstr("%02X"); - state_add( F8_R0, "R0", m_r[0]).formatstr("%02X"); - state_add( F8_R1, "R1", m_r[1]).formatstr("%02X"); - state_add( F8_R2, "R2", m_r[2]).formatstr("%02X"); - state_add( F8_R3, "R3", m_r[3]).formatstr("%02X"); - state_add( F8_R4, "R4", m_r[4]).formatstr("%02X"); - state_add( F8_R5, "R5", m_r[5]).formatstr("%02X"); - state_add( F8_R6, "R6", m_r[6]).formatstr("%02X"); - state_add( F8_R7, "R7", m_r[7]).formatstr("%02X"); - state_add( F8_R8, "R8", m_r[8]).formatstr("%02X"); - state_add( F8_R16, "R16", m_r[16]).formatstr("%02X"); - state_add( F8_R17, "R17", m_r[17]).formatstr("%02X"); - state_add( F8_R18, "R18", m_r[18]).formatstr("%02X"); - state_add( F8_R19, "R19", m_r[19]).formatstr("%02X"); - state_add( F8_R20, "R20", m_r[20]).formatstr("%02X"); - state_add( F8_R21, "R21", m_r[21]).formatstr("%02X"); - state_add( F8_R22, "R22", m_r[22]).formatstr("%02X"); - state_add( F8_R23, "R23", m_r[23]).formatstr("%02X"); - state_add( F8_R24, "R24", m_r[24]).formatstr("%02X"); - state_add( F8_R25, "R25", m_r[25]).formatstr("%02X"); - state_add( F8_R26, "R26", m_r[26]).formatstr("%02X"); - state_add( F8_R27, "R27", m_r[27]).formatstr("%02X"); - state_add( F8_R28, "R28", m_r[28]).formatstr("%02X"); - state_add( F8_R29, "R29", m_r[29]).formatstr("%02X"); - state_add( F8_R30, "R30", m_r[30]).formatstr("%02X"); - state_add( F8_R31, "R31", m_r[31]).formatstr("%02X"); - state_add( F8_R32, "R32", m_r[32]).formatstr("%02X"); - state_add( F8_R33, "R33", m_r[33]).formatstr("%02X"); - state_add( F8_R34, "R34", m_r[34]).formatstr("%02X"); - state_add( F8_R35, "R35", m_r[35]).formatstr("%02X"); - state_add( F8_R36, "R36", m_r[36]).formatstr("%02X"); - state_add( F8_R37, "R37", m_r[37]).formatstr("%02X"); - state_add( F8_R38, "R38", m_r[38]).formatstr("%02X"); - state_add( F8_R39, "R39", m_r[39]).formatstr("%02X"); - state_add( F8_R40, "R40", m_r[40]).formatstr("%02X"); - state_add( F8_R41, "R41", m_r[41]).formatstr("%02X"); - state_add( F8_R42, "R42", m_r[42]).formatstr("%02X"); - state_add( F8_R43, "R43", m_r[43]).formatstr("%02X"); - state_add( F8_R44, "R44", m_r[44]).formatstr("%02X"); - state_add( F8_R45, "R45", m_r[45]).formatstr("%02X"); - state_add( F8_R46, "R46", m_r[46]).formatstr("%02X"); - state_add( F8_R47, "R47", m_r[47]).formatstr("%02X"); - state_add( F8_R48, "R48", m_r[48]).formatstr("%02X"); - state_add( F8_R49, "R49", m_r[49]).formatstr("%02X"); - state_add( F8_R50, "R50", m_r[50]).formatstr("%02X"); - state_add( F8_R51, "R51", m_r[51]).formatstr("%02X"); - state_add( F8_R52, "R52", m_r[52]).formatstr("%02X"); - state_add( F8_R53, "R53", m_r[53]).formatstr("%02X"); - state_add( F8_R54, "R54", m_r[54]).formatstr("%02X"); - state_add( F8_R55, "R55", m_r[55]).formatstr("%02X"); - state_add( F8_R56, "R56", m_r[56]).formatstr("%02X"); - state_add( F8_R57, "R57", m_r[57]).formatstr("%02X"); - state_add( F8_R58, "R58", m_r[58]).formatstr("%02X"); - state_add( F8_R59, "R59", m_r[59]).formatstr("%02X"); - state_add( F8_R60, "R60", m_r[60]).formatstr("%02X"); - state_add( F8_R61, "R61", m_r[61]).formatstr("%02X"); - state_add( F8_R62, "R62", m_r[62]).formatstr("%02X"); - state_add( F8_R63, "R63", m_r[63]).formatstr("%02X"); + state_add(F8_PC0, "PC0", m_pc0); + state_add(F8_PC1, "PC1", m_pc1); + state_add(F8_DC0, "DC0", m_dc0); + state_add(F8_DC1, "DC1", m_dc1); + state_add(F8_W, "W", m_w).mask(0x1f); + state_add(F8_A, "A", m_a); + state_add(F8_IS, "IS", m_is).mask(0x3f); + + u8 *regs = static_cast<u8 *>(memshare("regs")->ptr()); + for (int r = 0; r < 9; r++) + state_add(F8_R0 + r, string_format("R%d", r).c_str(), regs[r]); + state_add(F8_J, "J", regs[9]); + state_add<u16>(F8_H, "H", + [regs]() { return u16(regs[10]) << 8 | regs[11]; }, + [regs](u16 data) { regs[10] = data >> 8; regs[11] = data & 0xff; }); + state_add<u16>(F8_K, "K", + [regs]() { return u16(regs[12]) << 8 | regs[13]; }, + [regs](u16 data) { regs[12] = data >> 8; regs[13] = data & 0xff; }); + state_add<u16>(F8_Q, "Q", + [regs]() { return u16(regs[14]) << 8 | regs[15]; }, + [regs](u16 data) { regs[14] = data >> 8; regs[15] = data & 0xff; }); + state_add(F8_HU, "HU", regs[10]).noshow(); + state_add(F8_HL, "HL", regs[11]).noshow(); + state_add(F8_KU, "KU", regs[12]).noshow(); + state_add(F8_KL, "KL", regs[13]).noshow(); + state_add(F8_QU, "QU", regs[14]).noshow(); + state_add(F8_QL, "QL", regs[15]).noshow(); state_add(STATE_GENPC, "GENPC", m_debug_pc).formatstr("%04X").noshow(); state_add(STATE_GENPCBASE, "CURPC", m_debug_pc).formatstr("%04X").noshow(); @@ -318,8 +280,7 @@ void f8_cpu_device::ROMC_00(int insttim) * code addressed by PC0; then all devices increment the contents * of PC0. */ - - m_dbus = m_cache->read_byte(m_pc0); + m_dbus = m_program.read_byte(m_pc0); m_pc0 += 1; m_icount -= insttim; /* ROMC00 is usually short, not short+long, but DS is long */ } @@ -332,7 +293,7 @@ void f8_cpu_device::ROMC_01() * location addressed by PC0; then all devices add the 8-bit value * on the data bus as signed binary number to PC0. */ - m_dbus = m_cache->read_byte(m_pc0); + m_dbus = m_program.read_byte(m_pc0); m_pc0 += (s8)m_dbus; m_icount -= cL; } @@ -345,7 +306,7 @@ void f8_cpu_device::ROMC_02() * the memory location addressed by DC0; then all devices increment * DC0. */ - m_dbus = m_program->read_byte(m_dc0); + m_dbus = m_program.read_byte(m_dc0); m_dc0 += 1; m_icount -= cL; } @@ -356,7 +317,7 @@ void f8_cpu_device::ROMC_03(int insttim) * Similiar to 0x00, except that it is used for immediate operands * fetches (using PC0) instead of instruction fetches. */ - m_dbus = m_io = m_cache->read_byte(m_pc0); + m_dbus = m_io = m_program.read_byte(m_pc0); m_pc0 += 1; m_icount -= insttim; } @@ -376,7 +337,7 @@ void f8_cpu_device::ROMC_05() * Store the data bus contents into the memory location pointed * to by DC0; increment DC0. */ - m_program->write_byte(m_dc0, m_dbus); + m_program.write_byte(m_dc0, m_dbus); m_dc0 += 1; m_icount -= cL; } @@ -408,7 +369,7 @@ void f8_cpu_device::ROMC_08() */ m_pc1 = m_pc0; m_dbus = 0; - m_pc0 = 0; + m_pc0 = m_romc08_callback() * 0x0101; m_icount -= cL; } @@ -450,7 +411,7 @@ void f8_cpu_device::ROMC_0C() * by PC0 into the data bus; then all devices move the value that * has just been placed on the data bus into the low order byte of PC0. */ - m_dbus = m_cache->read_byte(m_pc0); + m_dbus = m_program.read_byte(m_pc0); m_pc0 = (m_pc0 & 0xff00) | m_dbus; m_icount -= cL; } @@ -473,7 +434,7 @@ void f8_cpu_device::ROMC_0E() * The value on the data bus is then moved to the low order byte * of DC0 by all devices. */ - m_dbus = m_cache->read_byte(m_pc0); + m_dbus = m_program.read_byte(m_pc0); m_dc0 = (m_dc0 & 0xff00) | m_dbus; m_icount -= cL; } @@ -487,7 +448,7 @@ void f8_cpu_device::ROMC_0F() * must move the contents of the data bus into the low order * byte of PC0. */ - m_irq_vector = standard_irq_callback(F8_INPUT_LINE_INT_REQ); + m_irq_vector = standard_irq_callback(F8_INPUT_LINE_INT_REQ, m_pc0); m_dbus = m_irq_vector & 0x00ff; m_pc1 = m_pc0; m_pc0 = (m_pc0 & 0xff00) | m_dbus; @@ -511,7 +472,7 @@ void f8_cpu_device::ROMC_11() * data bus. All devices must then move the contents of the * data bus to the upper byte of DC0. */ - m_dbus = m_cache->read_byte(m_pc0); + m_dbus = m_program.read_byte(m_pc0); m_dc0 = (m_dc0 & 0x00ff) | (m_dbus << 8); m_icount -= cL; } @@ -610,7 +571,7 @@ void f8_cpu_device::ROMC_1A() * register was addressed; the device containing the addressed port * must place the contents of the data bus into the address port. */ - m_iospace->write_byte(m_io, m_dbus); + m_ios.write_byte(m_io, m_dbus); m_icount -= cL; } @@ -623,7 +584,7 @@ void f8_cpu_device::ROMC_1B() * contents of timer and interrupt control registers cannot be read * back onto the data bus). */ - m_dbus = m_iospace->read_byte(m_io); + m_dbus = m_ios.read_byte(m_io); m_icount -= cL; } @@ -681,7 +642,7 @@ void f8_cpu_device::illegal() ***************************************************/ void f8_cpu_device::f8_lr_a_ku() { - m_a = m_r[12]; + m_a = m_r.read_byte(12); } /*************************************************** @@ -690,7 +651,7 @@ void f8_cpu_device::f8_lr_a_ku() ***************************************************/ void f8_cpu_device::f8_lr_a_kl() { - m_a = m_r[13]; + m_a = m_r.read_byte(13); } /*************************************************** @@ -699,7 +660,7 @@ void f8_cpu_device::f8_lr_a_kl() ***************************************************/ void f8_cpu_device::f8_lr_a_qu() { - m_a = m_r[14]; + m_a = m_r.read_byte(14); } /*************************************************** @@ -708,7 +669,7 @@ void f8_cpu_device::f8_lr_a_qu() ***************************************************/ void f8_cpu_device::f8_lr_a_ql() { - m_a = m_r[15]; + m_a = m_r.read_byte(15); } /*************************************************** @@ -717,7 +678,7 @@ void f8_cpu_device::f8_lr_a_ql() ***************************************************/ void f8_cpu_device::f8_lr_ku_a() { - m_r[12] = m_a; + m_r.write_byte(12, m_a); } /*************************************************** @@ -726,7 +687,7 @@ void f8_cpu_device::f8_lr_ku_a() ***************************************************/ void f8_cpu_device::f8_lr_kl_a() { - m_r[13] = m_a; + m_r.write_byte(13, m_a); } /*************************************************** @@ -735,7 +696,7 @@ void f8_cpu_device::f8_lr_kl_a() ***************************************************/ void f8_cpu_device::f8_lr_qu_a() { - m_r[14] = m_a; + m_r.write_byte(14, m_a); } /*************************************************** @@ -744,7 +705,7 @@ void f8_cpu_device::f8_lr_qu_a() ***************************************************/ void f8_cpu_device::f8_lr_ql_a() { - m_r[15] = m_a; + m_r.write_byte(15, m_a); } /*************************************************** @@ -754,9 +715,9 @@ void f8_cpu_device::f8_lr_ql_a() void f8_cpu_device::f8_lr_k_p() { ROMC_07(); - m_r[12] = m_dbus; + m_r.write_byte(12, m_dbus); ROMC_0B(); - m_r[13] = m_dbus; + m_r.write_byte(13, m_dbus); } /*************************************************** @@ -765,9 +726,9 @@ void f8_cpu_device::f8_lr_k_p() ***************************************************/ void f8_cpu_device::f8_lr_p_k() { - m_dbus = m_r[12]; + m_dbus = m_r.read_byte(12); ROMC_15(); - m_dbus = m_r[13]; + m_dbus = m_r.read_byte(13); ROMC_18(); } @@ -795,9 +756,9 @@ void f8_cpu_device::f8_lr_is_a() ***************************************************/ void f8_cpu_device::f8_pk() { - m_dbus = m_r[13]; + m_dbus = m_r.read_byte(13); ROMC_12(); - m_dbus = m_r[12]; + m_dbus = m_r.read_byte(12); ROMC_14(); } @@ -807,9 +768,9 @@ void f8_cpu_device::f8_pk() ***************************************************/ void f8_cpu_device::f8_lr_p0_q() { - m_dbus = m_r[15]; + m_dbus = m_r.read_byte(15); ROMC_17(); - m_dbus = m_r[14]; + m_dbus = m_r.read_byte(14); ROMC_14(); } @@ -820,9 +781,9 @@ void f8_cpu_device::f8_lr_p0_q() void f8_cpu_device::f8_lr_q_dc() { ROMC_06(); - m_r[14] = m_dbus; + m_r.write_byte(14, m_dbus); ROMC_09(); - m_r[15] = m_dbus; + m_r.write_byte(15, m_dbus); } /*************************************************** @@ -831,9 +792,9 @@ void f8_cpu_device::f8_lr_q_dc() ***************************************************/ void f8_cpu_device::f8_lr_dc_q() { - m_dbus = m_r[14]; + m_dbus = m_r.read_byte(14); ROMC_16(); - m_dbus = m_r[15]; + m_dbus = m_r.read_byte(15); ROMC_19(); } @@ -843,9 +804,9 @@ void f8_cpu_device::f8_lr_dc_q() ***************************************************/ void f8_cpu_device::f8_lr_dc_h() { - m_dbus = m_r[10]; + m_dbus = m_r.read_byte(10); ROMC_16(); - m_dbus = m_r[11]; + m_dbus = m_r.read_byte(11); ROMC_19(); } @@ -856,9 +817,9 @@ void f8_cpu_device::f8_lr_dc_h() void f8_cpu_device::f8_lr_h_dc() { ROMC_06(); - m_r[10] = m_dbus; + m_r.write_byte(10, m_dbus); ROMC_09(); - m_r[11] = m_dbus; + m_r.write_byte(11, m_dbus); } /*************************************************** @@ -985,7 +946,7 @@ void f8_cpu_device::f8_pop() void f8_cpu_device::f8_lr_w_j() { ROMC_1C(cS); - m_w = m_r[9] & 0x1f; + m_w = m_r.read_byte(9) & 0x1f; } /*************************************************** @@ -994,7 +955,7 @@ void f8_cpu_device::f8_lr_w_j() ***************************************************/ void f8_cpu_device::f8_lr_j_w() { - m_r[9] = m_w; + m_r.write_byte(9, m_w); } /*************************************************** @@ -1164,8 +1125,9 @@ void f8_cpu_device::f8_xdc() void f8_cpu_device::f8_ds_r(int r) { CLR_OZCS(); - m_r[r] = do_add(m_r[r], 0xff); - SET_SZ(m_r[r]); + int d = do_add(m_r.read_byte(r), 0xff); + m_r.write_byte(r, d); + SET_SZ(d); } /*************************************************** @@ -1175,8 +1137,9 @@ void f8_cpu_device::f8_ds_r(int r) void f8_cpu_device::f8_ds_isar() { CLR_OZCS(); - m_r[m_is] = do_add(m_r[m_is], 0xff); - SET_SZ(m_r[m_is]); + int d = do_add(m_r.read_byte(m_is), 0xff); + m_r.write_byte(m_is, d); + SET_SZ(d); } /*************************************************** @@ -1186,8 +1149,9 @@ void f8_cpu_device::f8_ds_isar() void f8_cpu_device::f8_ds_isar_i() { CLR_OZCS(); - m_r[m_is] = do_add(m_r[m_is], 0xff); - SET_SZ(m_r[m_is]); + int d = do_add(m_r.read_byte(m_is), 0xff); + m_r.write_byte(m_is, d); + SET_SZ(d); m_is = (m_is & 0x38) | ((m_is + 1) & 0x07); } @@ -1198,8 +1162,9 @@ void f8_cpu_device::f8_ds_isar_i() void f8_cpu_device::f8_ds_isar_d() { CLR_OZCS(); - m_r[m_is] = do_add(m_r[m_is], 0xff); - SET_SZ(m_r[m_is]); + int d = do_add(m_r.read_byte(m_is), 0xff); + m_r.write_byte(m_is, d); + SET_SZ(d); m_is = (m_is & 0x38) | ((m_is - 1) & 0x07); } @@ -1209,7 +1174,7 @@ void f8_cpu_device::f8_ds_isar_d() ***************************************************/ void f8_cpu_device::f8_lr_a_r(int r) { - m_a = m_r[r]; + m_a = m_r.read_byte(r); } /*************************************************** @@ -1218,7 +1183,7 @@ void f8_cpu_device::f8_lr_a_r(int r) ***************************************************/ void f8_cpu_device::f8_lr_a_isar() { - m_a = m_r[m_is]; + m_a = m_r.read_byte(m_is); } /*************************************************** @@ -1227,7 +1192,7 @@ void f8_cpu_device::f8_lr_a_isar() ***************************************************/ void f8_cpu_device::f8_lr_a_isar_i() { - m_a = m_r[m_is]; + m_a = m_r.read_byte(m_is); m_is = (m_is & 0x38) | ((m_is + 1) & 0x07); } @@ -1237,7 +1202,7 @@ void f8_cpu_device::f8_lr_a_isar_i() ***************************************************/ void f8_cpu_device::f8_lr_a_isar_d() { - m_a = m_r[m_is]; + m_a = m_r.read_byte(m_is); m_is = (m_is & 0x38) | ((m_is - 1) & 0x07); } @@ -1247,7 +1212,7 @@ void f8_cpu_device::f8_lr_a_isar_d() ***************************************************/ void f8_cpu_device::f8_lr_r_a(int r) { - m_r[r] = m_a; + m_r.write_byte(r, m_a); } /*************************************************** @@ -1256,7 +1221,7 @@ void f8_cpu_device::f8_lr_r_a(int r) ***************************************************/ void f8_cpu_device::f8_lr_isar_a() { - m_r[m_is] = m_a; + m_r.write_byte(m_is, m_a); } /*************************************************** @@ -1265,7 +1230,7 @@ void f8_cpu_device::f8_lr_isar_a() ***************************************************/ void f8_cpu_device::f8_lr_isar_i_a() { - m_r[m_is] = m_a; + m_r.write_byte(m_is, m_a); m_is = (m_is & 0x38) | ((m_is + 1) & 0x07); } @@ -1275,7 +1240,7 @@ void f8_cpu_device::f8_lr_isar_i_a() ***************************************************/ void f8_cpu_device::f8_lr_isar_d_a() { - m_r[m_is] = m_a; + m_r.write_byte(m_is, m_a); m_is = (m_is & 0x38) | ((m_is - 1) & 0x07); } @@ -1431,7 +1396,7 @@ void f8_cpu_device::f8_ins_0(int n) { ROMC_1C(cS); CLR_OZCS(); - m_a = m_iospace->read_byte(n); + m_a = m_ios.read_byte(n); SET_SZ(m_a); } @@ -1456,7 +1421,7 @@ void f8_cpu_device::f8_ins_1(int n) void f8_cpu_device::f8_outs_0(int n) { ROMC_1C(cS); - m_iospace->write_byte(n, m_a); + m_ios.write_byte(n, m_a); } /*************************************************** @@ -1478,7 +1443,7 @@ void f8_cpu_device::f8_outs_1(int n) void f8_cpu_device::f8_as(int r) { CLR_OZCS(); - m_a = do_add(m_a, m_r[r]); + m_a = do_add(m_a, m_r.read_byte(r)); SET_SZ(m_a); } @@ -1489,7 +1454,7 @@ void f8_cpu_device::f8_as(int r) void f8_cpu_device::f8_as_isar() { CLR_OZCS(); - m_a = do_add(m_a, m_r[m_is]); + m_a = do_add(m_a, m_r.read_byte(m_is)); SET_SZ(m_a); } @@ -1500,7 +1465,7 @@ void f8_cpu_device::f8_as_isar() void f8_cpu_device::f8_as_isar_i() { CLR_OZCS(); - m_a = do_add(m_a, m_r[m_is]); + m_a = do_add(m_a, m_r.read_byte(m_is)); SET_SZ(m_a); m_is = (m_is & 0x38) | ((m_is + 1) & 0x07); } @@ -1512,7 +1477,7 @@ void f8_cpu_device::f8_as_isar_i() void f8_cpu_device::f8_as_isar_d() { CLR_OZCS(); - m_a = do_add(m_a, m_r[m_is]); + m_a = do_add(m_a, m_r.read_byte(m_is)); SET_SZ(m_a); m_is = (m_is & 0x38) | ((m_is - 1) & 0x07); } @@ -1524,7 +1489,7 @@ void f8_cpu_device::f8_as_isar_d() void f8_cpu_device::f8_asd(int r) { ROMC_1C(cS); - m_a = do_add_decimal(m_a, m_r[r]); + m_a = do_add_decimal(m_a, m_r.read_byte(r)); } /*************************************************** @@ -1534,7 +1499,7 @@ void f8_cpu_device::f8_asd(int r) void f8_cpu_device::f8_asd_isar() { ROMC_1C(cS); - m_a = do_add_decimal(m_a, m_r[m_is]); + m_a = do_add_decimal(m_a, m_r.read_byte(m_is)); } /*************************************************** @@ -1544,7 +1509,7 @@ void f8_cpu_device::f8_asd_isar() void f8_cpu_device::f8_asd_isar_i() { ROMC_1C(cS); - m_a = do_add_decimal(m_a, m_r[m_is]); + m_a = do_add_decimal(m_a, m_r.read_byte(m_is)); m_is = (m_is & 0x38) | ((m_is + 1) & 0x07); } @@ -1555,7 +1520,7 @@ void f8_cpu_device::f8_asd_isar_i() void f8_cpu_device::f8_asd_isar_d() { ROMC_1C(cS); - m_a = do_add_decimal(m_a, m_r[m_is]); + m_a = do_add_decimal(m_a, m_r.read_byte(m_is)); m_is = (m_is & 0x38) | ((m_is - 1) & 0x07); } @@ -1566,7 +1531,7 @@ void f8_cpu_device::f8_asd_isar_d() void f8_cpu_device::f8_xs(int r) { CLR_OZCS(); - m_a ^= m_r[r]; + m_a ^= m_r.read_byte(r); SET_SZ(m_a); } @@ -1577,7 +1542,7 @@ void f8_cpu_device::f8_xs(int r) void f8_cpu_device::f8_xs_isar() { CLR_OZCS(); - m_a ^= m_r[m_is]; + m_a ^= m_r.read_byte(m_is); SET_SZ(m_a); } @@ -1588,7 +1553,7 @@ void f8_cpu_device::f8_xs_isar() void f8_cpu_device::f8_xs_isar_i() { CLR_OZCS(); - m_a ^= m_r[m_is]; + m_a ^= m_r.read_byte(m_is); SET_SZ(m_a); m_is = (m_is & 0x38) | ((m_is + 1) & 0x07); } @@ -1600,7 +1565,7 @@ void f8_cpu_device::f8_xs_isar_i() void f8_cpu_device::f8_xs_isar_d() { CLR_OZCS(); - m_a ^= m_r[m_is]; + m_a ^= m_r.read_byte(m_is); SET_SZ(m_a); m_is = (m_is & 0x38) | ((m_is - 1) & 0x07); } @@ -1612,7 +1577,7 @@ void f8_cpu_device::f8_xs_isar_d() void f8_cpu_device::f8_ns(int r) { CLR_OZCS(); - m_a &= m_r[r]; + m_a &= m_r.read_byte(r); SET_SZ(m_a); } @@ -1623,7 +1588,7 @@ void f8_cpu_device::f8_ns(int r) void f8_cpu_device::f8_ns_isar() { CLR_OZCS(); - m_a &= m_r[m_is]; + m_a &= m_r.read_byte(m_is); SET_SZ(m_a); } @@ -1634,7 +1599,7 @@ void f8_cpu_device::f8_ns_isar() void f8_cpu_device::f8_ns_isar_i() { CLR_OZCS(); - m_a &= m_r[m_is]; + m_a &= m_r.read_byte(m_is); SET_SZ(m_a); m_is = (m_is & 0x38) | ((m_is + 1) & 0x07); } @@ -1646,7 +1611,7 @@ void f8_cpu_device::f8_ns_isar_i() void f8_cpu_device::f8_ns_isar_d() { CLR_OZCS(); - m_a &= m_r[m_is]; + m_a &= m_r.read_byte(m_is); SET_SZ(m_a); m_is = (m_is & 0x38) | ((m_is - 1) & 0x07); } |