trunk/src/mame/drivers/tispeak.cpp
| r253706 | r253707 | |
| 431 | 431 | virtual DECLARE_INPUT_CHANGED_MEMBER(power_button) override; |
| 432 | 432 | void power_off(); |
| 433 | 433 | void prepare_display(); |
| 434 | bool vfd_filament_on() { return m_display_decay[15][16] != 0; } |
| 434 | 435 | |
| 435 | 436 | DECLARE_READ8_MEMBER(snspell_read_k); |
| 436 | 437 | DECLARE_WRITE16_MEMBER(snmath_write_o); |
| r253706 | r253707 | |
| 540 | 541 | |
| 541 | 542 | void tispeak_state::prepare_display() |
| 542 | 543 | { |
| 543 | | UINT16 gridmask = (m_display_decay[15][16] != 0) ? 0xffff : 0x8000; // vfd filament on/off |
| 544 | UINT16 gridmask = vfd_filament_on() ? 0xffff : 0x8000; |
| 544 | 545 | set_display_segmask(0x21ff, 0x3fff); |
| 545 | 546 | display_matrix(16+1, 16, m_plate | 1<<16, m_grid & gridmask); |
| 546 | 547 | } |
| r253706 | r253707 | |
| 548 | 549 | WRITE16_MEMBER(tispeak_state::snspell_write_r) |
| 549 | 550 | { |
| 550 | 551 | // R13: power-off request, on falling edge |
| 551 | | if ((m_r >> 13 & 1) && !(data >> 13 & 1)) |
| 552 | if (~data & m_r & 0x2000) |
| 552 | 553 | power_off(); |
| 553 | 554 | |
| 554 | 555 | // R0-R7: input mux and select digit (+R8 if the device has 9 digits) |
| r253706 | r253707 | |
| 614 | 615 | m_tms5100->pdc_w(data >> 10); |
| 615 | 616 | |
| 616 | 617 | // R9: power-off request, on falling edge |
| 617 | | if ((m_r >> 9 & 1) && !(data >> 9 & 1)) |
| 618 | if (~data & m_r & 0x200) |
| 618 | 619 | power_off(); |
| 619 | 620 | |
| 620 | 621 | // R0-R8: input mux |
| r253706 | r253707 | |
| 686 | 687 | m_inp_mux = (m_inp_mux & 0xff) | (data << 3 & 0x100); |
| 687 | 688 | |
| 688 | 689 | // R6: power-off request, on falling edge |
| 689 | | if ((m_r >> 6 & 1) && !(data >> 6 & 1)) |
| 690 | if (~data & m_r & 0x40) |
| 690 | 691 | power_off(); |
| 691 | 692 | |
| 692 | 693 | // R7-R10: LCD data |
trunk/src/mame/drivers/tispellb.cpp
| r253706 | r253707 | |
| 83 | 83 | virtual DECLARE_INPUT_CHANGED_MEMBER(power_button) override; |
| 84 | 84 | void power_off(); |
| 85 | 85 | void prepare_display(); |
| 86 | bool vfd_filament_on() { return m_display_decay[15][16] != 0; } |
| 86 | 87 | |
| 87 | 88 | DECLARE_READ8_MEMBER(main_read_k); |
| 88 | 89 | DECLARE_WRITE16_MEMBER(main_write_o); |
| r253706 | r253707 | |
| 139 | 140 | void tispellb_state::prepare_display() |
| 140 | 141 | { |
| 141 | 142 | // almost same as snspell |
| 142 | | UINT16 gridmask = (m_display_decay[15][16] != 0) ? 0xffff : 0x8000; // vfd filament on/off |
| 143 | UINT16 gridmask = vfd_filament_on() ? 0xffff : 0x8000; |
| 143 | 144 | set_display_segmask(0xff, 0x3fff); |
| 144 | 145 | display_matrix(16+1, 16, m_plate | 1<<16, m_grid & gridmask); |
| 145 | 146 | } |
| r253706 | r253707 | |
| 154 | 155 | WRITE16_MEMBER(tispellb_state::main_write_r) |
| 155 | 156 | { |
| 156 | 157 | // R13: power-off request, on falling edge |
| 157 | | if ((m_r >> 13 & 1) && !(data >> 13 & 1)) |
| 158 | if (~data & m_r & 0x2000) |
| 158 | 159 | power_off(); |
| 159 | 160 | |
| 160 | 161 | // R0-R6: input mux |