diff options
| author | 2017-04-19 23:35:09 -0400 | |
|---|---|---|
| committer | 2017-04-19 23:35:09 -0400 | |
| commit | 99d385880c53cca45e6955245b493da159c5d07b (patch) | |
| tree | d58b55038870db3eb26e862f5065c8358d39840d /src | |
| parent | 0ffeb44f0f12adbb083eaac53be4e9cc8a7bef91 (diff) | |
Revert most of previous fix, instead change VIA6522 to work better. (nw)
Diffstat (limited to 'src')
| -rw-r--r-- | src/devices/machine/6522via.cpp | 8 | ||||
| -rw-r--r-- | src/mame/machine/mac.cpp | 15 | ||||
| -rw-r--r-- | src/mame/machine/macadb.cpp | 19 |
3 files changed, 15 insertions, 27 deletions
diff --git a/src/devices/machine/6522via.cpp b/src/devices/machine/6522via.cpp index 357f18c0842..438be001bf2 100644 --- a/src/devices/machine/6522via.cpp +++ b/src/devices/machine/6522via.cpp @@ -39,8 +39,8 @@ #define LOG_READ (1U << 3) #define LOG_INT (1U << 4) -//#define VERBOSE (LOG_SHIFT|LOG_SETUP|LOG_READ) -//#define LOG_OUTPUT_FUNC printf +#define VERBOSE (LOG_SHIFT) +#define LOG_OUTPUT_FUNC printf #include "logmacro.h" @@ -675,7 +675,7 @@ READ8_MEMBER( via6522_device::read ) val = m_sr; m_out_cb1 = 1; m_cb1_handler(m_out_cb1); - m_shift_counter = 8; + m_shift_counter = 7; clear_int(INT_SR); LOGSHIFT("ACR: %02x ", m_acr); if (SI_O2_CONTROL(m_acr)) @@ -861,7 +861,7 @@ WRITE8_MEMBER( via6522_device::write ) m_cb1_handler(m_out_cb1); } - m_shift_counter = 8; + m_shift_counter = 7; clear_int(INT_SR); LOGSHIFT(" - ACR is: %02x ", m_acr); if (SO_O2_CONTROL(m_acr)) diff --git a/src/mame/machine/mac.cpp b/src/mame/machine/mac.cpp index 8e3bc092fa3..43cac6789cf 100644 --- a/src/mame/machine/mac.cpp +++ b/src/mame/machine/mac.cpp @@ -1238,17 +1238,10 @@ WRITE_LINE_MEMBER(mac_state::mac_adb_via_out_cb2) } else { - if (m_adb_timer_ticks > 1) - { - if (state) - { - m_adb_command |= 1; - } - else - { - m_adb_command &= ~1; - } - } + if (state) + m_adb_command |= 1; + else + m_adb_command &= ~1; } } diff --git a/src/mame/machine/macadb.cpp b/src/mame/machine/macadb.cpp index 49bc23b8762..e661c29ed29 100644 --- a/src/mame/machine/macadb.cpp +++ b/src/mame/machine/macadb.cpp @@ -283,7 +283,7 @@ void mac_state::adb_talk() addr = (m_adb_command>>4); reg = (m_adb_command & 3); - //printf("Mac sent %x (cmd %d addr %d reg %d mr %d kr %d)\n", m_adb_command, (m_adb_command>>2)&3, addr, reg, m_adb_mouseaddr, m_adb_keybaddr); +// printf("Mac sent %x (cmd %d addr %d reg %d mr %d kr %d)\n", mac->m_adb_command, (mac->m_adb_command>>2)&3, addr, reg, m_adb_mouseaddr, m_adb_keybaddr); if (m_adb_waiting_cmd) { @@ -637,21 +637,16 @@ TIMER_CALLBACK_MEMBER(mac_state::mac_adb_tick) } else { - // for input to Mac, the VIA reads on the *other* clock edge, so update this here if (!m_adb_direction) { m_via1->write_cb2((m_adb_send & 0x80)>>7); - if (m_adb_timer_ticks != 9) - { - m_adb_send <<= 1; - } + m_adb_send <<= 1; } - // do one clock transition on CB1 to advance the VIA shifter m_adb_extclock ^= 1; m_via1->write_cb1(m_adb_extclock); - if ((m_adb_direction) && (m_adb_timer_ticks > 1)) + if (m_adb_direction) { m_adb_command <<= 1; } @@ -668,7 +663,7 @@ TIMER_CALLBACK_MEMBER(mac_state::mac_adb_tick) { adb_talk(); if((m_adb_last_talk == 2) && m_adb_datasize) { - m_adb_timer_ticks = 9; + m_adb_timer_ticks = 8; m_adb_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(100))); } } @@ -689,7 +684,7 @@ void mac_state::mac_adb_newaction(int state) #endif m_adb_state = state; - m_adb_timer_ticks = 9; + m_adb_timer_ticks = 8; switch (state) { @@ -1126,7 +1121,7 @@ void mac_state::adb_vblank() m_adb_waiting_cmd = 1; this->adb_talk(); - m_adb_timer_ticks = 9; + m_adb_timer_ticks = 8; this->m_adb_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(100))); } #if 0 @@ -1163,7 +1158,7 @@ void mac_state::adb_vblank() m_adb_waiting_cmd = 1; this->adb_talk(); - m_adb_timer_ticks = 9; + m_adb_timer_ticks = 8; this->m_adb_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(100))); } #if 0 |
