device_add_mconfig up to devices/bus/h* (nw)

This commit is contained in:
Ivan Vangelista 2017-06-08 17:20:12 +02:00
parent 89f35e6fcc
commit f31b152080
112 changed files with 834 additions and 1418 deletions

View File

@ -85,47 +85,25 @@ ADDRESS_MAP_END
//-------------------------------------------------
// MACHINE_DRIVER( c1526 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( c1526 )
MACHINE_CONFIG_MEMBER( c1526_device::device_add_mconfig )
MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_4MHz/4)
MCFG_CPU_PROGRAM_MAP(c1526_mem)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor c1526_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( c1526 );
}
//-------------------------------------------------
// MACHINE_DRIVER( c4023 )
//-------------------------------------------------
static MACHINE_CONFIG_START( c4023 )
MACHINE_CONFIG_MEMBER( c4023_device::device_add_mconfig )
MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_4MHz/4)
MCFG_CPU_PROGRAM_MAP(c1526_mem)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor c4023_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( c4023 );
}
//-------------------------------------------------
// INPUT_PORTS( c1526 )
//-------------------------------------------------

View File

@ -43,12 +43,12 @@ public:
// construction/destruction
c1526_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
virtual const tiny_rom_entry *device_rom_region() const override;
protected:
// device_cbm_iec_interface overrides
void cbm_iec_atn(int state) override;
void cbm_iec_data(int state) override;
@ -64,12 +64,12 @@ public:
// construction/destruction
c4023_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
virtual const tiny_rom_entry *device_rom_region() const override;
protected:
// device_ieee488_interface overrides
virtual void ieee488_atn(int state) override;
virtual void ieee488_ifc(int state) override;

View File

@ -808,10 +808,10 @@ WRITE8_MEMBER( c1541_prologic_dos_classic_device::pia_pb_w )
//-------------------------------------------------
// MACHINE_DRIVER( c1541 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( c1541 )
MACHINE_CONFIG_MEMBER( c1541_device_base::device_add_mconfig )
MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16)
MCFG_CPU_PROGRAM_MAP(c1541_mem)
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
@ -840,89 +840,29 @@ static MACHINE_CONFIG_START( c1541 )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor c1541_device_base::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( c1541 );
}
//-------------------------------------------------
// MACHINE_DRIVER( c1541c )
//-------------------------------------------------
static MACHINE_CONFIG_START( c1541c )
MCFG_FRAGMENT_ADD(c1541)
MACHINE_CONFIG_MEMBER( c1541c_device::device_add_mconfig )
c1541_device_base::device_add_mconfig(config);
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor c1541c_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( c1541c );
}
//-------------------------------------------------
// MACHINE_DRIVER( c1541dd )
//-------------------------------------------------
static MACHINE_CONFIG_START( c1541dd )
MCFG_FRAGMENT_ADD(c1541)
MACHINE_CONFIG_MEMBER( c1541_dolphin_dos_device::device_add_mconfig )
c1541_device_base::device_add_mconfig(config);
MCFG_CPU_MODIFY(M6502_TAG)
MCFG_CPU_PROGRAM_MAP(c1541dd_mem)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor c1541_dolphin_dos_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( c1541dd );
}
//-------------------------------------------------
// MACHINE_DRIVER( c1541pd )
//-------------------------------------------------
static MACHINE_CONFIG_START( c1541pd )
MCFG_FRAGMENT_ADD(c1541)
MACHINE_CONFIG_MEMBER( c1541_professional_dos_v1_device::device_add_mconfig )
c1541_device_base::device_add_mconfig(config);
MCFG_CPU_MODIFY(M6502_TAG)
MCFG_CPU_PROGRAM_MAP(c1541pd_mem)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor c1541_professional_dos_v1_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( c1541pd );
}
//-------------------------------------------------
// MACHINE_DRIVER( c1541pdc )
//-------------------------------------------------
static MACHINE_CONFIG_START( c1541pdc )
MCFG_FRAGMENT_ADD(c1541)
MACHINE_CONFIG_MEMBER( c1541_prologic_dos_classic_device::device_add_mconfig )
c1541_device_base::device_add_mconfig(config);
MCFG_CPU_MODIFY(M6502_TAG)
MCFG_CPU_PROGRAM_MAP(c1541pdc_mem)
@ -939,17 +879,6 @@ static MACHINE_CONFIG_START( c1541pdc )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor c1541_prologic_dos_classic_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( c1541pdc );
}
//-------------------------------------------------
// INPUT_PORTS( c1541 )
//-------------------------------------------------
@ -1004,11 +933,11 @@ c1541_device_base::c1541_device_base(const machine_config &mconfig, device_type
device_t(mconfig, type, tag, owner, clock),
device_cbm_iec_interface(mconfig, *this),
device_c64_floppy_parallel_interface(mconfig, *this),
m_floppy(*this, C64H156_TAG":0:525ssqd"),
m_maincpu(*this, M6502_TAG),
m_via0(*this, M6522_0_TAG),
m_via1(*this, M6522_1_TAG),
m_ga(*this, C64H156_TAG),
m_floppy(*this, C64H156_TAG":0:525ssqd"),
m_address(*this, "ADDRESS"),
m_data_out(1),
m_via0_irq(CLEAR_LINE),

View File

@ -39,11 +39,37 @@ class c1541_device_base : public device_t,
public device_cbm_iec_interface,
public device_c64_floppy_parallel_interface
{
public:
protected:
// construction/destruction
c1541_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
// device_cbm_iec_interface overrides
virtual void cbm_iec_atn(int state) override;
virtual void cbm_iec_reset(int state) override;
// device_c64_floppy_parallel_interface overrides
virtual void parallel_data_w(uint8_t data) override;
virtual void parallel_strobe_w(int state) override;
required_device<floppy_image_device> m_floppy;
private:
enum
{
LED_POWER = 0,
LED_ACT
};
inline void set_iec_data();
DECLARE_WRITE_LINE_MEMBER( via0_irq_w );
virtual DECLARE_READ8_MEMBER( via0_pa_r );
DECLARE_WRITE8_MEMBER( via0_pa_w );
@ -58,35 +84,10 @@ public:
DECLARE_FLOPPY_FORMATS( floppy_formats );
protected:
// construction/destruction
c1541_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// device_cbm_iec_interface overrides
virtual void cbm_iec_atn(int state) override;
virtual void cbm_iec_reset(int state) override;
// device_c64_floppy_parallel_interface overrides
virtual void parallel_data_w(uint8_t data) override;
virtual void parallel_strobe_w(int state) override;
enum
{
LED_POWER = 0,
LED_ACT
};
inline void set_iec_data();
required_device<m6502_device> m_maincpu;
required_device<via6522_device> m_via0;
required_device<via6522_device> m_via1;
required_device<c64h156_device> m_ga;
required_device<floppy_image_device> m_floppy;
required_ioport m_address;
// IEC bus
@ -106,6 +107,7 @@ public:
// construction/destruction
c1540_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
};
@ -119,6 +121,7 @@ public:
// construction/destruction
c1541_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
};
@ -132,10 +135,12 @@ public:
// construction/destruction
c1541c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
// not really public
virtual DECLARE_READ8_MEMBER( via0_pa_r ) override;
};
@ -149,6 +154,7 @@ public:
// construction/destruction
c1541ii_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
};
@ -162,6 +168,7 @@ public:
// construction/destruction
sx1541_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
};
@ -175,6 +182,7 @@ public:
// construction/destruction
fsd1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
};
@ -188,6 +196,7 @@ public:
// construction/destruction
fsd2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
@ -204,6 +213,7 @@ public:
// construction/destruction
csd1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
};
@ -217,9 +227,10 @@ public:
// construction/destruction
c1541_dolphin_dos_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
};
@ -231,9 +242,10 @@ public:
// construction/destruction
c1541_professional_dos_v1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
};
@ -245,25 +257,27 @@ public:
// construction/destruction
c1541_prologic_dos_classic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
// not really public
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
DECLARE_READ8_MEMBER( pia_r );
DECLARE_WRITE8_MEMBER( pia_w );
DECLARE_WRITE8_MEMBER( pia_pa_w );
DECLARE_READ8_MEMBER( pia_pb_r );
DECLARE_WRITE8_MEMBER( pia_pb_w );
protected:
required_device<pia6821_device> m_pia;
required_device<output_latch_device> m_cent_data_out;
required_memory_region m_mmu_rom;
private:
DECLARE_WRITE8_MEMBER( pia_pa_w );
DECLARE_READ8_MEMBER( pia_pb_r );
DECLARE_WRITE8_MEMBER( pia_pb_w );
};
@ -275,6 +289,7 @@ public:
// construction/destruction
indus_gt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
};

View File

@ -597,10 +597,10 @@ static SLOT_INTERFACE_START( mini_chief_isa8_cards )
SLOT_INTERFACE_END
//-------------------------------------------------
// MACHINE_DRIVER( c1570 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( c1570 )
MACHINE_CONFIG_MEMBER( c1570_device::device_add_mconfig )
MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16)
MCFG_CPU_PROGRAM_MAP(c1571_mem)
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
@ -636,22 +636,7 @@ static MACHINE_CONFIG_START( c1570 )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor c1570_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( c1570 );
}
//-------------------------------------------------
// MACHINE_DRIVER( c1571 )
//-------------------------------------------------
static MACHINE_CONFIG_START( c1571 )
MACHINE_CONFIG_MEMBER( c1571_device::device_add_mconfig )
MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16)
MCFG_CPU_PROGRAM_MAP(c1571_mem)
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
@ -687,22 +672,7 @@ static MACHINE_CONFIG_START( c1571 )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor c1571_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( c1571 );
}
//-------------------------------------------------
// MACHINE_DRIVER( c1571cr )
//-------------------------------------------------
static MACHINE_CONFIG_START( c1571cr )
MACHINE_CONFIG_MEMBER( c1571cr_device::device_add_mconfig )
MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16)
MCFG_CPU_PROGRAM_MAP(c1571_mem)
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
@ -732,22 +702,7 @@ static MACHINE_CONFIG_START( c1571cr )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor c1571cr_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( c1571cr );
}
//-------------------------------------------------
// MACHINE_DRIVER( mini_chief )
//-------------------------------------------------
static MACHINE_CONFIG_START( mini_chief )
MACHINE_CONFIG_MEMBER( mini_chief_device::device_add_mconfig )
MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16)
MCFG_CPU_PROGRAM_MAP(mini_chief_mem)
MCFG_QUANTUM_PERFECT_CPU(M6502_TAG)
@ -787,17 +742,6 @@ static MACHINE_CONFIG_START( mini_chief )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor mini_chief_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( mini_chief );
}
//-------------------------------------------------
// INPUT_PORTS( c1571 )
//-------------------------------------------------

View File

@ -43,11 +43,6 @@ public:
// construction/destruction
c1571_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual ioport_constructor device_input_ports() const override;
DECLARE_WRITE_LINE_MEMBER( via0_irq_w );
DECLARE_READ8_MEMBER( via0_pa_r );
DECLARE_WRITE8_MEMBER( via0_pa_w );
@ -80,6 +75,11 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
// device_cbm_iec_interface overrides
virtual void cbm_iec_srq(int state) override;
virtual void cbm_iec_atn(int state) override;
@ -131,9 +131,10 @@ public:
// construction/destruction
c1570_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
};
@ -145,10 +146,12 @@ public:
// construction/destruction
c1571cr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
DECLARE_WRITE8_MEMBER( via0_pa_w );
DECLARE_WRITE8_MEMBER( via0_pb_w );
};
@ -162,10 +165,12 @@ public:
// construction/destruction
mini_chief_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
DECLARE_READ8_MEMBER( cia_pa_r );
DECLARE_WRITE8_MEMBER( cia_pa_w );
DECLARE_WRITE8_MEMBER( cia_pb_w );

View File

@ -262,10 +262,10 @@ FLOPPY_FORMATS_END
//-------------------------------------------------
// MACHINE_DRIVER( c1581 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( c1581 )
MACHINE_CONFIG_MEMBER( c1581_device::device_add_mconfig )
MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/8)
MCFG_CPU_PROGRAM_MAP(c1581_mem)
@ -283,17 +283,6 @@ static MACHINE_CONFIG_START( c1581 )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor c1581_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( c1581 );
}
//-------------------------------------------------
// INPUT_PORTS( c1581 )
//-------------------------------------------------

View File

@ -39,12 +39,33 @@ public:
// construction/destruction
c1581_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
c1581_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
// not really public
// device_cbm_iec_interface overrides
virtual void cbm_iec_srq(int state) override;
virtual void cbm_iec_atn(int state) override;
virtual void cbm_iec_data(int state) override;
virtual void cbm_iec_reset(int state) override;
private:
enum
{
LED_POWER = 0,
LED_ACT
};
void update_iec();
DECLARE_WRITE_LINE_MEMBER( cnt_w );
DECLARE_WRITE_LINE_MEMBER( sp_w );
DECLARE_READ8_MEMBER( cia_pa_r );
@ -54,27 +75,6 @@ public:
DECLARE_FLOPPY_FORMATS( floppy_formats );
protected:
c1581_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// device_cbm_iec_interface overrides
virtual void cbm_iec_srq(int state) override;
virtual void cbm_iec_atn(int state) override;
virtual void cbm_iec_data(int state) override;
virtual void cbm_iec_reset(int state) override;
enum
{
LED_POWER = 0,
LED_ACT
};
void update_iec();
required_device<cpu_device> m_maincpu;
required_device<mos6526_device> m_cia;
required_device<wd1772_device> m_fdc;

View File

