Previous 199869 Revisions Next

r33990 Saturday 20th December, 2014 at 21:38:04 UTC by hap
added snspell output pla from seanriddle, and fixed garbled display digits
[src/mess/drivers]stopthie.c ticalc1x.c tispeak.c
[src/mess/layout]tispeak.lay

trunk/src/mess/drivers/stopthie.c
r242501r242502
4141   required_device<speaker_sound_device> m_speaker;
4242
4343   UINT16 m_o;
44   bool m_power;
44   bool m_power_on;
4545
4646   UINT16 m_leds_state[0x10];
4747   UINT16 m_leds_cache[0x10];
r242501r242502
9292            m_leds_decay[di] = LEDS_DECAY_TIME;
9393         
9494         // determine active state
95         int ds = (m_power && m_leds_decay[di] != 0) ? 1 : 0;
95         int ds = (m_power_on && m_leds_decay[di] != 0) ? 1 : 0;
9696         active_state[i] |= (ds << j);
9797      }
9898   }
r242501r242502
170170
171171INPUT_CHANGED_MEMBER(stopthief_state::power_button)
172172{
173   m_power = (bool)(FPTR)param;
174   m_maincpu->set_input_line(INPUT_LINE_RESET, m_power ? CLEAR_LINE : ASSERT_LINE);
173   m_power_on = (bool)(FPTR)param;
174   m_maincpu->set_input_line(INPUT_LINE_RESET, m_power_on ? CLEAR_LINE : ASSERT_LINE);
175175}
176176
177177/* physical button layout and labels is like this:
r242501r242502
220220   // TMS0980 auto power-off opcode
221221   if (state)
222222   {
223      m_power = false;
223      m_power_on = false;
224224      m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
225225   }
226226}
r242501r242502
228228
229229void stopthief_state::machine_reset()
230230{
231   m_power = true;
231   m_power_on = true;
232232}
233233
234234void stopthief_state::machine_start()
r242501r242502
239239   memset(m_leds_decay, 0, sizeof(m_leds_decay));
240240
241241   m_o = 0;
242   m_power = false;
242   m_power_on = false;
243243
244244   // register for savestates
245245   save_item(NAME(m_leds_state));
r242501r242502
247247   save_item(NAME(m_leds_decay));
248248
249249   save_item(NAME(m_o));
250   save_item(NAME(m_power));
250   save_item(NAME(m_power_on));
251251}
252252
253253
trunk/src/mess/drivers/ticalc1x.c
r242501r242502
3535
3636   UINT16 m_r;
3737   UINT16 m_o;
38   bool m_power;
38   bool m_power_on;
3939
4040   UINT16 m_leds_state[0x10];
4141   UINT16 m_leds_cache[0x10];
r242501r242502
9999            m_leds_decay[di] = LEDS_DECAY_TIME;
100100         
101101         // determine active state
102         int ds = (m_power && m_leds_decay[di] != 0) ? 1 : 0;
102         int ds = (m_power_on && m_leds_decay[di] != 0) ? 1 : 0;
103103         active_state[i] |= (ds << j);
104104      }
105105   }
r242501r242502
296296
297297INPUT_CHANGED_MEMBER(ticalc1x_state::power_button)
298298{
299   m_power = (bool)(FPTR)param;
300   m_maincpu->set_input_line(INPUT_LINE_RESET, m_power ? CLEAR_LINE : ASSERT_LINE);
299   m_power_on = (bool)(FPTR)param;
300   m_maincpu->set_input_line(INPUT_LINE_RESET, m_power_on ? CLEAR_LINE : ASSERT_LINE);
301301}
302302
303303static INPUT_PORTS_START( tisr16 )
r242501r242502
640640   // TMS0980 auto power-off opcode
641641   if (state)
642642   {
643      m_power = false;
643      m_power_on = false;
644644      m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
645645   }
646646}
r242501r242502
648648
649649void ticalc1x_state::machine_reset()
650650{
651   m_power = true;
651   m_power_on = true;
652652}
653653
654654void ticalc1x_state::machine_start()
r242501r242502
660660
661661   m_r = 0;
662662   m_o = 0;
663   m_power = false;
663   m_power_on = false;
664664
665665   // register for savestates
666666   save_item(NAME(m_leds_state));
r242501r242502
669669
670670   save_item(NAME(m_r));
671671   save_item(NAME(m_o));
672   save_item(NAME(m_power));
672   save_item(NAME(m_power_on));
673673}
674674
675675
trunk/src/mess/drivers/tispeak.c
r242501r242502
1313
1414#include "tispeak.lh"
1515
16// master clock is unknown
17#define MASTER_CLOCK (500000)
1816
19
2017class tispeak_state : public driver_device
2118{
2219public:
r242501r242502
3229   UINT16 m_r;
3330   UINT16 m_o;
3431
35   UINT16 m_leds_state[8];
32   UINT16 m_leds_state[9];
3633   void leds_update();
3734
38   DECLARE_READ8_MEMBER(read_k);
39   DECLARE_WRITE16_MEMBER(write_o);
40   DECLARE_WRITE16_MEMBER(write_r);
35   DECLARE_READ8_MEMBER(snspell_read_k);
36   DECLARE_WRITE16_MEMBER(snmath_write_o);
37   DECLARE_WRITE16_MEMBER(snspell_write_o);
38   DECLARE_WRITE16_MEMBER(snspell_write_r);
4139   DECLARE_WRITE_LINE_MEMBER(auto_power_off);
4240
4341   virtual void machine_start();
r242501r242502
4745
4846/***************************************************************************
4947
50  I/O
48  LEDs
5149
5250***************************************************************************/
5351
52
5453void tispeak_state::leds_update()
5554{
5655   // update leds state
57   for (int i = 0; i < 8; i++)
56   for (int i = 0; i < 9; i++)
5857      if (m_r >> i & 1)
5958         m_leds_state[i] = m_o & 0x3fff;
6059
6160   // if filament (R15) is on, send to output
6261//   if (m_r & 0x8000) // blank..
63   for (int i = 0; i < 8; i++)
62   for (int i = 0; i < 9; i++)
6463      output_set_digit_value(i, m_leds_state[i]);
6564}
6665
6766
68READ8_MEMBER(tispeak_state::read_k)
67
68/***************************************************************************
69
70  I/O
71
72***************************************************************************/
73
74// common/snspell
75
76READ8_MEMBER(tispeak_state::snspell_read_k)
6977{
7078   // the Vss row is always on
7179   UINT8 k = m_button_matrix[8]->read();
r242501r242502
7886   return k;
7987}
8088
81WRITE16_MEMBER(tispeak_state::write_r)
89WRITE16_MEMBER(tispeak_state::snspell_write_r)
8290{
8391   m_r = data;
8492   leds_update();
8593}
8694
87WRITE16_MEMBER(tispeak_state::write_o)
95WRITE16_MEMBER(tispeak_state::snspell_write_o)
8896{
89   m_o = data;
97   // reorder opla to led14seg, plus DP as d14 and AP as d15:
98   // E,D,C,G,B,A,I,M,L,K,N,J,[AP],H,F,[DP] (sidenote: TI KLMN = MAME MLNK)
99   m_o = BITSWAP16(data,12,15,10,7,8,9,11,6,13,3,14,0,1,2,4,5);
100
90101   leds_update();
91102}
92103
104
93105WRITE_LINE_MEMBER(tispeak_state::auto_power_off)
94106{
95107   //if (state) printf("X");
96108}
97109
98110
111// snmath specific
99112
113WRITE16_MEMBER(tispeak_state::snmath_write_o)
114{
115   // reorder opla to led14seg, plus DP as d14 and AP as d15:
116   // [DP],D,C,H,F,B,I,M,L,K,N,J,[AP],E,G,A (sidenote: TI KLMN = MAME MLNK)
117   m_o = BITSWAP16(data,12,0,10,7,8,9,11,6,3,14,4,13,1,2,5,15);
118
119   leds_update();
120}
121
122
123
100124/***************************************************************************
101125
102126  Inputs
r242501r242502
147171   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("Enter")
148172
149173   PORT_START("IN.6") // R6
150   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1_PAD) // unused
151   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2_PAD) // unused
152   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3_PAD) // unused
153   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4_PAD) // unused
154   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5_PAD) // unused
174   PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNUSED )
155175
156176   PORT_START("IN.7") // R7
157177   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off")
r242501r242502
171191
172192static INPUT_PORTS_START( snmath )
173193   PORT_START("IN.0") // R0
174   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) // 0
175   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) // 3
176   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) // 6
177   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) // 9
178   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1_PAD) // .
194   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("0")
195   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
196   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
197   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9")
198   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME(".")
179199
180200   PORT_START("IN.1") // R1
181   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) // 1
182   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) // 4
183   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) // 7
184   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8)
185   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2_PAD)
201   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
202   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
203   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
204   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
205   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
186206
187207   PORT_START("IN.2") // R2
188   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) // 2
189   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) // 5
190   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) // 8
191   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W)
192   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3_PAD)
208   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
209   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5")
210   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8")
211   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
212   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
193213
194214   PORT_START("IN.3") // R3
195   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E)
196   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) // ent
197   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) // go
198   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) // off
199   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4_PAD)
215   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
216   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter")
217   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Go")
218   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off")
219   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
200220
201221   PORT_START("IN.4") // R4
202   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) // clr
203   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) // <
204   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) // >
205   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) // rpt
206   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5_PAD)
222   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Clear")
223   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("<")
224   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_NAME(">")
225   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_NAME("Repeat")
226   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
207227
208228   PORT_START("IN.5") // R5
209   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) // +
210   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) // -
211   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) // x
212   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) // /
213   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6_PAD) // mix
229   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+")
230   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("-")
231   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ASTERISK) PORT_NAME(UTF8_MULTIPLY)
232   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE)
233   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_NAME("Mix It")
214234
215235   PORT_START("IN.6") // R6
216   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) // num stum
217   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) // write it
218   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) // g/l
219   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) // word prob
220   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7_PAD) // solve it/on
236   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_NAME("Number Stumper")
237   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_NAME("Write It")
238   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_NAME("Greater/Less")
239   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_NAME("Word Problems")
240   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CODE(KEYCODE_PGUP) PORT_NAME("Solve It/On")
221241
222   PORT_START("IN.7") // R7
223   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z)
224   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X)
225   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C)
226   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V)
227   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8_PAD)
242   PORT_START("IN.7")
243   PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNUSED )
228244
229   PORT_START("IN.8") // Vss!
230   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B)
231   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N)
232   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M)
233   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA)
234   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9_PAD)
245   PORT_START("IN.8")
246   PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNUSED )
235247INPUT_PORTS_END
236248
237249
r242501r242502
254266}
255267
256268
257static MACHINE_CONFIG_START( tispeak, tispeak_state )
269static MACHINE_CONFIG_START( snspell, tispeak_state )
258270
259271   /* basic machine hardware */
260272   MCFG_CPU_ADD("maincpu", TMS0270, XTAL_640kHz/2)
261   MCFG_TMS1XXX_READ_K_CB(READ8(tispeak_state, read_k))
262   MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tispeak_state, write_o))
263   MCFG_TMS1XXX_WRITE_R_CB(WRITE16(tispeak_state, write_r))
273   MCFG_TMS1XXX_READ_K_CB(READ8(tispeak_state, snspell_read_k))
274   MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tispeak_state, snspell_write_o))
275   MCFG_TMS1XXX_WRITE_R_CB(WRITE16(tispeak_state, snspell_write_r))
264276   MCFG_TMS1XXX_POWER_OFF_CB(WRITELINE(tispeak_state, auto_power_off))
265277
266278   MCFG_TMS0270_READ_CTL_CB(DEVREAD8("tms5100", tms5100_device, ctl_r))
r242501r242502
282294   MCFG_TMS5110_DATA_CB(DEVREADLINE("tms6100", tms6100_device, tms6100_data_r))
283295   MCFG_TMS5110_ROMCLK_CB(DEVWRITELINE("tms6100", tms6100_device, tms6100_romclock_w))
284296   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
285   
286297MACHINE_CONFIG_END
287298
299static MACHINE_CONFIG_DERIVED( snmath, snspell )
288300
301   /* basic machine hardware */
302   MCFG_CPU_MODIFY("maincpu")
303   MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tispeak_state, snmath_write_o))
304MACHINE_CONFIG_END
289305
306
307
290308/***************************************************************************
291309
292310  Game driver(s)
r242501r242502
295313
296314ROM_START( snspell )
297315   ROM_REGION( 0x1000, "maincpu", 0 )
298   ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, BAD_DUMP CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // from patent 4189779, may have errors
316   ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, BAD_DUMP CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // typed in from patent 4189779, may have errors
299317
300318   ROM_REGION( 1246, "maincpu:ipla", 0 )
301319   ROM_LOAD( "tms0980_default_ipla.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )
302320   ROM_REGION( 2127, "maincpu:mpla", 0 )
303   ROM_LOAD( "tms0270_cd2708_mpla.pla", 0, 2127, BAD_DUMP CRC(94333005) SHA1(1583444c73637d859632dd5186cd7e1a2588c78a) ) // taken from cd2708, need to verify if it's same as tmc0271
321   ROM_LOAD( "tms0270_cd2708_mpla.pla", 0, 2127, BAD_DUMP CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) ) // taken from cd2708, need to verify if it's same as tmc0271
304322   ROM_REGION( 1246, "maincpu:opla", 0 )
305   ROM_LOAD( "tms0270_cd2708_opla.pla", 0, 1246, BAD_DUMP CRC(e70836e2) SHA1(70e7dcdf81ae2052874fb21c504fcc06b2649f9a) ) // "
323   ROM_LOAD( "tms0270_tmc0271_opla.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) )
306324
307325   ROM_REGION( 0x8000, "tms6100", 0 )
308326   ROM_LOAD( "tmc0351.vsm", 0x0000, 0x4000, CRC(beea3373) SHA1(8b0f7586d2f12c3d4a885fdb528cf23feffa1a3b) )
r242501r242502
311329
312330ROM_START( snmath )
313331   ROM_REGION( 0x1000, "maincpu", 0 )
314   ROM_LOAD( "us4946391_t2074", 0x0000, 0x1000, CRC(011f0c2d) SHA1(d2e14d72e03ca864abd51da78ffb71a9da82f624) ) // from patent 4946391, verified with source code
332   ROM_LOAD( "us4946391_t2074", 0x0000, 0x1000, BAD_DUMP CRC(011f0c2d) SHA1(d2e14d72e03ca864abd51da78ffb71a9da82f624) ) // typed in from patent 4946391, verified with source code (mark BAD_DUMP just to be unsure)
315333
316334   ROM_REGION( 1246, "maincpu:ipla", 0 )
317335   ROM_LOAD( "tms0980_default_ipla.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )
318336   ROM_REGION( 2127, "maincpu:mpla", 0 )
319   ROM_LOAD( "tms0270_cd2708_mpla.pla", 0, 2127, BAD_DUMP CRC(94333005) SHA1(1583444c73637d859632dd5186cd7e1a2588c78a) ) // taken from cd2708, need to verify if it's same as cd2704
337   ROM_LOAD( "tms0270_cd2708_mpla.pla", 0, 2127, BAD_DUMP CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) ) // taken from cd2708, need to verify if it's same as cd2704
320338   ROM_REGION( 1246, "maincpu:opla", 0 )
321   ROM_LOAD( "tms0270_cd2708_opla.pla", 0, 1246, BAD_DUMP CRC(e70836e2) SHA1(70e7dcdf81ae2052874fb21c504fcc06b2649f9a) ) // "
339   ROM_LOAD( "tms0270_cd2708_opla.pla", 0, 1246, BAD_DUMP CRC(1abad753) SHA1(53d20b519ed73ce248368047a056836afbe3cd46) ) // "
322340
323341   ROM_REGION( 0x8000, "tms6100", 0 )
324342   ROM_LOAD( "cd2392.vsm", 0x0000, 0x4000, CRC(4ed2e920) SHA1(8896f29e25126c1e4d9a47c9a325b35dddecc61f) )
r242501r242502
326344ROM_END
327345
328346
329COMP( 1978, snspell, 0, 0, tispeak, snspell, driver_device, 0, "Texas Instruments", "Speak & Spell (US, prototype)", GAME_NOT_WORKING )
330COMP( 1980, snmath,  0, 0, tispeak, snmath,  driver_device, 0, "Texas Instruments", "Speak & Math (US, prototype)", GAME_NOT_WORKING )
347COMP( 1978, snspell, 0, 0, snspell, snspell, driver_device, 0, "Texas Instruments", "Speak & Spell (US, prototype)", GAME_NOT_WORKING )
348COMP( 1980, snmath,  0, 0, snmath,  snmath,  driver_device, 0, "Texas Instruments", "Speak & Math (US, prototype)", GAME_NOT_WORKING )
trunk/src/mess/layout/tispeak.lay
r242501r242502
3737      <bezel name="digit7" element="digit">
3838         <bounds x="70" y="0" width="10" height="15" />
3939      </bezel>
40      <bezel name="digit8" element="digit">
41         <bounds x="80" y="0" width="10" height="15" />
42      </bezel>
4043
4144   </view>
4245</mamelayout>


Previous 199869 Revisions Next


© 1997-2024 The MAME Team