diff options
author | Sven Schnelle <svens@stackframe.org> | 2018-06-27 11:16:23 +0200 |
---|---|---|
committer | Sven Schnelle <svens@stackframe.org> | 2018-08-31 21:35:41 +0200 |
commit | 0a144d17f30a8d5e5246f5ce349ce9a7dfecc925 (patch) | |
tree | 2236ce76dfbdc06a69fbea032c32e783a63b3a2f | |
parent | d353e05016994aad1f3f35f56db9275b85c08040 (diff) |
nereid: add support for reading colormap entries
-rw-r--r-- | src/devices/video/nereid.cpp | 13 | ||||
-rw-r--r-- | src/devices/video/nereid.h | 3 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/devices/video/nereid.cpp b/src/devices/video/nereid.cpp index 1ecb49399be..02c2aed1600 100644 --- a/src/devices/video/nereid.cpp +++ b/src/devices/video/nereid.cpp @@ -48,12 +48,12 @@ READ16_MEMBER(nereid_device::ctrl_r) case NEREID_RED_DATA: return 0xff00 | m_red; case NEREID_GREEN_DATA: - return 0xff00 | m_red; + return 0xff00 | m_green; case NEREID_BLUE_DATA: - return 0xff00 | m_red; + return 0xff00 | m_blue; case NEREID_INDEX: return 0xff00 | m_index; - case NEREID_STROBE: + case NEREID_WRITE_STROBE: return 0xff00; case NEREID_PLANE_MASK: return 0xff00 | m_plane_mask; @@ -80,11 +80,16 @@ WRITE16_MEMBER(nereid_device::ctrl_w) case NEREID_INDEX: m_index = ~data; break; - case NEREID_STROBE: + case NEREID_WRITE_STROBE: LOG("NEREID: set color index %u: rgb_t(%u,%u,%u)\n", m_index, m_red, m_green, m_blue); m_palette[m_index] = rgb_t(m_red, m_green, m_blue); break; + case NEREID_READ_STROBE: + m_red = (m_palette[m_index]).r(); + m_green = (m_palette[m_index]).g(); + m_blue = (m_palette[m_index]).b(); + break; case NEREID_PLANE_MASK: m_plane_mask = data; break; diff --git a/src/devices/video/nereid.h b/src/devices/video/nereid.h index ccd7c6c6622..3a5760be2a8 100644 --- a/src/devices/video/nereid.h +++ b/src/devices/video/nereid.h @@ -27,7 +27,8 @@ private: static constexpr int NEREID_BLUE_DATA=0x5b; static constexpr int NEREID_INDEX=0x5c; static constexpr int NEREID_PLANE_MASK=0x5d; - static constexpr int NEREID_STROBE=0x78; + static constexpr int NEREID_WRITE_STROBE=0x78; + static constexpr int NEREID_READ_STROBE=0x7c; rgb_t m_palette[256]; |