@ -73,10 +73,10 @@ ADDRESS_MAP_END
//-------------------------------------------------
// MACHINE_DRIVER( cmd_hd )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( cmd_hd )
MACHINE_CONFIG_MEMBER( cmd_hd_device::device_add_mconfig )
MCFG_CPU_ADD(M6502_TAG, M6502, 2000000)
MCFG_CPU_PROGRAM_MAP(cmd_hd_mem)
@ -90,17 +90,6 @@ static MACHINE_CONFIG_START( cmd_hd )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor cmd_hd_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cmd_hd );
}
//**************************************************************************
// LIVE DEVICE

View File

@ -40,10 +40,6 @@ public:
// construction/destruction
cmd_hd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_WRITE8_MEMBER( led_w );
protected:
@ -51,6 +47,10 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
// device_cbm_iec_interface overrides
void cbm_iec_srq(int state) override;
void cbm_iec_atn(int state) override;

View File

@ -77,16 +77,13 @@ ROM_END
const tiny_rom_entry *fd2000_device::device_rom_region() const
{
switch (m_variant)
{
default:
return ROM_NAME( fd2000 );
case TYPE_FD4000:
return ROM_NAME( fd4000 );
}
return ROM_NAME( fd2000 );
}
const tiny_rom_entry *fd4000_device::device_rom_region() const
{
return ROM_NAME( fd4000 );
}
//-------------------------------------------------
// ADDRESS_MAP( fd2000_mem )
@ -209,11 +206,12 @@ FLOPPY_FORMATS_MEMBER( fd2000_device::floppy_formats )
FLOPPY_FORMATS_END
*/
//-------------------------------------------------
// MACHINE_DRIVER( fd2000 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( fd2000 )
MACHINE_CONFIG_MEMBER( fd2000_device::device_add_mconfig )
MCFG_CPU_ADD(G65SC02PI2_TAG, M65C02, XTAL_24MHz/12)
MCFG_CPU_PROGRAM_MAP(fd2000_mem)
@ -229,11 +227,7 @@ static MACHINE_CONFIG_START( fd2000 )
MACHINE_CONFIG_END
//-------------------------------------------------
// MACHINE_DRIVER( fd4000 )
//-------------------------------------------------
static MACHINE_CONFIG_START( fd4000 )
MACHINE_CONFIG_MEMBER( fd4000_device::device_add_mconfig )
MCFG_CPU_ADD(R65C02P4_TAG, M65C02, XTAL_24MHz/6)
MCFG_CPU_PROGRAM_MAP(fd4000_mem)
@ -249,24 +243,6 @@ static MACHINE_CONFIG_START( fd4000 )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor fd2000_device::device_mconfig_additions() const
{
switch (m_variant)
{
default:
return MACHINE_CONFIG_NAME( fd2000 );
case TYPE_FD4000:
return MACHINE_CONFIG_NAME( fd4000 );
}
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************
@ -276,17 +252,16 @@ machine_config_constructor fd2000_device::device_mconfig_additions() const
//-------------------------------------------------
fd2000_device::fd2000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: fd2000_device(mconfig, FD2000, tag, owner, clock, TYPE_FD2000)
: fd2000_device(mconfig, FD2000, tag, owner, clock)
{
}
fd2000_device::fd2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant)
fd2000_device::fd2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, type, tag, owner, clock)
, device_cbm_iec_interface(mconfig, *this)
, m_maincpu(*this, R65C02P4_TAG)
, m_fdc(*this, PC8477AV1_TAG)
, m_floppy0(*this, PC8477AV1_TAG":0")
, m_variant(variant)
, m_maincpu(*this, G65SC02PI2_TAG)
, m_fdc(*this, DP8473V_TAG)
, m_floppy0(*this, DP8473V_TAG":0")
{
}
@ -296,8 +271,11 @@ fd2000_device::fd2000_device(const machine_config &mconfig, device_type type, co
//-------------------------------------------------
fd4000_device::fd4000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: fd2000_device(mconfig, FD4000, tag, owner, clock, TYPE_FD4000)
: fd2000_device(mconfig, FD4000, tag, owner, clock)
{
m_maincpu.set_tag(R65C02P4_TAG);
m_fdc.set_tag(PC8477AV1_TAG);
m_floppy0.set_tag(PC8477AV1_TAG":0");
}

View File

@ -40,10 +40,6 @@ public:
// construction/destruction
fd2000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_READ8_MEMBER( via_pa_r );
DECLARE_WRITE8_MEMBER( via_pa_w );
DECLARE_READ8_MEMBER( via_pb_r );
@ -52,18 +48,16 @@ public:
//DECLARE_FLOPPY_FORMATS( floppy_formats );
protected:
enum
{
TYPE_FD2000,
TYPE_FD4000
};
fd2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t variant);
fd2000_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
// device_cbm_iec_interface overrides
void cbm_iec_srq(int state) override;
void cbm_iec_atn(int state) override;
@ -73,8 +67,6 @@ protected:
required_device<m65c02_device> m_maincpu;
required_device<upd765_family_device> m_fdc;
required_device<floppy_connector> m_floppy0;
int m_variant;
};
@ -85,6 +77,10 @@ class fd4000_device : public fd2000_device
public:
// construction/destruction
fd4000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
};

View File

@ -120,10 +120,10 @@ ADDRESS_MAP_END
//-------------------------------------------------
// MACHINE_DRIVER( interpod )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( interpod )
MACHINE_CONFIG_MEMBER( interpod_device::device_add_mconfig )
MCFG_CPU_ADD(R6502_TAG, M6502, 1000000)
MCFG_CPU_PROGRAM_MAP(interpod_mem)
@ -135,17 +135,6 @@ static MACHINE_CONFIG_START( interpod )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor interpod_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( interpod );
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************

View File

@ -49,15 +49,15 @@ public:
// construction/destruction
interpod_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
required_device<cpu_device> m_maincpu;
required_device<via6522_device> m_via;
required_device<mos6532_new_device> m_riot;

View File

@ -65,26 +65,15 @@ ADDRESS_MAP_END
//-------------------------------------------------
// MACHINE_DRIVER( serial_box )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( serial_box )
MACHINE_CONFIG_MEMBER( serial_box_device::device_add_mconfig )
MCFG_CPU_ADD(M6502_TAG, M65C02, XTAL_4MHz/4)
MCFG_CPU_PROGRAM_MAP(serial_box_mem)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor serial_box_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( serial_box );
}
//**************************************************************************
// LIVE DEVICE

View File

@ -36,15 +36,15 @@ public:
// construction/destruction
serial_box_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
// device_cbm_iec_interface overrides
void cbm_iec_atn(int state) override;
void cbm_iec_data(int state) override;

View File

@ -56,27 +56,16 @@ ADDRESS_MAP_END
//-------------------------------------------------
// MACHINE_DRIVER( vic1515 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( vic1515 )
MACHINE_CONFIG_MEMBER( vic1515_device::device_add_mconfig )
MCFG_CPU_ADD("maincpu", I8039, XTAL_6MHz)
MCFG_CPU_PROGRAM_MAP(vic1515_mem)
MCFG_CPU_IO_MAP(vic1515_io)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor vic1515_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( vic1515 );
}
//-------------------------------------------------
// INPUT_PORTS( vic1515 )
//-------------------------------------------------

View File

@ -28,16 +28,16 @@ public:
// construction/destruction
vic1515_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual ioport_constructor device_input_ports() const override;
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
// device_cbm_iec_interface overrides
void cbm_iec_atn(int state) override;
void cbm_iec_data(int state) override;

View File

@ -90,26 +90,15 @@ ADDRESS_MAP_END
//-------------------------------------------------
// MACHINE_DRIVER( vic1520 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( vic1520 )
MACHINE_CONFIG_MEMBER( vic1520_device::device_add_mconfig )
MCFG_CPU_ADD(M6500_1_TAG, M6502, XTAL_2MHz) // M6500/1
MCFG_CPU_PROGRAM_MAP(vic1520_mem)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor vic1520_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( vic1520 );
}
//-------------------------------------------------
// INPUT_PORTS( vic1520 )
//-------------------------------------------------

View File

@ -28,16 +28,16 @@ public:
// construction/destruction
vic1520_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual ioport_constructor device_input_ports() const override;
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
// device_cbm_iec_interface overrides
void cbm_iec_atn(int state) override;
void cbm_iec_data(int state) override;

View File

@ -95,10 +95,10 @@ ADDRESS_MAP_END
//-------------------------------------------------
// MACHINE_DRIVER( comxpl80 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( comxpl80 )
MACHINE_CONFIG_MEMBER( comx_pl80_device::device_add_mconfig )
MCFG_CPU_ADD(CX005_TAG, M6805, 4000000) // CX005: some kind of MC6805/MC68HC05 clone
MCFG_CPU_PROGRAM_MAP(comxpl80_mem)
MCFG_CPU_IO_MAP(comxpl80_io)
@ -106,17 +106,6 @@ static MACHINE_CONFIG_START( comxpl80 )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor comx_pl80_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( comxpl80 );
}
//-------------------------------------------------
// INPUT_PORTS( comxpl80 )
//-------------------------------------------------

View File

@ -29,11 +29,6 @@ public:
// construction/destruction
comx_pl80_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual ioport_constructor device_input_ports() const override;
// not really public
DECLARE_WRITE8_MEMBER( pa_w );
DECLARE_WRITE8_MEMBER( pb_w );
@ -45,6 +40,11 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) override { if (state) m_data |= 0x01; else m_data &= ~0x01; }
virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) override { if (state) m_data |= 0x02; else m_data &= ~0x02; }
virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) override { if (state) m_data |= 0x04; else m_data &= ~0x04; }

View File

@ -18,14 +18,6 @@
// device type definition
DEFINE_DEVICE_TYPE(CENTRONICS_COVOX, centronics_covox_device, "covox", "Covox Speech Thing")
static MACHINE_CONFIG_START( covox )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/***************************************************************************
IMPLEMENTATION
@ -43,14 +35,16 @@ centronics_covox_device::centronics_covox_device(const machine_config &mconfig,
}
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor centronics_covox_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( covox );
}
MACHINE_CONFIG_MEMBER( centronics_covox_device::device_add_mconfig )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
void centronics_covox_device::device_start()
{
@ -70,16 +64,6 @@ void centronics_covox_device::update_dac()
// device type definition
DEFINE_DEVICE_TYPE(CENTRONICS_COVOX_STEREO, centronics_covox_stereo_device, "covox_stereo", "Covox (Stereo-in-1)")
static MACHINE_CONFIG_START( covox_stereo )
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ldac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/***************************************************************************
IMPLEMENTATION
@ -100,14 +84,18 @@ centronics_covox_stereo_device::centronics_covox_stereo_device(const machine_con
}
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor centronics_covox_stereo_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( covox_stereo );
}
MACHINE_CONFIG_MEMBER( centronics_covox_stereo_device::device_add_mconfig )
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ldac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.5) // unknown DAC
MCFG_SOUND_ADD("rdac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE_EX(0, "ldac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "ldac", -1.0, DAC_VREF_NEG_INPUT)
MCFG_SOUND_ROUTE_EX(0, "rdac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "rdac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
void centronics_covox_stereo_device::device_start()
{

View File

@ -23,13 +23,13 @@ public:
// construction/destruction
centronics_covox_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
// device-level overrides
virtual void device_start() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) override { if (state) m_data |= 0x01; else m_data &= ~0x01; update_dac(); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) override { if (state) m_data |= 0x02; else m_data &= ~0x02; update_dac(); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) override { if (state) m_data |= 0x04; else m_data &= ~0x04; update_dac(); }
@ -59,13 +59,13 @@ public:
// construction/destruction
centronics_covox_stereo_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
// device-level overrides
virtual void device_start() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
virtual DECLARE_WRITE_LINE_MEMBER( input_strobe ) override { m_strobe = state; update_dac(); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) override { if (state) m_data |= 0x01; else m_data &= ~0x01; update_dac(); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) override { if (state) m_data |= 0x02; else m_data &= ~0x02; update_dac(); }

View File

@ -18,14 +18,6 @@
// device type definition
DEFINE_DEVICE_TYPE(CENTRONICS_DIGIBLASTER, centronics_digiblaster_device, "digiblst", "Digiblaster (DIY)")
static MACHINE_CONFIG_START( digiblst )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
/***************************************************************************
IMPLEMENTATION
@ -43,14 +35,16 @@ centronics_digiblaster_device::centronics_digiblaster_device(const machine_confi
}
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor centronics_digiblaster_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( digiblst );
}
MACHINE_CONFIG_MEMBER( centronics_digiblaster_device::device_add_mconfig )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
MACHINE_CONFIG_END
void centronics_digiblaster_device::device_start()
{

View File

@ -29,13 +29,13 @@ public:
// construction/destruction
centronics_digiblaster_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
// device-level overrides
virtual void device_start() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) override { if (state) m_data |= 0x01; else m_data &= ~0x01; update_dac(); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) override { if (state) m_data |= 0x02; else m_data &= ~0x02; update_dac(); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) override { if (state) m_data |= 0x04; else m_data &= ~0x04; update_dac(); }

View File

@ -212,10 +212,10 @@ ADDRESS_MAP_END
//-------------------------------------------------
// MACHINE_DRIVER( epson_ex800 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( epson_ex800 )
MACHINE_CONFIG_MEMBER( epson_ex800_device::device_add_mconfig )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", UPD7810, 12000000) /* 12 MHz? */
MCFG_CPU_PROGRAM_MAP(ex800_mem)
@ -235,17 +235,6 @@ static MACHINE_CONFIG_START( epson_ex800 )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor epson_ex800_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( epson_ex800 );
}
/* The ON LINE switch is directly connected to the INT1 input of the CPU */
INPUT_CHANGED_MEMBER(epson_ex800_device::online_switch)
{

View File

@ -30,17 +30,6 @@ public:
// construction/destruction
epson_ex800_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual ioport_constructor device_input_ports() const override;
DECLARE_READ8_MEMBER(porta_r);
DECLARE_READ8_MEMBER(portb_r);
DECLARE_READ8_MEMBER(portc_r);
DECLARE_WRITE8_MEMBER(porta_w);
DECLARE_WRITE8_MEMBER(portb_w);
DECLARE_WRITE8_MEMBER(portc_w);
DECLARE_READ8_MEMBER(devsel_r);
DECLARE_WRITE8_MEMBER(devsel_w);
DECLARE_READ8_MEMBER(gate5a_r);
@ -57,7 +46,19 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
private:
DECLARE_READ8_MEMBER(porta_r);
DECLARE_READ8_MEMBER(portb_r);
DECLARE_READ8_MEMBER(portc_r);
DECLARE_WRITE8_MEMBER(porta_w);
DECLARE_WRITE8_MEMBER(portb_w);
DECLARE_WRITE8_MEMBER(portc_w);
required_device<cpu_device> m_maincpu;
required_device<beep_device> m_beeper;

View File

@ -63,10 +63,10 @@ ADDRESS_MAP_END
//-------------------------------------------------
// MACHINE_DRIVER( epson_lx800 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( epson_lx800 )
MACHINE_CONFIG_MEMBER( epson_lx800_device::device_add_mconfig )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", UPD7810, XTAL_14_7456MHz)
MCFG_CPU_PROGRAM_MAP(lx800_mem)
@ -98,17 +98,6 @@ static MACHINE_CONFIG_START( epson_lx800 )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor epson_lx800_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( epson_lx800 );
}
//-------------------------------------------------
// INPUT_PORTS( epson_lx800 )
//-------------------------------------------------

