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 v550_state::v550(machine_config &config) { Z80(config, m_maincpu, 34.846_MHz_XTAL / 16); // NEC D780C (2.177875 MHz verified) m_maincpu->set_addrmap(AS_PROGRAM, &v550_state::mem_map); m_maincpu->set_addrmap(AS_IO, &v550_state::io_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // NEC D444C-2 + battery upd7220_device &gdc(UPD7220(config, "gdc", 34.846_MHz_XTAL / 16)); // NEC D7220D (2.177875 MHz verified) gdc.set_screen("screen"); I8255(config, "ppi"); // NEC D8255AC-5 I8251(config, m_usart, 34.846_MHz_XTAL / 16); // NEC D8251AC m_usart->rxrdy_handler().set("mainint", FUNC(input_merger_device::in_w<1>)); upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", 34.846_MHz_XTAL / 16)); // NEC D7201C mpsc.out_int_callback().set("mainint", FUNC(input_merger_device::in_w<0>)); INPUT_MERGER_ANY_HIGH(config, "mainint").output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); com8116_device &brg1(COM8116(config, "brg1", 5068800)); // actually SMC COM8116T-020 (unknown clock) brg1.ft_handler().set("mpsc", FUNC(upd7201_new_device::txca_w)); brg1.fr_handler().set("mpsc", FUNC(upd7201_new_device::rxca_w)); com8116_device &brg2(COM8116(config, "brg2", 5068800)); // actually SMC COM8116T-020 brg2.ft_handler().set("mpsc", FUNC(upd7201_new_device::txcb_w)); brg2.ft_handler().append("mpsc", FUNC(upd7201_new_device::rxcb_w)); brg2.fr_handler().set("usart", FUNC(i8251_device::write_txc)); brg2.fr_handler().append("usart", FUNC(i8251_device::write_rxc)); mcs48_cpu_device &kbdmcu(I8035(config, "kbdmcu", 4'608'000)); kbdmcu.set_addrmap(AS_PROGRAM, &v550_state::kbd_map); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(34.846_MHz_XTAL, 19 * 102, 0, 19 * 80, 295, 0, 272); m_screen->set_screen_update(FUNC(v550_state::screen_update)); scn2672_device &pvtc(SCN2672(config, "pvtc", 34.846_MHz_XTAL / 19)); pvtc.set_addrmap(0, &v550_state::pvtc_char_map); pvtc.set_addrmap(1, &v550_state::pvtc_attr_map); pvtc.set_character_width(19); pvtc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); pvtc.set_screen("screen"); // SCB2673 clock verified at 17.423 MHz }
void bitgraph_state::bg_ppu(machine_config &config) { i8035_device &ppu(I8035(config, PPU_TAG, XTAL(6'900'000))); ppu.set_addrmap(AS_IO, &bitgraph_state::ppu_io); // ppu.t0_in_cb().set(FUNC(bitgraph_state::ppu_t0_r)); ppu.prog_out_cb().set("i8243", FUNC(i8243_device::prog_w)); i8243_device &i8243(I8243(config, "i8243")); i8243.read_handler().set_nop(); i8243.write_handler().set(FUNC(bitgraph_state::ppu_i8243_w)); CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->ack_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit6)); m_centronics->busy_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit7)); m_centronics->fault_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit4)); m_centronics->perror_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit5)); INPUT_BUFFER(config, "cent_status_in"); output_latch_device ¢_data_out(OUTPUT_LATCH(config, "cent_data_out")); m_centronics->set_output_latch(cent_data_out); }
void n8080_state::spacefev_sound(machine_config &config) { MCFG_SOUND_START_OVERRIDE(n8080_state,spacefev) MCFG_SOUND_RESET_OVERRIDE(n8080_state,spacefev) /* basic machine hardware */ I8035(config, m_audiocpu, 6000000); m_audiocpu->set_addrmap(AS_PROGRAM, &n8080_state::n8080_sound_cpu_map); m_audiocpu->t0_in_cb().set(FUNC(n8080_state::n8080_8035_t0_r)); m_audiocpu->t1_in_cb().set(FUNC(n8080_state::n8080_8035_t1_r)); m_audiocpu->p1_in_cb().set(FUNC(n8080_state::n8080_8035_p1_r)); m_audiocpu->p2_out_cb().set(FUNC(n8080_state::n8080_dac_w)); TIMER(config, "vco_timer").configure_periodic(FUNC(n8080_state::spacefev_vco_voltage_timer), attotime::from_hz(1000)); /* sound hardware */ SPEAKER(config, "speaker").front_center(); DAC_1BIT(config, m_n8080_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.15); voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); vref.add_route(0, "n8080_dac", 1.0, DAC_VREF_POS_INPUT); SN76477(config, m_sn); m_sn->set_noise_params(RES_K(36), RES_K(150), CAP_N(1)); m_sn->set_decay_res(RES_M(1)); m_sn->set_attack_params(CAP_U(1.0), RES_K(20)); m_sn->set_amp_res(RES_K(150)); m_sn->set_feedback_res(RES_K(47)); m_sn->set_vco_params(0, CAP_N(1), RES_M(1.5)); m_sn->set_pitch_voltage(0); m_sn->set_slf_params(CAP_N(47), RES_M(1)); m_sn->set_oneshot_params(CAP_N(47), RES_K(820)); m_sn->set_vco_mode(0); m_sn->set_mixer_params(0, 0, 0); m_sn->set_envelope_params(1, 0); m_sn->set_enable(1); m_sn->add_route(ALL_OUTPUTS, "speaker", 0.35); }
void n8080_state::helifire_sound(machine_config &config) { MCFG_SOUND_START_OVERRIDE(n8080_state,helifire) MCFG_SOUND_RESET_OVERRIDE(n8080_state,helifire) /* basic machine hardware */ I8035(config, m_audiocpu, 6000000); m_audiocpu->set_addrmap(AS_PROGRAM, &n8080_state::n8080_sound_cpu_map); m_audiocpu->set_addrmap(AS_IO, &n8080_state::helifire_sound_io_map); m_audiocpu->t0_in_cb().set(FUNC(n8080_state::helifire_8035_t0_r)); m_audiocpu->t1_in_cb().set(FUNC(n8080_state::helifire_8035_t1_r)); m_audiocpu->p2_in_cb().set(FUNC(n8080_state::helifire_8035_p2_r)); m_audiocpu->p1_out_cb().set("helifire_dac", FUNC(dac_byte_interface::data_w)); m_audiocpu->p2_out_cb().set(FUNC(n8080_state::helifire_sound_ctrl_w)); TIMER(config, "helifire_dac_volume_timer").configure_periodic(FUNC(n8080_state::helifire_dac_volume_timer), attotime::from_hz(1000)); /* sound hardware */ SPEAKER(config, "speaker").front_center(); DAC_8BIT_R2R(config, m_helifire_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.15); // unknown DAC voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0)); vref.add_route(0, "helifire_dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "helifire_dac", -1.0, DAC_VREF_NEG_INPUT); }
} /*************************************************************************** MACHINE DRIVERS ***************************************************************************/ /*------------------------------------------------- MACHINE_DRIVER( cgc7900 ) -------------------------------------------------*/ MACHINE_CONFIG_START(cgc7900_state::cgc7900) /* basic machine hardware */ MCFG_DEVICE_ADD(M68000_TAG, M68000, XTAL(28'480'000)/4) MCFG_DEVICE_PROGRAM_MAP(cgc7900_mem) i8035_device &kbmcu(I8035(config, I8035_TAG, 1000000)); kbmcu.set_addrmap(AS_PROGRAM, &cgc7900_state::keyboard_mem); kbmcu.set_disable(); /* MCFG_DEVICE_ADD(AM2910_TAG, AM2910, XTAL(17'360'000)) MCFG_DEVICE_PROGRAM_MAP(omti10_mem)*/ /* video hardware */ cgc7900_video(config); /* sound hardware */ SPEAKER(config, "mono").front_center(); AY8910(config, AY8910_TAG, XTAL(28'480'000)/16).add_route(ALL_OUTPUTS, "mono", 0.25); /* devices */ generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0));