diff options
Diffstat (limited to 'src/devices/cpu/f8/f8.cpp')
-rw-r--r-- | src/devices/cpu/f8/f8.cpp | 147 |
1 files changed, 73 insertions, 74 deletions
diff --git a/src/devices/cpu/f8/f8.cpp b/src/devices/cpu/f8/f8.cpp index 6f6ea70512c..9aa27af8f54 100644 --- a/src/devices/cpu/f8/f8.cpp +++ b/src/devices/cpu/f8/f8.cpp @@ -108,10 +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_r = space(AS_DATA).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; @@ -282,7 +281,7 @@ void f8_cpu_device::ROMC_00(int insttim) * 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 */ } @@ -295,7 +294,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; } @@ -308,7 +307,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; } @@ -319,7 +318,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; } @@ -339,7 +338,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; } @@ -413,7 +412,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; } @@ -436,7 +435,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; } @@ -474,7 +473,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; } @@ -573,7 +572,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; } @@ -586,7 +585,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; } @@ -644,7 +643,7 @@ void f8_cpu_device::illegal() ***************************************************/ void f8_cpu_device::f8_lr_a_ku() { - m_a = m_r->read_byte(12); + m_a = m_r.read_byte(12); } /*************************************************** @@ -653,7 +652,7 @@ void f8_cpu_device::f8_lr_a_ku() ***************************************************/ void f8_cpu_device::f8_lr_a_kl() { - m_a = m_r->read_byte(13); + m_a = m_r.read_byte(13); } /*************************************************** @@ -662,7 +661,7 @@ void f8_cpu_device::f8_lr_a_kl() ***************************************************/ void f8_cpu_device::f8_lr_a_qu() { - m_a = m_r->read_byte(14); + m_a = m_r.read_byte(14); } /*************************************************** @@ -671,7 +670,7 @@ void f8_cpu_device::f8_lr_a_qu() ***************************************************/ void f8_cpu_device::f8_lr_a_ql() { - m_a = m_r->read_byte(15); + m_a = m_r.read_byte(15); } /*************************************************** @@ -680,7 +679,7 @@ void f8_cpu_device::f8_lr_a_ql() ***************************************************/ void f8_cpu_device::f8_lr_ku_a() { - m_r->write_byte(12, m_a); + m_r.write_byte(12, m_a); } /*************************************************** @@ -689,7 +688,7 @@ void f8_cpu_device::f8_lr_ku_a() ***************************************************/ void f8_cpu_device::f8_lr_kl_a() { - m_r->write_byte(13, m_a); + m_r.write_byte(13, m_a); } /*************************************************** @@ -698,7 +697,7 @@ void f8_cpu_device::f8_lr_kl_a() ***************************************************/ void f8_cpu_device::f8_lr_qu_a() { - m_r->write_byte(14, m_a); + m_r.write_byte(14, m_a); } /*************************************************** @@ -707,7 +706,7 @@ void f8_cpu_device::f8_lr_qu_a() ***************************************************/ void f8_cpu_device::f8_lr_ql_a() { - m_r->write_byte(15, m_a); + m_r.write_byte(15, m_a); } /*************************************************** @@ -717,9 +716,9 @@ void f8_cpu_device::f8_lr_ql_a() void f8_cpu_device::f8_lr_k_p() { ROMC_07(); - m_r->write_byte(12, m_dbus); + m_r.write_byte(12, m_dbus); ROMC_0B(); - m_r->write_byte(13, m_dbus); + m_r.write_byte(13, m_dbus); } /*************************************************** @@ -728,9 +727,9 @@ void f8_cpu_device::f8_lr_k_p() ***************************************************/ void f8_cpu_device::f8_lr_p_k() { - m_dbus = m_r->read_byte(12); + m_dbus = m_r.read_byte(12); ROMC_15(); - m_dbus = m_r->read_byte(13); + m_dbus = m_r.read_byte(13); ROMC_18(); } @@ -758,9 +757,9 @@ void f8_cpu_device::f8_lr_is_a() ***************************************************/ void f8_cpu_device::f8_pk() { - m_dbus = m_r->read_byte(13); + m_dbus = m_r.read_byte(13); ROMC_12(); - m_dbus = m_r->read_byte(12); + m_dbus = m_r.read_byte(12); ROMC_14(); } @@ -770,9 +769,9 @@ void f8_cpu_device::f8_pk() ***************************************************/ void f8_cpu_device::f8_lr_p0_q() { - m_dbus = m_r->read_byte(15); + m_dbus = m_r.read_byte(15); ROMC_17(); - m_dbus = m_r->read_byte(14); + m_dbus = m_r.read_byte(14); ROMC_14(); } @@ -783,9 +782,9 @@ void f8_cpu_device::f8_lr_p0_q() void f8_cpu_device::f8_lr_q_dc() { ROMC_06(); - m_r->write_byte(14, m_dbus); + m_r.write_byte(14, m_dbus); ROMC_09(); - m_r->write_byte(15, m_dbus); + m_r.write_byte(15, m_dbus); } /*************************************************** @@ -794,9 +793,9 @@ void f8_cpu_device::f8_lr_q_dc() ***************************************************/ void f8_cpu_device::f8_lr_dc_q() { - m_dbus = m_r->read_byte(14); + m_dbus = m_r.read_byte(14); ROMC_16(); - m_dbus = m_r->read_byte(15); + m_dbus = m_r.read_byte(15); ROMC_19(); } @@ -806,9 +805,9 @@ void f8_cpu_device::f8_lr_dc_q() ***************************************************/ void f8_cpu_device::f8_lr_dc_h() { - m_dbus = m_r->read_byte(10); + m_dbus = m_r.read_byte(10); ROMC_16(); - m_dbus = m_r->read_byte(11); + m_dbus = m_r.read_byte(11); ROMC_19(); } @@ -819,9 +818,9 @@ void f8_cpu_device::f8_lr_dc_h() void f8_cpu_device::f8_lr_h_dc() { ROMC_06(); - m_r->write_byte(10, m_dbus); + m_r.write_byte(10, m_dbus); ROMC_09(); - m_r->write_byte(11, m_dbus); + m_r.write_byte(11, m_dbus); } /*************************************************** @@ -948,7 +947,7 @@ void f8_cpu_device::f8_pop() void f8_cpu_device::f8_lr_w_j() { ROMC_1C(cS); - m_w = m_r->read_byte(9) & 0x1f; + m_w = m_r.read_byte(9) & 0x1f; } /*************************************************** @@ -957,7 +956,7 @@ void f8_cpu_device::f8_lr_w_j() ***************************************************/ void f8_cpu_device::f8_lr_j_w() { - m_r->write_byte(9, m_w); + m_r.write_byte(9, m_w); } /*************************************************** @@ -1127,8 +1126,8 @@ void f8_cpu_device::f8_xdc() void f8_cpu_device::f8_ds_r(int r) { CLR_OZCS(); - int d = do_add(m_r->read_byte(r), 0xff); - m_r->write_byte(r, d); + int d = do_add(m_r.read_byte(r), 0xff); + m_r.write_byte(r, d); SET_SZ(d); } @@ -1139,8 +1138,8 @@ void f8_cpu_device::f8_ds_r(int r) void f8_cpu_device::f8_ds_isar() { CLR_OZCS(); - int d = do_add(m_r->read_byte(m_is), 0xff); - m_r->write_byte(m_is, d); + int d = do_add(m_r.read_byte(m_is), 0xff); + m_r.write_byte(m_is, d); SET_SZ(d); } @@ -1151,8 +1150,8 @@ void f8_cpu_device::f8_ds_isar() void f8_cpu_device::f8_ds_isar_i() { CLR_OZCS(); - int d = do_add(m_r->read_byte(m_is), 0xff); - m_r->write_byte(m_is, d); + 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); } @@ -1164,8 +1163,8 @@ void f8_cpu_device::f8_ds_isar_i() void f8_cpu_device::f8_ds_isar_d() { CLR_OZCS(); - int d = do_add(m_r->read_byte(m_is), 0xff); - m_r->write_byte(m_is, d); + 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); } @@ -1176,7 +1175,7 @@ void f8_cpu_device::f8_ds_isar_d() ***************************************************/ void f8_cpu_device::f8_lr_a_r(int r) { - m_a = m_r->read_byte(r); + m_a = m_r.read_byte(r); } /*************************************************** @@ -1185,7 +1184,7 @@ void f8_cpu_device::f8_lr_a_r(int r) ***************************************************/ void f8_cpu_device::f8_lr_a_isar() { - m_a = m_r->read_byte(m_is); + m_a = m_r.read_byte(m_is); } /*************************************************** @@ -1194,7 +1193,7 @@ void f8_cpu_device::f8_lr_a_isar() ***************************************************/ void f8_cpu_device::f8_lr_a_isar_i() { - m_a = m_r->read_byte(m_is); + m_a = m_r.read_byte(m_is); m_is = (m_is & 0x38) | ((m_is + 1) & 0x07); } @@ -1204,7 +1203,7 @@ void f8_cpu_device::f8_lr_a_isar_i() ***************************************************/ void f8_cpu_device::f8_lr_a_isar_d() { - m_a = m_r->read_byte(m_is); + m_a = m_r.read_byte(m_is); m_is = (m_is & 0x38) | ((m_is - 1) & 0x07); } @@ -1214,7 +1213,7 @@ void f8_cpu_device::f8_lr_a_isar_d() ***************************************************/ void f8_cpu_device::f8_lr_r_a(int r) { - m_r->write_byte(r, m_a); + m_r.write_byte(r, m_a); } /*************************************************** @@ -1223,7 +1222,7 @@ void f8_cpu_device::f8_lr_r_a(int r) ***************************************************/ void f8_cpu_device::f8_lr_isar_a() { - m_r->write_byte(m_is, m_a); + m_r.write_byte(m_is, m_a); } /*************************************************** @@ -1232,7 +1231,7 @@ void f8_cpu_device::f8_lr_isar_a() ***************************************************/ void f8_cpu_device::f8_lr_isar_i_a() { - m_r->write_byte(m_is, m_a); + m_r.write_byte(m_is, m_a); m_is = (m_is & 0x38) | ((m_is + 1) & 0x07); } @@ -1242,7 +1241,7 @@ void f8_cpu_device::f8_lr_isar_i_a() ***************************************************/ void f8_cpu_device::f8_lr_isar_d_a() { - m_r->write_byte(m_is, m_a); + m_r.write_byte(m_is, m_a); m_is = (m_is & 0x38) | ((m_is - 1) & 0x07); } @@ -1398,7 +1397,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); } @@ -1423,7 +1422,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); } /*************************************************** @@ -1445,7 +1444,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->read_byte(r)); + m_a = do_add(m_a, m_r.read_byte(r)); SET_SZ(m_a); } @@ -1456,7 +1455,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->read_byte(m_is)); + m_a = do_add(m_a, m_r.read_byte(m_is)); SET_SZ(m_a); } @@ -1467,7 +1466,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->read_byte(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); } @@ -1479,7 +1478,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->read_byte(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); } @@ -1491,7 +1490,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->read_byte(r)); + m_a = do_add_decimal(m_a, m_r.read_byte(r)); } /*************************************************** @@ -1501,7 +1500,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->read_byte(m_is)); + m_a = do_add_decimal(m_a, m_r.read_byte(m_is)); } /*************************************************** @@ -1511,7 +1510,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->read_byte(m_is)); + m_a = do_add_decimal(m_a, m_r.read_byte(m_is)); m_is = (m_is & 0x38) | ((m_is + 1) & 0x07); } @@ -1522,7 +1521,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->read_byte(m_is)); + m_a = do_add_decimal(m_a, m_r.read_byte(m_is)); m_is = (m_is & 0x38) | ((m_is - 1) & 0x07); } @@ -1533,7 +1532,7 @@ void f8_cpu_device::f8_asd_isar_d() void f8_cpu_device::f8_xs(int r) { CLR_OZCS(); - m_a ^= m_r->read_byte(r); + m_a ^= m_r.read_byte(r); SET_SZ(m_a); } @@ -1544,7 +1543,7 @@ void f8_cpu_device::f8_xs(int r) void f8_cpu_device::f8_xs_isar() { CLR_OZCS(); - m_a ^= m_r->read_byte(m_is); + m_a ^= m_r.read_byte(m_is); SET_SZ(m_a); } @@ -1555,7 +1554,7 @@ void f8_cpu_device::f8_xs_isar() void f8_cpu_device::f8_xs_isar_i() { CLR_OZCS(); - m_a ^= m_r->read_byte(m_is); + m_a ^= m_r.read_byte(m_is); SET_SZ(m_a); m_is = (m_is & 0x38) | ((m_is + 1) & 0x07); } @@ -1567,7 +1566,7 @@ void f8_cpu_device::f8_xs_isar_i() void f8_cpu_device::f8_xs_isar_d() { CLR_OZCS(); - m_a ^= m_r->read_byte(m_is); + m_a ^= m_r.read_byte(m_is); SET_SZ(m_a); m_is = (m_is & 0x38) | ((m_is - 1) & 0x07); } @@ -1579,7 +1578,7 @@ void f8_cpu_device::f8_xs_isar_d() void f8_cpu_device::f8_ns(int r) { CLR_OZCS(); - m_a &= m_r->read_byte(r); + m_a &= m_r.read_byte(r); SET_SZ(m_a); } @@ -1590,7 +1589,7 @@ void f8_cpu_device::f8_ns(int r) void f8_cpu_device::f8_ns_isar() { CLR_OZCS(); - m_a &= m_r->read_byte(m_is); + m_a &= m_r.read_byte(m_is); SET_SZ(m_a); } @@ -1601,7 +1600,7 @@ void f8_cpu_device::f8_ns_isar() void f8_cpu_device::f8_ns_isar_i() { CLR_OZCS(); - m_a &= m_r->read_byte(m_is); + m_a &= m_r.read_byte(m_is); SET_SZ(m_a); m_is = (m_is & 0x38) | ((m_is + 1) & 0x07); } @@ -1613,7 +1612,7 @@ void f8_cpu_device::f8_ns_isar_i() void f8_cpu_device::f8_ns_isar_d() { CLR_OZCS(); - m_a &= m_r->read_byte(m_is); + m_a &= m_r.read_byte(m_is); SET_SZ(m_a); m_is = (m_is & 0x38) | ((m_is - 1) & 0x07); } |