View File

@ -31,25 +31,10 @@ public:
// construction/destruction
epson_lx800_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual ioport_constructor device_input_ports() const override;
DECLARE_READ8_MEMBER(porta_r);
DECLARE_WRITE8_MEMBER(porta_w);
DECLARE_READ8_MEMBER(portc_r);
DECLARE_WRITE8_MEMBER(portc_w);
DECLARE_READ8_MEMBER(centronics_data_r);
DECLARE_WRITE_LINE_MEMBER(centronics_pe_w);
DECLARE_WRITE_LINE_MEMBER(paperempty_led_w);
DECLARE_WRITE_LINE_MEMBER(reset_w);
DECLARE_READ_LINE_MEMBER(an0_r);
DECLARE_READ_LINE_MEMBER(an1_r);
DECLARE_READ_LINE_MEMBER(an2_r);
DECLARE_READ_LINE_MEMBER(an3_r);
DECLARE_READ_LINE_MEMBER(an4_r);
DECLARE_READ_LINE_MEMBER(an5_r);
protected:
epson_lx800_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
@ -58,7 +43,24 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
private:
DECLARE_READ8_MEMBER(porta_r);
DECLARE_WRITE8_MEMBER(porta_w);
DECLARE_READ8_MEMBER(portc_r);
DECLARE_WRITE8_MEMBER(portc_w);
DECLARE_READ_LINE_MEMBER(an0_r);
DECLARE_READ_LINE_MEMBER(an1_r);
DECLARE_READ_LINE_MEMBER(an2_r);
DECLARE_READ_LINE_MEMBER(an3_r);
DECLARE_READ_LINE_MEMBER(an4_r);
DECLARE_READ_LINE_MEMBER(an5_r);
required_device<cpu_device> m_maincpu;
required_device<beep_device> m_beep;
};

View File

