Esempio n. 1
0
void exp85_state::exp85(machine_config &config)
{
	/* basic machine hardware */
	I8085A(config, m_maincpu, 6.144_MHz_XTAL);
	m_maincpu->set_addrmap(AS_PROGRAM, &exp85_state::exp85_mem);
	m_maincpu->set_addrmap(AS_IO, &exp85_state::exp85_io);
	m_maincpu->in_sid_func().set(FUNC(exp85_state::sid_r));
	m_maincpu->out_sod_func().set(FUNC(exp85_state::sod_w));

	/* sound hardware */
	SPEAKER(config, "mono").front_center();
	SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);

	/* devices */
	I8155(config, I8155_TAG, 6.144_MHz_XTAL/2);

	i8355_device &i8355(I8355(config, I8355_TAG, 6.144_MHz_XTAL/2));
	i8355.in_pa().set(FUNC(exp85_state::i8355_a_r));
	i8355.out_pa().set(FUNC(exp85_state::i8355_a_w));

	CASSETTE(config, m_cassette);
	m_cassette->set_default_state((cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED));

	RS232_PORT(config, "rs232", default_rs232_devices, "terminal").set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal));

	/* internal ram */
	RAM(config, RAM_TAG).set_default_size("256").set_extra_options("4K");
}
Esempio n. 2
0
void sdk85_state::sdk85(machine_config &config)
{
	/* basic machine hardware */
	I8085A(config, m_maincpu, 6.144_MHz_XTAL);
	m_maincpu->set_addrmap(AS_PROGRAM, &sdk85_state::sdk85_mem);
	m_maincpu->set_addrmap(AS_IO, &sdk85_state::sdk85_io);

	I8355(config, "romio", 6.144_MHz_XTAL / 2); // Monitor ROM (A14)

	I8355(config, "expromio", 6.144_MHz_XTAL / 2); // Expansion ROM (A15)

	i8155_device &i8155(I8155(config, "ramio", 6.144_MHz_XTAL / 2)); // Basic RAM (A16)
	i8155.out_to_callback().set_inputline(m_maincpu, I8085_TRAP_LINE);

	I8155(config, "expramio", 6.144_MHz_XTAL / 2); // Expansion RAM (A17)

	/* video hardware */
	config.set_default_layout(layout_sdk85);

	/* Devices */
	i8279_device &kdc(I8279(config, "kdc", 6.144_MHz_XTAL / 2));        // Keyboard/Display Controller (A13)
	kdc.out_irq_callback().set_inputline("maincpu", I8085_RST55_LINE);  // irq
	kdc.out_sl_callback().set(FUNC(sdk85_state::scanlines_w));          // scan SL lines
	kdc.out_disp_callback().set(FUNC(sdk85_state::digit_w));            // display A&B
	kdc.in_rl_callback().set(FUNC(sdk85_state::kbd_r));                 // kbd RL lines
	kdc.in_shift_callback().set_constant(1);                            // Shift key
	kdc.in_ctrl_callback().set_constant(1);
}
Esempio n. 3
0
INPUT_PORTS_END


