summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/pc/teradrive.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/pc/teradrive.cpp')
-rw-r--r--src/mame/pc/teradrive.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/mame/pc/teradrive.cpp b/src/mame/pc/teradrive.cpp
index 304004076d8..f0995b03baf 100644
--- a/src/mame/pc/teradrive.cpp
+++ b/src/mame/pc/teradrive.cpp
@@ -250,7 +250,7 @@ void isa16_ibm_79f2661::io_map(address_map &map)
return (m_reg_1163 & 0xcf) | (m_reg_1163_read_cb() & 0x30);
}),
NAME([this] (offs_t offset, u8 data) {
- logerror("$1163: %02x\n", data);
+ //logerror("$1163: %02x\n", data);
if (BIT(data, 1) != BIT(m_reg_1163, 1))
{
m_68k_view = !!BIT(data, 1);
@@ -474,17 +474,20 @@ void teradrive_state::md_68k_map(address_map &map)
// map(0xa07f00, 0xa07fff) Z80 VDP space (freezes machine if accessed from 68k)
// map(0xa08000, 0xa0ffff) Z80 68k window (assume no DTACK)
// map(0xa10000, 0xa100ff) I/O
+ map(0xa10000, 0xa100ff).noprw();
// map(0xa11000, 0xa110ff) memory mode register
// map(0xa11100, 0xa111ff) Z80 BUSREQ/BUSACK
map(0xa11100, 0xa11101).lrw16(
NAME([this] (offs_t offset, u16 mem_mask) {
- u16 res = (m_z80_busrq || m_z80_reset) << 8;
- return res;
+ u16 res = (!m_z80_busrq || m_z80_reset) ^ 1;
+ return (res << 8) | (res);
}),
NAME([this] (offs_t offset, u16 data, u16 mem_mask) {
+ //printf("%04x %04x\n", data, mem_mask);
if (!ACCESSING_BITS_0_7)
{
- m_z80_busrq = !!BIT(~data, 8);
+ // HACK: pzlcnst snded.exe writes a word, again ISA16 ...
+ //m_z80_busrq = !!BIT(~data, 8);
}
else if (!ACCESSING_BITS_8_15)
{
@@ -580,7 +583,7 @@ void teradrive_state::flush_z80_state()
{
m_mdz80cpu->set_input_line(INPUT_LINE_RESET, m_z80_reset ? ASSERT_LINE : CLEAR_LINE);
m_mdz80cpu->set_input_line(Z80_INPUT_LINE_BUSRQ, m_z80_busrq ? CLEAR_LINE : ASSERT_LINE);
- if (!m_z80_reset && !m_z80_busrq)
+ if (m_z80_reset || !m_z80_busrq)
m_md_68k_sound_view.select(0);
else
m_md_68k_sound_view.disable();
@@ -862,6 +865,8 @@ void teradrive_state::teradrive(machine_config &config)
m_md_vdp->vint_cb().set_inputline(m_md68kcpu, 6);
// m_md_vdp->hint_cb().set_inputline(m_md68kcpu, 4);
m_md_vdp->sint_cb().set_inputline(m_mdz80cpu, INPUT_LINE_IRQ0);
+ m_md_vdp->add_route(ALL_OUTPUTS, "md_speaker", 0.50, 0);
+ m_md_vdp->add_route(ALL_OUTPUTS, "md_speaker", 0.50, 1);
// SMS_CONTROL_PORT(config, m_ctrl_ports[0], sms_control_port_devices, SMS_CTRL_OPTION_MD_PAD);
// m_ctrl_ports[0]->th_handler().set(m_ioports[0], FUNC(megadrive_io_port_device::th_w));