void wozfdc_device::control(int offset) { if(offset < 8) { if(active) lss_sync(); phase(offset >> 1, offset & 1); if(active) lss_predict(); } else switch(offset) {
void wozfdc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { if(active) lss_sync(); if(id == 1 && active == MODE_DELAY) { if(floppy) floppy->mon_w(true); active = MODE_IDLE; } }
void wozfdc_device::a3_update_drive_sel() { floppy_image_device *newflop = NULL; if (!external_io_select) { newflop = floppy0->get_device(); } else { switch (drvsel & 3) { case 0: newflop = floppy0->get_device(); break; case 1: newflop = floppy1->get_device(); break; case 2: newflop = floppy2->get_device(); break; case 3: newflop = floppy3->get_device(); break; } } if (floppy != newflop) { if(active) { lss_sync(); floppy->mon_w(true); } floppy = newflop; if(active) { floppy->mon_w(false); lss_predict(); } } }