summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/mc6845.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/video/mc6845.cpp')
-rw-r--r--src/devices/video/mc6845.cpp65
1 files changed, 25 insertions, 40 deletions
diff --git a/src/devices/video/mc6845.cpp b/src/devices/video/mc6845.cpp
index 57ebab801c2..5723de82f57 100644
--- a/src/devices/video/mc6845.cpp
+++ b/src/devices/video/mc6845.cpp
@@ -155,6 +155,29 @@ READ8_MEMBER( mc6845_device::status_r )
}
+void mc6845_device::transparent_update()
+{
+ if (m_supports_transparent && MODE_TRANSPARENT)
+ {
+ if (MODE_TRANSPARENT_PHI2)
+ {
+ m_update_addr++;
+ m_update_addr &= 0x3fff;
+ call_on_update_address(0);
+ }
+ else
+ {
+ /* MODE_TRANSPARENT_BLANK */
+ if (m_update_ready_bit)
+ {
+ m_update_ready_bit = false;
+ update_upd_adr_timer();
+ }
+ }
+ }
+}
+
+
READ8_MEMBER( mc6845_device::register_r )
{
uint8_t ret = 0;
@@ -167,26 +190,7 @@ READ8_MEMBER( mc6845_device::register_r )
case 0x0f: ret = (m_cursor_addr >> 0) & 0xff; break;
case 0x10: ret = (m_light_pen_addr >> 8) & 0xff; m_light_pen_latched = false; break;
case 0x11: ret = (m_light_pen_addr >> 0) & 0xff; m_light_pen_latched = false; break;
- case 0x1f:
- if (m_supports_transparent && MODE_TRANSPARENT)
- {
- if(MODE_TRANSPARENT_PHI2)
- {
- m_update_addr++;
- m_update_addr &= 0x3fff;
- call_on_update_address(0);
- }
- else
- {
- /* MODE_TRANSPARENT_BLANK */
- if(m_update_ready_bit)
- {
- m_update_ready_bit = false;
- update_upd_adr_timer();
- }
- }
- }
- break;
+ case 0x1f: transparent_update(); break;
/* all other registers are write only and return 0 */
default: break;
@@ -236,26 +240,7 @@ WRITE8_MEMBER( mc6845_device::register_w )
call_on_update_address(0);
}
break;
- case 0x1f:
- if (m_supports_transparent && MODE_TRANSPARENT)
- {
- if(MODE_TRANSPARENT_PHI2)
- {
- m_update_addr++;
- m_update_addr &= 0x3fff;
- call_on_update_address(0);
- }
- else
- {
- /* MODE_TRANSPARENT_BLANK */
- if(m_update_ready_bit)
- {
- m_update_ready_bit = false;
- update_upd_adr_timer();
- }
- }
- }
- break;
+ case 0x1f: transparent_update(); break;
default: break;
}