Fixed regressions reported by Tafoid, nw

-cpu/i386, lc8670: Removed MCFG macros. [Ryan Holtz]

-drivers/at, atpci, nforcepc, pcipc, svmu: Removed MACHINE_CONFIG macros. [Ryan Holtz]
This commit is contained in:
mooglyguy 2018-12-16 14:49:12 +01:00
parent d87615d0f1
commit 97f2889f32
17 changed files with 377 additions and 360 deletions

View File

@ -44,6 +44,15 @@ class pci_connector_device : public device_t,
public device_slot_interface
{
public:
template <typename T>
pci_connector_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt, bool fixed)
: pci_connector_device(mconfig, tag, owner, (uint32_t)0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(fixed);
}
pci_connector_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
virtual ~pci_connector_device();

View File

@ -41,6 +41,15 @@ class pc_kbdc_slot_device : public device_t,
{
public:
// construction/destruction
template <typename T>
pc_kbdc_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
: pc_kbdc_slot_device(mconfig, tag, owner, (uint32_t)0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
pc_kbdc_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// inline configuration

View File

@ -24,13 +24,6 @@
// mingw has this defined for 32-bit compiles
#undef i386
#define MCFG_I386_SMIACT(_devcb) \
downcast<i386_device &>(*device).set_smiact(DEVCB_##_devcb);
#define MCFG_I486_FERR_HANDLER(_devcb) \
downcast<i386_device &>(*device).set_ferr(DEVCB_##_devcb);
#define X86_NUM_CPUS 4
class i386_device : public cpu_device, public device_vtlb_interface, public i386_disassembler::config
@ -40,8 +33,8 @@ public:
i386_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration helpers
template <class Object> devcb_base &set_smiact(Object &&cb) { return m_smiact.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_ferr(Object &&cb) { return m_ferr_handler.set_callback(std::forward<Object>(cb)); }
auto smiact() { return m_smiact.bind(); }
auto ferr() { return m_ferr_handler.bind(); }
uint64_t debug_segbase(symbol_table &table, int params, const uint64_t *param);
uint64_t debug_seglimit(symbol_table &table, int params, const uint64_t *param);

View File

@ -71,12 +71,8 @@ public:
// device_memory_interface overrides
virtual space_config_vector memory_space_config() const override;
typedef device_delegate<uint32_t (bool)> a20_cb;
void set_a20_callback(a20_cb callback) { m_a20_callback = callback; }
template <class FunctionClass> void set_a20_callback(uint32_t (FunctionClass::*callback)(bool), const char *name)
{
set_a20_callback(a20_cb(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
}
typedef delegate<uint32_t (bool)> a20_cb;
template <typename Object> void set_a20_callback(Object &&cb) { m_a20_callback = std::forward<Object>(cb); }
auto shutdown_callback() { return m_out_shutdown_func.bind(); }

View File

@ -202,6 +202,7 @@ void lc8670_cpu_device::device_start()
set_icountptr(m_icount);
// resolve callbacks
m_lcd_update_func.bind_relative_to(*owner());
m_bankswitch_func.resolve();
// setup timers
@ -559,9 +560,8 @@ void lc8670_cpu_device::execute_set_input(int inputnum, int state)
uint32_t lc8670_cpu_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
if (m_lcd_update_func)
return m_lcd_update_func(*this, bitmap, cliprect, m_xram, (REG_MCR & 0x08) && (REG_VCCR & 0x80), REG_STAD);
if (!m_lcd_update_func.isnull())
return m_lcd_update_func(bitmap, cliprect, m_xram, (REG_MCR & 0x08) && (REG_VCCR & 0x80), REG_STAD);
return 0;
}

View File

@ -37,23 +37,7 @@ enum
// TYPE DEFINITIONS
//**************************************************************************
#define LC8670_LCD_UPDATE(name) uint32_t name(device_t &device, bitmap_ind16 &bitmap, const rectangle &cliprect, uint8_t* vram, bool lcd_enabled, uint8_t stad)
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_LC8670_SET_CLOCK_SOURCES(_sub_clock, _rc_clock, _cf_clock) \
downcast<lc8670_cpu_device &>(*device).set_cpu_clock(lc8670_cpu_device::clock_source::SUB, _sub_clock); \
downcast<lc8670_cpu_device &>(*device).set_cpu_clock(lc8670_cpu_device::clock_source::RC, _rc_clock); \
downcast<lc8670_cpu_device &>(*device).set_cpu_clock(lc8670_cpu_device::clock_source::CF, _cf_clock);
#define MCFG_LC8670_BANKSWITCH_CB(_devcb) \
downcast<lc8670_cpu_device &>(*device).set_bankswitch_cb(DEVCB_##_devcb);
#define MCFG_LC8670_LCD_UPDATE_CB(_cb) \
downcast<lc8670_cpu_device &>(*device).set_lcd_update_cb(_cb);
#define LC8670_LCD_UPDATE(name) uint32_t name(bitmap_ind16 &bitmap, const rectangle &cliprect, uint8_t* vram, bool lcd_enabled, uint8_t stad)
// ======================> lc8670_cpu_device
@ -67,7 +51,7 @@ public:
CF
};
typedef uint32_t (*lcd_update)(device_t &device, bitmap_ind16 &bitmap, const rectangle &cliprect, uint8_t* vram, bool lcd_enabled, uint8_t stad);
typedef device_delegate<uint32_t (bitmap_ind16 &bitmap, const rectangle &cliprect, uint8_t* vram, bool lcd_enabled, uint8_t stad)> lcd_update_delegate;
// construction/destruction
lc8670_cpu_device(const machine_config &mconfig, const char *_tag, device_t *_owner, uint32_t _clock);
@ -86,8 +70,28 @@ public:
// configuration helpers
void set_cpu_clock(clock_source source, uint32_t clock) { m_clocks[unsigned(source)] = clock; }
void set_cpu_clock(clock_source source, const XTAL &clock) { set_cpu_clock(source, clock.value()); }
template <typename T, typename U, typename V>
void set_clock_sources(T &&sub_clock, U &&rc_clock, V &&cf_clock)
{
set_cpu_clock(lc8670_cpu_device::clock_source::SUB, sub_clock);
set_cpu_clock(lc8670_cpu_device::clock_source::RC, rc_clock);
set_cpu_clock(lc8670_cpu_device::clock_source::CF, cf_clock);
}
auto bank_cb() { return m_bankswitch_func.bind(); }
template <typename Object> void set_lcd_update_cb(Object &&cb) { m_lcd_update_func = std::forward<Object>(cb); }
template <class Object> devcb_base &set_bankswitch_cb(Object &&cb) { return m_bankswitch_func.set_callback(std::forward<Object>(cb)); }
void set_lcd_update_cb(lcd_update_delegate callback) { m_lcd_update_func = callback; }
template <class FunctionClass> void set_lcd_update_cb(const char *devname,
uint32_t (FunctionClass::*callback)(bitmap_ind16 &, const rectangle &, uint8_t*, bool, uint8_t), const char *name)
{
set_lcd_update_cb(lcd_update_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
}
template <class FunctionClass> void set_lcd_update_cb(
uint32_t (FunctionClass::*callback)(bitmap_ind16 &, const rectangle &, uint8_t*, bool, uint8_t), const char *name)
{
set_lcd_update_cb(lcd_update_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
}
void lc8670_internal_map(address_map &map);
protected:
@ -231,7 +235,7 @@ private:
// configuration
uint32_t m_clocks[3]; // clock sources
devcb_write8 m_bankswitch_func; // bankswitch CB
lcd_update m_lcd_update_func; // LCD update CB
lcd_update_delegate m_lcd_update_func; // LCD update CB
// interrupts vectors
static const uint16_t s_irq_vectors[16];

View File

@ -3456,7 +3456,7 @@ void psxcpu_device::device_add_mconfig(machine_config &config)
auto &mdec(PSX_MDEC(config, "mdec", 0));
dma.install_write_handler(0, psxdma_device::write_delegate(&psxmdec_device::dma_write, &mdec));
dma.install_read_handler(1, psxdma_device::write_delegate(&psxmdec_device::dma_write, &mdec));
dma.install_read_handler(1, psxdma_device::write_delegate(&psxmdec_device::dma_read, &mdec));
auto &rcnt(PSX_RCNT(config, "rcnt", 0));
rcnt.irq0().set("irq", FUNC(psxirq_device::intin4));

View File

@ -31,8 +31,8 @@ public:
// configuration helpers
auto irq0() { return m_irq0_handler.bind(); }
auto irq1() { return m_irq0_handler.bind(); }
auto irq2() { return m_irq0_handler.bind(); }
auto irq1() { return m_irq1_handler.bind(); }
auto irq2() { return m_irq2_handler.bind(); }
DECLARE_WRITE32_MEMBER( write );
DECLARE_READ32_MEMBER( read );

View File

@ -441,7 +441,8 @@ static void pci_devices(device_slot_interface &device)
device.option_add_internal("vt82c505", VT82C505);
}
MACHINE_CONFIG_START(at_state::ibm5170)
void at_state::ibm5170(machine_config &config)
{
/* basic machine hardware */
i80286_cpu_device &maincpu(I80286(config, m_maincpu, 12_MHz_XTAL / 2 /*6000000*/));
maincpu.set_addrmap(AS_PROGRAM, &at_state::at16_map);
@ -452,18 +453,18 @@ MACHINE_CONFIG_START(at_state::ibm5170)
AT_MB(config, m_mb, 0);
config.m_minimum_quantum = attotime::from_hz(60);
downcast<at_mb_device *>(device)->at_softlists(config);
m_mb->at_softlists(config);
// FIXME: determine ISA bus clock
ISA16_SLOT(config, "isa1", 0, "mb:isabus", pc_isa16_cards, "ega", false);
ISA16_SLOT(config, "isa2", 0, "mb:isabus", pc_isa16_cards, "fdc", false);
ISA16_SLOT(config, "isa3", 0, "mb:isabus", pc_isa16_cards, "comat", false);
ISA16_SLOT(config, "isa4", 0, "mb:isabus", pc_isa16_cards, "ide", false);
MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_IBM_PC_AT_84)
PC_KBDC_SLOT(config, "kbd", pc_at_keyboards, STR_KBD_IBM_PC_AT_84).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
/* internal ram */
RAM(config, m_ram).set_default_size("1664K").set_extra_options("2M,4M,8M,15M");
MACHINE_CONFIG_END
}
void at_state::ibm5170a(machine_config &config)
{
@ -471,17 +472,17 @@ void at_state::ibm5170a(machine_config &config)
m_maincpu->set_clock(16_MHz_XTAL / 2);
}
MACHINE_CONFIG_START(at_state::ews286)
void at_state::ews286(machine_config &config)
{
ibm5170(config);
m_maincpu->set_clock(16_MHz_XTAL / 2); // Exact crystal needs to be verified, 8 MHz according to specification
MCFG_DEVICE_MODIFY("isa2")
MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc", cfg_single_1200K) // From pictures but also with a 3.5" as second floppy
subdevice<isa16_slot_device>("isa2")->set_option_machine_config("fdc", cfg_single_1200K); // From pictures but also with a 3.5" as second floppy
MCFG_SOFTWARE_LIST_ADD("ews286_disk_list","ews286_flop")
SOFTWARE_LIST(config, "ews286_disk_list").set_original("ews286_flop");
m_ram->set_default_size("640K");
MACHINE_CONFIG_END
}
void at_state::ec1842(machine_config &config)
{
@ -489,36 +490,34 @@ void at_state::ec1842(machine_config &config)
m_maincpu->set_clock(12000000);
}
MACHINE_CONFIG_START(at_state::ibm5162)
void at_state::ibm5162(machine_config &config)
{
ibm5170(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_CLOCK(6000000)
MCFG_DEVICE_MODIFY("isa1")
MCFG_DEVICE_SLOT_INTERFACE(pc_isa16_cards, "cga", false)
MACHINE_CONFIG_END
m_maincpu->set_clock(6000000);
subdevice<isa16_slot_device>("isa1")->set_default_option("cga");
}
MACHINE_CONFIG_START(at_vrom_fix_state::ibmps1)
void at_vrom_fix_state::ibmps1(machine_config &config)
{
ibm5170(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_CLOCK(10_MHz_XTAL)
MCFG_DEVICE_PROGRAM_MAP(at16l_map)
MCFG_DEVICE_IO_MAP(ps1_16_io)
MCFG_DEVICE_MODIFY("isa1")
MCFG_DEVICE_SLOT_INTERFACE(pc_isa16_cards, "vga", true)
MCFG_DEVICE_MODIFY("kbd")
MCFG_DEVICE_SLOT_INTERFACE(pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL, false)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(at_state::atvga)
m_maincpu->set_clock(10_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &at_vrom_fix_state::at16l_map);
m_maincpu->set_addrmap(AS_IO, &at_vrom_fix_state::ps1_16_io);
subdevice<isa16_slot_device>("isa1")->set_default_option("vga");
subdevice<isa16_slot_device>("isa1")->set_fixed(true);
subdevice<pc_kbdc_slot_device>("kbd")->set_default_option(STR_KBD_MICROSOFT_NATURAL);
}
void at_state::atvga(machine_config &config)
{
ibm5170(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_CLOCK(12000000)
MCFG_DEVICE_MODIFY("isa1")
MCFG_DEVICE_SLOT_INTERFACE(pc_isa16_cards, "svga_et4k", false)
MCFG_DEVICE_MODIFY("kbd")
MCFG_DEVICE_SLOT_INTERFACE(pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL, false)
MCFG_DEVICE_ADD("isa5", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) // FIXME: determine ISA bus clock
MACHINE_CONFIG_END
m_maincpu->set_clock(12000000);
subdevice<isa16_slot_device>("isa1")->set_default_option("svga_et4k");
subdevice<pc_kbdc_slot_device>("kbd")->set_default_option(STR_KBD_MICROSOFT_NATURAL);
ISA16_SLOT(config, "isa5", 0, "mb:isabus", pc_isa16_cards, nullptr, false); // FIXME: determine ISA bus clock
}
void at_state::neat(machine_config &config)
{
@ -538,102 +537,105 @@ void at_state::xb42639(machine_config &config)
m_maincpu->set_clock(12500000);
}
MACHINE_CONFIG_START(at_state::k286i)
void at_state::k286i(machine_config &config)
{
ibm5162(config);
MCFG_DEVICE_MODIFY("kbd")
MCFG_DEVICE_SLOT_INTERFACE(pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL, false)
MCFG_DEVICE_ADD("isa5", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) // FIXME: determine ISA bus clock
MCFG_DEVICE_ADD("isa6", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa7", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa8", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MACHINE_CONFIG_END
subdevice<pc_kbdc_slot_device>("kbd")->set_default_option(STR_KBD_MICROSOFT_NATURAL);
ISA16_SLOT(config, "isa5", 0, "mb:isabus", pc_isa16_cards, nullptr, false); // FIXME: determine ISA bus clock
ISA16_SLOT(config, "isa6", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa7", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa8", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
}
MACHINE_CONFIG_START(at_state::at386)
MCFG_DEVICE_ADD("maincpu", I386, 12000000)
MCFG_DEVICE_PROGRAM_MAP(at32_map)
MCFG_DEVICE_IO_MAP(at32_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
void at_state::at386(machine_config &config)
{
i386_device &maincpu(I386(config, m_maincpu, 12000000));
maincpu.set_addrmap(AS_PROGRAM, &at_state::at32_map);
maincpu.set_addrmap(AS_IO, &at_state::at32_io);
maincpu.set_irq_acknowledge_callback("mb:pic8259_master", FUNC(pic8259_device::inta_cb));
AT_MB(config, m_mb, 0).at_softlists(config);
config.m_minimum_quantum = attotime::from_hz(60);
MCFG_DEVICE_ADD("mb", AT_MB, 0)
MCFG_QUANTUM_TIME(attotime::from_hz(60))
downcast<at_mb_device *>(device)->at_softlists(config);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
// on-board devices
MCFG_DEVICE_ADD("board1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "fdcsmc", true) // FIXME: deteremine ISA bus clock
MCFG_DEVICE_ADD("board2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "comat", true)
MCFG_DEVICE_ADD("board3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "ide", true)
MCFG_DEVICE_ADD("board4", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "lpt", true)
ISA16_SLOT(config, "board1", 0, "mb:isabus", pc_isa16_cards, "fdcsmc", true); // FIXME: deteremine ISA bus clock
ISA16_SLOT(config, "board2", 0, "mb:isabus", pc_isa16_cards, "comat", true);
ISA16_SLOT(config, "board3", 0, "mb:isabus", pc_isa16_cards, "ide", true);
ISA16_SLOT(config, "board4", 0, "mb:isabus", pc_isa16_cards, "lpt", true);
// ISA cards
MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "svga_et4k", false)
MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa4", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa5", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
ISA16_SLOT(config, "isa1", 0, "mb:isabus", pc_isa16_cards, "svga_et4k", false);
ISA16_SLOT(config, "isa2", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa3", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa4", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa5", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
PC_KBDC_SLOT(config, "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
/* internal ram */
RAM(config, m_ram).set_default_size("1664K").set_extra_options("2M,4M,8M,15M,16M,32M,64M");
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(at_state::at386l)
void at_state::at386l(machine_config &config)
{
at386(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(at32l_map)
MACHINE_CONFIG_END
m_maincpu->set_addrmap(AS_PROGRAM, &at_state::at32l_map);
}
MACHINE_CONFIG_START(at_state::at486)
void at_state::at486(machine_config &config)
{
at386(config);
MCFG_DEVICE_REPLACE("maincpu", I486, 25000000)
MCFG_DEVICE_PROGRAM_MAP(at32_map)
MCFG_DEVICE_IO_MAP(at32_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
MACHINE_CONFIG_END
i486_device &maincpu(I486(config.replace(), m_maincpu, 25000000));
maincpu.set_addrmap(AS_PROGRAM, &at_state::at32_map);
maincpu.set_addrmap(AS_IO, &at_state::at32_io);
maincpu.set_irq_acknowledge_callback("mb:pic8259_master", FUNC(pic8259_device::inta_cb));
}
MACHINE_CONFIG_START(at_state::at486l)
void at_state::at486l(machine_config &config)
{
at486(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(at32l_map)
MACHINE_CONFIG_END
m_maincpu->set_addrmap(AS_PROGRAM, &at_state::at32l_map);
}
MACHINE_CONFIG_START(at_state::at386sx)
void at_state::at386sx(machine_config &config)
{
atvga(config);
MCFG_DEVICE_REPLACE("maincpu", I386SX, 16000000) /* 386SX */
MCFG_DEVICE_PROGRAM_MAP(at16_map)
MCFG_DEVICE_IO_MAP(at16_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
MACHINE_CONFIG_END
i386sx_device &maincpu(I386SX(config.replace(), m_maincpu, 16000000)); /* 386SX */
maincpu.set_addrmap(AS_PROGRAM, &at_state::at16_map);
maincpu.set_addrmap(AS_IO, &at_state::at16_io);
maincpu.set_irq_acknowledge_callback("mb:pic8259_master", FUNC(pic8259_device::inta_cb));
}
MACHINE_CONFIG_START(at_state::ct386sx)
void at_state::ct386sx(machine_config &config)
{
at386sx(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_IO_MAP(neat_io)
m_maincpu->set_addrmap(AS_IO, &at_state::neat_io);
CS8221(config, "cs8221", 0, "maincpu", "mb:isa", "maincpu");
MACHINE_CONFIG_END
}
// Commodore PC 30-III
MACHINE_CONFIG_START(at_state::pc30iii)
void at_state::pc30iii(machine_config &config)
{
ibm5170(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_CLOCK(6000000) // should be 24_MHz_XTAL / 2, but doesn't post with that setting
MCFG_DEVICE_MODIFY("isa1")
MCFG_DEVICE_SLOT_INTERFACE(pc_isa16_cards, "vga", false) // should be ATI EGA Wonder 800+
MACHINE_CONFIG_END
m_maincpu->set_clock(6000000); // should be 24_MHz_XTAL / 2, but doesn't post with that setting
subdevice<isa16_slot_device>("isa1")->set_default_option("vga"); // should be ATI EGA Wonder 800+
}
// Commodore PC 40-III
MACHINE_CONFIG_START(at_state::pc40iii)
void at_state::pc40iii(machine_config &config)
{
ibm5170(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_CLOCK(6000000) // should be 24_MHz_XTAL / 2, but doesn't post with that setting
MCFG_DEVICE_MODIFY("isa1")
MCFG_DEVICE_SLOT_INTERFACE(pc_isa16_cards, "vga", false) // should be onboard Paradise VGA, see ROM declarations
MACHINE_CONFIG_END
m_maincpu->set_clock(6000000); // should be 24_MHz_XTAL / 2, but doesn't post with that setting
subdevice<isa16_slot_device>("isa1")->set_default_option("vga"); // should be onboard Paradise VGA, see ROM declarations
}
MACHINE_CONFIG_START(megapc_state::megapc)
MCFG_DEVICE_ADD("maincpu", I386SX, 50_MHz_XTAL / 2)
MCFG_DEVICE_PROGRAM_MAP(megapc_map)
MCFG_DEVICE_IO_MAP(megapc_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("wd7600", wd7600_device, intack_cb)
void megapc_state::megapc(machine_config &config)
{
i386sx_device &maincpu(I386SX(config, m_maincpu, 50_MHz_XTAL / 2));
maincpu.set_addrmap(AS_PROGRAM, &megapc_state::megapc_map);
maincpu.set_addrmap(AS_IO, &megapc_state::megapc_io);
maincpu.set_irq_acknowledge_callback("wd7600", FUNC(wd7600_device::intack_cb));
WD7600(config, m_wd7600, 50_MHz_XTAL / 2);
m_wd7600->set_cputag(m_maincpu);
@ -676,13 +678,13 @@ MACHINE_CONFIG_START(megapc_state::megapc)
m_isabus->drq6_callback().set(m_wd7600, FUNC(wd7600_device::dreq6_w));
m_isabus->drq7_callback().set(m_wd7600, FUNC(wd7600_device::dreq7_w));
MCFG_DEVICE_ADD("board1",ISA16_SLOT, 0, "isabus", pc_isa16_cards, "fdcsmc", true) // FIXME: determine ISA bus clock
MCFG_DEVICE_ADD("board2",ISA16_SLOT, 0, "isabus", pc_isa16_cards, "comat", true)
MCFG_DEVICE_ADD("board3",ISA16_SLOT, 0, "isabus", pc_isa16_cards, "ide", true)
MCFG_DEVICE_ADD("board4",ISA16_SLOT, 0, "isabus", pc_isa16_cards, "lpt", true)
MCFG_DEVICE_ADD("board5",ISA16_SLOT, 0, "isabus", pc_isa16_cards, "vga", true)
ISA16_SLOT(config, "board1", 0, "isabus", pc_isa16_cards, "fdcsmc", true); // FIXME: determine ISA bus clock
ISA16_SLOT(config, "board2", 0, "isabus", pc_isa16_cards, "comat", true);
ISA16_SLOT(config, "board3", 0, "isabus", pc_isa16_cards, "ide", true);
ISA16_SLOT(config, "board4", 0, "isabus", pc_isa16_cards, "lpt", true);
ISA16_SLOT(config, "board5", 0, "isabus", pc_isa16_cards, "vga", true);
// ISA cards
MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "isabus", pc_isa16_cards, nullptr, false)
ISA16_SLOT(config, "isa1", 0, "isabus", pc_isa16_cards, nullptr, false);
at_keyboard_controller_device &keybc(AT_KEYBOARD_CONTROLLER(config, "keybc", 12_MHz_XTAL));
keybc.hot_res().set("wd7600", FUNC(wd7600_device::kbrst_w));
@ -691,74 +693,76 @@ MACHINE_CONFIG_START(megapc_state::megapc)
keybc.kbd_clk().set("pc_kbdc", FUNC(pc_kbdc_device::clock_write_from_mb));
keybc.kbd_data().set("pc_kbdc", FUNC(pc_kbdc_device::data_write_from_mb));
MCFG_DEVICE_ADD("pc_kbdc", PC_KBDC, 0)
MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE("keybc", at_keyboard_controller_device, kbd_clk_w))
MCFG_PC_KBDC_OUT_DATA_CB(WRITELINE("keybc", at_keyboard_controller_device, kbd_data_w))
MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
pc_kbdc_device &pc_kbdc(PC_KBDC(config, "pc_kbdc", 0));
pc_kbdc.out_clock_cb().set("keybc", FUNC(at_keyboard_controller_device::kbd_clk_w));
pc_kbdc.out_data_cb().set("keybc", FUNC(at_keyboard_controller_device::kbd_data_w));
PC_KBDC_SLOT(config, "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL).set_pc_kbdc_slot(subdevice("pc_kbdc"));
/* internal ram */
RAM(config, m_ram).set_default_size("4M").set_extra_options("1M,2M,8M,15M,16M");
// sound hardware
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
// video hardware
MCFG_PALETTE_ADD("palette", 256) // todo: really needed?
PALETTE(config, "palette", 256); // todo: really needed?
/* software lists */
MCFG_SOFTWARE_LIST_ADD("disk_list","megapc")
MACHINE_CONFIG_END
SOFTWARE_LIST(config, "disk_list").set_original("megapc");
}
MACHINE_CONFIG_START(megapc_state::megapcpl)
void megapc_state::megapcpl(machine_config &config)
{
megapc(config);
MCFG_DEVICE_REPLACE("maincpu", I486, 66000000 / 2)
MCFG_DEVICE_PROGRAM_MAP(megapcpl_map)
MCFG_DEVICE_IO_MAP(megapcpl_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("wd7600", wd7600_device, intack_cb)
MACHINE_CONFIG_END
i486_device &maincpu(I486(config.replace(), m_maincpu, 66000000 / 2));
maincpu.set_addrmap(AS_PROGRAM, &megapc_state::megapcpl_map);
maincpu.set_addrmap(AS_IO, &megapc_state::megapcpl_io);
maincpu.set_irq_acknowledge_callback("wd7600", FUNC(wd7600_device::intack_cb));
}
MACHINE_CONFIG_START(at_vrom_fix_state::megapcpla)
MCFG_DEVICE_ADD("maincpu", I486, 66000000 / 2) // 486SLC
MCFG_DEVICE_PROGRAM_MAP(at32l_map)
MCFG_DEVICE_IO_MAP(at32_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
void at_vrom_fix_state::megapcpla(machine_config &config)
{
i486_device &maincpu(I486(config, m_maincpu, 66000000 / 2)); // 486SLC
maincpu.set_addrmap(AS_PROGRAM, &at_vrom_fix_state::at32l_map);
maincpu.set_addrmap(AS_IO, &at_vrom_fix_state::at32_io);
maincpu.set_irq_acknowledge_callback("mb:pic8259_master", FUNC(pic8259_device::inta_cb));
AT_MB(config, m_mb, 0).at_softlists(config);
config.m_minimum_quantum = attotime::from_hz(60);
MCFG_DEVICE_ADD("mb", AT_MB, 0)
MCFG_QUANTUM_TIME(attotime::from_hz(60))
downcast<at_mb_device *>(device)->at_softlists(config);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
// on board devices
MCFG_DEVICE_ADD("board1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "fdcsmc", true) // FIXME: determine ISA bus clock
MCFG_DEVICE_ADD("board2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "comat", true)
MCFG_DEVICE_ADD("board3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "ide", true)
MCFG_DEVICE_ADD("board4", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "lpt", true)
ISA16_SLOT(config, "board1", 0, "mb:isabus", pc_isa16_cards, "fdcsmc", true); // FIXME: determine ISA bus clock
ISA16_SLOT(config, "board2", 0, "mb:isabus", pc_isa16_cards, "comat", true);
ISA16_SLOT(config, "board3", 0, "mb:isabus", pc_isa16_cards, "ide", true);
ISA16_SLOT(config, "board4", 0, "mb:isabus", pc_isa16_cards, "lpt", true);
// ISA cards
MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "svga_dm", false) // closest to the CL-GD5420
MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa4", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa5", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
ISA16_SLOT(config, "isa1", 0, "mb:isabus", pc_isa16_cards, "svga_dm", false); // closest to the CL-GD5420
ISA16_SLOT(config, "isa2", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa3", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa4", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa5", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
PC_KBDC_SLOT(config, "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
/* internal ram */
RAM(config, m_ram).set_default_size("4M").set_extra_options("2M,8M,15M,16M,32M,64M,128M,256M");
/* software lists */
MCFG_SOFTWARE_LIST_ADD("disk_list","megapc")
MACHINE_CONFIG_END
SOFTWARE_LIST(config, "disk_list").set_original("megapc");
}
MACHINE_CONFIG_START(at_state::ficpio2)
MCFG_DEVICE_ADD("maincpu", I486, 25000000)
MCFG_DEVICE_PROGRAM_MAP(ficpio_map)
MCFG_DEVICE_IO_MAP(ficpio_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259_master", pic8259_device, inta_cb)
void at_state::ficpio2(machine_config &config)
{
i486_device &maincpu(I486(config, m_maincpu, 25000000));
maincpu.set_addrmap(AS_PROGRAM, &at_state::ficpio_map);
maincpu.set_addrmap(AS_IO, &at_state::ficpio_io);
maincpu.set_irq_acknowledge_callback("mb:pic8259_master", FUNC(pic8259_device::inta_cb));
MCFG_DEVICE_ADD("mb", AT_MB, 0)
MCFG_QUANTUM_TIME(attotime::from_hz(60))
downcast<at_mb_device *>(device)->at_softlists(config);
AT_MB(config, m_mb, 0).at_softlists(config);
config.m_minimum_quantum = attotime::from_hz(60);
ds12885_device &rtc(DS12885(config.replace(), "mb:rtc"));
rtc.irq().set("mb:pic8259_slave", FUNC(pic8259_device::ir0_w)); // this is in :mb
@ -767,31 +771,32 @@ MACHINE_CONFIG_START(at_state::ficpio2)
RAM(config, m_ram).set_default_size("4M").set_extra_options("1M,2M,8M,16M,32M,64M,128M");
// on board devices
MCFG_DEVICE_ADD("board1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "fdcsmc", true) // FIXME: determine ISA bus clock
MCFG_DEVICE_ADD("board2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "comat", true)
MCFG_DEVICE_ADD("board3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "lpt", true)
ISA16_SLOT(config, "board1", 0, "mb:isabus", pc_isa16_cards, "fdcsmc", true); // FIXME: determine ISA bus clock
ISA16_SLOT(config, "board2", 0, "mb:isabus", pc_isa16_cards, "comat", true);
ISA16_SLOT(config, "board3", 0, "mb:isabus", pc_isa16_cards, "lpt", true);
ide_controller_32_device &ide(IDE_CONTROLLER_32(config, "ide").options(ata_devices, "hdd", nullptr, true));
ide.irq_handler().set("mb:pic8259_slave", FUNC(pic8259_device::ir6_w));
ide_controller_32_device &ide2(IDE_CONTROLLER_32(config, "ide2").options(ata_devices, "cdrom", nullptr, true));
ide2.irq_handler().set("mb:pic8259_slave", FUNC(pic8259_device::ir7_w));
MCFG_PCI_BUS_ADD("pcibus", 0)
MCFG_PCI_BUS_DEVICE("pcibus:0", pci_devices, "vt82c505", true)
MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "svga_et4k", false)
MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa4", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false)
MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
PCI_BUS(config, "pcibus", 0).set_busnum(0);
PCI_CONNECTOR(config, "pcibus:0", pci_devices, "vt82c505", true);
ISA16_SLOT(config, "isa1", 0, "mb:isabus", pc_isa16_cards, "svga_et4k", false);
ISA16_SLOT(config, "isa2", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa3", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa4", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
PC_KBDC_SLOT(config, "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
vt82c496_device &chipset(VT82C496(config, "chipset"));
chipset.set_cputag(m_maincpu);
chipset.set_ramtag(m_ram);
chipset.set_isatag("isa");
MACHINE_CONFIG_END
}
// Compaq Portable III
MACHINE_CONFIG_START(at_state::comportiii)
void at_state::comportiii(machine_config &config)
{
/* basic machine hardware */
i80286_cpu_device &maincpu(I80286(config, m_maincpu, 48_MHz_XTAL / 4 /*12000000*/));
maincpu.set_addrmap(AS_PROGRAM, &at_state::at16_map);
@ -799,9 +804,8 @@ MACHINE_CONFIG_START(at_state::comportiii)
maincpu.set_irq_acknowledge_callback("mb:pic8259_master", FUNC(pic8259_device::inta_cb));
maincpu.shutdown_callback().set("mb", FUNC(at_mb_device::shutdown));
AT_MB(config, m_mb, 0);
AT_MB(config, m_mb, 0).at_softlists(config);
config.m_minimum_quantum = attotime::from_hz(60);
downcast<at_mb_device *>(device)->at_softlists(config);
// FIXME: determine ISA bus clock
ISA16_SLOT(config, "board1", 0, "mb:isabus", pc_isa16_cards, "fdc", true).set_option_machine_config("fdc", cfg_single_1200K);
@ -811,22 +815,21 @@ MACHINE_CONFIG_START(at_state::comportiii)
ISA16_SLOT(config, "isa1", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa2", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_IBM_PC_AT_84)
PC_KBDC_SLOT(config, "kbd", pc_at_keyboards, STR_KBD_IBM_PC_AT_84).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
/* internal ram */
RAM(config, m_ram).set_default_size("640K").set_extra_options("1152K,1664K,2176K,2688K,4736K,6784K");
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(at_state::comportii)
void at_state::comportii(machine_config &config)
{
ibm5170(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_CLOCK(48_MHz_XTAL / 6)
MCFG_DEVICE_MODIFY("isa2")
MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc", cfg_single_360K)
MCFG_DEVICE_MODIFY("isa4")
MCFG_SLOT_DEFAULT_OPTION("hdc")
m_maincpu->set_clock(48_MHz_XTAL / 6);
subdevice<isa16_slot_device>("isa2")->set_option_machine_config("fdc", cfg_single_360K);
subdevice<isa16_slot_device>("isa4")->set_default_option("hdc");
m_ram->set_default_size("640K").set_extra_options("1152K,1664K,2176K,2688K,4224K");
MACHINE_CONFIG_END
}
//**************************************************************************
// ROM DEFINITIONS

View File

@ -96,93 +96,88 @@ void at586_state::at586_io(address_map &map)
map(0x0cf8, 0x0cff).rw("pcibus", FUNC(pci_bus_device::read), FUNC(pci_bus_device::write));
}
MACHINE_CONFIG_START(at586_state::at_softlists)
void at586_state::at_softlists(machine_config &config)
{
/* software lists */
MCFG_SOFTWARE_LIST_ADD("pc_disk_list","ibm5150")
MCFG_SOFTWARE_LIST_ADD("at_disk_list","ibm5170")
MCFG_SOFTWARE_LIST_ADD("at_cdrom_list","ibm5170_cdrom")
MACHINE_CONFIG_END
SOFTWARE_LIST(config, "pc_disk_list").set_original("ibm5150");
SOFTWARE_LIST(config, "at_disk_list").set_original("ibm5170");
SOFTWARE_LIST(config, "at_cdrom_list").set_original("ibm5170_cdrom");
}
MACHINE_CONFIG_START(at586_state::at586)
MCFG_DEVICE_ADD("maincpu", PENTIUM, 60000000)
MCFG_DEVICE_PROGRAM_MAP(at586_map)
MCFG_DEVICE_IO_MAP(at586_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pcibus:1:i82371ab:pic8259_master", pic8259_device, inta_cb)
void at586_state::at586(machine_config &config)
{
pentium_device &maincpu(PENTIUM(config, m_maincpu, 60000000));
maincpu.set_addrmap(AS_PROGRAM, &at586_state::at586_map);
maincpu.set_addrmap(AS_IO, &at586_state::at586_io);
maincpu.set_irq_acknowledge_callback("pcibus:1:i82371ab:pic8259_master", FUNC(pic8259_device::inta_cb));
RAM(config, RAM_TAG).set_default_size("4M").set_extra_options("1M,2M,8M,16M,32M,64M,128M,256M");
MCFG_PCI_BUS_ADD("pcibus", 0)
MCFG_PCI_BUS_DEVICE("pcibus:0", pci_devices, "i82439tx", true)
MCFG_SLOT_OPTION_MACHINE_CONFIG("i82439tx", tx_config)
MCFG_PCI_BUS_DEVICE("pcibus:1", pci_devices, "i82371ab", true)
PCI_BUS(config, "pcibus", 0).set_busnum(0);
PCI_CONNECTOR(config, "pcibus:0", pci_devices, "i82439tx", true).set_option_machine_config("i82439tx", tx_config);
PCI_CONNECTOR(config, "pcibus:1", pci_devices, "i82371ab", true);
// FIXME: determine ISA bus clock
MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "pcibus:1:i82371ab:isabus", pc_isa16_cards, "svga_et4k", false)
MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, "pcibus:1:i82371ab:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, "pcibus:1:i82371ab:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa4", ISA16_SLOT, 0, "pcibus:1:i82371ab:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa5", ISA16_SLOT, 0, "pcibus:1:i82371ab:isabus", pc_isa16_cards, nullptr, false)
ISA16_SLOT(config, "isa1", 0, "pcibus:1:i82371ab:isabus", pc_isa16_cards, "svga_et4k", false);
ISA16_SLOT(config, "isa2", 0, "pcibus:1:i82371ab:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa3", 0, "pcibus:1:i82371ab:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa4", 0, "pcibus:1:i82371ab:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa5", 0, "pcibus:1:i82371ab:isabus", pc_isa16_cards, nullptr, false);
at_softlists(config);
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(at586_state::at586x3)
MCFG_DEVICE_ADD("maincpu", PENTIUM, 60000000)
MCFG_DEVICE_PROGRAM_MAP(at586_map)
MCFG_DEVICE_IO_MAP(at586_io)
MCFG_I386_SMIACT(WRITELINE("pcibus:0:i82439tx", i82439tx_device, smi_act_w))
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pcibus:1:i82371sb:pic8259_master", pic8259_device, inta_cb)
void at586_state::at586x3(machine_config &config)
{
pentium_device &maincpu(PENTIUM(config, m_maincpu, 60000000));
maincpu.set_addrmap(AS_PROGRAM, &at586_state::at586_map);
maincpu.set_addrmap(AS_IO, &at586_state::at586_io);
maincpu.smiact().set("pcibus:0:i82439tx", FUNC(i82439tx_device::smi_act_w));
maincpu.set_irq_acknowledge_callback("pcibus:1:i82371sb:pic8259_master", FUNC(pic8259_device::inta_cb));
RAM(config, RAM_TAG).set_default_size("4M").set_extra_options("1M,2M,8M,16M,32M,64M,128M,256M");
MCFG_PCI_BUS_ADD("pcibus", 0)
MCFG_PCI_BUS_DEVICE("pcibus:0", pci_devices, "i82439tx", true)
MCFG_SLOT_OPTION_MACHINE_CONFIG("i82439tx", tx_config)
MCFG_PCI_BUS_DEVICE("pcibus:1", pci_devices, "i82371sb", true)
MCFG_SLOT_OPTION_MACHINE_CONFIG("i82371sb", sb_config)
PCI_BUS(config, "pcibus", 0).set_busnum(0);
PCI_CONNECTOR(config, "pcibus:0", pci_devices, "i82439tx", true).set_option_machine_config("i82439tx", tx_config);
PCI_CONNECTOR(config, "pcibus:1", pci_devices, "i82371sb", true).set_option_machine_config("i82371sb", sb_config);
// FIXME: determine ISA bus clock
MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "pcibus:1:i82371sb:isabus", pc_isa16_cards, "svga_et4k", false)
MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, "pcibus:1:i82371sb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, "pcibus:1:i82371sb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa4", ISA16_SLOT, 0, "pcibus:1:i82371sb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa5", ISA16_SLOT, 0, "pcibus:1:i82371sb:isabus", pc_isa16_cards, nullptr, false)
ISA16_SLOT(config, "isa1", 0, "pcibus:1:i82371sb:isabus", pc_isa16_cards, "svga_et4k", false);
ISA16_SLOT(config, "isa2", 0, "pcibus:1:i82371sb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa3", 0, "pcibus:1:i82371sb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa4", 0, "pcibus:1:i82371sb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa5", 0, "pcibus:1:i82371sb:isabus", pc_isa16_cards, nullptr, false);
at_softlists(config);
MACHINE_CONFIG_END
}
static INPUT_PORTS_START(at586m55)
PORT_INCLUDE(at_keyboard)
INPUT_PORTS_END
MACHINE_CONFIG_START(at586_state::at586m55)
MCFG_DEVICE_ADD("maincpu", PENTIUM, 60000000)
MCFG_DEVICE_PROGRAM_MAP(at586_map)
MCFG_DEVICE_IO_MAP(at586_io)
MCFG_I386_SMIACT(WRITELINE("pcibus:0:i82439tx", i82439tx_device, smi_act_w))
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pcibus:7:i82371sb:pic8259_master", pic8259_device, inta_cb)
void at586_state::at586m55(machine_config &config)
{
pentium_device &pentium(PENTIUM(config, m_maincpu, 60000000));
pentium.set_addrmap(AS_PROGRAM, &at586_state::at586_map);
pentium.set_addrmap(AS_IO, &at586_state::at586_io);
pentium.smiact().set("pcibus:0:i82439tx", FUNC(i82439tx_device::smi_act_w));
pentium.set_irq_acknowledge_callback("pcibus:7:i82371sb:pic8259_master", FUNC(pic8259_device::inta_cb));
RAM(config, RAM_TAG).set_default_size("4M").set_extra_options("1M,2M,8M,16M,32M,64M,128M,256M");
MCFG_PCI_BUS_ADD("pcibus", 0)
MCFG_PCI_BUS_DEVICE("pcibus:0", pci_devices, "i82439tx", true)
MCFG_SLOT_OPTION_MACHINE_CONFIG("i82439tx", tx_config)
PCI_BUS(config, "pcibus", 0).set_busnum(0);
PCI_CONNECTOR(config, "pcibus:0", pci_devices, "i82439tx", true).set_option_machine_config("i82439tx", tx_config);
PCI_CONNECTOR(config, "pcibus:7", pci_devices, "i82371sb", true).set_option_machine_config("i82371sb", sb_config);
MCFG_PCI_BUS_DEVICE("pcibus:7", pci_devices, "i82371sb", true)
MCFG_SLOT_OPTION_MACHINE_CONFIG("i82371sb", sb_config)
MCFG_DEVICE_ADD("board4", ISA16_SLOT, 0, "pcibus:7:i82371sb:isabus", isa_internal_devices, "fdc37c93x", true)
MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc37c93x", superio_config)
MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "pcibus:7:i82371sb:isabus", pc_isa16_cards, "svga_et4k", false)
MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, "pcibus:7:i82371sb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, "pcibus:7:i82371sb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa4", ISA16_SLOT, 0, "pcibus:7:i82371sb:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa5", ISA16_SLOT, 0, "pcibus:7:i82371sb:isabus", pc_isa16_cards, nullptr, false)
ISA16_SLOT(config, "board4", 0, "pcibus:7:i82371sb:isabus", isa_internal_devices, "fdc37c93x", true).set_option_machine_config("fdc37c93x", superio_config);
ISA16_SLOT(config, "isa1", 0, "pcibus:7:i82371sb:isabus", pc_isa16_cards, "svga_et4k", false);
ISA16_SLOT(config, "isa2", 0, "pcibus:7:i82371sb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa3", 0, "pcibus:7:i82371sb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa4", 0, "pcibus:7:i82371sb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa5", 0, "pcibus:7:i82371sb:isabus", pc_isa16_cards, nullptr, false);
at_softlists(config);
MACHINE_CONFIG_END
}
ROM_START( at586 )
ROM_REGION32_LE(0x40000, "isa", 0)

View File

@ -167,14 +167,15 @@ void nforcepc_state::nforce_map_io(address_map &map)
Machine configuration
*/
MACHINE_CONFIG_START(nforcepc_state::nforcepc)
MCFG_DEVICE_ADD("maincpu", ATHLONXP, 90000000)
MCFG_DEVICE_PROGRAM_MAP(nforce_map)
MCFG_DEVICE_IO_MAP(nforce_map_io)
MCFG_DEVICE_ADD(":pci", PCI_ROOT, 0)
MCFG_DEVICE_ADD(":pci:00.0", CRUSH11, 0, "maincpu", 2 * 1024 * 1024)
/* MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pci:07.0:pic8259_master", pic8259_device, inta_cb)
MCFG_I386_SMIACT(WRITELINE("pci:00.0", i82439hx_host_device, smi_act_w))
void nforcepc_state::nforcepc(machine_config &config)
{
athlonxp_device &maincpu(ATHLONXP(config, "maincpu", 90000000));
maincpu.set_addrmap(AS_PROGRAM, &nforcepc_state::nforce_map);
maincpu.set_addrmap(AS_IO, &nforcepc_state::nforce_map_io);
PCI_ROOT(config, ":pci", 0);
CRUSH11(config, ":pci:00.0", 0, "maincpu", 2 * 1024 * 1024);
/* maincpu.set_irq_acknowledge_callback("pci:07.0:pic8259_master", FUNC(pic8259_device::inta_cb));
maincpu.smiact().set("pci:00.0", FUNC(i82439hx_host_device::smi_act_w));
i82371sb_isa_device &isa(I82371SB_ISA(config, ":pci:07.0", 0));
isa.boot_state_hook().set(FUNC(nforcepc_state::boot_state_phoenix_ver40_rev6_w));
@ -183,7 +184,7 @@ MACHINE_CONFIG_START(nforcepc_state::nforcepc)
i82371sb_ide_device &ide(I82371SB_IDE(config, ":pci:07.1", 0));
ide.irq_pri().set(":pci:07.0", FUNC(i82371sb_isa_device::pc_irq14_w));
ide.irq_sec().set(":pci:07.0", FUNC(i82371sb_isa_device::pc_irq15_w));*/
MACHINE_CONFIG_END
}
ROM_START(nforcepc)
ROM_REGION32_LE(0x40000, ":pci:00.0", 0) /* PC bios */

View File

@ -2458,7 +2458,7 @@ void pc9801_state::pc9801ux(machine_config &config)
i80286_cpu_device &maincpu(I80286(config.replace(), m_maincpu, 10000000));
maincpu.set_addrmap(AS_PROGRAM, &pc9801_state::pc9801ux_map);
maincpu.set_addrmap(AS_IO, &pc9801_state::pc9801ux_io);
maincpu.set_a20_callback(FUNC(pc9801_state::a20_286));
maincpu.set_a20_callback(i80286_cpu_device::a20_cb(&pc9801_state::a20_286, this));
maincpu.set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
// MCFG_DEVICE_MODIFY("i8237", AM9157A, 10000000) // unknown clock
}

View File

@ -518,15 +518,16 @@ void pcipc_state::pcipc_map_io(address_map &map)
map.unmap_value_high();
}
MACHINE_CONFIG_START(pcipc_state::pcipc)
MCFG_DEVICE_ADD("maincpu", PENTIUM, 90000000)
MCFG_DEVICE_PROGRAM_MAP(pcipc_map)
MCFG_DEVICE_IO_MAP(pcipc_map_io)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pci:07.0:pic8259_master", pic8259_device, inta_cb)
MCFG_I386_SMIACT(WRITELINE("pci:00.0", i82439hx_host_device, smi_act_w))
void pcipc_state::pcipc(machine_config &config)
{
pentium_device &maincpu(PENTIUM(config, "maincpu", 90000000));
maincpu.set_addrmap(AS_PROGRAM, &pcipc_state::pcipc_map);
maincpu.set_addrmap(AS_IO, &pcipc_state::pcipc_map_io);
maincpu.set_irq_acknowledge_callback("pci:07.0:pic8259_master", FUNC(pic8259_device::inta_cb));
maincpu.smiact().set("pci:00.0", FUNC(i82439hx_host_device::smi_act_w));
MCFG_DEVICE_ADD( ":pci", PCI_ROOT, 0)
MCFG_DEVICE_ADD( ":pci:00.0", I82439HX, 0, "maincpu", 256*1024*1024)
PCI_ROOT(config, ":pci", 0);
I82439HX(config, ":pci:00.0", 0, "maincpu", 256*1024*1024);
i82371sb_isa_device &isa(I82371SB_ISA(config, ":pci:07.0", 0));
isa.boot_state_hook().set(FUNC(pcipc_state::boot_state_phoenix_ver40_rev6_w));
@ -537,39 +538,41 @@ MACHINE_CONFIG_START(pcipc_state::pcipc)
ide.irq_sec().set(":pci:07.0", FUNC(i82371sb_isa_device::pc_irq15_w));
// MCFG_DEVICE_ADD( ":pci:12.0", MGA2064W, 0)
MCFG_DEVICE_ADD("board4", ISA16_SLOT, 0, "pci:07.0:isabus", isa_internal_devices, "fdc37c93x", true)
MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc37c93x", superio_config)
MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "pci:07.0:isabus", pc_isa16_cards, "svga_et4k", false)
MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, "pci:07.0:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, "pci:07.0:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa4", ISA16_SLOT, 0, "pci:07.0:isabus", pc_isa16_cards, nullptr, false)
MCFG_DEVICE_ADD("isa5", ISA16_SLOT, 0, "pci:07.0:isabus", pc_isa16_cards, nullptr, false)
ISA16_SLOT(config, "board4", 0, "pci:07.0:isabus", isa_internal_devices, "fdc37c93x", true).set_option_machine_config("fdc37c93x", superio_config);
ISA16_SLOT(config, "isa1", 0, "pci:07.0:isabus", pc_isa16_cards, "svga_et4k", false);
ISA16_SLOT(config, "isa2", 0, "pci:07.0:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa3", 0, "pci:07.0:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa4", 0, "pci:07.0:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa5", 0, "pci:07.0:isabus", pc_isa16_cards, nullptr, false);
rs232_port_device &serport0(RS232_PORT(config, "serport0", isa_com, "logitech_mouse"));
serport0.rxd_handler().set("board4:fdc37c93x", FUNC(fdc37c93x_device::rxd1_w));
serport0.dcd_handler().set("board4:fdc37c93x", FUNC(fdc37c93x_device::ndcd1_w));
serport0.dsr_handler().set("board4:fdc37c93x", FUNC(fdc37c93x_device::ndsr1_w));
serport0.ri_handler().set("board4:fdc37c93x", FUNC(fdc37c93x_device::nri1_w));
serport0.cts_handler().set("board4:fdc37c93x", FUNC(fdc37c93x_device::ncts1_w));
rs232_port_device &serport1(RS232_PORT(config, "serport1", isa_com, nullptr));
serport1.rxd_handler().set("board4:fdc37c93x", FUNC(fdc37c93x_device::rxd2_w));
serport1.dcd_handler().set("board4:fdc37c93x", FUNC(fdc37c93x_device::ndcd2_w));
serport1.dsr_handler().set("board4:fdc37c93x", FUNC(fdc37c93x_device::ndsr2_w));
serport1.ri_handler().set("board4:fdc37c93x", FUNC(fdc37c93x_device::nri2_w));
serport1.cts_handler().set("board4:fdc37c93x", FUNC(fdc37c93x_device::ncts2_w));
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(pcipc_state::pcipctx)
MCFG_DEVICE_ADD("maincpu", PENTIUM, 60000000)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pci:07.0:pic8259_master", pic8259_device, inta_cb)
void pcipc_state::pcipctx(machine_config &config)
{
pentium_device &maincpu(PENTIUM(config, "maincpu", 60000000));
maincpu.set_irq_acknowledge_callback("pci:07.0:pic8259_master", FUNC(pic8259_device::inta_cb));
MCFG_DEVICE_ADD( ":pci", PCI_ROOT, 0)
MCFG_DEVICE_ADD( ":pci:00.0", I82439TX, 0, ":maincpu", 256*1024*1024)
PCI_ROOT(config, ":pci", 0);
I82439TX(config, ":pci:00.0", 0, ":maincpu", 256*1024*1024);
i82371sb_isa_device &isa(I82371SB_ISA(config, ":pci:07.0", 0));
isa.boot_state_hook().set(FUNC(pcipc_state::boot_state_award_w));
// MCFG_DEVICE_ADD( ":pci:07.1", IDE_PCI, 0, 0x80867010, 0x03, 0x00000000)
MCFG_DEVICE_ADD( ":pci:12.0", MGA2064W, 0)
MACHINE_CONFIG_END
// IDE_PCI(config, ":pci:07.1", 0, 0x80867010, 0x03, 0x00000000);
MGA2064W(config, ":pci:12.0", 0);
}
ROM_START(pcipc)
ROM_REGION32_LE(0x40000, ":pci:07.0", 0) /* PC bios */

View File

@ -86,7 +86,8 @@ void ps2_state::machine_start()
}
}
MACHINE_CONFIG_START(ps2_state::ps2m30286)
void ps2_state::ps2m30286(machine_config &config)
{
/* basic machine hardware */
i80286_cpu_device &maincpu(I80286(config, m_maincpu, 10000000));
maincpu.set_addrmap(AS_PROGRAM, &ps2_state::ps2_16_map);
@ -105,13 +106,14 @@ MACHINE_CONFIG_START(ps2_state::ps2m30286)
ISA16_SLOT(config, "isa2", 0, "mb:isabus", pc_isa16_cards, "fdc", false);
ISA16_SLOT(config, "isa3", 0, "mb:isabus", pc_isa16_cards, "ide", false);
ISA16_SLOT(config, "isa4", 0, "mb:isabus", pc_isa16_cards, "comat", false);
MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_IBM_PC_AT_84)
PC_KBDC_SLOT(config, "kbd", pc_at_keyboards, STR_KBD_IBM_PC_AT_84).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
/* internal ram */
RAM(config, RAM_TAG).set_default_size("1664K").set_extra_options("2M,4M,8M,15M");
MACHINE_CONFIG_END
}
MACHINE_CONFIG_START(ps2_state::ps2386)
void ps2_state::ps2386(machine_config &config)
{
I386(config, m_maincpu, 12000000);
m_maincpu->set_addrmap(AS_PROGRAM, &ps2_state::ps2_32_map);
m_maincpu->set_addrmap(AS_IO, &ps2_state::ps2_32_io);
@ -133,11 +135,11 @@ MACHINE_CONFIG_START(ps2_state::ps2386)
ISA16_SLOT(config, "isa3", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa4", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
ISA16_SLOT(config, "isa5", 0, "mb:isabus", pc_isa16_cards, nullptr, false);
MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
PC_KBDC_SLOT(config, "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
/* internal ram */
RAM(config, RAM_TAG).set_default_size("1664K").set_extra_options("2M,4M,8M,15M,16M,32M,64M,128M,256M");
MACHINE_CONFIG_END
}
ROM_START( i8530286 )
ROM_REGION(0x20000,"bios", 0)

View File

@ -47,6 +47,7 @@ private:
required_device<speaker_sound_device> m_speaker;
required_region_ptr<uint8_t> m_bios;
LC8670_LCD_UPDATE(svmu_lcd_update);
DECLARE_PALETTE_INIT(svmu);
virtual void machine_reset() override;
@ -168,7 +169,7 @@ PALETTE_INIT_MEMBER(svmu_state, svmu)
palette.set_pen_color(1, rgb_t(92, 83, 88));
}
static LC8670_LCD_UPDATE( svmu_lcd_update )
LC8670_LCD_UPDATE(svmu_state::svmu_lcd_update)
{
if (lcd_enabled)
{
@ -186,10 +187,10 @@ static LC8670_LCD_UPDATE( svmu_lcd_update )
bitmap.fill(0, cliprect);
}
device.machine().output().set_value("file_icon" , lcd_enabled ? BIT(vram[0xc1],6) : 0);
device.machine().output().set_value("game_icon" , lcd_enabled ? BIT(vram[0xc2],4) : 0);
device.machine().output().set_value("clock_icon", lcd_enabled ? BIT(vram[0xc3],2) : 0);
device.machine().output().set_value("flash_icon", lcd_enabled ? BIT(vram[0xc4],0) : 0);
machine().output().set_value("file_icon" , lcd_enabled ? BIT(vram[0xc1],6) : 0);
machine().output().set_value("game_icon" , lcd_enabled ? BIT(vram[0xc2],4) : 0);
machine().output().set_value("clock_icon", lcd_enabled ? BIT(vram[0xc3],2) : 0);
machine().output().set_value("flash_icon", lcd_enabled ? BIT(vram[0xc4],0) : 0);
return 0;
}
@ -308,43 +309,44 @@ QUICKLOAD_LOAD_MEMBER( svmu_state, svmu )
}
MACHINE_CONFIG_START(svmu_state::svmu)
void svmu_state::svmu(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", LC8670, XTAL(32'768))
MCFG_DEVICE_PROGRAM_MAP(svmu_mem)
MCFG_DEVICE_IO_MAP(svmu_io_mem)
LC8670(config, m_maincpu, XTAL(32'768));
m_maincpu->set_addrmap(AS_PROGRAM, &svmu_state::svmu_mem);
m_maincpu->set_addrmap(AS_IO, &svmu_state::svmu_io_mem);
/* specific LC8670 configurations */
MCFG_LC8670_SET_CLOCK_SOURCES(XTAL(32'768), 600000, XTAL(6'000'000)) // tolerance range of the RC oscillator is 600kHz to 1200kHz
MCFG_LC8670_BANKSWITCH_CB(WRITE8(*this, svmu_state, page_w))
MCFG_LC8670_LCD_UPDATE_CB(svmu_lcd_update)
m_maincpu->set_clock_sources(XTAL(32'768), 600000, XTAL(6'000'000)); // tolerance range of the RC oscillator is 600kHz to 1200kHz
m_maincpu->bank_cb().set(FUNC(svmu_state::page_w));
m_maincpu->set_lcd_update_cb(FUNC(svmu_state::svmu_lcd_update));
/* video hardware */
MCFG_SCREEN_ADD("screen", LCD)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate
MCFG_SCREEN_SIZE(48 * (PIXEL_SIZE + PIXEL_DISTANCE), 32 * (PIXEL_SIZE + PIXEL_DISTANCE))
MCFG_SCREEN_VISIBLE_AREA(0, 48*(PIXEL_SIZE + PIXEL_DISTANCE) - 1, 0, 32*(PIXEL_SIZE + PIXEL_DISTANCE) - 1)
MCFG_SCREEN_UPDATE_DEVICE("maincpu", lc8670_cpu_device, screen_update)
MCFG_SCREEN_PALETTE("palette")
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
screen.set_size(48 * (PIXEL_SIZE + PIXEL_DISTANCE), 32 * (PIXEL_SIZE + PIXEL_DISTANCE));
screen.set_visarea(0, 48*(PIXEL_SIZE + PIXEL_DISTANCE) - 1, 0, 32*(PIXEL_SIZE + PIXEL_DISTANCE) - 1);
screen.set_screen_update("maincpu", FUNC(lc8670_cpu_device::screen_update));
screen.set_palette("palette");
config.set_default_layout(layout_svmu);
MCFG_PALETTE_ADD("palette", 2)
MCFG_PALETTE_INIT_OWNER(svmu_state, svmu)
PALETTE(config, "palette", 2).set_init(FUNC(svmu_state::palette_init_svmu));
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
/* devices */
ATMEL_29C010(config, "flash");
MCFG_QUICKLOAD_ADD("quickload", svmu_state, svmu, "vms,bin", 0)
MCFG_QUICKLOAD_INTERFACE("svmu_quik")
ATMEL_29C010(config, m_flash);
quickload_image_device &quickload(QUICKLOAD(config, "quickload", 0));
quickload.set_handler(snapquick_load_delegate(&QUICKLOAD_LOAD_NAME(svmu_state, svmu), this), "vms,bin", 0);
quickload.set_interface("svmu_quik");
/* Software lists */
MCFG_SOFTWARE_LIST_ADD("quik_list", "svmu")
MACHINE_CONFIG_END
SOFTWARE_LIST(config, "quik_list").set_original("svmu");
}
/* ROM definition */

View File

@ -888,7 +888,7 @@ void tandy2k_state::tandy2k_hd(machine_config &config)
{
tandy2k(config);
// basic machine hardware
m_maincpu->set_addrmap(AS_PROGRAM, &tandy2k_state::tandy2k_hd_io);
m_maincpu->set_addrmap(AS_IO, &tandy2k_state::tandy2k_hd_io);
// Tandon TM502 hard disk
HARDDISK(config, "harddisk0", 0);

View File

@ -43,7 +43,7 @@ void at_mb_device::device_reset()
void at_mb_device::device_start()
{
if(!strncmp(m_maincpu->shortname(), "i80286", 6))
downcast<i80286_cpu_device *>(m_maincpu.target())->set_a20_callback(FUNC(at_mb_device::a20_286));
downcast<i80286_cpu_device *>(m_maincpu.target())->set_a20_callback(i80286_cpu_device::a20_cb(&at_mb_device::a20_286, this));
}
MACHINE_CONFIG_START(at_mb_device::at_softlists)