From c63cd721ffff3fa110cdc8579cbc1dbafd444603 Mon Sep 17 00:00:00 2001 From: AJR Date: Tue, 5 Mar 2019 12:45:11 -0500 Subject: hpc: Add HPC46003 type for future use (nw) - Further bit instruction disassembly adjustments (nw) --- src/devices/cpu/hpc/hpc.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/devices/cpu/hpc/hpc.cpp') diff --git a/src/devices/cpu/hpc/hpc.cpp b/src/devices/cpu/hpc/hpc.cpp index cdfbe43dc1a..9d10ffbbbf9 100644 --- a/src/devices/cpu/hpc/hpc.cpp +++ b/src/devices/cpu/hpc/hpc.cpp @@ -13,9 +13,19 @@ #include "hpcdasm.h" // device type definitions +DEFINE_DEVICE_TYPE(HPC46003, hpc46003_device, "hpc46003", "HPC46003") DEFINE_DEVICE_TYPE(HPC46104, hpc46104_device, "hpc46104", "HPC46104") +void hpc46003_device::internal_map(address_map &map) +{ + map(0x0000, 0x00bf).ram(); + map(0x00c0, 0x00c0).rw(FUNC(hpc46003_device::psw_r), FUNC(hpc46003_device::psw_w)); + map(0x00c4, 0x00cf).ram().share("core_regs"); + // TODO: many other internal registers + map(0x01c0, 0x01ff).ram(); +} + void hpc46104_device::internal_map(address_map &map) { map(0x0000, 0x00bf).ram(); @@ -25,6 +35,11 @@ void hpc46104_device::internal_map(address_map &map) map(0x01c0, 0x02ff).ram(); } +std::unique_ptr hpc46003_device::create_disassembler() +{ + return std::make_unique(); +} + std::unique_ptr hpc46104_device::create_disassembler() { return std::make_unique(); @@ -41,6 +56,11 @@ hpc_device::hpc_device(const machine_config &mconfig, device_type type, const ch { } +hpc46003_device::hpc46003_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : hpc_device(mconfig, HPC46003, tag, owner, clock, address_map_constructor(FUNC(hpc46003_device::internal_map), this)) +{ +} + hpc46104_device::hpc46104_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : hpc_device(mconfig, HPC46104, tag, owner, clock, address_map_constructor(FUNC(hpc46104_device::internal_map), this)) { -- cgit v1.2.3-70-g09d2