Previous 199869 Revisions Next

r31507 Monday 4th August, 2014 at 13:04:19 UTC by Robbbert
st_mp200: WIP
[src/mame/drivers]st_mp100.c st_mp200.c

trunk/src/mame/drivers/st_mp100.c
r31506r31507
9090   AM_RANGE(0x0000, 0x007f) AM_RAM // internal to the cpu
9191   AM_RANGE(0x0088, 0x008b) AM_DEVREADWRITE("pia_u10", pia6821_device, read, write)
9292   AM_RANGE(0x0090, 0x0093) AM_DEVREADWRITE("pia_u11", pia6821_device, read, write)
93   AM_RANGE(0x00a0, 0x00bf) // to sound board
93   AM_RANGE(0x00a0, 0x00bf) AM_WRITENOP // to sound board
9494   AM_RANGE(0x00c0, 0x00df) // to sound board
9595   AM_RANGE(0x0200, 0x02ff) AM_RAM AM_SHARE("nvram")
9696   AM_RANGE(0x1000, 0x1fff) AM_ROM AM_REGION("roms", 0 )
trunk/src/mame/drivers/st_mp200.c
r31506r31507
77
88ToDo:
99- Display to fix
10- Sound
10- Sound - All machines have a B605/C605 sound card containing a 6840 and many other chips
11- Sound - Games 126,128-151,165 have a A720 voice synthesizer with a 'CRC' CPU and many other chips
1112- Dips, Inputs, Solenoids vary per game
1213- Mechanical
1314
r31506r31507
1718#include "machine/genpin.h"
1819#include "cpu/m6800/m6800.h"
1920#include "machine/6821pia.h"
21#include "sound/s14001a.h"
2022#include "st_mp200.lh"
2123
24#define S14001_CLOCK                (25e5)
2225
2326class st_mp200_state : public genpin_class
2427{
r31506r31507
2629   st_mp200_state(const machine_config &mconfig, device_type type, const char *tag)
2730      : genpin_class(mconfig, type, tag)
2831      , m_maincpu(*this, "maincpu")
32      , m_s14001a(*this, "speech")
2933      , m_pia_u10(*this, "pia_u10")
3034      , m_pia_u11(*this, "pia_u11")
3135      , m_io_test(*this, "TEST")
r31506r31507
4145   { }
4246
4347   DECLARE_DRIVER_INIT(st_mp200);
48   DECLARE_DRIVER_INIT(st_mp201);
4449   DECLARE_READ8_MEMBER(u10_a_r);
4550   DECLARE_WRITE8_MEMBER(u10_a_w);
4651   DECLARE_READ8_MEMBER(u10_b_r);
r31506r31507
6671   bool m_u10_cb2;
6772   bool m_u10_timer;
6873   bool m_u11_timer;
74   bool m_su; // speech unit fitted yes/no
6975   UINT8 m_digit;
7076   UINT8 m_segment;
7177   virtual void machine_reset();
7278   required_device<m6800_cpu_device> m_maincpu;
79   optional_device<s14001a_device> m_s14001a;
7380   required_device<pia6821_device> m_pia_u10;
7481   required_device<pia6821_device> m_pia_u11;
7582   required_ioport m_io_test;
r31506r31507
9097   AM_RANGE(0x0000, 0x007f) AM_RAM // internal to the cpu
9198   AM_RANGE(0x0088, 0x008b) AM_DEVREADWRITE("pia_u10", pia6821_device, read, write)
9299   AM_RANGE(0x0090, 0x0093) AM_DEVREADWRITE("pia_u11", pia6821_device, read, write)
100   AM_RANGE(0x00a0, 0x00bf) AM_WRITENOP // to sound board
101   AM_RANGE(0x00c0, 0x00df) // to sound board
93102   AM_RANGE(0x0200, 0x02ff) AM_RAM AM_SHARE("nvram")
94103   AM_RANGE(0x1000, 0xffff) AM_ROM //AM_REGION("roms", 0 )
95104ADDRESS_MAP_END
96105
97static INPUT_PORTS_START( st_mp200 )
106static INPUT_PORTS_START( mp200 )
98107   PORT_START("TEST")
99108   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Self Test") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, st_mp200_state, self_test, 0)
100109   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Activity") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, st_mp200_state, activity_test, 0)
101110
102111   PORT_START("DSW0")
103   PORT_DIPNAME( 0x01, 0x00, "S01") // S1-5: 32 combinations of coins/credits of a coin slot. S9-13 other slot.
112   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 2")
113   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C )) // same as 01
114   PORT_DIPSETTING(    0x02, DEF_STR( 1C_1C ))
115   PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ))
116   PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ))
117   PORT_DIPSETTING(    0x05, DEF_STR( 2C_2C ))
118   PORT_DIPSETTING(    0x06, DEF_STR( 1C_3C ))
119   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ))
120   PORT_DIPSETTING(    0x08, DEF_STR( 1C_4C ))
121   PORT_DIPSETTING(    0x09, DEF_STR( 2C_4C ))
122   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_5C ))
123   PORT_DIPSETTING(    0x0b, DEF_STR( 2C_5C ))
124   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_6C ))
125   PORT_DIPSETTING(    0x0d, DEF_STR( 2C_6C ))
126   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_7C ))
127   PORT_DIPSETTING(    0x0f, DEF_STR( 2C_7C ))
128   PORT_DIPSETTING(    0x10, DEF_STR( 1C_8C ))
129   PORT_DIPSETTING(    0x11, DEF_STR( 2C_8C ))
130   PORT_DIPSETTING(    0x12, DEF_STR( 1C_9C ))
131   PORT_DIPSETTING(    0x13, "2 coins 9 credits")
132   PORT_DIPSETTING(    0x14, "1 coin 10 credits")
133   PORT_DIPSETTING(    0x15, "2 coins 10 credits")
134   PORT_DIPSETTING(    0x16, "1 coin 11 credits")
135   PORT_DIPSETTING(    0x17, "2 coins 11 credits")
136   PORT_DIPSETTING(    0x18, "1 coin 12 credits")
137   PORT_DIPSETTING(    0x19, "2 coins 12 credits")
138   PORT_DIPSETTING(    0x1a, "1 coin 13 credits")
139   PORT_DIPSETTING(    0x1b, "2 coins 13 credits")
140   PORT_DIPSETTING(    0x1c, "1 coin 14 credits")
141   PORT_DIPSETTING(    0x1d, "2 coins 14 credits")
142   PORT_DIPSETTING(    0x1e, "1 coin 15 credits")
143   PORT_DIPSETTING(    0x1f, "2 coins 15 credits")
144   PORT_DIPNAME( 0x20, 0x20, "Award")
145   PORT_DIPSETTING(    0x00, "Extra Ball")
146   PORT_DIPSETTING(    0x20, "Free Game")
147   PORT_DIPNAME( 0x40, 0x00, "Balls")
148   PORT_DIPSETTING(    0x00, "3")
149   PORT_DIPSETTING(    0x40, "5")
150   PORT_DIPNAME( 0x80, 0x00, "Play melody always")
104151   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
105   PORT_DIPSETTING(    0x01, DEF_STR( On ))
106   PORT_DIPNAME( 0x02, 0x00, "S02")
107   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
108   PORT_DIPSETTING(    0x02, DEF_STR( On ))
109   PORT_DIPNAME( 0x04, 0x00, "S03")
110   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
111   PORT_DIPSETTING(    0x04, DEF_STR( On ))
112   PORT_DIPNAME( 0x08, 0x00, "S04")
113   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
114   PORT_DIPSETTING(    0x08, DEF_STR( On ))
115   PORT_DIPNAME( 0x10, 0x00, "S05")
116   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
117   PORT_DIPSETTING(    0x10, DEF_STR( On ))
118   PORT_DIPNAME( 0x20, 0x20, "S06")
119   PORT_DIPSETTING(    0x00, DEF_STR( No ))
120   PORT_DIPSETTING(    0x20, DEF_STR( Yes ))
121   PORT_DIPNAME( 0x40, 0x40, "S07")
122   PORT_DIPSETTING(    0x00, DEF_STR( No ))
123   PORT_DIPSETTING(    0x40, DEF_STR( Yes ))
124   PORT_DIPNAME( 0x80, 0x80, "S08")
125   PORT_DIPSETTING(    0x00, DEF_STR( No ))
126   PORT_DIPSETTING(    0x80, DEF_STR( Yes ))
152   PORT_DIPSETTING(    0x80, DEF_STR( On ))
127153
128154   PORT_START("DSW1")
129   PORT_DIPNAME( 0x01, 0x00, "S09")
155   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 3")
156   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C )) // same as 01
157   PORT_DIPSETTING(    0x02, DEF_STR( 1C_1C ))
158   PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ))
159   PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ))
160   PORT_DIPSETTING(    0x05, DEF_STR( 2C_2C ))
161   PORT_DIPSETTING(    0x06, DEF_STR( 1C_3C ))
162   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ))
163   PORT_DIPSETTING(    0x08, DEF_STR( 1C_4C ))
164   PORT_DIPSETTING(    0x09, DEF_STR( 2C_4C ))
165   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_5C ))
166   PORT_DIPSETTING(    0x0b, DEF_STR( 2C_5C ))
167   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_6C ))
168   PORT_DIPSETTING(    0x0d, DEF_STR( 2C_6C ))
169   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_7C ))
170   PORT_DIPSETTING(    0x0f, DEF_STR( 2C_7C ))
171   PORT_DIPSETTING(    0x10, DEF_STR( 1C_8C ))
172   PORT_DIPSETTING(    0x11, DEF_STR( 2C_8C ))
173   PORT_DIPSETTING(    0x12, DEF_STR( 1C_9C ))
174   PORT_DIPSETTING(    0x13, "2 coins 9 credits")
175   PORT_DIPSETTING(    0x14, "1 coin 10 credits")
176   PORT_DIPSETTING(    0x15, "2 coins 10 credits")
177   PORT_DIPSETTING(    0x16, "1 coin 11 credits")
178   PORT_DIPSETTING(    0x17, "2 coins 11 credits")
179   PORT_DIPSETTING(    0x18, "1 coin 12 credits")
180   PORT_DIPSETTING(    0x19, "2 coins 12 credits")
181   PORT_DIPSETTING(    0x1a, "1 coin 13 credits")
182   PORT_DIPSETTING(    0x1b, "2 coins 13 credits")
183   PORT_DIPSETTING(    0x1c, "1 coin 14 credits")
184   PORT_DIPSETTING(    0x1d, "2 coins 14 credits")
185   PORT_DIPSETTING(    0x1e, "1 coin 15 credits")
186   PORT_DIPSETTING(    0x1f, "2 coins 15 credits")
187   PORT_DIPNAME( 0x20, 0x00, "S14")
130188   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
131   PORT_DIPSETTING(    0x01, DEF_STR( On ))
132   PORT_DIPNAME( 0x02, 0x00, "S10")
133   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
134   PORT_DIPSETTING(    0x02, DEF_STR( On ))
135   PORT_DIPNAME( 0x04, 0x00, "S11")
136   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
137   PORT_DIPSETTING(    0x04, DEF_STR( On ))
138   PORT_DIPNAME( 0x08, 0x00, "S12")
139   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
140   PORT_DIPSETTING(    0x08, DEF_STR( On ))
141   PORT_DIPNAME( 0x10, 0x00, "S13")
142   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
143   PORT_DIPSETTING(    0x10, DEF_STR( On ))
144   PORT_DIPNAME( 0x20, 0x00, "S14")
145   PORT_DIPSETTING(    0x00, DEF_STR( Yes ))
146   PORT_DIPSETTING(    0x20, DEF_STR( No ))
147   PORT_DIPNAME( 0x40, 0x40, "S15")
148   PORT_DIPSETTING(    0x00, DEF_STR( No ))
149   PORT_DIPSETTING(    0x40, DEF_STR( Yes ))
150   PORT_DIPNAME( 0x80, 0x00, "S16")
151   PORT_DIPSETTING(    0x00, DEF_STR( No ))
152   PORT_DIPSETTING(    0x80, DEF_STR( Yes ))
189   PORT_DIPSETTING(    0x20, DEF_STR( On ))
190   PORT_DIPNAME( 0x40, 0x00, "Award for beating high score")
191   PORT_DIPSETTING(    0x00, "Novelty")
192   PORT_DIPSETTING(    0x40, "3 Free Games")
193   PORT_DIPNAME( 0x80, 0x00, "Rollover lights")
194   PORT_DIPSETTING(    0x00, "Always on")
195   PORT_DIPSETTING(    0x80, "Alternate")
153196
154197   PORT_START("DSW2")
155   PORT_DIPNAME( 0x01, 0x00, "S17")
198   PORT_DIPNAME( 0x07, 0x02, "Maximum Credits")
199   PORT_DIPSETTING(    0x00, "5")
200   PORT_DIPSETTING(    0x01, "10")
201   PORT_DIPSETTING(    0x02, "15")
202   PORT_DIPSETTING(    0x00, "20")
203   PORT_DIPSETTING(    0x00, "25")
204   PORT_DIPSETTING(    0x00, "30")
205   PORT_DIPSETTING(    0x00, "35")
206   PORT_DIPSETTING(    0x00, "40")
207   PORT_DIPNAME( 0x08, 0x08, "Credits displayed")
156208   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
157   PORT_DIPSETTING(    0x01, DEF_STR( On ))
158   PORT_DIPNAME( 0x02, 0x00, "S18")
159   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
160   PORT_DIPSETTING(    0x02, DEF_STR( On ))
161   PORT_DIPNAME( 0x04, 0x00, "S19")
162   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
163   PORT_DIPSETTING(    0x04, DEF_STR( On ))
164   PORT_DIPNAME( 0x08, 0x00, "S20")
165   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
166209   PORT_DIPSETTING(    0x08, DEF_STR( On ))
167   PORT_DIPNAME( 0x10, 0x00, "S21")
210   PORT_DIPNAME( 0x10, 0x10, "Match")
168211   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
169212   PORT_DIPSETTING(    0x10, DEF_STR( On ))
170213   PORT_DIPNAME( 0x20, 0x00, "S22")
r31506r31507
173216   PORT_DIPNAME( 0x40, 0x00, "S23")
174217   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
175218   PORT_DIPSETTING(    0x40, DEF_STR( On ))
176   PORT_DIPNAME( 0x80, 0x00, "S24")
219   PORT_DIPNAME( 0x80, 0x00, "Award a free game for hitting all targets 2nd time")
177220   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
178221   PORT_DIPSETTING(    0x80, DEF_STR( On ))
179222
180223   PORT_START("DSW3")
181   PORT_DIPNAME( 0x03, 0x03, "Maximum Credits")
182   PORT_DIPSETTING(    0x00, "10")
183   PORT_DIPSETTING(    0x01, "15")
184   PORT_DIPSETTING(    0x02, "25")
185   PORT_DIPSETTING(    0x03, "40")
186   PORT_DIPNAME( 0x04, 0x04, "Credits displayed")
224   PORT_DIPNAME( 0x01, 0x00, "S25")
187225   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
226   PORT_DIPSETTING(    0x01, DEF_STR( On ))
227   PORT_DIPNAME( 0x02, 0x00, "S26")
228   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
229   PORT_DIPSETTING(    0x02, DEF_STR( On ))
230   PORT_DIPNAME( 0x04, 0x04, "S27")
231   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
188232   PORT_DIPSETTING(    0x04, DEF_STR( On ))
189   PORT_DIPNAME( 0x08, 0x08, "Match")
233   PORT_DIPNAME( 0x08, 0x00, "S28")
190234   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
191235   PORT_DIPSETTING(    0x08, DEF_STR( On ))
192   PORT_DIPNAME( 0x10, 0x00, "Keep all replays")
236   PORT_DIPNAME( 0x10, 0x00, "S29")
193237   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
194238   PORT_DIPSETTING(    0x10, DEF_STR( On ))
195   PORT_DIPNAME( 0x20, 0x00, "Voice" )
239   PORT_DIPNAME( 0x20, 0x00, "S30")
196240   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
197241   PORT_DIPSETTING(    0x20, DEF_STR( On ))
198   PORT_DIPNAME( 0xC0, 0x40, "Balls")
199   PORT_DIPSETTING(    0xC0, "2")
200   PORT_DIPSETTING(    0x00, "3")
201   PORT_DIPSETTING(    0x80, "4")
202   PORT_DIPSETTING(    0x40, "5")
242   PORT_DIPNAME( 0xc0, 0x80, "Award for Special")
243   PORT_DIPSETTING(    0x00, "100000 points")
244   PORT_DIPSETTING(    0x40, "Extra Ball")
245   PORT_DIPSETTING(    0x80, "Free Game")
246   PORT_DIPSETTING(    0xc0, "Extra Ball and Free Game")
203247
204248   PORT_START("X0")
205   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER )
206   PORT_BIT( 0x0a, IP_ACTIVE_HIGH, IPT_UNUSED )
207   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 )
208   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER )
249   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN3 )
250   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
251   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
252   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
253   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE)
209254   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
210255   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
211   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
256   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT1 ) PORT_NAME("Slam Tilt")
212257
213258   PORT_START("X1")
214   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 )
215   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
216   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
217   PORT_BIT( 0x38, IP_ACTIVE_HIGH, IPT_UNUSED )
218   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER )
219   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT1 ) PORT_NAME("Slam Tilt")
259   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
260   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
261   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
262   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_L)
263   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
264   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
265   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
266   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
220267
221   // from here, vary per game
222268   PORT_START("X2")
223269   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_A)
224270   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S)
r31506r31507
240286   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_O)
241287
242288   PORT_START("X4")
243   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
289   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
244290   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_C)
245291   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_V)
246292   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_B)
r31506r31507
268314     
269315WRITE_LINE_MEMBER( st_mp200_state::u10_cb2_w )
270316{
317   if (m_su)
318   {
319      if (m_s14001a->bsy_r())
320         m_pia_u11->cb1_w(0);
321      else
322         m_pia_u11->cb1_w(state);
323   }
271324}
272325
273326WRITE_LINE_MEMBER( st_mp200_state::u11_ca2_w )
274327{
275328   output_set_value("led0", !state);
329
330   if ((m_su) & (state))
331   {
332      if BIT(m_u10_a, 7)
333      {
334         m_s14001a->reg_w(m_u10_a & 0x3f);
335         m_s14001a->rst_w(1);
336         m_s14001a->rst_w(0);
337      }
338      else
339      if BIT(m_u10_a, 6)
340      {
341         m_s14001a->set_volume(((m_u10_a & 0x38) >> 3) + 1);
342
343         UINT8 clock_divisor = 16 - (m_u10_a & 0x07);
344
345         m_s14001a->set_clock(S14001_CLOCK / clock_divisor / 8);
346      }
347   }
276348}
277349
278350WRITE_LINE_MEMBER( st_mp200_state::u11_cb2_w )
r31506r31507
294366   {
295367      switch (m_u10)
296368      {
297      case 0x10:
369      case 0x1e:
298370         output_set_digit_value(m_digit, patterns[m_segment]);
299371         break;
300372      case 0x1d:
r31506r31507
303375      case 0x1b:
304376         output_set_digit_value(16+m_digit, patterns[m_segment]);
305377         break;
306      case 0x17:
378      case 0x07:
307379         output_set_digit_value(24+m_digit, patterns[m_segment]);
308380         break;
309      case 0x1f:
381      case 0x0f:
310382         output_set_digit_value(32+m_digit, patterns[m_segment]);
311383         break;
312384      default://printf("%X ",m_u10);
r31506r31507
444516   m_u11_b = 0;
445517}
446518
447DRIVER_INIT_MEMBER(st_mp200_state,st_mp200)
519DRIVER_INIT_MEMBER( st_mp200_state, st_mp200 )
448520{
521   m_su = 0;
449522}
450523
524DRIVER_INIT_MEMBER( st_mp200_state, st_mp201 )
525{
526   m_su = 1;
527}
528
451529// zero-cross detection
452530TIMER_DEVICE_CALLBACK_MEMBER( st_mp200_state::u10_timer )
453531{
r31506r31507
498576   MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_d", st_mp200_state, u11_timer, attotime::from_hz(634)) // 555 timer*2
499577MACHINE_CONFIG_END
500578
579static MACHINE_CONFIG_DERIVED( st_mp201, st_mp200 )
580   MCFG_SPEAKER_STANDARD_MONO("mono")
581   MCFG_SOUND_ADD("speech", S14001A, S14001_CLOCK)
582   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
583MACHINE_CONFIG_END
501584
585
502586/*--------------------------------
503587/ Meteor #113
504588/-------------------------------*/
r31506r31507
606690   ROM_LOAD( "cpu_u2.716", 0x5000, 0x0800, CRC(e0933419) SHA1(1f7cad915496f34473dffde7e320d51838acd0fd))
607691   ROM_LOAD( "cpu_u6.716", 0x5800, 0x0800, CRC(df221c6b) SHA1(5935020d3a24d829fbeaa8cf764daff48a151a81))
608692   ROM_RELOAD( 0xf800, 0x0800)
609   ROM_REGION(0x10000, "cpu2", 0)
693
694   ROM_REGION(0x1000, "speech", 0)
610695   ROM_LOAD("snd_u9.716", 0x0000, 0x0800, CRC(00ffa77c) SHA1(242efd800731a7f84369c6ce54298d0a227dd8ba))
611696   ROM_LOAD("snd_u10.716",0x0800, 0x0800, CRC(80fe9158) SHA1(20fcdb4c09b25e494f02bbfb20c07ff2870d5798))
612697ROM_END
r31506r31507
633718   ROM_LOAD( "cpu_u2.716", 0x5000, 0x0800, CRC(425fae6a) SHA1(fde8d23e6ebb176ba72f763d66c2e17e51237fa1))
634719   ROM_LOAD( "cpu_u6.716", 0x5800, 0x0800, CRC(dc243186) SHA1(046ce51b8a8218214088c4264548c753bd880e19))
635720   ROM_RELOAD( 0xf800, 0x0800)
636   ROM_REGION(0x10000, "cpu2", 0)
721
722   ROM_REGION(0x1000, "speech", 0)
637723   ROM_LOAD("snd_u9.716", 0x0000, 0x0800, CRC(d816573c) SHA1(75134a017c34abbb149159ca001d35464a3f5128))
638724ROM_END
639725
r31506r31507
647733   ROM_LOAD( "cpu_u2.716", 0x5000, 0x0800, CRC(82bda054) SHA1(32772e878d2a4bba8f67e419a68a81fec2a5f6d7))
648734   ROM_LOAD( "cpu_u6.716", 0x5800, 0x0800, CRC(68168b97) SHA1(defa4bba465182db22debddb4070c40c048c95e2))
649735   ROM_RELOAD( 0xf800, 0x0800)
650   ROM_REGION(0x10000, "cpu2", 0)
736
737   ROM_REGION(0x1000, "speech", 0)
651738   ROM_LOAD("snd_u9.716", 0x0000, 0x0800, CRC(ea8cf062) SHA1(55c840a9bea363fd436c00a115cb61d15a9f8c47))
652739   ROM_LOAD("snd_u10.716",0x0800, 0x0800, CRC(dd681a79) SHA1(d954cae375fb0145e10536e43d1cb03902de2ea3))
653740ROM_END
r31506r31507
662749   ROM_LOAD( "cpu_u2.716", 0x5000, 0x0800, CRC(81b9f784) SHA1(43cf71b51eda70a3c126340ea658c03c438e4f18))
663750   ROM_LOAD( "cpu_u6.716", 0x5800, 0x0800, CRC(ecbedb0a) SHA1(8cc7281dd2bd300ab95a08761c12733d98599ebd))
664751   ROM_RELOAD( 0xf800, 0x0800)
665   ROM_REGION(0x10000, "cpu2", 0)
752
753   ROM_REGION(0x1000, "speech", 0)
666754   ROM_LOAD("snd_u9.716", 0x0000, 0x0800, CRC(e6ed5f48) SHA1(ea2bbc607acb2b816667cd54f3d07605110c252e))
667755   ROM_LOAD("snd_u10.716",0x0800, 0x0800, CRC(36e6ee70) SHA1(61bd89d69627bea89b7f31af63ff90ace6db3c85))
668756ROM_END
r31506r31507
677765   ROM_LOAD( "cpu_u2.716", 0x5000, 0x0800, CRC(bc504409) SHA1(cd3e948d34a8db71fc841261e683988c9df31ef8))
678766   ROM_LOAD( "cpu_u6.716", 0x5800, 0x0800, CRC(da61b5a2) SHA1(ec4a914cd57b37921578699bc427f12a3670c7eb))
679767   ROM_RELOAD( 0xf800, 0x0800)
680   ROM_REGION(0x10000, "cpu2", 0)
768
769   ROM_REGION(0x1000, "speech", 0)
681770   ROM_LOAD("snd_u9.716", 0x0000, 0x0800, CRC(a13cb591) SHA1(b64a2dc3429803095dc05cdd1718db2404b13eb8))
682771   ROM_LOAD("snd_u10.716",0x0800, 0x0800, CRC(2b31f8be) SHA1(05b394bd8b6c04e34fe2bab19cbd0f06d9e4b90d))
683772ROM_END
r31506r31507
728817   ROM_LOAD( "cpu_u2.716", 0x5000, 0x0800, CRC(4421d827) SHA1(9b617215f2d92ef2c69104eb4e63a924704665aa))
729818   ROM_LOAD( "cpu_u6.716", 0x5800, 0x0800, CRC(8861155a) SHA1(81a1b3434d4f80dee5704454f8359200faea173d))
730819   ROM_RELOAD( 0xf800, 0x0800)
731   ROM_REGION(0x10000, "cpu2", 0)
820
821   ROM_REGION(0x1000, "speech", 0)
732822   ROM_LOAD("snd_u9.716", 0x0000, 0x0800, CRC(2ba24569) SHA1(da2f4a4eeed9ae7ff8a342f4d630e12dcb2decf5))
733823   ROM_LOAD("snd_u10.716",0x0800, 0x0800, CRC(8e5b4a38) SHA1(de3f59363553f5f0d6098401734436930e64fbbd))
734824ROM_END
r31506r31507
800890ROM_END
801891
802892
803GAME(1979,  meteorp,    0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Meteor (Stern)",               GAME_IS_SKELETON_MECHANICAL)
804GAME(1980,  galaxypi,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Galaxy",               GAME_IS_SKELETON_MECHANICAL)
805GAME(1980,  cheetah,    0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Cheetah",              GAME_IS_SKELETON_MECHANICAL)
806GAME(1980,  quicksil,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Quicksilver",              GAME_IS_SKELETON_MECHANICAL)
807GAME(1980,  ali,        0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Ali",              GAME_IS_SKELETON_MECHANICAL)
808GAME(1980,  biggame,    0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Big Game",             GAME_IS_SKELETON_MECHANICAL)
809GAME(1980,  seawitch,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Seawitch",             GAME_IS_SKELETON_MECHANICAL)
810GAME(1980,  nineball,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Nine Ball",                GAME_IS_SKELETON_MECHANICAL)
811GAME(1981,  lightnin,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Lightning",                GAME_IS_SKELETON_MECHANICAL)
812GAME(1980,  stargzr,    0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Stargazer",                GAME_IS_SKELETON_MECHANICAL)
813GAME(1980,  flight2k,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Flight 2000",              GAME_IS_SKELETON_MECHANICAL)
814GAME(1981,  freefall,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Freefall",             GAME_IS_SKELETON_MECHANICAL)
815GAME(1981,  splitsec,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Split Second",             GAME_IS_SKELETON_MECHANICAL)
816GAME(1981,  catacomp,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Catacomb (Pinball)",               GAME_IS_SKELETON_MECHANICAL)
817GAME(1981,  viperp,     0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Viper (Pinball)",              GAME_IS_SKELETON_MECHANICAL)
818GAME(1981,  ironmaid,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Iron Maiden",              GAME_IS_SKELETON_MECHANICAL)
819GAME(1982,  dragfist,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Dragonfist",               GAME_IS_SKELETON_MECHANICAL)
820GAME(1982,  orbitor1,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Orbitor 1",                GAME_IS_SKELETON_MECHANICAL)
821GAME(1984,  lazrlord,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Stern",                "Lazer Lord",               GAME_IS_SKELETON_MECHANICAL)
893GAME(1979,  meteorp,    0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Stern", "Meteor (Stern)", GAME_IS_SKELETON_MECHANICAL)
894GAME(1980,  galaxypi,   0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Stern", "Galaxy", GAME_IS_SKELETON_MECHANICAL)
895GAME(1980,  cheetah,    0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Stern", "Cheetah", GAME_IS_SKELETON_MECHANICAL)
896GAME(1980,  quicksil,   0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Stern", "Quicksilver", GAME_IS_SKELETON_MECHANICAL)
897GAME(1980,  ali,        0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Stern", "Ali", GAME_IS_SKELETON_MECHANICAL)
898GAME(1980,  biggame,    0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Stern", "Big Game", GAME_IS_SKELETON_MECHANICAL)
899GAME(1980,  seawitch,   0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Stern", "Seawitch", GAME_IS_SKELETON_MECHANICAL)
900GAME(1980,  nineball,   0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Stern", "Nine Ball", GAME_IS_SKELETON_MECHANICAL)
901GAME(1981,  lightnin,   0,          st_mp201,   mp200, st_mp200_state,   st_mp201,   ROT0, "Stern", "Lightning", GAME_IS_SKELETON_MECHANICAL)
902GAME(1980,  stargzr,    0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Stern", "Stargazer", GAME_IS_SKELETON_MECHANICAL)
903GAME(1980,  flight2k,   0,          st_mp201,   mp200, st_mp200_state,   st_mp201,   ROT0, "Stern", "Flight 2000", GAME_IS_SKELETON_MECHANICAL)
904GAME(1981,  freefall,   0,          st_mp201,   mp200, st_mp200_state,   st_mp201,   ROT0, "Stern", "Freefall", GAME_IS_SKELETON_MECHANICAL)
905GAME(1981,  splitsec,   0,          st_mp201,   mp200, st_mp200_state,   st_mp201,   ROT0, "Stern", "Split Second", GAME_IS_SKELETON_MECHANICAL)
906GAME(1981,  catacomp,   0,          st_mp201,   mp200, st_mp200_state,   st_mp201,   ROT0, "Stern", "Catacomb (Pinball)", GAME_IS_SKELETON_MECHANICAL)
907GAME(1981,  viperp,     0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Stern", "Viper (Pinball)", GAME_IS_SKELETON_MECHANICAL)
908GAME(1981,  ironmaid,   0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Stern", "Iron Maiden", GAME_IS_SKELETON_MECHANICAL)
909GAME(1982,  dragfist,   0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Stern", "Dragonfist", GAME_IS_SKELETON_MECHANICAL)
910GAME(1982,  orbitor1,   0,          st_mp201,   mp200, st_mp200_state,   st_mp201,   ROT0, "Stern", "Orbitor 1", GAME_IS_SKELETON_MECHANICAL)
911GAME(1984,  lazrlord,   0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Stern", "Lazer Lord", GAME_IS_SKELETON_MECHANICAL)
822912
823913// other manufacturer
824GAME(1985,  gamatron,   flight2k,   st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Pinstar",              "Gamatron",             GAME_IS_SKELETON_MECHANICAL)
825GAME(1978,  blkshpsq,   0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "Astro",                "Black Sheep Squadron",             GAME_IS_SKELETON_MECHANICAL)
826GAME(198?,  st_game,    0,          st_mp200,   st_mp200, st_mp200_state,   st_mp200,   ROT0,   "<unknown>",            "unknown pinball game",             GAME_IS_SKELETON_MECHANICAL)
914GAME(1985,  gamatron,   flight2k,   st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Pinstar", "Gamatron", GAME_IS_SKELETON_MECHANICAL)
915GAME(1978,  blkshpsq,   0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "Astro", "Black Sheep Squadron", GAME_IS_SKELETON_MECHANICAL)
916GAME(198?,  st_game,    0,          st_mp200,   mp200, st_mp200_state,   st_mp200,   ROT0, "<unknown>", "unknown pinball game", GAME_IS_SKELETON_MECHANICAL)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team