summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/macadb.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/macadb.cpp')
-rw-r--r--src/mame/machine/macadb.cpp132
1 files changed, 64 insertions, 68 deletions
diff --git a/src/mame/machine/macadb.cpp b/src/mame/machine/macadb.cpp
index 76a8a010b57..22f0acabf27 100644
--- a/src/mame/machine/macadb.cpp
+++ b/src/mame/machine/macadb.cpp
@@ -528,35 +528,33 @@ void mac_state::adb_talk()
}
}
-TIMER_CALLBACK(mac_adb_tick)
+TIMER_CALLBACK_MEMBER(mac_state::mac_adb_tick)
{
- mac_state *mac = machine.driver_data<mac_state>();
-
- if ((ADB_IS_EGRET_NONCLASS) || (ADB_IS_CUDA_NONCLASS))
+ if ((ADB_IS_EGRET) || (ADB_IS_CUDA))
{
- switch (mac->m_adb_linestate)
+ switch (m_adb_linestate)
{
case LST_SRQNODATA:
- mac->set_adb_line(ASSERT_LINE);
- mac->m_adb_linestate = LST_IDLE;
+ set_adb_line(ASSERT_LINE);
+ m_adb_linestate = LST_IDLE;
break;
case LST_TSTOPSTART:
- mac->set_adb_line(ASSERT_LINE);
- mac->m_adb_timer->adjust(attotime::from_ticks(57, 1000000));
- mac->m_adb_linestate++;
+ set_adb_line(ASSERT_LINE);
+ m_adb_timer->adjust(attotime::from_ticks(57, 1000000));
+ m_adb_linestate++;
break;
case LST_TSTOPSTARTa:
- mac->set_adb_line(CLEAR_LINE);
- mac->m_adb_timer->adjust(attotime::from_ticks(57, 1000000));
- mac->m_adb_linestate++;
+ set_adb_line(CLEAR_LINE);
+ m_adb_timer->adjust(attotime::from_ticks(57, 1000000));
+ m_adb_linestate++;
break;
case LST_STARTBIT:
- mac->set_adb_line(ASSERT_LINE);
- mac->m_adb_timer->adjust(attotime::from_ticks(105, 1000000));
- mac->m_adb_linestate++;
+ set_adb_line(ASSERT_LINE);
+ m_adb_timer->adjust(attotime::from_ticks(105, 1000000));
+ m_adb_linestate++;
break;
case LST_SENDBIT0:
@@ -567,18 +565,18 @@ TIMER_CALLBACK(mac_adb_tick)
case LST_SENDBIT5:
case LST_SENDBIT6:
case LST_SENDBIT7:
- mac->set_adb_line(CLEAR_LINE);
- if (mac->m_adb_buffer[mac->m_adb_stream_ptr] & 0x80)
+ set_adb_line(CLEAR_LINE);
+ if (m_adb_buffer[m_adb_stream_ptr] & 0x80)
{
// printf("1 ");
- mac->m_adb_timer->adjust(attotime::from_ticks(57, 1000000));
+ m_adb_timer->adjust(attotime::from_ticks(57, 1000000));
}
else
{
// printf("0 ");
- mac->m_adb_timer->adjust(attotime::from_ticks(105, 1000000));
+ m_adb_timer->adjust(attotime::from_ticks(105, 1000000));
}
- mac->m_adb_linestate++;
+ m_adb_linestate++;
break;
case LST_SENDBIT0a:
@@ -588,92 +586,92 @@ TIMER_CALLBACK(mac_adb_tick)
case LST_SENDBIT4a:
case LST_SENDBIT5a:
case LST_SENDBIT6a:
- mac->set_adb_line(ASSERT_LINE);
- if (mac->m_adb_buffer[mac->m_adb_stream_ptr] & 0x80)
+ set_adb_line(ASSERT_LINE);
+ if (m_adb_buffer[m_adb_stream_ptr] & 0x80)
{
- mac->m_adb_timer->adjust(attotime::from_ticks(105, 1000000));
+ m_adb_timer->adjust(attotime::from_ticks(105, 1000000));
}
else
{
- mac->m_adb_timer->adjust(attotime::from_ticks(57, 1000000));
+ m_adb_timer->adjust(attotime::from_ticks(57, 1000000));
}
- mac->m_adb_buffer[mac->m_adb_stream_ptr] <<= 1;
- mac->m_adb_linestate++;
+ m_adb_buffer[m_adb_stream_ptr] <<= 1;
+ m_adb_linestate++;
break;
case LST_SENDBIT7a:
- mac->set_adb_line(ASSERT_LINE);
- if (mac->m_adb_buffer[mac->m_adb_stream_ptr] & 0x80)
+ set_adb_line(ASSERT_LINE);
+ if (m_adb_buffer[m_adb_stream_ptr] & 0x80)
{
// printf(" ");
- mac->m_adb_timer->adjust(attotime::from_ticks(105, 1000000));
+ m_adb_timer->adjust(attotime::from_ticks(105, 1000000));
}
else
{
// printf(" ");
- mac->m_adb_timer->adjust(attotime::from_ticks(57, 1000000));
+ m_adb_timer->adjust(attotime::from_ticks(57, 1000000));
}
- mac->m_adb_stream_ptr++;
- if (mac->m_adb_stream_ptr == mac->m_adb_datasize)
+ m_adb_stream_ptr++;
+ if (m_adb_stream_ptr == m_adb_datasize)
{
- mac->m_adb_linestate++;
+ m_adb_linestate++;
}
else
{
- mac->m_adb_linestate = LST_SENDBIT0;
+ m_adb_linestate = LST_SENDBIT0;
}
break;
case LST_SENDSTOP:
- mac->set_adb_line(CLEAR_LINE);
- mac->m_adb_timer->adjust(attotime::from_ticks((57*2), 1000000));
- mac->m_adb_linestate++;
+ set_adb_line(CLEAR_LINE);
+ m_adb_timer->adjust(attotime::from_ticks((57*2), 1000000));
+ m_adb_linestate++;
break;
case LST_SENDSTOPa:
- mac->set_adb_line(ASSERT_LINE);
- mac->m_adb_timer->adjust(attotime::never);
- mac->m_adb_linestate = LST_IDLE;
+ set_adb_line(ASSERT_LINE);
+ m_adb_timer->adjust(attotime::never);
+ m_adb_linestate = LST_IDLE;
break;
}
}
else
{
// do one clock transition on CB1 to advance the VIA shifter
- mac->m_adb_extclock ^= 1;
- mac->m_via1->write_cb1(mac->m_adb_extclock);
+ m_adb_extclock ^= 1;
+ m_via1->write_cb1(m_adb_extclock);
- if (mac->m_adb_direction)
+ if (m_adb_direction)
{
- mac->m_adb_command <<= 1;
+ m_adb_command <<= 1;
}
else
{
- mac->m_via1->write_cb2((mac->m_adb_send & 0x80)>>7);
- mac->m_adb_send <<= 1;
+ m_via1->write_cb2((m_adb_send & 0x80)>>7);
+ m_adb_send <<= 1;
}
- mac->m_adb_extclock ^= 1;
- mac->m_via1->write_cb1(mac->m_adb_extclock);
+ m_adb_extclock ^= 1;
+ m_via1->write_cb1(m_adb_extclock);
- mac->m_adb_timer_ticks--;
- if (!mac->m_adb_timer_ticks)
+ m_adb_timer_ticks--;
+ if (!m_adb_timer_ticks)
{
- mac->m_adb_timer->adjust(attotime::never);
+ m_adb_timer->adjust(attotime::never);
- if ((mac->m_adb_direction) && (ADB_IS_BITBANG))
+ if ((m_adb_direction) && (ADB_IS_BITBANG_CLASS))
{
- mac->adb_talk();
- if((mac->m_adb_last_talk == 2) && mac->m_adb_datasize) {
- mac->m_adb_timer_ticks = 8;
- mac->m_adb_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(100)));
+ adb_talk();
+ if((m_adb_last_talk == 2) && m_adb_datasize) {
+ m_adb_timer_ticks = 8;
+ m_adb_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(100)));
}
}
}
else
{
- mac->m_adb_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(200)));
+ m_adb_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(200)));
}
}
}
@@ -736,30 +734,28 @@ void mac_state::mac_adb_newaction(int state)
}
}
-TIMER_CALLBACK(mac_pmu_tick)
+TIMER_CALLBACK_MEMBER(mac_state::mac_pmu_tick)
{
- mac_state *mac = machine.driver_data<mac_state>();
-
// state 10 means this is in response to an ADB command
- if (mac->m_pm_state == 10)
+ if (m_pm_state == 10)
{
#if LOG_ADB
printf("PM: was state 10, chunk-chunking CB1\n");
#endif
- mac->m_pm_state = 0;
+ m_pm_state = 0;
// tick CB1, which should cause a PMU interrupt on PMU machines
- mac->m_adb_extclock ^= 1;
- mac->m_via1->write_cb1(mac->m_adb_extclock);
- mac->m_adb_extclock ^= 1;
- mac->m_via1->write_cb1(mac->m_adb_extclock);
+ m_adb_extclock ^= 1;
+ m_via1->write_cb1(m_adb_extclock);
+ m_adb_extclock ^= 1;
+ m_via1->write_cb1(m_adb_extclock);
}
else
{
#if LOG_ADB
printf("PM: timer tick, lowering ACK\n");
#endif
- mac->m_pm_ack &= ~2; // lower ACK to handshake next step
+ m_pm_ack &= ~2; // lower ACK to handshake next step
}
}