Skip to content

Commit 536c9ec

Browse files
author
Adam
committed
- fixes for gating VBenable as suggested by @shattered
- fixes runaway key repeating on input
1 parent 6ef32de commit 536c9ec

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/mame/tektronix/tek440x.cpp

+8-2
Original file line numberDiff line numberDiff line change
@@ -788,7 +788,7 @@ u16 tek440x_state::memory_r(offs_t offset, u16 mem_mask)
788788
m_map_control |= (1 << MAP_BLOCK_ACCESS);
789789
}
790790

791-
LOG("memory_r: map %08x => paddr(%08x) fc(%d) pc(%08x)\n",OFF16_TO_OFF8(offset), OFF16_TO_OFF8(BIT(offset, 0, 11) | BIT(m_map[offset >> 11], 0, 11) << 11), m_maincpu->get_fc(), m_maincpu->pc());
791+
//LOG("memory_r: map %08x => paddr(%08x) fc(%d) pc(%08x)\n",OFF16_TO_OFF8(offset), OFF16_TO_OFF8(BIT(offset, 0, 11) | BIT(m_map[offset >> 11], 0, 11) << 11), m_maincpu->get_fc(), m_maincpu->pc());
792792

793793
offset = BIT(offset, 0, 11) | BIT(m_map[offset >> 11], 0, 11) << 11;
794794
}
@@ -869,8 +869,9 @@ void tek440x_state::memory_w(offs_t offset, u16 data, u16 mem_mask)
869869
// mark page dirty (NB before we overwrite offset)
870870
if (mem_mask)
871871
{
872+
if (!(m_map[offset >> 11] & 0x8000))
873+
LOG("memory_w: DIRTY m_map(0x%04x) m_map_control(%02x) berr(%d)\n", m_map[offset >> 11], m_map_control, inbuserr);
872874
m_map[offset >> 11] |= 0x8000;
873-
LOG("memory_w: DIRTY m_map(0x%04x) m_map_control(%02x) berr(%d)\n", m_map[offset >> 11], m_map_control, inbuserr);
874875
}
875876

876877
offset = BIT(offset, 0, 11) | (BIT(m_map[offset >> 11], 0, 11) << 11);
@@ -1025,6 +1026,10 @@ void tek440x_state::videocntl_w(u8 data)
10251026
}
10261027

10271028
m_vint->in_w<0>(BIT(data, 6));
1029+
1030+
if (BIT(m_videocntl ^ data, 6) && !BIT(data, 6))
1031+
m_vint->in_w<2>(0);
1032+
10281033
m_videocntl = data;
10291034
}
10301035

@@ -1420,6 +1425,7 @@ void tek440x_state::tek4404(machine_config &config)
14201425
m_screen->set_screen_update(FUNC(tek440x_state::screen_update));
14211426
m_screen->set_palette("palette");
14221427
m_screen->screen_vblank().set(m_vint, FUNC(input_merger_all_high_device::in_w<1>));
1428+
m_screen->screen_vblank().append(m_vint, FUNC(input_merger_all_high_device::in_w<2>));
14231429
PALETTE(config, "palette", palette_device::MONOCHROME_INVERTED);
14241430

14251431
MOS6551(config, m_acia, 40_MHz_XTAL / 4 / 10);

0 commit comments

Comments
 (0)