diff options
-rw-r--r-- | src/mame/drivers/gts1.cpp | 11 | ||||
-rw-r--r-- | src/mame/layout/gts1.lay | 4 |
2 files changed, 11 insertions, 4 deletions
diff --git a/src/mame/drivers/gts1.cpp b/src/mame/drivers/gts1.cpp index 1986573892c..6f0b4e14d88 100644 --- a/src/mame/drivers/gts1.cpp +++ b/src/mame/drivers/gts1.cpp @@ -118,6 +118,7 @@ private: u8 gts1_switches_r(offs_t offset); void gts1_switches_w(offs_t offset, u8 data); void gts1_display_w(offs_t offset, u8 data); + u16 seg8to14(u16 data); u8 gts1_lamp_apm_r(offs_t offset); void gts1_lamp_apm_w(offs_t offset, u8 data); u8 gts1_nvram_r(offs_t offset); @@ -487,6 +488,12 @@ void gts1_state::gts1_switches_w(offs_t offset, u8 data) // WORKS } } +u16 gts1_state::seg8to14(u16 data) +{ + // convert custom 8seg digit to MAME 14seg digit + return bitswap<10>(data,7,7,6,6,5,4,3,2,1,0); +} + /** * @brief write a 8seg display value * @param offset digit number 0 .. 15 @@ -534,8 +541,8 @@ void gts1_state::gts1_display_w(offs_t offset, u8 data) // WORKS // LOG("%s: offset:%d data:%02x a:%02x b:%02x\n", __FUNCTION__, offset, data, a, b); if ((offset % 8) < 6) { - m_digit8[offset] = a; - m_digit8[offset + 16] = b; + m_digit8[offset] = seg8to14(a); + m_digit8[offset + 16] = seg8to14(b); } else { diff --git a/src/mame/layout/gts1.lay b/src/mame/layout/gts1.lay index dc276022324..a94a3abe3b6 100644 --- a/src/mame/layout/gts1.lay +++ b/src/mame/layout/gts1.lay @@ -6,9 +6,9 @@ license:CC0 <mamelayout version="2"> <element name="digit8_" defstate="0"> - <led8seg_gts1> + <led14seg> <color red="0.0" green="0.75" blue="1.0" /> - </led8seg_gts1> + </led14seg> </element> <element name="digit7_" defstate="0"> <led7seg> |