diff --git a/viz/curses/7segments.c b/viz/curses/7segments.c index 853a5a2..d895dc7 100644 --- a/viz/curses/7segments.c +++ b/viz/curses/7segments.c @@ -25,41 +25,48 @@ for (foo=0; foo<9; foo++) { mvwhline(win, lig+foo, col, '~', 6); } +#define KC '+' +#define KS "++++" + wstandout(win); for (numbit=0; numbit<8; numbit++) { mask = 1 << numbit; switch(mask & bits) { case 0x01: - mvwaddstr(win, lig, col+1, " "); + mvwaddstr(win, lig, col+1, KS); break; case 0x02: - mvwaddch(win, lig+1, col+5, ' '); - mvwaddch(win, lig+2, col+5, ' '); - mvwaddch(win, lig+3, col+5, ' '); + mvwaddch(win, lig+1, col+5, KC); + mvwaddch(win, lig+2, col+5, KC); + mvwaddch(win, lig+3, col+5, KC); break; case 0x04: - mvwaddch(win, lig+5, col+5, ' '); - mvwaddch(win, lig+6, col+5, ' '); - mvwaddch(win, lig+7, col+5, ' '); + mvwaddch(win, lig+5, col+5, KC); + mvwaddch(win, lig+6, col+5, KC); + mvwaddch(win, lig+7, col+5, KC); break; case 0x08: - mvwaddstr(win, lig+8, col+1, " "); + mvwaddstr(win, lig+8, col+1, KS); break; case 0x10: - mvwaddch(win, lig+5, col, ' '); - mvwaddch(win, lig+6, col, ' '); - mvwaddch(win, lig+7, col, ' '); + mvwaddch(win, lig+5, col, KC); + mvwaddch(win, lig+6, col, KC); + mvwaddch(win, lig+7, col, KC); break; case 0x20: - mvwaddch(win, lig+1, col , ' '); - mvwaddch(win, lig+2, col , ' '); - mvwaddch(win, lig+3, col , ' '); + mvwaddch(win, lig+1, col , KC); + mvwaddch(win, lig+2, col , KC); + mvwaddch(win, lig+3, col , KC); break; case 0x40: - mvwaddstr(win, lig+4, col+1, " "); + mvwaddstr(win, lig+4, col+1, KS); break; case 0x80: /* decimal point */ + mvwaddch(win, lig+7, col+2 , KC); + mvwaddch(win, lig+7, col+3 , KC); + mvwaddch(win, lig+8, col+2 , KC); + mvwaddch(win, lig+8, col+3 , KC); break; } @@ -79,10 +86,6 @@ fprintf(stderr, ">>> %s ( %p %d %d '%c' )\n", __func__, win, lig, col, digit); #endif -if (!isdigit(digit)) { - return -1; - } - switch (digit) { case '0': bits = 0x3f; break; case '1': bits = 0x06; break; @@ -95,9 +98,10 @@ switch (digit) { case '8': bits = 0x7f; break; case '9': bits = 0x6f; break; - default: - bits = 0x40; - break; + case ' ': bits = 0; break; + case '.': bits = 0x80; break; + + default: bits = 0x09; break; } aff7segs_base(win, lig, col, bits, 0);