Previous 199869 Revisions Next

r34970 Wednesday 11th February, 2015 at 22:30:05 UTC by hap
tmtennis inputs and notes
[src/emu/cpu/amis2000]amis2000.h
[src/emu/cpu/ucom4]ucom4op.inc
[src/mess/drivers]tmtennis.c

trunk/src/emu/cpu/amis2000/amis2000.h
r243481r243482
7878   UINT16 m_callstack_mask;
7979   UINT8 m_callstack_depth;    // callstack levels: 3 on 2000/2150, 5 on 2200/2400
8080   UINT16 m_callstack[5+1];    // max 5
81
81   int m_icount;
8282   UINT16 m_pc;                // 13-bit program counter
8383   UINT8 m_ppr;                // prepared page register (PP 1)
8484   UINT8 m_pbr;                // prepared bank register (PP 2)
r243481r243482
9898   UINT8 m_d_polarity;         // invert d-latch output
9999   UINT16 m_a;                 // 13-bit a-pins latch (master strobe latch)
100100
101   // i/o handlers
101102   devcb_read8 m_read_k;
102103   devcb_read8 m_read_i;
103104   devcb_read8 m_read_d;
104105   devcb_write8 m_write_d;
105106   devcb_write16 m_write_a;
106
107   int m_icount;
108107   
108   // misc internal helpers
109109   UINT8 ram_r();
110110   void ram_w(UINT8 data);
111111   void pop_callstack();
112112   void push_callstack();
113113   void d_latch_out(bool active);
114114   
115   // opcode handlers
115116   void op_lai();
116117   void op_lab();
117118   void op_lae();
trunk/src/emu/cpu/ucom4/ucom4op.inc
r243481r243482
713713   
714714   // STM X: Reset Timer F/F, Start Timer with X
715715   op_illegal();
716
717   if ((m_arg & 0xc0) != 0x80)
718      logerror("%s STM opcode unexpected upper arg $%02X at $%03X\n", tag(), m_arg & 0xc0, m_pc);
716719}
717720
718721void ucom4_cpu_device::op_ttm()
trunk/src/mess/drivers/tmtennis.c
r243481r243482
66  * board labeled TOMY TN-04 TENNIS
77  * NEC uCOM-44 MCU, labeled D552C 048
88  * VFD display NEC FIP11AM15T (FIP=fluorescent indicator panel)
9 
10  The initial release of this game was in 1979, known as Pro-Tennis,
11  it is unknown if the hardware and/or ROM contents differ.
12 
913
14  TODO:
15  - 2-player mode doesn't work: the guys auto-serve and the left player
16    always hits the net, mcu emulation bug?
17  - difficulty switch changes mcu freq
1018
1119***************************************************************************/
1220
r243481r243482
8795
8896   // read selected button rows
8997   for (int i = 0; i < 2; i++)
90      if (~m_input_mux & (1 << i))
98      if (~m_input_mux >> i & 1)
9199         inp &= m_button_matrix[i]->read();
92100
93101   return inp >> (offset*4);
r243481r243482
122130}
123131
124132
133
125134/***************************************************************************
126135
127136  Inputs
128137
129138***************************************************************************/
130139
140/* Pro-Tennis physical button layout and labels is like this:
141
142    [SERVE] [1] [2] [3]       [3] [2] [1] [SERVE]
143            [4] [5] [6]       [6] [5] [4]
144
145    PRACTICE<--PRO1-->PRO2    1PLAYER<--OFF-->2PLAYER
146*/
147
131148static INPUT_PORTS_START( tmtennis )
132   PORT_START("IN.0") // E0 port A/B
133   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
134   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
135   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
149   PORT_START("IN.0") // E0 port A/B (left side)
150   PORT_CONFNAME( 0x101, 0x001, DEF_STR( Difficulty ) )
151   PORT_CONFSETTING(     0x000, "Practice" )
152   PORT_CONFSETTING(     0x001, "Pro 1" )
153   PORT_CONFSETTING(     0x101, "Pro 2" )
154   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) // P2 serve
155   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
136156   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
137   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2)
138   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2)
139   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(2)
140   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER(2)
157   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
158   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2)
159   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
160   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2)
141161
142   PORT_START("IN.1") // E1 port A/B
143   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
144   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
145   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
162   PORT_START("IN.1") // E1 port A/B (right side)
163   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) // P1 serve
164   PORT_CONFNAME( 0x02, 0x02, "Players" )
165   PORT_CONFSETTING(    0x02, "1" )
166   PORT_CONFSETTING(    0x00, "2" )
167   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 )
146168   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 )
147   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 )
148   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 )
149   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 )
150   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON8 )
169   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 )
170   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 )
171   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
172   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 )
151173INPUT_PORTS_END
152174
153175
r243481r243482
212234ROM_END
213235
214236
215CONS( 1980, tmtennis, 0, 0, tmtennis, tmtennis, driver_device, 0, "Tomy", "Tomytronic Tennis", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
237CONS( 1980, tmtennis, 0, 0, tmtennis, tmtennis, driver_device, 0, "Tomy", "Tennis (Tomytronic)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )


Previous 199869 Revisions Next


© 1997-2024 The MAME Team