Previous 199869 Revisions Next

r18333 Sunday 7th October, 2012 at 12:24:09 UTC by Robbbert
Atari_s1: more wip (system works but no sound)
[src/mame/drivers]atari_s1.c
[src/mame/layout]atari_s1.lay

trunk/src/mame/layout/atari_s1.lay
r18332r18333
134134      </bezel>
135135      <bezel element="P0"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
136136      <bezel element="P1"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
137      <bezel element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
138      <bezel element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
139      <bezel element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
140      <bezel element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
137      <bezel name="text3" element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
138      <bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
139      <bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
140      <bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
141141   </view>
142142</mamelayout>
trunk/src/mame/drivers/atari_s1.c
r18332r18333
7979static INPUT_PORTS_START( atari_s1 )
8080   // need to fix these, the manual has a lot of mistakes
8181   PORT_START("INP00")
82   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test") PORT_CODE(KEYCODE_0)
82   PORT_DIPNAME( 0x80, 0x80, "2000" )
83   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
84   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
8385   PORT_START("INP01")
84   PORT_DIPNAME( 0x80, 0x80, "Spelling Award" )
86   PORT_DIPNAME( 0x80, 0x80, "Spelling Award" ) // actually = coins
8587   PORT_DIPSETTING(    0x80, "Extra Ball" )
8688   PORT_DIPSETTING(    0x00, "20,000 points" )
8789   PORT_START("INP02")
88   PORT_DIPNAME( 0x80, 0x80, "Last Ball double bonus" )
90   PORT_DIPNAME( 0x80, 0x80, "Last Ball double bonus" ) // actually = match
8991   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
9092   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
9193   PORT_START("INP03")
9294   // This switch together with INP4C thru 4F, sets the scores at which a replay is awarded
93   PORT_DIPNAME( 0x80, 0x80, "Replay score" )
95   PORT_DIPNAME( 0x80, 0x80, "Replay score" ) // actually = number of balls
9496   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
9597   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
9698   // These 2 dips control max number of credits (both off = 8; then 12, 15, both on=20)
r18332r18333
295297
296298TIMER_DEVICE_CALLBACK_MEMBER( atari_s1_state::nmi )
297299{
300   static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0, 0, 0, 0, 0, 0 };
298301   m_bit6++;
299302   m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
300303
301   static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0, 0, 0, 0, 0, 0 };
302304   m_out_offs++;
303305   m_out_offs &= 0x1f;
304   output_set_digit_value(m_out_offs << 1, patterns[m_p_ram[m_out_offs]>>4]);
305   output_set_digit_value((m_out_offs << 1)+1, patterns[m_p_ram[m_out_offs]&15]);
306   if ((m_out_offs & 3) == 3)
307   {
308      char wordnum[8];
309      sprintf(wordnum,"text%d",m_out_offs>>2);
310      output_set_value(wordnum, !(m_p_ram[m_out_offs]==8));
311   }
312   else
313   {
314      output_set_digit_value(m_out_offs << 1, patterns[m_p_ram[m_out_offs]>>4]);
315      output_set_digit_value((m_out_offs << 1)+1, patterns[m_p_ram[m_out_offs]&15]);
316   }
306317}
307318
308319static MACHINE_CONFIG_START( atari_s1, atari_s1_state )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team