void crvision_pal_state::pal(machine_config &config) { creativision(config); // video hardware tms9929_device &vdp(TMS9929(config, TMS9929_TAG, XTAL(10'738'635))); vdp.set_screen("screen"); vdp.set_vram_size(0x4000); vdp.int_callback().set_inputline(M6502_TAG, m6502_device::IRQ_LINE); SCREEN(config, "screen", SCREEN_TYPE_RASTER); }
void laser2001_state::lasr2001(machine_config &config) { // basic machine hardware M6502(config, m_maincpu, XTAL(17'734'470)/9); m_maincpu->set_addrmap(AS_PROGRAM, &laser2001_state::lasr2001_map); // devices PIA6821(config, m_pia, 0); m_pia->readpa_handler().set(FUNC(laser2001_state::pia_pa_r)); m_pia->readpb_handler().set(FUNC(laser2001_state::pia_pb_r)); m_pia->readca1_handler().set(FUNC(laser2001_state::pia_ca1_r)); m_pia->writepa_handler().set(FUNC(laser2001_state::pia_pa_w)); m_pia->writepb_handler().set(FUNC(laser2001_state::pia_pb_w)); m_pia->ca2_handler().set(FUNC(laser2001_state::pia_ca2_w)); m_pia->cb2_handler().set(FUNC(laser2001_state::pia_cb2_w)); CASSETTE(config, m_cassette); m_cassette->set_default_state((cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)); CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->busy_handler().set(FUNC(laser2001_state::write_centronics_busy)); OUTPUT_LATCH(config, m_cent_data_out); m_centronics->set_output_latch(*m_cent_data_out); // video hardware tms9929a_device &vdp(TMS9929A(config, TMS9929_TAG, XTAL(10'738'635))); vdp.set_screen("screen"); vdp.set_vram_size(0x4000); vdp.int_callback().set_inputline(M6502_TAG, m6502_device::IRQ_LINE); SCREEN(config, "screen", SCREEN_TYPE_RASTER); // sound hardware SPEAKER(config, "mono").front_center(); SN76489A(config, m_psg, XTAL(17'734'470)/9); m_psg->ready_cb().set(FUNC(laser2001_state::write_psg_ready)); m_psg->add_route(ALL_OUTPUTS, "mono", 1.00); WAVE(config, "wave", m_cassette).add_route(1, "mono", 0.25); // cartridge CRVISION_CART_SLOT(config, m_cart, crvision_cart, nullptr); // internal ram RAM(config, m_ram); m_ram->set_default_size("16K"); m_ram->set_extra_options("32K"); // software list SOFTWARE_LIST(config, "cart_list").set_original("crvision"); SOFTWARE_LIST(config, "cart_list2").set_original("laser2001_cart"); }
void tm990189_state::tm990_189_v(machine_config &config) { /* basic machine hardware */ TMS9980A(config, m_tms9980a, 8_MHz_XTAL); m_tms9980a->set_addrmap(AS_PROGRAM, &tm990189_state::tm990_189_v_memmap); m_tms9980a->set_addrmap(AS_IO, &tm990189_state::tm990_189_cru_map); m_tms9980a->extop_cb().set(FUNC(tm990189_state::external_operation)); MCFG_MACHINE_START_OVERRIDE(tm990189_state, tm990_189_v ) MCFG_MACHINE_RESET_OVERRIDE(tm990189_state, tm990_189_v ) /* video hardware */ tms9918_device &vdp(TMS9918(config, "tms9918", XTAL(10'738'635))); vdp.set_screen("screen"); vdp.set_vram_size(0x4000); SCREEN(config, "screen", SCREEN_TYPE_RASTER); config.set_default_layout(layout_tm990189v); /* sound hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50); /* one two-level buzzer */ /* Devices */ CASSETTE(config, "cassette", 0).add_route(ALL_OUTPUTS, "mono", 0.25); TMS9901(config, m_tms9901_usr, 8_MHz_XTAL / 4); m_tms9901_usr->p_out_cb(0).set(FUNC(tm990189_state::usr9901_led0_w)); m_tms9901_usr->p_out_cb(1).set(FUNC(tm990189_state::usr9901_led1_w)); m_tms9901_usr->p_out_cb(2).set(FUNC(tm990189_state::usr9901_led2_w)); m_tms9901_usr->p_out_cb(3).set(FUNC(tm990189_state::usr9901_led3_w)); m_tms9901_usr->intlevel_cb().set(FUNC(tm990189_state::usr9901_interrupt_callback)); TMS9901(config, m_tms9901_sys, 8_MHz_XTAL / 4); m_tms9901_sys->read_cb().set(FUNC(tm990189_state::sys9901_r)); m_tms9901_sys->p_out_cb(0).set(FUNC(tm990189_state::sys9901_digitsel0_w)); m_tms9901_sys->p_out_cb(1).set(FUNC(tm990189_state::sys9901_digitsel1_w)); m_tms9901_sys->p_out_cb(2).set(FUNC(tm990189_state::sys9901_digitsel2_w)); m_tms9901_sys->p_out_cb(3).set(FUNC(tm990189_state::sys9901_digitsel3_w)); m_tms9901_sys->p_out_cb(4).set(FUNC(tm990189_state::sys9901_segment0_w)); m_tms9901_sys->p_out_cb(5).set(FUNC(tm990189_state::sys9901_segment1_w)); m_tms9901_sys->p_out_cb(6).set(FUNC(tm990189_state::sys9901_segment2_w)); m_tms9901_sys->p_out_cb(7).set(FUNC(tm990189_state::sys9901_segment3_w)); m_tms9901_sys->p_out_cb(8).set(FUNC(tm990189_state::sys9901_segment4_w)); m_tms9901_sys->p_out_cb(9).set(FUNC(tm990189_state::sys9901_segment5_w)); m_tms9901_sys->p_out_cb(10).set(FUNC(tm990189_state::sys9901_segment6_w)); m_tms9901_sys->p_out_cb(11).set(FUNC(tm990189_state::sys9901_segment7_w)); m_tms9901_sys->p_out_cb(12).set(FUNC(tm990189_state::sys9901_dsplytrgr_w)); m_tms9901_sys->p_out_cb(13).set(FUNC(tm990189_state::sys9901_shiftlight_w)); m_tms9901_sys->p_out_cb(14).set(FUNC(tm990189_state::sys9901_spkrdrive_w)); m_tms9901_sys->p_out_cb(15).set(FUNC(tm990189_state::sys9901_tapewdata_w)); m_tms9901_sys->intlevel_cb().set(FUNC(tm990189_state::sys9901_interrupt_callback)); TMS9902(config, m_tms9902, 8_MHz_XTAL / 4); m_tms9902->xmit_cb().set(FUNC(tm990189_state::xmit_callback)); // called when a character is transmitted; TM990_189_RS232(config, "rs232", 0, m_tms9902); timer_device &display_timer(TIMER(config, "display_timer")); display_timer.configure_periodic(FUNC(tm990189_state::display_callback), attotime::from_hz(30)); display_timer.set_start_delay(attotime::from_msec(150)); }
void mtx_state::mtx512(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 4_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &mtx_state::mtx_mem); m_maincpu->set_addrmap(AS_IO, &mtx_state::mtx_io); m_maincpu->set_daisy_config(mtx_daisy_chain); /* video hardware */ tms9929a_device &vdp(TMS9929A(config, "tms9929a", 10.6875_MHz_XTAL)); vdp.set_screen("screen"); vdp.set_vram_size(0x4000); vdp.int_callback().set(FUNC(mtx_state::mtx_tms9929a_interrupt)); SCREEN(config, "screen", SCREEN_TYPE_RASTER); /* sound hardware */ SPEAKER(config, "mono").front_center(); SN76489A(config, m_sn, 4_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 1.00); /* devices */ Z80CTC(config, m_z80ctc, 4_MHz_XTAL); m_z80ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_z80ctc->zc_callback<1>().set(FUNC(mtx_state::ctc_trg1_w)); m_z80ctc->zc_callback<2>().set(FUNC(mtx_state::ctc_trg2_w)); TIMER(config, "z80ctc_timer").configure_periodic(FUNC(mtx_state::ctc_tick), attotime::from_hz(4_MHz_XTAL/13)); CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->busy_handler().set(FUNC(mtx_state::write_centronics_busy)); m_centronics->fault_handler().set(FUNC(mtx_state::write_centronics_fault)); m_centronics->perror_handler().set(FUNC(mtx_state::write_centronics_perror)); m_centronics->select_handler().set(FUNC(mtx_state::write_centronics_select)); output_latch_device ¢_data_out(OUTPUT_LATCH(config, "cent_data_out")); m_centronics->set_output_latch(cent_data_out); snapshot_image_device &snapshot(SNAPSHOT(config, "snapshot")); snapshot.set_handler(snapquick_load_delegate(&SNAPSHOT_LOAD_NAME(mtx_state, mtx), this), "mtx", attotime::from_seconds(1)); quickload_image_device &quickload(QUICKLOAD(config, "quickload")); quickload.set_handler(snapquick_load_delegate(&QUICKLOAD_LOAD_NAME(mtx_state, mtx), this), "run", attotime::from_seconds(1)); CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED); m_cassette->set_interface("mtx_cass"); TIMER(config, "cassette_timer").configure_periodic(FUNC(mtx_state::cassette_tick), attotime::from_hz(44100)); /* internal ram */ RAM(config, m_ram).set_default_size("64K").set_extra_options("96K,128K,192K,320K,448K,512K"); /* rom extension board */ GENERIC_SOCKET(config, m_extrom, generic_plain_slot, "mtx_rom", "bin,rom"); m_extrom->set_device_load(device_image_load_delegate(&mtx_state::device_image_load_extrom_load, this)); /* rs232 board with disk drive bus */ MTX_EXP_SLOT(config, m_exp, mtx_expansion_devices, nullptr); m_exp->set_program_space(m_maincpu, AS_PROGRAM); m_exp->set_io_space(m_maincpu, AS_IO); m_exp->int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_exp->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI); m_exp->busreq_handler().set_inputline(m_maincpu, Z80_INPUT_LINE_BUSRQ); /* cartridge slot */ GENERIC_CARTSLOT(config, m_rompak, generic_plain_slot, "mtx_cart", "bin,rom"); m_rompak->set_device_load(device_image_load_delegate(&mtx_state::device_image_load_rompak_load, this)); /* software lists */ SOFTWARE_LIST(config, "cass_list").set_original("mtx_cass"); SOFTWARE_LIST(config, "flop_list").set_original("mtx_flop"); SOFTWARE_LIST(config, "cart_list").set_original("mtx_cart"); SOFTWARE_LIST(config, "rom_list").set_original("mtx_rom"); }