summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/devices/cpu/rw5000/a5500.cpp6
-rw-r--r--src/devices/cpu/rw5000/a5500.h2
-rw-r--r--src/devices/cpu/rw5000/b5500.cpp28
-rw-r--r--src/devices/cpu/rw5000/b5500.h13
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);
};