mirror of
https://github.com/holub/mame
synced 2025-06-06 21:03:47 +03:00
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:
parent
d87615d0f1
commit
97f2889f32
@ -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();
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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(); }
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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];
|
||||
|
@ -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));
|
||||
|
@ -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 );
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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 */
|
||||
|
@ -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)
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user