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"); }
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); }
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); }
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"); }
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); }
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); }
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 }
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 }
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 }