diff options
Diffstat (limited to 'src/devices/machine/swim1.cpp')
| -rw-r--r-- | src/devices/machine/swim1.cpp | 34 |
1 files changed, 4 insertions, 30 deletions
diff --git a/src/devices/machine/swim1.cpp b/src/devices/machine/swim1.cpp index 9c49fd94dad..f789a4e01cb 100644 --- a/src/devices/machine/swim1.cpp +++ b/src/devices/machine/swim1.cpp @@ -11,20 +11,9 @@ DEFINE_DEVICE_TYPE(SWIM1, swim1_device, "swim1", "Apple SWIM1 (Sander/Wozniak Integrated Machine) version 1 floppy controller") -swim1_device::swim1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t q3_clock) : - applefdintf_device(mconfig, SWIM1, tag, owner, clock), - m_q3_clock(q3_clock) -{ - m_iwm_q3_fclk_ratio = double(clock)/double(q3_clock); // ~0.125 - m_iwm_fclk_q3_ratio = double(q3_clock)/double(clock); // ~8 -} - swim1_device::swim1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - applefdintf_device(mconfig, SWIM1, tag, owner, clock), - m_q3_clock(0) + applefdintf_device(mconfig, SWIM1, tag, owner, clock) { - m_iwm_q3_fclk_ratio = 0; - m_iwm_fclk_q3_ratio = 0; } void swim1_device::device_start() @@ -414,16 +403,6 @@ attotime swim1_device::cycles_to_time(u64 cycles) const return attotime::from_ticks(cycles, clock()); } -u64 swim1_device::iwm_q3_to_fclk(u64 cycles) const -{ - return u64(m_iwm_q3_fclk_ratio * double(cycles) + 0.5); -} - -u64 swim1_device::iwm_fclk_to_q3(u64 cycles) const -{ - return u64(m_iwm_fclk_q3_ratio * double(cycles) + 0.5); -} - void swim1_device::ism_fifo_clear() { m_ism_fifo_pos = 0; @@ -502,11 +481,6 @@ u64 swim1_device::iwm_read_register_update_delay() const return m_iwm_mode & 0x08 ? 4 : 8; } -u64 swim1_device::iwm_write_sync_half_window_size() const -{ - return m_iwm_mode & 0x08 ? 2 : 4; -} - void swim1_device::iwm_sync() { if(!m_iwm_active) @@ -602,7 +576,7 @@ void swim1_device::iwm_sync() case S_IDLE: m_iwm_wsh = m_iwm_data; m_iwm_rw_state = SW_WINDOW_MIDDLE; - m_iwm_next_state_change = iwm_q3_to_fclk(iwm_fclk_to_q3(m_last_sync) + iwm_write_sync_half_window_size()); + // m_iwm_next_state_change = iwm_q3_to_fclk(iwm_fclk_to_q3(m_last_sync) + iwm_write_sync_half_window_size()); m_flux_write_count = 0; break; @@ -610,14 +584,14 @@ void swim1_device::iwm_sync() if(m_iwm_wsh & 0x80) m_flux_write[m_flux_write_count++] = m_last_sync; m_iwm_wsh <<= 1; - m_iwm_next_state_change = iwm_q3_to_fclk(iwm_fclk_to_q3(m_last_sync) + iwm_write_sync_half_window_size()); + // m_iwm_next_state_change = iwm_q3_to_fclk(iwm_fclk_to_q3(m_last_sync) + iwm_write_sync_half_window_size()); m_iwm_rw_state = SW_WINDOW_END; break; case SW_WINDOW_END: if(m_flux_write_count == m_flux_write.size()) flush_write(); - m_iwm_next_state_change = iwm_q3_to_fclk(iwm_fclk_to_q3(m_last_sync) + iwm_write_sync_half_window_size()); + // m_iwm_next_state_change = iwm_q3_to_fclk(iwm_fclk_to_q3(m_last_sync) + iwm_write_sync_half_window_size()); m_iwm_rw_state = SW_WINDOW_MIDDLE; break; } |
