mirror of
https://github.com/holub/mame
synced 2025-10-05 08:41:31 +03:00
amstr_pc: Machines have internal 3.5" floppy drive.
This commit is contained in:
parent
3da383f372
commit
7e3d87d6c1
@ -95,6 +95,7 @@ private:
|
|||||||
|
|
||||||
int m_dipstate;
|
int m_dipstate;
|
||||||
static void cfg_com(device_t *device);
|
static void cfg_com(device_t *device);
|
||||||
|
static void cfg_fdc(device_t *device);
|
||||||
|
|
||||||
void pc200_io(address_map &map);
|
void pc200_io(address_map &map);
|
||||||
void pc2086_map(address_map &map);
|
void pc2086_map(address_map &map);
|
||||||
@ -484,25 +485,37 @@ INPUT_PORTS_END
|
|||||||
// GFXDECODE_ENTRY( "gfx1", 0x0000, pc200_charlayout, 3, 1 )
|
// GFXDECODE_ENTRY( "gfx1", 0x0000, pc200_charlayout, 3, 1 )
|
||||||
// GFXDECODE_END
|
// GFXDECODE_END
|
||||||
|
|
||||||
// has it's own mouse
|
|
||||||
void amstrad_pc_state::cfg_com(device_t *device)
|
void amstrad_pc_state::cfg_com(device_t *device)
|
||||||
{
|
{
|
||||||
|
/* has it's own mouse */
|
||||||
device = device->subdevice("serport0");
|
device = device->subdevice("serport0");
|
||||||
MCFG_SLOT_DEFAULT_OPTION(nullptr)
|
MCFG_SLOT_DEFAULT_OPTION(nullptr)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void amstrad_pc_state::cfg_fdc(device_t *device)
|
||||||
|
{
|
||||||
|
/* all machines have an internal 3.5" drive */
|
||||||
|
auto fdc0 = dynamic_cast<device_slot_interface *>(device->subdevice("fdc:0"));
|
||||||
|
fdc0->set_default_option("35dd");
|
||||||
|
fdc0->set_fixed(true);
|
||||||
|
|
||||||
|
auto fdc1 = dynamic_cast<device_slot_interface *>(device->subdevice("fdc:1"));
|
||||||
|
fdc1->set_default_option("35dd");
|
||||||
|
}
|
||||||
|
|
||||||
MACHINE_CONFIG_START(amstrad_pc_state::pc200)
|
MACHINE_CONFIG_START(amstrad_pc_state::pc200)
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_DEVICE_ADD("maincpu", I8086, 8000000)
|
I8086(config, m_maincpu, 8000000);
|
||||||
MCFG_DEVICE_PROGRAM_MAP(ppc640_map)
|
m_maincpu->set_addrmap(AS_PROGRAM, amstrad_pc_state::ppc640_map);
|
||||||
MCFG_DEVICE_IO_MAP(pc200_io)
|
m_maincpu->set_addrmap(AS_IO, amstrad_pc_state::pc200_io);
|
||||||
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
|
m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb));
|
||||||
|
|
||||||
MCFG_PCNOPPI_MOTHERBOARD_ADD("mb", "maincpu")
|
MCFG_PCNOPPI_MOTHERBOARD_ADD("mb", "maincpu")
|
||||||
|
|
||||||
// FIXME: determine ISA bus clock
|
// FIXME: determine ISA bus clock
|
||||||
MCFG_DEVICE_ADD("aga", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "aga_pc200", true)
|
MCFG_DEVICE_ADD("aga", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "aga_pc200", true)
|
||||||
MCFG_DEVICE_ADD("fdc", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", true)
|
MCFG_DEVICE_ADD("fdc", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", true)
|
||||||
|
MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_fdc)
|
||||||
MCFG_DEVICE_ADD("com", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", true)
|
MCFG_DEVICE_ADD("com", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", true)
|
||||||
MCFG_SLOT_OPTION_MACHINE_CONFIG("com", cfg_com)
|
MCFG_SLOT_OPTION_MACHINE_CONFIG("com", cfg_com)
|
||||||
|
|
||||||
@ -527,24 +540,25 @@ MACHINE_CONFIG_START(amstrad_pc_state::pc200)
|
|||||||
RAM(config, m_ram).set_default_size("640K").set_extra_options("512K");
|
RAM(config, m_ram).set_default_size("640K").set_extra_options("512K");
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
MACHINE_CONFIG_START(amstrad_pc_state::pc2086)
|
void amstrad_pc_state::pc2086(machine_config &config)
|
||||||
|
{
|
||||||
pc200(config);
|
pc200(config);
|
||||||
MCFG_DEVICE_MODIFY("maincpu")
|
m_maincpu->set_addrmap(AS_PROGRAM, &amstrad_pc_state::pc2086_map);
|
||||||
MCFG_DEVICE_PROGRAM_MAP(pc2086_map)
|
}
|
||||||
MACHINE_CONFIG_END
|
|
||||||
|
|
||||||
MACHINE_CONFIG_START(amstrad_pc_state::ppc640)
|
void amstrad_pc_state::ppc640(machine_config &config)
|
||||||
|
{
|
||||||
pc200(config);
|
pc200(config);
|
||||||
MCFG_DEVICE_REPLACE("maincpu", V30, 8000000)
|
config.device_replace("maincpu", V30, 8000000);
|
||||||
MCFG_DEVICE_PROGRAM_MAP(ppc640_map)
|
m_maincpu->set_addrmap(AS_PROGRAM, amstrad_pc_state::ppc640_map);
|
||||||
MCFG_DEVICE_IO_MAP(ppc512_io)
|
m_maincpu->set_addrmap(AS_IO, amstrad_pc_state::ppc512_io);
|
||||||
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
|
m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb));
|
||||||
|
|
||||||
MCFG_DEVICE_REMOVE("isa1")
|
config.device_remove("isa1");
|
||||||
MCFG_DEVICE_REMOVE("isa2")
|
config.device_remove("isa2");
|
||||||
|
|
||||||
MCFG_DEVICE_ADD("rtc", MC146818, 32.768_kHz_XTAL)
|
MC146818(config, "rtc", 32.768_kHz_XTAL);
|
||||||
MACHINE_CONFIG_END
|
}
|
||||||
|
|
||||||
void amstrad_pc_state::ppc512(machine_config &config)
|
void amstrad_pc_state::ppc512(machine_config &config)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user