@ -106,10 +106,10 @@ ADDRESS_MAP_END
//-------------------------------------------------
// MACHINE_DRIVER( epson_lx810l )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( epson_lx810l )
MACHINE_CONFIG_MEMBER( epson_lx810l_device::device_add_mconfig )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", UPD7810, XTAL_14_7456MHz)
MCFG_CPU_PROGRAM_MAP(lx810l_mem)
@ -172,16 +172,6 @@ static MACHINE_CONFIG_START( epson_lx810l )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor epson_lx810l_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( epson_lx810l );
}
/***************************************************************************
INPUT PORTS

View File

@ -41,11 +41,42 @@ public:
// construction/destruction
epson_lx810l_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
/* fake memory I/O to get past memory reset check */
DECLARE_READ8_MEMBER(fakemem_r);
DECLARE_WRITE8_MEMBER(fakemem_w);
/* Centronics stuff */
virtual DECLARE_WRITE_LINE_MEMBER( input_strobe ) override { if (m_e05a30) m_e05a30->centronics_input_strobe(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) override { if (m_e05a30) m_e05a30->centronics_input_data0(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) override { if (m_e05a30) m_e05a30->centronics_input_data1(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) override { if (m_e05a30) m_e05a30->centronics_input_data2(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data3 ) override { if (m_e05a30) m_e05a30->centronics_input_data3(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data4 ) override { if (m_e05a30) m_e05a30->centronics_input_data4(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data5 ) override { if (m_e05a30) m_e05a30->centronics_input_data5(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data6 ) override { if (m_e05a30) m_e05a30->centronics_input_data6(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data7 ) override { if (m_e05a30) m_e05a30->centronics_input_data7(state); }
/* Panel buttons */
DECLARE_INPUT_CHANGED_MEMBER(online_sw);
/* Video hardware (simulates paper) */
#define uabs(x) ((x) > 0 ? (x) : -(x))
unsigned int bitmap_line(int i) { return ((uabs(m_pf_pos_abs) / 6) + i) % m_bitmap.height(); }
protected:
epson_lx810l_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
private:
DECLARE_READ8_MEMBER(porta_r);
DECLARE_WRITE8_MEMBER(porta_w);
DECLARE_READ8_MEMBER(portb_r);
@ -66,49 +97,22 @@ public:
DECLARE_READ8_MEMBER(an6_r);
DECLARE_READ8_MEMBER(an7_r);
/* fake memory I/O to get past memory reset check */
DECLARE_READ8_MEMBER(fakemem_r);
DECLARE_WRITE8_MEMBER(fakemem_w);
/* GATE ARRAY */
DECLARE_WRITE16_MEMBER(printhead);
DECLARE_WRITE8_MEMBER(pf_stepper);
DECLARE_WRITE8_MEMBER(cr_stepper);
DECLARE_WRITE_LINE_MEMBER(e05a30_ready);
/* Centronics stuff */
virtual DECLARE_WRITE_LINE_MEMBER( input_strobe ) override { if (m_e05a30) m_e05a30->centronics_input_strobe(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data0 ) override { if (m_e05a30) m_e05a30->centronics_input_data0(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data1 ) override { if (m_e05a30) m_e05a30->centronics_input_data1(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data2 ) override { if (m_e05a30) m_e05a30->centronics_input_data2(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data3 ) override { if (m_e05a30) m_e05a30->centronics_input_data3(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data4 ) override { if (m_e05a30) m_e05a30->centronics_input_data4(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data5 ) override { if (m_e05a30) m_e05a30->centronics_input_data5(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data6 ) override { if (m_e05a30) m_e05a30->centronics_input_data6(state); }
virtual DECLARE_WRITE_LINE_MEMBER( input_data7 ) override { if (m_e05a30) m_e05a30->centronics_input_data7(state); }
DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_ack) { output_ack(state); }
DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_busy) { output_busy(state); }
DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_perror) { output_perror(state); }
DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_fault) { output_fault(state); }
DECLARE_WRITE_LINE_MEMBER(e05a30_centronics_select) { output_select(state); }
/* Panel buttons */
DECLARE_INPUT_CHANGED_MEMBER(online_sw);
/* Video hardware (simulates paper) */
uint32_t screen_update_lx810l(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
#define uabs(x) ((x) > 0 ? (x) : -(x))
unsigned int bitmap_line(int i) { return ((uabs(m_pf_pos_abs) / 6) + i) % m_bitmap.height(); }
protected:
epson_lx810l_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
private:
required_device<cpu_device> m_maincpu;
required_device<stepper_device> m_pf_stepper;
required_device<stepper_device> m_cr_stepper;

View File

@ -45,26 +45,16 @@ ADDRESS_MAP_END
//-------------------------------------------------
// MACHINE_DRIVER( nec_p72 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( nec_p72 )
MACHINE_CONFIG_MEMBER( nec_p72_device::device_add_mconfig )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", V33, XTAL_16MHz/2) /* TODO it's actually a V40 */
MCFG_CPU_PROGRAM_MAP(p72_mem)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor nec_p72_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( nec_p72 );
}
//-------------------------------------------------
// device_start - device-specific startup

View File

@ -22,16 +22,16 @@ public:
// construction/destruction
nec_p72_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
nec_p72_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void device_start() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
required_device<cpu_device> m_maincpu;
};

View File

@ -11,12 +11,6 @@
DEFINE_DEVICE_TYPE(CENTRONICS_PRINTER, centronics_printer_device, "centronics_printer", "Centronics Printer")
static MACHINE_CONFIG_START( centronics_printer )
MCFG_DEVICE_ADD("printer", PRINTER, 0)
MCFG_PRINTER_ONLINE_CB(WRITELINE(centronics_printer_device, printer_online))
MACHINE_CONFIG_END
/***************************************************************************
IMPLEMENTATION
***************************************************************************/
@ -34,14 +28,14 @@ centronics_printer_device::centronics_printer_device(const machine_config &mconf
{
}
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor centronics_printer_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( centronics_printer );
}
MACHINE_CONFIG_MEMBER( centronics_printer_device::device_add_mconfig )
MCFG_DEVICE_ADD("printer", PRINTER, 0)
MCFG_PRINTER_ONLINE_CB(WRITELINE(centronics_printer_device, printer_online))
MACHINE_CONFIG_END
/*-------------------------------------------------
printer_online - callback that

View File

@ -28,16 +28,15 @@ public:
virtual DECLARE_WRITE_LINE_MEMBER( input_data7 ) override { if (state) m_data |= 0x80; else m_data &= ~0x80; }
virtual DECLARE_WRITE_LINE_MEMBER( input_init ) override;
DECLARE_WRITE_LINE_MEMBER( printer_online );
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
private:
DECLARE_WRITE_LINE_MEMBER( printer_online );
enum
{

View File

@ -66,11 +66,10 @@ const tiny_rom_entry *cgenie_fdc_device::device_rom_region() const
}
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( cgenie_fdc )
MACHINE_CONFIG_MEMBER( cgenie_fdc_device::device_add_mconfig )
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer", cgenie_fdc_device, timer_callback, attotime::from_msec(25))
MCFG_FD1793_ADD("fd1793", XTAL_1MHz)
@ -90,11 +89,6 @@ static MACHINE_CONFIG_START( cgenie_fdc )
MCFG_SOFTWARE_LIST_ADD("rom_list", "cgenie_flop_rom")
MACHINE_CONFIG_END
machine_config_constructor cgenie_fdc_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cgenie_fdc );
}
//**************************************************************************
// LIVE DEVICE

View File

@ -32,23 +32,23 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(timer_callback);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(socket_load);
DECLARE_WRITE_LINE_MEMBER(intrq_w);
DECLARE_READ8_MEMBER(irq_r);
DECLARE_WRITE8_MEMBER(select_w);
DECLARE_WRITE8_MEMBER(command_w);
DECLARE_FLOPPY_FORMATS(floppy_formats);
protected:
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
private:
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(socket_load);
DECLARE_WRITE_LINE_MEMBER(intrq_w);
DECLARE_FLOPPY_FORMATS(floppy_formats);
required_device<fd1793_device> m_fdc;
required_device<floppy_connector> m_floppy0;
required_device<floppy_connector> m_floppy1;

View File

@ -24,11 +24,10 @@
DEFINE_DEVICE_TYPE(CGENIE_PRINTER, cgenie_printer_device, "cgenie_printer", "Printer Interface EG2012")
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( cgenie_printer )
MACHINE_CONFIG_MEMBER( cgenie_printer_device::device_add_mconfig )
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(cgenie_printer_device, busy_w))
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(cgenie_printer_device, perror_w))
@ -37,11 +36,6 @@ static MACHINE_CONFIG_START( cgenie_printer )
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("latch", "centronics")
MACHINE_CONFIG_END
machine_config_constructor cgenie_printer_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cgenie_printer );
}
//**************************************************************************
// LIVE DEVICE

View File

@ -27,13 +27,8 @@ public:
// construction/destruction
cgenie_printer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_WRITE_LINE_MEMBER(busy_w);
DECLARE_WRITE_LINE_MEMBER(perror_w);
DECLARE_WRITE_LINE_MEMBER(select_w);
DECLARE_WRITE_LINE_MEMBER(fault_w);
protected:
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
@ -42,6 +37,11 @@ protected:
virtual void pb_w(uint8_t data) override;
private:
DECLARE_WRITE_LINE_MEMBER(busy_w);
DECLARE_WRITE_LINE_MEMBER(perror_w);
DECLARE_WRITE_LINE_MEMBER(select_w);
DECLARE_WRITE_LINE_MEMBER(fault_w);
required_device<centronics_device> m_centronics;
required_device<output_latch_device> m_latch;

View File

@ -72,10 +72,10 @@ UPD7220_DISPLAY_PIXELS_MEMBER( compis_uhrg_device::display_pixels )
//-------------------------------------------------
// MACHINE_CONFIG_START( hrg )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( hrg )
MACHINE_CONFIG_MEMBER( compis_hrg_device::device_add_mconfig )
MCFG_SCREEN_ADD_MONOCHROME(SCREEN_TAG, RASTER, rgb_t::green())
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_REFRESH_RATE(50)
@ -93,22 +93,7 @@ static MACHINE_CONFIG_START( hrg )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor compis_hrg_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( hrg );
}
//-------------------------------------------------
// MACHINE_CONFIG_START( uhrg )
//-------------------------------------------------
static MACHINE_CONFIG_START( uhrg )
MACHINE_CONFIG_MEMBER( compis_uhrg_device::device_add_mconfig )
MCFG_SCREEN_ADD_MONOCHROME(SCREEN_TAG, RASTER, rgb_t::green())
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_REFRESH_RATE(50)
@ -126,18 +111,6 @@ static MACHINE_CONFIG_START( uhrg )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor compis_uhrg_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( uhrg );
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************

View File

@ -29,11 +29,6 @@ public:
// construction/destruction
compis_hrg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
UPD7220_DISPLAY_PIXELS_MEMBER( display_pixels );
protected:
compis_hrg_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
@ -41,6 +36,9 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
// device_compis_graphics_card_interface overrides
virtual uint8_t pcs6_6_r(address_space &space, offs_t offset) override;
virtual void pcs6_6_w(address_space &space, offs_t offset, uint8_t data) override;
@ -50,6 +48,9 @@ protected:
required_shared_ptr<uint16_t> m_video_ram;
uint8_t m_unk_video;
private:
UPD7220_DISPLAY_PIXELS_MEMBER( display_pixels );
};
@ -61,9 +62,11 @@ public:
// construction/destruction
compis_uhrg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
UPD7220_DISPLAY_PIXELS_MEMBER( display_pixels );
};

View File

@ -47,25 +47,14 @@ SLOT_INTERFACE_END
//-------------------------------------------------
// MACHINE_DRIVER( compucolor_floppy )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( compucolor_floppy )
MACHINE_CONFIG_MEMBER( compucolor_floppy_device::device_add_mconfig )
MCFG_FLOPPY_DRIVE_ADD("floppy", compucolor_floppies, "525sssd", compucolor_floppy_device::floppy_formats)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor compucolor_floppy_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( compucolor_floppy );
}
//**************************************************************************
// LIVE DEVICE

View File

@ -74,16 +74,14 @@ public:
// construction/destruction
compucolor_floppy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_FLOPPY_FORMATS( floppy_formats );
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
// device_serial_port_interface overrides
virtual void tx(uint8_t state);
@ -93,6 +91,8 @@ protected:
virtual void select_w(int state) override;
private:
DECLARE_FLOPPY_FORMATS( floppy_formats );
required_device<floppy_image_device> m_floppy;
bool read_bit();

View File

@ -133,10 +133,10 @@ GFXDECODE_END
//-------------------------------------------------
// MACHINE_CONFIG_START( comx_clm )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( comx_clm )
MACHINE_CONFIG_MEMBER( comx_clm_device::device_add_mconfig )
MCFG_SCREEN_ADD_MONOCHROME(MC6845_SCREEN_TAG, RASTER, rgb_t::white())
MCFG_SCREEN_UPDATE_DEVICE(MC6845_TAG, mc6845_device, screen_update)
MCFG_SCREEN_SIZE(80*8, 24*8)
@ -154,18 +154,6 @@ static MACHINE_CONFIG_START( comx_clm )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor comx_clm_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( comx_clm );
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************

View File

@ -30,24 +30,23 @@ public:
// construction/destruction
comx_clm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
// not really public
MC6845_UPDATE_ROW( crtc_update_row );
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
// device_comx_expansion_card_interface overrides
virtual int comx_ef4_r() override;
virtual uint8_t comx_mrd_r(address_space &space, offs_t offset, int *extrom) override;
virtual void comx_mwr_w(address_space &space, offs_t offset, uint8_t data) override;
private:
MC6845_UPDATE_ROW( crtc_update_row );
required_device<mc6845_device> m_crtc;
required_device<palette_device> m_palette;
required_memory_region m_rom;

View File

@ -95,10 +95,10 @@ const tiny_rom_entry *comx_eb_device::device_rom_region() const
//-------------------------------------------------
// MACHINE_CONFIG_START( comx_eb )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( comx_eb )
MACHINE_CONFIG_MEMBER( comx_eb_device::device_add_mconfig )
MCFG_COMX_EXPANSION_SLOT_ADD(SLOT1_TAG, comx_expansion_cards, "fd")
MCFG_COMX_EXPANSION_SLOT_IRQ_CALLBACK(WRITELINE(comx_eb_device, slot1_irq_w))
MCFG_COMX_EXPANSION_SLOT_ADD(SLOT2_TAG, comx_expansion_cards, "clm")
@ -110,17 +110,6 @@ static MACHINE_CONFIG_START( comx_eb )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor comx_eb_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( comx_eb );
}
//**************************************************************************
// LIVE DEVICE

View File

@ -36,11 +36,6 @@ public:
// construction/destruction
comx_eb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_WRITE_LINE_MEMBER( slot1_irq_w ) { m_irq[0] = state; set_irq(); }
DECLARE_WRITE_LINE_MEMBER( slot2_irq_w ) { m_irq[1] = state; set_irq(); }
DECLARE_WRITE_LINE_MEMBER( slot3_irq_w ) { m_irq[2] = state; set_irq(); }
DECLARE_WRITE_LINE_MEMBER( slot4_irq_w ) { m_irq[3] = state; set_irq(); }
protected:
// device-level overrides
virtual void device_start() override;
@ -48,7 +43,7 @@ protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
// device_comx_expansion_card_interface overrides
virtual int comx_ef4_r() override;
@ -61,6 +56,11 @@ protected:
void set_irq() { m_slot->irq_w(m_irq[0] || m_irq[1] || m_irq[2] || m_irq[3]); }
private:
DECLARE_WRITE_LINE_MEMBER( slot1_irq_w ) { m_irq[0] = state; set_irq(); }
DECLARE_WRITE_LINE_MEMBER( slot2_irq_w ) { m_irq[1] = state; set_irq(); }
DECLARE_WRITE_LINE_MEMBER( slot3_irq_w ) { m_irq[2] = state; set_irq(); }
DECLARE_WRITE_LINE_MEMBER( slot4_irq_w ) { m_irq[3] = state; set_irq(); }
required_memory_region m_rom;
comx_expansion_slot_device *m_expansion_slot[MAX_EB_SLOTS];

View File

@ -92,28 +92,17 @@ SLOT_INTERFACE_END
//-------------------------------------------------
// MACHINE_CONFIG_START( comx_fd )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( comx_fd )
MACHINE_CONFIG_MEMBER( comx_fd_device::device_add_mconfig )
MCFG_WD1770_ADD(WD1770_TAG, XTAL_8MHz)
MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":0", comx_fd_floppies, "525sd35t", comx_fd_device::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":1", comx_fd_floppies, nullptr, comx_fd_device::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":1", comx_fd_floppies, nullptr, comx_fd_device::floppy_formats)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor comx_fd_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( comx_fd );
}
//**************************************************************************
// LIVE DEVICE

View File

@ -30,17 +30,15 @@ public:
// construction/destruction
comx_fd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_FLOPPY_FORMATS( floppy_formats );
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
// device_comx_expansion_card_interface overrides
virtual int comx_ef4_r() override;
virtual void comx_q_w(int state) override;
@ -49,6 +47,8 @@ protected:
virtual void comx_io_w(address_space &space, offs_t offset, uint8_t data) override;
private:
DECLARE_FLOPPY_FORMATS( floppy_formats );
// internal state
required_device<wd1770_device> m_fdc;
required_device<floppy_connector> m_floppy0;

View File

@ -52,10 +52,10 @@ const tiny_rom_entry *comx_prn_device::device_rom_region() const
//-------------------------------------------------
// MACHINE_CONFIG_START( comx_prn )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( comx_prn )
MACHINE_CONFIG_MEMBER( comx_prn_device::device_add_mconfig )
MCFG_CENTRONICS_ADD(CENTRONICS_TAG, centronics_devices, "printer")
MCFG_CENTRONICS_ACK_HANDLER(DEVWRITELINE("cent_status_in", input_buffer_device, write_bit0))
MCFG_CENTRONICS_BUSY_HANDLER(DEVWRITELINE("cent_status_in", input_buffer_device, write_bit1))
@ -67,17 +67,6 @@ static MACHINE_CONFIG_START( comx_prn )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor comx_prn_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( comx_prn );
}
//**************************************************************************
// LIVE DEVICE

View File

@ -29,15 +29,15 @@ public:
// construction/destruction
comx_prn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
// device_comx_expansion_card_interface overrides
virtual uint8_t comx_mrd_r(address_space &space, offs_t offset, int *extrom) override;
virtual uint8_t comx_io_r(address_space &space, offs_t offset) override;

View File

@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Barry Rodewald
/*
* amdrum.c
* amdrum.cpp
*
* Created on: 23/08/2014
*/
@ -20,7 +20,7 @@
DEFINE_DEVICE_TYPE(CPC_AMDRUM, cpc_amdrum_device, "cpc_amdrum", "Amdrum")
static MACHINE_CONFIG_START( cpc_amdrum )
MACHINE_CONFIG_MEMBER( cpc_amdrum_device::device_add_mconfig )
MCFG_SPEAKER_STANDARD_MONO("speaker")
MCFG_SOUND_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) // unknown DAC
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
@ -28,10 +28,6 @@ static MACHINE_CONFIG_START( cpc_amdrum )
// no pass-through
MACHINE_CONFIG_END
machine_config_constructor cpc_amdrum_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cpc_amdrum );
}
//**************************************************************************
// LIVE DEVICE

View File

@ -27,15 +27,16 @@ public:
// construction/destruction
cpc_amdrum_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_WRITE8_MEMBER(dac_w);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
private:
cpc_expansion_slot_device *m_slot;

View File

@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Barry Rodewald
/*
* cpc_pds.c -- CPC interface hardware for the Programmers Development System
* cpc_pds.cpp -- CPC interface hardware for the Programmers Development System
*
* Created on: 10/02/2014
*/
@ -17,19 +17,13 @@
DEFINE_DEVICE_TYPE(CPC_PDS, cpc_pds_device, "cpc_pds", "Programmers Development System (CPC Target)")
static MACHINE_CONFIG_START( cpc_pds )
MACHINE_CONFIG_MEMBER( cpc_pds_device::device_add_mconfig )
MCFG_DEVICE_ADD("pio", Z80PIO, XTAL_4MHz) // no clock on the PCB, so will presume that it uses the CPC's clock
// no pass-through seen on remake PCBs, unknown if actual hardware had a pass-through port or not
MACHINE_CONFIG_END
machine_config_constructor cpc_pds_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cpc_pds );
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************

View File

@ -36,9 +36,6 @@ public:
// construction/destruction
cpc_pds_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_READ8_MEMBER(pio_r);
DECLARE_WRITE8_MEMBER(pio_w);
@ -47,6 +44,9 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
private:
cpc_expansion_slot_device *m_slot;

View File

@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Barry Rodewald
/*
* cpc_rom.c
* cpc_rom.cpp
* Amstrad CPC mountable ROM image device
*
*/
@ -18,7 +18,7 @@ SLOT_INTERFACE_EXTERN(cpc_exp_cards);
//**************************************************************************
// device machine config
static MACHINE_CONFIG_START( cpc_rom )
MACHINE_CONFIG_MEMBER( cpc_rom_device::device_add_mconfig )
MCFG_CPC_ROMSLOT_ADD("rom1")
MCFG_CPC_ROMSLOT_ADD("rom2")
MCFG_CPC_ROMSLOT_ADD("rom3")
@ -38,11 +38,6 @@ static MACHINE_CONFIG_START( cpc_rom )
MACHINE_CONFIG_END
machine_config_constructor cpc_rom_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cpc_rom );
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************

View File

@ -65,9 +65,6 @@ public:
// construction/destruction
cpc_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
uint8_t* base(uint8_t slot) { if(slot >=1 && slot <= 8) return m_rom[slot]->base(); else return nullptr; }
protected:
@ -75,6 +72,9 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
private:
required_device_array<cpc_rom_image_device, 8> m_rom;
};

View File

@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Barry Rodewald
/*
* cpc_rs232.c
* cpc_rs232.cpp
*
* Created on: 22/04/2014
*/
@ -18,8 +18,22 @@ SLOT_INTERFACE_EXTERN(cpc_exp_cards);
DEFINE_DEVICE_TYPE(CPC_RS232, cpc_rs232_device, "cpc_ser", "Pace RS232C interface")
DEFINE_DEVICE_TYPE(CPC_RS232_AMS, cpc_ams_rs232_device, "cpc_serams", "Amstrad RS232C interface")
ROM_START( cpc_rs232 )
ROM_REGION( 0x8000, "exp_rom", 0 )
ROM_LOAD( "comstar1.rom", 0x0000, 0x4000, CRC(ddcade50) SHA1(d09ee0bd51a8e1cafc5107a75fed839dda3d21e5) )
ROM_LOAD( "comstar2.rom", 0x4000, 0x4000, CRC(664e788c) SHA1(13d033f2d1cad70140deb903d787ba514f236a59) )
ROM_END
ROM_START( cpc_rs232_ams )
ROM_REGION( 0x4000, "exp_rom", 0 )
ROM_SYSTEM_BIOS( 0, "amstrad", "Amstrad RS232C interface (v1)" )
ROMX_LOAD( "rs232101.rom", 0x0000, 0x2000, CRC(c6eb52b2) SHA1(8a7e0a1183fdde8d07bc8827a3e159ca3022f93b), ROM_BIOS(1) )
ROM_SYSTEM_BIOS( 1, "mercitel", "Amstrad RS232C interface (v1) + Mercitel (v1.4)" )
ROMX_LOAD( "rs232mercitel14.rom", 0x0000, 0x4000, CRC(8ffb114b) SHA1(145233fe8d4db9f5265eeac767d8ee8d45d14755), ROM_BIOS(2) )
ROM_END
// device machine config
static MACHINE_CONFIG_START( cpc_rs232 )
MACHINE_CONFIG_MEMBER( cpc_rs232_device::device_add_mconfig )
MCFG_DEVICE_ADD("pit", PIT8253, 0)
MCFG_PIT8253_CLK0(2000000)
MCFG_PIT8253_CLK1(2000000)
@ -48,25 +62,6 @@ static MACHINE_CONFIG_START( cpc_rs232 )
MACHINE_CONFIG_END
ROM_START( cpc_rs232 )
ROM_REGION( 0x8000, "exp_rom", 0 )
ROM_LOAD( "comstar1.rom", 0x0000, 0x4000, CRC(ddcade50) SHA1(d09ee0bd51a8e1cafc5107a75fed839dda3d21e5) )
ROM_LOAD( "comstar2.rom", 0x4000, 0x4000, CRC(664e788c) SHA1(13d033f2d1cad70140deb903d787ba514f236a59) )
ROM_END
ROM_START( cpc_rs232_ams )
ROM_REGION( 0x4000, "exp_rom", 0 )
ROM_SYSTEM_BIOS( 0, "amstrad", "Amstrad RS232C interface (v1)" )
ROMX_LOAD( "rs232101.rom", 0x0000, 0x2000, CRC(c6eb52b2) SHA1(8a7e0a1183fdde8d07bc8827a3e159ca3022f93b), ROM_BIOS(1) )
ROM_SYSTEM_BIOS( 1, "mercitel", "Amstrad RS232C interface (v1) + Mercitel (v1.4)" )
ROMX_LOAD( "rs232mercitel14.rom", 0x0000, 0x4000, CRC(8ffb114b) SHA1(145233fe8d4db9f5265eeac767d8ee8d45d14755), ROM_BIOS(2) )
ROM_END
machine_config_constructor cpc_rs232_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cpc_rs232 );
}
const tiny_rom_entry *cpc_rs232_device::device_rom_region() const
{
return ROM_NAME( cpc_rs232 );

View File

@ -22,13 +22,6 @@ public:
// construction/destruction
cpc_rs232_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_WRITE_LINE_MEMBER(pit_out0_w);
DECLARE_WRITE_LINE_MEMBER(pit_out1_w);
DECLARE_WRITE_LINE_MEMBER(pit_out2_w);
DECLARE_READ8_MEMBER(dart_r);
DECLARE_WRITE8_MEMBER(dart_w);
DECLARE_READ8_MEMBER(pit_r);
@ -42,11 +35,18 @@ protected:
virtual void device_reset() override;
virtual const tiny_rom_entry *device_rom_region() const override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
required_device<pit8253_device> m_pit;
required_device<z80dart_device> m_dart;
required_device<rs232_port_device> m_rs232;
private:
DECLARE_WRITE_LINE_MEMBER(pit_out0_w);
DECLARE_WRITE_LINE_MEMBER(pit_out1_w);
DECLARE_WRITE_LINE_MEMBER(pit_out2_w);
cpc_expansion_slot_device *m_slot;
};

View File

@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Barry Rodewald
/*
* cpc_ssa1.c -- Amstrad SSA-1 Speech Synthesiser, dk'Tronics Speech Synthesiser
* cpc_ssa1.cpp -- Amstrad SSA-1 Speech Synthesiser, dk'Tronics Speech Synthesiser
*
* Created on: 16/07/2011
*
@ -115,7 +115,7 @@ const tiny_rom_entry *cpc_dkspeech_device::device_rom_region() const
}
// device machine config
static MACHINE_CONFIG_START( cpc_ssa1 )
MACHINE_CONFIG_MEMBER( cpc_ssa1_device::device_add_mconfig )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("sp0256",SP0256,XTAL_3_12MHz)
MCFG_SP0256_DATA_REQUEST_CB(WRITELINE(cpc_ssa1_device, lrq_cb))
@ -131,7 +131,7 @@ static MACHINE_CONFIG_START( cpc_ssa1 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( cpc_dkspeech )
MACHINE_CONFIG_MEMBER( cpc_dkspeech_device::device_add_mconfig )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("sp0256",SP0256,XTAL_4MHz) // uses the CPC's clock from pin 50 of the expansion port
MCFG_SP0256_DATA_REQUEST_CB(WRITELINE(cpc_dkspeech_device, lrq_cb))
@ -147,15 +147,6 @@ static MACHINE_CONFIG_START( cpc_dkspeech )
MACHINE_CONFIG_END
machine_config_constructor cpc_ssa1_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cpc_ssa1 );
}
machine_config_constructor cpc_dkspeech_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cpc_dkspeech );
}
//**************************************************************************
// LIVE DEVICE

View File

@ -56,10 +56,6 @@ public:
// construction/destruction
cpc_ssa1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
void set_lrq(uint8_t state) { m_lrq = state; }
uint8_t get_lrq() { return m_lrq; }
void set_sby(uint8_t state) { m_sby = state; }
@ -67,15 +63,20 @@ public:
DECLARE_READ8_MEMBER(ssa1_r);
DECLARE_WRITE8_MEMBER(ssa1_w);
DECLARE_WRITE_LINE_MEMBER(lrq_cb);
DECLARE_WRITE_LINE_MEMBER(sby_cb);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
DECLARE_WRITE_LINE_MEMBER(lrq_cb);
DECLARE_WRITE_LINE_MEMBER(sby_cb);
cpc_expansion_slot_device *m_slot;
uint8_t *m_rom;
@ -92,10 +93,6 @@ public:
// construction/destruction
cpc_dkspeech_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
void set_lrq(uint8_t state) { m_lrq = state; }
uint8_t get_lrq() { return m_lrq; }
void set_sby(uint8_t state) { m_sby = state; }
@ -103,15 +100,20 @@ public:
DECLARE_READ8_MEMBER(dkspeech_r);
DECLARE_WRITE8_MEMBER(dkspeech_w);
DECLARE_WRITE_LINE_MEMBER(lrq_cb);
DECLARE_WRITE_LINE_MEMBER(sby_cb);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
DECLARE_WRITE_LINE_MEMBER(lrq_cb);
DECLARE_WRITE_LINE_MEMBER(sby_cb);
cpc_expansion_slot_device *m_slot;
uint8_t *m_rom;

View File

@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Barry Rodewald
/*
* ddi1.c -- Amstrad DDI-1 Floppy Disk Drive interface
* ddi1.cpp -- Amstrad DDI-1 Floppy Disk Drive interface
*/
#include "emu.h"
@ -39,7 +39,7 @@ const tiny_rom_entry *cpc_ddi1_device::device_rom_region() const
}
// device machine config
static MACHINE_CONFIG_START( cpc_ddi1 )
MACHINE_CONFIG_MEMBER( cpc_ddi1_device::device_add_mconfig )
MCFG_UPD765A_ADD("upd765", true, true)
MCFG_FLOPPY_DRIVE_ADD("upd765:0", ddi1_floppies, "3ssdd", floppy_image_device::default_floppy_formats)
MCFG_SOFTWARE_LIST_ADD("flop_list","cpc_flop")
@ -53,10 +53,6 @@ static MACHINE_CONFIG_START( cpc_ddi1 )
MACHINE_CONFIG_END
machine_config_constructor cpc_ddi1_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cpc_ddi1 );
}
//**************************************************************************
// LIVE DEVICE