void cit220_state::cit220p(machine_config &config)
{
	I8085A(config, m_maincpu, 6000000);
	m_maincpu->set_addrmap(AS_PROGRAM, &cit220_state::mem_map);
	m_maincpu->set_addrmap(AS_IO, &cit220_state::io_map);
	m_maincpu->out_sod_func().set(FUNC(cit220_state::sod_w));

	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
	m_screen->set_raw(24553200, 1580, 0, 1320, 259, 0, 240); // dot clock guessed
	m_screen->set_screen_update("avdc", FUNC(scn2674_device::screen_update));

	scn2674_device &avdc(SCN2674(config, "avdc", 24553200 / 10));
	avdc.intr_callback().set_inputline(m_maincpu, I8085_RST65_LINE);
	avdc.set_character_width(10);
	avdc.set_display_callback(FUNC(cit220_state::draw_character));
	avdc.set_addrmap(0, &cit220_state::char_map);
	avdc.set_addrmap(1, &cit220_state::attr_map);
	avdc.set_screen(m_screen);

	scn2681_device &duart(SCN2681(config, "duart", 3686400));
	duart.irq_cb().set_inputline("maincpu", I8085_RST55_LINE);
	duart.outport_cb().set("usart", FUNC(i8251_device::write_txc)).bit(3); // 9600 baud?
	duart.outport_cb().append("usart", FUNC(i8251_device::write_rxc)).bit(3);

	I8251(config, "usart", 3000000);

	mcs48_cpu_device &kbdmcu(I8035(config, "kbdmcu", 4608000));
	kbdmcu.set_addrmap(AS_PROGRAM, &cit220_state::keyboard_map);
	kbdmcu.set_addrmap(AS_IO, &cit220_state::kbd_io_map);
}
Esempio n. 4
0
void tdv2324_state::tdv2324(machine_config &config)
{
	// basic system hardware
	I8085A(config, m_maincpu, 8700000/2); // ???
	m_maincpu->set_addrmap(AS_PROGRAM, &tdv2324_state::tdv2324_mem);
	m_maincpu->set_addrmap(AS_IO, &tdv2324_state::tdv2324_io);

	I8085A(config, m_subcpu, 8000000/2); // ???
	m_subcpu->set_addrmap(AS_PROGRAM, &tdv2324_state::tdv2324_sub_mem);
	m_subcpu->set_addrmap(AS_IO, &tdv2324_state::tdv2324_sub_io);

	M6802(config, m_fdccpu, 8000000/2); // ???
	m_fdccpu->set_addrmap(AS_PROGRAM, &tdv2324_state::tdv2324_fdc_mem);

	// video hardware
	screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER, rgb_t::green()));
	screen.set_refresh_hz(50);
	screen.set_screen_update(FUNC(tdv2324_state::screen_update));
	screen.set_size(800, 400);
	screen.set_visarea(0, 800-1, 0, 400-1);

	PALETTE(config, "palette", palette_device::MONOCHROME);

	TMS9927(config, m_tms, 25.39836_MHz_XTAL / 8).set_char_width(8);

	// devices
	PIC8259(config, m_pic, 0);

	PIT8253(config, m_pit0, 0);

	PIT8253(config, m_pit1, 0);

	Z80SIO2(config, MK3887N4_TAG, 8000000/2);

	FD1797(config, FD1797PL02_TAG, 8000000/4);
	FLOPPY_CONNECTOR(config, FD1797PL02_TAG":0", tdv2324_floppies, "8dsdd", floppy_image_device::default_floppy_formats);
	FLOPPY_CONNECTOR(config, FD1797PL02_TAG":1", tdv2324_floppies, "8dsdd", floppy_image_device::default_floppy_formats);

	// internal ram
	RAM(config, RAM_TAG).set_default_size("64K");

	// software list
	SOFTWARE_LIST(config, "flop_list").set_original("tdv2324");
}
Esempio n. 5
0
void aha1542b_device::device_add_mconfig(machine_config &config)
{
	i8085a_cpu_device &localcpu(I8085A(config, m_localcpu, 10'000'000));
	localcpu.set_addrmap(AS_PROGRAM, &aha1542b_device::i8085_map);

	AIC565(config, m_busaic);
	m_busaic->hrst_callback().set_inputline(m_localcpu, INPUT_LINE_RESET);
	// Soft reset interrupt is not used

	scsi_add(config);

	DP8473(config, m_fdc, 24_MHz_XTAL);
}
Esempio n. 6
0
void aha1542a_device::device_add_mconfig(machine_config &config)
{
	i8085a_cpu_device &localcpu(I8085A(config, m_localcpu, 10'000'000));
	localcpu.set_addrmap(AS_PROGRAM, &aha1542a_device::i8085_map);

	generic_latch_8_device &fromhost(GENERIC_LATCH_8(config, "fromhost"));
	fromhost.data_pending_callback().set_inputline(m_localcpu, I8085_RST55_LINE);

	GENERIC_LATCH_8(config, "tohost");

	scsi_add(config);

	DP8473(config, m_fdc, 24_MHz_XTAL);
}
Esempio n. 7
0
void imsai_state::imsai(machine_config &config)
{
	/* basic machine hardware */
	I8085A(config, m_maincpu, XTAL(6'000'000));
	m_maincpu->set_addrmap(AS_PROGRAM, &imsai_state::imsai_mem);
	m_maincpu->set_addrmap(AS_IO, &imsai_state::imsai_io);

	/* video hardware */
	GENERIC_TERMINAL(config, m_terminal, 0);
	m_terminal->set_keyboard_callback(FUNC(imsai_state::kbd_put));

	/* Devices */
	I8251(config, "uart", 0);

	PIT8253(config, m_pit, 0);
	m_pit->set_clk<0>(6_MHz_XTAL / 3); // Timer 0: baud rate gen for 8251
	m_pit->out_handler<0>().set("uart", FUNC(i8251_device::write_txc));
	m_pit->out_handler<0>().append("uart", FUNC(i8251_device::write_rxc));
	m_pit->set_clk<1>(6_MHz_XTAL / 3); // Timer 1: user
	m_pit->set_clk<2>(6_MHz_XTAL / 3); // Timer 2: user
}
Esempio n. 8
0
GFXDECODE_END

