void enmirage_state::mirage(machine_config &config) { MC6809E(config, m_maincpu, 2000000); m_maincpu->set_addrmap(AS_PROGRAM, &enmirage_state::mirage_map); config.set_default_layout(layout_mirage); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); es5503_device &es5503(ES5503(config, "es5503", 7000000)); es5503.set_channels(2); es5503.irq_func().set(FUNC(enmirage_state::mirage_doc_irq)); es5503.adc_func().set(FUNC(enmirage_state::mirage_adc_read)); es5503.add_route(0, "lspeaker", 1.0); es5503.add_route(1, "rspeaker", 1.0); VIA6522(config, m_via, 1000000); m_via->writepa_handler().set(FUNC(enmirage_state::mirage_via_write_porta)); m_via->writepb_handler().set(FUNC(enmirage_state::mirage_via_write_portb)); m_via->irq_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); acia6850_device &acia6850(ACIA6850(config, "acia6850", 0)); acia6850.irq_handler().set_inputline(m_maincpu, M6809_FIRQ_LINE); WD1772(config, m_fdc, 8000000); m_fdc->intrq_wr_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); m_fdc->drq_wr_callback().set_inputline(m_maincpu, M6809_IRQ_LINE); FLOPPY_CONNECTOR(config, "wd1772:0", ensoniq_floppies, "35dd", enmirage_state::floppy_formats); }
INPUT_PORTS_END /************************************* * * Machine driver * *************************************/ void mquake_state::mquake(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, amiga_state::CLK_7M_NTSC); m_maincpu->set_addrmap(AS_PROGRAM, &mquake_state::main_map); ADDRESS_MAP_BANK(config, "overlay").set_map(&amiga_state::overlay_512kb_map).set_options(ENDIANNESS_BIG, 16, 22, 0x200000); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ ntsc_video(config); PALETTE(config, m_palette, FUNC(mquake_state::amiga_palette), 4096); MCFG_VIDEO_START_OVERRIDE(mquake_state,amiga) /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); paula_8364_device &paula(PAULA_8364(config, "amiga", amiga_state::CLK_C1_NTSC)); paula.add_route(0, "lspeaker", 0.50); paula.add_route(1, "rspeaker", 0.50); paula.add_route(2, "rspeaker", 0.50); paula.add_route(3, "lspeaker", 0.50); paula.mem_read_cb().set(FUNC(amiga_state::chip_ram_r)); paula.int_cb().set(FUNC(amiga_state::paula_int_w)); ES5503(config, m_es5503, amiga_state::CLK_7M_NTSC); /* ES5503 is likely mono due to channel strobe used as bank select */ m_es5503->set_channels(1); m_es5503->set_addrmap(0, &mquake_state::mquake_es5503_map); m_es5503->add_route(0, "lspeaker", 0.50); m_es5503->add_route(0, "rspeaker", 0.50); /* cia */ MOS8520(config, m_cia_0, amiga_state::CLK_E_NTSC); m_cia_0->irq_wr_callback().set(FUNC(amiga_state::cia_0_irq)); m_cia_0->pa_rd_callback().set_ioport("CIA0PORTA"); m_cia_0->pa_wr_callback().set(FUNC(amiga_state::cia_0_port_a_write)); MOS8520(config, m_cia_1, amiga_state::CLK_E_NTSC); m_cia_1->irq_wr_callback().set(FUNC(amiga_state::cia_1_irq)); /* fdc */ AMIGA_FDC(config, m_fdc, amiga_state::CLK_7M_NTSC); m_fdc->index_callback().set("cia_1", FUNC(mos8520_device::flag_w)); m_fdc->read_dma_callback().set(FUNC(amiga_state::chip_ram_r)); m_fdc->write_dma_callback().set(FUNC(amiga_state::chip_ram_w)); m_fdc->dskblk_callback().set(FUNC(amiga_state::fdc_dskblk_w)); m_fdc->dsksyn_callback().set(FUNC(amiga_state::fdc_dsksyn_w)); }