summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2018-04-16 16:59:29 -0400
committer GitHub <noreply@github.com>2018-04-16 16:59:29 -0400
commitb00b178510adb6cbf08edb835f57e2270debbd06 (patch)
tree89c8ccaeaae0ce7c0fa41171512639c87ef0b48e
parentcd8809b96016c2efcdcdc23680d6f5dc0f8dad93 (diff)
parent5832c7c2de9ce0ca1baa840050d689bf2b79a96b (diff)
Merge pull request #3463 from sschnelle/98603_split
split up hp98603 basic rom card
-rw-r--r--scripts/src/bus.lua6
-rw-r--r--src/devices/bus/hp_dio/hp98603.cpp94
-rw-r--r--src/devices/bus/hp_dio/hp98603a.cpp77
-rw-r--r--src/devices/bus/hp_dio/hp98603a.h (renamed from src/devices/bus/hp_dio/hp98603.h)14
-rw-r--r--src/devices/bus/hp_dio/hp98603b.cpp72
-rw-r--r--src/devices/bus/hp_dio/hp98603b.h38
-rw-r--r--src/mame/drivers/hp9k_3xx.cpp10
7 files changed, 204 insertions, 107 deletions
diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua
index d57cd09c690..b2e0b5abe27 100644
--- a/scripts/src/bus.lua
+++ b/scripts/src/bus.lua
@@ -836,8 +836,10 @@ if (BUSES["HPDIO"]~=null) then
MAME_DIR .. "src/devices/bus/hp_dio/hp_dio.h",
MAME_DIR .. "src/devices/bus/hp_dio/hp98544.cpp",
MAME_DIR .. "src/devices/bus/hp_dio/hp98544.h",
- MAME_DIR .. "src/devices/bus/hp_dio/hp98603.cpp",
- MAME_DIR .. "src/devices/bus/hp_dio/hp98603.h",
+ MAME_DIR .. "src/devices/bus/hp_dio/hp98603a.cpp",
+ MAME_DIR .. "src/devices/bus/hp_dio/hp98603a.h",
+ MAME_DIR .. "src/devices/bus/hp_dio/hp98603b.cpp",
+ MAME_DIR .. "src/devices/bus/hp_dio/hp98603b.h",
MAME_DIR .. "src/devices/bus/hp_dio/hp98644.cpp",
MAME_DIR .. "src/devices/bus/hp_dio/hp98644.h",
}
diff --git a/src/devices/bus/hp_dio/hp98603.cpp b/src/devices/bus/hp_dio/hp98603.cpp
deleted file mode 100644
index a9b9718d7d4..00000000000
--- a/src/devices/bus/hp_dio/hp98603.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Sven Schnelle
-/***************************************************************************
-
- HP98603 BASIC ROM card
-
-***************************************************************************/
-
-#include "emu.h"
-#include "hp98603.h"
-
-DEFINE_DEVICE_TYPE(HPDIO_98603, dio16_98603_device, "dio98603", "HP98603 BASIC ROM card")
-
-#define HP98603_ROM_REGION "98603_rom"
-
-ROM_START(hp98603)
- ROM_REGION(0x100000, HP98603_ROM_REGION, 0)
-
- ROM_SYSTEM_BIOS(0, "basic4", "BASIC 4.0")
- ROMX_LOAD("98603_80001.bin", 0x00001, 32768, CRC(5d8c9657) SHA1(f5d89e7f8a61072f362532d1b5e05f5b5e3f42b3), ROM_SKIP(1) | ROM_BIOS(1))
- ROMX_LOAD("98603_80002.bin", 0x10001, 32768, CRC(7e4e0ca8) SHA1(3230c7825f5058a1e1a06776da6064b049417b50), ROM_SKIP(1) | ROM_BIOS(1))
- ROMX_LOAD("98603_80003.bin", 0x20001, 32768, CRC(b5da5f81) SHA1(69578ee197531e9474a0edb4c2f068b20118d25f), ROM_SKIP(1) | ROM_BIOS(1))
- ROMX_LOAD("98603_80004.bin", 0x30001, 32768, CRC(ea050835) SHA1(3be7c1bd394b11fdfee38ebf40beb9352f38722d), ROM_SKIP(1) | ROM_BIOS(1))
-
- ROMX_LOAD("98603_80005.bin", 0x00000, 32768, CRC(1380d489) SHA1(e346857d9df9a06269f9fa57684fbe64edd0134b), ROM_SKIP(1) | ROM_BIOS(1))
- ROMX_LOAD("98603_80006.bin", 0x10000, 32768, CRC(19752031) SHA1(5e28ee9d527b297a8898dde50ab6e41bbc0c2572), ROM_SKIP(1) | ROM_BIOS(1))
- ROMX_LOAD("98603_80007.bin", 0x20000, 32768, CRC(72aa2225) SHA1(3c92cdd40adc7438d30b95eae14e4497b7e14f38), ROM_SKIP(1) | ROM_BIOS(1))
- ROMX_LOAD("98603_80008.bin", 0x30000, 32768, CRC(f617ae2e) SHA1(f59b63058e7e87eabc5dc5233895bb57579eb3f7), ROM_SKIP(1) | ROM_BIOS(1))
-
- ROMX_LOAD("98603_80009.bin", 0x40001, 32768, CRC(9c128571) SHA1(7827cfbf710d8bba3ce9b42ec3368b17a5b5ff78), ROM_SKIP(1) | ROM_BIOS(1))
- ROMX_LOAD("98603_80010.bin", 0x50001, 32768, CRC(12528317) SHA1(e11d6c40334c41be68e2717d816e0895f8f7afa8), ROM_SKIP(1) | ROM_BIOS(1))
- ROMX_LOAD("98603_80011.bin", 0x60001, 32768, CRC(1d279451) SHA1(2ce966b8499d2d810056d147f71ba2b6cc909bc6), ROM_SKIP(1) | ROM_BIOS(1))
- ROMX_LOAD("98603_80012.bin", 0x70001, 32768, CRC(a1d6374e) SHA1(ca860b762503a05a4bfbd17a77bef28d01d7d279), ROM_SKIP(1) | ROM_BIOS(1))
-
- ROMX_LOAD("98603_80013.bin", 0x40000, 32768, CRC(e554d97e) SHA1(c792c4f0097bed032ca31c88fde660d4db25b3dc), ROM_SKIP(1) | ROM_BIOS(1))
- ROMX_LOAD("98603_80014.bin", 0x50000, 32768, CRC(c0db7e02) SHA1(add3e7312ac07e5ed4281aae2d46e1a4389d6ea2), ROM_SKIP(1) | ROM_BIOS(1))
- ROMX_LOAD("98603_80015.bin", 0x60000, 32768, CRC(f85bb699) SHA1(bd7f690e3b4fb8952517b0acd6ac878cd50f5736), ROM_SKIP(1) | ROM_BIOS(1))
- ROMX_LOAD("98603_80016.bin", 0x70000, 32768, CRC(d887acab) SHA1(a9cbbaa5f053f374d6cbda614b727df35a61ace1), ROM_SKIP(1) | ROM_BIOS(1))
-
- ROM_SYSTEM_BIOS(1, "basic51", "BASIC 5.1")
- ROMX_LOAD("u1.bin", 0x00000, 65536, CRC(ba50d9e0) SHA1(064e3cbbc7ee01f279a289684616ae3b8744a7c9), ROM_SKIP(1) | ROM_BIOS(2))
- ROMX_LOAD("u2.bin", 0x20000, 65536, CRC(65f58d3e) SHA1(8367cecb46fa6f9abe9e78b42c25ce8699d5d3f3), ROM_SKIP(1) | ROM_BIOS(2))
- ROMX_LOAD("u3.bin", 0x40000, 65536, CRC(9bc70573) SHA1(b7e375e11f6758d59d32236fc1c42eafc892d247), ROM_SKIP(1) | ROM_BIOS(2))
- ROMX_LOAD("u4.bin", 0x60000, 65536, CRC(52debeba) SHA1(996e83e604501979fd80ae47ff1cda9890613982), ROM_SKIP(1) | ROM_BIOS(2))
- ROMX_LOAD("u5.bin", 0x80000, 65536, CRC(93b4bce8) SHA1(77efec9a95b9e543e1cdb00196d1794ca0c8b4ba), ROM_SKIP(1) | ROM_BIOS(2))
- ROMX_LOAD("u6.bin", 0xa0000, 65536, CRC(bda3d054) SHA1(c83d6f571ce5aa63ad3954ac02ff4069c01a1464), ROM_SKIP(1) | ROM_BIOS(2))
-
- ROMX_LOAD("u9.bin", 0x00001, 65536, CRC(009e9fcb) SHA1(520f583a826516f7d676391daf31ed035162c263), ROM_SKIP(1) | ROM_BIOS(2))
- ROMX_LOAD("u10.bin", 0x20001, 65536, CRC(84f90a1d) SHA1(9358aa7fa83ed9617d318936cbab79002853b0ce), ROM_SKIP(1) | ROM_BIOS(2))
- ROMX_LOAD("u11.bin", 0x40001, 65536, CRC(e486e0f3) SHA1(66b5dd6c2c277156ad6c3ee5b99c34e243d897be), ROM_SKIP(1) | ROM_BIOS(2))
- ROMX_LOAD("u12.bin", 0x60001, 65536, CRC(d5a08c7b) SHA1(be997cf9bbdb8fdd6c7e95754747016293c51c7f), ROM_SKIP(1) | ROM_BIOS(2))
- ROMX_LOAD("u13.bin", 0x80001, 65536, CRC(9811c34c) SHA1(1655cac651889950b881e6be72f035c7de0a1aed), ROM_SKIP(1) | ROM_BIOS(2))
- ROMX_LOAD("u14.bin", 0xa0001, 65536, CRC(96527d4e) SHA1(6706ab97eab4465ea4fa2d6b07e8107468e83818), ROM_SKIP(1) | ROM_BIOS(2))
-ROM_END
-
-MACHINE_CONFIG_START(dio16_98603_device::device_add_mconfig)
-MACHINE_CONFIG_END
-
-const tiny_rom_entry *dio16_98603_device::device_rom_region() const
-{
- return ROM_NAME(hp98603);
-}
-
-dio16_98603_device::dio16_98603_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
- dio16_98603_device(mconfig, HPDIO_98603, tag, owner, clock)
-{
-}
-
-dio16_98603_device::dio16_98603_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
- device_t(mconfig, type, tag, owner, clock),
- device_dio16_card_interface(mconfig, *this)
-{
-}
-
-void dio16_98603_device::device_start()
-{
- set_dio_device();
-}
-
-void dio16_98603_device::device_reset()
-{
- m_rom = device().machine().root_device().memregion(this->subtag(HP98603_ROM_REGION).c_str())->base();
- m_dio->install_memory(0x100000, 0x1fffff, read16_delegate(FUNC(dio16_98603_device::rom_r), this),
- write16_delegate(FUNC(dio16_98603_device::rom_w), this));
-}
-
-READ16_MEMBER(dio16_98603_device::rom_r)
-{
- return m_rom[offset*2] | (m_rom[offset*2+1] << 8);
-}
-
-WRITE16_MEMBER(dio16_98603_device::rom_w)
-{
-}
diff --git a/src/devices/bus/hp_dio/hp98603a.cpp b/src/devices/bus/hp_dio/hp98603a.cpp
new file mode 100644
index 00000000000..c49f5e99dd6
--- /dev/null
+++ b/src/devices/bus/hp_dio/hp98603a.cpp
@@ -0,0 +1,77 @@
+// license:BSD-3-Clause
+// copyright-holders:Sven Schnelle
+/***************************************************************************
+
+ HP98603A BASIC ROM card
+
+***************************************************************************/
+
+#include "emu.h"
+#include "hp98603a.h"
+
+DEFINE_DEVICE_TYPE(HPDIO_98603A, dio16_98603a_device, "dio98603a", "HP98603A BASIC 4.0 ROM card")
+
+#define HP98603A_ROM_REGION "98603a_rom"
+
+ROM_START(hp98603a)
+ ROM_REGION(0x80000, HP98603A_ROM_REGION, 0)
+ ROM_LOAD16_BYTE("98603_80001.bin", 0x00001, 32768, CRC(5d8c9657) SHA1(f5d89e7f8a61072f362532d1b5e05f5b5e3f42b3))
+ ROM_LOAD16_BYTE("98603_80002.bin", 0x10001, 32768, CRC(7e4e0ca8) SHA1(3230c7825f5058a1e1a06776da6064b049417b50))
+ ROM_LOAD16_BYTE("98603_80003.bin", 0x20001, 32768, CRC(b5da5f81) SHA1(69578ee197531e9474a0edb4c2f068b20118d25f))
+ ROM_LOAD16_BYTE("98603_80004.bin", 0x30001, 32768, CRC(ea050835) SHA1(3be7c1bd394b11fdfee38ebf40beb9352f38722d))
+
+ ROM_LOAD16_BYTE("98603_80005.bin", 0x00000, 32768, CRC(1380d489) SHA1(e346857d9df9a06269f9fa57684fbe64edd0134b))
+ ROM_LOAD16_BYTE("98603_80006.bin", 0x10000, 32768, CRC(19752031) SHA1(5e28ee9d527b297a8898dde50ab6e41bbc0c2572))
+ ROM_LOAD16_BYTE("98603_80007.bin", 0x20000, 32768, CRC(72aa2225) SHA1(3c92cdd40adc7438d30b95eae14e4497b7e14f38))
+ ROM_LOAD16_BYTE("98603_80008.bin", 0x30000, 32768, CRC(f617ae2e) SHA1(f59b63058e7e87eabc5dc5233895bb57579eb3f7))
+
+ ROM_LOAD16_BYTE("98603_80009.bin", 0x40001, 32768, CRC(9c128571) SHA1(7827cfbf710d8bba3ce9b42ec3368b17a5b5ff78))
+ ROM_LOAD16_BYTE("98603_80010.bin", 0x50001, 32768, CRC(12528317) SHA1(e11d6c40334c41be68e2717d816e0895f8f7afa8))
+ ROM_LOAD16_BYTE("98603_80011.bin", 0x60001, 32768, CRC(1d279451) SHA1(2ce966b8499d2d810056d147f71ba2b6cc909bc6))
+ ROM_LOAD16_BYTE("98603_80012.bin", 0x70001, 32768, CRC(a1d6374e) SHA1(ca860b762503a05a4bfbd17a77bef28d01d7d279))
+
+ ROM_LOAD16_BYTE("98603_80013.bin", 0x40000, 32768, CRC(e554d97e) SHA1(c792c4f0097bed032ca31c88fde660d4db25b3dc))
+ ROM_LOAD16_BYTE("98603_80014.bin", 0x50000, 32768, CRC(c0db7e02) SHA1(add3e7312ac07e5ed4281aae2d46e1a4389d6ea2))
+ ROM_LOAD16_BYTE("98603_80015.bin", 0x60000, 32768, CRC(f85bb699) SHA1(bd7f690e3b4fb8952517b0acd6ac878cd50f5736))
+ ROM_LOAD16_BYTE("98603_80016.bin", 0x70000, 32768, CRC(d887acab) SHA1(a9cbbaa5f053f374d6cbda614b727df35a61ace1))
+ROM_END
+
+MACHINE_CONFIG_START(dio16_98603a_device::device_add_mconfig)
+MACHINE_CONFIG_END
+
+const tiny_rom_entry *dio16_98603a_device::device_rom_region() const
+{
+ return ROM_NAME(hp98603a);
+}
+
+dio16_98603a_device::dio16_98603a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ dio16_98603a_device(mconfig, HPDIO_98603A, tag, owner, clock)
+{
+}
+
+dio16_98603a_device::dio16_98603a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, type, tag, owner, clock),
+ device_dio16_card_interface(mconfig, *this)
+{
+}
+
+void dio16_98603a_device::device_start()
+{
+ set_dio_device();
+}
+
+void dio16_98603a_device::device_reset()
+{
+ m_rom = device().machine().root_device().memregion(this->subtag(HP98603A_ROM_REGION).c_str())->base();
+ m_dio->install_memory(0x80000, 0xfffff, read16_delegate(FUNC(dio16_98603a_device::rom_r), this),
+ write16_delegate(FUNC(dio16_98603a_device::rom_w), this));
+}
+
+READ16_MEMBER(dio16_98603a_device::rom_r)
+{
+ return m_rom[offset*2] | (m_rom[offset*2+1] << 8);
+}
+
+WRITE16_MEMBER(dio16_98603a_device::rom_w)
+{
+}
diff --git a/src/devices/bus/hp_dio/hp98603.h b/src/devices/bus/hp_dio/hp98603a.h
index c9db3fd723a..30a501b1b39 100644
--- a/src/devices/bus/hp_dio/hp98603.h
+++ b/src/devices/bus/hp_dio/hp98603a.h
@@ -1,25 +1,25 @@
// license:BSD-3-Clause
// copyright-holders:Sven Schnelle
-#ifndef MAME_BUS_HPDIO_98603_H
-#define MAME_BUS_HPDIO_98603_H
+#ifndef MAME_BUS_HPDIO_98603A_H
+#define MAME_BUS_HPDIO_98603A_H
#pragma once
#include "hp_dio.h"
-class dio16_98603_device :
+class dio16_98603a_device :
public device_t,
public device_dio16_card_interface
{
public:
// construction/destruction
- dio16_98603_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ dio16_98603a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_READ16_MEMBER(rom_r);
DECLARE_WRITE16_MEMBER(rom_w);
protected:
- dio16_98603_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+ dio16_98603a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void device_start() override;
@@ -33,6 +33,6 @@ private:
uint8_t *m_rom;
};
-DECLARE_DEVICE_TYPE(HPDIO_98603, dio16_98603_device)
+DECLARE_DEVICE_TYPE(HPDIO_98603A, dio16_98603a_device)
-#endif // MAME_BUS_HPDIO_98603_H
+#endif // MAME_BUS_HPDIO_98603A_H
diff --git a/src/devices/bus/hp_dio/hp98603b.cpp b/src/devices/bus/hp_dio/hp98603b.cpp
new file mode 100644
index 00000000000..41a49dc61e0
--- /dev/null
+++ b/src/devices/bus/hp_dio/hp98603b.cpp
@@ -0,0 +1,72 @@
+// license:BSD-3-Clause
+// copyright-holders:Sven Schnelle
+/***************************************************************************
+
+ HP98603B BASIC ROM card
+
+***************************************************************************/
+
+#include "emu.h"
+#include "hp98603b.h"
+
+DEFINE_DEVICE_TYPE(HPDIO_98603B, dio16_98603b_device, "dio98603b", "HP98603 BASIC ROM card")
+
+#define HP98603B_ROM_REGION "98603b_rom"
+
+ROM_START(hp98603b)
+ ROM_REGION(0x100000, HP98603B_ROM_REGION, 0)
+
+ ROM_LOAD16_BYTE("u1.bin", 0x00000, 65536, CRC(ba50d9e0) SHA1(064e3cbbc7ee01f279a289684616ae3b8744a7c9))
+ ROM_LOAD16_BYTE("u2.bin", 0x20000, 65536, CRC(65f58d3e) SHA1(8367cecb46fa6f9abe9e78b42c25ce8699d5d3f3))
+ ROM_LOAD16_BYTE("u3.bin", 0x40000, 65536, CRC(9bc70573) SHA1(b7e375e11f6758d59d32236fc1c42eafc892d247))
+ ROM_LOAD16_BYTE("u4.bin", 0x60000, 65536, CRC(52debeba) SHA1(996e83e604501979fd80ae47ff1cda9890613982))
+ ROM_LOAD16_BYTE("u5.bin", 0x80000, 65536, CRC(93b4bce8) SHA1(77efec9a95b9e543e1cdb00196d1794ca0c8b4ba))
+ ROM_LOAD16_BYTE("u6.bin", 0xa0000, 65536, CRC(bda3d054) SHA1(c83d6f571ce5aa63ad3954ac02ff4069c01a1464))
+
+ ROM_LOAD16_BYTE("u9.bin", 0x00001, 65536, CRC(009e9fcb) SHA1(520f583a826516f7d676391daf31ed035162c263))
+ ROM_LOAD16_BYTE("u10.bin", 0x20001, 65536, CRC(84f90a1d) SHA1(9358aa7fa83ed9617d318936cbab79002853b0ce))
+ ROM_LOAD16_BYTE("u11.bin", 0x40001, 65536, CRC(e486e0f3) SHA1(66b5dd6c2c277156ad6c3ee5b99c34e243d897be))
+ ROM_LOAD16_BYTE("u12.bin", 0x60001, 65536, CRC(d5a08c7b) SHA1(be997cf9bbdb8fdd6c7e95754747016293c51c7f))
+ ROM_LOAD16_BYTE("u13.bin", 0x80001, 65536, CRC(9811c34c) SHA1(1655cac651889950b881e6be72f035c7de0a1aed))
+ ROM_LOAD16_BYTE("u14.bin", 0xa0001, 65536, CRC(96527d4e) SHA1(6706ab97eab4465ea4fa2d6b07e8107468e83818))
+ROM_END
+
+MACHINE_CONFIG_START(dio16_98603b_device::device_add_mconfig)
+MACHINE_CONFIG_END
+
+const tiny_rom_entry *dio16_98603b_device::device_rom_region() const
+{
+ return ROM_NAME(hp98603b);
+}
+
+dio16_98603b_device::dio16_98603b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ dio16_98603b_device(mconfig, HPDIO_98603B, tag, owner, clock)
+{
+}
+
+dio16_98603b_device::dio16_98603b_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, type, tag, owner, clock),
+ device_dio16_card_interface(mconfig, *this)
+{
+}
+
+void dio16_98603b_device::device_start()
+{
+ set_dio_device();
+}
+
+void dio16_98603b_device::device_reset()
+{
+ m_rom = device().machine().root_device().memregion(this->subtag(HP98603B_ROM_REGION).c_str())->base();
+ m_dio->install_memory(0x100000, 0x1fffff, read16_delegate(FUNC(dio16_98603b_device::rom_r), this),
+ write16_delegate(FUNC(dio16_98603b_device::rom_w), this));
+}
+
+READ16_MEMBER(dio16_98603b_device::rom_r)
+{
+ return m_rom[offset*2] | (m_rom[offset*2+1] << 8);
+}
+
+WRITE16_MEMBER(dio16_98603b_device::rom_w)
+{
+}
diff --git a/src/devices/bus/hp_dio/hp98603b.h b/src/devices/bus/hp_dio/hp98603b.h
new file mode 100644
index 00000000000..8d1780432a5
--- /dev/null
+++ b/src/devices/bus/hp_dio/hp98603b.h
@@ -0,0 +1,38 @@
+// license:BSD-3-Clause
+// copyright-holders:Sven Schnelle
+
+#ifndef MAME_BUS_HPDIO_98603B_H
+#define MAME_BUS_HPDIO_98603B_H
+
+#pragma once
+
+#include "hp_dio.h"
+
+class dio16_98603b_device :
+ public device_t,
+ public device_dio16_card_interface
+{
+public:
+ // construction/destruction
+ dio16_98603b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ DECLARE_READ16_MEMBER(rom_r);
+ DECLARE_WRITE16_MEMBER(rom_w);
+
+protected:
+ dio16_98603b_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // optional information overrides
+ virtual void device_add_mconfig(machine_config &config) override;
+ virtual const tiny_rom_entry *device_rom_region() const override;
+
+private:
+ uint8_t *m_rom;
+};
+
+DECLARE_DEVICE_TYPE(HPDIO_98603B, dio16_98603b_device)
+
+#endif // MAME_BUS_HPDIO_98603B_H
diff --git a/src/mame/drivers/hp9k_3xx.cpp b/src/mame/drivers/hp9k_3xx.cpp
index 9af80b9fff4..40176f88855 100644
--- a/src/mame/drivers/hp9k_3xx.cpp
+++ b/src/mame/drivers/hp9k_3xx.cpp
@@ -63,7 +63,8 @@
#include "bus/hp_dio/hp98544.h"
#include "bus/hp_hil/hp_hil.h"
#include "bus/hp_hil/hil_devices.h"
-#include "bus/hp_dio/hp98603.h"
+#include "bus/hp_dio/hp98603a.h"
+#include "bus/hp_dio/hp98603b.h"
#include "bus/hp_dio/hp98644.h"
#include "screen.h"
#include "speaker.h"
@@ -383,7 +384,8 @@ READ8_MEMBER(hp9k3xx_state::iocpu_test0_r)
static SLOT_INTERFACE_START(dio16_cards)
SLOT_INTERFACE("98544", HPDIO_98544) /* 98544 High Resolution Monochrome Card */
- SLOT_INTERFACE("98603", HPDIO_98603) /* 98603 ROM BASIC */
+ SLOT_INTERFACE("98603a", HPDIO_98603A) /* 98603A ROM BASIC (4.0) */
+ SLOT_INTERFACE("98603b", HPDIO_98603B) /* 98603B ROM BASIC (5.1) */
SLOT_INTERFACE("98644", HPDIO_98644) /* 98644 Async serial interface */
SLOT_INTERFACE_END
@@ -412,7 +414,7 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k310)
MCFG_DEVICE_ADD("diobus", DIO16, 0)
MCFG_DIO16_CPU(":maincpu")
MCFG_DIO16_SLOT_ADD("diobus", "sl1", dio16_cards, "98544", true)
- MCFG_DIO16_SLOT_ADD("diobus", "sl2", dio16_cards, "98603", true)
+ MCFG_DIO16_SLOT_ADD("diobus", "sl2", dio16_cards, "98603b", true)
MCFG_DIO16_SLOT_ADD("diobus", "sl3", dio16_cards, "98644", true)
MCFG_DIO16_SLOT_ADD("diobus", "sl4", dio16_cards, nullptr, false)
MACHINE_CONFIG_END
@@ -442,7 +444,7 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k320)
MCFG_DEVICE_ADD("diobus", DIO32, 0)
MCFG_DIO32_CPU(":maincpu")
MCFG_DIO32_SLOT_ADD("diobus", "sl1", dio16_cards, "98544", true)
- MCFG_DIO16_SLOT_ADD("diobus", "sl2", dio16_cards, "98603", true)
+ MCFG_DIO16_SLOT_ADD("diobus", "sl2", dio16_cards, "98603b", true)
MCFG_DIO16_SLOT_ADD("diobus", "sl3", dio16_cards, "98644", true)
MCFG_DIO32_SLOT_ADD("diobus", "sl4", dio16_cards, nullptr, false)
MACHINE_CONFIG_END