static MACHINE_INIT( exidy ) { hd6402_init(); hd6402_set_callback(exidy_hd6402_callback); hd6402_reset(); centronics_config(0, exidy_cent_config); /* assumption: select is tied low */ centronics_write_handshake(0, CENTRONICS_SELECT | CENTRONICS_NO_RESET, CENTRONICS_SELECT| CENTRONICS_NO_RESET); serial_timer = timer_alloc(exidy_serial_timer_callback); cassette_timer = timer_alloc(exidy_cassette_timer_callback); serial_connection_init(&cassette_serial_connection); serial_connection_set_in_callback(&cassette_serial_connection, cassette_serial_in); exidy_fe_port_w(0,0); timer_set(TIME_NOW, 0, exidy_reset_timer_callback); wd179x_init(WD_TYPE_179X,NULL); floppy_drive_set_geometry(image_from_devtype_and_index(IO_FLOPPY, 0), FLOPPY_DRIVE_DS_80); /* this is temporary. Normally when a Z80 is reset, it will execute address 0. The exidy starts executing from 0x0e000 */ /* memory_set_opbase_handler(0, exidy_opbaseoverride); */ /* cpunum_write_byte(0,0,0x0c3); */ /* cpunum_write_byte(0,1,0x000); */ /* cpunum_write_byte(0,2,0x0e0); */ }
static void pmd85_common_driver_init (running_machine &machine) { pmd85_state *state = machine.driver_data<pmd85_state>(); state->m_previous_level = 0; state->m_clk_level = state->m_clk_level_tape = 1; state->m_cassette_timer = machine.scheduler().timer_alloc(FUNC(pmd85_cassette_timer_callback)); state->m_cassette_timer->adjust(attotime::zero, 0, attotime::from_hz(2400)); serial_connection_init(machine, &state->m_cassette_serial_connection); serial_connection_set_in_callback(machine, &state->m_cassette_serial_connection, pmd85_cassette_write); }