View File

@ -22,21 +22,22 @@ public:
// construction/destruction
cpc_ddi1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void set_mapping(uint8_t type) override;
virtual WRITE_LINE_MEMBER( romen_w ) override { m_romen = state; }
DECLARE_WRITE8_MEMBER(motor_w);
DECLARE_WRITE8_MEMBER(fdc_w);
DECLARE_READ8_MEMBER(fdc_r);
DECLARE_WRITE8_MEMBER(rombank_w);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual void set_mapping(uint8_t type) override;
virtual WRITE_LINE_MEMBER( romen_w ) override { m_romen = state; }
private:
cpc_expansion_slot_device *m_slot;

View File

@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Barry Rodewald
/*
* doubler.c -- Draysoft Doubler - external cassette interface for the 464 (works on 664/6128 with external cassette?),
* doubler.cpp -- Draysoft Doubler - external cassette interface for the 464 (works on 664/6128 with external cassette?),
* intended for use in duplicating cassette software
*
*/
@ -16,7 +16,7 @@
DEFINE_DEVICE_TYPE(CPC_DOUBLER, cpc_doubler_device, "cpc_doubler", "Draysoft Doubler")
static MACHINE_CONFIG_START( cpc_doubler )
MACHINE_CONFIG_MEMBER( cpc_doubler_device::device_add_mconfig )
MCFG_CASSETTE_ADD( "doubler_tape" )
MCFG_CASSETTE_FORMATS(cdt_cassette_formats)
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED)
@ -26,12 +26,6 @@ static MACHINE_CONFIG_START( cpc_doubler )
MACHINE_CONFIG_END
machine_config_constructor cpc_doubler_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cpc_doubler );
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************

View File

@ -24,9 +24,6 @@ public:
// construction/destruction
cpc_doubler_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_READ8_MEMBER(ext_tape_r);
protected:
@ -34,6 +31,9 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
private:
cpc_expansion_slot_device *m_slot;

View File

@ -15,17 +15,13 @@
DEFINE_DEVICE_TYPE(CPC_HD20, cpc_hd20_device, "cpc_hd20", "Dobbertin HD20")
static MACHINE_CONFIG_START( cpc_hd20 )
MACHINE_CONFIG_MEMBER( cpc_hd20_device::device_add_mconfig )
MCFG_DEVICE_ADD("hdc",ST11M_HDC,0)
MCFG_XTHDC_IRQ_HANDLER(WRITELINE(cpc_hd20_device,irq_w))
MCFG_XTHDC_IRQ_HANDLER(WRITELINE(cpc_hd20_device, irq_w))
MCFG_HARDDISK_ADD("hdc:primary")
// no pass-through (?)
MACHINE_CONFIG_END
machine_config_constructor cpc_hd20_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cpc_hd20 );
}
ROM_START( cpc_hd20 )
ROM_REGION( 0x4000, "exp_rom", 0 )

View File

@ -26,20 +26,21 @@ public:
// construction/destruction
cpc_hd20_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual const tiny_rom_entry *device_rom_region() const override;
DECLARE_READ8_MEMBER(hdc_r);
DECLARE_WRITE8_MEMBER(hdc_w);
DECLARE_WRITE_LINE_MEMBER(irq_w);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
private:
DECLARE_WRITE_LINE_MEMBER(irq_w);
cpc_expansion_slot_device *m_slot;
required_device<xt_hdc_device> m_hdc;

View File

