Previous 15994 Revisions Next

r1105 Friday 12th October, 2007 at 19:26:41 UTC by Dirk Verwiebe
[Mephisto. 16/32 Bit]
Finished Amsterdam, Dallas 32 and Roma 32 drivers
[artwork]amsterd.zip* dallas32.zip* roma32.zip*
[docs]messnew.txt
[src/mess]messdriv.c
[src/mess/drivers]glasgow.c

src/mess/messdriv.c
r1104r1105
817817   DRIVER( amsterd )      /* Amsterdam                     */
818818   DRIVER( dallas )      /* Dallas                     */
819819   DRIVER( dallas32 )      /* Dallas                     */
820   DRIVER( roma )      /* Roma                     */
820   DRIVER( roma32 )      /* Roma                     */
821821   /* Novag */
822822TESTDRIVER( ssystem3 )   /* Chess Champion Super System III / MK III         */
823823
src/mess/drivers/glasgow.c
r1104r1105
3535       key_hi,
3636       key_select,
3737       irq_flag,
38       lcd_invert,
3839       key_selector;
40       UINT8 board_value;
3941static UINT16 beeper;
4042 
4143 
4244// Used by Glasgow and Dallas
43static WRITE16_HANDLER ( write_lcd )
45static WRITE16_HANDLER ( write_lcd_gg )
4446{
4547  UINT8 lcd_data;
4648  lcd_data = data>>8;
r1104r1105
5052  logerror("LCD Offset = %d Data low  = %x \n  ",offset,lcd_data);
5153}
5254 
53 
55static WRITE16_HANDLER ( write_lcd )
56{
57  UINT8 lcd_data;
58  lcd_data = data>>8;
59  output_set_digit_value(lcd_shift_counter,lcd_invert&1?lcd_data^0xff:lcd_data);
60  lcd_shift_counter--;
61  lcd_shift_counter&=3;
62  logerror("LCD Offset = %d Data low  = %x \n  ",offset,lcd_data);
63}
5464static WRITE16_HANDLER ( write_lcd_flag )
5565{
5666  UINT8 lcd_flag;
67  lcd_invert=0;
5768  lcd_flag=data>>8;
69  //beep_set_state(0,lcd_flag&1?1:0);
70  if (lcd_flag == 0) key_selector=1;
71  if (lcd_flag!=0) led7=255;else led7=0;
72  logerror("LCD Flag 16  = %x \n  ",data);
73}
74 
75 
76static WRITE16_HANDLER ( write_lcd_flag_gg )
77{
78  UINT8 lcd_flag;
79  lcd_flag=data>>8;
5880  beep_set_state(0,lcd_flag&1?1:0);
59  if ((lcd_flag &01)== 0) key_selector=1;
60  if ((lcd_flag &01)== 1) key_selector=0;
61  //if ((lcd_flag &01)== 0) {key_selector=0;}
81  if (lcd_flag == 0) key_selector=1;
6282  if (lcd_flag!=0) led7=255;else led7=0;
63  logerror("LCD Flag   = %x \n  ",data);
83  logerror("LCD Flag 16  = %x \n  ",data);
6484}
6585 
6686static WRITE16_HANDLER ( write_keys )
r1104r1105
7292static WRITE16_HANDLER ( write_beeper )
7393{
7494UINT8 beep_flag;
95lcd_invert=1;
7596beep_flag=data>>8;
7697//if ((beep_flag &02)== 0) key_selector=0;else key_selector=1;
7798 logerror("Write Beeper   = %x \n  ",data);
r1104r1105
80101 
81102static WRITE16_HANDLER ( write_irq_flag )
82103{
104 
105 beep_set_state(0,data&0x100);
106 logerror("Write 0x800004   = %x \n  ",data);
83107 irq_flag=1;
84108 beeper=data;
85109}
r1104r1105
99123static READ16_HANDLER(read_newkeys16)  //Amsterdam, Roma
100124{
101125 UINT16 data;
126 
102127 if (key_selector==0) data=readinputport(0x00);else data=readinputport(0x01);
103 //if (key_selector==1) data=readinputport(0x00);else data=0;
104 logerror("read Keyboard Offset = %x Data = %x\n  ",offset,data);
128 logerror("read Keyboard Offset = %x Data = %x   Select = %x \n  ",offset,data,key_selector);
105129 data=data<<8;
106130 return data ;
107131}
108132 
109133static READ16_HANDLER(read_board)
110134{
135 UINT16 data;
136  data=board_value^0xff;
137  data=data<<8;
111138  logerror("read board Offset = %x \n  ",offset);
112  return 0x0000;   // Mephisto need it for working
139  return data;   // Mephisto need it for working
113140}
114141 
115142static WRITE16_HANDLER(write_board)
116143{
144 UINT8 board;
145 board=data>>8;
146 board_value=board;
147 if (board==0xff) key_selector=0;
117148  logerror("Write Board   = %x \n  ",data>>8);
118149}
119150 
r1104r1105
136167{
137168  UINT8 lcd_data;
138169  lcd_data = data>>8;
139  if (led7==0) output_set_digit_value(lcd_shift_counter,lcd_data);
170  output_set_digit_value(lcd_shift_counter,lcd_invert&1?lcd_data^0xff:lcd_data);
140171  lcd_shift_counter--;
141172  lcd_shift_counter&=3;
142173  //logerror("LCD Offset = %d Data   = %x \n  ",offset,lcd_data);
r1104r1105
144175static WRITE32_HANDLER ( write_lcd_flag32 )
145176{
146177  UINT8 lcd_flag;
178  lcd_invert=0;
147179  lcd_flag=data>>24;
148  if ((lcd_flag &01)== 0) key_selector=1;
149  if ((lcd_flag &01)== 1) key_selector=0;
180  if (lcd_flag == 0) key_selector=1;
150181  logerror("LCD Flag 32  = %x \n  ",lcd_flag);
151182  //beep_set_state(0,lcd_flag&1?1:0);
152183  if (lcd_flag!=0) led7=255;else led7=0;
r1104r1105
155186 
156187static WRITE32_HANDLER ( write_keys32 )
157188{
189 lcd_invert=1;
158190 key_select=data;
159191 logerror("Write Key = %x \n  ",key_select);
160192}
r1104r1105
181213 
182214static WRITE32_HANDLER(write_board32)
183215{
184  logerror("Write Board   = %x \n  ",data);
216 UINT8 board;
217 board=data>>24;
218 if (board==0xff) key_selector=0;
219 logerror("Write Board   = %x \n  ",data);
185220}
186221 
187222 
223static WRITE32_HANDLER ( write_beeper32 )
224{
225  beep_set_state(0,data&0x01000000);
226 logerror("Write 0x8000004   = %x \n  ",data);
227 irq_flag=1;
228 beeper=data;
229}
230 
188231static TIMER_CALLBACK( update_nmi )
189232{
190233   // if (irq_flag==0)cpunum_set_input_line_and_vector(0,  MC68000_IRQ_7, PULSE_LINE, MC68000_INT_ACK_AUTOVECTOR);
r1104r1105
199242 
200243static MACHINE_START( glasgow )
201244{
245  key_selector=0;
202246  irq_flag=0;
203247  lcd_shift_counter=3;
204248   mame_timer_pulse(MAME_TIME_IN_HZ(50), 0, update_nmi);
r1104r1105
234278 
235279static ADDRESS_MAP_START(glasgow_mem, ADDRESS_SPACE_PROGRAM, 16)
236280   AM_RANGE( 0x0000, 0xffff ) AM_ROM
237   AM_RANGE( 0x00ff0000, 0x00ff0001)  AM_MIRROR ( 0xfe0000 ) AM_WRITE     ( write_lcd )
281   AM_RANGE( 0x00ff0000, 0x00ff0001)  AM_MIRROR ( 0xfe0000 ) AM_WRITE     ( write_lcd_gg )
238282  AM_RANGE( 0x00ff0002, 0x00ff0003)  AM_MIRROR ( 0xfe0002 ) AM_READWRITE ( read_keys,write_keys )
239  AM_RANGE( 0x00ff0004, 0x00ff0005)  AM_MIRROR ( 0xfe0004 ) AM_WRITE     ( write_lcd_flag )
240  AM_RANGE( 0x00ff0006, 0x00ff0007)  AM_MIRROR ( 0xfe0006 ) AM_READWRITE ( read_board, write_board )
241  AM_RANGE( 0x00ff0008, 0x00ff0009)  AM_MIRROR ( 0xfe0008 ) AM_WRITE     ( write_beeper )
283  AM_RANGE( 0x00ff0004, 0x00ff0005)  AM_MIRROR ( 0xfe0004 ) AM_WRITE     ( write_lcd_flag_gg )
284  AM_RANGE( 0x00ff0006, 0x00ff0007)  AM_MIRROR ( 0xfe0006 ) AM_READWRITE ( read_board, write_beeper )
285  AM_RANGE( 0x00ff0008, 0x00ff0009)  AM_MIRROR ( 0xfe0008 ) AM_WRITE     ( write_board )
242286  AM_RANGE( 0x00ffC000, 0x00ffFFFF)  AM_MIRROR ( 0xfeC000 ) AM_RAM      // 16KB
243287ADDRESS_MAP_END
244288 
r1104r1105
261305     //ADDRESS_MAP_FLAGS( AMEF_ABITS(17) )
262306     AM_RANGE( 0x0000, 0xffff )        AM_ROM
263307     AM_RANGE( 0x00800000, 0x00800003) AM_WRITE ( write_lcd32 )
308     AM_RANGE( 0x00800004, 0x00800007) AM_WRITE ( write_beeper32 )
264309     AM_RANGE( 0x00800008, 0x0080000B) AM_WRITE ( write_lcd_flag32 )
265310     AM_RANGE( 0x00800010, 0x00800013) AM_WRITE ( write_board32 )
266311     AM_RANGE( 0x00800020, 0x00800023) AM_READ  ( read_board32 )
r1104r1105
277322  PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D4")  PORT_CODE(KEYCODE_D )
278323  PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E5")  PORT_CODE(KEYCODE_E )
279324  PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F6")  PORT_CODE(KEYCODE_F )
325  PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A1")  PORT_CODE(KEYCODE_1 )
326  PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B2")  PORT_CODE(KEYCODE_2 )
327  PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C3")  PORT_CODE(KEYCODE_3 )
328  PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D4")  PORT_CODE(KEYCODE_4 )
329  PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E5")  PORT_CODE(KEYCODE_5 )
330  PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F6")  PORT_CODE(KEYCODE_6 )
280331  PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0")   PORT_CODE(KEYCODE_0 )
281332  PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9")   PORT_CODE(KEYCODE_9 )
282333  PORT_START
r1104r1105
288339  PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER )
289340  PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G7")  PORT_CODE(KEYCODE_G )
290341  PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H8")  PORT_CODE(KEYCODE_H )
342  PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G7")  PORT_CODE(KEYCODE_7 )
343  PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H8")  PORT_CODE(KEYCODE_8 )
291344INPUT_PORTS_END
292345 
293346 
r1104r1105
434487 
435488ROM_START( roma32 )
436489    ROM_REGION( 0x10000, REGION_CPU1, 0 )
437    ROM_LOAD("roma32.bin", 0x000000, 0x10000, CRC(83b9ff3f) SHA1(97bf4cb3c61f8ec328735b3c98281bba44b30a28) )
490    ROM_LOAD("roma32.bin", 0x000000, 0x10000, CRC(587d03bf) SHA1(504e9ff958084700076d633f9c306fc7baf64ffd) )
438491ROM_END
439492 
440493/***************************************************************************
r1104r1105
449502 
450503/*     YEAR, NAME,     PARENT,   BIOS, COMPAT MACHINE,INPUT,          INIT,     CONFIG, COMPANY,                      FULLNAME,                 FLAGS */
451504CONS(  1984, glasgow,  0,        0,    glasgow,       old_keyboard,   NULL,     NULL,   "Hegener & Glaser Muenchen",  "Mephisto III S Glasgow", 0)
452CONS(  1984, amsterd,  0,        0,    amsterd,       new_keyboard,   NULL,     NULL,   "Hegener & Glaser Muenchen",  "Mephisto Amsterdam",     GAME_NOT_WORKING)
505CONS(  1984, amsterd,  0,        0,    amsterd,       new_keyboard,   NULL,     NULL,   "Hegener & Glaser Muenchen",  "Mephisto Amsterdam",     0)
453506CONS(  1984, dallas,   0,        0,    glasgow,       old_keyboard,   NULL,     NULL,   "Hegener & Glaser Muenchen",  "Mephisto Dallas",        0)
454CONS(  1984, roma,     0,        0,    glasgow,       new_keyboard,   NULL,     NULL,   "Hegener & Glaser Muenchen",  "Mephisto Roma",          GAME_NOT_WORKING)
455CONS(  1984, dallas32, 0,        0,    dallas32,      new_keyboard,   NULL,     NULL,   "Hegener & Glaser Muenchen",  "Mephisto Dallas 32 Bit", GAME_NOT_WORKING)
456CONS(  1984, roma32,   0,        0,    dallas32,      new_keyboard,   NULL,     NULL,   "Hegener & Glaser Muenchen",  "Mephisto Roma 32 Bit",   GAME_NOT_WORKING)
507CONS(  1984, roma,     0,        0,    glasgow,       new_keyboard,   NULL,     NULL,   "Hegener & Glaser Muenchen",  "Mephisto Roma",          0)
508CONS(  1984, dallas32, 0,        0,    dallas32,      new_keyboard,   NULL,     NULL,   "Hegener & Glaser Muenchen",  "Mephisto Dallas 32 Bit", 0)
509CONS(  1984, roma32,   0,        0,    dallas32,      new_keyboard,   NULL,     NULL,   "Hegener & Glaser Muenchen",  "Mephisto Roma 32 Bit",   0)
457510 
docs/messnew.txt
r1104r1105
10.119.1
10.119.1
22
33New System Drivers Supported (in no particular order):
44------------------------------------------------------
55- SuperGrafx [Wilbert Pol]
66- Mephisto 8 Bit MM IV, MM V , Rebel 5. [Dirk Verwiebe]
7- Mephisto 16/32 Bit Glasgow, Dallas. [Dirk Verwiebe]
7- Mephisto 16/32 Bit Glasgow, Dallas, Dallas 32, Roma 32,Amsterdam. [Dirk Verwiebe]
88
99
1010System Driver Changes:
artwork/amsterd.zip
artwork/roma32.zip
artwork/dallas32.zip

Previous 15994 Revisions Next


© 1998-2018 The MESS Team