diff options
author | mahlemiut <bsr@xnet.co.nz> | 2015-11-27 21:58:03 +1300 |
---|---|---|
committer | mahlemiut <bsr@xnet.co.nz> | 2015-11-27 22:02:43 +1300 |
commit | ff29765fd964c8562a671189c3e42d6dd5d92eb9 (patch) | |
tree | c0e47a9934bf835d76ad093a08c235f9f7fa4868 | |
parent | 623bbe98dcd738d0693508ddd12f9b8e66ff0b8b (diff) |
mc6845: add AMS40489 CRTC
-rw-r--r-- | src/devices/video/mc6845.cpp | 19 | ||||
-rw-r--r-- | src/devices/video/mc6845.h | 12 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/devices/video/mc6845.cpp b/src/devices/video/mc6845.cpp index 642bc913935..d504ad46b8b 100644 --- a/src/devices/video/mc6845.cpp +++ b/src/devices/video/mc6845.cpp @@ -55,6 +55,7 @@ const device_type SY6545_1 = &device_creator<sy6545_1_device>; const device_type SY6845E = &device_creator<sy6845e_device>; const device_type HD6345 = &device_creator<hd6345_device>; const device_type AMS40041 = &device_creator<ams40041_device>; +const device_type AMS40489 = &device_creator<ams40489_device>; const device_type MOS8563 = &device_creator<mos8563_device>; const device_type MOS8568 = &device_creator<mos8568_device>; @@ -1244,6 +1245,18 @@ void ams40041_device::device_start() m_supports_transparent = false; } +void ams40489_device::device_start() +{ + mc6845_device::device_start(); + + m_supports_disp_start_addr_r = true; + m_supports_vert_sync_width = false; + m_supports_status_reg_d5 = false; + m_supports_status_reg_d6 = false; + m_supports_status_reg_d7 = false; + m_supports_transparent = false; +} + void mos8563_device::device_start() { @@ -1350,6 +1363,7 @@ void sy6545_1_device::device_reset() { mc6845_device::device_reset(); } void sy6845e_device::device_reset() { mc6845_device::device_reset(); } void hd6345_device::device_reset() { mc6845_device::device_reset(); } void ams40041_device::device_reset() { mc6845_device::device_reset(); } +void ams40489_device::device_reset() { mc6845_device::device_reset(); } void mos8563_device::device_reset() { @@ -1434,6 +1448,11 @@ ams40041_device::ams40041_device(const machine_config &mconfig, const char *tag, { } +ams40489_device::ams40489_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : mc6845_device(mconfig, AMS40489, "AMS40489 ASIC (CRTC)", tag, owner, clock, "ams40489", __FILE__) +{ +} + mos8563_device::mos8563_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) : mc6845_device(mconfig, type, name, tag, owner, clock, shortname, source), diff --git a/src/devices/video/mc6845.h b/src/devices/video/mc6845.h index f68a95a326e..5fc1a72d89d 100644 --- a/src/devices/video/mc6845.h +++ b/src/devices/video/mc6845.h @@ -98,6 +98,7 @@ class mc6845_device : public device_t, friend class sy6845e_device; friend class hd6345_device; friend class ams40041_device; + friend class ams40489_device; public: // construction/destruction @@ -419,6 +420,16 @@ protected: virtual void device_reset(); }; +class ams40489_device : public mc6845_device +{ +public: + ams40489_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + +protected: + virtual void device_start(); + virtual void device_reset(); +}; + class mos8563_device : public mc6845_device, public device_memory_interface { @@ -505,6 +516,7 @@ extern const device_type SY6545_1; extern const device_type SY6845E; extern const device_type HD6345; extern const device_type AMS40041; +extern const device_type AMS40489; extern const device_type MOS8563; extern const device_type MOS8568; |