@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Barry Rodewald
/*
* magicsound.c
* magicsound.cpp
*
* Magic Sound Board for the Aleste 520EX
*
@ -20,18 +20,18 @@
DEFINE_DEVICE_TYPE(AL_MAGICSOUND, al_magicsound_device, "al_magicsound", "Aleste Magic Sound Board")
static MACHINE_CONFIG_START( al_magicsound )
MACHINE_CONFIG_MEMBER( al_magicsound_device::device_add_mconfig )
MCFG_DEVICE_ADD( "dmac", AM9517A, XTAL_4MHz ) // CLK from expansion port
// According to the schematics, the TC pin (EOP on western chips) is connected to NMI on the expansion port.
// NMIs seem to occur too quickly when this is active, so either EOP is not triggered at the correct time, or
// the K1810WT37 is different to the i8237/AM9517A
//MCFG_I8237_OUT_EOP_CB(DEVWRITELINE("^", cpc_expansion_slot_device, nmi_w)) // MCFG_DEVCB_INVERT
MCFG_I8237_OUT_HREQ_CB(DEVWRITELINE("dmac", am9517a_device, hack_w))
MCFG_I8237_IN_MEMR_CB(READ8(al_magicsound_device,dma_read_byte))
MCFG_I8237_OUT_IOW_0_CB(WRITE8(al_magicsound_device,dma_write_byte))
MCFG_I8237_OUT_IOW_1_CB(WRITE8(al_magicsound_device,dma_write_byte))
MCFG_I8237_OUT_IOW_2_CB(WRITE8(al_magicsound_device,dma_write_byte))
MCFG_I8237_OUT_IOW_3_CB(WRITE8(al_magicsound_device,dma_write_byte))
MCFG_I8237_IN_MEMR_CB(READ8(al_magicsound_device, dma_read_byte))
MCFG_I8237_OUT_IOW_0_CB(WRITE8(al_magicsound_device, dma_write_byte))
MCFG_I8237_OUT_IOW_1_CB(WRITE8(al_magicsound_device, dma_write_byte))
MCFG_I8237_OUT_IOW_2_CB(WRITE8(al_magicsound_device, dma_write_byte))
MCFG_I8237_OUT_IOW_3_CB(WRITE8(al_magicsound_device, dma_write_byte))
MCFG_I8237_OUT_DACK_0_CB(WRITELINE(al_magicsound_device, dack0_w))
MCFG_I8237_OUT_DACK_1_CB(WRITELINE(al_magicsound_device, dack1_w))
MCFG_I8237_OUT_DACK_2_CB(WRITELINE(al_magicsound_device, dack2_w))
@ -43,17 +43,17 @@ static MACHINE_CONFIG_START( al_magicsound )
// Timer outputs to SAM0/1/2/3 are sample clocks for each sound channel, D/A0 is the low bit of the channel select.
MCFG_DEVICE_ADD("timer1", PIT8254, 0)
MCFG_PIT8253_CLK0(XTAL_4MHz)
MCFG_PIT8253_OUT0_HANDLER(WRITELINE(al_magicsound_device,sam0_w))
MCFG_PIT8253_OUT0_HANDLER(WRITELINE(al_magicsound_device, sam0_w))
MCFG_PIT8253_CLK1(XTAL_4MHz)
MCFG_PIT8253_OUT1_HANDLER(WRITELINE(al_magicsound_device,sam1_w))
MCFG_PIT8253_OUT1_HANDLER(WRITELINE(al_magicsound_device, sam1_w))
MCFG_PIT8253_CLK2(XTAL_4MHz)
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(al_magicsound_device,sam2_w))
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(al_magicsound_device, sam2_w))
MCFG_DEVICE_ADD("timer2", PIT8254, 0)
MCFG_PIT8253_CLK0(XTAL_4MHz)
MCFG_PIT8253_OUT0_HANDLER(WRITELINE(al_magicsound_device,sam3_w))
MCFG_PIT8253_OUT0_HANDLER(WRITELINE(al_magicsound_device, sam3_w))
MCFG_PIT8253_CLK1(XTAL_4MHz)
MCFG_PIT8253_OUT1_HANDLER(WRITELINE(al_magicsound_device,da0_w))
MCFG_PIT8253_OUT1_HANDLER(WRITELINE(al_magicsound_device, da0_w))
MCFG_PIT8253_CLK2(XTAL_4MHz)
MCFG_SPEAKER_STANDARD_MONO("speaker")
@ -63,10 +63,6 @@ static MACHINE_CONFIG_START( al_magicsound )
// no pass-through(?)
MACHINE_CONFIG_END
machine_config_constructor al_magicsound_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( al_magicsound );
}
//**************************************************************************
// LIVE DEVICE

View File

@ -41,14 +41,21 @@ public:
// construction/destruction
al_magicsound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_READ8_MEMBER(dmac_r);
DECLARE_WRITE8_MEMBER(dmac_w);
DECLARE_WRITE8_MEMBER(timer_w);
DECLARE_WRITE8_MEMBER(volume_w);
DECLARE_WRITE8_MEMBER(mapper_w);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
private:
DECLARE_WRITE_LINE_MEMBER(da0_w);
DECLARE_READ8_MEMBER(dma_read_byte);
DECLARE_WRITE8_MEMBER(dma_write_byte);
@ -61,12 +68,6 @@ public:
DECLARE_WRITE_LINE_MEMBER(sam2_w);
DECLARE_WRITE_LINE_MEMBER(sam3_w);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
private:
cpc_expansion_slot_device *m_slot;
required_device<dac_byte_interface> m_dac;

View File

@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Kevin Thacker, Barry Rodewald
/*
* mface2.c -- Romantic Robot Multiface II expansion device for the Amstrad CPC/CPC+
* mface2.cpp -- Romantic Robot Multiface II expansion device for the Amstrad CPC/CPC+
*
* Created on: 31/07/2011
*/
@ -17,15 +17,6 @@ SLOT_INTERFACE_EXTERN(cpc_exp_cards);
DEFINE_DEVICE_TYPE(CPC_MFACE2, cpc_multiface2_device, "cpc_mface2", "Multiface II")
// device machine config
static MACHINE_CONFIG_START( cpc_mface2 )
// pass-through
MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(cpc_exp_cards, nullptr, false)
MCFG_CPC_EXPANSION_SLOT_OUT_IRQ_CB(DEVWRITELINE("^", cpc_expansion_slot_device, irq_w))
MCFG_CPC_EXPANSION_SLOT_OUT_NMI_CB(DEVWRITELINE("^", cpc_expansion_slot_device, nmi_w))
MCFG_CPC_EXPANSION_SLOT_OUT_ROMDIS_CB(DEVWRITELINE("^", cpc_expansion_slot_device, romdis_w)) // ROMDIS
MACHINE_CONFIG_END
#if 0
DIRECT_UPDATE_MEMBER( cpc_multiface2_device::amstrad_default )
@ -116,10 +107,15 @@ void cpc_multiface2_device::multiface_rethink_memory()
}
}
machine_config_constructor cpc_multiface2_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cpc_mface2 );
}
// device machine config
MACHINE_CONFIG_MEMBER( cpc_multiface2_device::device_add_mconfig )
// pass-through
MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(cpc_exp_cards, nullptr, false)
MCFG_CPC_EXPANSION_SLOT_OUT_IRQ_CB(DEVWRITELINE("^", cpc_expansion_slot_device, irq_w))
MCFG_CPC_EXPANSION_SLOT_OUT_NMI_CB(DEVWRITELINE("^", cpc_expansion_slot_device, nmi_w))
MCFG_CPC_EXPANSION_SLOT_OUT_ROMDIS_CB(DEVWRITELINE("^", cpc_expansion_slot_device, romdis_w)) // ROMDIS
MACHINE_CONFIG_END
void cpc_multiface2_device::check_button_state()
{

View File

@ -39,21 +39,22 @@ public:
// construction/destruction
cpc_multiface2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual ioport_constructor device_input_ports() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
int multiface_hardware_enabled();
void multiface_rethink_memory();
void multiface_stop();
int multiface_io_write(uint16_t offset, uint8_t data);
void check_button_state();
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual ioport_constructor device_input_ports() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
cpc_expansion_slot_device *m_slot;

View File

@ -24,11 +24,11 @@ SLOT_INTERFACE_EXTERN(cpc_exp_cards);
DEFINE_DEVICE_TYPE(CPC_PLAYCITY, cpc_playcity_device, "cpc_playcity", "PlayCity")
// device machine config
static MACHINE_CONFIG_START( cpc_playcity )
MACHINE_CONFIG_MEMBER( cpc_playcity_device::device_add_mconfig )
MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_4MHz)
MCFG_Z80CTC_ZC1_CB(WRITELINE(cpc_playcity_device,ctc_zc1_cb))
MCFG_Z80CTC_ZC2_CB(DEVWRITELINE("ctc",z80ctc_device,trg3))
MCFG_Z80CTC_INTR_CB(WRITELINE(cpc_playcity_device,ctc_intr_cb))
MCFG_Z80CTC_ZC1_CB(WRITELINE(cpc_playcity_device, ctc_zc1_cb))
MCFG_Z80CTC_ZC2_CB(DEVWRITELINE("ctc",z80ctc_device, trg3))
MCFG_Z80CTC_INTR_CB(WRITELINE(cpc_playcity_device, ctc_intr_cb))
MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker")
MCFG_SOUND_ADD("ymz_1",YMZ294,XTAL_4MHz) // when timer is not set, operates at 4MHz (interally divided by 2, so equivalent to the ST)
@ -46,12 +46,6 @@ static MACHINE_CONFIG_START( cpc_playcity )
MACHINE_CONFIG_END
machine_config_constructor cpc_playcity_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cpc_playcity );
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************

View File

@ -30,9 +30,6 @@ public:
// construction/destruction
cpc_playcity_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_READ8_MEMBER(ctc_r);
DECLARE_WRITE8_MEMBER(ctc_w);
DECLARE_WRITE8_MEMBER(ymz1_address_w);
@ -41,8 +38,6 @@ public:
DECLARE_WRITE8_MEMBER(ymz2_data_w);
DECLARE_READ8_MEMBER(ymz1_data_r);
DECLARE_READ8_MEMBER(ymz2_data_r);
DECLARE_WRITE_LINE_MEMBER(ctc_zc1_cb) { if(state) { m_slot->nmi_w(1); m_slot->nmi_w(0); } }
DECLARE_WRITE_LINE_MEMBER(ctc_intr_cb) { m_slot->irq_w(state); }
virtual WRITE_LINE_MEMBER(cursor_w) override { m_ctc->trg1(state); }
@ -51,7 +46,13 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
private:
DECLARE_WRITE_LINE_MEMBER(ctc_zc1_cb) { if(state) { m_slot->nmi_w(1); m_slot->nmi_w(0); } }
DECLARE_WRITE_LINE_MEMBER(ctc_intr_cb) { m_slot->irq_w(state); }
cpc_expansion_slot_device *m_slot;
required_device<z80ctc_device> m_ctc;

View File

@ -19,15 +19,11 @@
DEFINE_DEVICE_TYPE(CPC_SMARTWATCH, cpc_smartwatch_device, "cpc_smartwatch", "Dobbertin Smartwatch")
static MACHINE_CONFIG_START( cpc_smartwatch )
MACHINE_CONFIG_MEMBER( cpc_smartwatch_device::device_add_mconfig )
MCFG_DS1315_ADD("rtc")
// no pass-through (?)
MACHINE_CONFIG_END
machine_config_constructor cpc_smartwatch_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cpc_smartwatch );
}
ROM_START( cpc_smartwatch )
ROM_REGION( 0x4000, "exp_rom", 0 )

View File

@ -23,17 +23,18 @@ public:
// construction/destruction
cpc_smartwatch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual const tiny_rom_entry *device_rom_region() const override;
DECLARE_READ8_MEMBER(rtc_w);
DECLARE_READ8_MEMBER(rtc_r);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
private:
cpc_expansion_slot_device *m_slot;

View File

@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Barry Rodewald
/*
* symbfac2.c
* symbfac2.cpp
* SYMBiFACE II expansion device
* - IDE
* - RTC (Dallas DS1287A)
@ -27,13 +27,6 @@ DEFINE_DEVICE_TYPE(CPC_SYMBIFACE2, cpc_symbiface2_device, "cpc_symf2", "SYMBiFAC
// DEVICE CONFIG INTERFACE
//**************************************************************************
// device machine config
static MACHINE_CONFIG_START( cpc_symbiface2 )
MCFG_ATA_INTERFACE_ADD("ide",ata_devices,"hdd",nullptr,false)
MCFG_DS12885_ADD("rtc")
MCFG_NVRAM_ADD_1FILL("nvram")
// no pass-through
MACHINE_CONFIG_END
static INPUT_PORTS_START(cpc_symbiface2)
PORT_START("sf2_mouse_x")
@ -57,11 +50,13 @@ static INPUT_PORTS_START(cpc_symbiface2)
// PORT_PLAYER(1)
INPUT_PORTS_END
machine_config_constructor cpc_symbiface2_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( cpc_symbiface2 );
}
// device machine config
MACHINE_CONFIG_MEMBER( cpc_symbiface2_device::device_add_mconfig )
MCFG_ATA_INTERFACE_ADD("ide", ata_devices, "hdd", nullptr, false)
MCFG_DS12885_ADD("rtc")
MCFG_NVRAM_ADD_1FILL("nvram")
// no pass-through
MACHINE_CONFIG_END
ioport_constructor cpc_symbiface2_device::device_input_ports() const
{

View File

@ -23,10 +23,6 @@ public:
// construction/destruction
cpc_symbiface2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual ioport_constructor device_input_ports() const override;
DECLARE_READ8_MEMBER(ide_cs0_r);
DECLARE_WRITE8_MEMBER(ide_cs0_w);
DECLARE_READ8_MEMBER(ide_cs1_r);
@ -54,6 +50,10 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
private:
cpc_expansion_slot_device *m_slot;
required_device<ata_interface_device> m_ide;

View File

@ -14,29 +14,6 @@
***************************************************************************/
static MACHINE_CONFIG_START( dmv_k210 )
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(dmv_k210_device, porta_r))
MCFG_I8255_IN_PORTB_CB(READ8(dmv_k210_device, portb_r))
MCFG_I8255_IN_PORTC_CB(READ8(dmv_k210_device, portc_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(dmv_k210_device, porta_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(dmv_k210_device, portb_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(dmv_k210_device, portc_w))
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in")
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(dmv_k210_device, cent_ack_w))
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(dmv_k210_device, cent_busy_w))
MCFG_CENTRONICS_SELECT_IN_HANDLER(WRITELINE(dmv_k210_device, cent_slct_w))
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(dmv_k210_device, cent_pe_w))
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(dmv_k210_device, cent_fault_w))
MCFG_CENTRONICS_AUTOFD_HANDLER(WRITELINE(dmv_k210_device, cent_autofd_w))
MCFG_CENTRONICS_INIT_HANDLER(WRITELINE(dmv_k210_device, cent_init_w))
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0)
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
MACHINE_CONFIG_END
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
@ -93,14 +70,31 @@ void dmv_k210_device::device_timer(emu_timer &timer, device_timer_id tid, int pa
}
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor dmv_k210_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( dmv_k210 );
}
MACHINE_CONFIG_MEMBER( dmv_k210_device::device_add_mconfig )
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_IN_PORTA_CB(READ8(dmv_k210_device, porta_r))
MCFG_I8255_IN_PORTB_CB(READ8(dmv_k210_device, portb_r))
MCFG_I8255_IN_PORTC_CB(READ8(dmv_k210_device, portc_r))
MCFG_I8255_OUT_PORTA_CB(WRITE8(dmv_k210_device, porta_w))
MCFG_I8255_OUT_PORTB_CB(WRITE8(dmv_k210_device, portb_w))
MCFG_I8255_OUT_PORTC_CB(WRITE8(dmv_k210_device, portc_w))
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in")
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(dmv_k210_device, cent_ack_w))
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(dmv_k210_device, cent_busy_w))
MCFG_CENTRONICS_SELECT_IN_HANDLER(WRITELINE(dmv_k210_device, cent_slct_w))
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(dmv_k210_device, cent_pe_w))
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(dmv_k210_device, cent_fault_w))
MCFG_CENTRONICS_AUTOFD_HANDLER(WRITELINE(dmv_k210_device, cent_autofd_w))
MCFG_CENTRONICS_INIT_HANDLER(WRITELINE(dmv_k210_device, cent_init_w))
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0)
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
MACHINE_CONFIG_END
void dmv_k210_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data)
{

View File

@ -23,9 +23,20 @@ public:
// construction/destruction
dmv_k210_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
void device_timer(emu_timer &timer, device_timer_id tid, int param, void *ptr) override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
// dmvcart_interface overrides
virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override;
virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override;
private:
DECLARE_READ8_MEMBER(porta_r);
DECLARE_READ8_MEMBER(portb_r);
DECLARE_READ8_MEMBER(portc_r);
@ -41,17 +52,6 @@ public:
DECLARE_WRITE_LINE_MEMBER(cent_autofd_w);
DECLARE_WRITE_LINE_MEMBER(cent_init_w);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
void device_timer(emu_timer &timer, device_timer_id tid, int param, void *ptr) override;
// dmvcart_interface overrides
virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override;
virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override;
private:
required_device<i8255_device> m_ppi;
required_device<centronics_device> m_centronics;
required_device<input_buffer_device> m_cent_data_in;

View File

@ -77,19 +77,6 @@ ROM_START( dmv_k220 )
ROM_REGION(0x0800, "ram", ROMREGION_ERASE)
ROM_END
static MACHINE_CONFIG_START( dmv_k220 )
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(dmv_k220_device, porta_w))
MCFG_I8255_IN_PORTB_CB(IOPORT("SWITCH"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(dmv_k220_device, portc_w))
MCFG_DEVICE_ADD("pit8253", PIT8253, 0)
MCFG_PIT8253_CLK0(XTAL_1MHz) // CLK1
MCFG_PIT8253_OUT0_HANDLER(WRITELINE(dmv_k220_device, write_out0))
MCFG_PIT8253_OUT1_HANDLER(WRITELINE(dmv_k220_device, write_out1))
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(dmv_k220_device, write_out2))
MACHINE_CONFIG_END
static INPUT_PORTS_START( dmv_k220 )
PORT_START("SWITCH")
PORT_DIPNAME( 0x01, 0x00, "Select 1" )
@ -165,14 +152,21 @@ void dmv_k220_device::device_reset()
}
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor dmv_k220_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( dmv_k220 );
}
MACHINE_CONFIG_MEMBER( dmv_k220_device::device_add_mconfig )
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(dmv_k220_device, porta_w))
MCFG_I8255_IN_PORTB_CB(IOPORT("SWITCH"))
MCFG_I8255_OUT_PORTC_CB(WRITE8(dmv_k220_device, portc_w))
MCFG_DEVICE_ADD("pit8253", PIT8253, 0)
MCFG_PIT8253_CLK0(XTAL_1MHz) // CLK1
MCFG_PIT8253_OUT0_HANDLER(WRITELINE(dmv_k220_device, write_out0))
MCFG_PIT8253_OUT1_HANDLER(WRITELINE(dmv_k220_device, write_out1))
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(dmv_k220_device, write_out2))
MACHINE_CONFIG_END
//-------------------------------------------------
// input_ports - device-specific input ports

