summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2017-03-30 01:44:32 -0400
committer AJR <ajrhacker@users.noreply.github.com>2017-03-30 01:47:55 -0400
commit01c732defa2ff7ef9512e121d541d2405b3c18cd (patch)
tree1b3436bbb9b43c01409c5b90df5526d7a0cf06df
parentced308774203d9ff121b58e56ba28908ce9d6b8b (diff)
isa8_device: Provide proper unitmask for address spaces of any data width (nw)
screen_device: Guard against assert failure on partial updates starting from incomplete first line (nw)
-rw-r--r--src/devices/bus/isa/isa.h6
-rw-r--r--src/emu/screen.cpp9
2 files changed, 11 insertions, 4 deletions
diff --git a/src/devices/bus/isa/isa.h b/src/devices/bus/isa/isa.h
index 2eddae32015..4ba5b764d24 100644
--- a/src/devices/bus/isa/isa.h
+++ b/src/devices/bus/isa/isa.h
@@ -215,7 +215,11 @@ public:
}
void install_device(offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler);
- template<typename T> void install_device(offs_t addrstart, offs_t addrend, T &device, void (T::*map)(class address_map &map), int bits = 8, uint64_t unitmask = 0xffffffffffffffffU)
+ template<typename T> void install_device(offs_t addrstart, offs_t addrend, T &device, void (T::*map)(class address_map &map), int bits = 8)
+ {
+ m_iospace->install_device(addrstart, addrend, device, map, bits, 0xffffffffffffffffU >> (64 - m_iospace->data_width()));
+ }
+ template<typename T> void install_device(offs_t addrstart, offs_t addrend, T &device, void (T::*map)(class address_map &map), int bits, uint64_t unitmask)
{
m_iospace->install_device(addrstart, addrend, device, map, bits, unitmask);
}
diff --git a/src/emu/screen.cpp b/src/emu/screen.cpp
index ea523836ba0..8b4bcfa0cff 100644
--- a/src/emu/screen.cpp
+++ b/src/emu/screen.cpp
@@ -1235,9 +1235,12 @@ void screen_device::update_now()
// if the line before us was incomplete, we must do it in two pieces
if (m_partial_scan_hpos > 0)
{
- s32 save_scan = m_partial_scan_hpos;
- update_partial(current_vpos - 2);
- m_partial_scan_hpos = save_scan;
+ if (current_vpos > 1)
+ {
+ s32 save_scan = m_partial_scan_hpos;
+ update_partial(current_vpos - 2);
+ m_partial_scan_hpos = save_scan;
+ }
// now finish the previous partial scanline
int scanline = current_vpos - 1;