diff options
Diffstat (limited to 'src/mess/machine/victor9k_fdc.c')
-rw-r--r-- | src/mess/machine/victor9k_fdc.c | 38 |
1 files changed, 17 insertions, 21 deletions
diff --git a/src/mess/machine/victor9k_fdc.c b/src/mess/machine/victor9k_fdc.c index be26841fb37..0cc943a433c 100644 --- a/src/mess/machine/victor9k_fdc.c +++ b/src/mess/machine/victor9k_fdc.c @@ -17,7 +17,6 @@ - spindle speed - stepper - read PLL - - TACH0/1 - write logic */ @@ -109,6 +108,11 @@ void victor_9000_fdc_t::unload0_cb(floppy_image_device *device) m_via4->write_ca1(m_ds0); } +void victor_9000_fdc_t::index0_cb(floppy_image_device *device, int state) +{ + m_tach0 = state; +} + void victor_9000_fdc_t::ready1_cb(floppy_image_device *device, int state) { m_rdy1 = state; @@ -132,8 +136,14 @@ void victor_9000_fdc_t::unload1_cb(floppy_image_device *device) m_via4->write_cb1(m_ds1); } +void victor_9000_fdc_t::index1_cb(floppy_image_device *device, int state) +{ + m_tach1 = state; +} + static SLOT_INTERFACE_START( victor9k_floppies ) - SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) + SLOT_INTERFACE( "525ssqd", FLOPPY_525_SSQD ) // Tandon TM100-3 with custom electronics + SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) // Tandon TM100-4 with custom electronics SLOT_INTERFACE_END FLOPPY_FORMATS_MEMBER( victor_9000_fdc_t::floppy_formats ) @@ -246,9 +256,7 @@ victor_9000_fdc_t::victor_9000_fdc_t(const machine_config &mconfig, const char * void victor_9000_fdc_t::device_start() { // allocate timer - t_gen = timer_alloc(TM_GEN); - t_tach0 = timer_alloc(TM_TACH0); - t_tach1 = timer_alloc(TM_TACH1); + t_gen = timer_alloc(0); // state saving save_item(NAME(m_da)); @@ -302,9 +310,11 @@ void victor_9000_fdc_t::device_reset() m_floppy0->setup_ready_cb(floppy_image_device::ready_cb(FUNC(victor_9000_fdc_t::ready0_cb), this)); m_floppy0->setup_load_cb(floppy_image_device::load_cb(FUNC(victor_9000_fdc_t::load0_cb), this)); m_floppy0->setup_unload_cb(floppy_image_device::unload_cb(FUNC(victor_9000_fdc_t::unload0_cb), this)); + m_floppy0->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(FUNC(victor_9000_fdc_t::index0_cb), this)); m_floppy1->setup_ready_cb(floppy_image_device::ready_cb(FUNC(victor_9000_fdc_t::ready1_cb), this)); m_floppy1->setup_load_cb(floppy_image_device::load_cb(FUNC(victor_9000_fdc_t::load1_cb), this)); m_floppy1->setup_unload_cb(floppy_image_device::unload_cb(FUNC(victor_9000_fdc_t::unload1_cb), this)); + m_floppy1->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(FUNC(victor_9000_fdc_t::index1_cb), this)); } @@ -314,20 +324,8 @@ void victor_9000_fdc_t::device_reset() void victor_9000_fdc_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { - switch (id) - { - case TM_GEN: - live_sync(); - live_run(); - - case TM_TACH0: - // TODO - break; - - case TM_TACH1: - // TODO - break; - } + live_sync(); + live_run(); } @@ -482,12 +480,10 @@ void victor_9000_fdc_t::update_spindle_motor() if (m_sel0) m_da0 = m_da; m_floppy0->mon_w(m_mtr0); m_floppy0->set_rpm(300); // TODO - t_tach0->adjust(attotime::never); // TODO if (m_sel1) m_da1 = m_da; m_floppy1->mon_w(m_mtr1); m_floppy1->set_rpm(300); // TODO - t_tach1->adjust(attotime::never); // TODO } |