Previous 199869 Revisions Next

r36438 Sunday 15th March, 2015 at 23:17:20 UTC by hap
nw shuffle
[src/mess/drivers]hh_hmcs40.c hh_tms1k.c hh_ucom4.c ticalc1x.c

trunk/src/mess/drivers/hh_hmcs40.c
r244949r244950
9393
9494   // game-specific handlers
9595   DECLARE_WRITE8_MEMBER(alnattck_plate_w);
96   DECLARE_WRITE16_MEMBER(alnattck_d_w);
9697   DECLARE_READ16_MEMBER(alnattck_d_r);
97   DECLARE_WRITE16_MEMBER(alnattck_d_w);
9898   
9999   void egalaxn2_display();
100   DECLARE_READ8_MEMBER(egalaxn2_input_r);
101100   DECLARE_WRITE8_MEMBER(egalaxn2_plate_w);
102101   DECLARE_WRITE16_MEMBER(egalaxn2_grid_w);
102   DECLARE_READ8_MEMBER(egalaxn2_input_r);
103103};
104104
105105
r244949r244950
347347   display_matrix(20, 10, plate, m_grid);
348348}
349349
350READ16_MEMBER(hh_hmcs40_state::alnattck_d_r)
351{
352   // D5: inputs
353   return (read_inputs(7) & 1) << 5;
354}
355
356350WRITE16_MEMBER(hh_hmcs40_state::alnattck_d_w)
357351{
358352   // D4: speaker out
r244949r244950
368362   alnattck_plate_w(space, 4, data & 0xf);
369363}
370364
365READ16_MEMBER(hh_hmcs40_state::alnattck_d_r)
366{
367   // D5: inputs
368   return (read_inputs(7) & 1) << 5;
369}
371370
371
372372static INPUT_PORTS_START( alnattck )
373373   PORT_START("IN.0") // D5 D7
374374   PORT_CONFNAME( 0x01, 0x00, "Skill" )
trunk/src/mess/drivers/hh_tms1k.c
r244949r244950
136136   
137137   // game-specific handlers
138138   void mathmagi_display();
139   DECLARE_READ8_MEMBER(mathmagi_read_k);
140139   DECLARE_WRITE16_MEMBER(mathmagi_write_r);
141140   DECLARE_WRITE16_MEMBER(mathmagi_write_o);
141   DECLARE_READ8_MEMBER(mathmagi_read_k);
142142
143143   void amaztron_display();
144   DECLARE_READ8_MEMBER(amaztron_read_k);
145144   DECLARE_WRITE16_MEMBER(amaztron_write_r);
146145   DECLARE_WRITE16_MEMBER(amaztron_write_o);
146   DECLARE_READ8_MEMBER(amaztron_read_k);
147147
148148   void tc4_display();
149   DECLARE_READ8_MEMBER(tc4_read_k);
150149   DECLARE_WRITE16_MEMBER(tc4_write_r);
151150   DECLARE_WRITE16_MEMBER(tc4_write_o);
151   DECLARE_READ8_MEMBER(tc4_read_k);
152152
153153   void ebball_display();
154   DECLARE_READ8_MEMBER(ebball_read_k);
155154   DECLARE_WRITE16_MEMBER(ebball_write_r);
156155   DECLARE_WRITE16_MEMBER(ebball_write_o);
156   DECLARE_READ8_MEMBER(ebball_read_k);
157157
158158   void ebball3_display();
159   DECLARE_READ8_MEMBER(ebball3_read_k);
160159   DECLARE_WRITE16_MEMBER(ebball3_write_r);
161160   DECLARE_WRITE16_MEMBER(ebball3_write_o);
161   DECLARE_READ8_MEMBER(ebball3_read_k);
162162   void ebball3_set_clock();
163163   DECLARE_INPUT_CHANGED_MEMBER(ebball3_difficulty_switch);
164164   DECLARE_MACHINE_RESET(ebball3);
165165
166   DECLARE_READ8_MEMBER(elecdet_read_k);
167166   DECLARE_WRITE16_MEMBER(elecdet_write_r);
168167   DECLARE_WRITE16_MEMBER(elecdet_write_o);
168   DECLARE_READ8_MEMBER(elecdet_read_k);
169169
170170   void starwbc_display();
171   DECLARE_READ8_MEMBER(starwbc_read_k);
172171   DECLARE_WRITE16_MEMBER(starwbc_write_r);
173172   DECLARE_WRITE16_MEMBER(starwbc_write_o);
173   DECLARE_READ8_MEMBER(starwbc_read_k);
174174
175   DECLARE_READ8_MEMBER(comp4_read_k);
176175   DECLARE_WRITE16_MEMBER(comp4_write_r);
177176   DECLARE_WRITE16_MEMBER(comp4_write_o);
177   DECLARE_READ8_MEMBER(comp4_read_k);
178178
179   DECLARE_READ8_MEMBER(simon_read_k);
180179   DECLARE_WRITE16_MEMBER(simon_write_r);
181180   DECLARE_WRITE16_MEMBER(simon_write_o);
181   DECLARE_READ8_MEMBER(simon_read_k);
182182
183   DECLARE_READ8_MEMBER(cnsector_read_k);
184183   DECLARE_WRITE16_MEMBER(cnsector_write_r);
185184   DECLARE_WRITE16_MEMBER(cnsector_write_o);
185   DECLARE_READ8_MEMBER(cnsector_read_k);
186186
187   DECLARE_READ8_MEMBER(merlin_read_k);
188187   DECLARE_WRITE16_MEMBER(merlin_write_r);
189188   DECLARE_WRITE16_MEMBER(merlin_write_o);
189   DECLARE_READ8_MEMBER(merlin_read_k);
190190
191   DECLARE_READ8_MEMBER(stopthief_read_k);
192191   DECLARE_WRITE16_MEMBER(stopthief_write_r);
193192   DECLARE_WRITE16_MEMBER(stopthief_write_o);
193   DECLARE_READ8_MEMBER(stopthief_read_k);
194194
195   DECLARE_READ8_MEMBER(bankshot_read_k);
196195   DECLARE_WRITE16_MEMBER(bankshot_write_r);
197196   DECLARE_WRITE16_MEMBER(bankshot_write_o);
197   DECLARE_READ8_MEMBER(bankshot_read_k);
198198
199   DECLARE_READ8_MEMBER(splitsec_read_k);
200199   DECLARE_WRITE16_MEMBER(splitsec_write_r);
201200   DECLARE_WRITE16_MEMBER(splitsec_write_o);
201   DECLARE_READ8_MEMBER(splitsec_read_k);
202202
203203   void tandy12_display();
204   DECLARE_READ8_MEMBER(tandy12_read_k);
205204   DECLARE_WRITE16_MEMBER(tandy12_write_r);
206205   DECLARE_WRITE16_MEMBER(tandy12_write_o);
206   DECLARE_READ8_MEMBER(tandy12_read_k);
207207};
208208
209209
r244949r244950
408408   display_update();
409409}
410410
411READ8_MEMBER(hh_tms1k_state::mathmagi_read_k)
412{
413   return read_inputs(6);
414}
415
416411WRITE16_MEMBER(hh_tms1k_state::mathmagi_write_r)
417412{
418413   // R3,R5-R7,R9,R10: input mux
r244949r244950
431426   m_o = data;
432427}
433428
429READ8_MEMBER(hh_tms1k_state::mathmagi_read_k)
430{
431   return read_inputs(6);
432}
434433
434
435435/* physical button layout and labels is like this:
436436
437437    ON     ONE       [SEL] [NXT] [?]   [/]
r244949r244950
568568   display_update();
569569}
570570
571READ8_MEMBER(hh_tms1k_state::amaztron_read_k)
572{
573   UINT8 k = read_inputs(6);
574
575   // the 5th column is tied to K4+K8
576   if (k & 0x10) k |= 0xc;
577   return k & 0xf;
578}
579
580571WRITE16_MEMBER(hh_tms1k_state::amaztron_write_r)
581572{
582573   // R0-R5: input mux
r244949r244950
598589   amaztron_display();
599590}
600591
592READ8_MEMBER(hh_tms1k_state::amaztron_read_k)
593{
594   UINT8 k = read_inputs(6);
601595
596   // the 5th column is tied to K4+K8
597   if (k & 0x10) k |= 0xc;
598   return k & 0xf;
599}
600
601
602602static INPUT_PORTS_START( amaztron )
603603   PORT_START("IN.0") // R0
604604   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_NAME("Button 1")
r244949r244950
711711   display_matrix(9, 10, (m_o | (m_r << 2 & 0x100)), m_r);
712712}
713713
714READ8_MEMBER(hh_tms1k_state::tc4_read_k)
715{
716   UINT8 k = read_inputs(6);
717
718   // read from cartridge
719   if (m_inp_mux & 0x200)
720      k |= m_inp_matrix[6]->read();
721
722   return k;
723}
724
725714WRITE16_MEMBER(hh_tms1k_state::tc4_write_r)
726715{
727716   // R10: speaker out
r244949r244950
744733   tc4_display();
745734}
746735
736READ8_MEMBER(hh_tms1k_state::tc4_read_k)
737{
738   UINT8 k = read_inputs(6);
747739
740   // read from cartridge
741   if (m_inp_mux & 0x200)
742      k |= m_inp_matrix[6]->read();
743
744   return k;
745}
746
747
748748static INPUT_PORTS_START( tc4 )
749749   PORT_START("IN.0") // R0
750750   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Pass/Shoot Button 3") // right
r244949r244950
853853   display_matrix(7, 9, ~m_o, m_r);
854854}
855855
856READ8_MEMBER(hh_tms1k_state::ebball_read_k)
857{
858   // note: K8(Vss row) is always on
859   return m_inp_matrix[5]->read() | read_inputs(5);
860}
861
862856WRITE16_MEMBER(hh_tms1k_state::ebball_write_r)
863857{
864858   // R1-R5: input mux
r244949r244950
880874   ebball_display();
881875}
882876
877READ8_MEMBER(hh_tms1k_state::ebball_read_k)
878{
879   // note: K8(Vss row) is always on
880   return m_inp_matrix[5]->read() | read_inputs(5);
881}
883882
883
884884static INPUT_PORTS_START( ebball )
885885   PORT_START("IN.0") // R1
886886   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Change Up")
r244949r244950
989989   display_update();
990990}
991991
992READ8_MEMBER(hh_tms1k_state::ebball3_read_k)
993{
994   return read_inputs(3);
995}
996
997992WRITE16_MEMBER(hh_tms1k_state::ebball3_write_r)
998993{
999994   // R0-R2: input mux
r244949r244950
10151010   ebball3_display();
10161011}
10171012
1013READ8_MEMBER(hh_tms1k_state::ebball3_read_k)
1014{
1015   return read_inputs(3);
1016}
10181017
1018
10191019/* physical button layout and labels is like this:
10201020
10211021    main device (batter side):            remote pitcher:
r244949r244950
11131113
11141114***************************************************************************/
11151115
1116READ8_MEMBER(hh_tms1k_state::elecdet_read_k)
1117{
1118   // note: the Vss row is always on
1119   return m_inp_matrix[4]->read() | read_inputs(4);
1120}
1121
11221116WRITE16_MEMBER(hh_tms1k_state::elecdet_write_r)
11231117{
11241118   // R7,R8: speaker on
r244949r244950
11411135   m_o = data;
11421136}
11431137
1138READ8_MEMBER(hh_tms1k_state::elecdet_read_k)
1139{
1140   // note: the Vss row is always on
1141   return m_inp_matrix[4]->read() | read_inputs(4);
1142}
11441143
1144
11451145/* physical button layout and labels is like this:
11461146
11471147    [1]   [2]   [3]   [SUSPECT]
r244949r244950
12331233   display_matrix(8, 10, m_o, m_r);
12341234}
12351235
1236READ8_MEMBER(hh_tms1k_state::starwbc_read_k)
1237{
1238   return read_inputs(5);
1239}
1240
12411236WRITE16_MEMBER(hh_tms1k_state::starwbc_write_r)
12421237{
12431238   // R0,R1,R3,R5,R7: input mux
r244949r244950
12581253   starwbc_display();
12591254}
12601255
1256READ8_MEMBER(hh_tms1k_state::starwbc_read_k)
1257{
1258   return read_inputs(5);
1259}
12611260
1261
12621262/* physical button layout and labels is like this:
12631263
12641264    (reconnnaissance=yellow)        (tactical reaction=green)
r244949r244950
13391339
13401340***************************************************************************/
13411341
1342READ8_MEMBER(hh_tms1k_state::comp4_read_k)
1343{
1344   return read_inputs(3);
1345}
1346
13471342WRITE16_MEMBER(hh_tms1k_state::comp4_write_r)
13481343{
13491344   // leds:
r244949r244950
13671362   display_matrix(11, 1, m_r, m_o);
13681363}
13691364
1365READ8_MEMBER(hh_tms1k_state::comp4_read_k)
1366{
1367   return read_inputs(3);
1368}
13701369
1370
13711371static INPUT_PORTS_START( comp4 )
13721372   PORT_START("IN.0") // O1
13731373   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME("R")
r244949r244950
14221422
14231423***************************************************************************/
14241424
1425READ8_MEMBER(hh_tms1k_state::simon_read_k)
1426{
1427   return read_inputs(4);
1428}
1429
14301425WRITE16_MEMBER(hh_tms1k_state::simon_write_r)
14311426{
14321427   // R4-R8 go through an 75494 IC first:
r244949r244950
14501445   // N/C
14511446}
14521447
1448READ8_MEMBER(hh_tms1k_state::simon_read_k)
1449{
1450   return read_inputs(4);
1451}
14531452
1453
14541454static INPUT_PORTS_START( simon )
14551455   PORT_START("IN.0") // R0
14561456   PORT_CONFNAME( 0x07, 0x02, "Game Select")
r244949r244950
15141514
15151515***************************************************************************/
15161516
1517READ8_MEMBER(hh_tms1k_state::cnsector_read_k)
1518{
1519   return read_inputs(5);
1520}
1521
15221517WRITE16_MEMBER(hh_tms1k_state::cnsector_write_r)
15231518{
15241519   m_display_maxx = 8;
r244949r244950
15461541   m_o = data;
15471542}
15481543
1544READ8_MEMBER(hh_tms1k_state::cnsector_read_k)
1545{
1546   return read_inputs(5);
1547}
15491548
1549
15501550static INPUT_PORTS_START( cnsector )
15511551   PORT_START("IN.0") // O0
15521552   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Next Ship")
r244949r244950
16221622
16231623***************************************************************************/
16241624
1625READ8_MEMBER(hh_tms1k_state::merlin_read_k)
1626{
1627   return read_inputs(4);
1628}
1629
16301625WRITE16_MEMBER(hh_tms1k_state::merlin_write_r)
16311626{
16321627   /* leds:
r244949r244950
16511646   m_inp_mux = data & 0xf;
16521647}
16531648
1649READ8_MEMBER(hh_tms1k_state::merlin_read_k)
1650{
1651   return read_inputs(4);
1652}
16541653
1654
16551655static INPUT_PORTS_START( merlin )
16561656   PORT_START("IN.0") // O0
16571657   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("Button 0")
r244949r244950
17161716
17171717***************************************************************************/
17181718
1719READ8_MEMBER(hh_tms1k_state::stopthief_read_k)
1720{
1721   // note: the Vss row is always on
1722   return m_inp_matrix[2]->read() | read_inputs(2);
1723}
1724
17251719WRITE16_MEMBER(hh_tms1k_state::stopthief_write_r)
17261720{
17271721   m_display_maxx = 7;
r244949r244950
17511745   m_o = data;
17521746}
17531747
1748READ8_MEMBER(hh_tms1k_state::stopthief_read_k)
1749{
1750   // note: the Vss row is always on
1751   return m_inp_matrix[2]->read() | read_inputs(2);
1752}
17541753
1754
17551755/* physical button layout and labels is like this:
17561756
17571757    [1] [2] [OFF]
r244949r244950
18241824
18251825***************************************************************************/
18261826
1827READ8_MEMBER(hh_tms1k_state::bankshot_read_k)
1828{
1829   return read_inputs(2);
1830}
1831
18321827WRITE16_MEMBER(hh_tms1k_state::bankshot_write_r)
18331828{
18341829   // R0: speaker out
r244949r244950
18501845   display_matrix(7, 11, m_o, m_r);
18511846}
18521847
1848READ8_MEMBER(hh_tms1k_state::bankshot_read_k)
1849{
1850   return read_inputs(2);
1851}
18531852
1853
18541854/* physical button layout and labels is like this:
18551855  (note: remember that you can rotate the display in MESS)
18561856
r244949r244950
19311931
19321932***************************************************************************/
19331933
1934READ8_MEMBER(hh_tms1k_state::splitsec_read_k)
1935{
1936   return read_inputs(2);
1937}
1938
19391934WRITE16_MEMBER(hh_tms1k_state::splitsec_write_r)
19401935{
19411936   // R8: speaker out
r244949r244950
19571952   display_matrix(7, 8, m_o, m_r);
19581953}
19591954
1955READ8_MEMBER(hh_tms1k_state::splitsec_read_k)
1956{
1957   return read_inputs(2);
1958}
1959
1960
19601961static INPUT_PORTS_START( splitsec )
19611962   PORT_START("IN.0") // R9
19621963   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY // 4 separate directional buttons, hence 16way
r244949r244950
20212022   display_matrix(13, 1, (m_o << 1 & 0x1fe) | (m_r << 9 & 0x1e00), 1);
20222023}
20232024
2024READ8_MEMBER(hh_tms1k_state::tandy12_read_k)
2025{
2026   return read_inputs(5);
2027}
2028
20292025WRITE16_MEMBER(hh_tms1k_state::tandy12_write_r)
20302026{
20312027   // R10: speaker out
r244949r244950
20452041   tandy12_display();
20462042}
20472043
2044READ8_MEMBER(hh_tms1k_state::tandy12_read_k)
2045{
2046   return read_inputs(5);
2047}
20482048
2049
20492050/* physical button layout and labels is like this:
20502051
20512052        REPEAT-2              SPACE-2
trunk/src/mess/drivers/hh_ucom4.c
r244949r244950
7979
8080   // game-specific handlers
8181   void ssfball_display();
82   DECLARE_READ8_MEMBER(ssfball_input_b_r);
8382   DECLARE_WRITE8_MEMBER(ssfball_grid_w);
8483   DECLARE_WRITE8_MEMBER(ssfball_plate_w);
84   DECLARE_READ8_MEMBER(ssfball_input_b_r);
8585
8686   void splasfgt_display();
87   DECLARE_READ8_MEMBER(splasfgt_input_b_r);
8887   DECLARE_WRITE8_MEMBER(splasfgt_grid_w);
8988   DECLARE_WRITE8_MEMBER(splasfgt_plate_w);
89   DECLARE_READ8_MEMBER(splasfgt_input_b_r);
9090
9191   void astrocmd_display();
9292   DECLARE_WRITE8_MEMBER(astrocmd_grid_w);
r244949r244950
9595   DECLARE_WRITE8_MEMBER(edracula_grid_w);
9696   DECLARE_WRITE8_MEMBER(edracula_plate_w);
9797   
98   DECLARE_READ8_MEMBER(tmtennis_input_r);
9998   DECLARE_WRITE8_MEMBER(tmtennis_grid_w);
10099   DECLARE_WRITE8_MEMBER(tmtennis_plate_w);
101100   DECLARE_WRITE8_MEMBER(tmtennis_port_e_w);
101   DECLARE_READ8_MEMBER(tmtennis_input_r);
102102   void tmtennis_set_clock();
103103   DECLARE_INPUT_CHANGED_MEMBER(tmtennis_difficulty_switch);
104104   DECLARE_MACHINE_RESET(tmtennis);
r244949r244950
107107   DECLARE_WRITE8_MEMBER(tmpacman_grid_w);
108108   DECLARE_WRITE8_MEMBER(tmpacman_plate_w);
109109   
110   DECLARE_WRITE8_MEMBER(alnchase_output_w);
110111   DECLARE_READ8_MEMBER(alnchase_input_r);
111   DECLARE_WRITE8_MEMBER(alnchase_output_w);
112112};
113113
114114
r244949r244950
253253   display_matrix(16, 9, plate, m_grid);
254254}
255255
256READ8_MEMBER(hh_ucom4_state::ssfball_input_b_r)
257{
258   // B: input port 2, where B3 is multiplexed
259   return m_inp_matrix[2]->read() | read_inputs(2);
260}
261
262256WRITE8_MEMBER(hh_ucom4_state::ssfball_grid_w)
263257{
264258   // C,D(,E): vfd matrix grid 0-7(,8)
r244949r244950
287281      ssfball_display();
288282}
289283
284READ8_MEMBER(hh_ucom4_state::ssfball_input_b_r)
285{
286   // B: input port 2, where B3 is multiplexed
287   return m_inp_matrix[2]->read() | read_inputs(2);
288}
290289
290
291291static INPUT_PORTS_START( ssfball )
292292   PORT_START("IN.0") // F3 port B3
293293   PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
r244949r244950
362362   display_matrix(16, 9, plate, m_grid);
363363}
364364
365READ8_MEMBER(hh_ucom4_state::splasfgt_input_b_r)
366{
367   // B: multiplexed buttons
368   return read_inputs(4);
369}
370
371365WRITE8_MEMBER(hh_ucom4_state::splasfgt_grid_w)
372366{
373367   // G,H,I0: vfd matrix grid
r244949r244950
397391   ssfball_display();
398392}
399393
394READ8_MEMBER(hh_ucom4_state::splasfgt_input_b_r)
395{
396   // B: multiplexed buttons
397   return read_inputs(4);
398}
400399
400
401401/* physical button layout and labels is like this:
402402   
403403    * left = P1 side *                                         * right = P2 side * (note: in 1P mode, switch sides between turns)
r244949r244950
674674
675675***************************************************************************/
676676
677READ8_MEMBER(hh_ucom4_state::tmtennis_input_r)
678{
679   // A,B: multiplexed buttons
680   return ~read_inputs(2) >> (offset*4);
681}
682
683677WRITE8_MEMBER(hh_ucom4_state::tmtennis_grid_w)
684678{
685679   // G,H,I: vfd matrix grid
r244949r244950
708702   m_speaker->level_w(data >> 2 & 1);
709703}
710704
705READ8_MEMBER(hh_ucom4_state::tmtennis_input_r)
706{
707   // A,B: multiplexed buttons
708   return ~read_inputs(2) >> (offset*4);
709}
711710
711
712712/* Pro-Tennis physical button layout and labels is like this:
713713   
714714    * left = P2/CPU side *    * right = P1 side *
r244949r244950
910910
911911***************************************************************************/
912912
913READ8_MEMBER(hh_ucom4_state::alnchase_input_r)
914{
915   // A: buttons
916   return read_inputs(2);
917}
918
919913WRITE8_MEMBER(hh_ucom4_state::alnchase_output_w)
920914{
921915   if (offset <= NEC_UCOM4_PORTE)
r244949r244950
943937   display_matrix(17, 9, m_plate, m_grid);
944938}
945939
940READ8_MEMBER(hh_ucom4_state::alnchase_input_r)
941{
942   // A: buttons
943   return read_inputs(2);
944}
946945
946
947947/* physical button layout and labels is like this:
948948
949949    POWER SOUND LEVEL PLAYER
trunk/src/mess/drivers/ticalc1x.c
r244949r244950
7070   void display_matrix_seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 segmask);
7171   
7272   // calculator-specific handlers
73   DECLARE_READ8_MEMBER(tisr16_read_k);
73   void tisr16_display_update();
7474   DECLARE_WRITE16_MEMBER(tisr16_write_o);
7575   DECLARE_WRITE16_MEMBER(tisr16_write_r);
76   void tisr16_display_update();
76   DECLARE_READ8_MEMBER(tisr16_read_k);
7777
78   DECLARE_READ8_MEMBER(ti1270_read_k);
7978   DECLARE_WRITE16_MEMBER(ti1270_write_o);
8079   DECLARE_WRITE16_MEMBER(ti1270_write_r);
80   DECLARE_READ8_MEMBER(ti1270_read_k);
8181
82   DECLARE_READ8_MEMBER(wizatron_read_k);
8382   DECLARE_WRITE16_MEMBER(wizatron_write_o);
8483   DECLARE_WRITE16_MEMBER(wizatron_write_r);
84   DECLARE_READ8_MEMBER(wizatron_read_k);
8585
86   DECLARE_READ8_MEMBER(lilprof_read_k);
8786   DECLARE_WRITE16_MEMBER(lilprof_write_o);
8887   DECLARE_WRITE16_MEMBER(lilprof_write_r);
88   DECLARE_READ8_MEMBER(lilprof_read_k);
8989
90   DECLARE_READ8_MEMBER(ti30_read_k);
9190   DECLARE_WRITE16_MEMBER(ti30_write_o);
9291   DECLARE_WRITE16_MEMBER(ti30_write_r);
92   DECLARE_READ8_MEMBER(ti30_read_k);
9393};
9494
9595
r244949r244950
262262   display_update();
263263}
264264
265READ8_MEMBER(ticalc1x_state::tisr16_read_k)
266{
267   return read_inputs(11);
268}
269
270265WRITE16_MEMBER(ticalc1x_state::tisr16_write_r)
271266{
272267   // R0-R10: input mux
r244949r244950
282277   tisr16_display_update();
283278}
284279
280READ8_MEMBER(ticalc1x_state::tisr16_read_k)
281{
282   return read_inputs(11);
283}
285284
285
286286static INPUT_PORTS_START( tisr16 )
287287   PORT_START("IN.0") // R0
288288   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
r244949r244950
379379
380380***************************************************************************/
381381
382READ8_MEMBER(ticalc1x_state::ti1270_read_k)
383{
384   return read_inputs(6);
385}
386
387382WRITE16_MEMBER(ticalc1x_state::ti1270_write_r)
388383{
389384   // R0-R7: select digit (right-to-left)
r244949r244950
398393   m_o = data;
399394}
400395
396READ8_MEMBER(ticalc1x_state::ti1270_read_k)
397{
398   return read_inputs(6);
399}
401400
401
402402static INPUT_PORTS_START( ti1270 )
403403   PORT_START("IN.0") // O1
404404   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_NAME("CE/C")
r244949r244950
465465
466466***************************************************************************/
467467
468READ8_MEMBER(ticalc1x_state::wizatron_read_k)
469{
470   return read_inputs(4);
471}
472
473468WRITE16_MEMBER(ticalc1x_state::wizatron_write_r)
474469{
475470   // note: 6th digit is custom(not 7seg), for math symbols, and 3rd digit
r244949r244950
489484   m_o = data & 0x7f;
490485}
491486
487READ8_MEMBER(ticalc1x_state::wizatron_read_k)
488{
489   return read_inputs(4);
490}
492491
492
493493static INPUT_PORTS_START( wizatron )
494494   PORT_START("IN.0") // O1
495495   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME("CLEAR")
r244949r244950
544544
545545***************************************************************************/
546546
547READ8_MEMBER(ticalc1x_state::lilprof_read_k)
548{
549   return read_inputs(5);
550}
551
552547WRITE16_MEMBER(ticalc1x_state::lilprof_write_r)
553548{
554549   // update leds state
r244949r244950
578573   m_o = data;
579574}
580575
576READ8_MEMBER(ticalc1x_state::lilprof_read_k)
577{
578   return read_inputs(5);
579}
581580
581
582582static INPUT_PORTS_START( lilprof )
583583   PORT_START("IN.0") // O0
584584   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
r244949r244950
642642
643643***************************************************************************/
644644
645READ8_MEMBER(ticalc1x_state::ti30_read_k)
646{
647   // note: the Vss row is always on
648   return m_inp_matrix[7]->read() | read_inputs(7);
649}
650
651645WRITE16_MEMBER(ticalc1x_state::ti30_write_r)
652646{
653647   // note: 1st digit only has segments B,F,G,DP
r244949r244950
665659   m_o = data;
666660}
667661
662READ8_MEMBER(ticalc1x_state::ti30_read_k)
663{
664   // note: the Vss row is always on
665   return m_inp_matrix[7]->read() | read_inputs(7);
666}
668667
668
669669static INPUT_PORTS_START( ti30 )
670670   PORT_START("IN.0") // O0
671671   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_NAME("y" UTF8_POW_X)


Previous 199869 Revisions Next


© 1997-2024 The MAME Team