void fastinvaders_state::fastinvaders(machine_config &config)
{
	/* basic machine hardware */
	I8085A(config, m_maincpu, 6144100/2); // 6144100 Xtal /2 internaly
	m_maincpu->set_addrmap(AS_PROGRAM, &fastinvaders_state::fastinvaders_map);
//  m_maincpu->set_addrmap(AS_IO, &fastinvaders_state::fastinvaders_io_map);
//  m_maincpu->set_vblank_int("screen", FUNC(fastinvaders_state::irq0_line_hold));
	m_maincpu->in_sid_func().set(FUNC(fastinvaders_state::sid_read));
	m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb));

	TIMER(config, "scantimer").configure_scanline(FUNC(fastinvaders_state::scanline_timer), "screen", 0, 1);

	PIC8259(config, m_pic8259, 0);
	m_pic8259->out_int_callback().set_inputline(m_maincpu, 0);

	I8257(config, m_dma8257, 6144100);
	m_dma8257->in_memr_cb().set(FUNC(fastinvaders_state::memory_read_byte));
	m_dma8257->out_memw_cb().set(FUNC(fastinvaders_state::memory_write_byte));
	m_dma8257->out_dack_cb<1>().set(FUNC(fastinvaders_state::dark_1_clr));
	m_dma8257->out_dack_cb<2>().set(FUNC(fastinvaders_state::dark_2_clr));

	TIMER(config, "count_ar").configure_periodic(FUNC(fastinvaders_state::count_ar), attotime::from_hz(11500000/2));

	/* video hardware */
	screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
	screen.set_refresh_hz(60);
	screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500));
	screen.set_size(64*16, 32*16);
	screen.set_visarea(0*16, 40*16-1, 0*14, 19*14-1);
	screen.set_screen_update(FUNC(fastinvaders_state::screen_update));
	screen.set_palette("palette");

	GFXDECODE(config, m_gfxdecode, "palette", gfx_fastinvaders);
	PALETTE(config, "palette", palette_device::MONOCHROME);

	/* sound hardware */
	// TODO
}
Esempio n. 9
0
void mmagic_state::mmagic(machine_config &config)
{
	// basic machine hardware
	I8085A(config, m_maincpu, 6.144_MHz_XTAL); // NEC D8085A
	m_maincpu->set_addrmap(AS_PROGRAM, &mmagic_state::mmagic_mem);
	m_maincpu->set_addrmap(AS_IO, &mmagic_state::mmagic_io);

	// video hardware
	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
	m_screen->set_raw(6.144_MHz_XTAL, 384, 0, 256, 264, 0, 192);
	m_screen->set_screen_update(FUNC(mmagic_state::screen_update));

	PALETTE(config, m_palette, palette_device::RGB_3BIT);

	// sound hardware
	SPEAKER(config, "mono").front_center();
	SAMPLES(config, m_samples);
	m_samples->set_channels(1);
	m_samples->set_samples_names(mmagic_sample_names);
	m_samples->add_route(ALL_OUTPUTS, "mono", 0.5);
	// TODO: replace samples with SN76477 + discrete sound
}