diff options
-rw-r--r-- | src/devices/cpu/rw5000/a5500.cpp | 6 | ||||
-rw-r--r-- | src/devices/cpu/rw5000/a5500.h | 2 | ||||
-rw-r--r-- | src/devices/cpu/rw5000/b5500.cpp | 28 | ||||
-rw-r--r-- | src/devices/cpu/rw5000/b5500.h | 13 |
4 files changed, 10 insertions, 39 deletions
diff --git a/src/devices/cpu/rw5000/a5500.cpp b/src/devices/cpu/rw5000/a5500.cpp index cbd3897fb3e..2d8cee136f1 100644 --- a/src/devices/cpu/rw5000/a5500.cpp +++ b/src/devices/cpu/rw5000/a5500.cpp @@ -16,8 +16,12 @@ DEFINE_DEVICE_TYPE(A5500, a5500_cpu_device, "a5500", "Rockwell A5500") // constructor +a5500_cpu_device::a5500_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data) : + a5000_cpu_device(mconfig, type, tag, owner, clock, prgwidth, program, datawidth, data) +{ } + a5500_cpu_device::a5500_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : - a5000_cpu_device(mconfig, A5500, tag, owner, clock, 10, address_map_constructor(FUNC(a5500_cpu_device::program_768x8), this), 6, address_map_constructor(FUNC(a5500_cpu_device::data_48x4), this)) + a5500_cpu_device(mconfig, A5500, tag, owner, clock, 10, address_map_constructor(FUNC(a5500_cpu_device::program_768x8), this), 6, address_map_constructor(FUNC(a5500_cpu_device::data_48x4), this)) { } diff --git a/src/devices/cpu/rw5000/a5500.h b/src/devices/cpu/rw5000/a5500.h index 57495b662e5..138c38df630 100644 --- a/src/devices/cpu/rw5000/a5500.h +++ b/src/devices/cpu/rw5000/a5500.h @@ -20,6 +20,8 @@ public: a5500_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); protected: + a5500_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data); + // device_disasm_interface overrides virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; diff --git a/src/devices/cpu/rw5000/b5500.cpp b/src/devices/cpu/rw5000/b5500.cpp index edf697118c9..df3fac30507 100644 --- a/src/devices/cpu/rw5000/b5500.cpp +++ b/src/devices/cpu/rw5000/b5500.cpp @@ -17,26 +17,10 @@ DEFINE_DEVICE_TYPE(B5500, b5500_cpu_device, "b5500", "Rockwell B5500") // constructor b5500_cpu_device::b5500_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : - b5000_cpu_device(mconfig, B5500, tag, owner, clock, 10, address_map_constructor(FUNC(b5500_cpu_device::program_768x8), this), 6, address_map_constructor(FUNC(b5500_cpu_device::data_48x4), this)) + a5500_cpu_device(mconfig, B5500, tag, owner, clock, 10, address_map_constructor(FUNC(b5500_cpu_device::program_768x8), this), 6, address_map_constructor(FUNC(b5500_cpu_device::data_48x4), this)) { } -// internal memory maps -void b5500_cpu_device::program_768x8(address_map &map) -{ - map(0x000, 0x27f).rom(); - map(0x380, 0x3ff).rom(); -} - -void b5500_cpu_device::data_48x4(address_map &map) -{ - map(0x00, 0x0b).ram(); - map(0x10, 0x1b).ram(); - map(0x20, 0x2b).ram(); - map(0x30, 0x3b).ram(); -} - - // disasm std::unique_ptr<util::disasm_interface> b5500_cpu_device::create_disassembler() { @@ -62,13 +46,3 @@ void b5500_cpu_device::execute_one() default: b5000_cpu_device::execute_one(); break; } } - -bool b5500_cpu_device::op_is_tl(u8 op) -{ - return b5000_cpu_device::op_is_tl(op) || ((op & 0xfc) == 0x38); -} - -bool b5500_cpu_device::op_is_lb(u8 op) -{ - return b5000_cpu_device::op_is_lb(op) || ((op & 0xfc) == 0x1c); -} diff --git a/src/devices/cpu/rw5000/b5500.h b/src/devices/cpu/rw5000/b5500.h index e054d468228..596cc178485 100644 --- a/src/devices/cpu/rw5000/b5500.h +++ b/src/devices/cpu/rw5000/b5500.h @@ -11,10 +11,10 @@ #pragma once -#include "b5000.h" +#include "a5500.h" -class b5500_cpu_device : public b5000_cpu_device +class b5500_cpu_device : public a5500_cpu_device { public: b5500_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); @@ -23,16 +23,7 @@ protected: // device_disasm_interface overrides virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; - // device_execute_interface overrides virtual void execute_one() override; - - virtual bool op_is_tl(u8 op) override; - virtual bool op_is_lb(u8 op) override; - virtual void reset_pc() override { set_pc(0, 0); } - virtual u8 sr_page() override { return 15; } - - void program_768x8(address_map &map); - void data_48x4(address_map &map); }; |