Previous 199869 Revisions Next

r18759 Monday 29th October, 2012 at 09:54:05 UTC by Robbbert
Williams System 9 : Comet marked as WORKING [Robbbert]
[src/mame]mame.mak
[src/mame/drivers]s8.c s9.c
[src/mame/layout]s8.lay s9.lay*

trunk/src/mame/mame.mak
r18758r18759
22342234
22352235$(DRIVERS)/s8.o:   $(LAYOUT)/s8.lh
22362236
2237$(DRIVERS)/s9.o:   $(LAYOUT)/s9.lh
2238
22372239$(DRIVERS)/sbrkout.o:   $(LAYOUT)/sbrkout.lh
22382240
22392241$(DRIVERS)/sderby.o:   $(LAYOUT)/sderby.lh \
trunk/src/mame/layout/s9.lay
r0r18759
1<!-- s6a.lay -->
2
3<!-- 2012-10-24: Initial version.  [Robbbert] -->
4
5<mamelayout version="2">
6
7   <element name="digit" defstate="0">
8      <led7seg>
9         <color red="1.0" green="0.0" blue="0.0" />
10      </led7seg>
11   </element>
12   <element name="diag" defstate="0">
13      <led7seg>
14         <color red="1.0" green="0.0" blue="1.0" />
15      </led7seg>
16   </element>
17   <element name="background">
18      <rect>
19         <bounds left="0" top="0" right="1" bottom="1" />
20         <color red="0.0" green="0.0" blue="0.0" />
21      </rect>
22   </element>
23   <element name="P0"><text string="Ball / Match"><color red="1.0" green="1.0" blue="1.0" /></text></element>
24   <element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
25   <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
26   <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
27   <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
28   <element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element>
29
30   <view name="Default Layout">
31
32      <!-- Background -->
33      <backdrop element="background">
34         <bounds left="0" top="20" right="318" bottom="394" />
35      </backdrop>
36
37      <!-- LEDs -->
38
39      <!-- Player 1 Score -->
40
41      <bezel name="digit1" element="digit">
42         <bounds left="10" top="45" right="44" bottom="84" />
43      </bezel>
44      <bezel name="digit2" element="digit">
45         <bounds left="54" top="45" right="88" bottom="84" />
46      </bezel>
47      <bezel name="digit3" element="digit">
48         <bounds left="98" top="45" right="132" bottom="84" />
49      </bezel>
50      <bezel name="digit4" element="digit">
51         <bounds left="142" top="45" right="176" bottom="84" />
52      </bezel>
53      <bezel name="digit5" element="digit">
54         <bounds left="186" top="45" right="220" bottom="84" />
55      </bezel>
56      <bezel name="digit6" element="digit">
57         <bounds left="230" top="45" right="264" bottom="84" />
58      </bezel>
59      <bezel name="digit7" element="digit">
60         <bounds left="274" top="45" right="308" bottom="84" />
61      </bezel>
62
63      <!-- Player 2 Score -->
64      <bezel name="digit9" element="digit">
65         <bounds left="10" top="105" right="44" bottom="144" />
66      </bezel>
67      <bezel name="digit10" element="digit">
68         <bounds left="54" top="105" right="88" bottom="144" />
69      </bezel>
70      <bezel name="digit11" element="digit">
71         <bounds left="98" top="105" right="132" bottom="144" />
72      </bezel>
73      <bezel name="digit12" element="digit">
74         <bounds left="142" top="105" right="176" bottom="144" />
75      </bezel>
76      <bezel name="digit13" element="digit">
77         <bounds left="186" top="105" right="220" bottom="144" />
78      </bezel>
79      <bezel name="digit14" element="digit">
80         <bounds left="230" top="105" right="264" bottom="144" />
81      </bezel>
82      <bezel name="digit15" element="digit">
83         <bounds left="274" top="105" right="308" bottom="144" />
84      </bezel>
85
86      <!-- Player 3 Score -->
87      <bezel name="digit17" element="digit">
88         <bounds left="10" top="165" right="44" bottom="204" />
89      </bezel>
90      <bezel name="digit18" element="digit">
91         <bounds left="54" top="165" right="88" bottom="204" />
92      </bezel>
93      <bezel name="digit19" element="digit">
94         <bounds left="98" top="165" right="132" bottom="204" />
95      </bezel>
96      <bezel name="digit20" element="digit">
97         <bounds left="142" top="165" right="176" bottom="204" />
98      </bezel>
99      <bezel name="digit21" element="digit">
100         <bounds left="186" top="165" right="220" bottom="204" />
101      </bezel>
102      <bezel name="digit22" element="digit">
103         <bounds left="230" top="165" right="264" bottom="204" />
104      </bezel>
105      <bezel name="digit23" element="digit">
106         <bounds left="274" top="165" right="308" bottom="204" />
107      </bezel>
108
109      <!-- Player 4 Score -->
110      <bezel name="digit25" element="digit">
111         <bounds left="10" top="225" right="44" bottom="264" />
112      </bezel>
113      <bezel name="digit26" element="digit">
114         <bounds left="54" top="225" right="88" bottom="264" />
115      </bezel>
116      <bezel name="digit27" element="digit">
117         <bounds left="98" top="225" right="132" bottom="264" />
118      </bezel>
119      <bezel name="digit28" element="digit">
120         <bounds left="142" top="225" right="176" bottom="264" />
121      </bezel>
122      <bezel name="digit29" element="digit">
123         <bounds left="186" top="225" right="220" bottom="264" />
124      </bezel>
125      <bezel name="digit30" element="digit">
126         <bounds left="230" top="225" right="264" bottom="264" />
127      </bezel>
128      <bezel name="digit31" element="digit">
129         <bounds left="274" top="225" right="308" bottom="264" />
130      </bezel>
131
132      <!-- Credits and Balls -->
133      <bezel name="digit16" element="digit">
134         <bounds left="10" top="345" right="44" bottom="384" />
135      </bezel>
136      <bezel name="digit24" element="digit">
137         <bounds left="54" top="345" right="88" bottom="384" />
138      </bezel>
139      <bezel name="digit60" element="diag">
140         <bounds left="142" top="345" right="176" bottom="384" />
141      </bezel>
142      <bezel name="digit0" element="digit">
143         <bounds left="186" top="345" right="220" bottom="384" />
144      </bezel>
145      <bezel name="digit8" element="digit">
146         <bounds left="230" top="345" right="264" bottom="384" />
147      </bezel>
148      <bezel element="P0"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
149      <bezel element="P1"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
150      <bezel element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
151      <bezel element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
152      <bezel element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
153      <bezel element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
154   </view>
155</mamelayout>
trunk/src/mame/layout/s8.lay
r18758r18759
1111   </element>
1212   <element name="diag" defstate="0">
1313      <led7seg>
14         <color red="1.0" green="0.0" blue="0.0" />
14         <color red="1.0" green="0.0" blue="1.0" />
1515      </led7seg>
1616   </element>
1717   <element name="background">
trunk/src/mame/drivers/s9.c
r18758r18759
1/*
1/***********************************************************************************
2
3    Pinball
24    Williams System 9
3*/
45
56
6#include "emu.h"
7
8ToDo:
9
10************************************************************************************/
11
12
13#include "machine/genpin.h"
714#include "cpu/m6800/m6800.h"
15#include "machine/6821pia.h"
16#include "sound/dac.h"
17#include "s9.lh"
818
9class williams_s9_state : public driver_device
19
20class s9_state : public genpin_class
1021{
1122public:
12   williams_s9_state(const machine_config &mconfig, device_type type, const char *tag)
13      : driver_device(mconfig, type, tag),
14        m_maincpu(*this, "maincpu")
23   s9_state(const machine_config &mconfig, device_type type, const char *tag)
24      : genpin_class(mconfig, type, tag),
25   m_maincpu(*this, "maincpu"),
26   m_audiocpu(*this, "audiocpu"),
27   m_dac(*this, "dac"),
28   m_pia(*this, "pia"),
29   m_pia21(*this, "pia21"),
30   m_pia24(*this, "pia24"),
31   m_pia28(*this, "pia28"),
32   m_pia30(*this, "pia30")
1533   { }
1634
35   DECLARE_READ8_MEMBER(dac_r);
36   DECLARE_WRITE8_MEMBER(dac_w);
37   DECLARE_WRITE8_MEMBER(dig0_w);
38   DECLARE_WRITE8_MEMBER(dig1_w);
39   DECLARE_WRITE8_MEMBER(lamp0_w);
40   DECLARE_WRITE8_MEMBER(lamp1_w) { };
41   DECLARE_WRITE8_MEMBER(sol2_w) { }; // solenoids 8-15
42   DECLARE_WRITE8_MEMBER(sol3_w); // solenoids 0-7
43   DECLARE_WRITE8_MEMBER(sound_w);
44   DECLARE_READ8_MEMBER(dips_r);
45   DECLARE_READ8_MEMBER(switch_r);
46   DECLARE_WRITE8_MEMBER(switch_w);
47   DECLARE_READ_LINE_MEMBER(pia_ca1_r);
48   DECLARE_READ_LINE_MEMBER(pia21_ca1_r);
49   DECLARE_READ_LINE_MEMBER(pia28_ca1_r);
50   DECLARE_READ_LINE_MEMBER(pia28_cb1_r);
51   DECLARE_WRITE_LINE_MEMBER(pia_ca2_w);
52   DECLARE_WRITE_LINE_MEMBER(pia_cb2_w);
53   DECLARE_WRITE_LINE_MEMBER(pia21_ca2_w);
54   DECLARE_WRITE_LINE_MEMBER(pia21_cb2_w) { }; // enable solenoids
55   DECLARE_WRITE_LINE_MEMBER(pia24_cb2_w) { }; // dummy to stop error log filling up
56   DECLARE_WRITE_LINE_MEMBER(pia28_ca2_w) { }; // comma3&4
57   DECLARE_WRITE_LINE_MEMBER(pia28_cb2_w) { }; // comma1&2
58   TIMER_DEVICE_CALLBACK_MEMBER(irq);
59   DECLARE_INPUT_CHANGED_MEMBER(main_nmi);
60   DECLARE_INPUT_CHANGED_MEMBER(audio_nmi);
61   DECLARE_MACHINE_RESET(s9);
1762protected:
1863
1964   // devices
2065   required_device<cpu_device> m_maincpu;
21
22   // driver_device overrides
23   virtual void machine_reset();
24public:
25   DECLARE_DRIVER_INIT(williams_s9);
66   optional_device<cpu_device> m_audiocpu;
67   optional_device<dac_device> m_dac;
68   optional_device<pia6821_device> m_pia;
69   required_device<pia6821_device> m_pia21;
70   required_device<pia6821_device> m_pia24;
71   required_device<pia6821_device> m_pia28;
72   required_device<pia6821_device> m_pia30;
73private:
74   UINT8 m_t_c;
75   UINT8 m_sound_data;
76   UINT8 m_strobe;
77   UINT8 m_kbdrow;
78   bool m_ca1;
79   bool m_data_ok;
2680};
2781
82static ADDRESS_MAP_START( s9_main_map, AS_PROGRAM, 8, s9_state )
83   ADDRESS_MAP_GLOBAL_MASK(0x7fff)
84   AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
85   AM_RANGE(0x2100, 0x2103) AM_DEVREADWRITE("pia21", pia6821_device, read, write) // sound+solenoids
86   AM_RANGE(0x2200, 0x2200) AM_WRITE(sol3_w) // solenoids
87   AM_RANGE(0x2400, 0x2403) AM_DEVREADWRITE("pia24", pia6821_device, read, write) // lamps
88   AM_RANGE(0x2800, 0x2803) AM_DEVREADWRITE("pia28", pia6821_device, read, write) // display
89   AM_RANGE(0x3000, 0x3003) AM_DEVREADWRITE("pia30", pia6821_device, read, write) // inputs
90   AM_RANGE(0x4000, 0x7fff) AM_ROM
91ADDRESS_MAP_END
2892
29static ADDRESS_MAP_START( williams_s9_map, AS_PROGRAM, 8, williams_s9_state )
30   AM_RANGE(0x0000, 0xffff) AM_NOP
93static ADDRESS_MAP_START( s9_audio_map, AS_PROGRAM, 8, s9_state )
94   AM_RANGE(0x0000, 0x07ff) AM_RAM
95   AM_RANGE(0x2000, 0x2003) AM_DEVREADWRITE("pia", pia6821_device, read, write)
96   AM_RANGE(0x8000, 0xffff) AM_ROM
3197ADDRESS_MAP_END
3298
33static INPUT_PORTS_START( williams_s9 )
99static INPUT_PORTS_START( s9 )
100   PORT_START("X0")
101   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
102   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W)
103   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E)
104   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R)
105   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
106   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U)
107   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I)
108   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O)
109
110   PORT_START("X1")
111   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT )
112   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER )
113   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START )
114   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 )
115   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
116   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
117   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER )
118   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER )
119
120   PORT_START("X2")
121   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A)
122   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S)
123   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D)
124   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F)
125   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G)
126   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H)
127   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J)
128   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K)
129
130   PORT_START("X4")
131   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L)
132   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
133   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C)
134   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V)
135   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B)
136   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N)
137   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M)
138   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
139
140   PORT_START("X8")
141   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
142   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
143   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
144   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
145   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X)
146   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS)
147   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS)
148   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE)
149
150   PORT_START("X10")
151   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
152   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
153   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
154   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
155   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT)
156   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT)
157   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP)
158   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN)
159
160   PORT_START("X20")
161   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
162
163   PORT_START("X40")
164   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
165
166   PORT_START("X80")
167   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
168
169   PORT_START("DIAGS")
170   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, s9_state, audio_nmi, 1)
171   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_F2) PORT_CHANGED_MEMBER(DEVICE_SELF, s9_state, main_nmi, 1)
172   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Advance") PORT_CODE(KEYCODE_0)
173   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_9)
34174INPUT_PORTS_END
35175
36void williams_s9_state::machine_reset()
176MACHINE_RESET_MEMBER( s9_state, s9 )
37177{
178   m_t_c = 0;
38179}
39180
40DRIVER_INIT_MEMBER(williams_s9_state,williams_s9)
181INPUT_CHANGED_MEMBER( s9_state::main_nmi )
41182{
183   // Diagnostic button sends a pulse to NMI pin
184   if (newval==CLEAR_LINE)
185      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
42186}
43187
44static MACHINE_CONFIG_START( williams_s9, williams_s9_state )
188INPUT_CHANGED_MEMBER( s9_state::audio_nmi )
189{
190   // Diagnostic button sends a pulse to NMI pin
191   if (newval==CLEAR_LINE)
192      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
193}
194
195WRITE8_MEMBER( s9_state::sol3_w )
196{
197//   if (BIT(data, 1))
198//      m_samples->start(0, 6); // knocker
199}
200
201WRITE8_MEMBER( s9_state::sound_w )
202{
203   m_sound_data = data;
204}
205
206READ_LINE_MEMBER( s9_state::pia21_ca1_r )
207{
208// sound busy
209   return 1;
210}
211
212WRITE_LINE_MEMBER( s9_state::pia21_ca2_w )
213{
214// sound ns
215   m_ca1 = state;
216   m_pia->ca1_w(m_ca1);
217}
218
219static const pia6821_interface pia21_intf =
220{
221   DEVCB_DRIVER_MEMBER(s9_state, dac_r),      /* port A in */
222   DEVCB_NULL,      /* port B in */
223   DEVCB_DRIVER_LINE_MEMBER(s9_state, pia21_ca1_r),      /* line CA1 in */
224   DEVCB_LINE_GND,      /* line CB1 in */
225   DEVCB_NULL,      /* line CA2 in */
226   DEVCB_NULL,      /* line CB2 in */
227   DEVCB_DRIVER_MEMBER(s9_state, sound_w),      /* port A out */
228   DEVCB_DRIVER_MEMBER(s9_state, sol2_w),      /* port B out */
229   DEVCB_DRIVER_LINE_MEMBER(s9_state, pia21_ca2_w),      /* line CA2 out */
230   DEVCB_DRIVER_LINE_MEMBER(s9_state, pia21_cb2_w),      /* line CB2 out */
231   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
232   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
233};
234
235WRITE8_MEMBER( s9_state::lamp0_w )
236{
237   m_maincpu->set_input_line(M6800_IRQ_LINE, CLEAR_LINE);
238}
239
240static const pia6821_interface pia24_intf =
241{
242   DEVCB_NULL,      /* port A in */
243   DEVCB_NULL,      /* port B in */
244   DEVCB_LINE_GND,      /* line CA1 in */
245   DEVCB_LINE_GND,      /* line CB1 in */
246   DEVCB_LINE_VCC,      /* line CA2 in */
247   DEVCB_LINE_VCC,      /* line CB2 in */
248   DEVCB_DRIVER_MEMBER(s9_state, lamp0_w),      /* port A out */
249   DEVCB_DRIVER_MEMBER(s9_state, lamp1_w),      /* port B out */
250   DEVCB_NULL,      /* line CA2 out */
251   DEVCB_DRIVER_LINE_MEMBER(s9_state, pia24_cb2_w),      /* line CB2 out */
252   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
253   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
254};
255
256READ_LINE_MEMBER( s9_state::pia28_ca1_r )
257{
258   return BIT(ioport("DIAGS")->read(), 2); // advance button
259}
260
261READ_LINE_MEMBER( s9_state::pia28_cb1_r )
262{
263   return BIT(ioport("DIAGS")->read(), 3); // up/down switch
264}
265
266WRITE8_MEMBER( s9_state::dig0_w )
267{
268   static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0x58, 0x4c, 0x62, 0x69, 0x78, 0 }; // 7447
269   data &= 0x7f;
270   m_strobe = data & 15;
271   m_data_ok = true;
272   output_set_digit_value(60, patterns[data>>4]); // diag digit
273}
274
275WRITE8_MEMBER( s9_state::dig1_w )
276{
277   static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0, 0, 0, 0, 0, 0 }; // MC14558
278   if (m_data_ok)
279   {
280      output_set_digit_value(m_strobe+16, patterns[data&15]);
281      output_set_digit_value(m_strobe, patterns[data>>4]);
282   }
283   m_data_ok = false;
284}
285
286static const pia6821_interface pia28_intf =
287{
288   DEVCB_NULL,      /* port A in */
289   DEVCB_NULL,      /* port B in */
290   DEVCB_DRIVER_LINE_MEMBER(s9_state, pia28_ca1_r),      /* line CA1 in */
291   DEVCB_DRIVER_LINE_MEMBER(s9_state, pia28_cb1_r),      /* line CB1 in */
292   DEVCB_NULL,      /* line CA2 in */
293   DEVCB_NULL,      /* line CB2 in */
294   DEVCB_DRIVER_MEMBER(s9_state, dig0_w),      /* port A out */
295   DEVCB_DRIVER_MEMBER(s9_state, dig1_w),      /* port B out */
296   DEVCB_DRIVER_LINE_MEMBER(s9_state, pia28_ca2_w),      /* line CA2 out */
297   DEVCB_DRIVER_LINE_MEMBER(s9_state, pia28_cb2_w),      /* line CB2 out */
298   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
299   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
300};
301
302READ8_MEMBER( s9_state::switch_r )
303{
304   char kbdrow[8];
305   sprintf(kbdrow,"X%X",m_kbdrow);
306   return ~ioport(kbdrow)->read();
307}
308
309WRITE8_MEMBER( s9_state::switch_w )
310{
311   m_kbdrow = data;
312}
313
314static const pia6821_interface pia30_intf =
315{
316   DEVCB_DRIVER_MEMBER(s9_state, switch_r),      /* port A in */
317   DEVCB_NULL,      /* port B in */
318   DEVCB_LINE_GND,      /* line CA1 in */
319   DEVCB_LINE_GND,      /* line CB1 in */
320   DEVCB_LINE_VCC,      /* line CA2 in */
321   DEVCB_LINE_VCC,      /* line CB2 in */
322   DEVCB_NULL,      /* port A out */
323   DEVCB_DRIVER_MEMBER(s9_state, switch_w),      /* port B out */
324   DEVCB_NULL,      /* line CA2 out */
325   DEVCB_NULL,      /* line CB2 out */
326   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),   /* IRQA */
327   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
328};
329
330READ_LINE_MEMBER( s9_state::pia_ca1_r )
331{
332   return m_ca1;
333}
334
335WRITE_LINE_MEMBER( s9_state::pia_ca2_w )
336{
337// speech clock
338}
339
340WRITE_LINE_MEMBER( s9_state::pia_cb2_w )
341{
342// speech data
343}
344
345READ8_MEMBER( s9_state::dac_r )
346{
347   return m_sound_data;   
348}
349
350WRITE8_MEMBER( s9_state::dac_w )
351{
352   m_dac->write_unsigned8(data);
353}
354
355static const pia6821_interface pia_intf =
356{
357   DEVCB_DRIVER_MEMBER(s9_state, dac_r),      /* port A in */
358   DEVCB_NULL,      /* port B in */
359   DEVCB_DRIVER_LINE_MEMBER(s9_state, pia_ca1_r),      /* line CA1 in */
360   DEVCB_LINE_GND,      /* line CB1 in */
361   DEVCB_NULL,      /* line CA2 in */
362   DEVCB_NULL,      /* line CB2 in */
363   DEVCB_DRIVER_MEMBER(s9_state, sound_w),      /* port A out */
364   DEVCB_DRIVER_MEMBER(s9_state, dac_w),      /* port B out */
365   DEVCB_DRIVER_LINE_MEMBER(s9_state, pia_ca2_w),      /* line CA2 out */
366   DEVCB_DRIVER_LINE_MEMBER(s9_state, pia_cb2_w),      /* line CB2 out */
367   DEVCB_CPU_INPUT_LINE("audiocpu", M6800_IRQ_LINE),      /* IRQA */
368   DEVCB_CPU_INPUT_LINE("audiocpu", M6800_IRQ_LINE)      /* IRQB */
369};
370
371TIMER_DEVICE_CALLBACK_MEMBER( s9_state::irq)
372{
373   if (m_t_c > 0x70)
374      m_maincpu->set_input_line(M6800_IRQ_LINE, ASSERT_LINE);
375   else
376      m_t_c++;
377}
378
379static MACHINE_CONFIG_START( s9, s9_state )
45380   /* basic machine hardware */
46   MCFG_CPU_ADD("maincpu", M6800, 1000000)
47   MCFG_CPU_PROGRAM_MAP(williams_s9_map)
48MACHINE_CONFIG_END
381   MCFG_CPU_ADD("maincpu", M6802, 4000000)
382   MCFG_CPU_PROGRAM_MAP(s9_main_map)
383   MCFG_TIMER_DRIVER_ADD_PERIODIC("irq", s9_state, irq, attotime::from_hz(250))
384   MCFG_MACHINE_RESET_OVERRIDE(s9_state, s9)
49385
50/*--------------------
51/ Comet (S9) 06/85
52/--------------------*/
53ROM_START(comet_l4)
54   ROM_REGION(0x10000, "maincpu", 0)
55   ROM_LOAD("cpu_u20.128", 0x8000, 0x4000, CRC(36193600) SHA1(efdc44ef26c2def8f860a0296e27b2c3dac55ec8))
56   ROM_RELOAD( 0xc000, 0x4000)
57   ROM_REGION(0x10000, "cpu2", 0)
58   ROM_LOAD("cpu_u49.128", 0xc000, 0x4000, CRC(f1db0cbe) SHA1(59b7f36fb2003b90b288abeff56df62ce50f10c6))
59   ROM_LOAD("spch_u7.732", 0x8000, 0x1000, CRC(36545b22) SHA1(f4a026f3fa58dce81b439d76120a6769f4632955))
60   ROM_LOAD("spch_u5.732", 0x9000, 0x1000, CRC(89f7ede5) SHA1(bbfbd991c9e005c2fa36d8458803b121f4933618))
61   ROM_LOAD("spch_u6.732", 0xa000, 0x1000, CRC(6ba2aba6) SHA1(783b4e9b38db8677d91f86cb4805f0fa1ae8f856))
62   ROM_LOAD("spch_u4.732", 0xb000, 0x1000, CRC(d0215c49) SHA1(4f0925a826199b6e8baa5e7fbff5cde9e31d505b))
63ROM_END
386   /* Video */
387   MCFG_DEFAULT_LAYOUT(layout_s9)
64388
65ROM_START(comet_l5)
66   ROM_REGION(0x10000, "maincpu", 0)
67   ROM_LOAD("cpu_u20.l5", 0x8000, 0x4000, CRC(d153d9ab) SHA1(0b97591b8ba35207b1427900486d69078ae122bc))
68   ROM_RELOAD( 0xc000, 0x4000)
69   ROM_REGION(0x10000, "cpu2", 0)
70   ROM_LOAD("cpu_u49.128", 0xc000, 0x4000, CRC(f1db0cbe) SHA1(59b7f36fb2003b90b288abeff56df62ce50f10c6))
71   ROM_LOAD("spch_u7.732", 0x8000, 0x1000, CRC(36545b22) SHA1(f4a026f3fa58dce81b439d76120a6769f4632955))
72   ROM_LOAD("spch_u5.732", 0x9000, 0x1000, CRC(89f7ede5) SHA1(bbfbd991c9e005c2fa36d8458803b121f4933618))
73   ROM_LOAD("spch_u6.732", 0xa000, 0x1000, CRC(6ba2aba6) SHA1(783b4e9b38db8677d91f86cb4805f0fa1ae8f856))
74   ROM_LOAD("spch_u4.732", 0xb000, 0x1000, CRC(d0215c49) SHA1(4f0925a826199b6e8baa5e7fbff5cde9e31d505b))
75ROM_END
389   /* Sound */
390   MCFG_FRAGMENT_ADD( genpin_audio )
76391
77/*--------------------
78/ Sorcerer (S9) 03/85
79/--------------------*/
392   /* Devices */
393   MCFG_PIA6821_ADD("pia21", pia21_intf)
394   MCFG_PIA6821_ADD("pia24", pia24_intf)
395   MCFG_PIA6821_ADD("pia28", pia28_intf)
396   MCFG_PIA6821_ADD("pia30", pia30_intf)
397   MCFG_NVRAM_ADD_1FILL("nvram")
398   /* Add the soundcard */
399   MCFG_CPU_ADD("audiocpu", M6808, 4000000)
400   MCFG_CPU_PROGRAM_MAP(s9_audio_map)
401   MCFG_SPEAKER_STANDARD_MONO("mono")
402   MCFG_SOUND_ADD("dac", DAC, 0)
403   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
404   MCFG_PIA6821_ADD("pia", pia_intf)
405MACHINE_CONFIG_END
406
407/*-----------------------------
408/ Sorcerer (S9) 03/85 (#532)
409/------------------------------*/
80410ROM_START(sorcr_l1)
81411   ROM_REGION(0x10000, "maincpu", 0)
82412   ROM_LOAD("cpu_u19.732", 0x5000, 0x1000, CRC(88b6837d) SHA1(d26b06342741443406a72ba48a70e82df62bb26e))
83   ROM_RELOAD( 0xd000, 0x1000)
84413   ROM_LOAD("cpu_u20.764", 0x6000, 0x2000, CRC(c235b692) SHA1(d3b97fad2d501c894570601b387933c7644f64e6))
85   ROM_RELOAD( 0xe000, 0x2000)
86   ROM_REGION(0x10000, "cpu2", 0)
87   ROM_LOAD("cpu_u49.128", 0xc000, 0x4000, CRC(a0bae1e4) SHA1(dc5172aa1d59191d4119da20757cb2c2469f8fe3))
414
415   ROM_REGION(0x10000, "audiocpu", 0)
88416   ROM_LOAD("spch_u7.732", 0x8000, 0x1000, CRC(bba9ed18) SHA1(8e37ba8cb6bbc1e0afeef230088beda4513adddb))
89417   ROM_LOAD("spch_u5.732", 0x9000, 0x1000, CRC(d48c68ad) SHA1(b1391b87519ad47be3dcce7f8581f871e6a3669f))
90418   ROM_LOAD("spch_u6.732", 0xa000, 0x1000, CRC(a5c54d47) SHA1(4e1206412ecf52ae61c9df2055e0715749a6325d))
91419   ROM_LOAD("spch_u4.732", 0xb000, 0x1000, CRC(0c81902d) SHA1(6d8f703327e5c73a321fc4aa3a67ce68fff82d70))
420   ROM_LOAD("cpu_u49.128", 0xc000, 0x4000, CRC(a0bae1e4) SHA1(dc5172aa1d59191d4119da20757cb2c2469f8fe3))
92421ROM_END
93422
94423ROM_START(sorcr_l2)
95424   ROM_REGION(0x10000, "maincpu", 0)
96425   ROM_LOAD("cpu_u19.l2", 0x5000, 0x1000, CRC(faf738db) SHA1(a3b3f4160dc837ddf5379e1edb0eafeefcc11e3d))
97   ROM_RELOAD( 0xd000, 0x1000)
98426   ROM_LOAD("cpu_u20.l2", 0x6000, 0x2000, CRC(74fc8117) SHA1(c228c76ade670603f77bb324e6794ec6dd358285))
99   ROM_RELOAD( 0xe000, 0x2000)
100   ROM_REGION(0x10000, "cpu2", 0)
101   ROM_LOAD("cpu_u49.128", 0xc000, 0x4000, CRC(a0bae1e4) SHA1(dc5172aa1d59191d4119da20757cb2c2469f8fe3))
427
428   ROM_REGION(0x10000, "audiocpu", 0)
102429   ROM_LOAD("spch_u7.732", 0x8000, 0x1000, CRC(bba9ed18) SHA1(8e37ba8cb6bbc1e0afeef230088beda4513adddb))
103430   ROM_LOAD("spch_u5.732", 0x9000, 0x1000, CRC(d48c68ad) SHA1(b1391b87519ad47be3dcce7f8581f871e6a3669f))
104431   ROM_LOAD("spch_u6.732", 0xa000, 0x1000, CRC(a5c54d47) SHA1(4e1206412ecf52ae61c9df2055e0715749a6325d))
105432   ROM_LOAD("spch_u4.732", 0xb000, 0x1000, CRC(0c81902d) SHA1(6d8f703327e5c73a321fc4aa3a67ce68fff82d70))
433   ROM_LOAD("cpu_u49.128", 0xc000, 0x4000, CRC(a0bae1e4) SHA1(dc5172aa1d59191d4119da20757cb2c2469f8fe3))
106434ROM_END
107435
108/*--------------------
109/ Space Shuttle (S9) 12/84
110/--------------------*/
436/*---------------------------------
437/ Space Shuttle (S9) 12/84 (#535)
438/----------------------------------*/
111439ROM_START(sshtl_l7)
112440   ROM_REGION(0x10000, "maincpu", 0)
113   ROM_LOAD("cpu_u20.128", 0x8000, 0x4000, CRC(848ad54c) SHA1(4e4ce5fb970da37706472f94a27fd912e1ecb1a0))
114   ROM_RELOAD( 0xc000, 0x4000)
115   ROM_REGION(0x10000, "cpu2", 0)
116   ROM_LOAD("cpu_u49.128", 0xc000, 0x4000, CRC(8050ae27) SHA1(e3f5e9398f61b075620ecd075617a8dac3c07d0e))
441   ROM_LOAD("cpu_u20.128", 0x4000, 0x4000, CRC(848ad54c) SHA1(4e4ce5fb970da37706472f94a27fd912e1ecb1a0))
442
443   ROM_REGION(0x10000, "audiocpu", 0)
117444   ROM_LOAD("spch_u5.732", 0x9000, 0x1000, CRC(13edd4e5) SHA1(46c4052c31ddc20bb87445636f8fe3b6f7bff856))
118445   ROM_LOAD("spch_u6.732", 0xa000, 0x1000, CRC(cf48b2e7) SHA1(fe55419a5d40b3a4e8c02a92746b25a075b8efd3))
119446   ROM_LOAD("spch_u4.732", 0xb000, 0x1000, CRC(b0d03c5e) SHA1(46b952f71a7ecc03e22e427875f6e16a9d124067))
447   ROM_LOAD("cpu_u49.128", 0xc000, 0x4000, CRC(8050ae27) SHA1(e3f5e9398f61b075620ecd075617a8dac3c07d0e))
120448ROM_END
121449
122/*--------------------
450/*-------------------------
451/ Comet (S9) 06/85 (#540)
452/--------------------------*/
453ROM_START(comet_l4)
454   ROM_REGION(0x10000, "maincpu", 0)
455   ROM_LOAD("cpu_u20.128", 0x4000, 0x4000, CRC(36193600) SHA1(efdc44ef26c2def8f860a0296e27b2c3dac55ec8))
456
457   ROM_REGION(0x10000, "audiocpu", 0)
458   ROM_LOAD("spch_u7.732", 0x8000, 0x1000, CRC(36545b22) SHA1(f4a026f3fa58dce81b439d76120a6769f4632955))
459   ROM_LOAD("spch_u5.732", 0x9000, 0x1000, CRC(89f7ede5) SHA1(bbfbd991c9e005c2fa36d8458803b121f4933618))
460   ROM_LOAD("spch_u6.732", 0xa000, 0x1000, CRC(6ba2aba6) SHA1(783b4e9b38db8677d91f86cb4805f0fa1ae8f856))
461   ROM_LOAD("spch_u4.732", 0xb000, 0x1000, CRC(d0215c49) SHA1(4f0925a826199b6e8baa5e7fbff5cde9e31d505b))
462   ROM_LOAD("cpu_u49.128", 0xc000, 0x4000, CRC(f1db0cbe) SHA1(59b7f36fb2003b90b288abeff56df62ce50f10c6))
463ROM_END
464
465ROM_START(comet_l5)
466   ROM_REGION(0x10000, "maincpu", 0)
467   ROM_LOAD("cpu_u20.l5", 0x4000, 0x4000, CRC(d153d9ab) SHA1(0b97591b8ba35207b1427900486d69078ae122bc))
468
469   ROM_REGION(0x10000, "audiocpu", 0)
470   ROM_LOAD("spch_u7.732", 0x8000, 0x1000, CRC(36545b22) SHA1(f4a026f3fa58dce81b439d76120a6769f4632955))
471   ROM_LOAD("spch_u5.732", 0x9000, 0x1000, CRC(89f7ede5) SHA1(bbfbd991c9e005c2fa36d8458803b121f4933618))
472   ROM_LOAD("spch_u6.732", 0xa000, 0x1000, CRC(6ba2aba6) SHA1(783b4e9b38db8677d91f86cb4805f0fa1ae8f856))
473   ROM_LOAD("spch_u4.732", 0xb000, 0x1000, CRC(d0215c49) SHA1(4f0925a826199b6e8baa5e7fbff5cde9e31d505b))
474   ROM_LOAD("cpu_u49.128", 0xc000, 0x4000, CRC(f1db0cbe) SHA1(59b7f36fb2003b90b288abeff56df62ce50f10c6))
475ROM_END
476
477/*--------------------------------
123478/ Strike Zone (Shuffle) (#916)
124/--------------------*/
479/---------------------------------*/
125480ROM_START(szone_l5)
126481   ROM_REGION(0x10000, "maincpu", 0)
127482   ROM_LOAD("sz_u19r5.732", 0x5000, 0x1000, CRC(c79c46cb) SHA1(422ba74ae67bebbe02f85a9a8df0e3072f3cebc0))
128   ROM_RELOAD( 0xd000, 0x1000)
129483   ROM_LOAD("sz_u20r5.764", 0x6000, 0x2000, CRC(9b5b3be2) SHA1(fce051a60b6eecd9bc07273892b14046b251b372))
130   ROM_RELOAD( 0xe000, 0x2000)
131   ROM_REGION(0x10000, "cpu2", 0)
484
485   ROM_REGION(0x10000, "audiocpu", 0)
132486   ROM_LOAD("szs_u49.128", 0xc000, 0x4000, CRC(144c3c07) SHA1(57be6f336f200079cd698b13f8fa4755cf694274))
133   ROM_RELOAD(0x8000, 0x4000)
134487ROM_END
135488
136489ROM_START(szone_l2)
137490   ROM_REGION(0x10000, "maincpu", 0)
138491   ROM_LOAD("sz_u19r2.732", 0x5000, 0x1000, CRC(c0e4238b) SHA1(eae60ccd5b5001671cd6d2685fd588494d052d1e))
139   ROM_RELOAD( 0xd000, 0x1000)
140492   ROM_LOAD("sz_u20r2.764", 0x6000, 0x2000, CRC(91c08137) SHA1(86da08f346f85810fceceaa7b9824ab76a68da54))
141   ROM_RELOAD( 0xe000, 0x2000)
142   ROM_REGION(0x10000, "cpu2", 0)
493
494   ROM_REGION(0x10000, "audiocpu", 0)
143495   ROM_LOAD("szs_u49.128", 0xc000, 0x4000, CRC(144c3c07) SHA1(57be6f336f200079cd698b13f8fa4755cf694274))
144   ROM_RELOAD(0x8000, 0x4000)
145496ROM_END
146497
147/*--------------------
498/*------------------------------
148499/ Alley Cats (Shuffle) (#918)
149/--------------------*/
500/-------------------------------*/
150501ROM_START(alcat_l7)
151502   ROM_REGION(0x10000, "maincpu", 0)
152503   ROM_LOAD("u26_rev7.rom", 0x5000, 0x1000, CRC(4d274dd3) SHA1(80d72bd0f85ce2cac04f6d9f59dc1fcccc86d402))
153   ROM_RELOAD( 0xd000, 0x1000)
154504   ROM_LOAD("u27_rev7.rom", 0x6000, 0x2000, CRC(9c7faf8a) SHA1(dc1a561948b9a303f7924d7bebcd972db766827b))
155   ROM_RELOAD( 0xe000, 0x2000)
156   ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
157   ROM_REGION(0x10000, "sound2", 0)
505
506   ROM_REGION(0x10000, "audiocpu", ROMREGION_ERASEFF)
507
508   ROM_REGION(0x10000, "sound2", 0) // System 11 soundboard
158509   ROM_LOAD("acs_u21.bin", 0x0000, 0x8000, CRC(c54cd329) SHA1(4b86b10e60a30c4de5d97129074f5657447be676))
159510   ROM_LOAD("acs_u22.bin", 0x8000, 0x8000, CRC(56c1011a) SHA1(c817a3410c643617f3643897b8f529ae78546b0d))
160511ROM_END
161512
162GAME(1985,   comet_l4,      comet_l5,   williams_s9,   williams_s9, williams_s9_state,   williams_s9,   ROT0,   "Williams",   "Comet (L-4)",               GAME_IS_SKELETON_MECHANICAL)
163GAME(1985,   comet_l5,      0,         williams_s9,   williams_s9, williams_s9_state,   williams_s9,   ROT0,   "Williams",   "Comet (L-5)",               GAME_IS_SKELETON_MECHANICAL)
164GAME(1985,   sorcr_l1,      sorcr_l2,   williams_s9,   williams_s9, williams_s9_state,   williams_s9,   ROT0,   "Williams",   "Sorcerer (L-1)",            GAME_IS_SKELETON_MECHANICAL)
165GAME(1985,   sorcr_l2,      0,         williams_s9,   williams_s9, williams_s9_state,   williams_s9,   ROT0,   "Williams",   "Sorcerer (L-2)",            GAME_IS_SKELETON_MECHANICAL)
166GAME(1984,   sshtl_l7,      0,         williams_s9,   williams_s9, williams_s9_state,   williams_s9,   ROT0,   "Williams",   "Space Shuttle (L-7)",         GAME_IS_SKELETON_MECHANICAL)
167GAME(1985,   alcat_l7,      0,         williams_s9,   williams_s9, williams_s9_state,   williams_s9,   ROT0,   "Williams",   "Alley Cats (Shuffle) (L-7)",   GAME_IS_SKELETON_MECHANICAL)
168GAME(1984,   szone_l5,      0,         williams_s9,   williams_s9, williams_s9_state,   williams_s9,   ROT0,   "Williams",   "Strike Zone (Shuffle) (L-5)",   GAME_IS_SKELETON_MECHANICAL)
169GAME(1984,   szone_l2,      szone_l5,   williams_s9,   williams_s9, williams_s9_state,   williams_s9,   ROT0,   "Williams",   "Strike Zone (Shuffle) (L-2)",   GAME_IS_SKELETON_MECHANICAL)
513GAME( 1985, sorcr_l1, sorcr_l2, s9, s9, driver_device, 0, ROT0, "Williams", "Sorcerer (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING)
514GAME( 1985, sorcr_l2, 0,        s9, s9, driver_device, 0, ROT0, "Williams", "Sorcerer (L-2)", GAME_MECHANICAL | GAME_NOT_WORKING)
515GAME( 1984, sshtl_l7, 0,        s9, s9, driver_device, 0, ROT0, "Williams", "Space Shuttle (L-7)", GAME_MECHANICAL | GAME_NOT_WORKING)
516GAME( 1985, comet_l4, comet_l5, s9, s9, driver_device, 0, ROT0, "Williams", "Comet (L-4)", GAME_MECHANICAL)
517GAME( 1985, comet_l5, 0,        s9, s9, driver_device, 0, ROT0, "Williams", "Comet (L-5)", GAME_MECHANICAL)
518GAME( 1985, alcat_l7, 0,        s9, s9, driver_device, 0, ROT0, "Williams", "Alley Cats (Shuffle) (L-7)", GAME_MECHANICAL | GAME_NOT_WORKING | GAME_NO_SOUND)
519GAME( 1984, szone_l5, 0,        s9, s9, driver_device, 0, ROT0, "Williams", "Strike Zone (Shuffle) (L-5)", GAME_MECHANICAL | GAME_NOT_WORKING)
520GAME( 1984, szone_l2, szone_l5, s9, s9, driver_device, 0, ROT0, "Williams", "Strike Zone (Shuffle) (L-2)", GAME_MECHANICAL | GAME_NOT_WORKING)
trunk/src/mame/drivers/s8.c
r18758r18759
8282   DECLARE_WRITE_LINE_MEMBER(pia_cb2_w);
8383   DECLARE_WRITE_LINE_MEMBER(pia21_ca2_w);
8484   DECLARE_WRITE_LINE_MEMBER(pia21_cb2_w) { }; // enable solenoids
85   DECLARE_WRITE_LINE_MEMBER(pia24_cb2_w) { }; // dummy to stop error log filling up
8586   DECLARE_WRITE_LINE_MEMBER(pia28_ca2_w) { }; // comma3&4
8687   DECLARE_WRITE_LINE_MEMBER(pia28_cb2_w) { }; // comma1&2
8788   TIMER_DEVICE_CALLBACK_MEMBER(irq);
r18758r18759
278279   DEVCB_DRIVER_MEMBER(s8_state, lamp0_w),      /* port A out */
279280   DEVCB_DRIVER_MEMBER(s8_state, lamp1_w),      /* port B out */
280281   DEVCB_NULL,      /* line CA2 out */
281   DEVCB_NULL,      /* line CB2 out */
282   DEVCB_DRIVER_LINE_MEMBER(s8_state, pia24_cb2_w),      /* line CB2 out */
282283   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE),      /* IRQA */
283284   DEVCB_CPU_INPUT_LINE("maincpu", M6800_IRQ_LINE)      /* IRQB */
284285};

Previous 199869 Revisions Next


© 1997-2024 The MAME Team