View File

@ -23,27 +23,27 @@ public:
// construction/destruction
dmv_k220_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual ioport_constructor device_input_ports() const override;
DECLARE_WRITE8_MEMBER(porta_w);
DECLARE_WRITE8_MEMBER(portc_w);
DECLARE_WRITE_LINE_MEMBER(write_out0);
DECLARE_WRITE_LINE_MEMBER(write_out1);
DECLARE_WRITE_LINE_MEMBER(write_out2);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
// dmvcart_interface overrides
virtual bool read(offs_t offset, uint8_t &data) override;
virtual bool write(offs_t offset, uint8_t data) override;
private:
DECLARE_WRITE8_MEMBER(porta_w);
DECLARE_WRITE8_MEMBER(portc_w);
DECLARE_WRITE_LINE_MEMBER(write_out0);
DECLARE_WRITE_LINE_MEMBER(write_out1);
DECLARE_WRITE_LINE_MEMBER(write_out2);
required_device<pit8253_device> m_pit;
required_device<i8255_device> m_ppi;
required_memory_region m_ram;

View File

@ -57,27 +57,6 @@ static ADDRESS_MAP_START(k235_io, AS_IO, 8, dmv_k230_device)
AM_RANGE( 0x00, 0xff ) AM_READWRITE(io_r, io_w)
ADDRESS_MAP_END
static MACHINE_CONFIG_START( dmv_k230 )
MCFG_CPU_ADD("maincpu", I8088, XTAL_15MHz / 3)
MCFG_CPU_PROGRAM_MAP(k230_mem)
MCFG_CPU_IO_MAP(k230_io)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( dmv_k234 )
MCFG_CPU_ADD("maincpu", M68008, XTAL_16MHz / 2)
MCFG_CPU_PROGRAM_MAP(k234_mem)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( dmv_k235 )
MCFG_CPU_ADD("maincpu", V20, XTAL_15MHz / 3)
MCFG_CPU_PROGRAM_MAP(k230_mem)
MCFG_CPU_IO_MAP(k235_io)
MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
MCFG_PIC8259_ADD("pic8259", INPUTLINE("maincpu", 0), VCC, NOOP)
MACHINE_CONFIG_END
static INPUT_PORTS_START( dmv_k235 )
PORT_START("DSW")
PORT_DIPNAME( 0x01, 0x00, "K235 INT7" ) PORT_DIPLOCATION("S:1")
@ -180,24 +159,28 @@ void dmv_k234_device::device_reset()
}
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor dmv_k230_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( dmv_k230 );
}
MACHINE_CONFIG_MEMBER( dmv_k230_device::device_add_mconfig )
MCFG_CPU_ADD("maincpu", I8088, XTAL_15MHz / 3)
MCFG_CPU_PROGRAM_MAP(k230_mem)
MCFG_CPU_IO_MAP(k230_io)
MACHINE_CONFIG_END
machine_config_constructor dmv_k234_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( dmv_k234 );
}
MACHINE_CONFIG_MEMBER( dmv_k234_device::device_add_mconfig )
MCFG_CPU_ADD("maincpu", M68008, XTAL_16MHz / 2)
MCFG_CPU_PROGRAM_MAP(k234_mem)
MACHINE_CONFIG_END
machine_config_constructor dmv_k235_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( dmv_k235 );
}
MACHINE_CONFIG_MEMBER( dmv_k235_device::device_add_mconfig )
MCFG_CPU_ADD("maincpu", V20, XTAL_15MHz / 3)
MCFG_CPU_PROGRAM_MAP(k230_mem)
MCFG_CPU_IO_MAP(k235_io)
MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb)
MCFG_PIC8259_ADD("pic8259", INPUTLINE("maincpu", 0), VCC, NOOP)
MACHINE_CONFIG_END
//-------------------------------------------------
// device_rom_region

View File

@ -30,10 +30,6 @@ public:
// construction/destruction
dmv_k230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_READ8_MEMBER(io_r);
DECLARE_READ8_MEMBER(program_r);
DECLARE_WRITE8_MEMBER(io_w);
@ -47,6 +43,10 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
// dmvcart_interface overrides
virtual void hold_w(int state) override;
virtual void switch16_w(int state) override;
@ -91,7 +91,7 @@ public:
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
// device-level overrides
virtual void device_start() override;
@ -118,7 +118,7 @@ public:
protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
void timint_w(int state) override { m_pic->ir0_w(state); }

View File

@ -21,42 +21,6 @@
***************************************************************************/
static MACHINE_CONFIG_START( dmv_k801 )
MCFG_DEVICE_ADD("epci", MC2661, XTAL_5_0688MHz)
MCFG_MC2661_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))
MCFG_MC2661_RTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts))
MCFG_MC2661_DTR_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
MCFG_MC2661_RXRDY_HANDLER(WRITELINE(dmv_k801_device, epci_irq_w))
MCFG_MC2661_TXRDY_HANDLER(WRITELINE(dmv_k801_device, epci_irq_w))
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "printer")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("epci", mc2661_device, rx_w))
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("epci", mc2661_device, dcd_w))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("epci", mc2661_device, dsr_w))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("epci", mc2661_device, cts_w))
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( dmv_k211 )
MCFG_FRAGMENT_ADD( dmv_k801 )
MCFG_DEVICE_MODIFY("rs232")
MCFG_SLOT_DEFAULT_OPTION("null_modem")
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( dmv_k212 )
MCFG_FRAGMENT_ADD( dmv_k801 )
MCFG_DEVICE_MODIFY("rs232")
MCFG_SLOT_DEFAULT_OPTION("printer")
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( dmv_k213 )
MCFG_FRAGMENT_ADD( dmv_k801 )
MCFG_DEVICE_MODIFY("rs232")
MCFG_SLOT_DEFAULT_OPTION(nullptr)
MACHINE_CONFIG_END
static INPUT_PORTS_START( dmv_k801 )
PORT_START("DSW")
PORT_DIPNAME( 0x0f, 0x00, "K801 IFSEL" ) PORT_DIPLOCATION("S:!4,S:!3,S:!2,S:!1")
@ -175,29 +139,44 @@ void dmv_k801_device::device_reset()
}
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor dmv_k801_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( dmv_k801 );
}
MACHINE_CONFIG_MEMBER( dmv_k801_device::device_add_mconfig )
MCFG_DEVICE_ADD("epci", MC2661, XTAL_5_0688MHz)
MCFG_MC2661_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))
MCFG_MC2661_RTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts))
MCFG_MC2661_DTR_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
MCFG_MC2661_RXRDY_HANDLER(WRITELINE(dmv_k801_device, epci_irq_w))
MCFG_MC2661_TXRDY_HANDLER(WRITELINE(dmv_k801_device, epci_irq_w))
machine_config_constructor dmv_k211_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( dmv_k211 );
}
MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "printer")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("epci", mc2661_device, rx_w))
MCFG_RS232_DCD_HANDLER(DEVWRITELINE("epci", mc2661_device, dcd_w))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE("epci", mc2661_device, dsr_w))
MCFG_RS232_CTS_HANDLER(DEVWRITELINE("epci", mc2661_device, cts_w))
MACHINE_CONFIG_END
machine_config_constructor dmv_k212_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( dmv_k212 );
}
MACHINE_CONFIG_MEMBER( dmv_k211_device::device_add_mconfig )
dmv_k801_device::device_add_mconfig(config);
machine_config_constructor dmv_k213_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( dmv_k213 );
}
MCFG_DEVICE_MODIFY("rs232")
MCFG_SLOT_DEFAULT_OPTION("null_modem")
MACHINE_CONFIG_END
MACHINE_CONFIG_MEMBER( dmv_k212_device::device_add_mconfig )
dmv_k801_device::device_add_mconfig(config);
MCFG_DEVICE_MODIFY("rs232")
MCFG_SLOT_DEFAULT_OPTION("printer")
MACHINE_CONFIG_END
MACHINE_CONFIG_MEMBER( dmv_k213_device::device_add_mconfig )
dmv_k801_device::device_add_mconfig(config);
MCFG_DEVICE_MODIFY("rs232")
MCFG_SLOT_DEFAULT_OPTION(nullptr)
MACHINE_CONFIG_END
//-------------------------------------------------
// input_ports - device-specific input ports

View File

@ -24,12 +24,6 @@ public:
// construction/destruction
dmv_k801_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_WRITE_LINE_MEMBER(epci_irq_w);
protected:
dmv_k801_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
@ -37,13 +31,20 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
virtual void device_add_mconfig(machine_config &config) override;
// dmvcart_interface overrides
virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override;
virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override;
protected:
required_device<mc2661_device> m_epci;
required_ioport m_dsw;
private:
DECLARE_WRITE_LINE_MEMBER(epci_irq_w);
dmvcart_slot_device * m_bus;
};
@ -57,13 +58,13 @@ public:
// construction/destruction
dmv_k211_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
protected:
dmv_k211_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
virtual void device_add_mconfig(machine_config &config) override;
// dmvcart_interface overrides
virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override;
virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override;
@ -78,9 +79,10 @@ public:
// construction/destruction
dmv_k212_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
};
// ======================> dmv_k213_device
@ -92,9 +94,10 @@ public:
// construction/destruction
dmv_k213_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
};

View File

@ -14,11 +14,6 @@
IMPLEMENTATION
***************************************************************************/
static MACHINE_CONFIG_START( dmv_k803 )
MCFG_DEVICE_ADD("rtc", MM58167, XTAL_32_768kHz)
MCFG_MM58167_IRQ_CALLBACK(WRITELINE(dmv_k803_device, rtc_irq_w))
MACHINE_CONFIG_END
static INPUT_PORTS_START( dmv_k803 )
PORT_START("DSW")
PORT_DIPNAME( 0x0f, 0x09, "K803 IFSEL" ) PORT_DIPLOCATION("S:!4,S:!3,S:!2,S:!1")
@ -77,14 +72,13 @@ void dmv_k803_device::device_reset()
}
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor dmv_k803_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( dmv_k803 );
}
MACHINE_CONFIG_MEMBER( dmv_k803_device::device_add_mconfig )
MCFG_DEVICE_ADD("rtc", MM58167, XTAL_32_768kHz)
MCFG_MM58167_IRQ_CALLBACK(WRITELINE(dmv_k803_device, rtc_irq_w))
MACHINE_CONFIG_END
//-------------------------------------------------
// input_ports - device-specific input ports

View File

