Пример #1
0
void sliver_state::sliver(machine_config &config)
{
	M68000(config, m_maincpu, 12000000);
	m_maincpu->set_addrmap(AS_PROGRAM, &sliver_state::sliver_map);
	m_maincpu->set_vblank_int("screen", FUNC(sliver_state::irq4_line_hold));

	TIMER(config, "obj_actel").configure_periodic(FUNC(sliver_state::obj_irq_cb), attotime::from_hz(60)); /* unknown clock, causes "obj actel ready error" without this */
	// irq 2 valid but not used?

	I8051(config, m_audiocpu, 8000000);
	m_audiocpu->set_addrmap(AS_PROGRAM, &sliver_state::soundmem_prg);
	m_audiocpu->set_addrmap(AS_IO, &sliver_state::soundmem_io);
	m_audiocpu->port_out_cb<1>().set(FUNC(sliver_state::oki_setbank));

	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
	m_screen->set_refresh_hz(60);
	m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500));
	m_screen->set_size(64*8, 32*8);
	m_screen->set_visarea(0*8, 384-1-16, 0*8, 240-1);
	m_screen->set_screen_update(FUNC(sliver_state::screen_update));

	PALETTE(config, "palette").set_entries(0x100);
	ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, "palette"));
	ramdac.set_addrmap(0, &sliver_state::ramdac_map);

	SPEAKER(config, "lspeaker").front_left();
	SPEAKER(config, "rspeaker").front_right();

	GENERIC_LATCH_8(config, m_soundlatch);

	okim6295_device &oki(OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH));
	oki.set_addrmap(0, &sliver_state::oki_map);
	oki.add_route(ALL_OUTPUTS, "lspeaker", 0.6);
	oki.add_route(ALL_OUTPUTS, "rspeaker", 0.6);
}
Пример #2
0
void sslam_state::sslam(machine_config &config)
{
	/* basic machine hardware */
	M68000(config, m_maincpu, 12000000);   /* 12 MHz */
	m_maincpu->set_addrmap(AS_PROGRAM, &sslam_state::sslam_program_map);
	m_maincpu->set_vblank_int("screen", FUNC(sslam_state::irq2_line_hold));

	I8051(config, m_audiocpu, 12000000);
	m_audiocpu->set_disable(); /* Internal code is not dumped - 2 boards were protected */

	/* video hardware */
	screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
	screen.set_refresh_hz(58);
	screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
	screen.set_size(64*8, 32*8);
	screen.set_visarea(1*8, 39*8-1, 1*8, 31*8-1);
	screen.set_screen_update(FUNC(sslam_state::screen_update));
	screen.set_palette(m_palette);

	GFXDECODE(config, m_gfxdecode, m_palette, gfx_sslam);

	PALETTE(config, m_palette, 0x800).set_format(PALETTE_FORMAT_RRRRGGGGBBBBRGBx);

	/* sound hardware */
	SPEAKER(config, "mono").front_center();

	OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH);
	m_oki->add_route(ALL_OUTPUTS, "mono", 0.80);
}
Пример #3
0
void mephisto_pinball_state::mephisto(machine_config &config)
{
	/* basic machine hardware */
	I8088(config, m_maincpu, XTAL(18'000'000)/3);
	m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_pinball_state::mephisto_map);
	//m_maincpu->set_irq_acknowledge_callback("muart", FUNC(i8256_device::inta_cb));

	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);

	//i8256_device &muart(I8256(config, "muart", XTAL(18'000'000)/3));
	//muart.irq_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
	//muart.txd_handler().set_inputline("audiocpu", MCS51_RX_LINE);

	I8155(config, "ic20", XTAL(18'000'000)/6);
	//i8155_device &i8155_1(I8155(config, "ic20", XTAL(18'000'000)/6));
	//i8155_1.out_to_callback().set("muart", FUNC(i8256_device::write_txc));

	I8155(config, "ic9", XTAL(18'000'000)/6);
	//i8155_device &i8155_2(I8155(config, "ic9", XTAL(18'000'000)/6));
	//i8155_2.out_to_callback().set(FUNC(mephisto_pinball_state::clk_shift_w));

	i8051_device &soundcpu(I8051(config, "soundcpu", XTAL(12'000'000)));
	soundcpu.set_addrmap(AS_PROGRAM, &mephisto_pinball_state::mephisto_8051_map); // EA tied high for external program ROM
	soundcpu.set_addrmap(AS_IO, &mephisto_pinball_state::mephisto_8051_io);
	soundcpu.port_in_cb<1>().set(FUNC(mephisto_pinball_state::ay8910_read));
	soundcpu.port_out_cb<1>().set(FUNC(mephisto_pinball_state::ay8910_write));
	soundcpu.port_out_cb<3>().set(FUNC(mephisto_pinball_state::t0_t1_w));
	soundcpu.serial_rx_cb().set_constant(0); // from MUART

	SPEAKER(config, "mono").front_center();

	AY8910(config, m_aysnd, XTAL(12'000'000)/8);
	m_aysnd->port_a_write_callback().set(FUNC(mephisto_pinball_state::ay8910_columns_w));
	m_aysnd->port_b_read_callback().set(FUNC(mephisto_pinball_state::ay8910_inputs_r));
	m_aysnd->add_route(ALL_OUTPUTS, "mono", 0.5);

	DAC08(config, "dac", 0).add_route(ALL_OUTPUTS, "mono", 0.5);
	voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
	vref.set_output(5.0);
	vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
	vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}
