Previous 199869 Revisions Next

r36432 Sunday 15th March, 2015 at 14:40:51 UTC by hap
(MESS)New working game added
-----------------
TI Little Professor (1978 version) [hap, Sean Riddle]
[src/mess/drivers]hh_hmcs40.c hh_pic16.c hh_tms1k.c hh_ucom4.c ticalc1x.c tispeak.c

trunk/src/mess/drivers/hh_hmcs40.c
r244943r244944
176176   // slowly turn off unpowered segments
177177   for (int y = 0; y < m_display_maxy; y++)
178178      for (int x = 0; x < m_display_maxx; x++)
179         if (!(m_display_state[y] >> x & 1) && m_display_decay[y][x] != 0)
179         if (m_display_decay[y][x] != 0)
180180            m_display_decay[y][x]--;
181181   
182182   display_update();
trunk/src/mess/drivers/hh_pic16.c
r244943r244944
148148   // slowly turn off unpowered segments
149149   for (int y = 0; y < m_display_maxy; y++)
150150      for (int x = 0; x < m_display_maxx; x++)
151         if (!(m_display_state[y] >> x & 1) && m_display_decay[y][x] != 0)
151         if (m_display_decay[y][x] != 0)
152152            m_display_decay[y][x]--;
153153   
154154   display_update();
trunk/src/mess/drivers/hh_tms1k.c
r244943r244944
111111   UINT16 m_r;                         // MCU R-pins data
112112   UINT16 m_o;                         // MCU O-pins data
113113   UINT16 m_inp_mux;                   // multiplexed inputs mask
114   bool m_power_on;                    // TMS0980 power-on state
114   bool m_power_on;
115115
116116   UINT8 read_inputs(int columns);
117   DECLARE_INPUT_CHANGED_MEMBER(tms0980_power_button);
118   DECLARE_WRITE_LINE_MEMBER(tms0980_auto_power_off);
117   DECLARE_INPUT_CHANGED_MEMBER(power_button);
118   DECLARE_WRITE_LINE_MEMBER(auto_power_off);
119119
120120   virtual void machine_start();
121121   virtual void machine_reset();
r244943r244944
307307   // slowly turn off unpowered segments
308308   for (int y = 0; y < m_display_maxy; y++)
309309      for (int x = 0; x < m_display_maxx; x++)
310         if (!(m_display_state[y] >> x & 1) && m_display_decay[y][x] != 0)
310         if (m_display_decay[y][x] != 0)
311311            m_display_decay[y][x]--;
312312   
313313   display_update();
r244943r244944
342342
343343// devices with a TMS0980 can auto power-off
344344
345WRITE_LINE_MEMBER(hh_tms1k_state::tms0980_auto_power_off)
345WRITE_LINE_MEMBER(hh_tms1k_state::auto_power_off)
346346{
347347   if (state)
348348   {
r244943r244944
351351   }
352352}
353353
354INPUT_CHANGED_MEMBER(hh_tms1k_state::tms0980_power_button)
354INPUT_CHANGED_MEMBER(hh_tms1k_state::power_button)
355355{
356356   m_power_on = (bool)(FPTR)param;
357357   m_maincpu->set_input_line(INPUT_LINE_RESET, m_power_on ? CLEAR_LINE : ASSERT_LINE);
r244943r244944
11821182
11831183   // note: even though power buttons are on the matrix, they are not CPU-controlled
11841184   PORT_START("IN.4") // Vss!
1185   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("On") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, tms0980_power_button, (void *)true)
1185   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("On") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, power_button, (void *)true)
11861186   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
11871187   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
11881188   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("End Turn")
1189   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, tms0980_power_button, (void *)false)
1189   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, power_button, (void *)false)
11901190INPUT_PORTS_END
11911191
11921192
r244943r244944
11971197   MCFG_TMS1XXX_READ_K_CB(READ8(hh_tms1k_state, elecdet_read_k))
11981198   MCFG_TMS1XXX_WRITE_R_CB(WRITE16(hh_tms1k_state, elecdet_write_r))
11991199   MCFG_TMS1XXX_WRITE_O_CB(WRITE16(hh_tms1k_state, elecdet_write_o))
1200   MCFG_TMS1XXX_POWER_OFF_CB(WRITELINE(hh_tms1k_state, tms0980_auto_power_off))
1200   MCFG_TMS1XXX_POWER_OFF_CB(WRITELINE(hh_tms1k_state, auto_power_off))
12011201
12021202   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
12031203   MCFG_DEFAULT_LAYOUT(layout_elecdet)
r244943r244944
17781778
17791779   // note: even though power buttons are on the matrix, they are not CPU-controlled
17801780   PORT_START("IN.2") // Vss!
1781   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("On") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, tms0980_power_button, (void *)true)
1781   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("On") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, power_button, (void *)true)
17821782   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("Tip")
17831783   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("Arrest")
17841784   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("Clue")
1785   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, tms0980_power_button, (void *)false)
1785   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, power_button, (void *)false)
17861786INPUT_PORTS_END
17871787
17881788static MACHINE_CONFIG_START( stopthief, hh_tms1k_state )
r244943r244944
17921792   MCFG_TMS1XXX_READ_K_CB(READ8(hh_tms1k_state, stopthief_read_k))
17931793   MCFG_TMS1XXX_WRITE_R_CB(WRITE16(hh_tms1k_state, stopthief_write_r))
17941794   MCFG_TMS1XXX_WRITE_O_CB(WRITE16(hh_tms1k_state, stopthief_write_o))
1795   MCFG_TMS1XXX_POWER_OFF_CB(WRITELINE(hh_tms1k_state, tms0980_auto_power_off))
1795   MCFG_TMS1XXX_POWER_OFF_CB(WRITELINE(hh_tms1k_state, auto_power_off))
17961796
17971797   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
17981798   MCFG_DEFAULT_LAYOUT(layout_stopthie)
trunk/src/mess/drivers/hh_ucom4.c
r244943r244944
192192   // slowly turn off unpowered segments
193193   for (int y = 0; y < m_display_maxy; y++)
194194      for (int x = 0; x < m_display_maxx; x++)
195         if (!(m_display_state[y] >> x & 1) && m_display_decay[y][x] != 0)
195         if (m_display_decay[y][x] != 0)
196196            m_display_decay[y][x]--;
197197   
198198   display_update();
trunk/src/mess/drivers/ticalc1x.c
r244943r244944
99
1010  TODO:
1111  - MCU clocks are unknown
12  - lilprof equals-sign is always on
1213
1314***************************************************************************/
1415
r244943r244944
4546   UINT16 m_r;                         // MCU R-pins data
4647   UINT16 m_o;                         // MCU O-pins data
4748   UINT16 m_inp_mux;                   // multiplexed inputs mask
48   bool m_power_on;                    // TMS0980 power-on state
49   bool m_power_on;
4950
5051   UINT8 read_inputs(int columns);
51   DECLARE_INPUT_CHANGED_MEMBER(tms0980_power_button);
52   DECLARE_WRITE_LINE_MEMBER(tms0980_auto_power_off);
52   DECLARE_INPUT_CHANGED_MEMBER(power_button);
53   DECLARE_WRITE_LINE_MEMBER(auto_power_off);
5354
5455   virtual void machine_reset();
5556   virtual void machine_start();
r244943r244944
8283   DECLARE_WRITE16_MEMBER(wizatron_write_o);
8384   DECLARE_WRITE16_MEMBER(wizatron_write_r);
8485
86   DECLARE_READ8_MEMBER(lilprof_read_k);
87   DECLARE_WRITE16_MEMBER(lilprof_write_o);
88   DECLARE_WRITE16_MEMBER(lilprof_write_r);
89
8590   DECLARE_READ8_MEMBER(ti30_read_k);
8691   DECLARE_WRITE16_MEMBER(ti30_write_o);
8792   DECLARE_WRITE16_MEMBER(ti30_write_r);
r244943r244944
175180   // slowly turn off unpowered segments
176181   for (int y = 0; y < m_display_maxy; y++)
177182      for (int x = 0; x < m_display_maxx; x++)
178         if (!(m_display_state[y] >> x & 1) && m_display_decay[y][x] != 0)
183         if (m_display_decay[y][x] != 0)
179184            m_display_decay[y][x]--;
180185   
181186   display_update();
r244943r244944
213218
214219// devices with a TMS0980 can auto power-off
215220
216WRITE_LINE_MEMBER(ticalc1x_state::tms0980_auto_power_off)
221WRITE_LINE_MEMBER(ticalc1x_state::auto_power_off)
217222{
218223   if (state)
219224   {
r244943r244944
222227   }
223228}
224229
225INPUT_CHANGED_MEMBER(ticalc1x_state::tms0980_power_button)
230INPUT_CHANGED_MEMBER(ticalc1x_state::power_button)
226231{
227232   m_power_on = (bool)(FPTR)param;
228233   m_maincpu->set_input_line(INPUT_LINE_RESET, m_power_on ? CLEAR_LINE : ASSERT_LINE);
r244943r244944
455460
456461/***************************************************************************
457462
458  TI WIZ-A-TRON (educational toy)
463  TI WIZ-A-TRON
459464  * TMS0970 MCU labeled TMC0907NL ZA0379, DP0907BS. die labeled 0970F-07B
460465
461466***************************************************************************/
r244943r244944
467472
468473WRITE16_MEMBER(ticalc1x_state::wizatron_write_r)
469474{
470   // note: 3rd digit is custom(not 7seg), for math symbols, and 6th digit
475   // note: 6th digit is custom(not 7seg), for math symbols, and 3rd digit
471476   // only has A and G for =, though some newer revisions use a custom digit too.
472477   m_7seg_mask[3] = 0x41;
473478   
r244943r244944
534539
535540/***************************************************************************
536541
542  TI Little Professor '78
543  * TMS1990 MCU labeled TMC1993NL. die labeled 1990C-c3C
544
545***************************************************************************/
546
547READ8_MEMBER(ticalc1x_state::lilprof_read_k)
548{
549   return read_inputs(5);
550}
551
552WRITE16_MEMBER(ticalc1x_state::lilprof_write_r)
553{
554   // update leds state
555   UINT8 o = BITSWAP8(m_o,7,4,3,2,1,0,6,5) & 0x7f;
556   UINT16 r = (data & 7) | (data << 1 & 0x1f0);
557
558   for (int y = 0; y < 9; y++)
559      m_display_state[y] = (r >> y & 1) ? o : 0;
560
561   // 3rd digit A/G(equals sign) is from O7
562   m_display_state[3] = (m_o & 0x80) ? 0x41 : 0;
563   
564   // 6th digit is a custom 7seg for math symbols
565   m_display_state[6] = BITSWAP8(m_display_state[6],7,6,1,4,2,3,5,0);
566
567   m_display_maxx = 8;
568   m_display_maxy = 9;
569   display_update();
570}
571
572WRITE16_MEMBER(ticalc1x_state::lilprof_write_o)
573{
574   // O0-O3,O5: input mux
575   // O0-O6: digit segments A-G
576   // O7: 6th digit
577   m_inp_mux = (data & 0xf) | (data >> 1 & 0x10);
578   m_o = data;
579}
580
581
582static INPUT_PORTS_START( lilprof )
583   PORT_START("IN.0") // O0
584   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
585   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
586   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
587   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("-")
588
589   PORT_START("IN.1") // O1
590   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
591   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5")
592   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
593   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ASTERISK) PORT_NAME(UTF8_MULTIPLY)
594
595   PORT_START("IN.2") // O2
596   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
597   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8")
598   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9")
599   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE)
600
601   // note: even though power buttons are on the matrix, they are not CPU-controlled
602   PORT_START("IN.3") // O3 or O4?
603   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off") PORT_CHANGED_MEMBER(DEVICE_SELF, ticalc1x_state, power_button, (void *)false)
604   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
605   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_NAME("Set")
606   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_NAME("Level")
607
608   PORT_START("IN.4") // O5
609   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGUP) PORT_CODE(KEYCODE_DEL) PORT_NAME("On") PORT_CHANGED_MEMBER(DEVICE_SELF, ticalc1x_state, power_button, (void *)true)
610   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("0")
611   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Go")
612   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+")
613INPUT_PORTS_END
614
615
616static MACHINE_CONFIG_START( lilprof, ticalc1x_state )
617
618   /* basic machine hardware */
619   MCFG_CPU_ADD("maincpu", TMS1990, 250000) // guessed
620   MCFG_TMS1XXX_READ_K_CB(READ8(ticalc1x_state, lilprof_read_k))
621   MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ticalc1x_state, lilprof_write_o))
622   MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ticalc1x_state, lilprof_write_r))
623
624   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", ticalc1x_state, display_decay_tick, attotime::from_msec(1))
625   MCFG_DEFAULT_LAYOUT(layout_wizatron)
626
627   /* no video! */
628
629   /* no sound! */
630MACHINE_CONFIG_END
631
632
633
634
635
636/***************************************************************************
637
537638  Majestic-line calculators:
538  * TI-30: TMS0980 MCU labeled TMC0981NL. die labeled 0980B-81F
639  * TI-30(aka SR-40): TMS0980 MCU labeled TMC0981NL. die labeled 0980B-81F
539640  * TI Programmer: TMS0980 MCU labeled ZA0675NL, JP0983AT. die labeled 0980B-83
540641  * TI Business Analyst-I: TMS0980 MCU labeled TMC0982NL. die labeled 0980B-82F
541642
r244943r244944
617718
618719   // note: even though power buttons are on the matrix, they are not CPU-controlled
619720   PORT_START("IN.7") // Vss!
620   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)
721   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, power_button, (void *)true)
621722   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_NAME("1/x")
622723   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_NAME(UTF8_SQUAREROOT"x")
623724   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_NAME("x" UTF8_POW_2)
624   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("OFF") PORT_CHANGED_MEMBER(DEVICE_SELF, ticalc1x_state, tms0980_power_button, (void *)false)
725   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("OFF") PORT_CHANGED_MEMBER(DEVICE_SELF, ticalc1x_state, power_button, (void *)false)
625726INPUT_PORTS_END
626727
627728
r244943r244944
677778
678779   // note: even though power buttons are on the matrix, they are not CPU-controlled
679780   PORT_START("IN.7") // Vss!
680   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)
781   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, power_button, (void *)true)
681782   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_NAME("DEC")
682783   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_NAME("OCT")
683784   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_NAME("HEX")
684   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("OFF") PORT_CHANGED_MEMBER(DEVICE_SELF, ticalc1x_state, tms0980_power_button, (void *)false)
785   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("OFF") PORT_CHANGED_MEMBER(DEVICE_SELF, ticalc1x_state, power_button, (void *)false)
685786INPUT_PORTS_END
686787
687788
r244943r244944
738839
739840   // note: even though power buttons are on the matrix, they are not CPU-controlled
740841   PORT_START("IN.7") // Vss!
741   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)
842   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, power_button, (void *)true)
742843   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_NAME("2nd")
743844   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_NAME("x" UTF8_POW_2"  " UTF8_SQUAREROOT"x")
744845   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_NAME("ln(x)  e" UTF8_POW_X)
745   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("OFF") PORT_CHANGED_MEMBER(DEVICE_SELF, ticalc1x_state, tms0980_power_button, (void *)false)
846   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("OFF") PORT_CHANGED_MEMBER(DEVICE_SELF, ticalc1x_state, power_button, (void *)false)
746847INPUT_PORTS_END
747848
748849
r244943r244944
753854   MCFG_TMS1XXX_READ_K_CB(READ8(ticalc1x_state, ti30_read_k))
754855   MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ticalc1x_state, ti30_write_o))
755856   MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ticalc1x_state, ti30_write_r))
756   MCFG_TMS1XXX_POWER_OFF_CB(WRITELINE(ticalc1x_state, tms0980_auto_power_off))
857   MCFG_TMS1XXX_POWER_OFF_CB(WRITELINE(ticalc1x_state, auto_power_off))
757858
758859   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", ticalc1x_state, display_decay_tick, attotime::from_msec(1))
759860   MCFG_DEFAULT_LAYOUT(layout_ti30)
r244943r244944
767868
768869
769870
770
771
772static INPUT_PORTS_START( lilprof )
773INPUT_PORTS_END
774
775
776
777
778
779
780static MACHINE_CONFIG_START( lilprof, ticalc1x_state )
781
782   /* basic machine hardware */
783   MCFG_CPU_ADD("maincpu", TMS1990, 250000) // guessed
784//   MCFG_TMS1XXX_READ_K_CB(READ8(ticalc1x_state, lilprof_read_k))
785//   MCFG_TMS1XXX_WRITE_O_CB(WRITE16(ticalc1x_state, lilprof_write_o))
786//   MCFG_TMS1XXX_WRITE_R_CB(WRITE16(ticalc1x_state, lilprof_write_r))
787
788   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", ticalc1x_state, display_decay_tick, attotime::from_msec(1))
789   MCFG_DEFAULT_LAYOUT(layout_wizatron)
790
791   /* no video! */
792
793   /* no sound! */
794MACHINE_CONFIG_END
795
796
797871/***************************************************************************
798872
799873  Game driver(s)
r244943r244944
846920   ROM_LOAD( "tmc1993nl", 0x0000, 0x0400, CRC(e941316b) SHA1(7e1542045d1e731cea81a639c9ac9e91bb233b15) )
847921
848922   ROM_REGION( 782, "maincpu:ipla", 0 )
849   ROM_LOAD( "tms0970_lilprof_ipla.pla", 0, 782, CRC(05306ef8) SHA1(60a0a3c49ce330bce0c27f15f81d61461d0432ce) )
923   ROM_LOAD( "tms0970_lilprof_ipla.pla", 0, 782, BAD_DUMP CRC(05306ef8) SHA1(60a0a3c49ce330bce0c27f15f81d61461d0432ce) ) // not verified
850924   ROM_REGION( 860, "maincpu:mpla", 0 )
851925   ROM_LOAD( "tms0970_lilprof_mpla.pla", 0, 860, CRC(7f50ab2e) SHA1(bff3be9af0e322986f6e545b567c97d70e135c93) )
852926   ROM_REGION( 352, "maincpu:opla", 0 )
853927   ROM_LOAD( "tms0970_lilprof_opla.pla", 0, 352, CRC(03f509c4) SHA1(691554a55db0c5950df848077095f23a991b1909) )
854928   ROM_REGION( 157, "maincpu:spla", 0 )
855   ROM_LOAD( "tms0970_lilprof_spla.pla", 0, 157, CRC(56c37a4f) SHA1(18ecc20d2666e89673739056483aed5a261ae927) )
929   ROM_LOAD( "tms0970_lilprof_spla.pla", 0, 157, CRC(234ca3a8) SHA1(76844dd87cb380a07c8fcbef143038087e98f138) )
856930ROM_END
857931
858932
r244943r244944
907981
908982COMP( 1976, ti1270,    0,        0, ti1270,    ti1270,    driver_device, 0, "Texas Instruments", "TI-1270", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
909983COMP( 1977, wizatron,  0,        0, wizatron,  wizatron,  driver_device, 0, "Texas Instruments", "Wiz-A-Tron", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
910COMP( 1978, lilprof,   0,        0, lilprof,   lilprof,   driver_device, 0, "Texas Instruments", "Little Professor", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW | GAME_NOT_WORKING ) // 1978 version, original is from 1976
984COMP( 1978, lilprof,   0,        0, lilprof,   lilprof,   driver_device, 0, "Texas Instruments", "Little Professor (1978 version)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW ) // original is from 1976
911985
912986COMP( 1976, ti30,      0,        0, ti30,      ti30,      driver_device, 0, "Texas Instruments", "TI-30", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
913987COMP( 1977, tiprog,    0,        0, ti30,      tiprog,    driver_device, 0, "Texas Instruments", "TI Programmer", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
trunk/src/mess/drivers/tispeak.c
r244943r244944
951951
952952
953953
954COMP( 1978, snspell,    0,       0, snspell,  snspell,  tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (US prototype)", GAME_IMPERFECT_SOUND ) // also US set 1
955COMP( 1980, snspella,   snspell, 0, snspell,  snspell,  tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (US set 2)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
956COMP( 1978, snspelluk,  snspell, 0, snspell,  snspell,  tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (UK set 1)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
957COMP( 1981, snspelluka, snspell, 0, snspell,  snspell,  tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (UK set 2)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
954COMP( 1978, snspell,    0,       0, snspell,  snspell,  tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (US, prototype)", GAME_IMPERFECT_SOUND ) // also US set 1
955COMP( 1980, snspella,   snspell, 0, snspell,  snspell,  tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (US, 1980 version)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
956COMP( 1978, snspelluk,  snspell, 0, snspell,  snspell,  tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (UK, 1978 version)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
957COMP( 1981, snspelluka, snspell, 0, snspell,  snspell,  tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (UK, 1981 version)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
958958COMP( 1979, snspelljp,  snspell, 0, snspell,  snspell,  tispeak_state, snspell,  "Texas Instruments", "Speak & Spell (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
959959COMP( 1980, ladictee,   snspell, 0, snspell,  snspell,  tispeak_state, snspell,  "Texas Instruments", "La Dictee Magique (France)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) // doesn't work due to missing CD2702 MCU dump, German/Italian version has CD2702 too
960960
961COMP( 1980, snmath,     0,       0, snmath,   snmath,   driver_device, 0,        "Texas Instruments", "Speak & Math (US prototype)", GAME_IMPERFECT_SOUND ) // also US set 1
962COMP( 1986, snmatha,    snmath,  0, snmath,   snmath,   driver_device, 0,        "Texas Instruments", "Speak & Math (US set 2)", GAME_IMPERFECT_SOUND )
961COMP( 1980, snmath,     0,       0, snmath,   snmath,   driver_device, 0,        "Texas Instruments", "Speak & Math (US, prototype)", GAME_IMPERFECT_SOUND ) // also US set 1
962COMP( 1986, snmatha,    snmath,  0, snmath,   snmath,   driver_device, 0,        "Texas Instruments", "Speak & Math (US, 1986 version)", GAME_IMPERFECT_SOUND )
963963
964964COMP( 1979, lantutor,   0,       0, lantutor, lantutor, tispeak_state, lantutor, "Texas Instruments", "Language Tutor (prototype)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )


Previous 199869 Revisions Next


© 1997-2024 The MAME Team