@ -22,23 +22,23 @@ public:
// construction/destruction
dmv_k803_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_WRITE_LINE_MEMBER(rtc_irq_w);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override;
virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override;
void update_int();
private:
DECLARE_WRITE_LINE_MEMBER(rtc_irq_w);
required_device<mm58167_device> m_rtc;
required_ioport m_dsw;
dmvcart_slot_device * m_bus;

View File

@ -19,15 +19,6 @@ ROM_START( dmv_k806 )
ROM_LOAD( "dmv_mouse_8741a.bin", 0x0000, 0x0400, CRC(2163737a) SHA1(b82c14dba6c25cb1f60cf623989ca8c0c1ee4cc3))
ROM_END
static MACHINE_CONFIG_START( dmv_k806 )
MCFG_CPU_ADD("mcu", I8741, XTAL_6MHz)
MCFG_MCS48_PORT_P1_IN_CB(READ8(dmv_k806_device, port1_r))
MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(dmv_k806_device, port2_w))
MCFG_MCS48_PORT_T1_IN_CB(READLINE(dmv_k806_device, portt1_r))
MCFG_TIMER_DRIVER_ADD_PERIODIC("mouse_timer", dmv_k806_device, mouse_timer, attotime::from_hz(1000))
MACHINE_CONFIG_END
static INPUT_PORTS_START( dmv_k806 )
PORT_START("JUMPERS")
PORT_DIPNAME( 0x7f, 0x24, "K806 IFSEL" ) PORT_DIPLOCATION("J:!1,J:!2,J:!3,J:!4,J:!5,J:!6,J:!7")
@ -106,14 +97,17 @@ void dmv_k806_device::device_reset()
}
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor dmv_k806_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( dmv_k806 );
}
MACHINE_CONFIG_MEMBER( dmv_k806_device::device_add_mconfig )
MCFG_CPU_ADD("mcu", I8741, XTAL_6MHz)
MCFG_MCS48_PORT_P1_IN_CB(READ8(dmv_k806_device, port1_r))
MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(dmv_k806_device, port2_w))
MCFG_MCS48_PORT_T1_IN_CB(READLINE(dmv_k806_device, portt1_r))
MCFG_TIMER_DRIVER_ADD_PERIODIC("mouse_timer", dmv_k806_device, mouse_timer, attotime::from_hz(1000))
MACHINE_CONFIG_END
//-------------------------------------------------
// input_ports - device-specific input ports

View File

@ -23,26 +23,26 @@ public:
// construction/destruction
dmv_k806_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual ioport_constructor device_input_ports() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override;
virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override;
private:
DECLARE_READ_LINE_MEMBER(portt1_r);
DECLARE_READ8_MEMBER(port1_r);
DECLARE_WRITE8_MEMBER(port2_w);
TIMER_DEVICE_CALLBACK_MEMBER(mouse_timer);
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override;
virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override;
private:
required_device<upi41_cpu_device> m_mcu;
required_ioport m_jumpers;
required_ioport m_mouse_buttons;

View File

@ -451,11 +451,13 @@ void ecb_grip21_device::kb_w(uint8_t data)
// MACHINE CONFIGURATION
//**************************************************************************
//-------------------------------------------------
// MACHINE_CONFIG_START( grip )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( grip )
MACHINE_CONFIG_MEMBER( ecb_grip21_device::device_add_mconfig )
// basic machine hardware
MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_16MHz/4)
MCFG_Z80_DAISY_CHAIN(grip_daisy_chain)
@ -512,17 +514,6 @@ static MACHINE_CONFIG_START( grip )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor ecb_grip21_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( grip );
}
//**************************************************************************
// INPUT PORTS
//**************************************************************************

View File

@ -36,11 +36,6 @@ public:
// construction/destruction
ecb_grip21_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual ioport_constructor device_input_ports() const override;
// not really public
DECLARE_WRITE8_MEMBER( vol0_w );
DECLARE_WRITE8_MEMBER( vol1_w );
@ -51,6 +46,22 @@ public:
DECLARE_WRITE8_MEMBER( lrs_w );
DECLARE_READ8_MEMBER( cxstb_r );
DECLARE_WRITE8_MEMBER( cxstb_w );
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
// device_ecbbus_card_interface overrides
virtual uint8_t ecbbus_io_r(offs_t offset) override;
virtual void ecbbus_io_w(offs_t offset, uint8_t data) override;
private:
DECLARE_READ8_MEMBER( ppi_pa_r );
DECLARE_WRITE8_MEMBER( ppi_pa_w );
DECLARE_READ8_MEMBER( ppi_pb_r );
@ -65,16 +76,6 @@ public:
MC6845_UPDATE_ROW( crtc_update_row );
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// device_ecbbus_card_interface overrides
virtual uint8_t ecbbus_io_r(offs_t offset) override;
virtual void ecbbus_io_w(offs_t offset, uint8_t data) override;
private:
required_device<i8255_device> m_ppi;
required_device<z80sti_device> m_sti;
required_device<mc6845_device> m_crtc;

View File

@ -169,7 +169,7 @@ WRITE_LINE_MEMBER( econet_e01_device::clk_en_w )
m_clk_en = state;
}
FLOPPY_FORMATS_MEMBER( floppy_formats_afs )
FLOPPY_FORMATS_MEMBER( econet_e01_device::floppy_formats_afs )
FLOPPY_AFS_FORMAT
FLOPPY_FORMATS_END0
@ -238,10 +238,10 @@ ADDRESS_MAP_END
//-------------------------------------------------
// MACHINE_DRIVER( e01 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( e01 )
MACHINE_CONFIG_MEMBER( econet_e01_device::device_add_mconfig )
// basic machine hardware
MCFG_CPU_ADD(R65C102_TAG, M65C02, XTAL_8MHz/4) // Rockwell R65C102P3
MCFG_CPU_PROGRAM_MAP(e01_mem)
@ -291,17 +291,6 @@ static MACHINE_CONFIG_START( e01 )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor econet_e01_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( e01 );
}
//-------------------------------------------------
// INPUT_PORTS( e01 )
//-------------------------------------------------

View File

@ -31,8 +31,6 @@ public:
// construction/destruction
econet_e01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_FLOPPY_FORMATS(floppy_formats_afs);
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
DECLARE_READ8_MEMBER( ram_select_r );
@ -49,15 +47,6 @@ public:
DECLARE_WRITE8_MEMBER( rtc_address_w );
DECLARE_READ8_MEMBER( rtc_data_r );
DECLARE_WRITE8_MEMBER( rtc_data_w );
DECLARE_WRITE_LINE_MEMBER( rtc_irq_w );
DECLARE_WRITE_LINE_MEMBER( adlc_irq_w );
DECLARE_WRITE_LINE_MEMBER( econet_data_w );
DECLARE_WRITE_LINE_MEMBER( via_irq_w );
DECLARE_WRITE_LINE_MEMBER( clk_en_w );
DECLARE_WRITE_LINE_MEMBER( fdc_irq_w );
DECLARE_WRITE_LINE_MEMBER( fdc_drq_w );
DECLARE_WRITE_LINE_MEMBER( scsi_bsy_w );
DECLARE_WRITE_LINE_MEMBER( scsi_req_w );
protected:
enum
@ -75,13 +64,26 @@ protected:
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
virtual void device_add_mconfig(machine_config &config) override;
virtual ioport_constructor device_input_ports() const override;
// device_econet_interface overrides
virtual void econet_data(int state) override;
virtual void econet_clk(int state) override;
private:
DECLARE_WRITE_LINE_MEMBER( rtc_irq_w );
DECLARE_WRITE_LINE_MEMBER( adlc_irq_w );
DECLARE_WRITE_LINE_MEMBER( econet_data_w );
DECLARE_WRITE_LINE_MEMBER( via_irq_w );
DECLARE_WRITE_LINE_MEMBER( clk_en_w );
DECLARE_WRITE_LINE_MEMBER( fdc_irq_w );
DECLARE_WRITE_LINE_MEMBER( fdc_drq_w );
DECLARE_WRITE_LINE_MEMBER( scsi_bsy_w );
DECLARE_WRITE_LINE_MEMBER( scsi_req_w );
DECLARE_FLOPPY_FORMATS(floppy_formats_afs);
required_device<m65c02_device> m_maincpu;
required_device<wd2793_device> m_fdc;
required_device<mc6854_device> m_adlc;

View File

@ -51,10 +51,10 @@ ROM_END
//-------------------------------------------------
// MACHINE_DRIVER( m2105 )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( m2105 )
MACHINE_CONFIG_MEMBER( electron_m2105_device::device_add_mconfig )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@ -98,17 +98,6 @@ static MACHINE_CONFIG_START( m2105 )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor electron_m2105_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( m2105 );
}
const tiny_rom_entry *electron_m2105_device::device_rom_region() const
{
return ROM_NAME( m2105 );

View File

@ -32,17 +32,17 @@ public:
// construction/destruction
electron_m2105_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_WRITE_LINE_MEMBER(intrq_w);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual const tiny_rom_entry *device_rom_region() const override;
protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
private:
DECLARE_WRITE_LINE_MEMBER(intrq_w);
required_memory_region m_exp_rom;
required_device<via6522_device> m_via6522_0;
required_device<via6522_device> m_via6522_1;

View File

@ -31,7 +31,7 @@ DEFINE_DEVICE_TYPE(ELECTRON_PLUS3, electron_plus3_device, "electron_plus3", "Aco
// MACHINE_DRIVER( plus3 )
//-------------------------------------------------
FLOPPY_FORMATS_MEMBER(floppy_formats)
FLOPPY_FORMATS_MEMBER(electron_plus3_device::floppy_formats)
FLOPPY_ACORN_SSD_FORMAT,
FLOPPY_ACORN_DSD_FORMAT,
FLOPPY_ACORN_ADFS_OLD_FORMAT
@ -45,23 +45,6 @@ SLOT_INTERFACE_START(electron_floppies)
SLOT_INTERFACE_END
MACHINE_CONFIG_START( plus3 )
/* fdc */
MCFG_WD1770_ADD("fdc", XTAL_16MHz / 2)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", electron_floppies, "35dd", floppy_formats)
MCFG_SLOT_FIXED(true)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", electron_floppies, nullptr, floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
/* software lists */
MCFG_SOFTWARE_LIST_ADD("flop_ls", "electron_flop")
/* pass-through */
MCFG_ELECTRON_PASSTHRU_EXPANSION_SLOT_ADD(nullptr)
MACHINE_CONFIG_END
ROM_START( plus3 )
// Bank 4 Disc
ROM_REGION(0x4000, "exp_rom", 0)
@ -79,14 +62,24 @@ ROM_START( plus3 )
ROM_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
// device_add_mconfig - add device configuration
//-------------------------------------------------
machine_config_constructor electron_plus3_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( plus3 );
}
MACHINE_CONFIG_MEMBER( electron_plus3_device::device_add_mconfig )
/* fdc */
MCFG_WD1770_ADD("fdc", XTAL_16MHz / 2)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", electron_floppies, "35dd", floppy_formats)
MCFG_SLOT_FIXED(true)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", electron_floppies, nullptr, floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
/* software lists */
MCFG_SOFTWARE_LIST_ADD("flop_ls", "electron_flop")
/* pass-through */
MCFG_ELECTRON_PASSTHRU_EXPANSION_SLOT_ADD(nullptr)
MACHINE_CONFIG_END
const tiny_rom_entry *electron_plus3_device::device_rom_region() const
{

View File

@ -25,12 +25,6 @@ public:
// construction/destruction
electron_plus3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_FLOPPY_FORMATS(floppy_formats);
// optional information overrides
virtual machine_config_constructor device_mconfig_additions() const override;
virtual const tiny_rom_entry *device_rom_region() const override;
DECLARE_READ8_MEMBER(wd1770_status_r);
DECLARE_WRITE8_MEMBER(wd1770_status_w);
@ -39,7 +33,13 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
private:
DECLARE_FLOPPY_FORMATS(floppy_formats);
required_memory_region m_exp_rom;
required_device<wd1770_device> m_fdc;
required_device<floppy_connector> m_floppy0;

View File

@ -99,10 +99,10 @@ SLOT_INTERFACE_END
//-------------------------------------------------
// MACHINE_CONFIG_START( ep64_exdos )
// device_add_mconfig - add device configuration
//-------------------------------------------------
static MACHINE_CONFIG_START( ep64_exdos )
MACHINE_CONFIG_MEMBER( ep64_exdos_device::device_add_mconfig )
MCFG_WD1770_ADD(WD1770_TAG, XTAL_8MHz)
MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":0", ep64_exdos_floppies, "35dd", ep64_exdos_device::floppy_formats)
@ -112,18 +112,6 @@ static MACHINE_CONFIG_START( ep64_exdos )
MACHINE_CONFIG_END
//-------------------------------------------------
// machine_config_additions - device-specific
// machine configurations
//-------------------------------------------------
machine_config_constructor ep64_exdos_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( ep64_exdos );
}
//**************************************************************************
// LIVE DEVICE
//**************************************************************************

View File

@ -30,21 +30,21 @@ public:
// construction/destruction
ep64_exdos_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual machine_config_constructor device_mconfig_additions() const override;
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
DECLARE_FLOPPY_FORMATS( floppy_formats );
protected:
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
// optional information overrides
virtual const tiny_rom_entry *device_rom_region() const override;
virtual void device_add_mconfig(machine_config &config) override;
private:
DECLARE_FLOPPY_FORMATS( floppy_formats );
required_device<wd1770_device> m_fdc;
required_device<floppy_connector> m_floppy0;
required_device<floppy_connector> m_floppy1;

Some files were not shown because too many files have changed in this diff Show More