c64.cpp, c128.cpp: fixed CBM IEC slot address not being set when replacing devices in machine config

bus/c64/rex_ep256.cpp: fixed array of EPROM slots not being populated (subdevices don't exist at construction time)

cleanup: (nw)
* having a macro for a device's expected tag in a header is bad - devices should not make assumptions about their tag or their location in the system hierarchy
* device types exist in the global namespace - you must not use overly generic names for them as this is likely to cause collisions
* device short names and titles each have their own namespace, but they're also global, and it should be possible to work out vaguely what a device is from its names
* POSIX reserves all names ending in "_t" at global scope - we want fewer of these causing potential future issues, not more
* if your device is in the global namespace, you should name it in a way that's not asking for name collisions to happen
* we have a simple convention for device class names - it doesn't hurt to follow it:
  - concrete device_t implementations end with "_device"
  - device_interface implementations end with "_interface" (and often start with "device_")
  - abstract classes that derive from device_t end with "_device_base"
* if you want to give your slot card device classes short, generic names, put them in a namespace for the "bus"
* if you really want to use names ending with "_t", put them in a namespace or nest them inside a class
This commit is contained in:
Vas Crabb 2019-11-15 05:11:51 +11:00
parent f7e679876f
commit ce3c38914d
63 changed files with 507 additions and 610 deletions

View File

@ -112,8 +112,8 @@ void abc80_cards(device_slot_interface &device)
device.option_add("fd2", ABC_FD2); device.option_add("fd2", ABC_FD2);
device.option_add("memcard", ABC_MEMORY_CARD); device.option_add("memcard", ABC_MEMORY_CARD);
device.option_add("slow", LUXOR_55_10828); device.option_add("slow", LUXOR_55_10828);
device.option_add("ssa", SUPER_SMARTAID); device.option_add("ssa", ABC_SUPER_SMARTAID);
device.option_add("unidisk", UNIDISK); device.option_add("unidisk", ABC_UNIDISK);
} }
@ -139,7 +139,7 @@ void abcbus_cards(device_slot_interface &device)
device.option_add("slow", LUXOR_55_10828); device.option_add("slow", LUXOR_55_10828);
device.option_add("slutprov", ABC_SLUTPROV); device.option_add("slutprov", ABC_SLUTPROV);
device.option_add("uni800", ABC_UNI800); device.option_add("uni800", ABC_UNI800);
device.option_add("unidisk", UNIDISK); device.option_add("unidisk", ABC_UNIDISK);
device.option_add("xebec", LUXOR_55_21056); device.option_add("xebec", LUXOR_55_21056);
} }

View File

@ -102,14 +102,6 @@
//**************************************************************************
// CONSTANTS
//**************************************************************************
#define ABCBUS_TAG "bus"
//************************************************************************** //**************************************************************************
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************

View File

