Previous 199869 Revisions Next

r36350 Monday 9th March, 2015 at 21:53:19 UTC by hap
added ebball3 i/o
[src/mess/drivers]hh_tms1k.c

trunk/src/mess/drivers/hh_tms1k.c
r244861r244862
1313--------------------------------------------------------------------
1414 @CP0904A  TMS0970  1977, Milton Bradley Comp IV
1515 @MP0905B  TMS0970  1977, Parker Brothers Codename Sector
16 *MP0168   TMS1000? 1979, Conic Basketball
1617 @MP0914   TMS1000  1979, Entex Baseball 1
1718 @MP1030   TMS1100  1980, APF Mathemagician
1819 @MP1204   TMS1100  1980, Entex Baseball 3
r244861r244862
3435  MP3496   TMS1100  1980, MicroVision cartridge: Sea Duel
3536 @MP6100A  TMS0980  1979, Ideal Electronic Detective
3637 @MP6101B  TMS0980  1979, Parker Brothers Stop Thief
38 *MP6361   ?        1983, Defender Strikes
3739 *MP7303   TMS1400? 19??, Tiger 7-in-1 Sports Stadium
3840 @MP7313   TMS1400  1980, Parker Brothers Bank Shot
3941 @MP7314   TMS1400  1980, Parker Brothers Split Second
r244861r244862
151153   DECLARE_WRITE16_MEMBER(ebball_write_r);
152154   DECLARE_WRITE16_MEMBER(ebball_write_o);
153155
156   void ebball3_display();
157   DECLARE_READ8_MEMBER(ebball3_read_k);
158   DECLARE_WRITE16_MEMBER(ebball3_write_r);
159   DECLARE_WRITE16_MEMBER(ebball3_write_o);
160
154161   DECLARE_READ8_MEMBER(elecdet_read_k);
155162   DECLARE_WRITE16_MEMBER(elecdet_write_r);
156163   DECLARE_WRITE16_MEMBER(elecdet_write_o);
r244861r244862
899906   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Batter")
900907INPUT_PORTS_END
901908
909
902910static MACHINE_CONFIG_START( ebball, hh_tms1k_state )
903911
904912   /* basic machine hardware */
r244861r244862
926934/***************************************************************************
927935
928936  Entex Electronic Baseball 3
937  * boards are labeled: Zeny
929938  * TMS1100NLL 6007 MP1204 (die labeled MP1204)
939  * 2*SN75492N LED display driver
930940
941
942  lamp translation table: led zz from game PCB = MESS lampyx:
943  note: unlabeled panel leds are listed here as Sz, Bz, Oz, Iz, z left-to-right
944 
945    00 = -        10 = lamp75   20 = lamp72
946    01 = lamp60   11 = lamp65   21 = lamp84
947    02 = lamp61   12 = lamp55   22 = lamp85
948    03 = lamp62   13 = lamp52   23 = lamp90
949    04 = lamp63   14 = lamp80   24 = lamp92
950    05 = lamp73   15 = lamp81   25 = lamp91
951    06 = lamp53   16 = lamp51   26 = lamp93
952    07 = lamp74   17 = lamp82   27 = lamp95
953    08 = lamp64   18 = lamp83   28 = lamp94
954    09 = lamp54   19 = lamp50
955
956    S1,S2: lamp40,41
957    B1-B3: lamp30-32
958    O1,O2: lamp42,43
959    I1-I6: lamp20-25, I7-I9: lamp33-35
960
931961***************************************************************************/
932962
963void hh_tms1k_state::ebball3_display()
964{
965   m_display_maxx = 7;
966   m_display_maxy = 10+2;
967
968   // update current state
969   for (int y = 0; y < 10; y++)
970      m_display_state[y] = (m_r >> y & 1) ? m_o : 0;
971
972   // R0,R1 are normal 7segs
973   m_7seg_mask[0] = m_7seg_mask[1] = 0x7f;
974   
975   // R4,R7 contain segments(only F and B) for the two other digits
976   m_display_state[10] = (m_display_state[4] & 0x20) | (m_display_state[7] & 0x02);
977   m_display_state[11] = ((m_display_state[4] & 0x10) | (m_display_state[7] & 0x01)) << 1;
978   m_7seg_mask[10] = m_7seg_mask[11] = 0x22;
979   
980   display_update();
981}
982
983READ8_MEMBER(hh_tms1k_state::ebball3_read_k)
984{
985   //printf("%X ",m_r);
986
987   return read_inputs(3);
988}
989
990WRITE16_MEMBER(hh_tms1k_state::ebball3_write_r)
991{
992   // R0-R2: input mux
993   m_inp_mux = data & 7;
994   
995   // R10: speaker out
996   m_speaker->level_w(data >> 10 & 1);
997   
998   // R0-R9: led columns
999   m_r = data;
1000   ebball3_display();
1001}
1002
1003WRITE16_MEMBER(hh_tms1k_state::ebball3_write_o)
1004{
1005   // O0-O6: led row
1006   // O7: N/C
1007   m_o = data & 0x7f;
1008   ebball3_display();
1009}
1010
1011
9331012static INPUT_PORTS_START( ebball3 )
1013   PORT_START("IN.0") // R0
1014   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
1015   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 )
1016   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 )
1017   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 )
1018
1019   PORT_START("IN.1") // R1
1020   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 )
1021   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON6 )
1022   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON7 )
1023   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON8 )
1024
1025   PORT_START("IN.2") // R2
1026   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON10 )
1027//   PORT_CONFNAME( 0x01, 0x01, "Pitcher" )
1028//   PORT_CONFSETTING(    0x01, "Auto" )
1029//   PORT_CONFSETTING(    0x00, "Manual" )
1030   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON9 )
1031//   PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
1032   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
1033   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
9341034INPUT_PORTS_END
9351035
9361036
r244861r244862
9381038
9391039   /* basic machine hardware */
9401040   MCFG_CPU_ADD("maincpu", TMS1100, 425000) // RC osc. R=47K, C=33pf -> ~425kHz
941//   MCFG_TMS1XXX_READ_K_CB(READ8(hh_tms1k_state, ebball3_read_k))
942//   MCFG_TMS1XXX_WRITE_R_CB(WRITE16(hh_tms1k_state, ebball3_write_r))
943//   MCFG_TMS1XXX_WRITE_O_CB(WRITE16(hh_tms1k_state, ebball3_write_o))
1041   MCFG_TMS1XXX_READ_K_CB(READ8(hh_tms1k_state, ebball3_read_k))
1042   MCFG_TMS1XXX_WRITE_R_CB(WRITE16(hh_tms1k_state, ebball3_write_r))
1043   MCFG_TMS1XXX_WRITE_O_CB(WRITE16(hh_tms1k_state, ebball3_write_o))
9441044
945//   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
1045   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
9461046   MCFG_DEFAULT_LAYOUT(layout_ebball3)
9471047
9481048   /* no video! */


Previous 199869 Revisions Next


© 1997-2024 The MAME Team