summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commit0a144d17f30a8d5e5246f5ce349ce9a7dfecc925 (patch)
tree2236ce76dfbdc06a69fbea032c32e783a63b3a2f
parentd353e05016994aad1f3f35f56db9275b85c08040 (diff)
nereid: add support for reading colormap entries
-rw-r--r--src/devices/video/nereid.cpp13
-rw-r--r--src/devices/video/nereid.h3
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];