From b5bad2e5272a57686b8fd7c17697c81355a1b985 Mon Sep 17 00:00:00 2001 From: David Ladd Date: Wed, 28 Feb 2018 13:03:37 -0600 Subject: [PATCH] Coco2drivewire (#3260) * Added COCO2_DW1 to cart devices for the Color Computer 2/2B that has the CoCo 1/2 series of systems. Added unofficial systems CoCo2DW1 and CoCo2BDW1 for use with the CoCo 2 series of DriveWire Becker Port. * Added coco2dw1 and coco2bdw1 to mame.lst file. * Removed coco2dw1 and coco2bdw1 as requested. COCO2_HDB1 is cart slot device and is still intact. * Removed the coco2dw1 and coco2bdw1 from the mame.lst file. * Had to add cc2hdb1/COCO2_HDB1 to coco_multi.cpp so the COCO2_HDB1 cart would be usable in the multipak device. --- src/devices/bus/coco/coco_fdc.cpp | 34 +++++++++++++++++++++++++++++ src/devices/bus/coco/coco_fdc.h | 1 + src/devices/bus/coco/coco_multi.cpp | 1 + src/mame/drivers/coco12.cpp | 1 + 4 files changed, 37 insertions(+) diff --git a/src/devices/bus/coco/coco_fdc.cpp b/src/devices/bus/coco/coco_fdc.cpp index 037c155fb63..9c63dafe5ef 100644 --- a/src/devices/bus/coco/coco_fdc.cpp +++ b/src/devices/bus/coco/coco_fdc.cpp @@ -493,6 +493,40 @@ namespace DEFINE_DEVICE_TYPE(COCO3_HDB1, coco3_hdb1_device, "coco3_hdb1", "CoCo3 HDB-DOS") +//************************************************************************** +// COCO-2 HDB-DOS +//************************************************************************** + +ROM_START(coco2_hdb1) + ROM_REGION(0x8000, "eprom", ROMREGION_ERASE00) + ROM_LOAD("hdbdw3bck.rom", 0x0000, 0x2000, CRC(867a3f42) SHA1(8fd64f1c246489e0bf2b3743ae76332ff324716a)) + ROM_RELOAD(0x2000, 0x2000) + ROM_RELOAD(0x4000, 0x2000) + ROM_RELOAD(0x6000, 0x2000) +ROM_END + +namespace +{ + class coco2_hdb1_device : public coco_fdc_device_base + { + public: + // construction/destruction + coco2_hdb1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : coco_fdc_device_base(mconfig, COCO2_HDB1, tag, owner, clock) + { + } + + protected: + // optional information overrides + virtual const tiny_rom_entry *device_rom_region() const override + { + return ROM_NAME(coco2_hdb1); + } + }; +} + +DEFINE_DEVICE_TYPE(COCO2_HDB1, coco2_hdb1_device, "coco2_hdb1", "CoCo2 HDB-DOS") + //************************************************************************** // Prológica CP-450 BASIC Disco V. 1.0 (1984) // diff --git a/src/devices/bus/coco/coco_fdc.h b/src/devices/bus/coco/coco_fdc.h index 7ca2ca9e6fe..a926de64c91 100644 --- a/src/devices/bus/coco/coco_fdc.h +++ b/src/devices/bus/coco/coco_fdc.h @@ -64,6 +64,7 @@ private: extern const device_type COCO_FDC; extern const device_type COCO_FDC_V11; extern const device_type COCO3_HDB1; +extern const device_type COCO2_HDB1; extern const device_type CP450_FDC; extern const device_type CD6809_FDC; diff --git a/src/devices/bus/coco/coco_multi.cpp b/src/devices/bus/coco/coco_multi.cpp index e46d094aa8d..2333c2e4118 100644 --- a/src/devices/bus/coco/coco_multi.cpp +++ b/src/devices/bus/coco/coco_multi.cpp @@ -166,6 +166,7 @@ static SLOT_INTERFACE_START(coco_cart_slot1_3) SLOT_INTERFACE("pak", COCO_PAK) SLOT_INTERFACE_END static SLOT_INTERFACE_START(coco_cart_slot4) + SLOT_INTERFACE("cc2hdb1", COCO2_HDB1) SLOT_INTERFACE("cc3hdb1", COCO3_HDB1) SLOT_INTERFACE("fdcv11", COCO_FDC_V11) SLOT_INTERFACE("rs232", COCO_RS232) diff --git a/src/mame/drivers/coco12.cpp b/src/mame/drivers/coco12.cpp index ae287d84915..78574399992 100644 --- a/src/mame/drivers/coco12.cpp +++ b/src/mame/drivers/coco12.cpp @@ -352,6 +352,7 @@ INPUT_PORTS_END SLOT_INTERFACE_START( coco_cart ) SLOT_INTERFACE("fdc", COCO_FDC) SLOT_INTERFACE("fdcv11", COCO_FDC_V11) + SLOT_INTERFACE("cc2hdb1", COCO2_HDB1) SLOT_INTERFACE("cc3hdb1", COCO3_HDB1) SLOT_INTERFACE("cp450_fdc", CP450_FDC) SLOT_INTERFACE("cd6809_fdc", CD6809_FDC)