@ -22,7 +22,7 @@
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(DATABOARD_4112_23, databoard_4112_23_t, "db411223", "Databoard 4112-23") DEFINE_DEVICE_TYPE(DATABOARD_4112_23, abc_databoard_4112_23_device, "abc_db411223", "Databoard 4112-23")
//------------------------------------------------- //-------------------------------------------------
@ -39,7 +39,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *databoard_4112_23_t::device_rom_region() const const tiny_rom_entry *abc_databoard_4112_23_device::device_rom_region() const
{ {
return ROM_NAME( databoard_4112_23 ); return ROM_NAME( databoard_4112_23 );
} }
@ -49,7 +49,7 @@ const tiny_rom_entry *databoard_4112_23_t::device_rom_region() const
// ADDRESS_MAP( databoard_4112_23_mem ) // ADDRESS_MAP( databoard_4112_23_mem )
//------------------------------------------------- //-------------------------------------------------
void databoard_4112_23_t::databoard_4112_23_mem(address_map &map) void abc_databoard_4112_23_device::databoard_4112_23_mem(address_map &map)
{ {
map(0x0000, 0x1fff).rom().region(Z80_TAG, 0); map(0x0000, 0x1fff).rom().region(Z80_TAG, 0);
} }
@ -59,7 +59,7 @@ void databoard_4112_23_t::databoard_4112_23_mem(address_map &map)
// ADDRESS_MAP( databoard_4112_23_io ) // ADDRESS_MAP( databoard_4112_23_io )
//------------------------------------------------- //-------------------------------------------------
void databoard_4112_23_t::databoard_4112_23_io(address_map &map) void abc_databoard_4112_23_device::databoard_4112_23_io(address_map &map)
{ {
} }
@ -68,11 +68,11 @@ void databoard_4112_23_t::databoard_4112_23_io(address_map &map)
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
void databoard_4112_23_t::device_add_mconfig(machine_config &config) void abc_databoard_4112_23_device::device_add_mconfig(machine_config &config)
{ {
Z80(config, m_maincpu, 4000000); Z80(config, m_maincpu, 4000000);
m_maincpu->set_addrmap(AS_PROGRAM, &databoard_4112_23_t::databoard_4112_23_mem); m_maincpu->set_addrmap(AS_PROGRAM, &abc_databoard_4112_23_device::databoard_4112_23_mem);
m_maincpu->set_addrmap(AS_IO, &databoard_4112_23_t::databoard_4112_23_io); m_maincpu->set_addrmap(AS_IO, &abc_databoard_4112_23_device::databoard_4112_23_io);
} }
@ -88,7 +88,7 @@ INPUT_PORTS_END
// input_ports - device-specific input ports // input_ports - device-specific input ports
//------------------------------------------------- //-------------------------------------------------
ioport_constructor databoard_4112_23_t::device_input_ports() const ioport_constructor abc_databoard_4112_23_device::device_input_ports() const
{ {
return INPUT_PORTS_NAME( databoard_4112_23 ); return INPUT_PORTS_NAME( databoard_4112_23 );
} }
@ -100,10 +100,10 @@ ioport_constructor databoard_4112_23_t::device_input_ports() const
//************************************************************************** //**************************************************************************
//------------------------------------------------- //-------------------------------------------------
// databoard_4112_23_t - constructor // abc_databoard_4112_23_device - constructor
//------------------------------------------------- //-------------------------------------------------
databoard_4112_23_t::databoard_4112_23_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : abc_databoard_4112_23_device::abc_databoard_4112_23_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, DATABOARD_4112_23, tag, owner, clock), device_t(mconfig, DATABOARD_4112_23, tag, owner, clock),
device_abcbus_card_interface(mconfig, *this), device_abcbus_card_interface(mconfig, *this),
m_maincpu(*this, Z80_TAG) m_maincpu(*this, Z80_TAG)
@ -115,7 +115,7 @@ databoard_4112_23_t::databoard_4112_23_t(const machine_config &mconfig, const ch
// device_start - device-specific startup // device_start - device-specific startup
//------------------------------------------------- //-------------------------------------------------
void databoard_4112_23_t::device_start() void abc_databoard_4112_23_device::device_start()
{ {
} }
@ -124,7 +124,7 @@ void databoard_4112_23_t::device_start()
// device_reset - device-specific reset // device_reset - device-specific reset
//------------------------------------------------- //-------------------------------------------------
void databoard_4112_23_t::device_reset() void abc_databoard_4112_23_device::device_reset()
{ {
m_cs = false; m_cs = false;
} }
@ -139,7 +139,7 @@ void databoard_4112_23_t::device_reset()
// abcbus_cs - // abcbus_cs -
//------------------------------------------------- //-------------------------------------------------
void databoard_4112_23_t::abcbus_cs(uint8_t data) void abc_databoard_4112_23_device::abcbus_cs(uint8_t data)
{ {
} }
@ -148,7 +148,7 @@ void databoard_4112_23_t::abcbus_cs(uint8_t data)
// abcbus_stat - // abcbus_stat -
//------------------------------------------------- //-------------------------------------------------
uint8_t databoard_4112_23_t::abcbus_stat() uint8_t abc_databoard_4112_23_device::abcbus_stat()
{ {
uint8_t data = 0xff; uint8_t data = 0xff;
@ -164,7 +164,7 @@ uint8_t databoard_4112_23_t::abcbus_stat()
// abcbus_inp - // abcbus_inp -
//------------------------------------------------- //-------------------------------------------------
uint8_t databoard_4112_23_t::abcbus_inp() uint8_t abc_databoard_4112_23_device::abcbus_inp()
{ {
uint8_t data = 0xff; uint8_t data = 0xff;
@ -180,7 +180,7 @@ uint8_t databoard_4112_23_t::abcbus_inp()
// abcbus_out - // abcbus_out -
//------------------------------------------------- //-------------------------------------------------
void databoard_4112_23_t::abcbus_out(uint8_t data) void abc_databoard_4112_23_device::abcbus_out(uint8_t data)
{ {
if (!m_cs) return; if (!m_cs) return;
} }
@ -190,7 +190,7 @@ void databoard_4112_23_t::abcbus_out(uint8_t data)
// abcbus_c1 - // abcbus_c1 -
//------------------------------------------------- //-------------------------------------------------
void databoard_4112_23_t::abcbus_c1(uint8_t data) void abc_databoard_4112_23_device::abcbus_c1(uint8_t data)
{ {
if (m_cs) if (m_cs)
{ {
@ -202,7 +202,7 @@ void databoard_4112_23_t::abcbus_c1(uint8_t data)
// abcbus_c3 - // abcbus_c3 -
//------------------------------------------------- //-------------------------------------------------
void databoard_4112_23_t::abcbus_c3(uint8_t data) void abc_databoard_4112_23_device::abcbus_c3(uint8_t data)
{ {
if (m_cs) if (m_cs)
{ {

View File

@ -20,14 +20,14 @@
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************
// ======================> databoard_4112_23_t // ======================> abc_databoard_4112_23_device
class databoard_4112_23_t : public device_t, class abc_databoard_4112_23_device : public device_t,
public device_abcbus_card_interface public device_abcbus_card_interface
{ {
public: public:
// construction/destruction // construction/destruction
databoard_4112_23_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); abc_databoard_4112_23_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected: protected:
// device-level overrides // device-level overrides
@ -58,6 +58,6 @@ private:
// device type definition // device type definition
DECLARE_DEVICE_TYPE(DATABOARD_4112_23, databoard_4112_23_t) DECLARE_DEVICE_TYPE(DATABOARD_4112_23, abc_databoard_4112_23_device)
#endif // MAME_BUS_ABCBUS_DATABOARD_4112_23_H #endif // MAME_BUS_ABCBUS_DATABOARD_4112_23_H

View File

@ -159,8 +159,8 @@ void luxor_55_21046_device::luxor_55_21046_io(address_map &map)
map(0x3c, 0x3c).mirror(0xff03).w(FUNC(luxor_55_21046_device::_9b_w)); map(0x3c, 0x3c).mirror(0xff03).w(FUNC(luxor_55_21046_device::_9b_w));
map(0x4c, 0x4c).mirror(0xff03).w(FUNC(luxor_55_21046_device::_8a_w)); map(0x4c, 0x4c).mirror(0xff03).w(FUNC(luxor_55_21046_device::_8a_w));
map(0x58, 0x58).mirror(0x0007).select(0xff00).r(FUNC(luxor_55_21046_device::_9a_r)); map(0x58, 0x58).mirror(0x0007).select(0xff00).r(FUNC(luxor_55_21046_device::_9a_r));
map(0x68, 0x6b).mirror(0xff00).r(SAB1793_TAG, FUNC(fd1793_device::read)); map(0x68, 0x6b).mirror(0xff00).r(m_fdc, FUNC(fd1793_device::read));
map(0x78, 0x7b).mirror(0xff00).w(SAB1793_TAG, FUNC(fd1793_device::write)); map(0x78, 0x7b).mirror(0xff00).w(m_fdc, FUNC(fd1793_device::write));
map(0x80, 0x80).mirror(0xff77).rw(m_dma, FUNC(z80dma_device::bus_r), FUNC(z80dma_device::bus_w)); map(0x80, 0x80).mirror(0xff77).rw(m_dma, FUNC(z80dma_device::bus_r), FUNC(z80dma_device::bus_w));
} }

View File

@ -17,14 +17,6 @@
//**************************************************************************
// MACROS / CONSTANTS
//**************************************************************************
#define LUXOR_4105_TAG "luxor_4105"
//************************************************************************** //**************************************************************************
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************

View File

@ -63,7 +63,7 @@ Notes:
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(ABC_MEMORY_CARD, abc_memory_card_device, "abc_mem", "ABC Memory Card") DEFINE_DEVICE_TYPE(ABC_MEMORY_CARD, abc_memory_card_device, "abc_memcard", "ABC Memory Card")
//------------------------------------------------- //-------------------------------------------------

View File

@ -35,7 +35,7 @@ protected:
virtual void device_start() override; virtual void device_start() override;
// device_abcbus_interface overrides // device_abcbus_interface overrides
virtual void abcbus_cs(uint8_t data) override { }; virtual void abcbus_cs(uint8_t data) override { }
virtual uint8_t abcbus_xmemfl(offs_t offset) override; virtual uint8_t abcbus_xmemfl(offs_t offset) override;
private: private:

View File

@ -9,7 +9,7 @@
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(ABC_SLUTPROV, abc_slutprov_device, "slutprov", "Slutprov") DEFINE_DEVICE_TYPE(ABC_SLUTPROV, abc_slutprov_device, "abc_slutprov", "Slutprov")
//------------------------------------------------- //-------------------------------------------------

View File

@ -65,16 +65,16 @@ Notes:
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(SUPER_SMARTAID, super_smartaid_t, "ssa", "Super Smartaid") DEFINE_DEVICE_TYPE(ABC_SUPER_SMARTAID, abc_super_smartaid_device, "abc_ssa", "Super Smartaid")
//------------------------------------------------- //-------------------------------------------------
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
void super_smartaid_t::device_add_mconfig(machine_config &config) void abc_super_smartaid_device::device_add_mconfig(machine_config &config)
{ {
ABCBUS_SLOT(config, ABCBUS_TAG, DERIVED_CLOCK(1, 1), abc80_cards, nullptr); ABCBUS_SLOT(config, m_bus, DERIVED_CLOCK(1, 1), abc80_cards, nullptr);
} }
@ -98,7 +98,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *super_smartaid_t::device_rom_region() const const tiny_rom_entry *abc_super_smartaid_device::device_rom_region() const
{ {
return ROM_NAME( super_smartaid ); return ROM_NAME( super_smartaid );
} }
@ -110,14 +110,14 @@ const tiny_rom_entry *super_smartaid_t::device_rom_region() const
//************************************************************************** //**************************************************************************
//------------------------------------------------- //-------------------------------------------------
// super_smartaid_t - constructor // abc_super_smartaid_device - constructor
//------------------------------------------------- //-------------------------------------------------
super_smartaid_t::super_smartaid_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : abc_super_smartaid_device::abc_super_smartaid_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, SUPER_SMARTAID, tag, owner, clock), device_t(mconfig, ABC_SUPER_SMARTAID, tag, owner, clock),
device_abcbus_card_interface(mconfig, *this), device_abcbus_card_interface(mconfig, *this),
device_nvram_interface(mconfig, *this), device_nvram_interface(mconfig, *this),
m_bus(*this, ABCBUS_TAG), m_bus(*this, "bus"),
m_rom_1(*this, "ssa1"), m_rom_1(*this, "ssa1"),
m_rom_2(*this, "ssa2"), m_rom_2(*this, "ssa2"),
m_prom(*this, "ssa3"), m_prom(*this, "ssa3"),
@ -132,7 +132,7 @@ super_smartaid_t::super_smartaid_t(const machine_config &mconfig, const char *ta
// device_start - device-specific startup // device_start - device-specific startup
//------------------------------------------------- //-------------------------------------------------
void super_smartaid_t::device_start() void abc_super_smartaid_device::device_start()
{ {
// descramble ROMs // descramble ROMs
for (offs_t i = 0; i < 0x800; i++) for (offs_t i = 0; i < 0x800; i++)
@ -157,7 +157,7 @@ void super_smartaid_t::device_start()
// device_reset - device-specific reset // device_reset - device-specific reset
//------------------------------------------------- //-------------------------------------------------
void super_smartaid_t::device_reset() void abc_super_smartaid_device::device_reset()
{ {
m_rom_bank = 0; m_rom_bank = 0;
m_prom_bank = 0; m_prom_bank = 0;
@ -173,7 +173,7 @@ void super_smartaid_t::device_reset()
// abcbus_xmemfl - // abcbus_xmemfl -
//------------------------------------------------- //-------------------------------------------------
uint8_t super_smartaid_t::abcbus_xmemfl(offs_t offset) uint8_t abc_super_smartaid_device::abcbus_xmemfl(offs_t offset)
{ {
uint8_t data = 0xff; uint8_t data = 0xff;
@ -204,7 +204,7 @@ uint8_t super_smartaid_t::abcbus_xmemfl(offs_t offset)
// abcbus_xmemw - // abcbus_xmemw -
//------------------------------------------------- //-------------------------------------------------
void super_smartaid_t::abcbus_xmemw(offs_t offset, uint8_t data) void abc_super_smartaid_device::abcbus_xmemw(offs_t offset, uint8_t data)
{ {
if ((offset == 0x4040) || (offset == 0x4041)) if ((offset == 0x4040) || (offset == 0x4041))
{ {

View File

@ -20,15 +20,15 @@
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************
// ======================> super_smartaid_t // ======================> abc_super_smartaid_device
class super_smartaid_t : public device_t, class abc_super_smartaid_device : public device_t,
public device_abcbus_card_interface, public device_abcbus_card_interface,
public device_nvram_interface public device_nvram_interface
{ {
public: public:
// construction/destruction // construction/destruction
super_smartaid_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); abc_super_smartaid_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides // optional information overrides
virtual void device_add_mconfig(machine_config &config) override; virtual void device_add_mconfig(machine_config &config) override;
@ -68,6 +68,6 @@ private:
// device type definition // device type definition
DECLARE_DEVICE_TYPE(SUPER_SMARTAID, super_smartaid_t) DECLARE_DEVICE_TYPE(ABC_SUPER_SMARTAID, abc_super_smartaid_device)
#endif // MAME_BUS_ABCBUS_SSA_H #endif // MAME_BUS_ABCBUS_SSA_H

View File

@ -40,7 +40,7 @@ Notes:
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(ABC_UNI800, abc_uni800_device, "uni800", "UNI-800") DEFINE_DEVICE_TYPE(ABC_UNI800, abc_uni800_device, "abc_uni800", "UNI-800")
//------------------------------------------------- //-------------------------------------------------

View File

@ -22,7 +22,7 @@
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(UNIDISK, unidisk_t, "unidisk", "MyAB UNI DISK") DEFINE_DEVICE_TYPE(ABC_UNIDISK, abc_unidisk_device, "abc_unidisk", "MyAB UNI DISK")
//------------------------------------------------- //-------------------------------------------------
@ -44,7 +44,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *unidisk_t::device_rom_region() const const tiny_rom_entry *abc_unidisk_device::device_rom_region() const
{ {
return ROM_NAME( unidisk ); return ROM_NAME( unidisk );
} }
@ -54,7 +54,7 @@ const tiny_rom_entry *unidisk_t::device_rom_region() const
// ADDRESS_MAP( unidisk_mem ) // ADDRESS_MAP( unidisk_mem )
//------------------------------------------------- //-------------------------------------------------
void unidisk_t::unidisk_mem(address_map &map) void abc_unidisk_device::unidisk_mem(address_map &map)
{ {
map(0x0000, 0x0fff).rom().region(TMS9995_TAG, 0); map(0x0000, 0x0fff).rom().region(TMS9995_TAG, 0);
} }
@ -64,7 +64,7 @@ void unidisk_t::unidisk_mem(address_map &map)
// ADDRESS_MAP( unidisk_io ) // ADDRESS_MAP( unidisk_io )
//------------------------------------------------- //-------------------------------------------------
void unidisk_t::unidisk_io(address_map &map) void abc_unidisk_device::unidisk_io(address_map &map)
{ {
} }
@ -73,11 +73,11 @@ void unidisk_t::unidisk_io(address_map &map)
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
void unidisk_t::device_add_mconfig(machine_config &config) void abc_unidisk_device::device_add_mconfig(machine_config &config)
{ {
TMS9995(config, m_maincpu, 12000000); TMS9995(config, m_maincpu, 12000000);
m_maincpu->set_addrmap(AS_PROGRAM, &unidisk_t::unidisk_mem); m_maincpu->set_addrmap(AS_PROGRAM, &abc_unidisk_device::unidisk_mem);
m_maincpu->set_addrmap(AS_IO, &unidisk_t::unidisk_io); m_maincpu->set_addrmap(AS_IO, &abc_unidisk_device::unidisk_io);
} }
@ -93,7 +93,7 @@ INPUT_PORTS_END
// input_ports - device-specific input ports // input_ports - device-specific input ports
//------------------------------------------------- //-------------------------------------------------
ioport_constructor unidisk_t::device_input_ports() const ioport_constructor abc_unidisk_device::device_input_ports() const
{ {
return INPUT_PORTS_NAME( unidisk ); return INPUT_PORTS_NAME( unidisk );
} }
@ -105,11 +105,11 @@ ioport_constructor unidisk_t::device_input_ports() const
//************************************************************************** //**************************************************************************
//------------------------------------------------- //-------------------------------------------------
// unidisk_t - constructor // abc_unidisk_device - constructor
//------------------------------------------------- //-------------------------------------------------
unidisk_t::unidisk_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : abc_unidisk_device::abc_unidisk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, UNIDISK, tag, owner, clock), device_t(mconfig, ABC_UNIDISK, tag, owner, clock),
device_abcbus_card_interface(mconfig, *this), device_abcbus_card_interface(mconfig, *this),
m_maincpu(*this, TMS9995_TAG) m_maincpu(*this, TMS9995_TAG)
{ {
@ -120,7 +120,7 @@ unidisk_t::unidisk_t(const machine_config &mconfig, const char *tag, device_t *o
// device_start - device-specific startup // device_start - device-specific startup
//------------------------------------------------- //-------------------------------------------------
void unidisk_t::device_start() void abc_unidisk_device::device_start()
{ {
} }
@ -129,7 +129,7 @@ void unidisk_t::device_start()
// device_reset - device-specific reset // device_reset - device-specific reset
//------------------------------------------------- //-------------------------------------------------
void unidisk_t::device_reset() void abc_unidisk_device::device_reset()
{ {
m_cs = false; m_cs = false;
} }
@ -144,7 +144,7 @@ void unidisk_t::device_reset()
// abcbus_cs - // abcbus_cs -
//------------------------------------------------- //-------------------------------------------------
void unidisk_t::abcbus_cs(uint8_t data) void abc_unidisk_device::abcbus_cs(uint8_t data)
{ {
} }
@ -153,7 +153,7 @@ void unidisk_t::abcbus_cs(uint8_t data)
// abcbus_stat - // abcbus_stat -
//------------------------------------------------- //-------------------------------------------------
uint8_t unidisk_t::abcbus_stat() uint8_t abc_unidisk_device::abcbus_stat()
{ {
uint8_t data = 0xff; uint8_t data = 0xff;
@ -169,7 +169,7 @@ uint8_t unidisk_t::abcbus_stat()
// abcbus_inp - // abcbus_inp -
//------------------------------------------------- //-------------------------------------------------
uint8_t unidisk_t::abcbus_inp() uint8_t abc_unidisk_device::abcbus_inp()
{ {
uint8_t data = 0xff; uint8_t data = 0xff;
@ -185,7 +185,7 @@ uint8_t unidisk_t::abcbus_inp()
// abcbus_out - // abcbus_out -
//------------------------------------------------- //-------------------------------------------------
void unidisk_t::abcbus_out(uint8_t data) void abc_unidisk_device::abcbus_out(uint8_t data)
{ {
if (!m_cs) return; if (!m_cs) return;
} }
@ -195,7 +195,7 @@ void unidisk_t::abcbus_out(uint8_t data)
// abcbus_c1 - // abcbus_c1 -
//------------------------------------------------- //-------------------------------------------------
void unidisk_t::abcbus_c1(uint8_t data) void abc_unidisk_device::abcbus_c1(uint8_t data)
{ {
if (m_cs) if (m_cs)
{ {
@ -207,7 +207,7 @@ void unidisk_t::abcbus_c1(uint8_t data)
// abcbus_c3 - // abcbus_c3 -
//------------------------------------------------- //-------------------------------------------------
void unidisk_t::abcbus_c3(uint8_t data) void abc_unidisk_device::abcbus_c3(uint8_t data)
{ {
if (m_cs) if (m_cs)
{ {

View File

@ -20,14 +20,14 @@
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************
// ======================> unidisk_t // ======================> abc_unidisk_device
class unidisk_t : public device_t, class abc_unidisk_device : public device_t,
public device_abcbus_card_interface public device_abcbus_card_interface
{ {
public: public:
// construction/destruction // construction/destruction
unidisk_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); abc_unidisk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected: protected:
// device-level overrides // device-level overrides
@ -58,6 +58,6 @@ private:
// device type definition // device type definition
DECLARE_DEVICE_TYPE(UNIDISK, unidisk_t) DECLARE_DEVICE_TYPE(ABC_UNIDISK, abc_unidisk_device)
#endif // MAME_BUS_ABCBUS_UNIDISK_H #endif // MAME_BUS_ABCBUS_UNIDISK_H

View File

@ -24,8 +24,7 @@
// ======================> c64_16kb_cartridge_device // ======================> c64_16kb_cartridge_device
class c64_16kb_cartridge_device : public device_t, class c64_16kb_cartridge_device : public device_t, public device_c64_expansion_card_interface
public device_c64_expansion_card_interface
{ {
public: public:
// construction/destruction // construction/destruction

View File

@ -22,8 +22,7 @@
// ======================> c64_4dxh_device // ======================> c64_4dxh_device
class c64_4dxh_device : public device_t, class c64_4dxh_device : public device_t, public device_pet_user_port_interface
public device_pet_user_port_interface
{ {
public: public:
// construction/destruction // construction/destruction

View File

@ -22,8 +22,7 @@
// ======================> c64_4ksa_device // ======================> c64_4ksa_device
class c64_4ksa_device : public device_t, class c64_4ksa_device : public device_t, public device_pet_user_port_interface
public device_pet_user_port_interface
{ {
public: public:
// construction/destruction // construction/destruction

View File

@ -22,8 +22,7 @@
// ======================> c64_4tba_device // ======================> c64_4tba_device
class c64_4tba_device : public device_t, class c64_4tba_device : public device_t, public device_pet_user_port_interface
public device_pet_user_port_interface
{ {
public: public:
// construction/destruction // construction/destruction

View File

@ -15,23 +15,11 @@
//**************************************************************************
// MACROS/CONSTANTS
//**************************************************************************
#define I8255_TAG "u2"
#define DS75160A_TAG "u3"
#define DS75161A_TAG "u4"
#define CENTRONICS_TAG "p4"
#define EXPANSION_TAG "exp"
//************************************************************************** //**************************************************************************
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(C64_BUSCARD, buscard_t, "c64_buscard", "C64 BusCard cartridge") DEFINE_DEVICE_TYPE(C64_BUSCARD, c64_buscard_device, "c64_buscard", "C64 BusCard cartridge")
//------------------------------------------------- //-------------------------------------------------
@ -51,7 +39,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *buscard_t::device_rom_region() const const tiny_rom_entry *c64_buscard_device::device_rom_region() const
{ {
return ROM_NAME( buscard ); return ROM_NAME( buscard );
} }
@ -93,7 +81,7 @@ INPUT_PORTS_END
// input_ports - device-specific input ports // input_ports - device-specific input ports
//------------------------------------------------- //-------------------------------------------------
ioport_constructor buscard_t::device_input_ports() const ioport_constructor c64_buscard_device::device_input_ports() const
{ {
return INPUT_PORTS_NAME( buscard ); return INPUT_PORTS_NAME( buscard );
} }
@ -103,7 +91,7 @@ ioport_constructor buscard_t::device_input_ports() const
// PPI interface // PPI interface
//------------------------------------------------- //-------------------------------------------------
READ8_MEMBER( buscard_t::ppi_pa_r ) READ8_MEMBER( c64_buscard_device::ppi_pa_r )
{ {
uint8_t data = 0xff; uint8_t data = 0xff;
@ -120,7 +108,7 @@ READ8_MEMBER( buscard_t::ppi_pa_r )
return data; return data;
} }
WRITE8_MEMBER( buscard_t::ppi_pa_w ) WRITE8_MEMBER( c64_buscard_device::ppi_pa_w )
{ {
m_ieee1->write(space, 0, data); m_ieee1->write(space, 0, data);
@ -134,7 +122,7 @@ WRITE8_MEMBER( buscard_t::ppi_pa_w )
m_centronics->write_data7(BIT(data, 7)); m_centronics->write_data7(BIT(data, 7));
} }
WRITE8_MEMBER( buscard_t::ppi_pb_w ) WRITE8_MEMBER( c64_buscard_device::ppi_pb_w )
{ {
/* /*
@ -159,7 +147,7 @@ WRITE8_MEMBER( buscard_t::ppi_pb_w )
m_dipsw = BIT(data, 7); m_dipsw = BIT(data, 7);
} }
READ8_MEMBER( buscard_t::ppi_pc_r ) READ8_MEMBER( c64_buscard_device::ppi_pc_r )
{ {
/* /*
@ -189,7 +177,7 @@ READ8_MEMBER( buscard_t::ppi_pc_r )
return data; return data;
} }
WRITE8_MEMBER( buscard_t::ppi_pc_w ) WRITE8_MEMBER( c64_buscard_device::ppi_pc_w )
{ {
/* /*
@ -222,7 +210,7 @@ WRITE8_MEMBER( buscard_t::ppi_pc_w )
// Centronics interface // Centronics interface
//------------------------------------------------- //-------------------------------------------------
WRITE_LINE_MEMBER( buscard_t::busy_w ) WRITE_LINE_MEMBER( c64_buscard_device::busy_w )
{ {
m_busy = state; m_busy = state;
} }
@ -232,15 +220,15 @@ WRITE_LINE_MEMBER( buscard_t::busy_w )
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
void buscard_t::device_add_mconfig(machine_config &config) void c64_buscard_device::device_add_mconfig(machine_config &config)
{ {
I8255A(config, m_ppi, 0); I8255A(config, m_ppi, 0);
m_ppi->in_pa_callback().set(FUNC(buscard_t::ppi_pa_r)); m_ppi->in_pa_callback().set(FUNC(c64_buscard_device::ppi_pa_r));
m_ppi->out_pa_callback().set(FUNC(buscard_t::ppi_pa_w)); m_ppi->out_pa_callback().set(FUNC(c64_buscard_device::ppi_pa_w));
m_ppi->in_pb_callback().set_constant(0xff); m_ppi->in_pb_callback().set_constant(0xff);
m_ppi->out_pb_callback().set(FUNC(buscard_t::ppi_pb_w)); m_ppi->out_pb_callback().set(FUNC(c64_buscard_device::ppi_pb_w));
m_ppi->in_pc_callback().set(FUNC(buscard_t::ppi_pc_r)); m_ppi->in_pc_callback().set(FUNC(c64_buscard_device::ppi_pc_r));
m_ppi->out_pc_callback().set(FUNC(buscard_t::ppi_pc_w)); m_ppi->out_pc_callback().set(FUNC(c64_buscard_device::ppi_pc_w));
DS75160A(config, m_ieee1, 0); DS75160A(config, m_ieee1, 0);
m_ieee1->read_callback().set(IEEE488_TAG, FUNC(ieee488_device::dio_r)); m_ieee1->read_callback().set(IEEE488_TAG, FUNC(ieee488_device::dio_r));
@ -268,7 +256,7 @@ void buscard_t::device_add_mconfig(machine_config &config)
ieee488_slot_device::add_cbm_defaults(config, nullptr); ieee488_slot_device::add_cbm_defaults(config, nullptr);
CENTRONICS(config, m_centronics, centronics_devices, nullptr); CENTRONICS(config, m_centronics, centronics_devices, nullptr);
m_centronics->busy_handler().set(FUNC(buscard_t::busy_w)); m_centronics->busy_handler().set(FUNC(c64_buscard_device::busy_w));
C64_EXPANSION_SLOT(config, m_exp, DERIVED_CLOCK(1, 1), c64_expansion_cards, nullptr); C64_EXPANSION_SLOT(config, m_exp, DERIVED_CLOCK(1, 1), c64_expansion_cards, nullptr);
m_exp->set_passthrough(); m_exp->set_passthrough();
@ -281,18 +269,18 @@ void buscard_t::device_add_mconfig(machine_config &config)
//************************************************************************** //**************************************************************************
//------------------------------------------------- //-------------------------------------------------
// buscard_t - constructor // c64_buscard_device - constructor
//------------------------------------------------- //-------------------------------------------------
buscard_t::buscard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : c64_buscard_device::c64_buscard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, C64_BUSCARD, tag, owner, clock), device_t(mconfig, C64_BUSCARD, tag, owner, clock),
device_c64_expansion_card_interface(mconfig, *this), device_c64_expansion_card_interface(mconfig, *this),
m_ppi(*this, I8255_TAG), m_ppi(*this, "u2"),
m_ieee1(*this, DS75160A_TAG), m_ieee1(*this, "u3"),
m_ieee2(*this, DS75161A_TAG), m_ieee2(*this, "u4"),
m_bus(*this, IEEE488_TAG), m_bus(*this, IEEE488_TAG),
m_centronics(*this, CENTRONICS_TAG), m_centronics(*this, "p4"),
m_exp(*this, EXPANSION_TAG), m_exp(*this, "exp"),
m_s1(*this, "S1"), m_s1(*this, "S1"),
m_rom(*this, "rom"), m_rom(*this, "rom"),
m_te(1), m_te(1),
@ -308,7 +296,7 @@ buscard_t::buscard_t(const machine_config &mconfig, const char *tag, device_t *o
// device_start - device-specific startup // device_start - device-specific startup
//------------------------------------------------- //-------------------------------------------------
void buscard_t::device_start() void c64_buscard_device::device_start()
{ {
m_ieee1->pe_w(0); m_ieee1->pe_w(0);
m_ieee2->dc_w(0); m_ieee2->dc_w(0);
@ -326,7 +314,7 @@ void buscard_t::device_start()
// device_reset - device-specific reset // device_reset - device-specific reset
//------------------------------------------------- //-------------------------------------------------
void buscard_t::device_reset() void c64_buscard_device::device_reset()
{ {
m_ppi->reset(); m_ppi->reset();
@ -339,7 +327,7 @@ void buscard_t::device_reset()
// c64_cd_r - cartridge data read // c64_cd_r - cartridge data read
//------------------------------------------------- //-------------------------------------------------
uint8_t buscard_t::c64_cd_r(offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) uint8_t c64_buscard_device::c64_cd_r(offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2)
{ {
int cs = BIT(offset, 6) && BIT(offset, 7); int cs = BIT(offset, 6) && BIT(offset, 7);
@ -376,7 +364,7 @@ uint8_t buscard_t::c64_cd_r(offs_t offset, uint8_t data, int sphi2, int ba, int
// c64_cd_w - cartridge data write // c64_cd_w - cartridge data write
//------------------------------------------------- //-------------------------------------------------
void buscard_t::c64_cd_w(offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) void c64_buscard_device::c64_cd_w(offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2)
{ {
int cs = BIT(offset, 6) && BIT(offset, 7); int cs = BIT(offset, 6) && BIT(offset, 7);
@ -393,7 +381,7 @@ void buscard_t::c64_cd_w(offs_t offset, uint8_t data, int sphi2, int ba, int rom
// c64_game_r - cartridge GAME read // c64_game_r - cartridge GAME read
//------------------------------------------------- //-------------------------------------------------
int buscard_t::c64_game_r(offs_t offset, int sphi2, int ba, int rw) int c64_buscard_device::c64_game_r(offs_t offset, int sphi2, int ba, int rw)
{ {
return pd_pgm1(offset, sphi2) & m_exp->game_r(offset, sphi2, ba, rw, m_slot->loram(), m_slot->hiram()); return pd_pgm1(offset, sphi2) & m_exp->game_r(offset, sphi2, ba, rw, m_slot->loram(), m_slot->hiram());
} }
@ -403,7 +391,7 @@ int buscard_t::c64_game_r(offs_t offset, int sphi2, int ba, int rw)
// c64_exrom_r - cartridge EXROM read // c64_exrom_r - cartridge EXROM read
//------------------------------------------------- //-------------------------------------------------
int buscard_t::c64_exrom_r(offs_t offset, int sphi2, int ba, int rw) int c64_buscard_device::c64_exrom_r(offs_t offset, int sphi2, int ba, int rw)
{ {
return (!pd_pgm1(offset, sphi2)) | m_exp->exrom_r(offset, sphi2, ba, rw, m_slot->loram(), m_slot->hiram()); return (!pd_pgm1(offset, sphi2)) | m_exp->exrom_r(offset, sphi2, ba, rw, m_slot->loram(), m_slot->hiram());
} }
@ -413,7 +401,7 @@ int buscard_t::c64_exrom_r(offs_t offset, int sphi2, int ba, int rw)
// pd_pgm1 - ROM 1 enable // pd_pgm1 - ROM 1 enable
//------------------------------------------------- //-------------------------------------------------
bool buscard_t::pd_pgm1(offs_t offset, int sphi2) bool c64_buscard_device::pd_pgm1(offs_t offset, int sphi2)
{ {
if (sphi2 && m_slot->hiram()) if (sphi2 && m_slot->hiram())
{ {
@ -436,7 +424,7 @@ bool buscard_t::pd_pgm1(offs_t offset, int sphi2)
// pd_pgm234 - ROM 2/3/4 enable // pd_pgm234 - ROM 2/3/4 enable
//------------------------------------------------- //-------------------------------------------------
bool buscard_t::pd_pgm234(offs_t offset, int sphi2, int bank) bool c64_buscard_device::pd_pgm234(offs_t offset, int sphi2, int bank)
{ {
return !(sphi2 && m_slot->hiram() && m_slot->loram() && offset >= 0xa000 && offset < 0xc000 && m_basic && (m_bank == bank)); return !(sphi2 && m_slot->hiram() && m_slot->loram() && offset >= 0xa000 && offset < 0xc000 && m_basic && (m_bank == bank));
} }

View File

@ -27,12 +27,12 @@
// ======================> buscard_t // ======================> buscard_t
class buscard_t : public device_t, class c64_buscard_device : public device_t,
public device_c64_expansion_card_interface public device_c64_expansion_card_interface
{ {
public: public:
// construction/destruction // construction/destruction
buscard_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); c64_buscard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected: protected:
// device-level overrides // device-level overrides
@ -79,7 +79,7 @@ private:
// device type definition // device type definition
DECLARE_DEVICE_TYPE(C64_BUSCARD, buscard_t) DECLARE_DEVICE_TYPE(C64_BUSCARD, c64_buscard_device)
#endif // MAME_BUS_C64_BUSCARD_H #endif // MAME_BUS_C64_BUSCARD_H

View File

@ -15,22 +15,11 @@
//**************************************************************************
// MACROS/CONSTANTS
//**************************************************************************
#define R6532_TAG "riot"
#define MC6821_TAG "pia"
#define CENTRONICS_TAG "centronics"
#define EXPANSION_TAG "exp"
//************************************************************************** //**************************************************************************
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(C64_BUSCARD2, buscard2_t, "c64_buscard2", "C64 BusCard II cartridge") DEFINE_DEVICE_TYPE(C64_BUSCARD2, c64_buscard2_device, "c64_buscard2", "C64 BusCard II cartridge")
//------------------------------------------------- //-------------------------------------------------
@ -52,7 +41,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *buscard2_t::device_rom_region() const const tiny_rom_entry *c64_buscard2_device::device_rom_region() const
{ {
return ROM_NAME( buscard2 ); return ROM_NAME( buscard2 );
} }
@ -94,7 +83,7 @@ INPUT_PORTS_END
// input_ports - device-specific input ports // input_ports - device-specific input ports
//------------------------------------------------- //-------------------------------------------------
ioport_constructor buscard2_t::device_input_ports() const ioport_constructor c64_buscard2_device::device_input_ports() const
{ {
return INPUT_PORTS_NAME( buscard2 ); return INPUT_PORTS_NAME( buscard2 );
} }
@ -104,7 +93,7 @@ ioport_constructor buscard2_t::device_input_ports() const
// Centronics interface // Centronics interface
//------------------------------------------------- //-------------------------------------------------
WRITE_LINE_MEMBER( buscard2_t::busy_w ) WRITE_LINE_MEMBER( c64_buscard2_device::busy_w )
{ {
m_busy = state; m_busy = state;
} }
@ -114,7 +103,7 @@ WRITE_LINE_MEMBER( buscard2_t::busy_w )
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
void buscard2_t::device_add_mconfig(machine_config &config) void c64_buscard2_device::device_add_mconfig(machine_config &config)
{ {
RIOT6532(config, m_riot, 0); RIOT6532(config, m_riot, 0);
@ -124,7 +113,7 @@ void buscard2_t::device_add_mconfig(machine_config &config)
ieee488_slot_device::add_cbm_defaults(config, nullptr); ieee488_slot_device::add_cbm_defaults(config, nullptr);
CENTRONICS(config, m_centronics, centronics_devices, nullptr); CENTRONICS(config, m_centronics, centronics_devices, nullptr);
m_centronics->busy_handler().set(FUNC(buscard2_t::busy_w)); m_centronics->busy_handler().set(FUNC(c64_buscard2_device::busy_w));
C64_EXPANSION_SLOT(config, m_exp, DERIVED_CLOCK(1, 1), c64_expansion_cards, nullptr); C64_EXPANSION_SLOT(config, m_exp, DERIVED_CLOCK(1, 1), c64_expansion_cards, nullptr);
m_exp->set_passthrough(); m_exp->set_passthrough();
@ -137,17 +126,17 @@ void buscard2_t::device_add_mconfig(machine_config &config)
//************************************************************************** //**************************************************************************
//------------------------------------------------- //-------------------------------------------------
// buscard2_t - constructor // c64_buscard2_device - constructor
//------------------------------------------------- //-------------------------------------------------
buscard2_t::buscard2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : c64_buscard2_device::c64_buscard2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, C64_BUSCARD2, tag, owner, clock), device_t(mconfig, C64_BUSCARD2, tag, owner, clock),
device_c64_expansion_card_interface(mconfig, *this), device_c64_expansion_card_interface(mconfig, *this),
m_riot(*this, R6532_TAG), m_riot(*this, "riot"),
m_pia(*this, MC6821_TAG), m_pia(*this, "pia"),
m_bus(*this, IEEE488_TAG), m_bus(*this, IEEE488_TAG),
m_centronics(*this, CENTRONICS_TAG), m_centronics(*this, "centronics"),
m_exp(*this, EXPANSION_TAG), m_exp(*this, "exp"),
m_s1(*this, "S1"), m_s1(*this, "S1"),
m_rom(*this, "rom"), m_rom(*this, "rom"),
m_prom(*this, "prom"), m_prom(*this, "prom"),
@ -160,7 +149,7 @@ buscard2_t::buscard2_t(const machine_config &mconfig, const char *tag, device_t
// device_start - device-specific startup // device_start - device-specific startup
//------------------------------------------------- //-------------------------------------------------
void buscard2_t::device_start() void c64_buscard2_device::device_start()
{ {
// state saving // state saving
save_item(NAME(m_busy)); save_item(NAME(m_busy));
@ -171,7 +160,7 @@ void buscard2_t::device_start()
// device_reset - device-specific reset // device_reset - device-specific reset
//------------------------------------------------- //-------------------------------------------------
void buscard2_t::device_reset() void c64_buscard2_device::device_reset()
{ {
} }
@ -180,7 +169,7 @@ void buscard2_t::device_reset()
// c64_cd_r - cartridge data read // c64_cd_r - cartridge data read
//------------------------------------------------- //-------------------------------------------------
uint8_t buscard2_t::c64_cd_r(offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) uint8_t c64_buscard2_device::c64_cd_r(offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2)
{ {
return m_exp->cd_r(offset, data, sphi2, ba, roml, romh, io1, io2); return m_exp->cd_r(offset, data, sphi2, ba, roml, romh, io1, io2);
} }
@ -190,7 +179,7 @@ uint8_t buscard2_t::c64_cd_r(offs_t offset, uint8_t data, int sphi2, int ba, int
// c64_cd_w - cartridge data write // c64_cd_w - cartridge data write
//------------------------------------------------- //-------------------------------------------------
void buscard2_t::c64_cd_w(offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) void c64_buscard2_device::c64_cd_w(offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2)
{ {
m_exp->cd_w(offset, data, sphi2, ba, roml, romh, io1, io2); m_exp->cd_w(offset, data, sphi2, ba, roml, romh, io1, io2);
} }
@ -200,7 +189,7 @@ void buscard2_t::c64_cd_w(offs_t offset, uint8_t data, int sphi2, int ba, int ro
// c64_game_r - cartridge GAME read // c64_game_r - cartridge GAME read
//------------------------------------------------- //-------------------------------------------------
int buscard2_t::c64_game_r(offs_t offset, int sphi2, int ba, int rw) int c64_buscard2_device::c64_game_r(offs_t offset, int sphi2, int ba, int rw)
{ {
return m_exp->game_r(offset, sphi2, ba, rw, m_slot->loram(), m_slot->hiram()); return m_exp->game_r(offset, sphi2, ba, rw, m_slot->loram(), m_slot->hiram());
} }
@ -210,7 +199,7 @@ int buscard2_t::c64_game_r(offs_t offset, int sphi2, int ba, int rw)
// c64_exrom_r - cartridge EXROM read // c64_exrom_r - cartridge EXROM read
//------------------------------------------------- //-------------------------------------------------
int buscard2_t::c64_exrom_r(offs_t offset, int sphi2, int ba, int rw) int c64_buscard2_device::c64_exrom_r(offs_t offset, int sphi2, int ba, int rw)
{ {
return m_exp->exrom_r(offset, sphi2, ba, rw, m_slot->loram(), m_slot->hiram()); return m_exp->exrom_r(offset, sphi2, ba, rw, m_slot->loram(), m_slot->hiram());
} }

View File

@ -24,14 +24,14 @@
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************
// ======================> buscard2_t // ======================> c64_buscard2_device
class buscard2_t : public device_t, class c64_buscard2_device : public device_t,
public device_c64_expansion_card_interface public device_c64_expansion_card_interface
{ {
public: public:
// construction/destruction // construction/destruction
buscard2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); c64_buscard2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected: protected:
// device-level overrides // device-level overrides
@ -66,7 +66,7 @@ private:
// device type definition // device type definition
DECLARE_DEVICE_TYPE(C64_BUSCARD2, buscard2_t) DECLARE_DEVICE_TYPE(C64_BUSCARD2, c64_buscard2_device)
#endif // MAME_BUS_C64_BUSCARD_H #endif // MAME_BUS_C64_BUSCARD_H

View File

@ -76,7 +76,7 @@ Notes:
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(C64_CURRAH_SPEECH, c64_currah_speech_cartridge_device, "c64_cs", "C64 Currah Speech") DEFINE_DEVICE_TYPE(C64_CURRAH_SPEECH, c64_currah_speech_cartridge_device, "c64_cspeech", "C64 Currah Speech")
//------------------------------------------------- //-------------------------------------------------

View File

@ -15,7 +15,7 @@
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(C64_DELA_EP256, c64_dela_ep256_cartridge_device, "delep256", "C64 Dela 256KB EPROM cartridge") DEFINE_DEVICE_TYPE(C64_DELA_EP256, c64_dela_ep256_cartridge_device, "c64_dela_ep256", "C64 Dela 256KB EPROM cartridge")
//------------------------------------------------- //-------------------------------------------------

View File

@ -23,8 +23,7 @@
// ======================> c64_geocable_device // ======================> c64_geocable_device
class c64_geocable_device : public device_t, class c64_geocable_device : public device_t, public device_pet_user_port_interface
public device_pet_user_port_interface
{ {
public: public:
// construction/destruction // construction/destruction

View File

@ -23,7 +23,7 @@
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(C64_IEEE488, c64_ieee488_device, "c64_ieee488_device", "C64 IEEE-488 cartridge") DEFINE_DEVICE_TYPE(C64_IEEE488, c64_ieee488_device, "c64_ieee488", "C64 IEEE-488 cartridge")
//------------------------------------------------- //-------------------------------------------------

View File

@ -22,8 +22,7 @@
// ======================> c64_maplin_midi_cartridge_device // ======================> c64_maplin_midi_cartridge_device
class c64_maplin_midi_cartridge_device : public device_t, class c64_maplin_midi_cartridge_device : public device_t, public device_c64_expansion_card_interface
public device_c64_expansion_card_interface
{ {
public: public:
// construction/destruction // construction/destruction

View File

@ -22,8 +22,7 @@
// ======================> c64_namesoft_midi_cartridge_device // ======================> c64_namesoft_midi_cartridge_device
class c64_namesoft_midi_cartridge_device : public device_t, class c64_namesoft_midi_cartridge_device : public device_t, public device_c64_expansion_card_interface
public device_c64_expansion_card_interface
{ {
public: public:
// construction/destruction // construction/destruction

View File

@ -23,8 +23,7 @@
// ======================> c64_passport_midi_cartridge_device // ======================> c64_passport_midi_cartridge_device
class c64_passport_midi_cartridge_device : public device_t, class c64_passport_midi_cartridge_device : public device_t, public device_c64_expansion_card_interface
public device_c64_expansion_card_interface
{ {
public: public:
// construction/destruction // construction/destruction

View File

@ -22,8 +22,7 @@
// ======================> c64_sequential_midi_cartridge_device // ======================> c64_sequential_midi_cartridge_device
class c64_sequential_midi_cartridge_device : public device_t, class c64_sequential_midi_cartridge_device : public device_t, public device_c64_expansion_card_interface
public device_c64_expansion_card_interface
{ {
public: public:
// construction/destruction // construction/destruction

View File

@ -22,8 +22,7 @@
// ======================> c64_siel_midi_cartridge_device // ======================> c64_siel_midi_cartridge_device
class c64_siel_midi_cartridge_device : public device_t, class c64_siel_midi_cartridge_device : public device_t, public device_c64_expansion_card_interface
public device_c64_expansion_card_interface
{ {
public: public:
// construction/destruction // construction/destruction

View File

@ -22,9 +22,9 @@
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(C64_REU1700, c64_reu1700_cartridge_device, "c64_1700reu", "1700 REU") DEFINE_DEVICE_TYPE(C64_REU1700, c64_reu1700_cartridge_device, "c64_1700reu", "1700 RAM Expansion Unit")
DEFINE_DEVICE_TYPE(C64_REU1750, c64_reu1750_cartridge_device, "c64_1750reu", "1750 REU") DEFINE_DEVICE_TYPE(C64_REU1750, c64_reu1750_cartridge_device, "c64_1750reu", "1750 RAM Expansion Unit")
DEFINE_DEVICE_TYPE(C64_REU1764, c64_reu1764_cartridge_device, "c64_1764reu", "1764 REU") DEFINE_DEVICE_TYPE(C64_REU1764, c64_reu1764_cartridge_device, "c64_1764reu", "1764 RAM Expansion Unit")
//------------------------------------------------- //-------------------------------------------------

View File

@ -15,7 +15,7 @@
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(C64_REX_EP256, c64_rex_ep256_cartridge_device, "rexexp256", "C64 Rex 256KB EPROM cartridge") DEFINE_DEVICE_TYPE(C64_REX_EP256, c64_rex_ep256_cartridge_device, "c64_rex_ep256", "C64 Rex 256KB EPROM cartridge")
//------------------------------------------------- //-------------------------------------------------
@ -24,14 +24,8 @@ DEFINE_DEVICE_TYPE(C64_REX_EP256, c64_rex_ep256_cartridge_device, "rexexp256", "
void c64_rex_ep256_cartridge_device::device_add_mconfig(machine_config &config) void c64_rex_ep256_cartridge_device::device_add_mconfig(machine_config &config)
{ {
GENERIC_SOCKET(config, "rom1", generic_linear_slot, nullptr, "bin,rom"); for (auto &eprom : m_eproms)
GENERIC_SOCKET(config, "rom2", generic_linear_slot, nullptr, "bin,rom"); GENERIC_SOCKET(config, eprom, generic_linear_slot, nullptr, "bin,rom");
GENERIC_SOCKET(config, "rom3", generic_linear_slot, nullptr, "bin,rom");
GENERIC_SOCKET(config, "rom4", generic_linear_slot, nullptr, "bin,rom");
GENERIC_SOCKET(config, "rom5", generic_linear_slot, nullptr, "bin,rom");
GENERIC_SOCKET(config, "rom6", generic_linear_slot, nullptr, "bin,rom");
GENERIC_SOCKET(config, "rom7", generic_linear_slot, nullptr, "bin,rom");
GENERIC_SOCKET(config, "rom8", generic_linear_slot, nullptr, "bin,rom");
} }
@ -46,14 +40,9 @@ void c64_rex_ep256_cartridge_device::device_add_mconfig(machine_config &config)
c64_rex_ep256_cartridge_device::c64_rex_ep256_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : c64_rex_ep256_cartridge_device::c64_rex_ep256_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, C64_REX_EP256, tag, owner, clock), device_t(mconfig, C64_REX_EP256, tag, owner, clock),
device_c64_expansion_card_interface(mconfig, *this) device_c64_expansion_card_interface(mconfig, *this),
m_eproms(*this, "rom%u", 1U)
{ {
for (int i = 0; i < 8; i++)
{
char str[6];
sprintf(str, "rom%i", i + 1);
m_eproms[i] = subdevice<generic_slot_device>(str);
}
} }

View File

@ -12,9 +12,9 @@
#pragma once #pragma once
#include "exp.h"
#include "bus/generic/slot.h" #include "bus/generic/slot.h"
#include "bus/generic/carts.h" #include "bus/generic/carts.h"
#include "exp.h"
@ -44,7 +44,7 @@ protected:
virtual void c64_cd_w(offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) override; virtual void c64_cd_w(offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) override;
private: private:
generic_slot_device *m_eproms[8]; required_device_array<generic_slot_device, 8> m_eproms;
uint8_t m_bank, m_socket; uint8_t m_bank, m_socket;
int m_reset; int m_reset;

View File

@ -14,12 +14,12 @@
//------------------------------------------------- //-------------------------------------------------
// slot devices // slot devices
#include "bus/vic20/4cga.h"
#include "4dxh.h" #include "4dxh.h"
#include "4ksa.h" #include "4ksa.h"
#include "4tba.h" #include "4tba.h"
#include "bn1541.h" #include "bn1541.h"
#include "geocable.h" #include "geocable.h"
#include "bus/vic20/4cga.h"
#include "bus/vic20/vic1011.h" #include "bus/vic20/vic1011.h"
void c64_user_port_cards(device_slot_interface &device) void c64_user_port_cards(device_slot_interface &device)

View File

@ -161,25 +161,25 @@
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(C1540, c1540_t, "c1540", "Commodore 1540 Disk Drive") DEFINE_DEVICE_TYPE(C1540, c1540_device, "c1540", "Commodore 1540 Disk Drive")
DEFINE_DEVICE_TYPE(C1541, c1541_t, "c1541", "Commodore 1541 Disk Drive") DEFINE_DEVICE_TYPE(C1541, c1541_device, "c1541", "Commodore 1541 Disk Drive")
DEFINE_DEVICE_TYPE(C1541C, c1541c_t, "c1541c", "Commodore 1541C Disk Drive") DEFINE_DEVICE_TYPE(C1541C, c1541c_device, "c1541c", "Commodore 1541C Disk Drive")
DEFINE_DEVICE_TYPE(C1541II, c1541ii_t, "c1541ii", "Commodore 1541-II Disk Drive") DEFINE_DEVICE_TYPE(C1541II, c1541ii_device, "c1541ii", "Commodore 1541-II Disk Drive")
DEFINE_DEVICE_TYPE(SX1541, sx1541_t, "sx1541", "SX1541 Disk Drive") DEFINE_DEVICE_TYPE(SX1541, sx1541_device, "sx1541", "SX1541 Disk Drive")
DEFINE_DEVICE_TYPE(FSD1, fsd1_t, "fsd1", "FSD-1 Disk Drive") DEFINE_DEVICE_TYPE(FSD1, fsd1_device, "fsd1", "FSD-1 Disk Drive")
DEFINE_DEVICE_TYPE(FSD2, fsd2_t, "fsd2", "FSD-2 Disk Drive") DEFINE_DEVICE_TYPE(FSD2, fsd2_device, "fsd2", "FSD-2 Disk Drive")
DEFINE_DEVICE_TYPE(CSD1, csd1_t, "csd1", "CSD-1 Disk Drive") DEFINE_DEVICE_TYPE(CSD1, csd1_device, "csd1", "CSD-1 Disk Drive")
DEFINE_DEVICE_TYPE(C1541_DOLPHIN_DOS, c1541_dolphin_dos_t, "c1541dd", "Commodore 1541 Dolphin-DOS 2.0 Disk Drive") DEFINE_DEVICE_TYPE(C1541_DOLPHIN_DOS, c1541_dolphin_dos_device, "c1541dd", "Commodore 1541 Dolphin-DOS 2.0 Disk Drive")
DEFINE_DEVICE_TYPE(C1541_PROFESSIONAL_DOS_V1, c1541_professional_dos_v1_t, "c1541pd", "Commodore 1541 Professional-DOS v1 Disk Drive") DEFINE_DEVICE_TYPE(C1541_PROFESSIONAL_DOS_V1, c1541_professional_dos_v1_device, "c1541pd", "Commodore 1541 Professional-DOS v1 Disk Drive")
DEFINE_DEVICE_TYPE(C1541_PROLOGIC_DOS_CLASSIC, c1541_prologic_dos_classic_t, "c1541pdc", "Commodore 1541 ProLogic-DOS Classic Disk Drive") DEFINE_DEVICE_TYPE(C1541_PROLOGIC_DOS_CLASSIC, c1541_prologic_dos_classic_device, "c1541pdc", "Commodore 1541 ProLogic-DOS Classic Disk Drive")
DEFINE_DEVICE_TYPE(INDUS_GT, indus_gt_t, "indusgt", "Indus GT Disk Drive") DEFINE_DEVICE_TYPE(INDUS_GT, indus_gt_device, "indusgt", "Indus GT Disk Drive")
DEFINE_DEVICE_TYPE(TECHNICA, technica_t, "technica", "Westfalia Technica Disk Drive") DEFINE_DEVICE_TYPE(TECHNICA, technica_device, "technica", "Westfalia Technica Disk Drive")
DEFINE_DEVICE_TYPE(BLUE_CHIP, blue_chip_t, "bluechip", "Amtech Blue Chip Disk Drive") DEFINE_DEVICE_TYPE(BLUE_CHIP, blue_chip_device, "bluechip", "Amtech Blue Chip Disk Drive")
DEFINE_DEVICE_TYPE(COMMANDER_C2, commander_c2_t, "cmdrc2", "Commander C-II Disk Drive") DEFINE_DEVICE_TYPE(COMMANDER_C2, commander_c2_device, "cmdrc2", "Commander C-II Disk Drive")
DEFINE_DEVICE_TYPE(ENHANCER_2000, enhancer_2000_t, "enh2000", "Enhancer 2000 Disk Drive") DEFINE_DEVICE_TYPE(ENHANCER_2000, enhancer_2000_device, "enh2000", "Enhancer 2000 Disk Drive")
DEFINE_DEVICE_TYPE(FD148, fd148_t, "fd148", "Rapid Access FD-148 Disk Drive") DEFINE_DEVICE_TYPE(FD148, fd148_device, "fd148", "Rapid Access FD-148 Disk Drive")
DEFINE_DEVICE_TYPE(MSD_SD1, msd_sd1_t, "msdsd1", "MSD SD-1 Disk Drive") DEFINE_DEVICE_TYPE(MSD_SD1, msd_sd1_device, "msdsd1", "MSD SD-1 Disk Drive")
DEFINE_DEVICE_TYPE(MSD_SD2, msd_sd2_t, "msdsd2", "MSD SD-2 Disk Drive") DEFINE_DEVICE_TYPE(MSD_SD2, msd_sd2_device, "msdsd2", "MSD SD-2 Disk Drive")
//------------------------------------------------- //-------------------------------------------------
@ -197,7 +197,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *c1540_t::device_rom_region() const const tiny_rom_entry *c1540_device::device_rom_region() const
{ {
return ROM_NAME( c1540 ); return ROM_NAME( c1540 );
} }
@ -241,7 +241,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *c1541_t::device_rom_region() const const tiny_rom_entry *c1541_device::device_rom_region() const
{ {
return ROM_NAME( c1541 ); return ROM_NAME( c1541 );
} }
@ -265,7 +265,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *c1541c_t::device_rom_region() const const tiny_rom_entry *c1541c_device::device_rom_region() const
{ {
return ROM_NAME( c1541c ); return ROM_NAME( c1541c );
} }
@ -291,7 +291,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *c1541ii_t::device_rom_region() const const tiny_rom_entry *c1541ii_device::device_rom_region() const
{ {
return ROM_NAME( c1541ii ); return ROM_NAME( c1541ii );
} }
@ -319,7 +319,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *sx1541_t::device_rom_region() const const tiny_rom_entry *sx1541_device::device_rom_region() const
{ {
return ROM_NAME( sx1541 ); return ROM_NAME( sx1541 );
} }
@ -339,7 +339,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *fsd1_t::device_rom_region() const const tiny_rom_entry *fsd1_device::device_rom_region() const
{ {
return ROM_NAME( fsd1 ); return ROM_NAME( fsd1 );
} }
@ -367,7 +367,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *fsd2_t::device_rom_region() const const tiny_rom_entry *fsd2_device::device_rom_region() const
{ {
return ROM_NAME( fsd2 ); return ROM_NAME( fsd2 );
} }
@ -388,7 +388,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *csd1_t::device_rom_region() const const tiny_rom_entry *csd1_device::device_rom_region() const
{ {
return ROM_NAME( csd1 ); return ROM_NAME( csd1 );
} }
@ -408,7 +408,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *c1541_dolphin_dos_t::device_rom_region() const const tiny_rom_entry *c1541_dolphin_dos_device::device_rom_region() const
{ {
return ROM_NAME( c1541dd ); return ROM_NAME( c1541dd );
} }
@ -429,7 +429,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *c1541_professional_dos_v1_t::device_rom_region() const const tiny_rom_entry *c1541_professional_dos_v1_device::device_rom_region() const
{ {
return ROM_NAME( c1541pd ); return ROM_NAME( c1541pd );
} }
@ -454,7 +454,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *c1541_prologic_dos_classic_t::device_rom_region() const const tiny_rom_entry *c1541_prologic_dos_classic_device::device_rom_region() const
{ {
return ROM_NAME( c1541pdc ); return ROM_NAME( c1541pdc );
} }
@ -478,7 +478,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *indus_gt_t::device_rom_region() const const tiny_rom_entry *indus_gt_device::device_rom_region() const
{ {
return ROM_NAME( indusgt ); return ROM_NAME( indusgt );
} }
@ -498,7 +498,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *technica_t::device_rom_region() const const tiny_rom_entry *technica_device::device_rom_region() const
{ {
return ROM_NAME( technica ); return ROM_NAME( technica );
} }
@ -521,7 +521,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *blue_chip_t::device_rom_region() const const tiny_rom_entry *blue_chip_device::device_rom_region() const
{ {
return ROM_NAME( bluechip ); return ROM_NAME( bluechip );
} }
@ -542,7 +542,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *commander_c2_t::device_rom_region() const const tiny_rom_entry *commander_c2_device::device_rom_region() const
{ {
return ROM_NAME( cmdrc2 ); return ROM_NAME( cmdrc2 );
} }
@ -562,7 +562,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *enhancer_2000_t::device_rom_region() const const tiny_rom_entry *enhancer_2000_device::device_rom_region() const
{ {
return ROM_NAME( enh2000 ); return ROM_NAME( enh2000 );
} }
@ -582,7 +582,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *fd148_t::device_rom_region() const const tiny_rom_entry *fd148_device::device_rom_region() const
{ {
return ROM_NAME( fd148 ); return ROM_NAME( fd148 );
} }
@ -603,7 +603,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *msd_sd1_t::device_rom_region() const const tiny_rom_entry *msd_sd1_device::device_rom_region() const
{ {
return ROM_NAME( msdsd1 ); return ROM_NAME( msdsd1 );
} }
@ -624,7 +624,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *msd_sd2_t::device_rom_region() const const tiny_rom_entry *msd_sd2_device::device_rom_region() const
{ {
return ROM_NAME( msdsd2 ); return ROM_NAME( msdsd2 );
} }
@ -634,7 +634,7 @@ const tiny_rom_entry *msd_sd2_t::device_rom_region() const
// read - // read -
//------------------------------------------------- //-------------------------------------------------
READ8_MEMBER( c1541_prologic_dos_classic_t::read ) READ8_MEMBER( c1541_prologic_dos_classic_device::read )
{ {
return 0; return 0;
} }
@ -644,7 +644,7 @@ READ8_MEMBER( c1541_prologic_dos_classic_t::read )
// write - // write -
//------------------------------------------------- //-------------------------------------------------
WRITE8_MEMBER( c1541_prologic_dos_classic_t::write ) WRITE8_MEMBER( c1541_prologic_dos_classic_device::write )
{ {
} }
@ -653,7 +653,7 @@ WRITE8_MEMBER( c1541_prologic_dos_classic_t::write )
// ADDRESS_MAP( c1541_mem ) // ADDRESS_MAP( c1541_mem )
//------------------------------------------------- //-------------------------------------------------
void c1541_base_t::c1541_mem(address_map &map) void c1541_device_base::c1541_mem(address_map &map)
{ {
map(0x0000, 0x07ff).mirror(0x6000).ram(); map(0x0000, 0x07ff).mirror(0x6000).ram();
map(0x1800, 0x180f).mirror(0x63f0).m(M6522_0_TAG, FUNC(via6522_device::map)); map(0x1800, 0x180f).mirror(0x63f0).m(M6522_0_TAG, FUNC(via6522_device::map));
@ -666,7 +666,7 @@ void c1541_base_t::c1541_mem(address_map &map)
// ADDRESS_MAP( c1541dd_mem ) // ADDRESS_MAP( c1541dd_mem )
//------------------------------------------------- //-------------------------------------------------
void c1541_base_t::c1541dd_mem(address_map &map) void c1541_device_base::c1541dd_mem(address_map &map)
{ {
map(0x0000, 0x07ff).mirror(0x6000).ram(); map(0x0000, 0x07ff).mirror(0x6000).ram();
map(0x1800, 0x180f).mirror(0x63f0).m(M6522_0_TAG, FUNC(via6522_device::map)); map(0x1800, 0x180f).mirror(0x63f0).m(M6522_0_TAG, FUNC(via6522_device::map));
@ -680,7 +680,7 @@ void c1541_base_t::c1541dd_mem(address_map &map)
// ADDRESS_MAP( c1541pd_mem ) // ADDRESS_MAP( c1541pd_mem )
//------------------------------------------------- //-------------------------------------------------
void c1541_base_t::c1541pd_mem(address_map &map) void c1541_device_base::c1541pd_mem(address_map &map)
{ {
map(0x0000, 0x07ff).mirror(0x6000).ram(); map(0x0000, 0x07ff).mirror(0x6000).ram();
map(0x1800, 0x180f).mirror(0x63f0).m(M6522_0_TAG, FUNC(via6522_device::map)); map(0x1800, 0x180f).mirror(0x63f0).m(M6522_0_TAG, FUNC(via6522_device::map));
@ -695,34 +695,34 @@ void c1541_base_t::c1541pd_mem(address_map &map)
// ADDRESS_MAP( c1541pdc_mem ) // ADDRESS_MAP( c1541pdc_mem )
//------------------------------------------------- //-------------------------------------------------
void c1541_prologic_dos_classic_t::c1541pdc_mem(address_map &map) void c1541_prologic_dos_classic_device::c1541pdc_mem(address_map &map)
{ {
map(0x0000, 0xffff).rw(FUNC(c1541_prologic_dos_classic_t::read), FUNC(c1541_prologic_dos_classic_t::write)); map(0x0000, 0xffff).rw(FUNC(c1541_prologic_dos_classic_device::read), FUNC(c1541_prologic_dos_classic_device::write));
/* map(0x0000, 0x07ff).mirror(0x6000).ram().share("share1"); /* map(0x0000, 0x07ff).mirror(0x6000).ram().share("share1");
map(0x1800, 0x180f).mirror(0x63f0).rw(M6522_0_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write)); map(0x1800, 0x180f).mirror(0x63f0).rw(M6522_0_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write));
map(0x1c00, 0x1c0f).mirror(0x63f0).rw(M6522_1_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write)); map(0x1c00, 0x1c0f).mirror(0x63f0).rw(M6522_1_TAG, FUNC(via6522_device::read), FUNC(via6522_device::write));
map(0x8000, 0x87ff).ram().share("share1"); map(0x8000, 0x87ff).ram().share("share1");
map(0x8800, 0x9fff).ram(); map(0x8800, 0x9fff).ram();
map(0xa000, 0xb7ff).rom().region(M6502_TAG, 0x0000); map(0xa000, 0xb7ff).rom().region(M6502_TAG, 0x0000);
map(0xb800, 0xb80f).rw(FUNC(c1541_prologic_dos_classic_t::pia_r), FUNC(c1541_prologic_dos_classic_t::pia_w)); map(0xb800, 0xb80f).rw(FUNC(c1541_prologic_dos_classic_device::pia_r), FUNC(c1541_prologic_dos_classic_device::pia_w));
map(0xf000, 0xffff).rom().region(M6502_TAG, 0x2000);*/ map(0xf000, 0xffff).rom().region(M6502_TAG, 0x2000);*/
} }
WRITE_LINE_MEMBER( c1541_base_t::via0_irq_w ) WRITE_LINE_MEMBER( c1541_device_base::via0_irq_w )
{ {
m_via0_irq = state; m_via0_irq = state;
m_maincpu->set_input_line(INPUT_LINE_IRQ0, (m_via0_irq || m_via1_irq) ? ASSERT_LINE : CLEAR_LINE); m_maincpu->set_input_line(INPUT_LINE_IRQ0, (m_via0_irq || m_via1_irq) ? ASSERT_LINE : CLEAR_LINE);
} }
READ8_MEMBER( c1541_base_t::via0_pa_r ) READ8_MEMBER( c1541_device_base::via0_pa_r )
{ {
// dummy read to acknowledge ATN IN interrupt // dummy read to acknowledge ATN IN interrupt
return m_parallel_data; return m_parallel_data;
} }
WRITE8_MEMBER( c1541_base_t::via0_pa_w ) WRITE8_MEMBER( c1541_device_base::via0_pa_w )
{ {
if (m_other != nullptr) if (m_other != nullptr)
{ {
@ -730,7 +730,7 @@ WRITE8_MEMBER( c1541_base_t::via0_pa_w )
} }
} }
READ8_MEMBER( c1541_base_t::via0_pb_r ) READ8_MEMBER( c1541_device_base::via0_pb_r )
{ {
/* /*
@ -747,7 +747,7 @@ READ8_MEMBER( c1541_base_t::via0_pb_r )
*/ */
uint8_t data; u8 data;
// data in // data in
data = !m_bus->data_r() && !m_ga->atn_r(); data = !m_bus->data_r() && !m_ga->atn_r();
@ -764,7 +764,7 @@ READ8_MEMBER( c1541_base_t::via0_pb_r )
return data; return data;
} }
WRITE8_MEMBER( c1541_base_t::via0_pb_w ) WRITE8_MEMBER( c1541_device_base::via0_pb_w )
{ {
/* /*
@ -791,7 +791,7 @@ WRITE8_MEMBER( c1541_base_t::via0_pb_w )
m_bus->clk_w(this, !BIT(data, 3)); m_bus->clk_w(this, !BIT(data, 3));
} }
WRITE_LINE_MEMBER( c1541_base_t::via0_ca2_w ) WRITE_LINE_MEMBER( c1541_device_base::via0_ca2_w )
{ {
if (m_other != nullptr) if (m_other != nullptr)
{ {
@ -799,7 +799,7 @@ WRITE_LINE_MEMBER( c1541_base_t::via0_ca2_w )
} }
} }
READ8_MEMBER( c1541c_t::via0_pa_r ) READ8_MEMBER( c1541c_device::via0_pa_r )
{ {
/* /*
@ -820,14 +820,14 @@ READ8_MEMBER( c1541c_t::via0_pa_r )
} }
WRITE_LINE_MEMBER( c1541_base_t::via1_irq_w ) WRITE_LINE_MEMBER( c1541_device_base::via1_irq_w )
{ {
m_via1_irq = state; m_via1_irq = state;
m_maincpu->set_input_line(INPUT_LINE_IRQ0, (m_via0_irq || m_via1_irq) ? ASSERT_LINE : CLEAR_LINE); m_maincpu->set_input_line(INPUT_LINE_IRQ0, (m_via0_irq || m_via1_irq) ? ASSERT_LINE : CLEAR_LINE);
} }
READ8_MEMBER( c1541_base_t::via1_pb_r ) READ8_MEMBER( c1541_device_base::via1_pb_r )
{ {
/* /*
@ -844,7 +844,7 @@ READ8_MEMBER( c1541_base_t::via1_pb_r )
*/ */
uint8_t data = 0; u8 data = 0;
// write protect sense // write protect sense
data |= !m_floppy->wpt_r() << 4; data |= !m_floppy->wpt_r() << 4;
@ -855,7 +855,7 @@ READ8_MEMBER( c1541_base_t::via1_pb_r )
return data; return data;
} }
WRITE8_MEMBER( c1541_base_t::via1_pb_w ) WRITE8_MEMBER( c1541_device_base::via1_pb_w )
{ {
/* /*
@ -890,12 +890,12 @@ WRITE8_MEMBER( c1541_base_t::via1_pb_w )
// C64H156_INTERFACE( ga_intf ) // C64H156_INTERFACE( ga_intf )
//------------------------------------------------- //-------------------------------------------------
WRITE_LINE_MEMBER( c1541_base_t::atn_w ) WRITE_LINE_MEMBER( c1541_device_base::atn_w )
{ {
set_iec_data(); set_iec_data();
} }
WRITE_LINE_MEMBER( c1541_base_t::byte_w ) WRITE_LINE_MEMBER( c1541_device_base::byte_w )
{ {
m_maincpu->set_input_line(M6502_SET_OVERFLOW, state); m_maincpu->set_input_line(M6502_SET_OVERFLOW, state);
@ -907,23 +907,23 @@ WRITE_LINE_MEMBER( c1541_base_t::byte_w )
// FLOPPY_FORMATS( floppy_formats ) // FLOPPY_FORMATS( floppy_formats )
//------------------------------------------------- //-------------------------------------------------
FLOPPY_FORMATS_MEMBER( c1541_base_t::floppy_formats ) FLOPPY_FORMATS_MEMBER( c1541_device_base::floppy_formats )
FLOPPY_D64_FORMAT, FLOPPY_D64_FORMAT,
FLOPPY_G64_FORMAT FLOPPY_G64_FORMAT
FLOPPY_FORMATS_END FLOPPY_FORMATS_END
READ8_MEMBER( c1541_prologic_dos_classic_t::pia_r ) READ8_MEMBER( c1541_prologic_dos_classic_device::pia_r )
{ {
return m_pia->read((offset >> 2) & 0x03); return m_pia->read((offset >> 2) & 0x03);
} }
WRITE8_MEMBER( c1541_prologic_dos_classic_t::pia_w ) WRITE8_MEMBER( c1541_prologic_dos_classic_device::pia_w )
{ {
m_pia->write((offset >> 2) & 0x03, data); m_pia->write((offset >> 2) & 0x03, data);
} }
WRITE8_MEMBER( c1541_prologic_dos_classic_t::pia_pa_w ) WRITE8_MEMBER( c1541_prologic_dos_classic_device::pia_pa_w )
{ {
/* /*
@ -941,12 +941,12 @@ WRITE8_MEMBER( c1541_prologic_dos_classic_t::pia_pa_w )
*/ */
} }
READ8_MEMBER( c1541_prologic_dos_classic_t::pia_pb_r ) READ8_MEMBER( c1541_prologic_dos_classic_device::pia_pb_r )
{ {
return m_parallel_data; return m_parallel_data;
} }
WRITE8_MEMBER( c1541_prologic_dos_classic_t::pia_pb_w ) WRITE8_MEMBER( c1541_prologic_dos_classic_device::pia_pb_w )
{ {
m_parallel_data = data; m_parallel_data = data;
@ -958,71 +958,71 @@ WRITE8_MEMBER( c1541_prologic_dos_classic_t::pia_pb_w )
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
void c1541_base_t::device_add_mconfig(machine_config &config) void c1541_device_base::device_add_mconfig(machine_config &config)
{ {
M6502(config, m_maincpu, XTAL(16'000'000)/16); M6502(config, m_maincpu, XTAL(16'000'000)/16);
m_maincpu->set_addrmap(AS_PROGRAM, &c1541_base_t::c1541_mem); m_maincpu->set_addrmap(AS_PROGRAM, &c1541_device_base::c1541_mem);
//config.set_perfect_quantum(m_maincpu); FIXME: not safe in a slot device - add barriers //config.set_perfect_quantum(m_maincpu); FIXME: not safe in a slot device - add barriers
VIA6522(config, m_via0, XTAL(16'000'000)/16); VIA6522(config, m_via0, XTAL(16'000'000)/16);
m_via0->readpa_handler().set(FUNC(c1541_base_t::via0_pa_r)); m_via0->readpa_handler().set(FUNC(c1541_device_base::via0_pa_r));
m_via0->readpb_handler().set(FUNC(c1541_base_t::via0_pb_r)); m_via0->readpb_handler().set(FUNC(c1541_device_base::via0_pb_r));
m_via0->writepa_handler().set(FUNC(c1541_base_t::via0_pa_w)); m_via0->writepa_handler().set(FUNC(c1541_device_base::via0_pa_w));
m_via0->writepb_handler().set(FUNC(c1541_base_t::via0_pb_w)); m_via0->writepb_handler().set(FUNC(c1541_device_base::via0_pb_w));
m_via0->cb2_handler().set(FUNC(c1541_base_t::via0_ca2_w)); m_via0->cb2_handler().set(FUNC(c1541_device_base::via0_ca2_w));
m_via0->irq_handler().set(FUNC(c1541_base_t::via0_irq_w)); m_via0->irq_handler().set(FUNC(c1541_device_base::via0_irq_w));
VIA6522(config, m_via1, XTAL(16'000'000)/16); VIA6522(config, m_via1, XTAL(16'000'000)/16);
m_via1->readpa_handler().set(C64H156_TAG, FUNC(c64h156_device::yb_r)); m_via1->readpa_handler().set(C64H156_TAG, FUNC(c64h156_device::yb_r));
m_via1->readpb_handler().set(FUNC(c1541_base_t::via1_pb_r)); m_via1->readpb_handler().set(FUNC(c1541_device_base::via1_pb_r));
m_via1->writepa_handler().set(C64H156_TAG, FUNC(c64h156_device::yb_w)); m_via1->writepa_handler().set(C64H156_TAG, FUNC(c64h156_device::yb_w));
m_via1->writepb_handler().set(FUNC(c1541_base_t::via1_pb_w)); m_via1->writepb_handler().set(FUNC(c1541_device_base::via1_pb_w));
m_via1->ca2_handler().set(C64H156_TAG, FUNC(c64h156_device::soe_w)); m_via1->ca2_handler().set(C64H156_TAG, FUNC(c64h156_device::soe_w));
m_via1->cb2_handler().set(C64H156_TAG, FUNC(c64h156_device::oe_w)); m_via1->cb2_handler().set(C64H156_TAG, FUNC(c64h156_device::oe_w));
m_via1->irq_handler().set(FUNC(c1541_base_t::via1_irq_w)); m_via1->irq_handler().set(FUNC(c1541_device_base::via1_irq_w));
C64H156(config, m_ga, XTAL(16'000'000)); C64H156(config, m_ga, XTAL(16'000'000));
m_ga->atn_callback().set(FUNC(c1541_base_t::atn_w)); m_ga->atn_callback().set(FUNC(c1541_device_base::atn_w));
m_ga->byte_callback().set(FUNC(c1541_base_t::byte_w)); m_ga->byte_callback().set(FUNC(c1541_device_base::byte_w));
floppy_connector &connector(FLOPPY_CONNECTOR(config, C64H156_TAG":0", 0)); floppy_connector &connector(FLOPPY_CONNECTOR(config, C64H156_TAG":0", 0));
connector.option_add("525ssqd", ALPS_3255190X); connector.option_add("525ssqd", ALPS_3255190X);
connector.set_default_option("525ssqd"); connector.set_default_option("525ssqd");
connector.set_fixed(true); connector.set_fixed(true);
connector.set_formats(c1541_base_t::floppy_formats); connector.set_formats(c1541_device_base::floppy_formats);
} }
void c1541c_t::device_add_mconfig(machine_config &config) void c1541c_device::device_add_mconfig(machine_config &config)
{ {
c1541_base_t::device_add_mconfig(config); c1541_device_base::device_add_mconfig(config);
} }
void c1541_dolphin_dos_t::device_add_mconfig(machine_config &config) void c1541_dolphin_dos_device::device_add_mconfig(machine_config &config)
{ {
c1541_base_t::device_add_mconfig(config); c1541_device_base::device_add_mconfig(config);
m_maincpu->set_addrmap(AS_PROGRAM, &c1541_dolphin_dos_t::c1541dd_mem); m_maincpu->set_addrmap(AS_PROGRAM, &c1541_dolphin_dos_device::c1541dd_mem);
} }
void c1541_professional_dos_v1_t::device_add_mconfig(machine_config &config) void c1541_professional_dos_v1_device::device_add_mconfig(machine_config &config)
{ {
c1541_base_t::device_add_mconfig(config); c1541_device_base::device_add_mconfig(config);
m_maincpu->set_addrmap(AS_PROGRAM, &c1541_professional_dos_v1_t::c1541pd_mem); m_maincpu->set_addrmap(AS_PROGRAM, &c1541_professional_dos_v1_device::c1541pd_mem);
} }
void c1541_prologic_dos_classic_t::device_add_mconfig(machine_config &config) void c1541_prologic_dos_classic_device::device_add_mconfig(machine_config &config)
{ {
c1541_base_t::device_add_mconfig(config); c1541_device_base::device_add_mconfig(config);
m_maincpu->set_addrmap(AS_PROGRAM, &c1541_prologic_dos_classic_t::c1541pdc_mem); m_maincpu->set_addrmap(AS_PROGRAM, &c1541_prologic_dos_classic_device::c1541pdc_mem);
PIA6821(config, m_pia, 0); PIA6821(config, m_pia, 0);
m_pia->readpb_handler().set(FUNC(c1541_prologic_dos_classic_t::pia_pb_r)); m_pia->readpb_handler().set(FUNC(c1541_prologic_dos_classic_device::pia_pb_r));
m_pia->writepa_handler().set(FUNC(c1541_prologic_dos_classic_t::pia_pa_w)); m_pia->writepa_handler().set(FUNC(c1541_prologic_dos_classic_device::pia_pa_w));
m_pia->writepb_handler().set(FUNC(c1541_prologic_dos_classic_t::pia_pb_w)); m_pia->writepb_handler().set(FUNC(c1541_prologic_dos_classic_device::pia_pb_w));
m_pia->ca2_handler().set(CENTRONICS_TAG, FUNC(centronics_device::write_strobe)); m_pia->ca2_handler().set(CENTRONICS_TAG, FUNC(centronics_device::write_strobe));
centronics_device &centronics(CENTRONICS(config, CENTRONICS_TAG, centronics_devices, "printer")); centronics_device &centronics(CENTRONICS(config, CENTRONICS_TAG, centronics_devices, "printer"));
@ -1051,7 +1051,7 @@ INPUT_PORTS_END
// input_ports - device-specific input ports // input_ports - device-specific input ports
//------------------------------------------------- //-------------------------------------------------
ioport_constructor c1541_base_t::device_input_ports() const ioport_constructor c1541_device_base::device_input_ports() const
{ {
return INPUT_PORTS_NAME( c1541 ); return INPUT_PORTS_NAME( c1541 );
} }
@ -1066,7 +1066,7 @@ ioport_constructor c1541_base_t::device_input_ports() const
// set_iec_data - // set_iec_data -
//------------------------------------------------- //-------------------------------------------------
inline void c1541_base_t::set_iec_data() inline void c1541_device_base::set_iec_data()
{ {
int data = !m_data_out && !m_ga->atn_r(); int data = !m_data_out && !m_ga->atn_r();
@ -1080,10 +1080,10 @@ inline void c1541_base_t::set_iec_data()
//************************************************************************** //**************************************************************************
//------------------------------------------------- //-------------------------------------------------
// c1541_base_t - constructor // c1541_device_base - constructor
//------------------------------------------------- //-------------------------------------------------
c1541_base_t::c1541_base_t(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : c1541_device_base::c1541_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) :
device_t(mconfig, type, tag, owner, clock), device_t(mconfig, type, tag, owner, clock),
device_cbm_iec_interface(mconfig, *this), device_cbm_iec_interface(mconfig, *this),
device_c64_floppy_parallel_interface(mconfig, *this), device_c64_floppy_parallel_interface(mconfig, *this),
@ -1102,91 +1102,91 @@ c1541_base_t::c1541_base_t(const machine_config &mconfig, device_type type, cons
//------------------------------------------------- //-------------------------------------------------
// c1540_t - constructor // c1540_device - constructor
//------------------------------------------------- //-------------------------------------------------
c1540_t::c1540_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) c1540_device::c1540_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, C1540, tag, owner, clock) { } : c1541_device_base(mconfig, C1540, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// c1541_t - constructor // c1541_device - constructor
//------------------------------------------------- //-------------------------------------------------
c1541_t::c1541_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) c1541_device::c1541_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, C1541, tag, owner, clock) { } : c1541_device_base(mconfig, C1541, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// c1541c_t - constructor // c1541c_device - constructor
//------------------------------------------------- //-------------------------------------------------
c1541c_t::c1541c_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) c1541c_device::c1541c_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, C1541C, tag, owner, clock) { } : c1541_device_base(mconfig, C1541C, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// c1541ii_t - constructor // c1541ii_device - constructor
//------------------------------------------------- //-------------------------------------------------
c1541ii_t::c1541ii_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) c1541ii_device::c1541ii_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, C1541II, tag, owner, clock) { } : c1541_device_base(mconfig, C1541II, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// sx1541_t - constructor // sx1541_device - constructor
//------------------------------------------------- //-------------------------------------------------
sx1541_t::sx1541_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) sx1541_device::sx1541_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, SX1541, tag, owner, clock) { } : c1541_device_base(mconfig, SX1541, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// fsd1_t - constructor // fsd1_device - constructor
//------------------------------------------------- //-------------------------------------------------
fsd1_t::fsd1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) fsd1_device::fsd1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, FSD1, tag, owner, clock) { } : c1541_device_base(mconfig, FSD1, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// fsd2_t - constructor // fsd2_device - constructor
//------------------------------------------------- //-------------------------------------------------
fsd2_t::fsd2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) fsd2_device::fsd2_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, FSD2, tag, owner, clock) { } : c1541_device_base(mconfig, FSD2, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// csd1_t - constructor // csd1_device - constructor
//------------------------------------------------- //-------------------------------------------------
csd1_t::csd1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) csd1_device::csd1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, CSD1, tag, owner, clock) { } : c1541_device_base(mconfig, CSD1, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// c1541_dolphin_dos_t - constructor // c1541_dolphin_dos_device - constructor
//------------------------------------------------- //-------------------------------------------------
c1541_dolphin_dos_t::c1541_dolphin_dos_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) c1541_dolphin_dos_device::c1541_dolphin_dos_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, C1541_DOLPHIN_DOS, tag, owner, clock) { } : c1541_device_base(mconfig, C1541_DOLPHIN_DOS, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// c1541_professional_dos_v1_t - constructor // c1541_professional_dos_v1_device - constructor
//------------------------------------------------- //-------------------------------------------------
c1541_professional_dos_v1_t::c1541_professional_dos_v1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) c1541_professional_dos_v1_device::c1541_professional_dos_v1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, C1541_PROFESSIONAL_DOS_V1, tag, owner, clock) { } : c1541_device_base(mconfig, C1541_PROFESSIONAL_DOS_V1, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// c1541_prologic_dos_classic_t - constructor // c1541_prologic_dos_classic_device - constructor
//------------------------------------------------- //-------------------------------------------------
c1541_prologic_dos_classic_t::c1541_prologic_dos_classic_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) c1541_prologic_dos_classic_device::c1541_prologic_dos_classic_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, C1541_PROLOGIC_DOS_CLASSIC, tag, owner, clock), : c1541_device_base(mconfig, C1541_PROLOGIC_DOS_CLASSIC, tag, owner, clock),
m_pia(*this, MC6821_TAG), m_pia(*this, MC6821_TAG),
m_cent_data_out(*this, "cent_data_out"), m_cent_data_out(*this, "cent_data_out"),
m_mmu_rom(*this, "mmu") m_mmu_rom(*this, "mmu")
@ -1195,74 +1195,74 @@ c1541_prologic_dos_classic_t::c1541_prologic_dos_classic_t(const machine_config
//------------------------------------------------- //-------------------------------------------------
// indus_gt_t - constructor // indus_gt_device - constructor
//------------------------------------------------- //-------------------------------------------------
indus_gt_t::indus_gt_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) indus_gt_device::indus_gt_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, INDUS_GT, tag, owner, clock) { } : c1541_device_base(mconfig, INDUS_GT, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// technica_t - constructor // technica_device - constructor
//------------------------------------------------- //-------------------------------------------------
technica_t::technica_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) technica_device::technica_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, TECHNICA, tag, owner, clock) { } : c1541_device_base(mconfig, TECHNICA, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// blue_chip_t - constructor // blue_chip_device - constructor
//------------------------------------------------- //-------------------------------------------------
blue_chip_t::blue_chip_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) blue_chip_device::blue_chip_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, BLUE_CHIP, tag, owner, clock) { } : c1541_device_base(mconfig, BLUE_CHIP, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// commander_c2_t - constructor // commander_c2_device - constructor
//------------------------------------------------- //-------------------------------------------------
commander_c2_t::commander_c2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) commander_c2_device::commander_c2_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, COMMANDER_C2, tag, owner, clock) { } : c1541_device_base(mconfig, COMMANDER_C2, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// enhancer_2000_t - constructor // enhancer_2000_device - constructor
//------------------------------------------------- //-------------------------------------------------
enhancer_2000_t::enhancer_2000_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) enhancer_2000_device::enhancer_2000_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, ENHANCER_2000, tag, owner, clock) { } : c1541_device_base(mconfig, ENHANCER_2000, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// fd148_t - constructor // fd148_device - constructor
//------------------------------------------------- //-------------------------------------------------
fd148_t::fd148_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) fd148_device::fd148_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, FD148, tag, owner, clock) { } : c1541_device_base(mconfig, FD148, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// msd_sd1_t - constructor // msd_sd1_device - constructor
//------------------------------------------------- //-------------------------------------------------
msd_sd1_t::msd_sd1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) msd_sd1_device::msd_sd1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, MSD_SD1, tag, owner, clock) { } : c1541_device_base(mconfig, MSD_SD1, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// msd_sd2_t - constructor // msd_sd2_device - constructor
//------------------------------------------------- //-------------------------------------------------
msd_sd2_t::msd_sd2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) msd_sd2_device::msd_sd2_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: c1541_base_t(mconfig, MSD_SD2, tag, owner, clock) { } : c1541_device_base(mconfig, MSD_SD2, tag, owner, clock) { }
//------------------------------------------------- //-------------------------------------------------
// device_start - device-specific startup // device_start - device-specific startup
//------------------------------------------------- //-------------------------------------------------
void c1541_base_t::device_start() void c1541_device_base::device_start()
{ {
m_leds.resolve(); m_leds.resolve();
@ -1275,16 +1275,16 @@ void c1541_base_t::device_start()
save_item(NAME(m_via1_irq)); save_item(NAME(m_via1_irq));
} }
void fsd2_t::device_start() void fsd2_device::device_start()
{ {
c1541_base_t::device_start(); c1541_device_base::device_start();
// decrypt ROM // decrypt ROM
uint8_t *rom = memregion(M6502_TAG)->base(); u8 *rom = memregion(M6502_TAG)->base();
for (offs_t offset = 0; offset < 0x4000; offset++) for (offs_t offset = 0; offset < 0x4000; offset++)
{ {
uint8_t data = bitswap<8>(rom[offset], 7, 6, 5, 3, 4, 2, 1, 0); const u8 data = bitswap<8>(rom[offset], 7, 6, 5, 3, 4, 2, 1, 0);
rom[offset] = data; rom[offset] = data;
} }
@ -1295,7 +1295,7 @@ void fsd2_t::device_start()
// device_reset - device-specific reset // device_reset - device-specific reset
//------------------------------------------------- //-------------------------------------------------
void c1541_base_t::device_reset() void c1541_device_base::device_reset()
{ {
m_maincpu->reset(); m_maincpu->reset();
@ -1312,7 +1312,7 @@ void c1541_base_t::device_reset()
// iec_atn_w - // iec_atn_w -
//------------------------------------------------- //-------------------------------------------------
void c1541_base_t::cbm_iec_atn(int state) void c1541_device_base::cbm_iec_atn(int state)
{ {
m_via0->write_ca1(!state); m_via0->write_ca1(!state);
m_ga->atni_w(!state); m_ga->atni_w(!state);
@ -1325,7 +1325,7 @@ void c1541_base_t::cbm_iec_atn(int state)
// iec_reset_w - // iec_reset_w -
//------------------------------------------------- //-------------------------------------------------
void c1541_base_t::cbm_iec_reset(int state) void c1541_device_base::cbm_iec_reset(int state)
{ {
if (!state) if (!state)
{ {
@ -1338,7 +1338,7 @@ void c1541_base_t::cbm_iec_reset(int state)
// parallel_data_w - // parallel_data_w -
//------------------------------------------------- //-------------------------------------------------
void c1541_base_t::parallel_data_w(uint8_t data) void c1541_device_base::parallel_data_w(u8 data)
{ {
m_parallel_data = data; m_parallel_data = data;
} }
@ -1348,7 +1348,7 @@ void c1541_base_t::parallel_data_w(uint8_t data)
// parallel_strobe_w - // parallel_strobe_w -
//------------------------------------------------- //-------------------------------------------------
void c1541_base_t::parallel_strobe_w(int state) void c1541_device_base::parallel_strobe_w(int state)
{ {
m_via0->write_cb1(state); m_via0->write_cb1(state);
} }

View File

@ -21,27 +21,19 @@
//**************************************************************************
// MACROS / CONSTANTS
//**************************************************************************
#define C1541_TAG "c1541"
//************************************************************************** //**************************************************************************
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************
// ======================> c1541_base_t // ======================> c1541_device_base
class c1541_base_t : public device_t, class c1541_device_base : public device_t,
public device_cbm_iec_interface, public device_cbm_iec_interface,
public device_c64_floppy_parallel_interface public device_c64_floppy_parallel_interface
{ {
protected: protected:
// construction/destruction // construction/destruction
c1541_base_t(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); c1541_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
@ -56,7 +48,7 @@ protected:
virtual void cbm_iec_reset(int state) override; virtual void cbm_iec_reset(int state) override;
// device_c64_floppy_parallel_interface overrides // device_c64_floppy_parallel_interface overrides
virtual void parallel_data_w(uint8_t data) override; virtual void parallel_data_w(u8 data) override;
virtual void parallel_strobe_w(int state) override; virtual void parallel_strobe_w(int state) override;
required_device<floppy_image_device> m_floppy; required_device<floppy_image_device> m_floppy;
@ -105,13 +97,13 @@ private:
}; };
// ======================> c1540_t // ======================> c1540_device
class c1540_t : public c1541_base_t class c1540_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
c1540_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); c1540_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -119,13 +111,13 @@ protected:
}; };
// ======================> c1541_t // ======================> c1541_device
class c1541_t : public c1541_base_t class c1541_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
c1541_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); c1541_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -133,13 +125,13 @@ protected:
}; };
// ======================> c1541c_t // ======================> c1541c_device
class c1541c_t : public c1541_base_t class c1541c_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
c1541c_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); c1541c_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -152,13 +144,13 @@ private:
}; };
// ======================> c1541ii_t // ======================> c1541ii_device
class c1541ii_t : public c1541_base_t class c1541ii_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
c1541ii_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); c1541ii_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -166,13 +158,13 @@ protected:
}; };
// ======================> sx1541_t // ======================> sx1541_device
class sx1541_t : public c1541_base_t class sx1541_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
sx1541_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); sx1541_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -180,13 +172,13 @@ protected:
}; };
// ======================> fsd1_t // ======================> fsd1_device
class fsd1_t : public c1541_base_t class fsd1_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
fsd1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); fsd1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -194,13 +186,13 @@ protected:
}; };
// ======================> fsd2_t // ======================> fsd2_device
class fsd2_t : public c1541_base_t class fsd2_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
fsd2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); fsd2_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -211,13 +203,13 @@ protected:
}; };
// ======================> csd1_t // ======================> csd1_device
class csd1_t : public c1541_base_t class csd1_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
csd1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); csd1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -225,13 +217,13 @@ protected:
}; };
// ======================> c1541_dolphin_dos_t // ======================> c1541_dolphin_dos_device
class c1541_dolphin_dos_t : public c1541_base_t class c1541_dolphin_dos_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
c1541_dolphin_dos_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); c1541_dolphin_dos_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -240,13 +232,13 @@ protected:
}; };
// ======================> c1541_professional_dos_v1_t // ======================> c1541_professional_dos_v1_device
class c1541_professional_dos_v1_t : public c1541_base_t class c1541_professional_dos_v1_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
c1541_professional_dos_v1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); c1541_professional_dos_v1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -255,13 +247,13 @@ protected:
}; };
// ======================> c1541_prologic_dos_classic_t // ======================> c1541_prologic_dos_classic_device
class c1541_prologic_dos_classic_t : public c1541_base_t class c1541_prologic_dos_classic_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
c1541_prologic_dos_classic_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); c1541_prologic_dos_classic_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -285,13 +277,13 @@ private:
}; };
// ======================> indus_gt_t // ======================> indus_gt_device
class indus_gt_t : public c1541_base_t class indus_gt_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
indus_gt_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); indus_gt_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -299,13 +291,13 @@ protected:
}; };
// ======================> technica_t // ======================> technica_device
class technica_t : public c1541_base_t class technica_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
technica_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); technica_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -313,13 +305,13 @@ protected:
}; };
// ======================> blue_chip_t // ======================> blue_chip_device
class blue_chip_t : public c1541_base_t class blue_chip_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
blue_chip_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); blue_chip_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -327,13 +319,13 @@ protected:
}; };
// ======================> commander_c2_t // ======================> commander_c2_device
class commander_c2_t : public c1541_base_t class commander_c2_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
commander_c2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); commander_c2_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -341,13 +333,13 @@ protected:
}; };
// ======================> enhancer_2000_t // ======================> enhancer_2000_device
class enhancer_2000_t : public c1541_base_t class enhancer_2000_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
enhancer_2000_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); enhancer_2000_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -355,13 +347,13 @@ protected:
}; };
// ======================> fd148_t // ======================> fd148_device
class fd148_t : public c1541_base_t class fd148_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
fd148_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); fd148_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -369,13 +361,13 @@ protected:
}; };
// ======================> msd_sd1_t // ======================> msd_sd1_device
class msd_sd1_t : public c1541_base_t class msd_sd1_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
msd_sd1_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); msd_sd1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -383,13 +375,13 @@ protected:
}; };
// ======================> msd_sd2_t // ======================> msd_sd2_device
class msd_sd2_t : public c1541_base_t class msd_sd2_device : public c1541_device_base
{ {
public: public:
// construction/destruction // construction/destruction
msd_sd2_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); msd_sd2_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
protected: protected:
// optional information overrides // optional information overrides
@ -398,25 +390,25 @@ protected:
// device type definition // device type definition
DECLARE_DEVICE_TYPE(C1540, c1540_t) DECLARE_DEVICE_TYPE(C1540, c1540_device)
DECLARE_DEVICE_TYPE(C1541, c1541_t) DECLARE_DEVICE_TYPE(C1541, c1541_device)
DECLARE_DEVICE_TYPE(C1541C, c1541c_t) DECLARE_DEVICE_TYPE(C1541C, c1541c_device)
DECLARE_DEVICE_TYPE(C1541II, c1541ii_t) DECLARE_DEVICE_TYPE(C1541II, c1541ii_device)
DECLARE_DEVICE_TYPE(SX1541, sx1541_t) DECLARE_DEVICE_TYPE(SX1541, sx1541_device)
DECLARE_DEVICE_TYPE(FSD1, fsd1_t) DECLARE_DEVICE_TYPE(FSD1, fsd1_device)
DECLARE_DEVICE_TYPE(FSD2, fsd2_t) DECLARE_DEVICE_TYPE(FSD2, fsd2_device)
DECLARE_DEVICE_TYPE(CSD1, csd1_t) DECLARE_DEVICE_TYPE(CSD1, csd1_device)
DECLARE_DEVICE_TYPE(C1541_DOLPHIN_DOS, c1541_dolphin_dos_t) DECLARE_DEVICE_TYPE(C1541_DOLPHIN_DOS, c1541_dolphin_dos_device)
DECLARE_DEVICE_TYPE(C1541_PROFESSIONAL_DOS_V1, c1541_professional_dos_v1_t) DECLARE_DEVICE_TYPE(C1541_PROFESSIONAL_DOS_V1, c1541_professional_dos_v1_device)
DECLARE_DEVICE_TYPE(C1541_PROLOGIC_DOS_CLASSIC, c1541_prologic_dos_classic_t) DECLARE_DEVICE_TYPE(C1541_PROLOGIC_DOS_CLASSIC, c1541_prologic_dos_classic_device)
DECLARE_DEVICE_TYPE(INDUS_GT, indus_gt_t) DECLARE_DEVICE_TYPE(INDUS_GT, indus_gt_device)
DECLARE_DEVICE_TYPE(TECHNICA, technica_t) DECLARE_DEVICE_TYPE(TECHNICA, technica_device)
DECLARE_DEVICE_TYPE(BLUE_CHIP, blue_chip_t) DECLARE_DEVICE_TYPE(BLUE_CHIP, blue_chip_device)
DECLARE_DEVICE_TYPE(COMMANDER_C2, commander_c2_t) DECLARE_DEVICE_TYPE(COMMANDER_C2, commander_c2_device)
DECLARE_DEVICE_TYPE(ENHANCER_2000, enhancer_2000_t) DECLARE_DEVICE_TYPE(ENHANCER_2000, enhancer_2000_device)
DECLARE_DEVICE_TYPE(FD148, fd148_t) DECLARE_DEVICE_TYPE(FD148, fd148_device)
DECLARE_DEVICE_TYPE(MSD_SD1, msd_sd1_t) DECLARE_DEVICE_TYPE(MSD_SD1, msd_sd1_device)
DECLARE_DEVICE_TYPE(MSD_SD2, msd_sd2_t) DECLARE_DEVICE_TYPE(MSD_SD2, msd_sd2_device)
#endif // MAME_BUS_CBMIEC_C1541_H #endif // MAME_BUS_CBMIEC_C1541_H

View File

@ -33,8 +33,8 @@
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(C1563, c1563_device, "c1563", "Commodore 1563 3.5 Disk Drive") DEFINE_DEVICE_TYPE(C1563, c1563_device, "c1563", "Commodore 1563 3.5\" Disk Drive")
DEFINE_DEVICE_TYPE(C1581, c1581_device, "c1581", "Commodore 1581 3.5 Disk Drive") DEFINE_DEVICE_TYPE(C1581, c1581_device, "c1581", "Commodore 1581 3.5\" Disk Drive")
//------------------------------------------------- //-------------------------------------------------

View File

@ -222,8 +222,8 @@ DEFINE_DEVICE_TYPE(CBM_IEC_SLOT, cbm_iec_slot_device, "cbm_iec_slot", "CBM IEC s
// device_cbm_iec_interface - constructor // device_cbm_iec_interface - constructor
//------------------------------------------------- //-------------------------------------------------
device_cbm_iec_interface::device_cbm_iec_interface(const machine_config &mconfig, device_t &device) device_cbm_iec_interface::device_cbm_iec_interface(const machine_config &mconfig, device_t &device) :
: device_interface(device, "cbmiec"), m_next(nullptr), m_bus(nullptr), m_slot(nullptr) device_interface(device, "cbmiec"), m_next(nullptr), m_bus(nullptr), m_slot(nullptr)
{ {
} }
@ -273,14 +273,6 @@ void cbm_iec_slot_device::device_start()
if (dev) bus->add_device(this, get_card_device()); if (dev) bus->add_device(this, get_card_device());
} }
void cbm_iec_slot_device::add_slot(machine_config &config, const char *_tag, int _address, const char *_def_slot)
{
cbm_iec_slot_device &slot(CBM_IEC_SLOT(config, _tag, 0));
cbm_iec_devices(slot);
slot.set_default_option(_def_slot);
slot.set_address(_address);
}
//************************************************************************** //**************************************************************************
// LIVE DEVICE // LIVE DEVICE
//************************************************************************** //**************************************************************************
@ -289,8 +281,8 @@ void cbm_iec_slot_device::add_slot(machine_config &config, const char *_tag, int
// cbm_iec_device - constructor // cbm_iec_device - constructor
//------------------------------------------------- //-------------------------------------------------
cbm_iec_device::cbm_iec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) cbm_iec_device::cbm_iec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
: device_t(mconfig, CBM_IEC, tag, owner, clock), device_t(mconfig, CBM_IEC, tag, owner, clock),
m_write_srq(*this), m_write_srq(*this),
m_write_atn(*this), m_write_atn(*this),
m_write_clk(*this), m_write_clk(*this),
@ -359,8 +351,8 @@ void cbm_iec_device::add_device(cbm_iec_slot_device *slot, device_t *target)
// daisy_entry - constructor // daisy_entry - constructor
//------------------------------------------------- //-------------------------------------------------
cbm_iec_device::daisy_entry::daisy_entry(device_t *device) cbm_iec_device::daisy_entry::daisy_entry(device_t *device) :
: m_next(nullptr), m_next(nullptr),
m_device(device), m_device(device),
m_interface(nullptr) m_interface(nullptr)
{ {
@ -522,9 +514,9 @@ void cbm_iec_devices(device_slot_interface &device)
device.option_add("cmdhd", CMD_HD); device.option_add("cmdhd", CMD_HD);
device.option_add("fd2000", FD2000); device.option_add("fd2000", FD2000);
device.option_add("fd4000", FD4000); device.option_add("fd4000", FD4000);
device.option_add("interpod", INTERPOD); device.option_add("interpod", CBM_INTERPOD);
device.option_add("minichief", MINI_CHIEF); device.option_add("minichief", MINI_CHIEF);
device.option_add("serialbox", SERIAL_BOX); device.option_add("serialbox", CBM_SERIAL_BOX);
device.option_add("diag264", DIAG264_SERIAL_LOOPBACK); device.option_add("diag264", DIAG264_SERIAL_LOOPBACK);
device.option_add("nl10", C64_NL10_INTERFACE); device.option_add("nl10", C64_NL10_INTERFACE);
device.option_add("vic1515", VIC1515); device.option_add("vic1515", VIC1515);

View File

@ -21,6 +21,9 @@
#define CBM_IEC_TAG "iec_bus" #define CBM_IEC_TAG "iec_bus"
DECLARE_DEVICE_TYPE(CBM_IEC, cbm_iec_device)
DECLARE_DEVICE_TYPE(CBM_IEC_SLOT, cbm_iec_slot_device)
void cbm_iec_devices(device_slot_interface &device); void cbm_iec_devices(device_slot_interface &device);
//************************************************************************** //**************************************************************************
@ -111,8 +114,6 @@ private:
int m_line[SIGNAL_COUNT]; int m_line[SIGNAL_COUNT];
}; };
DECLARE_DEVICE_TYPE(CBM_IEC, cbm_iec_device)
// ======================> cbm_iec_slot_device // ======================> cbm_iec_slot_device
@ -122,24 +123,24 @@ class cbm_iec_slot_device : public device_t,
public: public:
// construction/destruction // construction/destruction
template <typename T> template <typename T>
cbm_iec_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt) cbm_iec_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, int address, T &&opts, char const *dflt)
: cbm_iec_slot_device(mconfig, tag, owner, (uint32_t)0) : cbm_iec_slot_device(mconfig, tag, owner, (uint32_t)0)
{ {
option_reset(); option_reset();
opts(*this); opts(*this);
set_default_option(dflt); set_default_option(dflt);
set_fixed(false); set_fixed(false);
set_address(address);
} }
cbm_iec_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); cbm_iec_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
static void add_slot(machine_config &config, const char *_tag, int _address, const char *_def_slot);
template <typename T> static void add(machine_config &config, T &&_bus_tag, const char *_default_drive) template <typename T> static void add(machine_config &config, T &&_bus_tag, const char *_default_drive)
{ {
add_slot(config, "iec4", 4, nullptr); CBM_IEC_SLOT(config, "iec4", 4, cbm_iec_devices, nullptr);
add_slot(config, "iec8", 8, _default_drive); CBM_IEC_SLOT(config, "iec8", 8, cbm_iec_devices, _default_drive);
add_slot(config, "iec9", 9, nullptr); CBM_IEC_SLOT(config, "iec9", 9, cbm_iec_devices, nullptr);
add_slot(config, "iec10", 10, nullptr); CBM_IEC_SLOT(config, "iec10", 10, cbm_iec_devices, nullptr);
add_slot(config, "iec11", 11, nullptr); CBM_IEC_SLOT(config, "iec11", 11, cbm_iec_devices, nullptr);
CBM_IEC(config, std::forward<T>(_bus_tag), 0); CBM_IEC(config, std::forward<T>(_bus_tag), 0);
} }
@ -182,6 +183,4 @@ protected:
cbm_iec_slot_device *m_slot; cbm_iec_slot_device *m_slot;
}; };
DECLARE_DEVICE_TYPE(CBM_IEC_SLOT, cbm_iec_slot_device)
#endif // MAME_BUS_CBMIEC_CBMIEC_H #endif // MAME_BUS_CBMIEC_CBMIEC_H

