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); }
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 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); }
MCFG_DEVICE_ADD(CTRLMCU_TAG, I8041, XTAL(4'000'000)) // Verified on schematic MCFG_MCS48_PORT_P1_IN_CB(READ8(*this, vp415_state, ctrl_mcu_port1_r)); MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(*this, vp415_state, ctrl_mcu_port1_w)); MCFG_MCS48_PORT_P2_IN_CB(READ8(*this, vp415_state, ctrl_mcu_port2_r)); MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(*this, vp415_state, ctrl_mcu_port2_w)); MCFG_DEVICE_PROGRAM_MAP(ctrlmcu_program_map) // Module R: Drive MCFG_DEVICE_ADD(DRIVECPU_TAG, I8031, XTAL(12'000'000)) // 12MHz, per schematic MCFG_MCS51_PORT_P1_OUT_CB(WRITE8(*this, vp415_state, drive_cpu_port1_w)); MCFG_MCS51_PORT_P3_OUT_CB(WRITE8(*this, vp415_state, drive_cpu_port3_w)); MCFG_DEVICE_PROGRAM_MAP(drive_program_map) MCFG_DEVICE_IO_MAP(drive_io_map) i8155_device &i8155(I8155(config, I8155_TAG, 0)); i8155.out_pa_callback().set(CHARGEN_TAG, FUNC(mb88303_device::da_w)); i8155.in_pb_callback().set(FUNC(vp415_state::drive_i8155_pb_r)); i8155.in_pc_callback().set(FUNC(vp415_state::drive_i8155_pc_r)); i8255_device &ppi(I8255(config, I8255_TAG)); ppi.out_pa_callback().set(FUNC(vp415_state::drive_i8255_pa_w)); ppi.out_pb_callback().set(FUNC(vp415_state::drive_i8255_pb_w)); ppi.in_pc_callback().set(FUNC(vp415_state::drive_i8255_pc_r)); MCFG_DEVICE_ADD(CHARGEN_TAG, MB88303, 0) saa1043_device &saa1043(SAA1043(config, SYNCGEN_TAG, XTAL(5'000'000))); saa1043.v2_callback().set(FUNC(vp415_state::refv_w)); MCFG_SCREEN_ADD("screen", RASTER)
// video hardware MCFG_SCREEN_ADD_MONOCHROME(SCREEN_TAG, RASTER, rgb_t::amber()) MCFG_SCREEN_UPDATE_DRIVER(vixen_state, screen_update) MCFG_SCREEN_RAW_PARAMS(23.9616_MHz_XTAL / 2, 96*8, 0*8, 81*8, 27*10, 0*10, 26*10) MCFG_TIMER_DRIVER_ADD_SCANLINE("vsync", vixen_state, vsync_tick, SCREEN_TAG, 26*10, 27*10) MCFG_PALETTE_ADD_MONOCHROME("palette") // sound hardware SPEAKER(config, "mono").front_center(); MCFG_DEVICE_ADD(DISCRETE_TAG, DISCRETE, vixen_discrete) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20) // devices i8155_device &i8155(I8155(config, P8155H_TAG, 23.9616_MHz_XTAL / 6)); i8155.in_pa_callback().set(FUNC(vixen_state::i8155_pa_r)); i8155.out_pb_callback().set(FUNC(vixen_state::i8155_pb_w)); i8155.out_pc_callback().set(FUNC(vixen_state::i8155_pc_w)); i8155_device &i8155_io(I8155(config, P8155H_IO_TAG, 23.9616_MHz_XTAL / 6)); i8155_io.out_pa_callback().set(m_ieee488, FUNC(ieee488_device::host_dio_w)); i8155_io.out_pb_callback().set(FUNC(vixen_state::io_i8155_pb_w)); i8155_io.out_pc_callback().set(FUNC(vixen_state::io_i8155_pc_w)); i8155_io.out_to_callback().set(FUNC(vixen_state::io_i8155_to_w)); I8251(config, m_usart, 0); m_usart->txd_handler().set(m_rs232, FUNC(rs232_port_device::write_txd)); m_usart->dtr_handler().set(m_rs232, FUNC(rs232_port_device::write_dtr)); m_usart->rts_handler().set(m_rs232, FUNC(rs232_port_device::write_rts)); m_usart->rxrdy_handler().set(FUNC(vixen_state::rxrdy_w));
m_maincpu->port_in_cb().set(FUNC(paranoia_state::pce_joystick_r)); m_maincpu->port_out_cb().set(FUNC(paranoia_state::pce_joystick_w)); m_maincpu->add_route(0, "lspeaker", 1.00); m_maincpu->add_route(1, "rspeaker", 1.00); MCFG_QUANTUM_TIME(attotime::from_hz(60)) MCFG_DEVICE_ADD("sub", I8085A, 18000000/3) MCFG_DEVICE_PROGRAM_MAP(paranoia_8085_map) MCFG_DEVICE_IO_MAP(paranoia_8085_io_map) MCFG_DEVICE_ADD("sub2", Z80, 18000000/6) MCFG_DEVICE_PROGRAM_MAP(paranoia_z80_map) MCFG_DEVICE_IO_MAP(paranoia_z80_io_map) i8155_device &i8155(I8155(config, "i8155", 1000000 /*?*/)); i8155.out_pa_callback().set(FUNC(paranoia_state::i8155_a_w)); i8155.out_pb_callback().set(FUNC(paranoia_state::i8155_b_w)); i8155.out_pc_callback().set(FUNC(paranoia_state::i8155_c_w)); i8155.out_to_callback().set(FUNC(paranoia_state::i8155_timer_out)); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242) MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update ) MCFG_SCREEN_PALETTE("huc6260") MCFG_DEVICE_ADD( "huc6260", HUC6260, PCE_MAIN_CLOCK ) MCFG_HUC6260_NEXT_PIXEL_DATA_CB(READ16("huc6270", huc6270_device, next_pixel)) MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(READ16("huc6270", huc6270_device, time_until_next_event)) MCFG_HUC6260_VSYNC_CHANGED_CB(WRITELINE("huc6270", huc6270_device, vsync_changed))