trunk/src/mame/drivers/gts1.c
| r242280 | r242281 | |
| 216 | 216 | */ |
| 217 | 217 | WRITE8_MEMBER(gts1_state::gts1_display_w) |
| 218 | 218 | { |
| 219 | /* |
| 220 | * The 7448 is modified to be disabled through RI/RBO |
| 221 | * when the input is 0001, and in this case the extra |
| 222 | * output H is generated instead. |
| 223 | */ |
| 224 | #define _a (1 << 0) |
| 225 | #define _b (1 << 1) |
| 226 | #define _c (1 << 2) |
| 227 | #define _d (1 << 3) |
| 228 | #define _e (1 << 4) |
| 229 | #define _f (1 << 5) |
| 230 | #define _g (1 << 6) |
| 231 | #define _h (1 << 7) |
| 232 | static const UINT8 ttl7448_mod[16] = { |
| 233 | /* 0 */ _a | _b | _c | _d | _e | _f, |
| 234 | /* 1 */ _h, |
| 235 | /* 2 */ _a | _b | _d | _e | _g, |
| 236 | /* 3 */ _a | _b | _c | _d | _g, |
| 237 | /* 4 */ _b | _c | _f | _g, |
| 238 | /* 5 */ _a | _c | _d | _f | _g, |
| 239 | /* 6 */ _a | _c | _d | _e | _f | _g, |
| 240 | /* 7 */ _a | _b | _c, |
| 241 | /* 8 */ _a | _b | _c | _d | _e | _f | _g, |
| 242 | /* 9 */ _a | _b | _c | _d | _f | _g, |
| 243 | /* a */ _d | _e | _g, |
| 244 | /* b */ _c | _d | _g, |
| 245 | /* c */ _b | _f | _g, |
| 246 | /* d */ _a | _d | _f | _g, |
| 247 | /* e */ _d | _e | _f | _g, |
| 248 | /* f */ 0 |
| 249 | }; |
| 250 | #undef _a |
| 251 | #undef _b |
| 252 | #undef _c |
| 253 | #undef _d |
| 254 | #undef _e |
| 255 | #undef _f |
| 256 | #undef _g |
| 257 | #undef _h |
| 219 | 258 | LOG(("%s: offset:%d data:%02x\n", __FUNCTION__, offset, data)); |
| 220 | | output_set_digit_value(offset, data); |
| 259 | const UINT8 a = ttl7448_mod[(data >> 0) & 15]; |
| 260 | const UINT8 b = ttl7448_mod[(data >> 4) & 15]; |
| 261 | if (offset < 6) { |
| 262 | output_set_digit_value(offset, a); |
| 263 | output_set_digit_value(offset + 10, b); |
| 264 | } |
| 265 | if (offset >= 8 && offset < 8 + 6) { |
| 266 | output_set_digit_value(offset - 8 + 6, a); |
| 267 | output_set_digit_value(offset - 8 + 10, b); |
| 268 | } |
| 221 | 269 | } |
| 222 | 270 | |
| 223 | 271 | READ8_MEMBER (gts1_state::gts1_io_r) |