Previous 15994 Revisions Next

r12982 Tuesday 4th October, 2011 at 05:24:54 UTC by Robbbert
GLASGOW - modernised.
[src/mess/drivers]glasgow.c polgar.c

src/mess/drivers/glasgow.c
r12981r12982
28283. Computer plays black, it will work out its move and beep.
29294. Read the move in the display, or look for the flashing LEDs.
30305. Move the computer's piece in the same way you moved yours.
316. If a piece is being taken, firstly click on the piece then click the blank
32    area at bottom right. This causes the piece to disappear. After that,
33    move the piece that took the other piece.
316. If a piece is being taken, firstly click on the piece then click the board
32    edge. This causes the piece to disappear. After that, move the piece that
33    took the other piece.
34347. You'll need to read the official user manual for advanced features, or if
3535    you get messages such as "Err1".
3636
37Note about clickable artwork: it seems the horizontal coordinates can vary
38    between computers. The supplied artwork at svn r6463 works with my
39    computer; it may be out of alignment on yours.
37Note about clickable artwork: You need to be running in windowed mode;
38    and you need to use newui.
4039
4140R.Schaefer Oct 2010
4241
r12981r12982
46454. Save states added.
4746
4847***************************************************************************/
48#define ADDRESS_MAP_MODERN
4949
5050#include "emu.h"
5151#include "cpu/m68000/m68000.h"
r12981r12982
5858{
5959public:
6060   glasgow_state(const machine_config &mconfig, device_type type, const char *tag)
61      : driver_device(mconfig, type, tag) { }
61      : driver_device(mconfig, type, tag),
62   m_maincpu(*this, "maincpu"),
63   m_beep(*this, BEEPER_TAG)
64   { }
6265
66   required_device<cpu_device> m_maincpu;
67   required_device<device_t> m_beep;
68   DECLARE_WRITE16_MEMBER(glasgow_lcd_w);
69   DECLARE_WRITE16_MEMBER(glasgow_lcd_flag_w);
70   DECLARE_READ16_MEMBER(glasgow_keys_r);
71   DECLARE_WRITE16_MEMBER(glasgow_keys_w);
72   DECLARE_WRITE16_MEMBER(write_lcd);
73   DECLARE_WRITE16_MEMBER(write_lcd_flag);
74   DECLARE_WRITE16_MEMBER(write_irq_flag);
75   DECLARE_READ16_MEMBER(read_newkeys16);
76   DECLARE_WRITE32_MEMBER(write_lcd32);
77   DECLARE_WRITE32_MEMBER(write_lcd_flag32);
78   DECLARE_READ32_MEMBER(read_newkeys32);
79   DECLARE_WRITE32_MEMBER(write_beeper32);
6380   UINT8 m_lcd_shift_counter;
6481   UINT8 m_led7;
6582   UINT8 m_irq_flag;
r12981r12982
6885
6986
7087
71static WRITE16_HANDLER( glasgow_lcd_w )
88WRITE16_MEMBER( glasgow_state::glasgow_lcd_w )
7289{
73   glasgow_state *state = space->machine().driver_data<glasgow_state>();
7490   UINT8 lcd_data = data >> 8;
7591
76   if (state->m_led7 == 0)
77      output_set_digit_value(state->m_lcd_shift_counter, lcd_data);
92   if (m_led7 == 0)
93      output_set_digit_value(m_lcd_shift_counter, lcd_data);
7894
79   state->m_lcd_shift_counter--;
80   state->m_lcd_shift_counter &= 3;
95   m_lcd_shift_counter--;
96   m_lcd_shift_counter &= 3;
8197}
8298
83static WRITE16_HANDLER( glasgow_lcd_flag_w )
99WRITE16_MEMBER( glasgow_state::glasgow_lcd_flag_w )
84100{
85   glasgow_state *state = space->machine().driver_data<glasgow_state>();
86   device_t *speaker = space->machine().device(BEEPER_TAG);
87101   UINT16 lcd_flag = data & 0x8100;
88102
89   beep_set_state(speaker, (lcd_flag & 0x100) ? 1 : 0);
103   beep_set_state(m_beep, BIT(lcd_flag, 8));
90104
91105   if (lcd_flag)
92      state->m_led7 = 255;
106      m_led7 = 255;
93107   else
94108   {
95      state->m_led7 = 0;
109      m_led7 = 0;
96110      mboard_key_selector = 1;
97111   }
98112}
99113
100static READ16_HANDLER( glasgow_keys_r )
114READ16_MEMBER( glasgow_state::glasgow_keys_r )
101115{
102116   UINT8 data = 0xff;
103117
104118   /* See if any keys pressed */
105119   data = 3;
106120
107   if (mboard_key_select == input_port_read(space->machine(), "LINE0"))
121   if (mboard_key_select == input_port_read(machine(), "LINE0"))
108122      data &= 1;
109123
110   if (mboard_key_select == input_port_read(space->machine(), "LINE1"))
124   if (mboard_key_select == input_port_read(machine(), "LINE1"))
111125      data &= 2;
112126
113127   return data << 8;
114128}
115129
116static WRITE16_HANDLER( glasgow_keys_w )
130WRITE16_MEMBER( glasgow_state::glasgow_keys_w )
117131{
118132   mboard_key_select = data >> 8;
119133}
120134
121static WRITE16_HANDLER( write_lcd )
135WRITE16_MEMBER( glasgow_state::write_lcd )
122136{
123   glasgow_state *state = space->machine().driver_data<glasgow_state>();
124137   UINT8 lcd_data = data >> 8;
125138
126   output_set_digit_value(state->m_lcd_shift_counter, mboard_lcd_invert & 1 ? lcd_data^0xff : lcd_data);
127   state->m_lcd_shift_counter--;
128   state->m_lcd_shift_counter &= 3;
139   output_set_digit_value(m_lcd_shift_counter, mboard_lcd_invert & 1 ? lcd_data^0xff : lcd_data);
140   m_lcd_shift_counter--;
141   m_lcd_shift_counter &= 3;
129142   logerror("LCD Offset = %d Data low = %x \n", offset, lcd_data);
130143}
131144
132static WRITE16_HANDLER( write_lcd_flag )
145WRITE16_MEMBER( glasgow_state::write_lcd_flag )
133146{
134   glasgow_state *state = space->machine().driver_data<glasgow_state>();
135147//  UINT8 lcd_flag;
136148   mboard_lcd_invert = 0;
137149//  lcd_flag=data >> 8;
138150   //beep_set_state(0, (data >> 8) & 1 ? 1 : 0);
139   if ((data >> 8) == 0) {
151   if ((data >> 8) == 0)
152   {
140153      mboard_key_selector = 1;
141      state->m_led7 = 0;
142   } else {
143      state->m_led7 = 0xff;
154      m_led7 = 0;
144155   }
156   else
157      m_led7 = 0xff;
145158
159
146160//  The key function in the rom expects after writing to
147161//  the  a value from the second key row;
148162//  if (lcd_flag != 0)
149//      state->m_led7 = 255;
163//      m_led7 = 255;
150164//  else
151//      state->m_led7 = 0;
165//      m_led7 = 0;
152166//
153167   logerror("LCD Flag 16 = %x \n", data);
154168}
155169
156static WRITE16_HANDLER( write_irq_flag )
170WRITE16_MEMBER( glasgow_state::write_irq_flag )
157171{
158   glasgow_state *state = space->machine().driver_data<glasgow_state>();
159   device_t *speaker = space->machine().device(BEEPER_TAG);
160
161   beep_set_state(speaker, data & 0x100);
172   beep_set_state(m_beep, data & 0x100);
162173   logerror("Write 0x800004 = %x \n", data);
163   state->m_irq_flag = 1;
164   state->m_beeper = data;
174   m_irq_flag = 1;
175   m_beeper = data;
165176}
166177
167static READ16_HANDLER( read_newkeys16 )  //Amsterdam, Roma
178READ16_MEMBER( glasgow_state::read_newkeys16 )  //Amsterdam, Roma
168179{
169180   UINT16 data;
170181
171182   if (mboard_key_selector == 0)
172      data = input_port_read(space->machine(), "LINE0");
183      data = input_port_read(machine(), "LINE0");
173184   else
174      data = input_port_read(space->machine(), "LINE1");
185      data = input_port_read(machine(), "LINE1");
175186
176187   logerror("read Keyboard Offset = %x Data = %x Select = %x \n", offset, data, mboard_key_selector);
177188   data <<= 8;
r12981r12982
180191
181192
182193#ifdef UNUSED_FUNCTION
183static READ16_HANDLER(read_test)
194READ16_HANDLER(read_test)
184195{
185196   logerror("read test Offset = %x Data = %x\n  ",offset,data);
186197   return 0xffff;    // Mephisto need it for working
r12981r12982
193204
194205*/
195206
196static WRITE32_HANDLER( write_lcd32 )
207WRITE32_MEMBER( glasgow_state::write_lcd32 )
197208{
198   glasgow_state *state = space->machine().driver_data<glasgow_state>();
199209   UINT8 lcd_data = data >> 8;
200210
201   output_set_digit_value(state->m_lcd_shift_counter, mboard_lcd_invert & 1 ? lcd_data^0xff : lcd_data);
202   state->m_lcd_shift_counter--;
203   state->m_lcd_shift_counter &= 3;
211   output_set_digit_value(m_lcd_shift_counter, mboard_lcd_invert & 1 ? lcd_data^0xff : lcd_data);
212   m_lcd_shift_counter--;
213   m_lcd_shift_counter &= 3;
204214   //logerror("LCD Offset = %d Data   = %x \n  ", offset, lcd_data);
205215}
206216
207static WRITE32_HANDLER( write_lcd_flag32 )
217WRITE32_MEMBER( glasgow_state::write_lcd_flag32 )
208218{
209   glasgow_state *state = space->machine().driver_data<glasgow_state>();
210219//  UINT8 lcd_flag = data >> 24;
211220
212221   mboard_lcd_invert = 0;
213222
214   if ((data >> 24) == 0) {
223   if ((data >> 24) == 0)
224   {
215225      mboard_key_selector = 1;
216      state->m_led7 = 0;
217   } else {
218      state->m_led7 = 0xff;
226      m_led7 = 0;
219227   }
228   else
229      m_led7 = 0xff;
220230
231
221232   //logerror("LCD Flag 32 = %x \n", data >> 24);
222233   //beep_set_state(0, (data >> 24) & 1 ? 1 : 0);
223234
224235//  if (lcd_flag != 0)
225//      state->m_led7 = 255;
236//      m_led7 = 255;
226237//  else
227//      state->m_led7 = 0;
238//      m_led7 = 0;
228239}
229240
230static READ32_HANDLER( read_newkeys32 ) // Dallas 32, Roma 32
241READ32_MEMBER( glasgow_state::read_newkeys32 ) // Dallas 32, Roma 32
231242{
232243   UINT32 data;
233244
234245   if (mboard_key_selector == 0)
235      data = input_port_read(space->machine(), "LINE0");
246      data = input_port_read(machine(), "LINE0");
236247   else
237      data = input_port_read(space->machine(), "LINE1");
248      data = input_port_read(machine(), "LINE1");
238249   //if (mboard_key_selector == 1) data = input_port_read(machine, "LINE0"); else data = 0;
239250   if(data)
240251      logerror("read Keyboard Offset = %x Data = %x\n", offset, data);
r12981r12982
243254}
244255
245256#ifdef UNUSED_FUNCTION
246static READ16_HANDLER(read_board_amsterd)
257READ16_HANDLER(read_board_amsterd)
247258{
248259   logerror("read board amsterdam Offset = %x \n  ", offset);
249260   return 0xffff;
250261}
251262#endif
252263
253static WRITE32_HANDLER ( write_beeper32 )
264WRITE32_MEMBER( glasgow_state::write_beeper32 )
254265{
255   glasgow_state *state = space->machine().driver_data<glasgow_state>();
256   device_t *speaker = space->machine().device(BEEPER_TAG);
257   beep_set_state(speaker, data & 0x01000000);
266   beep_set_state(m_beep, data & 0x01000000);
258267   logerror("Write 0x8000004 = %x \n", data);
259   state->m_irq_flag = 1;
260   state->m_beeper = data;
268   m_irq_flag = 1;
269   m_beeper = data;
261270}
262271
263272static TIMER_DEVICE_CALLBACK( update_nmi )
r12981r12982
273282static MACHINE_START( glasgow )
274283{
275284   glasgow_state *state = machine.driver_data<glasgow_state>();
276   device_t *speaker = machine.device(BEEPER_TAG);
277285
278286   mboard_key_selector = 0;
279287   state->m_irq_flag = 0;
280288   state->m_lcd_shift_counter = 3;
281   beep_set_frequency(speaker, 44);
289   beep_set_frequency(state->m_beep, 44);
282290
283291   mboard_savestate_register(machine);
284292}
r12981r12982
287295static MACHINE_START( dallas32 )
288296{
289297   glasgow_state *state = machine.driver_data<glasgow_state>();
290   device_t *speaker = machine.device(BEEPER_TAG);
291298
292299   state->m_lcd_shift_counter = 3;
293   beep_set_frequency(speaker, 44);
300   beep_set_frequency(state->m_beep, 44);
294301
295302   mboard_savestate_register(machine);
296303}
r12981r12982
305312   mboard_set_board();
306313}
307314
308static ADDRESS_MAP_START(glasgow_mem, AS_PROGRAM, 16)
315static ADDRESS_MAP_START(glasgow_mem, AS_PROGRAM, 16, glasgow_state)
309316   ADDRESS_MAP_GLOBAL_MASK(0x1FFFF)
310317   AM_RANGE(0x00000000, 0x0000ffff) AM_ROM
311   AM_RANGE(0x00010000, 0x00010001) AM_WRITE( glasgow_lcd_w )
312   AM_RANGE(0x00010002, 0x00010003) AM_READWRITE( glasgow_keys_r, glasgow_keys_w )
313   AM_RANGE(0x00010004, 0x00010005) AM_WRITE( glasgow_lcd_flag_w )
314   AM_RANGE(0x00010006, 0x00010007) AM_READWRITE( mboard_read_board_16, mboard_write_LED_16 )
315   AM_RANGE(0x00010008, 0x00010009) AM_WRITE( mboard_write_board_16 )
318   AM_RANGE(0x00010000, 0x00010001) AM_WRITE(glasgow_lcd_w)
319   AM_RANGE(0x00010002, 0x00010003) AM_READWRITE(glasgow_keys_r,glasgow_keys_w)
320   AM_RANGE(0x00010004, 0x00010005) AM_WRITE(glasgow_lcd_flag_w)
321   AM_RANGE(0x00010006, 0x00010007) AM_READWRITE_LEGACY(mboard_read_board_16,mboard_write_LED_16)
322   AM_RANGE(0x00010008, 0x00010009) AM_WRITE_LEGACY(mboard_write_board_16)
316323   AM_RANGE(0x0001c000, 0x0001ffff) AM_RAM      // 16KB
317324ADDRESS_MAP_END
318325
319326
320static ADDRESS_MAP_START(amsterd_mem, AS_PROGRAM, 16)
327static ADDRESS_MAP_START(amsterd_mem, AS_PROGRAM, 16, glasgow_state)
321328   // ADDRESS_MAP_GLOBAL_MASK(0x7FFFF)
322329   AM_RANGE(0x00000000, 0x0000ffff) AM_ROM
323   AM_RANGE(0x00800002, 0x00800003) AM_WRITE( write_lcd )
324   AM_RANGE(0x00800008, 0x00800009) AM_WRITE( write_lcd_flag )
325   AM_RANGE(0x00800004, 0x00800005) AM_WRITE( write_irq_flag )
326   AM_RANGE(0x00800010, 0x00800011) AM_WRITE( mboard_write_board_16 )
327   AM_RANGE(0x00800020, 0x00800021) AM_READ( mboard_read_board_16 )
328   AM_RANGE(0x00800040, 0x00800041) AM_READ( read_newkeys16 )
329   AM_RANGE(0x00800088, 0x00800089) AM_WRITE( mboard_write_LED_16 )
330   AM_RANGE(0x00800002, 0x00800003) AM_WRITE(write_lcd)
331   AM_RANGE(0x00800008, 0x00800009) AM_WRITE(write_lcd_flag)
332   AM_RANGE(0x00800004, 0x00800005) AM_WRITE(write_irq_flag)
333   AM_RANGE(0x00800010, 0x00800011) AM_WRITE_LEGACY(mboard_write_board_16)
334   AM_RANGE(0x00800020, 0x00800021) AM_READ_LEGACY(mboard_read_board_16)
335   AM_RANGE(0x00800040, 0x00800041) AM_READ(read_newkeys16)
336   AM_RANGE(0x00800088, 0x00800089) AM_WRITE_LEGACY(mboard_write_LED_16)
330337   AM_RANGE(0x00ffc000, 0x00ffffff) AM_RAM      // 16KB
331338ADDRESS_MAP_END
332339
333340
334static ADDRESS_MAP_START(dallas32_mem, AS_PROGRAM, 32)
341static ADDRESS_MAP_START(dallas32_mem, AS_PROGRAM, 32, glasgow_state)
335342   // ADDRESS_MAP_GLOBAL_MASK(0x1FFFF)
336343   AM_RANGE(0x00000000, 0x0000ffff) AM_ROM
337   AM_RANGE(0x00800000, 0x00800003) AM_WRITE( write_lcd32 )
338   AM_RANGE(0x00800004, 0x00800007) AM_WRITE( write_beeper32 )
339   AM_RANGE(0x00800008, 0x0080000B) AM_WRITE( write_lcd_flag32 )
340   AM_RANGE(0x00800010, 0x00800013) AM_WRITE( mboard_write_board_32 )
341   AM_RANGE(0x00800020, 0x00800023) AM_READ( mboard_read_board_32 )
342   AM_RANGE(0x00800040, 0x00800043) AM_READ( read_newkeys32 )
343   AM_RANGE(0x00800088, 0x0080008b) AM_WRITE( mboard_write_LED_32 )
344   AM_RANGE(0x0010000, 0x001ffff) AM_RAM   // 64KB
344   AM_RANGE(0x00010000, 0x0001ffff) AM_RAM   // 64KB
345   AM_RANGE(0x00800000, 0x00800003) AM_WRITE(write_lcd32)
346   AM_RANGE(0x00800004, 0x00800007) AM_WRITE(write_beeper32)
347   AM_RANGE(0x00800008, 0x0080000B) AM_WRITE(write_lcd_flag32)
348   AM_RANGE(0x00800010, 0x00800013) AM_WRITE_LEGACY(mboard_write_board_32)
349   AM_RANGE(0x00800020, 0x00800023) AM_READ_LEGACY(mboard_read_board_32)
350   AM_RANGE(0x00800040, 0x00800043) AM_READ(read_newkeys32)
351   AM_RANGE(0x00800088, 0x0080008b) AM_WRITE_LEGACY(mboard_write_LED_32)
345352ADDRESS_MAP_END
346353
347354static INPUT_PORTS_START( new_keyboard ) //Amsterdam, Dallas 32, Roma, Roma 32
r12981r12982
506513   MCFG_MACHINE_RESET(glasgow)
507514   MCFG_SPEAKER_STANDARD_MONO("mono")
508515   MCFG_SOUND_ADD(BEEPER_TAG, BEEP, 0)
509   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
516   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
510517
511518   MCFG_TIMER_ADD_PERIODIC("nmi_timer", update_nmi, attotime::from_hz(50))
512519   MCFG_TIMER_ADD_PERIODIC("artwork_timer", mboard_update_artwork, attotime::from_hz(100))
513520MACHINE_CONFIG_END
514521
515522static MACHINE_CONFIG_DERIVED( amsterd, glasgow )
516    /* basic machine hardware */
517    MCFG_CPU_MODIFY("maincpu")
518    MCFG_CPU_PROGRAM_MAP(amsterd_mem)
523   /* basic machine hardware */
524   MCFG_CPU_MODIFY("maincpu")
525   MCFG_CPU_PROGRAM_MAP(amsterd_mem)
519526MACHINE_CONFIG_END
520527
521528static MACHINE_CONFIG_DERIVED( dallas32, glasgow )
522    /* basic machine hardware */
523    MCFG_CPU_REPLACE("maincpu", M68020, 14000000)
524    MCFG_CPU_PROGRAM_MAP(dallas32_mem)
525    MCFG_MACHINE_START( dallas32 )
529   /* basic machine hardware */
530   MCFG_CPU_REPLACE("maincpu", M68020, 14000000)
531   MCFG_CPU_PROGRAM_MAP(dallas32_mem)
532   MCFG_MACHINE_START( dallas32 )
526533
527534   MCFG_DEVICE_REMOVE("nmi_timer")
528535   MCFG_TIMER_ADD_PERIODIC("nmi_timer", update_nmi32, attotime::from_hz(50))
r12981r12982
585592***************************************************************************/
586593
587594/*     YEAR, NAME,     PARENT,   COMPAT, MACHINE,     INPUT,          INIT, COMPANY,                      FULLNAME,                 FLAGS */
588CONS(  1984, glasgow,  0,        0,    glasgow,       oldkeys,        0,   "Hegener & Glaser Muenchen",  "Mephisto III S Glasgow", GAME_SUPPORTS_SAVE)
589CONS(  1984, amsterd,  0,       0,    amsterd,       newkeys,        0,   "Hegener & Glaser Muenchen",  "Mephisto Amsterdam",     GAME_SUPPORTS_SAVE)
590CONS(  1984, dallas,   glasgow,  0,    glasgow,       oldkeys,        0,   "Hegener & Glaser Muenchen",  "Mephisto Dallas",        GAME_SUPPORTS_SAVE)
591CONS(  1984, roma,     amsterd,  0,    glasgow,       newkeys,        0,   "Hegener & Glaser Muenchen",  "Mephisto Roma",          GAME_NOT_WORKING)
592CONS(  1984, dallas32, amsterd,  0,    dallas32,      newkeys,        0,   "Hegener & Glaser Muenchen",  "Mephisto Dallas 32 Bit", GAME_SUPPORTS_SAVE)
593CONS(  1984, roma32,   amsterd,  0,    dallas32,      newkeys,        0,   "Hegener & Glaser Muenchen",  "Mephisto Roma 32 Bit",   GAME_SUPPORTS_SAVE)
594CONS(  1984, dallas16, amsterd,  0,    amsterd,       newkeys,        0,   "Hegener & Glaser Muenchen",  "Mephisto Dallas 16 Bit", GAME_SUPPORTS_SAVE)
595CONS(  1984, glasgow,  0,        0,      glasgow,     oldkeys,        0, "Hegener & Glaser Muenchen", "Mephisto III S Glasgow", GAME_SUPPORTS_SAVE)
596CONS(  1984, amsterd,  0,        0,      amsterd,     newkeys,        0, "Hegener & Glaser Muenchen", "Mephisto Amsterdam",     GAME_SUPPORTS_SAVE)
597CONS(  1984, dallas,   glasgow,  0,      glasgow,     oldkeys,        0, "Hegener & Glaser Muenchen", "Mephisto Dallas",        GAME_SUPPORTS_SAVE)
598CONS(  1984, roma,     amsterd,  0,      glasgow,     newkeys,        0, "Hegener & Glaser Muenchen", "Mephisto Roma",          GAME_NOT_WORKING)
599CONS(  1984, dallas32, amsterd,  0,      dallas32,    newkeys,        0, "Hegener & Glaser Muenchen", "Mephisto Dallas 32 Bit", GAME_SUPPORTS_SAVE)
600CONS(  1984, roma32,   amsterd,  0,      dallas32,    newkeys,        0, "Hegener & Glaser Muenchen", "Mephisto Roma 32 Bit",   GAME_SUPPORTS_SAVE)
601CONS(  1984, dallas16, amsterd,  0,      amsterd,     newkeys,        0, "Hegener & Glaser Muenchen", "Mephisto Dallas 16 Bit", GAME_SUPPORTS_SAVE)
src/mess/drivers/polgar.c
r12981r12982
6767   UINT8 m_lcd_char;
6868   UINT8 m_led7;
6969   UINT8 m_latch_data;
70   UINT8 convert_imputmask(UINT8 input);
71   int get_first_cleared_bit(UINT8 data);
7072};
7173
7274static const int value[4] = {0x80,0x81,0x00,0x01};
r12981r12982
7981   NULL   // custom display layout
8082};
8183
82static UINT8 convert_imputmask(UINT8 input)
84UINT8 polgar_state::convert_imputmask(UINT8 input)
8385{
8486   input^=0xff;
85   switch (input) {
87   switch (input)
88   {
8689      case 0x01:
8790         return 0x80;
8891      case 0x02:
r12981r12982
101104         return 0x01;
102105      default:
103106         return 0x00;
104      }
107   }
105108}
106109
107static int get_first_cleared_bit(UINT8 data)
110int polgar_state::get_first_cleared_bit(UINT8 data)
108111{
109112   int i;
110113

Previous 15994 Revisions Next


© 1998-2018 The MESS Team