mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
abc1600: Fixed floppy DMA. [Curt Coder]
This commit is contained in:
parent
056e795dd3
commit
8c333311f1
@ -50,8 +50,16 @@ abcbus_slot_device::abcbus_slot_device(const machine_config &mconfig, const char
|
||||
m_write_xint2(*this),
|
||||
m_write_xint3(*this),
|
||||
m_write_xint4(*this),
|
||||
m_write_xint5(*this), m_card(nullptr), m_irq(0), m_nmi(0), m_pren(0),
|
||||
m_trrq(0), m_xint2(0), m_xint3(0), m_xint4(0), m_xint5(0)
|
||||
m_write_xint5(*this),
|
||||
m_card(nullptr),
|
||||
m_irq(CLEAR_LINE),
|
||||
m_nmi(CLEAR_LINE),
|
||||
m_pren(1),
|
||||
m_trrq(1),
|
||||
m_xint2(CLEAR_LINE),
|
||||
m_xint3(CLEAR_LINE),
|
||||
m_xint4(CLEAR_LINE),
|
||||
m_xint5(CLEAR_LINE)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -34,8 +34,6 @@
|
||||
|
||||
TODO:
|
||||
|
||||
- starting from MAME 0.151, the Z80 DMA reads 0x08 as the 257th byte to transfer from disk t0s14 thus failing a comparison @ 37cfa, leading to a watchdog reset
|
||||
changing z80dma.cpp:480 to "done = (m_count == 0);" fixes this but isn't the real reason
|
||||
- segment/page RAM addresses are not correctly decoded, "sas/format/format" after abcenix is booted can't find the SASI interface because of this
|
||||
[:mac] ':3f' (08A98) MAC 7e4a2:0004a2 (SEGA 02f SEGD 09 PGA 09c PGD 8000 NONX 1 WP 0)
|
||||
should be
|
||||
|
@ -18,6 +18,7 @@
|
||||
#define LOG 0
|
||||
#define LOG_MAC 0
|
||||
#define LOG_DMA 0
|
||||
#define LOG_IO 0
|
||||
|
||||
|
||||
#define A0 BIT(offset, 0)
|
||||
@ -245,8 +246,11 @@ uint8_t abc1600_mac_device::read_user_memory(offs_t offset)
|
||||
{
|
||||
int nonx = 0, wp = 0;
|
||||
offs_t virtual_offset = translate_address(offset, &nonx, &wp);
|
||||
uint8_t data = space().read_byte(virtual_offset);
|
||||
|
||||
return space().read_byte(virtual_offset);
|
||||
if (LOG_IO && virtual_offset >= 0x1fe000) logerror("%s user read %06x:%02x\n", machine().describe_context(), virtual_offset, data);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
@ -261,6 +265,8 @@ void abc1600_mac_device::write_user_memory(offs_t offset, uint8_t data)
|
||||
|
||||
//if (nonx || !wp) return;
|
||||
|
||||
if (LOG_IO && virtual_offset >= 0x1fe000) logerror("%s user write %06x:%02x\n", machine().describe_context(), virtual_offset, data);
|
||||
|
||||
space().write_byte(virtual_offset, data);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user