diff options
author | hap <happppp@users.noreply.github.com> | 2015-03-15 04:38:38 +0100 |
---|---|---|
committer | hap <happppp@users.noreply.github.com> | 2015-03-15 04:38:38 +0100 |
commit | 327d6dece9cc26133748f1ca65e396a683953993 (patch) | |
tree | fbd7659f00fe6a6745f9ebb2b63fe0d8382deb82 | |
parent | 2b40bfdf2068a2d2c24ec1198c12177788695756 (diff) |
ticalc1x.c cleanup part 2
-rw-r--r-- | src/mess/drivers/ticalc1x.c | 165 |
1 files changed, 51 insertions, 114 deletions
diff --git a/src/mess/drivers/ticalc1x.c b/src/mess/drivers/ticalc1x.c index f0e48fa4e14..f2980c56f1c 100644 --- a/src/mess/drivers/ticalc1x.c +++ b/src/mess/drivers/ticalc1x.c @@ -66,7 +66,7 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(display_decay_tick); void display_update(); - void display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety); + void display_matrix_7seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 _7segmask); // calculator-specific handlers DECLARE_READ8_MEMBER(tisr16_read_k); @@ -96,7 +96,7 @@ void ticalc1x_state::machine_start() memset(m_display_state, 0, sizeof(m_display_state)); memset(m_display_cache, 0, sizeof(m_display_cache)); memset(m_display_decay, 0, sizeof(m_display_decay)); - memset(m_7seg_mask, 0, sizeof(m_7seg_mask)); + memset(m_7seg_mask, ~0, sizeof(m_7seg_mask)); // ! m_o = 0; m_r = 0; @@ -181,15 +181,18 @@ TIMER_DEVICE_CALLBACK_MEMBER(ticalc1x_state::display_decay_tick) display_update(); } -void ticalc1x_state::display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety) +void ticalc1x_state::display_matrix_7seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 _7segmask) { m_display_maxx = maxx; m_display_maxy = maxy; // update current state - UINT32 mask = (1 << maxx) - 1; + UINT32 colmask = (1 << maxx) - 1; for (int y = 0; y < maxy; y++) - m_display_state[y] = (sety >> y & 1) ? (setx & mask) : 0; + { + m_7seg_mask[y] &= _7segmask; + m_display_state[y] = (sety >> y & 1) ? (setx & colmask) : 0; + } display_update(); } @@ -238,36 +241,27 @@ INPUT_CHANGED_MEMBER(ticalc1x_state::tms0980_power_button) void ticalc1x_state::tisr16_display_update() { // update leds state - for (int i = 0; i < 11; i++) - if (m_r >> i & 1) - m_display_state[i] = m_o; + for (int y = 0; y < 11; y++) + m_display_state[y] = (m_r >> y & 1) ? m_o : 0; // exponent sign (not 100% sure this is correct) - m_display_state[11] = (m_display_state[0] | m_display_state[1]) ? 0x40 : 0; + m_display_state[11] = (m_display_state[0] || m_display_state[1]) ? 0x40 : 0; - // send to output - for (int i = 0; i < 12; i++) - output_set_digit_value(i, m_display_state[i]); + m_display_maxx = 8; + m_display_maxy = 12; + display_update(); } READ8_MEMBER(ticalc1x_state::tisr16_read_k) { - UINT8 k = 0; - - // read selected button rows - for (int i = 0; i < 11; i++) - if (m_r >> i & 1) - k |= m_inp_matrix[i]->read(); - - return k; + return read_inputs(11); } WRITE16_MEMBER(ticalc1x_state::tisr16_write_r) { // R0-R10: input mux // R0-R10: select digit (right-to-left) - m_r = data; - + m_r = m_inp_mux = data; tisr16_display_update(); } @@ -275,7 +269,6 @@ WRITE16_MEMBER(ticalc1x_state::tisr16_write_o) { // O0-O7: digit segments m_o = data; - tisr16_display_update(); } @@ -284,35 +277,20 @@ WRITE16_MEMBER(ticalc1x_state::tisr16_write_o) READ8_MEMBER(ticalc1x_state::ti1270_read_k) { - UINT8 k = 0; - - // read selected button rows - for (int i = 0; i < 7; i++) - if (m_o >> (i+1) & 1) - k |= m_inp_matrix[i]->read(); - - return k; + return read_inputs(6); } WRITE16_MEMBER(ticalc1x_state::ti1270_write_r) { - m_display_maxx = 8; - m_display_maxy = 8; - // R0-R7: select digit (right-to-left) - for (int i = 0; i < 8; i++) - { - m_7seg_mask[i] = 0xff; - m_display_state[i] = (data >> i & 1) ? m_o : 0; - } - - display_update(); + display_matrix_7seg(8, 8, m_o, data, 0xff); } WRITE16_MEMBER(ticalc1x_state::ti1270_write_o) { // O1-O5,O7: input mux // O0-O7: digit segments + m_inp_mux = (data >> 1 & 0x1f) | (data >> 2 & 0x20); m_o = data; } @@ -321,33 +299,17 @@ WRITE16_MEMBER(ticalc1x_state::ti1270_write_o) READ8_MEMBER(ticalc1x_state::wizatron_read_k) { - UINT8 k = 0; - - // read selected button rows - for (int i = 0; i < 4; i++) - if (m_o >> (i+1) & 1) - k |= m_inp_matrix[i]->read(); - - return k; + return read_inputs(4); } WRITE16_MEMBER(ticalc1x_state::wizatron_write_r) { - m_display_maxx = 8; - m_display_maxy = 9; - + // note: 3rd digit is custom(not 7seg), for math symbols, and 6th digit + // only has A and G for =, though some newer revisions use a custom digit too. + m_7seg_mask[3] = 0x41; + // R0-R8: select digit (right-to-left) - // note: 3rd digit is custom(not 7seg), for math symbols - for (int i = 0; i < 9; i++) - { - m_7seg_mask[i] = 0x7f; - m_display_state[i] = (data >> i & 1) ? m_o : 0; - } - - // 6th digit only has A and G for = - m_display_state[3] &= 0x41; - - display_update(); + display_matrix_7seg(8, 9, m_o, data, 0x7f); } WRITE16_MEMBER(ticalc1x_state::wizatron_write_o) @@ -355,6 +317,7 @@ WRITE16_MEMBER(ticalc1x_state::wizatron_write_o) // O1-O4: input mux // O0-O6: digit segments A-G // O7: N/C + m_inp_mux = data >> 1 & 0xf; m_o = data & 0x7f; } @@ -365,40 +328,24 @@ WRITE16_MEMBER(ticalc1x_state::wizatron_write_o) READ8_MEMBER(ticalc1x_state::ti30_read_k) { - // the Vss row is always on - UINT8 k = m_inp_matrix[8]->read(); - - // read selected button rows - for (int i = 0; i < 8; i++) - if (m_o >> i & 1) - k |= m_inp_matrix[i]->read(); - - return k; + // note: the Vss row is always on + return m_inp_matrix[7]->read() | read_inputs(7); } WRITE16_MEMBER(ticalc1x_state::ti30_write_r) { - m_display_maxx = 8; - m_display_maxy = 9; + // note: 1st digit only has segments B,F,G,DP + m_7seg_mask[0] = 0xe2; // R0-R8: select digit - UINT8 o = BITSWAP8(m_o,7,5,2,1,4,0,6,3); - for (int i = 0; i < 9; i++) - { - m_7seg_mask[i] = 0xff; - m_display_state[i] = (data >> i & 1) ? o : 0; - } - - // 1st digit only has segments B,F,G,DP - m_display_state[0] &= 0xe2; - - display_update(); + display_matrix_7seg(8, 9, BITSWAP8(m_o,7,5,2,1,4,0,6,3), data, 0xff); } WRITE16_MEMBER(ticalc1x_state::ti30_write_o) { - // O1-O5,O7: input mux + // O0-O2,O4-O7: input mux // O0-O7: digit segments + m_inp_mux = (data & 7) | (data >> 1 & 0x78); m_o = data; } @@ -510,10 +457,7 @@ static INPUT_PORTS_START( ti1270 ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CODE(KEYCODE_I) PORT_NAME(UTF8_SMALL_PI) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE) - PORT_START("IN.5") // O6 - PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.6") // O7 + PORT_START("IN.5") // O7 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_NAME("1/x") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_NAME("x" UTF8_POW_2) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_NAME(UTF8_SQUAREROOT"x") @@ -573,31 +517,28 @@ static INPUT_PORTS_START( ti30 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6") - PORT_START("IN.3") // O3 - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // O4 + PORT_START("IN.3") // O4 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_NAME(UTF8_SMALL_PI) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("(") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("%") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME(")") - PORT_START("IN.5") // O5 + PORT_START("IN.4") // O5 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("SUM") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3") - PORT_START("IN.6") // O6 + PORT_START("IN.5") // O6 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_NAME("DRG") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_NAME("INV") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_NAME("cos") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_NAME("sin") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_NAME("tan") - PORT_START("IN.7") // O7 + PORT_START("IN.6") // O7 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("=") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_NAME("EXC") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME(".") @@ -605,7 +546,7 @@ static INPUT_PORTS_START( ti30 ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("+/-") // note: even though power buttons are on the matrix, they are not CPU-controlled - PORT_START("IN.8") // Vss! + PORT_START("IN.7") // Vss! PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGUP) PORT_CODE(KEYCODE_DEL) PORT_NAME("ON/C") PORT_CHANGED_MEMBER(DEVICE_SELF, ticalc1x_state, tms0980_power_button, (void *)true) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_NAME("1/x") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_NAME(UTF8_SQUAREROOT"x") @@ -636,31 +577,28 @@ static INPUT_PORTS_START( tiprog ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6") - PORT_START("IN.3") // O3 - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // O4 + PORT_START("IN.3") // O4 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TILDE) PORT_NAME("1'sC") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_NAME("b") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_NAME("A") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_NAME("C") - PORT_START("IN.5") // O5 + PORT_START("IN.4") // O5 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_NAME("XOR") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3") - PORT_START("IN.6") // O6 + PORT_START("IN.5") // O6 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME(")") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_HOME) PORT_NAME("STO") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("SUM") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_END) PORT_NAME("RCL") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("(") - PORT_START("IN.7") // O7 + PORT_START("IN.6") // O7 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("=") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("CE") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME(".") @@ -668,7 +606,7 @@ static INPUT_PORTS_START( tiprog ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("+/-") // note: even though power buttons are on the matrix, they are not CPU-controlled - PORT_START("IN.8") // Vss! + PORT_START("IN.7") // Vss! PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_PGUP) PORT_NAME("C/ON") PORT_CHANGED_MEMBER(DEVICE_SELF, ticalc1x_state, tms0980_power_button, (void *)true) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_NAME("DEC") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_NAME("OCT") @@ -700,31 +638,28 @@ static INPUT_PORTS_START( tibusan1 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6") - PORT_START("IN.3") // O3 - PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNUSED ) - - PORT_START("IN.4") // O4 + PORT_START("IN.3") // O4 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME(UTF8_CAPITAL_SIGMA"+ " UTF8_CAPITAL_SIGMA"-") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("( AN-CI\"") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("x<>y L.R.") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME(") 1/x") - PORT_START("IN.5") // O5 + PORT_START("IN.4") // O5 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_NAME("SUM x" UTF8_PRIME) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3") - PORT_START("IN.6") // O6 + PORT_START("IN.5") // O6 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_NAME("FV") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_NAME("N") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_NAME("PMT") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_NAME("%i") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_NAME("PV") - PORT_START("IN.7") // O7 + PORT_START("IN.6") // O7 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("=") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_NAME("EXC x" UTF8_PRIME) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME(".") @@ -732,7 +667,7 @@ static INPUT_PORTS_START( tibusan1 ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("+/-") // note: even though power buttons are on the matrix, they are not CPU-controlled - PORT_START("IN.8") // Vss! + PORT_START("IN.7") // Vss! PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGUP) PORT_CODE(KEYCODE_DEL) PORT_NAME("ON/C") PORT_CHANGED_MEMBER(DEVICE_SELF, ticalc1x_state, tms0980_power_button, (void *)true) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_NAME("2nd") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_NAME("x" UTF8_POW_2" " UTF8_SQUAREROOT"x") @@ -756,6 +691,8 @@ static MACHINE_CONFIG_START( tisr16, ticalc1x_state ) MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ticalc1x_state, tisr16_write_o)) MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ticalc1x_state, tisr16_write_r)) + MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", ticalc1x_state, display_decay_tick, attotime::from_msec(1)) + MCFG_DEFAULT_LAYOUT(layout_tisr16) MACHINE_CONFIG_END |