diff --git a/hash/pet_hdd.xml b/hash/pet_hdd.xml
index 9759aaaa2e9..7a2993c2db4 100644
--- a/hash/pet_hdd.xml
+++ b/hash/pet_hdd.xml
@@ -28,4 +28,17 @@
+
+ SoftBox CP/M 2.2
+ 1981
+ Small Systems Engineering
+
+
+
+
+
+
+
+
+
diff --git a/hash/softbox.xml b/hash/softbox.xml
index c517c51790e..4171fd9f915 100644
--- a/hash/softbox.xml
+++ b/hash/softbox.xml
@@ -14,4 +14,17 @@
+
+ SoftBox CP/M 2.2 (Corvus Model 11)
+ 1981
+ Small Systems Engineering
+
+
+
+
+
+
+
+
+
diff --git a/src/emu/bus/ieee488/hardbox.c b/src/emu/bus/ieee488/hardbox.c
index 5c4f9b19760..c729da65fc7 100644
--- a/src/emu/bus/ieee488/hardbox.c
+++ b/src/emu/bus/ieee488/hardbox.c
@@ -300,10 +300,10 @@ static MACHINE_CONFIG_FRAGMENT( hardbox )
MCFG_I8255A_ADD(I8255_1_TAG, ppi1_intf)
MCFG_DEVICE_ADD(CORVUS_HDC_TAG, CORVUS_HDC, 0)
- MCFG_HARDDISK_ADD("harddisk1")
- MCFG_HARDDISK_ADD("harddisk2")
- MCFG_HARDDISK_ADD("harddisk3")
- MCFG_HARDDISK_ADD("harddisk4")
+ MCFG_HARDDISK_CONFIG_ADD("harddisk1", corvus_hdc_t::hd_intf)
+ MCFG_HARDDISK_CONFIG_ADD("harddisk2", corvus_hdc_t::hd_intf)
+ MCFG_HARDDISK_CONFIG_ADD("harddisk3", corvus_hdc_t::hd_intf)
+ MCFG_HARDDISK_CONFIG_ADD("harddisk4", corvus_hdc_t::hd_intf)
MACHINE_CONFIG_END
diff --git a/src/emu/bus/ieee488/softbox.c b/src/emu/bus/ieee488/softbox.c
index d169022133c..fd4f7f8558f 100644
--- a/src/emu/bus/ieee488/softbox.c
+++ b/src/emu/bus/ieee488/softbox.c
@@ -278,10 +278,10 @@ static MACHINE_CONFIG_FRAGMENT( softbox )
MCFG_COM8116_FT_HANDLER(DEVWRITELINE(I8251_TAG, i8251_device, write_txc))
MCFG_DEVICE_ADD(CORVUS_HDC_TAG, CORVUS_HDC, 0)
- MCFG_HARDDISK_ADD("harddisk1")
- MCFG_HARDDISK_ADD("harddisk2")
- MCFG_HARDDISK_ADD("harddisk3")
- MCFG_HARDDISK_ADD("harddisk4")
+ MCFG_HARDDISK_CONFIG_ADD("harddisk1", corvus_hdc_t::hd_intf)
+ MCFG_HARDDISK_CONFIG_ADD("harddisk2", corvus_hdc_t::hd_intf)
+ MCFG_HARDDISK_CONFIG_ADD("harddisk3", corvus_hdc_t::hd_intf)
+ MCFG_HARDDISK_CONFIG_ADD("harddisk4", corvus_hdc_t::hd_intf)
//MCFG_IMI7000_BUS_ADD("imi5000h", NULL, NULL, NULL)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/softbox.c b/src/mess/drivers/softbox.c
index 747f2a570c5..dbfe856ebbd 100644
--- a/src/mess/drivers/softbox.c
+++ b/src/mess/drivers/softbox.c
@@ -415,10 +415,10 @@ static MACHINE_CONFIG_START( softbox, softbox_state )
MCFG_CBM_IEEE488_ADD("c8050")
MCFG_DEVICE_ADD(CORVUS_HDC_TAG, CORVUS_HDC, 0)
- MCFG_HARDDISK_ADD("harddisk1")
- MCFG_HARDDISK_ADD("harddisk2")
- MCFG_HARDDISK_ADD("harddisk3")
- MCFG_HARDDISK_ADD("harddisk4")
+ MCFG_HARDDISK_CONFIG_ADD("harddisk1", corvus_hdc_t::hd_intf)
+ MCFG_HARDDISK_CONFIG_ADD("harddisk2", corvus_hdc_t::hd_intf)
+ MCFG_HARDDISK_CONFIG_ADD("harddisk3", corvus_hdc_t::hd_intf)
+ MCFG_HARDDISK_CONFIG_ADD("harddisk4", corvus_hdc_t::hd_intf)
MCFG_IMI7000_BUS_ADD("imi5000h", NULL, NULL, NULL)
diff --git a/src/mess/includes/corvushd.h b/src/mess/includes/corvushd.h
index 09e3fcaf25c..7cdffa25a1d 100644
--- a/src/mess/includes/corvushd.h
+++ b/src/mess/includes/corvushd.h
@@ -186,6 +186,8 @@ public:
DECLARE_WRITE8_MEMBER( write );
DECLARE_READ8_MEMBER( status_r );
+ static struct harddisk_interface hd_intf;
+
protected:
// device-level overrides
virtual void device_start();
diff --git a/src/mess/machine/corvushd.c b/src/mess/machine/corvushd.c
index 5cea873fc1c..bf1b327b972 100644
--- a/src/mess/machine/corvushd.c
+++ b/src/mess/machine/corvushd.c
@@ -70,6 +70,8 @@
const device_type CORVUS_HDC = &device_creator;
+harddisk_interface corvus_hdc_t::hd_intf = { NULL, NULL, "corvus_hdd", NULL };
+
corvus_hdc_t::corvus_hdc_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
device_t(mconfig, CORVUS_HDC, "Corvus Flat Cable HDC", tag, owner, clock, "corvus_hdc", __FILE__),
m_status(0),