View File

@ -20,14 +20,6 @@
//**************************************************************************
// MACROS / CONSTANTS
//**************************************************************************
#define CMD_HD_TAG "cmdhd"
//************************************************************************** //**************************************************************************
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************

View File

@ -20,14 +20,6 @@
//**************************************************************************
// MACROS / CONSTANTS
//**************************************************************************
#define FD2000_TAG "fd2000"
//************************************************************************** //**************************************************************************
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************

View File

@ -67,17 +67,13 @@ Notes:
//************************************************************************** //**************************************************************************
#define R6502_TAG "u1" #define R6502_TAG "u1"
#define R6532_TAG "u3"
#define R6522_TAG "u4"
#define MC6850_TAG "u5"
#define RS232_TAG "rs232"
//************************************************************************** //**************************************************************************
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(INTERPOD, interpod_t, "interpod", "Interpod") DEFINE_DEVICE_TYPE(CBM_INTERPOD, cbm_interpod_device, "cbm_interpod", "Oxford Computer Systems Interpod")
@ -103,7 +99,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *interpod_t::device_rom_region() const const tiny_rom_entry *cbm_interpod_device::device_rom_region() const
{ {
return ROM_NAME( interpod ); return ROM_NAME( interpod );
} }
@ -113,13 +109,13 @@ const tiny_rom_entry *interpod_t::device_rom_region() const
// ADDRESS_MAP( interpod_mem ) // ADDRESS_MAP( interpod_mem )
//------------------------------------------------- //-------------------------------------------------
void interpod_t::interpod_mem(address_map &map) void cbm_interpod_device::interpod_mem(address_map &map)
{ {
map(0x0000, 0x007f).mirror(0x3b80).m(R6532_TAG, FUNC(mos6532_new_device::ram_map)); map(0x0000, 0x007f).mirror(0x3b80).m(m_riot, FUNC(mos6532_new_device::ram_map));
map(0x0400, 0x041f).mirror(0x3be0).m(R6532_TAG, FUNC(mos6532_new_device::io_map)); map(0x0400, 0x041f).mirror(0x3be0).m(m_riot, FUNC(mos6532_new_device::io_map));
map(0x2000, 0x2001).mirror(0x9ffe).rw(MC6850_TAG, FUNC(acia6850_device::read), FUNC(acia6850_device::write)); map(0x2000, 0x2001).mirror(0x9ffe).rw(m_acia, FUNC(acia6850_device::read), FUNC(acia6850_device::write));
map(0x4000, 0x47ff).mirror(0xb800).rom().region(R6502_TAG, 0); map(0x4000, 0x47ff).mirror(0xb800).rom().region(R6502_TAG, 0);
map(0x8000, 0x800f).mirror(0x5ff0).m(R6522_TAG, FUNC(via6522_device::map)); map(0x8000, 0x800f).mirror(0x5ff0).m(m_via, FUNC(via6522_device::map));
} }
@ -127,10 +123,10 @@ void interpod_t::interpod_mem(address_map &map)
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
void interpod_t::device_add_mconfig(machine_config &config) void cbm_interpod_device::device_add_mconfig(machine_config &config)
{ {
M6502(config, m_maincpu, 1000000); M6502(config, m_maincpu, 1000000);
m_maincpu->set_addrmap(AS_PROGRAM, &interpod_t::interpod_mem); m_maincpu->set_addrmap(AS_PROGRAM, &cbm_interpod_device::interpod_mem);
VIA6522(config, m_via, 1000000); VIA6522(config, m_via, 1000000);
@ -150,18 +146,18 @@ void interpod_t::device_add_mconfig(machine_config &config)
//************************************************************************** //**************************************************************************
//------------------------------------------------- //-------------------------------------------------
// interpod_t - constructor // cbm_interpod_device - constructor
//------------------------------------------------- //-------------------------------------------------
interpod_t::interpod_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : cbm_interpod_device::cbm_interpod_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, INTERPOD, tag, owner, clock), device_t(mconfig, CBM_INTERPOD, tag, owner, clock),
device_cbm_iec_interface(mconfig, *this), device_cbm_iec_interface(mconfig, *this),
m_maincpu(*this, R6502_TAG), m_maincpu(*this, R6502_TAG),
m_via(*this, R6522_TAG), m_via(*this, "u4"),
m_riot(*this, R6532_TAG), m_riot(*this, "u3"),
m_acia(*this, MC6850_TAG), m_acia(*this, "u5"),
m_ieee(*this, IEEE488_TAG), m_ieee(*this, IEEE488_TAG),
m_rs232(*this, RS232_TAG) m_rs232(*this, "rs232")
{ {
} }
@ -170,7 +166,7 @@ interpod_t::interpod_t(const machine_config &mconfig, const char *tag, device_t
// device_start - device-specific startup // device_start - device-specific startup
//------------------------------------------------- //-------------------------------------------------
void interpod_t::device_start() void cbm_interpod_device::device_start()
{ {
} }
@ -179,6 +175,6 @@ void interpod_t::device_start()
// device_reset - device-specific reset // device_reset - device-specific reset
//------------------------------------------------- //-------------------------------------------------
void interpod_t::device_reset() void cbm_interpod_device::device_reset()
{ {
} }

View File

@ -25,14 +25,14 @@
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************
// ======================> interpod_t // ======================> cbm_interpod_device
class interpod_t : public device_t, class cbm_interpod_device : public device_t,
public device_cbm_iec_interface public device_cbm_iec_interface
{ {
public: public:
// construction/destruction // construction/destruction
interpod_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); cbm_interpod_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected: protected:
// device-level overrides // device-level overrides
@ -56,7 +56,7 @@ private:
// device type definition // device type definition
DECLARE_DEVICE_TYPE(INTERPOD, interpod_t) DECLARE_DEVICE_TYPE(CBM_INTERPOD, cbm_interpod_device)
#endif // MAME_BUS_CBMIEC_INTERPOD_H #endif // MAME_BUS_CBMIEC_INTERPOD_H

View File

@ -32,7 +32,7 @@ enum
// DEVICE DEFINITIONS // DEVICE DEFINITIONS
//************************************************************************** //**************************************************************************
DEFINE_DEVICE_TYPE(SERIAL_BOX, serial_box_device, "serbox", "Serial Box") DEFINE_DEVICE_TYPE(CBM_SERIAL_BOX, cbm_serial_box_device, "cbm_serbox", "Serial Box")
//------------------------------------------------- //-------------------------------------------------
@ -49,7 +49,7 @@ ROM_END
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const tiny_rom_entry *serial_box_device::device_rom_region() const const tiny_rom_entry *cbm_serial_box_device::device_rom_region() const
{ {
return ROM_NAME( serial_box ); return ROM_NAME( serial_box );
} }
@ -59,7 +59,7 @@ const tiny_rom_entry *serial_box_device::device_rom_region() const
// ADDRESS_MAP( serial_box_mem ) // ADDRESS_MAP( serial_box_mem )
//------------------------------------------------- //-------------------------------------------------
void serial_box_device::serial_box_mem(address_map &map) void cbm_serial_box_device::serial_box_mem(address_map &map)
{ {
map(0xf000, 0xffff).rom().region(M6502_TAG, 0); map(0xf000, 0xffff).rom().region(M6502_TAG, 0);
} }
@ -69,10 +69,10 @@ void serial_box_device::serial_box_mem(address_map &map)
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
void serial_box_device::device_add_mconfig(machine_config &config) void cbm_serial_box_device::device_add_mconfig(machine_config &config)
{ {
M65C02(config, m_maincpu, XTAL(4'000'000)/4); M65C02(config, m_maincpu, XTAL(4'000'000)/4);
m_maincpu->set_addrmap(AS_PROGRAM, &serial_box_device::serial_box_mem); m_maincpu->set_addrmap(AS_PROGRAM, &cbm_serial_box_device::serial_box_mem);
} }
@ -82,11 +82,11 @@ void serial_box_device::device_add_mconfig(machine_config &config)
//************************************************************************** //**************************************************************************
//------------------------------------------------- //-------------------------------------------------
// serial_box_device - constructor // cbm_serial_box_device - constructor
//------------------------------------------------- //-------------------------------------------------
serial_box_device::serial_box_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) cbm_serial_box_device::cbm_serial_box_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, SERIAL_BOX, tag, owner, clock), : device_t(mconfig, CBM_SERIAL_BOX, tag, owner, clock),
device_cbm_iec_interface(mconfig, *this), device_cbm_iec_interface(mconfig, *this),
m_maincpu(*this, M6502_TAG) m_maincpu(*this, M6502_TAG)
{ {
@ -97,7 +97,7 @@ serial_box_device::serial_box_device(const machine_config &mconfig, const char *
// device_start - device-specific startup // device_start - device-specific startup
//------------------------------------------------- //-------------------------------------------------
void serial_box_device::device_start() void cbm_serial_box_device::device_start()
{ {
} }
@ -106,7 +106,7 @@ void serial_box_device::device_start()
// device_reset - device-specific reset // device_reset - device-specific reset
//------------------------------------------------- //-------------------------------------------------
void serial_box_device::device_reset() void cbm_serial_box_device::device_reset()
{ {
} }
@ -115,7 +115,7 @@ void serial_box_device::device_reset()
// cbm_iec_atn - // cbm_iec_atn -
//------------------------------------------------- //-------------------------------------------------
void serial_box_device::cbm_iec_atn(int state) void cbm_serial_box_device::cbm_iec_atn(int state)
{ {
} }
@ -124,7 +124,7 @@ void serial_box_device::cbm_iec_atn(int state)
// cbm_iec_data - // cbm_iec_data -
//------------------------------------------------- //-------------------------------------------------
void serial_box_device::cbm_iec_data(int state) void cbm_serial_box_device::cbm_iec_data(int state)
{ {
} }
@ -133,7 +133,7 @@ void serial_box_device::cbm_iec_data(int state)
// cbm_iec_reset - // cbm_iec_reset -
//------------------------------------------------- //-------------------------------------------------
void serial_box_device::cbm_iec_reset(int state) void cbm_serial_box_device::cbm_iec_reset(int state)
{ {
if (!state) if (!state)
{ {

View File

@ -11,16 +11,8 @@
#pragma once #pragma once
#include "cbmiec.h"
#include "cpu/m6502/m65c02.h" #include "cpu/m6502/m65c02.h"
#include "bus/cbmiec/cbmiec.h"
//**************************************************************************
// MACROS / CONSTANTS
//**************************************************************************
#define SERIAL_BOX_TAG "serialbox"
@ -28,13 +20,13 @@
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************
// ======================> serial_box_device // ======================> cbm_serial_box_device
class serial_box_device : public device_t, public device_cbm_iec_interface class cbm_serial_box_device : public device_t, public device_cbm_iec_interface
{ {
public: public:
// construction/destruction // construction/destruction
serial_box_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); cbm_serial_box_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected: protected:
// device-level overrides // device-level overrides
@ -58,7 +50,7 @@ private:
// device type definition // device type definition
DECLARE_DEVICE_TYPE(SERIAL_BOX, serial_box_device) DECLARE_DEVICE_TYPE(CBM_SERIAL_BOX, cbm_serial_box_device)
#endif // MAME_BUS_CBMIEC_SERIALBOX_H #endif // MAME_BUS_CBMIEC_SERIALBOX_H

View File

@ -12,7 +12,7 @@
#include "emu.h" #include "emu.h"
#include "8530scc.h" #include "8530scc.h"
DEFINE_DEVICE_TYPE(SCC8530, scc8530_t, "scc8530l", "Zilog 8530 SCC (legacy)") DEFINE_DEVICE_TYPE(SCC8530, scc8530_legacy_device, "scc8530l", "Zilog 8530 SCC (legacy)")
/*************************************************************************** /***************************************************************************
@ -25,7 +25,7 @@ DEFINE_DEVICE_TYPE(SCC8530, scc8530_t, "scc8530l", "Zilog 8530 SCC (legacy)")
IMPLEMENTATION IMPLEMENTATION
***************************************************************************/ ***************************************************************************/
scc8530_t::scc8530_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : scc8530_legacy_device::scc8530_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, SCC8530, tag, owner, clock), device_t(mconfig, SCC8530, tag, owner, clock),
mode(0), reg(0), status(0), IRQV(0), MasterIRQEnable(0), lastIRQStat(0), IRQType(), mode(0), reg(0), status(0), IRQV(0), MasterIRQEnable(0), lastIRQStat(0), IRQType(),
intrq_cb(*this) intrq_cb(*this)
@ -37,7 +37,7 @@ scc8530_t::scc8530_t(const machine_config &mconfig, const char *tag, device_t *o
scc_updateirqs scc_updateirqs
-------------------------------------------------*/ -------------------------------------------------*/
void scc8530_t::updateirqs() void scc8530_legacy_device::updateirqs()
{ {
int irqstat; int irqstat;
@ -90,7 +90,7 @@ void scc8530_t::updateirqs()
/*------------------------------------------------- /*-------------------------------------------------
scc_initchannel scc_initchannel
-------------------------------------------------*/ -------------------------------------------------*/
void scc8530_t::initchannel(int ch) void scc8530_legacy_device::initchannel(int ch)
{ {
channel[ch].syncHunt = 1; channel[ch].syncHunt = 1;
} }
@ -98,7 +98,7 @@ void scc8530_t::initchannel(int ch)
/*------------------------------------------------- /*-------------------------------------------------
scc_resetchannel scc_resetchannel
-------------------------------------------------*/ -------------------------------------------------*/
void scc8530_t::resetchannel(int ch) void scc8530_legacy_device::resetchannel(int ch)
{ {
emu_timer *timersave = channel[ch].baudtimer; emu_timer *timersave = channel[ch].baudtimer;
@ -114,7 +114,7 @@ void scc8530_t::resetchannel(int ch)
scc8530_baud_expire - baud rate timer expiry scc8530_baud_expire - baud rate timer expiry
-------------------------------------------------*/ -------------------------------------------------*/
void scc8530_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) void scc8530_legacy_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{ {
Chan *pChan = &channel[id]; Chan *pChan = &channel[id];
int brconst = pChan->reg_val[13]<<8 | pChan->reg_val[14]; int brconst = pChan->reg_val[13]<<8 | pChan->reg_val[14];
@ -158,7 +158,7 @@ void scc8530_t::device_timer(emu_timer &timer, device_timer_id id, int param, vo
device_start - device-specific startup device_start - device-specific startup
-------------------------------------------------*/ -------------------------------------------------*/
void scc8530_t::device_start() void scc8530_legacy_device::device_start()
{ {
intrq_cb.resolve(); intrq_cb.resolve();
@ -180,7 +180,7 @@ void scc8530_t::device_start()
/*------------------------------------------------- /*-------------------------------------------------
device_reset - device-specific reset device_reset - device-specific reset
-------------------------------------------------*/ -------------------------------------------------*/
void scc8530_t::device_reset() void scc8530_legacy_device::device_reset()
{ {
IRQType = IRQ_NONE; IRQType = IRQ_NONE;
MasterIRQEnable = 0; MasterIRQEnable = 0;
@ -196,7 +196,7 @@ void scc8530_t::device_reset()
scc_set_status scc_set_status
-------------------------------------------------*/ -------------------------------------------------*/
void scc8530_t::set_status(int _status) void scc8530_legacy_device::set_status(int _status)
{ {
status = _status; status = _status;
} }
@ -205,7 +205,7 @@ void scc8530_t::set_status(int _status)
scc_acknowledge scc_acknowledge
-------------------------------------------------*/ -------------------------------------------------*/
void scc8530_t::acknowledge() void scc8530_legacy_device::acknowledge()
{ {
if(!intrq_cb.isnull()) if(!intrq_cb.isnull())
intrq_cb(0); intrq_cb(0);
@ -215,7 +215,7 @@ void scc8530_t::acknowledge()
scc_getareg scc_getareg
-------------------------------------------------*/ -------------------------------------------------*/
uint8_t scc8530_t::getareg() uint8_t scc8530_legacy_device::getareg()
{ {
/* Not yet implemented */ /* Not yet implemented */
#if LOG_SCC #if LOG_SCC
@ -247,7 +247,7 @@ uint8_t scc8530_t::getareg()
scc_getareg scc_getareg
-------------------------------------------------*/ -------------------------------------------------*/
uint8_t scc8530_t::getbreg() uint8_t scc8530_legacy_device::getbreg()
{ {
#if LOG_SCC #if LOG_SCC
printf("SCC: port B reg %i read 0x%02x\n", reg, channel[1].reg_val[reg]); printf("SCC: port B reg %i read 0x%02x\n", reg, channel[1].reg_val[reg]);
@ -286,7 +286,7 @@ uint8_t scc8530_t::getbreg()
scc_putreg scc_putreg
-------------------------------------------------*/ -------------------------------------------------*/
void scc8530_t::putreg(int ch, uint8_t data) void scc8530_legacy_device::putreg(int ch, uint8_t data)
{ {
Chan *pChan = &channel[ch]; Chan *pChan = &channel[ch];
@ -418,7 +418,7 @@ void scc8530_t::putreg(int ch, uint8_t data)
scc8530_get_reg_a scc8530_get_reg_a
-------------------------------------------------*/ -------------------------------------------------*/
uint8_t scc8530_t::get_reg_a(int reg) uint8_t scc8530_legacy_device::get_reg_a(int reg)
{ {
return channel[0].reg_val[reg]; return channel[0].reg_val[reg];
} }
@ -429,7 +429,7 @@ uint8_t scc8530_t::get_reg_a(int reg)
scc8530_get_reg_b scc8530_get_reg_b
-------------------------------------------------*/ -------------------------------------------------*/
uint8_t scc8530_t::get_reg_b(int reg) uint8_t scc8530_legacy_device::get_reg_b(int reg)
{ {
return channel[1].reg_val[reg]; return channel[1].reg_val[reg];
} }
@ -440,7 +440,7 @@ uint8_t scc8530_t::get_reg_b(int reg)
scc8530_set_reg_a scc8530_set_reg_a
-------------------------------------------------*/ -------------------------------------------------*/
void scc8530_t::set_reg_a(int reg, uint8_t data) void scc8530_legacy_device::set_reg_a(int reg, uint8_t data)
{ {
channel[0].reg_val[reg] = data; channel[0].reg_val[reg] = data;
} }
@ -451,7 +451,7 @@ void scc8530_t::set_reg_a(int reg, uint8_t data)
scc8530_set_reg_b scc8530_set_reg_b
-------------------------------------------------*/ -------------------------------------------------*/
void scc8530_t::set_reg_b(int reg, uint8_t data) void scc8530_legacy_device::set_reg_b(int reg, uint8_t data)
{ {
channel[1].reg_val[reg] = data; channel[1].reg_val[reg] = data;
} }
@ -463,7 +463,7 @@ void scc8530_t::set_reg_b(int reg, uint8_t data)
// getter // getter
//------------------------------------------------- //-------------------------------------------------
READ8_MEMBER(scc8530_t::reg_r) READ8_MEMBER(scc8530_legacy_device::reg_r)
{ {
return read_reg(offset & 3); return read_reg(offset & 3);
} }
@ -475,7 +475,7 @@ READ8_MEMBER(scc8530_t::reg_r)
// port for either SCC channel. // port for either SCC channel.
//------------------------------------------------- //-------------------------------------------------
uint8_t scc8530_t::read_reg(int offset) uint8_t scc8530_legacy_device::read_reg(int offset)
{ {
uint8_t result = 0; uint8_t result = 0;
@ -507,7 +507,7 @@ uint8_t scc8530_t::read_reg(int offset)
// setter // setter
//------------------------------------------------- //-------------------------------------------------
WRITE8_MEMBER( scc8530_t::reg_w ) WRITE8_MEMBER( scc8530_legacy_device::reg_w )
{ {
write_reg(offset & 3, data); write_reg(offset & 3, data);
} }
@ -519,7 +519,7 @@ WRITE8_MEMBER( scc8530_t::reg_w )
// port for either SCC channel. // port for either SCC channel.
//------------------------------------------------- //-------------------------------------------------
void scc8530_t::write_reg(int offset, uint8_t data) void scc8530_legacy_device::write_reg(int offset, uint8_t data)
{ {
//offset & 3; //offset & 3;

View File

@ -11,7 +11,7 @@
#ifndef MAME_MACHINE_8530SCC_H #ifndef MAME_MACHINE_8530SCC_H
#define MAME_MACHINE_8530SCC_H #define MAME_MACHINE_8530SCC_H
class scc8530_t : public device_t class scc8530_legacy_device : public device_t
{ {
public: public:
enum IRQType_t { enum IRQType_t {
@ -26,7 +26,7 @@ public:
IRQ_B_EXT IRQ_B_EXT
}; };
scc8530_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); scc8530_legacy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
auto intrq_callback() { return intrq_cb.bind(); } auto intrq_callback() { return intrq_cb.bind(); }
@ -98,6 +98,6 @@ private:
MACROS MACROS
***************************************************************************/ ***************************************************************************/
DECLARE_DEVICE_TYPE(SCC8530, scc8530_t) DECLARE_DEVICE_TYPE(SCC8530, scc8530_legacy_device)
#endif // MAME_MACHINE_8530SCC_H #endif // MAME_MACHINE_8530SCC_H

View File

@ -531,7 +531,7 @@ void abc80_state::abc80(machine_config &config)
ABC80_KEYBOARD(config, m_kb, 0); ABC80_KEYBOARD(config, m_kb, 0);
m_kb->keydown_wr_callback().set(FUNC(abc80_state::keydown_w)); m_kb->keydown_wr_callback().set(FUNC(abc80_state::keydown_w));
ABCBUS_SLOT(config, ABCBUS_TAG, XTAL(11'980'800)/2/2, abc80_cards, "abcexp"); ABCBUS_SLOT(config, m_bus, XTAL(11'980'800)/2/2, abc80_cards, "abcexp");
RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr); RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr);
generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, KEYBOARD_TAG, 0)); generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, KEYBOARD_TAG, 0));

View File

@ -153,6 +153,8 @@ Notes:
#define LOG 0 #define LOG 0
#define ABCBUS_TAG "bus"
//************************************************************************** //**************************************************************************
// SOUND // SOUND

View File

@ -1335,7 +1335,7 @@ void ste_state::ste_map(address_map &map)
void megaste_state::megaste_map(address_map &map) void megaste_state::megaste_map(address_map &map)
{ {
st_map(map); st_map(map);
map(0xff8c80, 0xff8c87).rw(Z8530_TAG, FUNC(scc8530_t::reg_r), FUNC(scc8530_t::reg_w)).umask16(0x00ff); map(0xff8c80, 0xff8c87).rw(Z8530_TAG, FUNC(scc8530_legacy_device::reg_r), FUNC(scc8530_legacy_device::reg_w)).umask16(0x00ff);
map(0xfffc20, 0xfffc3f).rw(RP5C15_TAG, FUNC(rp5c15_device::read), FUNC(rp5c15_device::write)).umask16(0x00ff); map(0xfffc20, 0xfffc3f).rw(RP5C15_TAG, FUNC(rp5c15_device::read), FUNC(rp5c15_device::write)).umask16(0x00ff);
} }

View File

@ -1803,7 +1803,7 @@ void c128_state::c128d81(machine_config &config)
m_iec->srq_callback().set(FUNC(c128_state::iec_srq_w)); m_iec->srq_callback().set(FUNC(c128_state::iec_srq_w));
m_iec->data_callback().set(FUNC(c128_state::iec_data_w)); m_iec->data_callback().set(FUNC(c128_state::iec_data_w));
CBM_IEC_SLOT(config.replace(), "iec8", c128d81_iec_devices, "c1563"); CBM_IEC_SLOT(config.replace(), "iec8", 8, c128d81_iec_devices, "c1563");
} }

View File

@ -1572,7 +1572,7 @@ void sx64_state::ntsc_sx(machine_config &config)
m_maincpu->set_pulls(0x07, 0xc0); m_maincpu->set_pulls(0x07, 0xc0);
// devices // devices
CBM_IEC_SLOT(config.replace(), "iec8", sx1541_iec_devices, "sx1541"); CBM_IEC_SLOT(config.replace(), "iec8", 8, sx1541_iec_devices, "sx1541");
} }
@ -1585,7 +1585,7 @@ void sx64_state::ntsc_dx(machine_config &config)
ntsc_sx(config); ntsc_sx(config);
// devices // devices
CBM_IEC_SLOT(config.replace(), "iec9", sx1541_iec_devices, "sx1541"); CBM_IEC_SLOT(config.replace(), "iec9", 9, sx1541_iec_devices, "sx1541");
} }
@ -1732,7 +1732,7 @@ void sx64_state::pal_sx(machine_config &config)
m_maincpu->set_pulls(0x07, 0xc0); m_maincpu->set_pulls(0x07, 0xc0);
// devices // devices
CBM_IEC_SLOT(config.replace(), "iec8", sx1541_iec_devices, "sx1541"); CBM_IEC_SLOT(config.replace(), "iec8", 8, sx1541_iec_devices, "sx1541");
} }

View File

@ -280,7 +280,7 @@ void mbee_state::mbeett_io(address_map &map)
map(0x0109, 0x0109).mirror(0xfe00).r(FUNC(mbee_state::speed_high_r)); map(0x0109, 0x0109).mirror(0xfe00).r(FUNC(mbee_state::speed_high_r));
map(0x000a, 0x000a).mirror(0xfe00).rw(FUNC(mbee_state::telcom_low_r), FUNC(mbee_state::port0a_w)); map(0x000a, 0x000a).mirror(0xfe00).rw(FUNC(mbee_state::telcom_low_r), FUNC(mbee_state::port0a_w));
map(0x010a, 0x010a).mirror(0xfe00).rw(FUNC(mbee_state::telcom_high_r), FUNC(mbee_state::port0a_w)); map(0x010a, 0x010a).mirror(0xfe00).rw(FUNC(mbee_state::telcom_high_r), FUNC(mbee_state::port0a_w));
map(0x0068, 0x006f).mirror(0xff00).rw("scc", FUNC(scc8530_t::reg_r), FUNC(scc8530_t::reg_w)); map(0x0068, 0x006f).mirror(0xff00).rw("scc", FUNC(scc8530_legacy_device::reg_r), FUNC(scc8530_legacy_device::reg_w));
} }
void mbee_state::mbee56_io(address_map &map) void mbee_state::mbee56_io(address_map &map)

View File

@ -915,7 +915,7 @@ void next_state::next_mem(address_map &map)
map(0x02014020, 0x02014023).mirror(0x300000).rw(FUNC(next_state::scsictrl_r), FUNC(next_state::scsictrl_w)); map(0x02014020, 0x02014023).mirror(0x300000).rw(FUNC(next_state::scsictrl_r), FUNC(next_state::scsictrl_w));
map(0x02016000, 0x02016003).mirror(0x300000).rw(FUNC(next_state::timer_data_r), FUNC(next_state::timer_data_w)); map(0x02016000, 0x02016003).mirror(0x300000).rw(FUNC(next_state::timer_data_r), FUNC(next_state::timer_data_w));
map(0x02016004, 0x02016007).mirror(0x300000).rw(FUNC(next_state::timer_ctrl_r), FUNC(next_state::timer_ctrl_w)); map(0x02016004, 0x02016007).mirror(0x300000).rw(FUNC(next_state::timer_ctrl_r), FUNC(next_state::timer_ctrl_w));
map(0x02018000, 0x02018003).mirror(0x300000).rw(scc, FUNC(scc8530_t::reg_r), FUNC(scc8530_t::reg_w)); map(0x02018000, 0x02018003).mirror(0x300000).rw(scc, FUNC(scc8530_legacy_device::reg_r), FUNC(scc8530_legacy_device::reg_w));
// map(0x02018004, 0x02018007).mirror(0x300000); SCC CLK // map(0x02018004, 0x02018007).mirror(0x300000); SCC CLK
// map(0x02018190, 0x02018197).mirror(0x300000); warp 9c DRAM timing // map(0x02018190, 0x02018197).mirror(0x300000); warp 9c DRAM timing
// map(0x02018198, 0x0201819f).mirror(0x300000); warp 9c VRAM timing // map(0x02018198, 0x0201819f).mirror(0x300000); warp 9c VRAM timing

View File

@ -85,7 +85,7 @@ public:
required_device<z80dma_device> m_dma1; required_device<z80dma_device> m_dma1;
required_device<z80dma_device> m_dma2; required_device<z80dma_device> m_dma2;
required_device<z80dart_device> m_dart; required_device<z80dart_device> m_dart;
required_device<scc8530_t> m_scc; required_device<scc8530_legacy_device> m_scc;
required_device<z8536_device> m_cio; required_device<z8536_device> m_cio;
required_device<fd1797_device> m_fdc; required_device<fd1797_device> m_fdc;
required_device<e0516_device> m_rtc; required_device<e0516_device> m_rtc;

View File

@ -71,7 +71,7 @@ public:
m_pio(*this, Z80PIO_TAG), m_pio(*this, Z80PIO_TAG),
m_csg(*this, SN76477_TAG), m_csg(*this, SN76477_TAG),
m_cassette(*this, "cassette"), m_cassette(*this, "cassette"),
m_bus(*this, ABCBUS_TAG), m_bus(*this, "bus"),
m_kb(*this, ABC80_KEYBOARD_TAG), m_kb(*this, ABC80_KEYBOARD_TAG),
m_ram(*this, RAM_TAG), m_ram(*this, RAM_TAG),
m_rs232(*this, RS232_TAG), m_rs232(*this, RS232_TAG),

View File

@ -141,7 +141,7 @@ private:
required_device<via6522_device> m_via0; required_device<via6522_device> m_via0;
required_device<via6522_device> m_via1; required_device<via6522_device> m_via1;
optional_device<applefdc_base_device> m_fdc; optional_device<applefdc_base_device> m_fdc;
required_device<scc8530_t> m_scc; required_device<scc8530_legacy_device> m_scc;
required_device<speaker_sound_device> m_speaker; required_device<speaker_sound_device> m_speaker;
required_device<nvram_device> m_nvram; required_device<nvram_device> m_nvram;
required_device<ls259_device> m_latch; required_device<ls259_device> m_latch;

View File

@ -259,7 +259,7 @@ private:
optional_device<egret_device> m_egret; optional_device<egret_device> m_egret;
optional_device<cuda_device> m_cuda; optional_device<cuda_device> m_cuda;
required_device<ram_device> m_ram; required_device<ram_device> m_ram;
required_device<scc8530_t> m_scc; required_device<scc8530_legacy_device> m_scc;
optional_device<ncr539x_device> m_539x_1; optional_device<ncr539x_device> m_539x_1;
optional_device<ncr539x_device> m_539x_2; optional_device<ncr539x_device> m_539x_2;
optional_device<ncr5380_device> m_ncr5380; optional_device<ncr5380_device> m_ncr5380;

View File

@ -50,7 +50,7 @@ private:
optional_device<awacs_device> m_awacs; optional_device<awacs_device> m_awacs;
required_device<cuda_device> m_cuda; required_device<cuda_device> m_cuda;
required_device<ram_device> m_ram; required_device<ram_device> m_ram;
optional_device<scc8530_t> m_scc; optional_device<scc8530_legacy_device> m_scc;
optional_device<ncr539x_device> m_539x_1; optional_device<ncr539x_device> m_539x_1;
optional_device<ncr539x_device> m_539x_2; optional_device<ncr539x_device> m_539x_2;

View File

@ -58,7 +58,7 @@ public:
private: private:
required_device<cpu_device> maincpu; required_device<cpu_device> maincpu;
required_device<mccs1850_device> rtc; required_device<mccs1850_device> rtc;
required_device<scc8530_t> scc; required_device<scc8530_legacy_device> scc;
required_device<nextkbd_device> keyboard; required_device<nextkbd_device> keyboard;
required_device<nscsi_bus_device> scsibus; required_device<nscsi_bus_device> scsibus;
required_device<ncr5390_device> scsi; required_device<ncr5390_device> scsi;

View File

@ -114,7 +114,7 @@ protected:
required_device<palette_device> m_pcgpalette; required_device<palette_device> m_pcgpalette;
required_device<mc68901_device> m_mfpdev; required_device<mc68901_device> m_mfpdev;
required_device<rp5c15_device> m_rtc; required_device<rp5c15_device> m_rtc;
required_device<scc8530_t> m_scc; required_device<scc8530_legacy_device> m_scc;
required_device<ym2151_device> m_ym2151; required_device<ym2151_device> m_ym2151;
required_device<i8255_device> m_ppi; required_device<i8255_device> m_ppi;
required_device<screen_device> m_screen; required_device<screen_device> m_screen;