mirror of
https://github.com/holub/mame
synced 2025-06-12 15:45:52 +03:00
bus/coco/coco_fdc.cpp: Use device BIOS options to reduce proliferation of slot options. (#11056)
* Removed coco_fdc and coco_scii subclasses that only changed the BIOS ROM. * trs/coco3.cpp: Removed coco3hdb - its only function was to use a specific DOS ROM.
This commit is contained in:
parent
0c6236d92c
commit
044e890a91
@ -399,42 +399,81 @@ void coco_fdc_device_base::scs_write(offs_t offset, u8 data)
|
|||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
ROM_START(coco_fdc)
|
ROM_START(coco_fdc)
|
||||||
ROM_REGION(0x4000, "eprom", ROMREGION_ERASE00)
|
|
||||||
ROM_LOAD("disk10.rom", 0x0000, 0x2000, CRC(b4f9968e) SHA1(04115be3f97952b9d9310b52f806d04f80b40d03))
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START(coco_fdc_v11)
|
|
||||||
ROM_REGION(0x8000, "eprom", ROMREGION_ERASE00)
|
ROM_REGION(0x8000, "eprom", ROMREGION_ERASE00)
|
||||||
ROM_LOAD("disk11.rom", 0x0000, 0x2000, CRC(0b9c5415) SHA1(10bdc5aa2d7d7f205f67b47b19003a4bd89defd1))
|
ROM_DEFAULT_BIOS("v11")
|
||||||
|
|
||||||
|
ROM_SYSTEM_BIOS(0, "v10", "RSDOS v1.0")
|
||||||
|
ROMX_LOAD("disk10.rom", 0x0000, 0x2000, CRC(b4f9968e) SHA1(04115be3f97952b9d9310b52f806d04f80b40d03), ROM_BIOS(0))
|
||||||
|
ROM_RELOAD(0x2000,0x2000)
|
||||||
|
ROM_RELOAD(0x4000,0x2000)
|
||||||
|
ROM_RELOAD(0x6000,0x2000)
|
||||||
|
|
||||||
|
ROM_SYSTEM_BIOS(1, "v11", "RSDOS v1.1")
|
||||||
|
ROMX_LOAD("disk11.rom", 0x0000, 0x2000, CRC(0b9c5415) SHA1(10bdc5aa2d7d7f205f67b47b19003a4bd89defd1), ROM_BIOS(1))
|
||||||
|
ROM_RELOAD(0x2000,0x2000)
|
||||||
|
ROM_RELOAD(0x4000,0x2000)
|
||||||
|
ROM_RELOAD(0x6000,0x2000)
|
||||||
|
|
||||||
|
ROM_SYSTEM_BIOS(2, "ados", "ADOS v1.02 for CoCo 1/2")
|
||||||
|
ROMX_LOAD("ados.rom", 0x0000, 0x2000, CRC(24e807cf) SHA1(a935ea11af4c600a771e4540b661cbb4258a21d6), ROM_BIOS(2))
|
||||||
|
ROM_RELOAD(0x2000,0x2000)
|
||||||
|
ROM_RELOAD(0x4000,0x2000)
|
||||||
|
ROM_RELOAD(0x6000,0x2000)
|
||||||
|
|
||||||
|
ROM_SYSTEM_BIOS(3, "ados2b", "ADOS v1.02 for CoCo 2B")
|
||||||
|
ROMX_LOAD("ados2b.rom", 0x0000, 0x2000, CRC(47a59ad4) SHA1(66bd3cf08e7f1b318e82e8c4a9848233f38f1a56), ROM_BIOS(3))
|
||||||
|
ROM_RELOAD(0x2000,0x2000)
|
||||||
|
ROM_RELOAD(0x4000,0x2000)
|
||||||
|
ROM_RELOAD(0x6000,0x2000)
|
||||||
|
|
||||||
|
ROM_SYSTEM_BIOS(4, "ados3", "ADOS3 v1.01.01")
|
||||||
|
ROMX_LOAD("ados3.rom", 0x0000, 0x2000, CRC(6f824cd1) SHA1(de602d8d219094f1237d37a4f80032c25808b358), ROM_BIOS(4))
|
||||||
|
ROM_RELOAD(0x2000,0x2000)
|
||||||
|
ROM_RELOAD(0x4000,0x2000)
|
||||||
|
ROM_RELOAD(0x6000,0x2000)
|
||||||
|
|
||||||
|
ROM_SYSTEM_BIOS(5, "ados340", "ADOS3 v1.01.01, 40 track disk drives")
|
||||||
|
ROMX_LOAD("ados3-40.rom", 0x0000, 0x2000, CRC(8afe1a04) SHA1(a8dcc6fc0aa5589612cea2a318e7fae58d930c6c), ROM_BIOS(5))
|
||||||
|
ROM_RELOAD(0x2000,0x2000)
|
||||||
|
ROM_RELOAD(0x4000,0x2000)
|
||||||
|
ROM_RELOAD(0x6000,0x2000)
|
||||||
|
|
||||||
|
ROM_SYSTEM_BIOS(6, "ados380", "ADOS3 v1.01.01, 80 track disk drives")
|
||||||
|
ROMX_LOAD("ados3-80.rom", 0x0000, 0x2000, CRC(859762f5) SHA1(957f7d5a10e61266193b636dbf642002bcedfaa3), ROM_BIOS(6))
|
||||||
|
ROM_RELOAD(0x2000,0x2000)
|
||||||
|
ROM_RELOAD(0x4000,0x2000)
|
||||||
|
ROM_RELOAD(0x6000,0x2000)
|
||||||
|
|
||||||
|
ROM_SYSTEM_BIOS(7, "rgbdos", "Hard Disk Basic for Emudsk")
|
||||||
|
ROMX_LOAD("rgbdos_mess.rom", 0x0000, 0x2000, CRC(0b0e64db) SHA1(062ffab14dc788ec7744e528bf9bb425c3ec60ed), ROM_BIOS(7))
|
||||||
|
ROM_RELOAD(0x2000,0x2000)
|
||||||
|
ROM_RELOAD(0x4000,0x2000)
|
||||||
|
ROM_RELOAD(0x6000,0x2000)
|
||||||
|
|
||||||
|
ROM_SYSTEM_BIOS(8, "hdbk12", "Hard Disk Basic for Becker Port and DriveWire 3, CoCo 1/2")
|
||||||
|
ROMX_LOAD("hdbdw3bck.rom", 0x0000, 0x2000, CRC(867a3f42) SHA1(8fd64f1c246489e0bf2b3743ae76332ff324716a), ROM_BIOS(8))
|
||||||
|
ROM_RELOAD(0x2000,0x2000)
|
||||||
|
ROM_RELOAD(0x4000,0x2000)
|
||||||
|
ROM_RELOAD(0x6000,0x2000)
|
||||||
|
|
||||||
|
ROM_SYSTEM_BIOS(9, "hdbk3", "Hard Disk Basic for Becker Port and DriveWire 3, CoCo 3")
|
||||||
|
ROMX_LOAD("hdbdw3bc3.rom", 0x0000, 0x2000, CRC(309a9efd) SHA1(671605d61811953860466f771c1594bbade331f4), ROM_BIOS(9))
|
||||||
ROM_RELOAD(0x2000,0x2000)
|
ROM_RELOAD(0x2000,0x2000)
|
||||||
ROM_RELOAD(0x4000,0x2000)
|
ROM_RELOAD(0x4000,0x2000)
|
||||||
ROM_RELOAD(0x6000,0x2000)
|
ROM_RELOAD(0x6000,0x2000)
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START(coco_scii_cc1)
|
ROM_START(coco_scii)
|
||||||
ROM_REGION(0x8000, "eprom", ROMREGION_ERASE00)
|
ROM_REGION(0x8000, "eprom", ROMREGION_ERASE00)
|
||||||
ROM_LOAD("cdos 4 4-6-89 cc1.bin", 0x0000, 0x4000, CRC(9da6db28) SHA1(2cc6e275178ca8d8f281d845792fb0ae069aaeda))
|
ROM_DEFAULT_BIOS("cdos3")
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START(coco_scii_cc3)
|
ROM_SYSTEM_BIOS(0, "cdos", "Disto C-DOS v4.0 for the CoCo 1/2")
|
||||||
ROM_REGION(0x8000, "eprom", ROMREGION_ERASE00)
|
ROMX_LOAD("cdos 4 4-6-89 cc1.bin", 0x0000, 0x4000, CRC(9da6db28) SHA1(2cc6e275178ca8d8f281d845792fb0ae069aaeda), ROM_BIOS(0))
|
||||||
ROM_LOAD("cdos 1_2 3-30-89 cc3.bin", 0x0000, 0x4000, CRC(891c0094) SHA1(c1fa0fcbf1202a9b63aafd98dce777b502584230))
|
ROM_RELOAD(0x4000,0x4000)
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START(coco3_hdb1)
|
ROM_SYSTEM_BIOS(1, "cdos3", "Disto C-DOS 3 v1.2 for the CoCo 3")
|
||||||
ROM_REGION(0x8000, "eprom", ROMREGION_ERASE00)
|
ROMX_LOAD("cdos 1_2 3-30-89 cc3.bin", 0x0000, 0x4000, CRC(891c0094) SHA1(c1fa0fcbf1202a9b63aafd98dce777b502584230), ROM_BIOS(1))
|
||||||
ROM_LOAD("hdbdw3bc3.rom", 0x0000, 0x2000, CRC(309a9efd) SHA1(671605d61811953860466f771c1594bbade331f4))
|
ROM_RELOAD(0x4000,0x4000)
|
||||||
ROM_RELOAD(0x2000, 0x2000)
|
|
||||||
ROM_RELOAD(0x4000, 0x2000)
|
|
||||||
ROM_RELOAD(0x6000, 0x2000)
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
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
|
ROM_END
|
||||||
|
|
||||||
ROM_START(cp450_fdc)
|
ROM_START(cp450_fdc)
|
||||||
@ -449,7 +488,7 @@ ROM_END
|
|||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
// COCO FDC
|
// COCO Floppy Disk Controller
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
@ -464,7 +503,7 @@ namespace
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// optional information overrides
|
// device_t implementation
|
||||||
virtual const tiny_rom_entry *device_rom_region() const override
|
virtual const tiny_rom_entry *device_rom_region() const override
|
||||||
{
|
{
|
||||||
return ROM_NAME(coco_fdc);
|
return ROM_NAME(coco_fdc);
|
||||||
@ -472,54 +511,37 @@ namespace
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
|
||||||
// COCO FDC v1.1
|
|
||||||
//**************************************************************************
|
|
||||||
|
|
||||||
class coco_fdc_v11_device : public coco_fdc_device_base
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// construction/destruction
|
|
||||||
coco_fdc_v11_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
|
||||||
: coco_fdc_device_base(mconfig, COCO_FDC_V11, tag, owner, clock)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// optional information overrides
|
|
||||||
virtual const tiny_rom_entry *device_rom_region() const override
|
|
||||||
{
|
|
||||||
return ROM_NAME(coco_fdc_v11);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
// Disto / CRC Super Controller II Base
|
// Disto / CRC Super Controller II Base
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
class coco_scii_device_base
|
class coco_scii_device
|
||||||
: public coco_fdc_device_base
|
: public coco_fdc_device_base
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// construction/destruction
|
// construction/destruction
|
||||||
coco_scii_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
|
// construction/destruction
|
||||||
: coco_fdc_device_base(mconfig, type, tag, owner, clock)
|
coco_scii_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||||
|
: coco_fdc_device_base(mconfig, COCO_SCII, tag, owner, clock)
|
||||||
, m_slot(*this, MEB_TAG)
|
, m_slot(*this, MEB_TAG)
|
||||||
, m_carts(*this, "cart_line")
|
, m_carts(*this, "cart_line")
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// device-level overrides
|
// device_t implementation
|
||||||
virtual void device_start() override;
|
virtual void device_start() override;
|
||||||
virtual void device_reset() override;
|
virtual void device_reset() override;
|
||||||
virtual u8 scs_read(offs_t offset) override;
|
virtual u8 scs_read(offs_t offset) override;
|
||||||
virtual void scs_write(offs_t offset, u8 data) override;
|
virtual void scs_write(offs_t offset, u8 data) override;
|
||||||
|
|
||||||
// optional information overrides
|
|
||||||
virtual void device_add_mconfig(machine_config &config) override;
|
virtual void device_add_mconfig(machine_config &config) override;
|
||||||
|
|
||||||
|
virtual const tiny_rom_entry *device_rom_region() const override
|
||||||
|
{
|
||||||
|
return ROM_NAME(coco_scii);
|
||||||
|
}
|
||||||
|
|
||||||
// methods
|
// methods
|
||||||
virtual void update_lines() override;
|
virtual void update_lines() override;
|
||||||
|
|
||||||
@ -543,15 +565,15 @@ namespace
|
|||||||
// device_start - device-specific start
|
// device_start - device-specific start
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void coco_scii_device_base::device_start()
|
void coco_scii_device::device_start()
|
||||||
{
|
{
|
||||||
coco_family_fdc_device_base::device_start();
|
coco_family_fdc_device_base::device_start();
|
||||||
|
|
||||||
m_cache = std::make_unique<uint8_t[]>(0x200);
|
m_cache = std::make_unique<uint8_t[]>(0x200);
|
||||||
|
|
||||||
install_readwrite_handler(0xFF74, 0xFF77,
|
install_readwrite_handler(0xFF74, 0xFF77,
|
||||||
read8sm_delegate(*this, FUNC(coco_scii_device_base::ff74_read)),
|
read8sm_delegate(*this, FUNC(coco_scii_device::ff74_read)),
|
||||||
write8sm_delegate(*this, FUNC(coco_scii_device_base::ff74_write)));
|
write8sm_delegate(*this, FUNC(coco_scii_device::ff74_write)));
|
||||||
|
|
||||||
save_pointer(NAME(m_cache), 0x200);
|
save_pointer(NAME(m_cache), 0x200);
|
||||||
save_item(NAME(m_cache_pointer));
|
save_item(NAME(m_cache_pointer));
|
||||||
@ -563,7 +585,7 @@ namespace
|
|||||||
// device_reset - device-specific reset
|
// device_reset - device-specific reset
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void coco_scii_device_base::device_reset()
|
void coco_scii_device::device_reset()
|
||||||
{
|
{
|
||||||
coco_family_fdc_device_base::device_reset();
|
coco_family_fdc_device_base::device_reset();
|
||||||
|
|
||||||
@ -581,7 +603,7 @@ namespace
|
|||||||
// device_add_mconfig - device-specific machine config
|
// device_add_mconfig - device-specific machine config
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void coco_scii_device_base::device_add_mconfig(machine_config &config)
|
void coco_scii_device::device_add_mconfig(machine_config &config)
|
||||||
{
|
{
|
||||||
coco_fdc_device_base::device_add_mconfig(config);
|
coco_fdc_device_base::device_add_mconfig(config);
|
||||||
|
|
||||||
@ -596,7 +618,7 @@ namespace
|
|||||||
// scs_read
|
// scs_read
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
u8 coco_scii_device_base::scs_read(offs_t offset)
|
u8 coco_scii_device::scs_read(offs_t offset)
|
||||||
{
|
{
|
||||||
if (offset > 0x0f && offset < 0x18)
|
if (offset > 0x0f && offset < 0x18)
|
||||||
return m_slot->meb_read(offset - 0x10);
|
return m_slot->meb_read(offset - 0x10);
|
||||||
@ -609,7 +631,7 @@ namespace
|
|||||||
// scs_write
|
// scs_write
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void coco_scii_device_base::scs_write(offs_t offset, u8 data)
|
void coco_scii_device::scs_write(offs_t offset, u8 data)
|
||||||
{
|
{
|
||||||
if (offset > 0x0f && offset < 0x18)
|
if (offset > 0x0f && offset < 0x18)
|
||||||
m_slot->meb_write(offset - 0x10, data);
|
m_slot->meb_write(offset - 0x10, data);
|
||||||
@ -624,7 +646,7 @@ namespace
|
|||||||
// update_lines - SCII controller lines
|
// update_lines - SCII controller lines
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void coco_scii_device_base::update_lines()
|
void coco_scii_device::update_lines()
|
||||||
{
|
{
|
||||||
// clear HALT enable under certain circumstances
|
// clear HALT enable under certain circumstances
|
||||||
if (intrq() && (dskreg() & 0x20))
|
if (intrq() && (dskreg() & 0x20))
|
||||||
@ -682,7 +704,7 @@ namespace
|
|||||||
// ff74_read - no halt registers
|
// ff74_read - no halt registers
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
u8 coco_scii_device_base::ff74_read(offs_t offset)
|
u8 coco_scii_device::ff74_read(offs_t offset)
|
||||||
{
|
{
|
||||||
u8 data = 0x0;
|
u8 data = 0x0;
|
||||||
|
|
||||||
@ -719,7 +741,7 @@ namespace
|
|||||||
// ff74_write - no halt registers
|
// ff74_write - no halt registers
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void coco_scii_device_base::ff74_write(offs_t offset, u8 data)
|
void coco_scii_device::ff74_write(offs_t offset, u8 data)
|
||||||
{
|
{
|
||||||
switch(offset)
|
switch(offset)
|
||||||
{
|
{
|
||||||
@ -743,94 +765,6 @@ namespace
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
|
||||||
// Disto / CRC Super Controller II, CoCo 1 / 2 ROM
|
|
||||||
//**************************************************************************
|
|
||||||
|
|
||||||
class coco_scii_device_cc1 : public coco_scii_device_base
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// construction/destruction
|
|
||||||
coco_scii_device_cc1(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
|
||||||
: coco_scii_device_base(mconfig, COCO_SCII_CC1, tag, owner, clock)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// optional information overrides
|
|
||||||
virtual const tiny_rom_entry *device_rom_region() const override
|
|
||||||
{
|
|
||||||
return ROM_NAME(coco_scii_cc1);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
|
||||||
// Disto / CRC Super Controller II, CoCo 3 ROM
|
|
||||||
//**************************************************************************
|
|
||||||
|
|
||||||
class coco_scii_device_cc3 : public coco_scii_device_base
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// construction/destruction
|
|
||||||
coco_scii_device_cc3(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
|
||||||
: coco_scii_device_base(mconfig, COCO_SCII_CC3, tag, owner, clock)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// optional information overrides
|
|
||||||
virtual const tiny_rom_entry *device_rom_region() const override
|
|
||||||
{
|
|
||||||
return ROM_NAME(coco_scii_cc3);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
|
||||||
// COCO-3 HDB-DOS
|
|
||||||
//**************************************************************************
|
|
||||||
|
|
||||||
class coco3_hdb1_device : public coco_fdc_device_base
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// construction/destruction
|
|
||||||
coco3_hdb1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
|
||||||
: coco_fdc_device_base(mconfig, COCO3_HDB1, tag, owner, clock)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// optional information overrides
|
|
||||||
virtual const tiny_rom_entry *device_rom_region() const override
|
|
||||||
{
|
|
||||||
return ROM_NAME(coco3_hdb1);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
|
||||||
// COCO-2 HDB-DOS
|
|
||||||
//**************************************************************************
|
|
||||||
|
|
||||||
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, u32 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);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
// Prológica CP-450 BASIC Disco V. 1.0 (1984)
|
// Prológica CP-450 BASIC Disco V. 1.0 (1984)
|
||||||
//
|
//
|
||||||
@ -883,11 +817,7 @@ namespace
|
|||||||
};
|
};
|
||||||
} // Anonymous namepace
|
} // Anonymous namepace
|
||||||
|
|
||||||
DEFINE_DEVICE_TYPE_PRIVATE(COCO_FDC, coco_family_fdc_device_base, coco_fdc_device, "coco_fdc", "CoCo FDC")
|
DEFINE_DEVICE_TYPE_PRIVATE(COCO_FDC, coco_family_fdc_device_base, coco_fdc_device, "coco_fdc", "CoCo Floppy Disk Controller")
|
||||||
DEFINE_DEVICE_TYPE_PRIVATE(COCO_FDC_V11, coco_family_fdc_device_base, coco_fdc_v11_device, "coco_fdc_v11", "CoCo FDC v1.1")
|
DEFINE_DEVICE_TYPE_PRIVATE(COCO_SCII, coco_family_fdc_device_base, coco_scii_device, "coco_scii", "Disto Super Controller II")
|
||||||
DEFINE_DEVICE_TYPE_PRIVATE(COCO_SCII_CC1, coco_family_fdc_device_base, coco_scii_device_cc1, "coco_scii_cc1", "Disto Super Controller II (CoCo 1/2 ROM)")
|
|
||||||
DEFINE_DEVICE_TYPE_PRIVATE(COCO_SCII_CC3, coco_family_fdc_device_base, coco_scii_device_cc3, "coco_scii_cc3", "Disto Super Controller II (CoCo 3 ROM)")
|
|
||||||
DEFINE_DEVICE_TYPE_PRIVATE(COCO3_HDB1, coco_family_fdc_device_base, coco3_hdb1_device, "coco3_hdb1", "CoCo3 HDB-DOS")
|
|
||||||
DEFINE_DEVICE_TYPE_PRIVATE(COCO2_HDB1, coco_family_fdc_device_base, coco2_hdb1_device, "coco2_hdb1", "CoCo2 HDB-DOS")
|
|
||||||
DEFINE_DEVICE_TYPE_PRIVATE(CP450_FDC, coco_family_fdc_device_base, cp450_fdc_device, "cp450_fdc", "Prológica CP-450 BASIC Disco V. 1.0 (1984)")
|
DEFINE_DEVICE_TYPE_PRIVATE(CP450_FDC, coco_family_fdc_device_base, cp450_fdc_device, "cp450_fdc", "Prológica CP-450 BASIC Disco V. 1.0 (1984)")
|
||||||
DEFINE_DEVICE_TYPE_PRIVATE(CD6809_FDC, coco_family_fdc_device_base, cd6809_fdc_device, "cd6809_fdc", "Codimex CD-6809 Disk BASIC (1986)")
|
DEFINE_DEVICE_TYPE_PRIVATE(CD6809_FDC, coco_family_fdc_device_base, cd6809_fdc_device, "cd6809_fdc", "Codimex CD-6809 Disk BASIC (1986)")
|
||||||
|
@ -63,11 +63,7 @@ private:
|
|||||||
|
|
||||||
// device type definitions - CoCo FDC
|
// device type definitions - CoCo FDC
|
||||||
DECLARE_DEVICE_TYPE(COCO_FDC, coco_family_fdc_device_base)
|
DECLARE_DEVICE_TYPE(COCO_FDC, coco_family_fdc_device_base)
|
||||||
DECLARE_DEVICE_TYPE(COCO_FDC_V11, coco_family_fdc_device_base)
|
DECLARE_DEVICE_TYPE(COCO_SCII, coco_family_fdc_device_base)
|
||||||
DECLARE_DEVICE_TYPE(COCO_SCII_CC1, coco_family_fdc_device_base)
|
|
||||||
DECLARE_DEVICE_TYPE(COCO_SCII_CC3, coco_family_fdc_device_base)
|
|
||||||
DECLARE_DEVICE_TYPE(COCO3_HDB1, coco_family_fdc_device_base)
|
|
||||||
DECLARE_DEVICE_TYPE(COCO2_HDB1, coco_family_fdc_device_base)
|
|
||||||
DECLARE_DEVICE_TYPE(CP450_FDC, coco_family_fdc_device_base)
|
DECLARE_DEVICE_TYPE(CP450_FDC, coco_family_fdc_device_base)
|
||||||
DECLARE_DEVICE_TYPE(CD6809_FDC, coco_family_fdc_device_base)
|
DECLARE_DEVICE_TYPE(CD6809_FDC, coco_family_fdc_device_base)
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ void coco_multipak_device::device_add_mconfig(machine_config &config)
|
|||||||
m_slots[2]->cart_callback().set([this](int state) { update_line(3, line::CART); });
|
m_slots[2]->cart_callback().set([this](int state) { update_line(3, line::CART); });
|
||||||
m_slots[2]->nmi_callback().set([this](int state) { update_line(3, line::NMI); });
|
m_slots[2]->nmi_callback().set([this](int state) { update_line(3, line::NMI); });
|
||||||
m_slots[2]->halt_callback().set([this](int state) { update_line(3, line::HALT); });
|
m_slots[2]->halt_callback().set([this](int state) { update_line(3, line::HALT); });
|
||||||
COCOCART_SLOT(config, m_slots[3], DERIVED_CLOCK(1, 1), coco_cart_slot4, "fdcv11");
|
COCOCART_SLOT(config, m_slots[3], DERIVED_CLOCK(1, 1), coco_cart_slot4, "fdc");
|
||||||
m_slots[3]->cart_callback().set([this](int state) { update_line(4, line::CART); });
|
m_slots[3]->cart_callback().set([this](int state) { update_line(4, line::CART); });
|
||||||
m_slots[3]->nmi_callback().set([this](int state) { update_line(4, line::NMI); });
|
m_slots[3]->nmi_callback().set([this](int state) { update_line(4, line::NMI); });
|
||||||
m_slots[3]->halt_callback().set([this](int state) { update_line(4, line::HALT); });
|
m_slots[3]->halt_callback().set([this](int state) { update_line(4, line::HALT); });
|
||||||
|
@ -859,14 +859,10 @@ void coco_cart_add_fdcs(device_slot_interface &device)
|
|||||||
{
|
{
|
||||||
// FDCs are optional because if they are on a Multi-Pak interface, they must
|
// FDCs are optional because if they are on a Multi-Pak interface, they must
|
||||||
// be on Slot 4
|
// be on Slot 4
|
||||||
device.option_add("cc2hdb1", COCO2_HDB1);
|
|
||||||
device.option_add("cc3hdb1", COCO3_HDB1);
|
|
||||||
device.option_add("cd6809_fdc", CD6809_FDC);
|
device.option_add("cd6809_fdc", CD6809_FDC);
|
||||||
device.option_add("cp450_fdc", CP450_FDC);
|
device.option_add("cp450_fdc", CP450_FDC);
|
||||||
device.option_add("fdc", COCO_FDC);
|
device.option_add("fdc", COCO_FDC);
|
||||||
device.option_add("fdcv11", COCO_FDC_V11);
|
device.option_add("scii", COCO_SCII);
|
||||||
device.option_add("scii_cc1", COCO_SCII_CC1);
|
|
||||||
device.option_add("scii_cc3", COCO_SCII_CC3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -43845,7 +43845,6 @@ t4426 // Terco 4426 CNC programming station
|
|||||||
|
|
||||||
@source:trs/coco3.cpp
|
@source:trs/coco3.cpp
|
||||||
coco3 // Color Computer 3 (NTSC)
|
coco3 // Color Computer 3 (NTSC)
|
||||||
coco3dw1 // Coco 3 with HDB-DOS
|
|
||||||
coco3h // Hacked Color Computer 3 (6309)
|
coco3h // Hacked Color Computer 3 (6309)
|
||||||
coco3p // Color Computer 3 (PAL)
|
coco3p // Color Computer 3 (PAL)
|
||||||
msm3 // ILCE / SEP Micro-SEP Model 3
|
msm3 // ILCE / SEP Micro-SEP Model 3
|
||||||
|
@ -32,7 +32,6 @@
|
|||||||
INPUT_PORTS_EXTERN( coco_analog_control );
|
INPUT_PORTS_EXTERN( coco_analog_control );
|
||||||
INPUT_PORTS_EXTERN( coco_joystick );
|
INPUT_PORTS_EXTERN( coco_joystick );
|
||||||
INPUT_PORTS_EXTERN( coco_beckerport );
|
INPUT_PORTS_EXTERN( coco_beckerport );
|
||||||
INPUT_PORTS_EXTERN( coco_beckerport_dw );
|
|
||||||
|
|
||||||
void coco_cart(device_slot_interface &device);
|
void coco_cart(device_slot_interface &device);
|
||||||
|
|
||||||
|
@ -181,13 +181,6 @@ INPUT_PORTS_START( coco_beckerport )
|
|||||||
PORT_CONFSETTING( 0x01, DEF_STR( On ))
|
PORT_CONFSETTING( 0x01, DEF_STR( On ))
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
INPUT_PORTS_START( coco_beckerport_dw )
|
|
||||||
PORT_START(BECKERPORT_TAG)
|
|
||||||
PORT_CONFNAME( 0x01, 0x01, "Becker Port" )
|
|
||||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ))
|
|
||||||
PORT_CONFSETTING( 0x01, DEF_STR( On ))
|
|
||||||
INPUT_PORTS_END
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
@ -637,7 +630,7 @@ void deluxecoco_state::deluxecoco(machine_config &config)
|
|||||||
void coco12_state::coco2(machine_config &config)
|
void coco12_state::coco2(machine_config &config)
|
||||||
{
|
{
|
||||||
coco(config);
|
coco(config);
|
||||||
cococart_slot_device &cartslot(COCOCART_SLOT(config.replace(), CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), coco_cart, "fdcv11"));
|
cococart_slot_device &cartslot(COCOCART_SLOT(config.replace(), CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), coco_cart, "fdc"));
|
||||||
cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded
|
cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded
|
||||||
cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
|
cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
|
||||||
cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
|
cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
|
||||||
|
@ -235,16 +235,6 @@ static INPUT_PORTS_START( coco3 )
|
|||||||
PORT_INCLUDE( screen_config )
|
PORT_INCLUDE( screen_config )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( coco3dw )
|
|
||||||
PORT_INCLUDE( coco3_keyboard )
|
|
||||||
PORT_INCLUDE( coco3_joystick )
|
|
||||||
PORT_INCLUDE( coco_analog_control )
|
|
||||||
PORT_INCLUDE( coco_rat_mouse )
|
|
||||||
PORT_INCLUDE( coco_lightgun )
|
|
||||||
PORT_INCLUDE( coco_beckerport_dw )
|
|
||||||
PORT_INCLUDE( screen_config )
|
|
||||||
INPUT_PORTS_END
|
|
||||||
|
|
||||||
static DEVICE_INPUT_DEFAULTS_START( rs_printer )
|
static DEVICE_INPUT_DEFAULTS_START( rs_printer )
|
||||||
DEVICE_INPUT_DEFAULTS( "RS232_RXBAUD", 0xff, RS232_BAUD_600 )
|
DEVICE_INPUT_DEFAULTS( "RS232_RXBAUD", 0xff, RS232_BAUD_600 )
|
||||||
DEVICE_INPUT_DEFAULTS( "RS232_DATABITS", 0xff, RS232_DATABITS_8 )
|
DEVICE_INPUT_DEFAULTS( "RS232_DATABITS", 0xff, RS232_DATABITS_8 )
|
||||||
@ -327,7 +317,7 @@ void coco3_state::coco3(machine_config &config)
|
|||||||
coco_floating(config);
|
coco_floating(config);
|
||||||
|
|
||||||
// cartridge
|
// cartridge
|
||||||
cococart_slot_device &cartslot(COCOCART_SLOT(config, CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), coco_cart, "fdcv11"));
|
cococart_slot_device &cartslot(COCOCART_SLOT(config, CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), coco_cart, "fdc"));
|
||||||
cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded
|
cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded
|
||||||
cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
|
cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
|
||||||
cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
|
cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
|
||||||
@ -360,15 +350,6 @@ void coco3_state::coco3h(machine_config &config)
|
|||||||
m_maincpu->set_addrmap(AS_PROGRAM, &coco3_state::coco3_mem);
|
m_maincpu->set_addrmap(AS_PROGRAM, &coco3_state::coco3_mem);
|
||||||
}
|
}
|
||||||
|
|
||||||
void coco3_state::coco3dw1(machine_config &config)
|
|
||||||
{
|
|
||||||
coco3(config);
|
|
||||||
cococart_slot_device &cartslot(COCOCART_SLOT(config.replace(), CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), coco_cart, "cc3hdb1"));
|
|
||||||
cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded
|
|
||||||
cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
|
|
||||||
cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
|
|
||||||
}
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
// ROMS
|
// ROMS
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
@ -389,7 +370,6 @@ ROM_START(msm3)
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
#define rom_coco3h rom_coco3
|
#define rom_coco3h rom_coco3
|
||||||
#define rom_coco3dw1 rom_coco3
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
// SYSTEM DRIVERS
|
// SYSTEM DRIVERS
|
||||||
@ -399,5 +379,4 @@ ROM_END
|
|||||||
COMP( 1986, coco3, coco, 0, coco3, coco3, coco3_state, empty_init, "Tandy Radio Shack", "Color Computer 3 (NTSC)", 0 )
|
COMP( 1986, coco3, coco, 0, coco3, coco3, coco3_state, empty_init, "Tandy Radio Shack", "Color Computer 3 (NTSC)", 0 )
|
||||||
COMP( 1986, coco3p, coco, 0, coco3p, coco3, coco3_state, empty_init, "Tandy Radio Shack", "Color Computer 3 (PAL)", 0 )
|
COMP( 1986, coco3p, coco, 0, coco3p, coco3, coco3_state, empty_init, "Tandy Radio Shack", "Color Computer 3 (PAL)", 0 )
|
||||||
COMP( 19??, coco3h, coco, 0, coco3h, coco3, coco3_state, empty_init, "Tandy Radio Shack", "Color Computer 3 (NTSC; HD6309)", MACHINE_UNOFFICIAL )
|
COMP( 19??, coco3h, coco, 0, coco3h, coco3, coco3_state, empty_init, "Tandy Radio Shack", "Color Computer 3 (NTSC; HD6309)", MACHINE_UNOFFICIAL )
|
||||||
COMP( 19??, coco3dw1, coco, 0, coco3dw1, coco3dw, coco3_state, empty_init, "Tandy Radio Shack", "Color Computer 3 (NTSC; HDB-DOS)", MACHINE_UNOFFICIAL )
|
|
||||||
COMP( 1987, msm3, coco, 0, coco3, coco3, coco3_state, empty_init, "ILCE / SEP", "Micro-Sep Model 3", 0 )
|
COMP( 1987, msm3, coco, 0, coco3, coco3, coco3_state, empty_init, "ILCE / SEP", "Micro-Sep Model 3", 0 )
|
||||||
|
Loading…
Reference in New Issue
Block a user