summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/apple/msc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/apple/msc.h')
-rw-r--r--src/mame/apple/msc.h26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/mame/apple/msc.h b/src/mame/apple/msc.h
index 8c2ce7f3de4..e6fa6fa4155 100644
--- a/src/mame/apple/msc.h
+++ b/src/mame/apple/msc.h
@@ -19,12 +19,33 @@ public:
// Something is definitely customized with how PB1 interrupts work in the MSC's internal VIA1.
// This makes CPU/PMU comms work properly and fits with what we see in the leaked System 7.1
// source tree, but I'm not sure it's the exact behavior of the real MSC.
- void cb1_int_hack(int state)
+ void pmu_int(int state)
{
if (state == ASSERT_LINE)
{
set_int(0x10); // INT_CB1
}
+ else
+ {
+ clear_int(0x10);
+ }
+ }
+
+ void write_cb1_noint(int state)
+ {
+ if (m_in_cb1 != state)
+ {
+ m_in_cb1 = state;
+ }
+
+ if ((m_acr & 0x1c) == 0x1c)
+ {
+ shift_out();
+ }
+ else if (((m_acr & 0x1c) == 0x0c) || (!(m_acr & 0x1c)))
+ {
+ shift_in();
+ }
}
};
@@ -66,7 +87,8 @@ public:
int get_pmu_req();
void pmu_ack_w(int state);
- void cb1_int_hack(int state);
+ void pmu_int(int state);
+ void write_cb1(int state);
protected:
virtual void device_start() override ATTR_COLD;