Пример #4
0
void trs80dt1_state::trs80dt1(machine_config &config)
{
	/* basic machine hardware */
	I8051(config, m_maincpu, 7372800);
	m_maincpu->set_addrmap(AS_PROGRAM, &trs80dt1_state::prg_map);
	m_maincpu->set_addrmap(AS_IO, &trs80dt1_state::io_map);
	m_maincpu->port_out_cb<1>().set(FUNC(trs80dt1_state::port1_w));
	m_maincpu->port_out_cb<3>().set(FUNC(trs80dt1_state::port3_w));

	/* video hardware */
	screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
	screen.set_screen_update("crtc", FUNC(i8276_device::screen_update));
	screen.set_refresh_hz(60);
	screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
	screen.set_size(40*12, 16*16);
	screen.set_visarea(0, 40*12-1, 0, 16*16-1);

	GFXDECODE(config, "gfxdecode", m_palette, gfx_trs80dt1);

	I8276(config, m_crtc, 12480000 / 8);
	m_crtc->set_character_width(8);
	m_crtc->set_display_callback(FUNC(trs80dt1_state::crtc_update_row), this);
	m_crtc->drq_wr_callback().set_inputline(m_maincpu, MCS51_INT0_LINE); // BRDY pin goes through inverter to /INT0, so we don't invert
	m_crtc->irq_wr_callback().set(m_7474, FUNC(ttl7474_device::clear_w)); // INT pin
	m_crtc->irq_wr_callback().append(m_7474, FUNC(ttl7474_device::d_w));
	m_crtc->vrtc_wr_callback().set(m_7474, FUNC(ttl7474_device::clock_w));
	m_crtc->set_screen("screen");

	PALETTE(config, "palette").set_entries(3);

	X2210(config, "nvram");

	TTL7474(config, m_7474, 0);
	m_7474->comp_output_cb().set_inputline(m_maincpu, MCS51_INT1_LINE).invert(); // /Q connects directly to /INT1, so we need to invert?

	/* sound hardware */
	SPEAKER(config, "mono").front_center();
	BEEP(config, m_beep, 2000);
	m_beep->add_route(ALL_OUTPUTS, "mono", 0.50);
}
Пример #5
0
	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);

	//MCFG_DEVICE_ADD("muart", I8256, XTAL(18'000'000)/3)
	//MCFG_I8256_IRQ_HANDLER(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
	//MCFG_I8256_TXD_HANDLER(INPUTLINE("audiocpu", MCS51_RX_LINE))

	I8155(config, "ic20", XTAL(18'000'000)/6);
	//i8155_device &i8155_1(I8155(config, "ic20", XTAL(18'000'000)/6));
	//i8155_1.out_to_callback().set("muart", FUNC(i8256_device::write_txc));

	I8155(config, "ic9", XTAL(18'000'000)/6);
	//i8155_device &i8155_2(I8155(config, "ic9", XTAL(18'000'000)/6));
	//i8155_2.out_to_callback().set(FUNC(mephisto_pinball_state::clk_shift_w));

	i8051_device &soundcpu(I8051(config, "soundcpu", XTAL(12'000'000)));
	soundcpu.set_addrmap(AS_PROGRAM, &mephisto_pinball_state::mephisto_8051_map); // EA tied high for external program ROM
	soundcpu.set_addrmap(AS_IO, &mephisto_pinball_state::mephisto_8051_io);
	soundcpu.port_in_cb<1>().set(FUNC(mephisto_pinball_state::ay8910_read));
	soundcpu.port_out_cb<1>().set(FUNC(mephisto_pinball_state::ay8910_write));
	soundcpu.port_out_cb<3>().set(FUNC(mephisto_pinball_state::t0_t1_w));
	soundcpu.serial_rx_cb().set_constant(0); // from MUART

	SPEAKER(config, "mono").front_center();

	AY8910(config, m_aysnd, XTAL(12'000'000)/8);
	m_aysnd->port_a_write_callback().set(FUNC(mephisto_pinball_state::ay8910_columns_w));
	m_aysnd->port_b_read_callback().set(FUNC(mephisto_pinball_state::ay8910_inputs_r));
	m_aysnd->add_route(ALL_OUTPUTS, "mono", 0.5);

	MCFG_DEVICE_ADD("dac", DAC08, 0)