Previous 199869 Revisions Next

r31637 Wednesday 13th August, 2014 at 09:28:35 UTC by Robbbert
allied.c : everything works except for coin input.
[src/mame/drivers]allied.c
[src/mame/layout]allied.lay

trunk/src/mame/layout/allied.lay
r31636r31637
1818         <color red="0.0" green="0.0" blue="0.0" />
1919      </rect>
2020   </element>
21   <element name="P0"><text string="Ball / Match"><color red="1.0" green="1.0" blue="1.0" /></text></element>
21   <element name="P0"><text string="Ball"><color red="1.0" green="1.0" blue="1.0" /></text></element>
2222   <element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
23   <element name="P2"><text string="Players"><color red="1.0" green="1.0" blue="1.0" /></text></element>
23   <element name="P2"><text string="1  2  3  4  5"><color red="1.0" green="1.0" blue="1.0" /></text></element>
2424   <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
2525   <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
2626   <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
r31636r31637
117117      </bezel>
118118
119119      <!-- Credits and Balls -->
120      <bezel name="digit45" element="digit">
121         <bounds left="39" top="345" right="73" bottom="384" />
122      </bezel>
123      <bezel name="digit44" element="digit">
124         <bounds left="110" top="345" right="144" bottom="384" />
125      </bezel>
126      <bezel name="digit43" element="digit">
120      <bezel name="digit41" element="digit">
127121         <bounds left="171" top="345" right="205" bottom="384" />
128122      </bezel>
129      <bezel name="digit42" element="digit">
123      <bezel name="digit40" element="digit">
130124         <bounds left="210" top="345" right="244" bottom="384" />
131125      </bezel>
132      <bezel element="P2"><bounds left="100" right="158" top="330" bottom="342" /></bezel>
133126      <bezel element="P1"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
134127      <bezel element="P0"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
128      <bezel element="P2"><bounds left="30" right="88" top="350" bottom="362" /></bezel>
135129      <bezel name="text3" element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
136130      <bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
137131      <bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
138132      <bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
139133      <bezel name="led0" element="red_led">
140134         <bounds left="10" right="25" top="360" bottom="375" /></bezel>
135      <bezel name="led1" element="red_led">
136         <bounds left="34" right="39" top="365" bottom="370" /></bezel>
137      <bezel name="led2" element="red_led">
138         <bounds left="44" right="49" top="365" bottom="370" /></bezel>
139      <bezel name="led3" element="red_led">
140         <bounds left="54" right="59" top="365" bottom="370" /></bezel>
141      <bezel name="led4" element="red_led">
142         <bounds left="65" right="70" top="365" bottom="370" /></bezel>
143      <bezel name="led5" element="red_led">
144         <bounds left="75" right="80" top="365" bottom="370" /></bezel>
145      <bezel name="led6" element="red_led">
146         <bounds left="130" right="135" top="365" bottom="370" /></bezel>
141147   </view>
142148</mamelayout>
trunk/src/mame/drivers/allied.c
r31636r31637
1818  while IC4PBx is high, then displayed when the line goes low. IC7portB
1919  selects which player's display to update.
2020
21  There are no dipswitches; instead there are a number of jumper wires
22  which can be pushed onto one of up to ten connector pins each. There
23  are 15 10-pin connectors, a 5-pin connector and 2 2-pin connectors.
24
2125  For some reason the 'rol $46' instruction outputs the original data
2226  followed by the new result, so I've had to employ a horrible hack.
2327
28  When playing, you must hit Z at the start of each ball, or you'll get
29  no points. When the ball indicator goes out, your game is over.
30
31  Game doesn't have any backup battery, so all info is lost at poweroff.
32  If required, a fake nvram could be used at 00-3F (like PinMAME does).
33  Mechanical meters are used to store accounting information.
34
35
36ToDo:
37- Insert coins doesn't register (if you use debug to enter the number of
38  credits into $1A, then the game is playable).
39
40
2441***************************************************************************/
2542
2643#include "machine/genpin.h"
r31636r31637
3552   allied_state(const machine_config &mconfig, device_type type, const char *tag)
3653      : genpin_class(mconfig, type, tag)
3754      , m_maincpu(*this, "maincpu")
55      , m_ic1(*this, "ic1")
56      , m_ic2(*this, "ic2")
57      , m_ic4(*this, "ic4")
58      , m_ic5(*this, "ic5")
59      , m_ic6(*this, "ic6")
60      , m_ic7(*this, "ic7")
3861   { }
3962
40   DECLARE_DRIVER_INIT(allied);
63   DECLARE_WRITE8_MEMBER(ic1_b_w);
4164   DECLARE_WRITE8_MEMBER(ic2_b_w);
4265   DECLARE_WRITE_LINE_MEMBER(ic2_cb2_w);
4366   DECLARE_WRITE8_MEMBER(ic3_b_w);
r31636r31637
4871   DECLARE_WRITE8_MEMBER(ic7_b_w);
4972   DECLARE_WRITE8_MEMBER(ic8_a_w);
5073   DECLARE_WRITE8_MEMBER(ic8_b_w);
74   DECLARE_READ8_MEMBER(ic1_a_r);
75   DECLARE_READ8_MEMBER(ic2_a_r);
76   DECLARE_READ8_MEMBER(ic4_a_r);
77   DECLARE_READ8_MEMBER(ic5_a_r);
78   DECLARE_READ8_MEMBER(ic6_a_r);
79   DECLARE_READ8_MEMBER(ic6_b_r);
80   DECLARE_READ8_MEMBER(ic7_a_r);
5181private:
5282   UINT32 m_player_score[6];
5383   UINT8 m_display;
5484   UINT8 m_bit_counter;
5585   bool m_disp_data;
86   UINT8 m_ic5a;
87   UINT8 m_ic6a0;
88   UINT8 m_ic6a1;
89   UINT8 m_ic6a2;
90   UINT8 m_ic6b4;
5691   virtual void machine_reset();
5792   required_device<m6504_device> m_maincpu;
93   required_device<pia6821_device> m_ic1;
94   required_device<pia6821_device> m_ic2;
95   required_device<pia6821_device> m_ic4;
96   required_device<mos6530_device> m_ic5;
97   required_device<mos6530_device> m_ic6;
98   required_device<pia6821_device> m_ic7;
5899};
59100
60101
r31636r31637
72113ADDRESS_MAP_END
73114
74115static INPUT_PORTS_START( allied )
116   PORT_START("TEST")
117   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Self Test")
118   PORT_START("R11")
119   PORT_CONFNAME( 0x0f, 0x00, "1st Replay 1000")
120   PORT_CONFSETTING(    0x00, "0")
121   PORT_CONFSETTING(    0x01, "1")
122   PORT_CONFSETTING(    0x02, "2")
123   PORT_CONFSETTING(    0x03, "3")
124   PORT_CONFSETTING(    0x04, "4")
125   PORT_CONFSETTING(    0x05, "5")
126   PORT_CONFSETTING(    0x06, "6")
127   PORT_CONFSETTING(    0x07, "7")
128   PORT_CONFSETTING(    0x08, "8")
129   PORT_CONFSETTING(    0x09, "9")
130   PORT_START("R12")
131   PORT_CONFNAME( 0x0f, 0x05, "1st Replay 10000")
132   PORT_CONFSETTING(    0x00, "0")
133   PORT_CONFSETTING(    0x01, "1")
134   PORT_CONFSETTING(    0x02, "2")
135   PORT_CONFSETTING(    0x03, "3")
136   PORT_CONFSETTING(    0x04, "4")
137   PORT_CONFSETTING(    0x05, "5")
138   PORT_CONFSETTING(    0x06, "6")
139   PORT_CONFSETTING(    0x07, "7")
140   PORT_CONFSETTING(    0x08, "8")
141   PORT_CONFSETTING(    0x09, "9")
142   PORT_START("R13")
143   PORT_CONFNAME( 0x0f, 0x00, "1st Replay 100000")
144   PORT_CONFSETTING(    0x00, "0")
145   PORT_CONFSETTING(    0x01, "1")
146   PORT_CONFSETTING(    0x02, "2")
147   PORT_CONFSETTING(    0x03, "3")
148   PORT_CONFSETTING(    0x04, "4")
149   PORT_CONFSETTING(    0x05, "5")
150   PORT_CONFSETTING(    0x06, "6")
151   PORT_CONFSETTING(    0x07, "7")
152   PORT_CONFSETTING(    0x08, "8")
153   PORT_CONFSETTING(    0x09, "9")
154   PORT_START("R21")
155   PORT_CONFNAME( 0x0f, 0x00, "2nd Replay 1000")
156   PORT_CONFSETTING(    0x00, "0")
157   PORT_CONFSETTING(    0x01, "1")
158   PORT_CONFSETTING(    0x02, "2")
159   PORT_CONFSETTING(    0x03, "3")
160   PORT_CONFSETTING(    0x04, "4")
161   PORT_CONFSETTING(    0x05, "5")
162   PORT_CONFSETTING(    0x06, "6")
163   PORT_CONFSETTING(    0x07, "7")
164   PORT_CONFSETTING(    0x08, "8")
165   PORT_CONFSETTING(    0x09, "9")
166   PORT_START("R22")
167   PORT_CONFNAME( 0x0f, 0x00, "2nd Replay 10000")
168   PORT_CONFSETTING(    0x00, "0")
169   PORT_CONFSETTING(    0x01, "1")
170   PORT_CONFSETTING(    0x02, "2")
171   PORT_CONFSETTING(    0x03, "3")
172   PORT_CONFSETTING(    0x04, "4")
173   PORT_CONFSETTING(    0x05, "5")
174   PORT_CONFSETTING(    0x06, "6")
175   PORT_CONFSETTING(    0x07, "7")
176   PORT_CONFSETTING(    0x08, "8")
177   PORT_CONFSETTING(    0x09, "9")
178   PORT_START("R23")
179   PORT_CONFNAME( 0x0f, 0x01, "2nd Replay 100000")
180   PORT_CONFSETTING(    0x00, "0")
181   PORT_CONFSETTING(    0x01, "1")
182   PORT_CONFSETTING(    0x02, "2")
183   PORT_CONFSETTING(    0x03, "3")
184   PORT_CONFSETTING(    0x04, "4")
185   PORT_CONFSETTING(    0x05, "5")
186   PORT_CONFSETTING(    0x06, "6")
187   PORT_CONFSETTING(    0x07, "7")
188   PORT_CONFSETTING(    0x08, "8")
189   PORT_CONFSETTING(    0x09, "9")
190   PORT_START("R31")
191   PORT_CONFNAME( 0x0f, 0x00, "3rd Replay 1000")
192   PORT_CONFSETTING(    0x00, "0")
193   PORT_CONFSETTING(    0x01, "1")
194   PORT_CONFSETTING(    0x02, "2")
195   PORT_CONFSETTING(    0x03, "3")
196   PORT_CONFSETTING(    0x04, "4")
197   PORT_CONFSETTING(    0x05, "5")
198   PORT_CONFSETTING(    0x06, "6")
199   PORT_CONFSETTING(    0x07, "7")
200   PORT_CONFSETTING(    0x08, "8")
201   PORT_CONFSETTING(    0x09, "9")
202   PORT_START("R32")
203   PORT_CONFNAME( 0x0f, 0x06, "3rd Replay 10000")
204   PORT_CONFSETTING(    0x00, "0")
205   PORT_CONFSETTING(    0x01, "1")
206   PORT_CONFSETTING(    0x02, "2")
207   PORT_CONFSETTING(    0x03, "3")
208   PORT_CONFSETTING(    0x04, "4")
209   PORT_CONFSETTING(    0x05, "5")
210   PORT_CONFSETTING(    0x06, "6")
211   PORT_CONFSETTING(    0x07, "7")
212   PORT_CONFSETTING(    0x08, "8")
213   PORT_CONFSETTING(    0x09, "9")
214   PORT_START("R33")
215   PORT_CONFNAME( 0x0f, 0x01, "3rd Replay 100000")
216   PORT_CONFSETTING(    0x00, "0")
217   PORT_CONFSETTING(    0x01, "1")
218   PORT_CONFSETTING(    0x02, "2")
219   PORT_CONFSETTING(    0x03, "3")
220   PORT_CONFSETTING(    0x04, "4")
221   PORT_CONFSETTING(    0x05, "5")
222   PORT_CONFSETTING(    0x06, "6")
223   PORT_CONFSETTING(    0x07, "7")
224   PORT_CONFSETTING(    0x08, "8")
225   PORT_CONFSETTING(    0x09, "9")
226   PORT_START("CM1")
227   PORT_CONFNAME( 0x0f, 0x05, "Credits Max 1")
228   PORT_CONFSETTING(    0x00, "0")
229   PORT_CONFSETTING(    0x01, "1")
230   PORT_CONFSETTING(    0x02, "2")
231   PORT_CONFSETTING(    0x03, "3")
232   PORT_CONFSETTING(    0x04, "4")
233   PORT_CONFSETTING(    0x05, "5")
234   PORT_CONFSETTING(    0x06, "6")
235   PORT_CONFSETTING(    0x07, "7")
236   PORT_CONFSETTING(    0x08, "8")
237   PORT_CONFSETTING(    0x09, "9")
238   PORT_START("CM2")
239   PORT_CONFNAME( 0x0f, 0x01, "Credits Max 10")
240   PORT_CONFSETTING(    0x00, "0")
241   PORT_CONFSETTING(    0x01, "1")
242   PORT_CONFSETTING(    0x02, "2")
243   PORT_CONFSETTING(    0x03, "3")
244   PORT_CONFSETTING(    0x04, "4")
245   PORT_CONFSETTING(    0x05, "5")
246   PORT_CONFSETTING(    0x06, "6")
247   PORT_CONFSETTING(    0x07, "7")
248   PORT_CONFSETTING(    0x08, "8")
249   PORT_CONFSETTING(    0x09, "9")
250   PORT_START("CS1")
251   PORT_CONFNAME( 0x0f, 0x01, "Coin Slot 1")
252   PORT_CONFSETTING(    0x00, "0")
253   PORT_CONFSETTING(    0x01, "1")
254   PORT_CONFSETTING(    0x02, "2")
255   PORT_CONFSETTING(    0x03, "3")
256   PORT_CONFSETTING(    0x04, "4")
257   PORT_CONFSETTING(    0x05, "5")
258   PORT_CONFSETTING(    0x06, "6")
259   PORT_CONFSETTING(    0x07, "7")
260   PORT_CONFSETTING(    0x08, "8")
261   PORT_CONFSETTING(    0x09, "9")
262   PORT_START("CS2")
263   PORT_CONFNAME( 0x0f, 0x01, "Coin Slot 2")
264   PORT_CONFSETTING(    0x00, "0")
265   PORT_CONFSETTING(    0x01, "1")
266   PORT_CONFSETTING(    0x02, "2")
267   PORT_CONFSETTING(    0x03, "3")
268   PORT_CONFSETTING(    0x04, "4")
269   PORT_CONFSETTING(    0x05, "5")
270   PORT_CONFSETTING(    0x06, "6")
271   PORT_CONFSETTING(    0x07, "7")
272   PORT_CONFSETTING(    0x08, "8")
273   PORT_CONFSETTING(    0x09, "9")
274   PORT_START("CS3")
275   PORT_CONFNAME( 0x0f, 0x01, "Coin Slot 3")
276   PORT_CONFSETTING(    0x00, "0")
277   PORT_CONFSETTING(    0x01, "1")
278   PORT_CONFSETTING(    0x02, "2")
279   PORT_CONFSETTING(    0x03, "3")
280   PORT_CONFSETTING(    0x04, "4")
281   PORT_CONFSETTING(    0x05, "5")
282   PORT_CONFSETTING(    0x06, "6")
283   PORT_CONFSETTING(    0x07, "7")
284   PORT_CONFSETTING(    0x08, "8")
285   PORT_CONFSETTING(    0x09, "9")
286   PORT_START("CR")
287   PORT_CONFNAME( 0x0f, 0x01, "Credits Option")
288   PORT_CONFSETTING(    0x01, "1")
289   PORT_CONFSETTING(    0x02, "2")
290   PORT_START("B")
291   PORT_CONFNAME( 0x07, 0x03, "Balls")
292   PORT_CONFSETTING(    0x01, "1")
293   PORT_CONFSETTING(    0x02, "2")
294   PORT_CONFSETTING(    0x03, "3")
295   PORT_CONFSETTING(    0x04, "4")
296   PORT_CONFSETTING(    0x05, "5")
297   PORT_START("A")
298   PORT_CONFNAME( 0x04, 0x04, "Award")
299   PORT_CONFSETTING(    0x04, "Replay")
300   PORT_CONFSETTING(    0x00, "Extra Ball")
301   PORT_CONFNAME( 0x08, 0x08, "Line Up Inhibit")
302   PORT_CONFSETTING(    0x08, DEF_STR(No))
303   PORT_CONFSETTING(    0x00, DEF_STR(Yes))
304   PORT_START("N")
305   PORT_CONFNAME( 0x01, 0x01, "Number of Players")
306   PORT_CONFSETTING(    0x00, "2")
307   PORT_CONFSETTING(    0x01, "4")
308
309   PORT_START("X1A") // ic1_a
310   PORT_BIT( 0x5f, IP_ACTIVE_LOW, IPT_UNUSED )
311   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) PORT_NAME("Bullseye target")
312   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_NAME("Ball in play")
313
314   PORT_START("X2A") // ic2_a
315   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) PORT_NAME("L Bumper")
316   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) PORT_NAME("C Bumper")
317   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) PORT_NAME("R Bumper")
318   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) PORT_NAME("L Bullseye")
319   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) PORT_NAME("R Bullseye")
320   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) PORT_NAME("L Sling")
321   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) PORT_NAME("R Sling")
322   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole")
323
324   PORT_START("X4A") // ic4_a
325   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) PORT_NAME("Target A")
326   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) PORT_NAME("Target B")
327   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) PORT_NAME("Target C")
328   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) PORT_NAME("Target D")
329   PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNUSED )
330   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT )
331   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START )
332
333   PORT_START("X6A") // ic6_a
334   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN3 )
335   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 )
336   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
337   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT1 ) PORT_NAME("Slam Tilt")
338
339   PORT_START("X7A") // ic7_a
340   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) PORT_NAME("Raise Target A")
341   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) PORT_NAME("Raise Target D")
342   PORT_BIT( 0x0c, IP_ACTIVE_LOW, IPT_UNUSED )
343   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) PORT_NAME("500 point rollover")
344   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) PORT_NAME("Raise Target B")
345   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) PORT_NAME("Raise Target C")
346   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) PORT_NAME("Extra Ball when Lit")
75347INPUT_PORTS_END
76348
349// 1 target, 1 rollover
350READ8_MEMBER( allied_state::ic1_a_r )
351{
352   return ioport("X1A")->read();
353}
354
355// 6 lamps
356WRITE8_MEMBER( allied_state::ic1_b_w )
357{
358}
359
360// 8 switches
361READ8_MEMBER( allied_state::ic2_a_r )
362{
363   return ioport("X2A")->read();
364}
365
77366WRITE8_MEMBER( allied_state::ic2_b_w )
78367{
79   //printf("%s:IC2B:%X ",machine().describe_context(),data);
368// PB0-4,6 - lamps
369
80370   m_disp_data = !BIT(data, 7);
81371}
82372
r31636r31637
97387   m_maincpu->set_input_line(M6504_IRQ_LINE, BIT(data, 7) ? CLEAR_LINE : ASSERT_LINE );
98388}
99389
390// 6 switches
391READ8_MEMBER( allied_state::ic4_a_r )
392{
393   return ioport("X4A")->read();
394}
395
100396WRITE8_MEMBER( allied_state::ic4_b_w )
101397{
102398   static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0x58, 0x4c, 0x62, 0x69, 0x78, 0 }; // 7446A
103399   UINT8 segment, i;
104   //printf("%s:IC4B:%X ",machine().describe_context(),data);
105400   for (i = 0; i < 4; i++)
106401   {
107402      if (!BIT(data, i+4))
r31636r31637
119414         output_set_digit_value(i*10+5, patterns[segment]);
120415      }
121416   }
417
418   // doesn't seem to be a strobe for the credits display
419   segment = (m_player_score[4] >> 0) & 15;
420   output_set_digit_value(40, patterns[segment]);
421   segment = (m_player_score[4] >> 4) & 15;
422   output_set_digit_value(41, patterns[segment]);
423
424// PB0-3 - player 1-4 LED - to do
122425}
123426
124427WRITE_LINE_MEMBER( allied_state::ic4_cb2_w )
125428{
126429}
127430
431// 8 of the adjustment connectors
432READ8_MEMBER( allied_state::ic5_a_r )
433{
434   return m_ic5a;
435}
436
128437// cabinet solenoids
129438WRITE8_MEMBER( allied_state::ic5_b_w )
130439{
440// PB0 - play meter
441// PB1 - replay meter
442
131443   if (!BIT(data, 2)) // chime C
132444      m_samples->start(1, 1);
133445
r31636r31637
143455   m_maincpu->set_input_line(M6504_IRQ_LINE, BIT(data, 7) ? CLEAR_LINE : ASSERT_LINE );
144456}
145457
458// 4 adjustments, 3 coin slots, slam tilt
459READ8_MEMBER( allied_state::ic6_a_r )
460{
461   return m_ic6a0 | m_ic6a1 | m_ic6a2 | ioport("X6A")->read();
462}
463
464// 1 adjustment, test switch
465READ8_MEMBER( allied_state::ic6_b_r )
466{
467   return m_ic6b4 | ioport("TEST")->read() | 0xcf;
468}
469
146470WRITE8_MEMBER( allied_state::ic6_b_w )
147471{
472// PB0-3 to drop targets
473
148474   m_maincpu->set_input_line(M6504_IRQ_LINE, BIT(data, 7) ? CLEAR_LINE : ASSERT_LINE );
149475}
150476
477// 6 inputs
478READ8_MEMBER( allied_state::ic7_a_r )
479{
480   return ioport("X7A")->read();
481}
482
151483WRITE8_MEMBER( allied_state::ic7_b_w )
152484{
153   //if (m_display) printf(" %X=%X",m_display,m_player_score[m_display-1]>>1);
154   //printf("%s:IC7B:%X ",machine().describe_context(),data);
485// PB7 - tilt lamp
486
487   // PB4-6 display select
155488   m_display = data >> 4;
156489   if (m_display > 5)
157490      m_display = 0;
158491   m_bit_counter = 0;
492
493   // PB0-3 switch matrix
494   data &= 15;
495   bool res;
496   // IC1CA1 = 3rd 100,000 replay
497   res = (ioport("R33")->read() == data);
498   m_ic1->ca1_w(!res);
499   // IC1CB1 = Number of balls
500   res = (ioport("B")->read() == data);
501   m_ic1->cb1_w(!res);
502   // IC2CA1 = Max. credit tens
503   res = (ioport("CM2")->read() == data);
504   m_ic2->ca1_w(!res);
505   // IC2CB1 = Max. credit units
506   res = (ioport("CM1")->read() == data);
507   m_ic2->cb1_w(!res);
508   // IC4CA1 = Credit 1 prog.
509   res = (ioport("CS1")->read() == data);
510   m_ic4->ca1_w(!res);
511   // IC5PA0 = 1st 1,000 replay
512   m_ic5a = (ioport("R11")->read() == data) ? 0 : 1;
513   // IC5PA1 = 1st 10,000 replay
514   m_ic5a |= (ioport("R12")->read() == data) ? 0 : 2;
515   // IC5PA2 = 1st 100,000 replay
516   m_ic5a |= (ioport("R13")->read() == data) ? 0 : 4;
517   // IC5PA3 = 2nd 1,000 replay
518   m_ic5a |= (ioport("R21")->read() == data) ? 0 : 8;
519   // IC5PA4 = 2nd 10,000 replay
520   m_ic5a |= (ioport("R22")->read() == data) ? 0 : 16;
521   // IC5PA5 = 2nd 100,000 replay
522   m_ic5a |= (ioport("R23")->read() == data) ? 0 : 32;
523   // IC5PA6 = 3rd 1,000 replay
524   m_ic5a |= (ioport("R31")->read() == data) ? 0 : 64;
525   // IC5PA7 = 3rd 10,000 replay
526   m_ic5a |= (ioport("R32")->read() == data) ? 0 : 128;
527   // IC6PA0 = Credit options
528   m_ic6a0 = (ioport("CR")->read() == data) ? 0 : 1;
529   // IC6PA1 = Credit 2 prog.
530   m_ic6a1 = (ioport("CS2")->read() == data) ? 0 : 2;
531   // IC6PA2 = Replay / Add-a-ball / Match inhibit
532   m_ic6a2 = ioport("A")->read();
533   // IC6PB4 = Credit 3 prog.
534   m_ic6b4 = (ioport("CS3")->read() == data) ? 0 : 16;
535   // IC7CA1 = 2/4 Players
536   res = ((ioport("N")->read() ? 4 : 2) == data);
537   m_ic7->ca1_w(!res);
159538}
160539
161540// playfield solenoids
r31636r31637
174553// PB0-4 = ball 1-5 LED; PB5 = shoot again lamp
175554WRITE8_MEMBER( allied_state::ic8_b_w )
176555{
177   //printf("%s:IC8B:%X ",machine().describe_context(),data);
556   output_set_value("led1", !BIT(data, 0));
557   output_set_value("led2", !BIT(data, 1));
558   output_set_value("led3", !BIT(data, 2));
559   output_set_value("led4", !BIT(data, 3));
560   output_set_value("led5", !BIT(data, 4));
561   output_set_value("led6", !BIT(data, 5));
178562}
179563
180564void allied_state::machine_reset()
181565{
566   output_set_value("led0", 1);  //1=off (diagnostic led still to be hooked up)
182567}
183568
184DRIVER_INIT_MEMBER(allied_state,allied)
185{
186}
187
188569static MACHINE_CONFIG_START( allied, allied_state )
189570   /* basic machine hardware */
190571   MCFG_CPU_ADD("maincpu", M6504, 3572549/4)
r31636r31637
198579
199580   /* Devices */
200581   MCFG_DEVICE_ADD("ic1", PIA6821, 0)
201   //MCFG_PIA_READPA_HANDLER(READ8(allied_state, ic1_a_r))
582   MCFG_PIA_READPA_HANDLER(READ8(allied_state, ic1_a_r))
202583   //MCFG_PIA_WRITEPA_HANDLER(WRITE8(allied_state, ic1_a_w))
203584   //MCFG_PIA_READPB_HANDLER(READ8(allied_state, ic1_b_r))
204   //MCFG_PIA_WRITEPB_HANDLER(WRITE8(allied_state, ic1_b_w))
585   MCFG_PIA_WRITEPB_HANDLER(WRITE8(allied_state, ic1_b_w))
205586   //MCFG_PIA_CA2_HANDLER(WRITELINE(allied_state, ic1_ca2_w))
206587   //MCFG_PIA_CB2_HANDLER(WRITELINE(allied_state, ic1_cb2_w))
207588   MCFG_PIA_IRQA_HANDLER(DEVWRITELINE("maincpu", m6504_device, irq_line))
208589   MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("maincpu", m6504_device, irq_line))
209590
210591   MCFG_DEVICE_ADD("ic2", PIA6821, 0)
211   //MCFG_PIA_READPA_HANDLER(READ8(allied_state, ic2_a_r))
592   MCFG_PIA_READPA_HANDLER(READ8(allied_state, ic2_a_r))
212593   //MCFG_PIA_WRITEPA_HANDLER(WRITE8(allied_state, ic2_a_w))
213594   //MCFG_PIA_READPB_HANDLER(READ8(allied_state, ic2_b_r))
214595   MCFG_PIA_WRITEPB_HANDLER(WRITE8(allied_state, ic2_b_w))
r31636r31637
218599   MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("maincpu", m6504_device, irq_line))
219600
220601   MCFG_DEVICE_ADD("ic4", PIA6821, 0)
221   //MCFG_PIA_READPA_HANDLER(READ8(allied_state, ic4_a_r))
602   MCFG_PIA_READPA_HANDLER(READ8(allied_state, ic4_a_r))
222603   //MCFG_PIA_WRITEPA_HANDLER(WRITE8(allied_state, ic4_a_w))
223604   //MCFG_PIA_READPB_HANDLER(READ8(allied_state, ic4_b_r))
224605   MCFG_PIA_WRITEPB_HANDLER(WRITE8(allied_state, ic4_b_w))
r31636r31637
228609   MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("maincpu", m6504_device, irq_line))
229610
230611   MCFG_DEVICE_ADD("ic7", PIA6821, 0)
231   //MCFG_PIA_READPA_HANDLER(READ8(allied_state, ic7_a_r))
612   MCFG_PIA_READPA_HANDLER(READ8(allied_state, ic7_a_r))
232613   //MCFG_PIA_WRITEPA_HANDLER(WRITE8(allied_state, ic7_a_w))
233614   //MCFG_PIA_READPB_HANDLER(READ8(allied_state, ic7_b_r))
234615   MCFG_PIA_WRITEPB_HANDLER(WRITE8(allied_state, ic7_b_w))
r31636r31637
251632   MCFG_MOS6530_OUT_PB_CB(WRITE8(allied_state, ic3_b_w))
252633
253634   MCFG_DEVICE_ADD("ic5", MOS6530, 3572549/4)
254   //MCFG_MOS6530_IN_PA_CB(READ8(allied_state, ic5_a_r))
635   MCFG_MOS6530_IN_PA_CB(READ8(allied_state, ic5_a_r))
255636   //MCFG_MOS6530_OUT_PA_CB(WRITE8(allied_state, ic5_a_w))
256637   //MCFG_MOS6530_IN_PB_CB(READ8(allied_state, ic5_b_r))
257638   MCFG_MOS6530_OUT_PB_CB(WRITE8(allied_state, ic5_b_w))
258639
259640   MCFG_DEVICE_ADD("ic6", MOS6530, 3572549/4)
260   //MCFG_MOS6530_IN_PA_CB(READ8(allied_state, ic6_a_r))
641   MCFG_MOS6530_IN_PA_CB(READ8(allied_state, ic6_a_r))
261642   //MCFG_MOS6530_OUT_PA_CB(WRITE8(allied_state, ic6_a_w))
262   //MCFG_MOS6530_IN_PB_CB(READ8(allied_state, ic6_b_r))
643   MCFG_MOS6530_IN_PB_CB(READ8(allied_state, ic6_b_r))
263644   MCFG_MOS6530_OUT_PB_CB(WRITE8(allied_state, ic6_b_w))
264645MACHINE_CONFIG_END
265646
266647
267648ROM_START( allied )
268649   ROM_REGION( 0x2000, "maincpu", 0 )
269   ROM_LOAD( "r6530-009.u5", 0x1400, 0x0400, CRC(e4fb64fb) SHA1(a3d9de7cbfb42180a860e0bbbeaeba96d8bd1e20))
270   ROM_LOAD( "r6530-010.u6", 0x1800, 0x0400, CRC(dca980dd) SHA1(3817d75413854d889fc1ce4fd6a51d820d1e0534))
271   ROM_LOAD( "r6530-011.u3", 0x1c00, 0x0400, CRC(13f42789) SHA1(baa0f73fda08a3c5d6f1423fb329e4febb07ef97))
650   ROM_LOAD( "6530-009.u5", 0x1400, 0x0400, CRC(e4fb64fb) SHA1(a3d9de7cbfb42180a860e0bbbeaeba96d8bd1e20))
651   ROM_LOAD( "6530-010.u6", 0x1800, 0x0400, CRC(dca980dd) SHA1(3817d75413854d889fc1ce4fd6a51d820d1e0534))
652   ROM_LOAD( "6530-011.u3", 0x1c00, 0x0400, CRC(13f42789) SHA1(baa0f73fda08a3c5d6f1423fb329e4febb07ef97))
272653ROM_END
273654
274655#define rom_suprpick    rom_allied
r31636r31637
284665#define rom_starshot    rom_allied
285666
286667
287GAME(1977,  allied,     0,          allied, allied, allied_state, allied, ROT0, "Allied Leisure",               "Allied System",                GAME_IS_BIOS_ROOT)
288GAME(1977,  suprpick,   allied,     allied, allied, allied_state,   allied, ROT0,   "Allied Leisure",               "Super Picker",                 GAME_IS_SKELETON_MECHANICAL)
289GAME(1977,  royclark,   allied,     allied, allied, allied_state,   allied, ROT0,   "Fascination Int.",             "Roy Clark - The Entertainer",  GAME_IS_SKELETON_MECHANICAL)
290GAME(1977,  thndbolt,   allied,     allied, allied, allied_state,   allied, ROT0,   "Allied Leisure",               "Thunderbolt",                  GAME_IS_SKELETON_MECHANICAL)
291GAME(1978,  hoedown,    allied,     allied, allied, allied_state,   allied, ROT0,   "Allied Leisure",               "Hoe Down",                     GAME_IS_SKELETON_MECHANICAL)
292GAME(1978,  takefive,   allied,     allied, allied, allied_state,   allied, ROT0,   "Allied Leisure",               "Take Five",                    GAME_IS_SKELETON_MECHANICAL)
293GAME(1978,  heartspd,   allied,     allied, allied, allied_state,   allied, ROT0,   "Allied Leisure",               "Hearts & Spades",              GAME_IS_SKELETON_MECHANICAL)
294GAME(1978,  foathens,   allied,     allied, allied, allied_state,   allied, ROT0,   "Allied Leisure",               "Flame of Athens",              GAME_IS_SKELETON_MECHANICAL)
295GAME(1979,  disco79,    allied,     allied, allied, allied_state,   allied, ROT0,   "Allied Leisure",               "Disco '79",                    GAME_IS_SKELETON_MECHANICAL)
296GAME(1979,  erosone,    allied,     allied, allied, allied_state,   allied, ROT0,   "Fascination Int.",             "Eros One",                     GAME_IS_SKELETON_MECHANICAL)
297GAME(1979,  circa33,    allied,     allied, allied, allied_state,   allied, ROT0,   "Fascination Int.",             "Circa 1933",                   GAME_IS_SKELETON_MECHANICAL)
298GAME(1979,  starshot,   allied,     allied, allied, allied_state,   allied, ROT0,   "Allied Leisure",               "Star Shooter",                 GAME_IS_SKELETON_MECHANICAL)
668GAME(1977,  allied,     0,          allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Allied System", GAME_IS_BIOS_ROOT)
669GAME(1977,  suprpick,   allied,     allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Super Picker", GAME_IS_SKELETON_MECHANICAL)
670GAME(1977,  royclark,   allied,     allied, allied, driver_device, 0, ROT0, "Fascination Int.", "Roy Clark - The Entertainer", GAME_IS_SKELETON_MECHANICAL)
671GAME(1977,  thndbolt,   allied,     allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Thunderbolt", GAME_IS_SKELETON_MECHANICAL)
672GAME(1978,  hoedown,    allied,     allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Hoe Down", GAME_IS_SKELETON_MECHANICAL)
673GAME(1978,  takefive,   allied,     allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Take Five", GAME_IS_SKELETON_MECHANICAL)
674GAME(1978,  heartspd,   allied,     allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Hearts & Spades", GAME_IS_SKELETON_MECHANICAL)
675GAME(1978,  foathens,   allied,     allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Flame of Athens", GAME_IS_SKELETON_MECHANICAL)
676GAME(1979,  disco79,    allied,     allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Disco '79", GAME_IS_SKELETON_MECHANICAL)
677GAME(1979,  erosone,    allied,     allied, allied, driver_device, 0, ROT0, "Fascination Int.", "Eros One", GAME_IS_SKELETON_MECHANICAL)
678GAME(1979,  circa33,    allied,     allied, allied, driver_device, 0, ROT0, "Fascination Int.", "Circa 1933", GAME_IS_SKELETON_MECHANICAL)
679GAME(1979,  starshot,   allied,     allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Star Shooter", GAME_IS_SKELETON_MECHANICAL)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team