summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author arbee <rb6502@users.noreply.github.com>2022-10-02 21:20:24 -0400
committer arbee <rb6502@users.noreply.github.com>2022-10-02 21:20:24 -0400
commitd909206cba8dafbedf7db5ac0f15c4bd18acc168 (patch)
tree0dbe67d7bd7399e907a321e8158b793db8a1905a
parentbaef2b80f656ce3eaf677e2d59c3b2063154c8ec (diff)
macadb: remove incorrect SRQ check that made some microcontrollers see phantom devices. [R. Belmont]
cuda: one-byte patch to the program to make ADB autopoll run, keyboard and mouse now read correctly. [R. Belmont] Machines promoted to WORKING ---------------------------- Macintosh Color Classic [R. Belmont] Macintosh LC 520 [R. Belmont]
-rw-r--r--src/mame/apple/cuda.cpp19
-rw-r--r--src/mame/apple/macadb.cpp5
-rw-r--r--src/mame/apple/maclc.cpp2
-rw-r--r--src/mame/apple/maclc3.cpp2
4 files changed, 21 insertions, 7 deletions
diff --git a/src/mame/apple/cuda.cpp b/src/mame/apple/cuda.cpp
index 31054d4a4a9..1c5cd021e82 100644
--- a/src/mame/apple/cuda.cpp
+++ b/src/mame/apple/cuda.cpp
@@ -433,6 +433,25 @@ void cuda_device::device_start()
if (rom)
{
memcpy(rom, rom+rom_offset, 0x1100);
+
+ // HACK: there's as-yet undiagnosed weirdness in the 6805 program where the ADB
+ // autopoll timer never reaches zero and polling never occurs. This patches
+ // the idle loop so polling runs.
+ // in 2.40:
+ // 101B: tst autopoll_timer (0x90)
+ // 101D: bne adb_poll_loop
+ // 101F: brset 7, flags, run_auto_poll
+
+ switch (rom_offset)
+ {
+ case CUDA_341S0060:
+ rom[0x101d-0xf00] = 0x27; // patch for 2.40 (BNE to BEQ)
+ break;
+
+ case CUDA_341S0788:
+ rom[0x1035-0xf00] = 0x27; // patch for 2.37 (BNE to BEQ)
+ break;
+ }
}
}
diff --git a/src/mame/apple/macadb.cpp b/src/mame/apple/macadb.cpp
index 5848570fbf3..76725041afa 100644
--- a/src/mame/apple/macadb.cpp
+++ b/src/mame/apple/macadb.cpp
@@ -659,11 +659,6 @@ void macadb_device::adb_talk()
LOGMASKED(LOG_TALK_LISTEN, "ADB: talking to unconnected device %d (K %d M %d)\n", addr, m_adb_keybaddr, m_adb_mouseaddr);
m_adb_buffer[0] = m_adb_buffer[1] = 0;
m_adb_datasize = 0;
-
- if ((adb_pollkbd(0)) || (adb_pollmouse()))
- {
- m_adb_srqflag = true;
- }
}
break;
}
diff --git a/src/mame/apple/maclc.cpp b/src/mame/apple/maclc.cpp
index fbf14ffb937..1d653adf351 100644
--- a/src/mame/apple/maclc.cpp
+++ b/src/mame/apple/maclc.cpp
@@ -482,4 +482,4 @@ ROM_END
COMP(1990, maclc, 0, 0, maclc, maclc, maclc_state, empty_init, "Apple Computer", "Macintosh LC", MACHINE_SUPPORTS_SAVE|MACHINE_IMPERFECT_SOUND)
COMP(1991, maclc2, 0, 0, maclc2, maclc, maclc_state, empty_init, "Apple Computer", "Macintosh LC II", MACHINE_SUPPORTS_SAVE|MACHINE_IMPERFECT_SOUND)
COMP(1991, macclas2, 0, 0, macclas2, maclc, maclc_state, empty_init, "Apple Computer", "Macintosh Classic II", MACHINE_SUPPORTS_SAVE|MACHINE_IMPERFECT_SOUND )
-COMP(1993, maccclas, 0, 0, maccclas, maclc, maclc_state, empty_init, "Apple Computer", "Macintosh Color Classic", MACHINE_NOT_WORKING)
+COMP(1993, maccclas, 0, 0, maccclas, maclc, maclc_state, empty_init, "Apple Computer", "Macintosh Color Classic", MACHINE_SUPPORTS_SAVE|MACHINE_IMPERFECT_SOUND)
diff --git a/src/mame/apple/maclc3.cpp b/src/mame/apple/maclc3.cpp
index 5008eb2f3eb..c4e731c09d0 100644
--- a/src/mame/apple/maclc3.cpp
+++ b/src/mame/apple/maclc3.cpp
@@ -319,4 +319,4 @@ ROM_END
} // anonymous namespace
COMP(1993, maclc3, 0, 0, maclc3, macadb, macvail_state, empty_init, "Apple Computer", "Macintosh LC III", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND)
-COMP(1993, maclc520, 0, 0, maclc520, macadb, macvail_state, empty_init, "Apple Computer", "Macintosh LC 520", MACHINE_NOT_WORKING)
+COMP(1993, maclc520, 0, 0, maclc520, macadb, macvail_state, empty_init, "Apple Computer", "Macintosh LC 520", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND)