Previous 199869 Revisions Next

r36428 Sunday 15th March, 2015 at 03:38:38 UTC by hap
ticalc1x.c cleanup part 2
[src/mess/drivers]ticalc1x.c

trunk/src/mess/drivers/ticalc1x.c
r244939r244940
6666
6767   TIMER_DEVICE_CALLBACK_MEMBER(display_decay_tick);
6868   void display_update();
69   void display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety);
69   void display_matrix_7seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 _7segmask);
7070   
7171   // calculator-specific handlers
7272   DECLARE_READ8_MEMBER(tisr16_read_k);
r244939r244940
9696   memset(m_display_state, 0, sizeof(m_display_state));
9797   memset(m_display_cache, 0, sizeof(m_display_cache));
9898   memset(m_display_decay, 0, sizeof(m_display_decay));
99   memset(m_7seg_mask, 0, sizeof(m_7seg_mask));
99   memset(m_7seg_mask, ~0, sizeof(m_7seg_mask)); // !
100100   
101101   m_o = 0;
102102   m_r = 0;
r244939r244940
181181   display_update();
182182}
183183
184void ticalc1x_state::display_matrix(int maxx, int maxy, UINT32 setx, UINT32 sety)
184void ticalc1x_state::display_matrix_7seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 _7segmask)
185185{
186186   m_display_maxx = maxx;
187187   m_display_maxy = maxy;
188188
189189   // update current state
190   UINT32 mask = (1 << maxx) - 1;
190   UINT32 colmask = (1 << maxx) - 1;
191191   for (int y = 0; y < maxy; y++)
192      m_display_state[y] = (sety >> y & 1) ? (setx & mask) : 0;
192   {
193      m_7seg_mask[y] &= _7segmask;
194      m_display_state[y] = (sety >> y & 1) ? (setx & colmask) : 0;
195   }
193196   
194197   display_update();
195198}
r244939r244940
238241void ticalc1x_state::tisr16_display_update()
239242{
240243   // update leds state
241   for (int i = 0; i < 11; i++)
242      if (m_r >> i & 1)
243         m_display_state[i] = m_o;
244   for (int y = 0; y < 11; y++)
245      m_display_state[y] = (m_r >> y & 1) ? m_o : 0;
244246
245247   // exponent sign (not 100% sure this is correct)
246   m_display_state[11] = (m_display_state[0] | m_display_state[1]) ? 0x40 : 0;
248   m_display_state[11] = (m_display_state[0] || m_display_state[1]) ? 0x40 : 0;
247249
248   // send to output
249   for (int i = 0; i < 12; i++)
250      output_set_digit_value(i, m_display_state[i]);
250   m_display_maxx = 8;
251   m_display_maxy = 12;
252   display_update();
251253}
252254
253255READ8_MEMBER(ticalc1x_state::tisr16_read_k)
254256{
255   UINT8 k = 0;
256
257   // read selected button rows
258   for (int i = 0; i < 11; i++)
259      if (m_r >> i & 1)
260         k |= m_inp_matrix[i]->read();
261
262   return k;
257   return read_inputs(11);
263258}
264259
265260WRITE16_MEMBER(ticalc1x_state::tisr16_write_r)
266261{
267262   // R0-R10: input mux
268263   // R0-R10: select digit (right-to-left)
269   m_r = data;
270
264   m_r = m_inp_mux = data;
271265   tisr16_display_update();
272266}
273267
r244939r244940
275269{
276270   // O0-O7: digit segments
277271   m_o = data;
278
279272   tisr16_display_update();
280273}
281274
r244939r244940
284277
285278READ8_MEMBER(ticalc1x_state::ti1270_read_k)
286279{
287   UINT8 k = 0;
288
289   // read selected button rows
290   for (int i = 0; i < 7; i++)
291      if (m_o >> (i+1) & 1)
292         k |= m_inp_matrix[i]->read();
293
294   return k;
280   return read_inputs(6);
295281}
296282
297283WRITE16_MEMBER(ticalc1x_state::ti1270_write_r)
298284{
299   m_display_maxx = 8;
300   m_display_maxy = 8;
301
302285   // R0-R7: select digit (right-to-left)
303   for (int i = 0; i < 8; i++)
304   {
305      m_7seg_mask[i] = 0xff;
306      m_display_state[i] = (data >> i & 1) ? m_o : 0;
307   }
308
309   display_update();
286   display_matrix_7seg(8, 8, m_o, data, 0xff);
310287}
311288
312289WRITE16_MEMBER(ticalc1x_state::ti1270_write_o)
313290{
314291   // O1-O5,O7: input mux
315292   // O0-O7: digit segments
293   m_inp_mux = (data >> 1 & 0x1f) | (data >> 2 & 0x20);
316294   m_o = data;
317295}
318296
r244939r244940
321299
322300READ8_MEMBER(ticalc1x_state::wizatron_read_k)
323301{
324   UINT8 k = 0;
325
326   // read selected button rows
327   for (int i = 0; i < 4; i++)
328      if (m_o >> (i+1) & 1)
329         k |= m_inp_matrix[i]->read();
330
331   return k;
302   return read_inputs(4);
332303}
333304
334305WRITE16_MEMBER(ticalc1x_state::wizatron_write_r)
335306{
336   m_display_maxx = 8;
337   m_display_maxy = 9;
338
307   // note: 3rd digit is custom(not 7seg), for math symbols, and 6th digit
308   // only has A and G for =, though some newer revisions use a custom digit too.
309   m_7seg_mask[3] = 0x41;
310   
339311   // R0-R8: select digit (right-to-left)
340   // note: 3rd digit is custom(not 7seg), for math symbols
341   for (int i = 0; i < 9; i++)
342   {
343      m_7seg_mask[i] = 0x7f;
344      m_display_state[i] = (data >> i & 1) ? m_o : 0;
345   }
346
347   // 6th digit only has A and G for =
348   m_display_state[3] &= 0x41;
349
350   display_update();
312   display_matrix_7seg(8, 9, m_o, data, 0x7f);
351313}
352314
353315WRITE16_MEMBER(ticalc1x_state::wizatron_write_o)
r244939r244940
355317   // O1-O4: input mux
356318   // O0-O6: digit segments A-G
357319   // O7: N/C
320   m_inp_mux = data >> 1 & 0xf;
358321   m_o = data & 0x7f;
359322}
360323
r244939r244940
365328
366329READ8_MEMBER(ticalc1x_state::ti30_read_k)
367330{
368   // the Vss row is always on
369   UINT8 k = m_inp_matrix[8]->read();
370
371   // read selected button rows
372   for (int i = 0; i < 8; i++)
373      if (m_o >> i & 1)
374         k |= m_inp_matrix[i]->read();
375
376   return k;
331   // note: the Vss row is always on
332   return m_inp_matrix[7]->read() | read_inputs(7);
377333}
378334
379335WRITE16_MEMBER(ticalc1x_state::ti30_write_r)
380336{
381   m_display_maxx = 8;
382   m_display_maxy = 9;
337   // note: 1st digit only has segments B,F,G,DP
338   m_7seg_mask[0] = 0xe2;
383339
384340   // R0-R8: select digit
385   UINT8 o = BITSWAP8(m_o,7,5,2,1,4,0,6,3);
386   for (int i = 0; i < 9; i++)
387   {
388      m_7seg_mask[i] = 0xff;
389      m_display_state[i] = (data >> i & 1) ? o : 0;
390   }
391
392   // 1st digit only has segments B,F,G,DP
393   m_display_state[0] &= 0xe2;
394
395   display_update();
341   display_matrix_7seg(8, 9, BITSWAP8(m_o,7,5,2,1,4,0,6,3), data, 0xff);
396342}
397343
398344WRITE16_MEMBER(ticalc1x_state::ti30_write_o)
399345{
400   // O1-O5,O7: input mux
346   // O0-O2,O4-O7: input mux
401347   // O0-O7: digit segments
348   m_inp_mux = (data & 7) | (data >> 1 & 0x78);
402349   m_o = data;
403350}
404351
r244939r244940
510457   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CODE(KEYCODE_I) PORT_NAME(UTF8_SMALL_PI)
511458   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE)
512459
513   PORT_START("IN.5") // O6
514   PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
515
516   PORT_START("IN.6") // O7
460   PORT_START("IN.5") // O7
517461   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_NAME("1/x")
518462   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_NAME("x" UTF8_POW_2)
519463   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_NAME(UTF8_SQUAREROOT"x")
r244939r244940
573517   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
574518   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
575519
576   PORT_START("IN.3") // O3
577   PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNUSED )
578
579   PORT_START("IN.4") // O4
520   PORT_START("IN.3") // O4
580521   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE)
581522   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_NAME(UTF8_SMALL_PI)
582523   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("(")
583524   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("%")
584525   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME(")")
585526
586   PORT_START("IN.5") // O5
527   PORT_START("IN.4") // O5
587528   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+")
588529   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("SUM")
589530   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
590531   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
591532   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
592533
593   PORT_START("IN.6") // O6
534   PORT_START("IN.5") // O6
594535   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_NAME("DRG")
595536   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_NAME("INV")
596537   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_NAME("cos")
597538   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_NAME("sin")
598539   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_NAME("tan")
599540
600   PORT_START("IN.7") // O7
541   PORT_START("IN.6") // O7
601542   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("=")
602543   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_NAME("EXC")
603544   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME(".")
r244939r244940
605546   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("+/-")
606547
607548   // note: even though power buttons are on the matrix, they are not CPU-controlled
608   PORT_START("IN.8") // Vss!
549   PORT_START("IN.7") // Vss!
609550   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)
610551   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_NAME("1/x")
611552   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_NAME(UTF8_SQUAREROOT"x")
r244939r244940
636577   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
637578   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
638579
639   PORT_START("IN.3") // O3
640   PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNUSED )
641
642   PORT_START("IN.4") // O4
580   PORT_START("IN.3") // O4
643581   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE)
644582   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TILDE) PORT_NAME("1'sC")
645583   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_NAME("b")
646584   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_NAME("A")
647585   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_NAME("C")
648586
649   PORT_START("IN.5") // O5
587   PORT_START("IN.4") // O5
650588   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+")
651589   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_NAME("XOR")
652590   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
653591   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
654592   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
655593
656   PORT_START("IN.6") // O6
594   PORT_START("IN.5") // O6
657595   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME(")")
658596   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_HOME) PORT_NAME("STO")
659597   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("SUM")
660598   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_END) PORT_NAME("RCL")
661599   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("(")
662600
663   PORT_START("IN.7") // O7
601   PORT_START("IN.6") // O7
664602   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("=")
665603   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("CE")
666604   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME(".")
r244939r244940
668606   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("+/-")
669607
670608   // note: even though power buttons are on the matrix, they are not CPU-controlled
671   PORT_START("IN.8") // Vss!
609   PORT_START("IN.7") // Vss!
672610   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)
673611   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_NAME("DEC")
674612   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_NAME("OCT")
r244939r244940
700638   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
701639   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
702640
703   PORT_START("IN.3") // O3
704   PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNUSED )
705
706   PORT_START("IN.4") // O4
641   PORT_START("IN.3") // O4
707642   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE)
708643   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME(UTF8_CAPITAL_SIGMA"+  " UTF8_CAPITAL_SIGMA"-")
709644   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("(  AN-CI\"")
710645   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("x<>y  L.R.")
711646   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME(")  1/x")
712647
713   PORT_START("IN.5") // O5
648   PORT_START("IN.4") // O5
714649   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+")
715650   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_NAME("SUM  x" UTF8_PRIME)
716651   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
717652   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
718653   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
719654
720   PORT_START("IN.6") // O6
655   PORT_START("IN.5") // O6
721656   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_NAME("FV")
722657   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_NAME("N")
723658   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_NAME("PMT")
724659   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_NAME("%i")
725660   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_NAME("PV")
726661
727   PORT_START("IN.7") // O7
662   PORT_START("IN.6") // O7
728663   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("=")
729664   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_NAME("EXC  x" UTF8_PRIME)
730665   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME(".")
r244939r244940
732667   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("+/-")
733668
734669   // note: even though power buttons are on the matrix, they are not CPU-controlled
735   PORT_START("IN.8") // Vss!
670   PORT_START("IN.7") // Vss!
736671   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)
737672   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_NAME("2nd")
738673   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_NAME("x" UTF8_POW_2"  " UTF8_SQUAREROOT"x")
r244939r244940
756691   MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ticalc1x_state, tisr16_write_o))
757692   MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ticalc1x_state, tisr16_write_r))
758693
694   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", ticalc1x_state, display_decay_tick, attotime::from_msec(1))
695
759696   MCFG_DEFAULT_LAYOUT(layout_tisr16)
760697MACHINE_CONFIG_END
761698


Previous 199869 Revisions Next


© 1997-2024 The MAME Team