summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Scott Stone <tafoid@users.noreply.github.com>2014-07-23 04:49:46 +0000
committer Scott Stone <tafoid@users.noreply.github.com>2014-07-23 04:49:46 +0000
commit867890321fbf86aafcfde700d0d7533178de269b (patch)
tree5dbf62481e030cd38479ececf13df51ba10e8d7a
parent07e240eb3cf0548db92cea4f9e32d34c81e53334 (diff)
Fixing alignment of 14-seg display multiplexation from Felipe Sanches (nw)
-rw-r--r--src/mess/drivers/minicom.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/mess/drivers/minicom.c b/src/mess/drivers/minicom.c
index 6d93e5a8182..be25225f279 100644
--- a/src/mess/drivers/minicom.c
+++ b/src/mess/drivers/minicom.c
@@ -27,6 +27,9 @@ Segment data is sent to each 14seg digit by first writing half of the data to po
Changelog:
+ 2014 JUL 22 [Felipe Sanches]:
+ * Fixing alignment of 14-seg display multiplexation
+
2014 JUL 19 [Felipe Sanches]:
* Got the display working except for a few glitches
@@ -126,7 +129,20 @@ WRITE8_MEMBER(minicom_state::minicom_io_w)
{
case 0x00:
{
- m_p[offset]=data;
+ if (data != m_p[offset])
+ {
+ m_p[offset]=data;
+
+ //Bit P0.1 is the serial-input of a 20-bit shift register (made of a couple of chained UCN5810AF chips)
+ //We are emulating the display based on the assumption that the firmware will multiplex it by defining one digit at a given time
+ //It would be better (in terms of being closer to the actual hardware) to emulate the 20 bit shift register and update all digits
+ //for which a bit is TTL high. It seems to me that in the real hardware that would result in dimmer brightness in the display and it
+ //does not seem trivial to me to implement this using our current layout system. I'm leaving this note to whoever finds it exciting
+ //to explore these possibilities (perhaps myself in the future?).
+ if (BIT(data,1)){
+ m_digit_index = 0;
+ }
+ }
break;
}
case 0x01: