From 6215cdca45304f559d2ec539b62488f815d437d6 Mon Sep 17 00:00:00 2001 From: Curt Coder Date: Wed, 4 Jan 2023 17:25:36 +0200 Subject: abc1600: Connect BUS0X PRAC callback, and break into debugger on bus error. [Curt Coder] --- src/mame/luxor/abc1600.cpp | 5 +++-- src/mame/luxor/abc1600mac.cpp | 16 ++++++++++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/mame/luxor/abc1600.cpp b/src/mame/luxor/abc1600.cpp index 2281e418233..d43dadb7170 100644 --- a/src/mame/luxor/abc1600.cpp +++ b/src/mame/luxor/abc1600.cpp @@ -28,6 +28,8 @@ + ABCenix <= D-NIX <= AT&T Unix System V + */ /* @@ -879,8 +881,7 @@ void abc1600_state::abc1600(machine_config &config) m_dma0->out_bao_callback().set(m_dma1, FUNC(z80dma_device::bai_w)); m_dma0->in_mreq_callback().set(m_mac, FUNC(abc1600_mac_device::dma0_mreq_r)); m_dma0->out_mreq_callback().set(m_mac, FUNC(abc1600_mac_device::dma0_mreq_w)); - m_dma0->out_ieo_callback().set(m_bus0i, FUNC(abcbus_slot_device::prac_w)).exor(1); - //m_dma0->out_ieo_callback().set(m_bus0x, FUNC(abcbus_slot_device::prac_w)).exor(1); + m_dma0->out_ieo_callback().set([this](int state) { m_bus0i->prac_w(state); m_bus0x->prac_w(state); }).exor(1); m_dma0->in_iorq_callback().set(m_mac, FUNC(abc1600_mac_device::dma0_iorq_r)); m_dma0->out_iorq_callback().set(m_mac, FUNC(abc1600_mac_device::dma0_iorq_w)); diff --git a/src/mame/luxor/abc1600mac.cpp b/src/mame/luxor/abc1600mac.cpp index b8c66c271ae..aa3f9b1d5a8 100644 --- a/src/mame/luxor/abc1600mac.cpp +++ b/src/mame/luxor/abc1600mac.cpp @@ -6,6 +6,14 @@ **********************************************************************/ +/* +[:mac] ':3f' (005BA) TASK W 03 (TASK 3 BOOTE 1 MAGIC 1) +[:mac] ':3f' (08058) BUS ERROR R fefe4:0007e4 (NONX 1 WP 0 TASK 3 FC 1 MAGIC 1) + +[:mac] TASK 3 SEGMENT 31 PAGE 13 MEM fe800-fefff 000000-0007ff X W[:mac] 000000-0007ff X W +[:mac] TASK 3 SEGMENT 31 PAGE 15 MEM ff800-fffff 07d800-07dfff [:mac] 07d800-07dfff +*/ + #include "emu.h" #include "abc1600mac.h" @@ -39,7 +47,7 @@ DEFINE_DEVICE_TYPE(ABC1600_MAC, abc1600_mac_device, "abc1600mac", "ABC 1600 MAC" void abc1600_mac_device::program_map(address_map &map) { - // populated in drivers/abc1600.cpp + // populated in src/mame/luxor/abc1600.cpp } void abc1600_mac_device::mac_map(address_map &map) @@ -239,7 +247,7 @@ uint8_t abc1600_mac_device::read(offs_t offset) { logerror("%s BUS ERROR R %05x:%06x (NONX %u WP %u TASK %u FC %u MAGIC %u)\n", machine().describe_context(), offset, virtual_offset, nonx, wp, task, fc, m_magic); - dump(); + machine().debug_break(); m_write_buserr(offset, 1); } } @@ -282,14 +290,14 @@ void abc1600_mac_device::write(offs_t offset, uint8_t data) { logerror("%s BUS ERROR W %05x:%06x (NONX %u WP %u TASK %u FC %u MAGIC %u)\n", machine().describe_context(), offset, virtual_offset, nonx, wp, task, fc, m_magic); - dump(); + machine().debug_break(); m_write_buserr(offset, 0); } if (!wp) { logerror("%s BUS ERROR W %05x:%06x (NONX %u WP %u TASK %u FC %u MAGIC %u)\n", machine().describe_context(), offset, virtual_offset, nonx, wp, task, fc, m_magic); - dump(); + machine().debug_break(); m_write_buserr(offset, 0); } } -- cgit v1.2.3