void newbrain_state::newbrain(machine_config &config) { // basic system hardware Z80(config, m_maincpu, XTAL(16'000'000)/4); m_maincpu->set_addrmap(AS_PROGRAM, &newbrain_state::newbrain_mreq); m_maincpu->set_addrmap(AS_IO, &newbrain_state::newbrain_iorq); COP420(config, m_cop, XTAL(16'000'000)/4); m_cop->set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, true); m_cop->read_g().set(FUNC(newbrain_state::cop_g_r)); m_cop->write_g().set(FUNC(newbrain_state::cop_g_w)); m_cop->write_d().set(FUNC(newbrain_state::cop_d_w)); m_cop->read_in().set(FUNC(newbrain_state::cop_in_r)); m_cop->write_so().set(FUNC(newbrain_state::k1_w)); m_cop->write_sk().set(FUNC(newbrain_state::k2_w)); m_cop->read_si().set(FUNC(newbrain_state::tdi_r)); // video hardware newbrain_video(config); // devices NEWBRAIN_EXPANSION_SLOT(config, m_exp, XTAL(16'000'000)/4, newbrain_expansion_cards, "eim"); CASSETTE(config, m_cassette1); m_cassette1->set_default_state((cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED)); CASSETTE(config, m_cassette2); m_cassette2->set_default_state((cassette_state)(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED)); RS232_PORT(config, RS232_V24_TAG, default_rs232_devices, nullptr); RS232_PORT(config, RS232_PRN_TAG, default_rs232_devices, nullptr); // internal ram RAM(config, RAM_TAG).set_default_size("32K"); }
void newbrain_eim_device::device_add_mconfig(machine_config &config) { // devices Z80CTC(config, m_ctc, XTAL(16'000'000)/8); m_ctc->zc_callback<0>().set(m_acia, FUNC(acia6850_device::write_rxc)); m_ctc->zc_callback<1>().set(m_acia, FUNC(acia6850_device::write_txc)); m_ctc->zc_callback<2>().set(FUNC(newbrain_eim_device::ctc_z2_w)); TIMER(config, "z80ctc_c2").configure_periodic(FUNC(newbrain_eim_device::ctc_c2_tick), attotime::from_hz(XTAL(16'000'000)/4/13)); adc0809_device &adc(ADC0809(config, ADC0809_TAG, 500000)); adc.eoc_callback().set(FUNC(newbrain_eim_device::adc_eoc_w)); adc.in_callback<0>().set_constant(0); adc.in_callback<1>().set_constant(0); adc.in_callback<2>().set_constant(0); adc.in_callback<3>().set_constant(0); adc.in_callback<4>().set_constant(0); adc.in_callback<5>().set_constant(0); adc.in_callback<6>().set_constant(0); adc.in_callback<7>().set_constant(0); ACIA6850(config, m_acia, 0); m_acia->irq_handler().set(FUNC(newbrain_eim_device::acia_interrupt)); RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr); NEWBRAIN_EXPANSION_SLOT(config, m_exp, XTAL(16'000'000)/8, newbrain_expansion_cards, "fdc"); // internal ram RAM(config, RAM_TAG).set_default_size("96K"); }
void newbrain_fdc_device::device_add_mconfig(machine_config &config) { Z80(config, m_maincpu, XTAL(4'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &newbrain_fdc_device::newbrain_fdc_mem); m_maincpu->set_addrmap(AS_IO, &newbrain_fdc_device::newbrain_fdc_io); UPD765A(config, m_fdc, 8'000'000, false, true); m_fdc->intrq_wr_callback().set(FUNC(newbrain_fdc_device::fdc_int_w)); FLOPPY_CONNECTOR(config, UPD765_TAG ":0", newbrain_floppies, "525dd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, UPD765_TAG ":1", newbrain_floppies, "525dd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, UPD765_TAG ":2", newbrain_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, UPD765_TAG ":3", newbrain_floppies, nullptr, floppy_image_device::default_floppy_formats); NEWBRAIN_EXPANSION_SLOT(config, m_exp, XTAL(16'000'000)/8, newbrain_expansion_cards, nullptr); }