GFXDECODE_END /************************* * Machine Drivers * *************************/ void goldngam_state::base(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, MASTER_CLOCK); m_maincpu->set_addrmap(AS_PROGRAM, &goldngam_state::swisspkr_map); PTM6840(config, m_ptm, 2'000'000); m_ptm->irq_callback().set_inputline("maincpu", M68K_IRQ_2); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(64*8, 64*8); screen.set_visarea(4*8, 43*8-1, 1*8, 37*8-1); // 312x288 screen.set_screen_update(FUNC(goldngam_state::screen_update_goldngam)); screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_goldngam); PALETTE(config, "palette", FUNC(goldngam_state::palette_init), 512); /* sound hardware */ SPEAKER(config, "mono").front_center(); }
DEVICE_INPUT_DEFAULTS_END #endif /* Fake clock values until we TODO: figure out how the PTM generates the clocks */ #define CAN09T_BAUDGEN_CLOCK 1.8432_MHz_XTAL #define CAN09T_ACIA_CLOCK (CAN09T_BAUDGEN_CLOCK / 12) void can09t_state::can09t(machine_config &config) { MC6809(config, m_maincpu, 4.9152_MHz_XTAL); // IPL crystal m_maincpu->set_addrmap(AS_PROGRAM, &can09t_state::can09t_map); /* --PIA inits----------------------- */ PIA6821(config, m_syspia, 0); // CPU board m_syspia->readpa_handler().set(FUNC(can09t_state::syspia_A_r)); m_syspia->readpb_handler().set(FUNC(can09t_state::syspia_B_r)); m_syspia->writepb_handler().set(FUNC(can09t_state::syspia_B_w)); m_syspia->cb2_handler().set(FUNC(can09t_state::syspia_cb2_w)); /* 0xE1FB 0xB112 (SYSPIA Control A) = 0x00 - Channel A IRQ disabled */ /* 0xE1FB 0xB113 (SYSPIA Control B) = 0x00 - Channel B IRQ disabled */ /* 0xE203 0xB110 (SYSPIA DDR A) = 0x00 - Port A all inputs */ /* 0xE203 0xB111 (SYSPIA DDR B) = 0x7F - Port B mixed mode */ /* 0xE20A 0xB112 (SYSPIA Control A) = 0x05 - IRQ A enabled on falling transition on CA2 */ /* 0xE20A 0xB113 (SYSPIA Control B) = 0x34 - CB2 is low and lock DDRB */ /* 0xE20E 0xB111 (SYSPIA port B) = 0x10 - Data to port B */ PIA6821(config, m_usrpia, 0); // CPU board m_usrpia->cb2_handler().set(FUNC(can09t_state::usrpia_cb2_w)); /* 0xE212 0xB122 (USRPIA Control A) = 0x00 - Channel A IRQ disabled */ /* 0xE212 0xB123 (USRPIA Control B) = 0x00 - Channel B IRQ disabled */ /* 0xE215 0xB120 (USRPIA DDR A) = 0x00 - Port A all inputs */ /* 0xE215 0xB121 (USRPIA DDR B) = 0xFF - Port B all outputs */ /* 0xE21A 0xB122 (USRPIA Control A) = 0x34 - CA2 is low and lock DDRB */ /* 0xE21A 0xB123 (USRPIA Control B) = 0x34 - CB2 is low and lock DDRB */ PIA6821(config, m_pia3, 0); // ROM board PIA6821(config, m_pia4, 0); // ROM board PTM6840(config, "ptm", 0); /* RS232 usage: mame can09t -window -debug -rs232 terminal */ ACIA6850(config, m_acia, 0); m_acia->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); m_acia->rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); rs232.rxd_handler().set(m_acia, FUNC(acia6850_device::write_rxd)); rs232.cts_handler().set(m_acia, FUNC(acia6850_device::write_cts)); CLOCK(config, "acia_clock", CAN09T_ACIA_CLOCK).signal_handler().set(FUNC(can09t_state::write_acia_clock)); }
void sigmab52_state::jwildb52(machine_config &config) { /* basic machine hardware */ MC6809(config, m_maincpu, XTAL(8'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &sigmab52_state::jwildb52_map); MC6809(config, m_audiocpu, XTAL(8'000'000)); m_audiocpu->set_addrmap(AS_PROGRAM, &sigmab52_state::sound_prog_map); ptm6840_device &ptm1(PTM6840(config, "6840ptm_1", XTAL(8'000'000) / 8)); // FIXME ptm1.irq_callback().set_inputline("maincpu", M6809_IRQ_LINE); PTM6840(config, m_6840ptm_2, XTAL(8'000'000) / 8); // FIXME m_6840ptm_2->irq_callback().set(FUNC(sigmab52_state::ptm2_irq)); NVRAM(config, "nvram", nvram_device::DEFAULT_NONE); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(1024, 1024); screen.set_visarea(0, 544-1, 0, 436-1); screen.set_screen_update("hd63484", FUNC(hd63484_device::update_screen)); screen.set_palette(m_palette); HD63484(config, "hd63484", XTAL(8'000'000)).set_addrmap(0, &sigmab52_state::jwildb52_hd63484_map); PALETTE(config, m_palette).set_entries(16); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, "soundlatch"); YM3812(config, "ymsnd", XTAL(3'579'545)).add_route(ALL_OUTPUTS, "mono", 1.0); }
void ob68k1a_state::ob68k1a(machine_config &config) { // basic machine hardware M68000(config, m_maincpu, 10_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &ob68k1a_state::ob68k1a_mem); // devices PIA6821(config, m_pia0, 0); PIA6821(config, m_pia1, 0); PTM6840(config, MC6840_TAG, 10_MHz_XTAL/10).set_external_clocks(0, 0, 0); ACIA6850(config, m_acia0, 0); m_acia0->txd_handler().set(m_rs232a, FUNC(rs232_port_device::write_txd)); m_acia0->rts_handler().set(m_rs232a, FUNC(rs232_port_device::write_rts)); RS232_PORT(config, m_rs232a, default_rs232_devices, "terminal"); m_rs232a->rxd_handler().set(m_acia0, FUNC(acia6850_device::write_rxd)); m_rs232a->dcd_handler().set(m_acia0, FUNC(acia6850_device::write_dcd)); m_rs232a->cts_handler().set(m_acia0, FUNC(acia6850_device::write_cts)); ACIA6850(config, m_acia1, 0); m_acia1->txd_handler().set(m_rs232b, FUNC(rs232_port_device::write_txd)); m_acia1->rts_handler().set(m_rs232b, FUNC(rs232_port_device::write_rts)); RS232_PORT(config, m_rs232b, default_rs232_devices, nullptr); m_rs232b->rxd_handler().set(m_acia1, FUNC(acia6850_device::write_rxd)); m_rs232b->dcd_handler().set(m_acia1, FUNC(acia6850_device::write_dcd)); m_rs232b->cts_handler().set(m_acia1, FUNC(acia6850_device::write_cts)); COM8116(config, m_dbrg, 5.0688_MHz_XTAL); m_dbrg->fr_handler().set(m_acia0, FUNC(acia6850_device::write_txc)); m_dbrg->fr_handler().append(m_acia0, FUNC(acia6850_device::write_rxc)); m_dbrg->ft_handler().set(m_acia1, FUNC(acia6850_device::write_txc)); m_dbrg->ft_handler().append(m_acia1, FUNC(acia6850_device::write_rxc)); // internal ram RAM(config, m_ram, 0); m_ram->set_default_size("32K"); m_ram->set_extra_options("128K"); }
GENERIC_LATCH_8(config, m_soundlatch2); GENERIC_LATCH_8(config, m_soundlatch3); GENERIC_LATCH_8(config, m_soundlatch4); AY8910(config, "ay1", 1818182).add_route(ALL_OUTPUTS, "speaker", 0.2); AY8910(config, "ay2", 1818182).add_route(ALL_OUTPUTS, "speaker", 0.2); MCFG_DEVICE_ADD("dac1", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) MCFG_DEVICE_ADD("dac2", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.5) MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0) MCFG_SOUND_ROUTE(0, "dac1", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac2", 1.0, DAC_VREF_POS_INPUT) /* 6840 PTM */ ptm6840_device &ptm(PTM6840(config, "6840ptm", CCHASM_68K_CLOCK/10)); ptm.set_external_clocks(0, (CCHASM_68K_CLOCK / 10).value(), 0); ptm.irq_callback().set_inputline("maincpu", 4); MACHINE_CONFIG_END /************************************* * * ROM definitions * *************************************/ ROM_START( cchasm ) ROM_REGION( 0x010000, "maincpu", 0 ) ROM_LOAD16_BYTE( "chasm.u4", 0x000000, 0x001000, CRC(19244f25) SHA1(79deaae82da8d1b16d05bbac43ba900c4b1d9f26) )
keyboard.set_keyboard_callback(FUNC(v6809_state::kbd_put)); // port A = drive select and 2 control lines ; port B = keyboard // CB2 connects to the interrupt pin of the RTC (the rtc code doesn't support it) PIA6821(config, m_pia0, 0); m_pia0->readpb_handler().set(FUNC(v6809_state::pb_r)); m_pia0->writepa_handler().set(FUNC(v6809_state::pa_w)); m_pia0->irqa_handler().set_inputline("maincpu", M6809_IRQ_LINE); m_pia0->irqb_handler().set_inputline("maincpu", M6809_IRQ_LINE); // no idea what this does pia6821_device &pia1(PIA6821(config, "pia1", 0)); pia1.irqa_handler().set_inputline("maincpu", M6809_IRQ_LINE); pia1.irqb_handler().set_inputline("maincpu", M6809_IRQ_LINE); ptm6840_device &ptm(PTM6840(config, "ptm", 16_MHz_XTAL / 4)); ptm.set_external_clocks(4000000/14, 4000000/14, 4000000/14/8); ptm.o1_callback().set(FUNC(v6809_state::speaker_w)); ptm.o2_callback().set(FUNC(v6809_state::speaker_en_w)); ptm.irq_callback().set_inputline("maincpu", M6809_IRQ_LINE); ACIA6850(config, "acia0", 0); ACIA6850(config, "acia1", 0); clock_device &acia_clock(CLOCK(config, "acia_clock", 153600)); acia_clock.signal_handler().set("acia0", FUNC(acia6850_device::write_txc)); acia_clock.signal_handler().append("acia0", FUNC(acia6850_device::write_rxc)); acia_clock.signal_handler().append("acia1", FUNC(acia6850_device::write_txc)); acia_clock.signal_handler().append("acia1", FUNC(acia6850_device::write_rxc));