Previous 199869 Revisions Next

r32343 Wednesday 24th September, 2014 at 06:52:59 UTC by Alex Jackson
Convert various pinball drivers to ioport_array (nw)
[src/mame/drivers]atari_s1.c atari_s2.c flicker.c g627.c peyper.c spectra.c techno.c thayers.c zac_2.c

trunk/src/mame/drivers/spectra.c
r32342r32343
5050      : genpin_class(mconfig, type, tag)
5151      , m_maincpu(*this, "maincpu")
5252      , m_snsnd(*this, "snsnd")
53      , m_switch(*this, "SWITCH")
5354      , m_p_ram(*this, "nvram")
5455   { }
5556
r32342r32343
6768   virtual void machine_reset();
6869   required_device<cpu_device> m_maincpu;
6970   required_device<sn76477_device> m_snsnd;
71   required_ioport_array<4> m_switch;
7072   required_shared_ptr<UINT8> m_p_ram;
7173};
7274
r32342r32343
8183ADDRESS_MAP_END
8284
8385static INPUT_PORTS_START( spectra )
84   PORT_START("X0")
86   PORT_START("SWITCH.0")
8587   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
8688   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("L Outlane 1") PORT_CODE(KEYCODE_W)
8789   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("CR Hole") PORT_CODE(KEYCODE_E)
r32342r32343
9092   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("C Bumper") PORT_CODE(KEYCODE_U)
9193   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("L Bumper") PORT_CODE(KEYCODE_I)
9294   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("R Sling") PORT_CODE(KEYCODE_O)
93   PORT_START("X1")
95   PORT_START("SWITCH.1")
9496   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("L Sling") PORT_CODE(KEYCODE_A)
9597   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("R Outlane") PORT_CODE(KEYCODE_S)
9698   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("R Rollover") PORT_CODE(KEYCODE_D)
r32342r32343
99101   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("C Inside Target") PORT_CODE(KEYCODE_H)
100102   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("R Inside Target") PORT_CODE(KEYCODE_J)
101103   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("CL Target") PORT_CODE(KEYCODE_K)
102   PORT_START("X2")
104   PORT_START("SWITCH.2")
103105   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("CL Button") PORT_CODE(KEYCODE_Z)
104106   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("TL Button") PORT_CODE(KEYCODE_Q)
105107   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("TL Target") PORT_CODE(KEYCODE_C)
r32342r32343
108110   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("R Pentagon") PORT_CODE(KEYCODE_N)
109111   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("L Pentagon") PORT_CODE(KEYCODE_M)
110112   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("TL Area") PORT_CODE(KEYCODE_COMMA)
111   PORT_START("X3")
113   PORT_START("SWITCH.3")
112114   PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("L Area") PORT_CODE(KEYCODE_STOP)
113115   PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("R Area") PORT_CODE(KEYCODE_SLASH)
114116   PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Inlane Button") PORT_CODE(KEYCODE_L)
r32342r32343
128130
129131READ8_MEMBER( spectra_state::porta_r )
130132{
131   char kbdrow[6];
132   UINT8 key=0, ret=0;
133   sprintf(kbdrow,"X%X",(m_porta & 0x18) >> 3);
134   key = ioport(kbdrow)->read();
135   ret = ((BIT(key, m_porta & 7)) ? 0x40 : 0) | (m_porta & 0xbf);
133   UINT8 row = (m_porta & 0x18) >> 3;
134   UINT8 key = m_switch[row]->read();
135   UINT8 ret = ((BIT(key, m_porta & 7)) ? 0x40 : 0) | (m_porta & 0xbf);
136136
137137   if (ret == 0x1b && m_p_ram[0x7b] < 0x1E)
138138      m_samples->start(3, 8); // coin
trunk/src/mame/drivers/atari_s1.c
r32342r32343
6464      , m_maincpu(*this, "maincpu")
6565      , m_p_ram(*this, "ram")
6666      , m_dac(*this, "dac")
67      , m_switch(*this, "SWITCH")
6768   { }
6869
6970   DECLARE_READ8_MEMBER(m1080_r);
r32342r32343
9798   required_device<cpu_device> m_maincpu;
9899   required_shared_ptr<UINT8> m_p_ram;
99100   required_device<dac_device> m_dac;
101   required_ioport_array<10> m_switch;
100102};
101103
102104static ADDRESS_MAP_START( atari_s1_map, AS_PROGRAM, 8, atari_s1_state )
r32342r32343
140142ADDRESS_MAP_END
141143
142144static INPUT_PORTS_START( atari_s1 )
143   PORT_START("X0") // 2000-2007
145   PORT_START("SWITCH.0") // 2000-2007
144146   PORT_DIPNAME( 0xc3, 0x00, DEF_STR( Coinage ) ) // left chute; right chute
145147   PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )   // 1C_1C ; 1C_1C
146148   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )   // 1C_2C ; 1C_2C
r32342r32343
170172   PORT_DIPSETTING(    0x20, "Free Game" )
171173   PORT_DIPSETTING(    0x10, "20000 points" ) // same as 0x30
172174
173   PORT_START("X1") // 2008-200F
175   PORT_START("SWITCH.1") // 2008-200F
174176   // This switch together with 204C thru 204F, sets the scores at which a replay is awarded
175177   PORT_DIPNAME( 0x01, 0x00, "Replay score" )
176178   PORT_DIPSETTING(    0x01, DEF_STR( High ) )
r32342r32343
192194   PORT_DIPSETTING(    0x40, "15" )
193195   PORT_DIPSETTING(    0xc0, "20" )
194196
195   PORT_START("X2") // 2010-2017
197   PORT_START("SWITCH.2") // 2010-2017
196198   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
197199   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
198200   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START )
r32342r32343
202204   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER )
203205   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER )
204206
205   PORT_START("X3") // 2018-201F
207   PORT_START("SWITCH.3") // 2018-201F
206208   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER )
207209   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER )
208210   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER )
r32342r32343
212214   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER )
213215   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER )
214216
215   PORT_START("X4") // 2020-2027
217   PORT_START("SWITCH.4") // 2020-2027
216218   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Cabinet Tilt")
217219   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_TILT ) PORT_NAME("Pendulum Tilt")
218220   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left Flipper") PORT_CODE(KEYCODE_LSHIFT)
r32342r32343
222224   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Target 2")
223225   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Target 1")
224226
225   PORT_START("X5") // 2028-202F
227   PORT_START("SWITCH.5") // 2028-202F
226228   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER )
227229   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER )
228230   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER )
r32342r32343
232234   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER )
233235   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER )
234236
235   PORT_START("X6") // 2030-2037
237   PORT_START("SWITCH.6") // 2030-2037
236238   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER )
237239   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Rollover 3") PORT_CODE(KEYCODE_Q)
238240   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Rollover 2") PORT_CODE(KEYCODE_W)
r32342r32343
242244   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Rollover 6") PORT_CODE(KEYCODE_U)
243245   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Rollover 5") PORT_CODE(KEYCODE_I)
244246
245   PORT_START("X7") // 2038-203F
247   PORT_START("SWITCH.7") // 2038-203F
246248   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L Hole") PORT_CODE(KEYCODE_O)
247249   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Bumper 1") PORT_CODE(KEYCODE_V)
248250   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Bumper 2") PORT_CODE(KEYCODE_B)
r32342r32343
252254   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L Pocket") PORT_CODE(KEYCODE_S)
253255   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R Hole") PORT_CODE(KEYCODE_D)
254256
255   PORT_START("X8") // 2040-2047
257   PORT_START("SWITCH.8") // 2040-2047
256258   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L Triangle") PORT_CODE(KEYCODE_F)
257259   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("10 points") PORT_CODE(KEYCODE_G)
258260   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("50 points") PORT_CODE(KEYCODE_H)
r32342r32343
262264   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER )
263265   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R Triangle") PORT_CODE(KEYCODE_J)
264266
265   PORT_START("X9") // 2048-204F
267   PORT_START("SWITCH.9") // 2048-204F
266268   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("50 points and adv letter") PORT_CODE(KEYCODE_K)
267269   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Captive ball rollovers") PORT_CODE(KEYCODE_L)
268270   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Rollover 'B' centre") PORT_CODE(KEYCODE_Z)
r32342r32343
351353
352354READ8_MEMBER( atari_s1_state::switch_r )
353355{
354   char kbdrow[8];
355   sprintf(kbdrow,"X%X",offset>>3);
356   return (BIT(ioport(kbdrow)->read(), offset&7 ) << 7) | (BIT(m_bit6, 1) << 6); // switch bit | BIT6_CLK
356   return (BIT(m_switch[offset>>3]->read(), offset&7 ) << 7) | (BIT(m_bit6, 1) << 6); // switch bit | BIT6_CLK
357357}
358358
359359TIMER_DEVICE_CALLBACK_MEMBER( atari_s1_state::nmi )
trunk/src/mame/drivers/thayers.c
r32342r32343
4343
4444   thayers_state(const machine_config &mconfig, device_type type, const char *tag)
4545      : driver_device(mconfig, type, tag),
46         m_pr7820(*this, "laserdisc"),
47         m_ldv1000(*this, "ldv1000") ,
48      m_maincpu(*this, "maincpu") { }
46      m_pr7820(*this, "laserdisc"),
47      m_ldv1000(*this, "ldv1000"),
48      m_maincpu(*this, "maincpu"),
49      m_row(*this, "ROW") { }
4950
5051   optional_device<pioneer_pr7820_device> m_pr7820;
5152   optional_device<pioneer_ldv1000_device> m_ldv1000;
r32342r32343
9192   virtual void machine_reset();
9293   void check_interrupt();
9394   required_device<cpu_device> m_maincpu;
95   required_ioport_array<10> m_row;
9496
9597protected:
9698   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
r32342r32343
318320   case 6:
319321   case 7:
320322   case 8:
321      {
322         UINT8 data;
323         char port[4];
323      return BIT(m_row[m_keylatch]->read(), m_rx_bit - 5);
324324
325         sprintf(port, "R%d", m_keylatch);
326
327         data = BIT(ioport(port)->read(), m_rx_bit - 5);
328
329         return data;
330      }
331
332325   default:
333326      return 0;
334327   }
r32342r32343
693686   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, thayers_state,laserdisc_enter_r, NULL)
694687   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, thayers_state,laserdisc_ready_r, NULL)
695688
696   PORT_START("R0")
689   PORT_START("ROW.0")
697690   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "2" ) PORT_CODE( KEYCODE_F2 )
698691   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "1 - Clear" ) PORT_CODE( KEYCODE_BACKSPACE )
699692   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Q" ) PORT_CODE( KEYCODE_Q )
700693   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( DEF_STR( Yes ) ) PORT_CODE( KEYCODE_0_PAD )
701694
702   PORT_START("R1")
695   PORT_START("ROW.1")
703696   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Z - Spell of Release" ) PORT_CODE( KEYCODE_Z )
704697   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "A" ) PORT_CODE( KEYCODE_A )
705698   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "W - Amulet" ) PORT_CODE( KEYCODE_W )
706699   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Items" ) PORT_CODE( KEYCODE_1_PAD )
707700
708   PORT_START("R2")
701   PORT_START("ROW.2")
709702   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "X - Scepter" ) PORT_CODE( KEYCODE_X )
710703   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "S - Dagger" ) PORT_CODE( KEYCODE_S )
711704   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "E - Black Mace" ) PORT_CODE( KEYCODE_E )
712705   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Drop Item" ) PORT_CODE( KEYCODE_2_PAD )
713706
714   PORT_START("R3")
707   PORT_START("ROW.3")
715708   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "C - Spell of Seeing" ) PORT_CODE( KEYCODE_C )
716709   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "D - Great Circlet" ) PORT_CODE( KEYCODE_D )
717710   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "R - Blood Sword" ) PORT_CODE( KEYCODE_R )
718711   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Give Score" ) PORT_CODE( KEYCODE_3_PAD )
719712
720   PORT_START("R4")
713   PORT_START("ROW.4")
721714   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "V - Shield" ) PORT_CODE( KEYCODE_V )
722715   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "F - Hunting Horn" ) PORT_CODE( KEYCODE_F )
723716   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "T - Chalice" ) PORT_CODE( KEYCODE_T )
724717   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Replay" ) PORT_CODE( KEYCODE_4_PAD )
725718
726   PORT_START("R5")
719   PORT_START("ROW.5")
727720   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "B - Silver Wheat" ) PORT_CODE( KEYCODE_B )
728721   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "G - Long Bow" ) PORT_CODE( KEYCODE_G )
729722   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Y - Coins" ) PORT_CODE( KEYCODE_Y )
730723   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Combine Action" ) PORT_CODE( KEYCODE_6_PAD )
731724
732   PORT_START("R6")
725   PORT_START("ROW.6")
733726   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "N - Staff" ) PORT_CODE( KEYCODE_N )
734727   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "H - Medallion" ) PORT_CODE( KEYCODE_H )
735728   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "U - Cold Fire" ) PORT_CODE( KEYCODE_U )
736729   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Save Game" ) PORT_CODE( KEYCODE_7_PAD )
737730
738   PORT_START("R7")
731   PORT_START("ROW.7")
739732   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "M - Spell of Understanding" ) PORT_CODE( KEYCODE_M )
740733   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "J - Onyx Seal" ) PORT_CODE( KEYCODE_J )
741734   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "I - Crown" ) PORT_CODE( KEYCODE_I )
742735   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Update" ) PORT_CODE( KEYCODE_8_PAD )
743736
744   PORT_START("R8")
737   PORT_START("ROW.8")
745738   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "3 - Enter" ) PORT_CODE( KEYCODE_ENTER )
746739   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "K - Orb of Quoid" ) PORT_CODE( KEYCODE_K )
747740   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "O - Crystal" ) PORT_CODE( KEYCODE_O )
748741   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Hint" ) PORT_CODE( KEYCODE_9_PAD )
749742
750   PORT_START("R9")
743   PORT_START("ROW.9")
751744   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "4 - Space" ) PORT_CODE( KEYCODE_SPACE )
752745   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "L" ) PORT_CODE( KEYCODE_L )
753746   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "P" ) PORT_CODE( KEYCODE_P )
trunk/src/mame/drivers/zac_2.c
r32342r32343
1818   zac_2_state(const machine_config &mconfig, device_type type, const char *tag)
1919      : driver_device(mconfig, type, tag),
2020   m_maincpu(*this, "maincpu"),
21   m_p_ram(*this, "ram")
21   m_p_ram(*this, "ram"),
22   m_row(*this, "ROW")
2223   { }
2324
2425   DECLARE_READ8_MEMBER(ctrl_r);
r32342r32343
3132   UINT8 m_out_offs;
3233   required_device<cpu_device> m_maincpu;
3334   required_shared_ptr<UINT8> m_p_ram;
35   required_ioport_array<6> m_row;
3436   TIMER_DEVICE_CALLBACK_MEMBER(zac_2_inttimer);
3537   TIMER_DEVICE_CALLBACK_MEMBER(zac_2_outtimer);
3638protected:
r32342r32343
7880   PORT_DIPSETTING(    0x08, DEF_STR(Off))
7981   PORT_DIPSETTING(    0x00, DEF_STR(On))
8082
81   PORT_START("ROW0")
83   PORT_START("ROW.0")
8284   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Advance Test")
8385   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Return Test")
8486   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT )
r32342r32343
8890   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
8991   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Printer")
9092
91   PORT_START("ROW1")
93   PORT_START("ROW.1")
9294   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RAM Reset")
9395   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
9496   PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED )
9597   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT )
9698   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Burn Test")
9799   // from here is not correct
98   PORT_START("ROW2")
100   PORT_START("ROW.2")
99101   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
100102   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Flap") PORT_CODE(KEYCODE_Q)
101103   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Flap") PORT_CODE(KEYCODE_W)
r32342r32343
105107   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Inside LH Canal") PORT_CODE(KEYCODE_U)
106108   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Hole") PORT_CODE(KEYCODE_I)
107109
108   PORT_START("ROW3")
110   PORT_START("ROW.3")
109111   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Bumper") PORT_CODE(KEYCODE_O)
110112   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Canal") PORT_CODE(KEYCODE_A)
111113   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Top Centre Canal") PORT_CODE(KEYCODE_S)
r32342r32343
115117   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bumper") PORT_CODE(KEYCODE_H)
116118   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Top Hole") PORT_CODE(KEYCODE_J)
117119
118   PORT_START("ROW4")
120   PORT_START("ROW.4")
119121   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Bumper") PORT_CODE(KEYCODE_K)
120122   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Contact") PORT_CODE(KEYCODE_L)
121123   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Top Contact") PORT_CODE(KEYCODE_Z)
r32342r32343
125127   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bank Contacts") PORT_CODE(KEYCODE_B)
126128   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Moving Target") PORT_CODE(KEYCODE_N)
127129
128   PORT_START("ROW5")
130   PORT_START("ROW.5")
129131   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 1") PORT_CODE(KEYCODE_M)
130132   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 2") PORT_CODE(KEYCODE_MINUS)
131133   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 3") PORT_CODE(KEYCODE_EQUALS)
r32342r32343
139141READ8_MEMBER( zac_2_state::ctrl_r )
140142{
141143   if (m_input_line < 6)
142   {
143      char kbdrow[8];
144      sprintf(kbdrow,"ROW%X",offset);
145      return ioport(kbdrow)->read();
146   }
144      return m_row[m_input_line]->read();
147145
148146   return 0xff;
149147}
trunk/src/mame/drivers/techno.c
r32342r32343
2525   techno_state(const machine_config &mconfig, device_type type, const char *tag)
2626      : driver_device(mconfig, type, tag)
2727      , m_maincpu(*this, "maincpu")
28      , m_switch(*this, "SWITCH")
2829   { }
2930
3031   DECLARE_READ16_MEMBER(key_r);
r32342r32343
4647   UINT8 m_vector;
4748   virtual void machine_reset();
4849   required_device<cpu_device> m_maincpu;
50   required_ioport_array<8> m_switch;
4951};
5052
5153
r32342r32343
135137// inputs
136138READ16_MEMBER( techno_state::key_r )
137139{
138   char kbdrow[6];
139   sprintf(kbdrow,"X%X",m_keyrow);
140   return ioport(kbdrow)->read();
140   return m_switch[m_keyrow]->read();
141141}
142142
143143// unknown
r32342r32343
153153}
154154
155155static INPUT_PORTS_START( techno )
156   PORT_START("X0")
156   PORT_START("SWITCH.0")
157157   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Letter select+") PORT_CODE(KEYCODE_F5)
158158   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN3 )
159159   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
r32342r32343
162162   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_TILT2 )
163163   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Test-") PORT_CODE(KEYCODE_F7)
164164   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Test+") PORT_CODE(KEYCODE_F8)
165   PORT_START("X1")
165   PORT_START("SWITCH.1")
166166   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix top target right")
167167   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Horizontal rail right")
168168   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
r32342r32343
171171   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_TILT )
172172   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START )
173173   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Letter select+") PORT_CODE(KEYCODE_F6)
174   PORT_START("X2")
174   PORT_START("SWITCH.2")
175175   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
176176   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Inner Canal Left") PORT_CODE(KEYCODE_O)
177177   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Exit Canal Right") PORT_CODE(KEYCODE_OPENBRACE)
r32342r32343
180180   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Ball 3")
181181   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Ball 4")
182182   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Out Hole") PORT_CODE(KEYCODE_X)
183   PORT_START("X3")
183   PORT_START("SWITCH.3")
184184   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Top Bumper") PORT_CODE(KEYCODE_Q)
185185   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Bottom Bumper") PORT_CODE(KEYCODE_W)
186186   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Top Right Kicker") PORT_CODE(KEYCODE_E)
r32342r32343
189189   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Exit Canal Left") PORT_CODE(KEYCODE_U)
190190   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Inner Canal Right") PORT_CODE(KEYCODE_I)
191191   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
192   PORT_START("X4")
192   PORT_START("SWITCH.4")
193193   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix left target bottom") PORT_CODE(KEYCODE_A)
194194   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left rollover") PORT_CODE(KEYCODE_S)
195195   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Barrier 1 Target") PORT_CODE(KEYCODE_D)
r32342r32343
198198   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
199199   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Barrier 3 Target") PORT_CODE(KEYCODE_G)
200200   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left Bumper") PORT_CODE(KEYCODE_H)
201   PORT_START("X5")
201   PORT_START("SWITCH.5")
202202   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix right target top") PORT_CODE(KEYCODE_J)
203203   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix right target middle-top") PORT_CODE(KEYCODE_K)
204204   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinning Target") PORT_CODE(KEYCODE_L)
r32342r32343
207207   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
208208   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix left target top") PORT_CODE(KEYCODE_CLOSEBRACE)
209209   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix left target centre") PORT_CODE(KEYCODE_BACKSLASH)
210   PORT_START("X6")
210   PORT_START("SWITCH.6")
211211   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix top left target left") PORT_CODE(KEYCODE_Z)
212212   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Ball 1 Bridge")
213213   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Ball 2 Bridge")
r32342r32343
216216   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
217217   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix right target middle-bottom") PORT_CODE(KEYCODE_C)
218218   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix right target bottom") PORT_CODE(KEYCODE_V)
219   PORT_START("X7")
219   PORT_START("SWITCH.7")
220220   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix top target middle-right") PORT_CODE(KEYCODE_B)
221221   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix top target middle-left") PORT_CODE(KEYCODE_N)
222222   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix top target Left") PORT_CODE(KEYCODE_M)
trunk/src/mame/drivers/g627.c
r32342r32343
5252   g627_state(const machine_config &mconfig, device_type type, const char *tag)
5353      : genpin_class(mconfig, type, tag)
5454      , m_maincpu(*this, "maincpu")
55      , m_switch(*this, "SWITCH")
56      , m_testipt(*this, "TEST")
5557   { }
5658
5759   DECLARE_DRIVER_INIT(v115);
r32342r32343
6769   UINT8 m_motor;
6870   bool m_type;
6971   required_device<cpu_device> m_maincpu;
72   required_ioport_array<7> m_switch;
73   required_ioport_array<6> m_testipt;
7074};
7175
7276
r32342r32343
8589ADDRESS_MAP_END
8690
8791static INPUT_PORTS_START( g627 )
88   //PORT_START("X0")
92   PORT_START("SWITCH.0")
8993   //bits 0,1 : optical encoder for precise table alignment. Correct position = 3.
9094   //bit2-7   : position of table as it turns, using Gray code.
91   PORT_START("X1")
95   PORT_START("SWITCH.1")
9296   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Centre TB") PORT_CODE(KEYCODE_Q)
9397   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Bank Shot Outlane") PORT_CODE(KEYCODE_W)
9498   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Spinner") PORT_CODE(KEYCODE_E)
r32342r32343
97101   PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_START2) PORT_NAME("Call South")
98102   PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_START1) PORT_NAME("Call North")
99103   PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_START4) PORT_NAME("Call West")
100   PORT_START("X2")
104   PORT_START("SWITCH.2")
101105   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Bottom TB") PORT_CODE(KEYCODE_Y)
102106   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left Flipper Return") PORT_CODE(KEYCODE_U)
103107   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("3/11 Target") PORT_CODE(KEYCODE_I)
r32342r32343
106110   PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("North Test") PORT_CODE(KEYCODE_9)
107111   PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN1) PORT_NAME("North Coin")
108112   PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_TILT) PORT_NAME("North Tilt")
109   PORT_START("X3")
113   PORT_START("SWITCH.3")
110114   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Top Slingshot") PORT_CODE(KEYCODE_O)
111115   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Bank Shot Advance") PORT_CODE(KEYCODE_A)
112116   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("4/12 Target") PORT_CODE(KEYCODE_S)
r32342r32343
115119   PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("South Test") PORT_CODE(KEYCODE_0)
116120   PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("South Coin")
117121   PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("South Tilt")
118   PORT_START("X4")
122   PORT_START("SWITCH.4")
119123   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right Slingshot") PORT_CODE(KEYCODE_F)
120124   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("OutHole") PORT_CODE(KEYCODE_X)
121125   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("5/13 Target") PORT_CODE(KEYCODE_G)
122126   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("4/16 Target") PORT_CODE(KEYCODE_H)
123   PORT_START("X5")
127   PORT_START("SWITCH.5")
124128   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left Slingshot") PORT_CODE(KEYCODE_J)
125129   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right Flipper Return") PORT_CODE(KEYCODE_K)
126130   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right Out Lane") PORT_CODE(KEYCODE_L)
127   PORT_START("X6")
131   PORT_START("SWITCH.6")
128132   PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Top TB") PORT_CODE(KEYCODE_COLON)
129133   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("7/15 Target") PORT_CODE(KEYCODE_QUOTE)
130134   PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("10 Points") PORT_CODE(KEYCODE_EQUALS)
r32342r32343
133137
134138   // Diagnostic Keyboard: Press GAME then END then TEST#. Press GAME etc for more tests.
135139   // Pressing test 8 at any time will instantly reset the NVRAM.
136   PORT_START("Y0")
140   PORT_START("TEST.0")
137141   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("3") PORT_CODE(KEYCODE_3_PAD)
138142   PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("2") PORT_CODE(KEYCODE_2_PAD)
139143   PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("1") PORT_CODE(KEYCODE_1_PAD)
140144   PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("0") PORT_CODE(KEYCODE_0_PAD)
141   PORT_START("Y1")
145   PORT_START("TEST.1")
142146   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("7") PORT_CODE(KEYCODE_7_PAD)
143147   PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("6") PORT_CODE(KEYCODE_6_PAD)
144148   PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("5") PORT_CODE(KEYCODE_5_PAD)
145149   PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("4") PORT_CODE(KEYCODE_4_PAD)
146   PORT_START("Y2")
150   PORT_START("TEST.2")
147151   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("SET") PORT_CODE(KEYCODE_PLUS_PAD)
148152   PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME(".") PORT_CODE(KEYCODE_DEL_PAD)
149153   PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("9") PORT_CODE(KEYCODE_9_PAD)
150154   PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("8") PORT_CODE(KEYCODE_8_PAD)
151   PORT_START("Y3")
155   PORT_START("TEST.3")
152156   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 3") PORT_CODE(KEYCODE_B)
153157   PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 2") PORT_CODE(KEYCODE_V)
154158   PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 1") PORT_CODE(KEYCODE_C)
155159   PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("GAME") PORT_CODE(KEYCODE_ENTER_PAD)
156   PORT_START("Y4")
160   PORT_START("TEST.4")
157161   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 7")
158162   PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 6") PORT_CODE(KEYCODE_COMMA)
159163   PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 5") PORT_CODE(KEYCODE_M)
160164   PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 4") PORT_CODE(KEYCODE_N)
161   PORT_START("Y5")
165   PORT_START("TEST.5")
162166   PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("END") PORT_CODE(KEYCODE_END)
163167   PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 10")
164168   PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 9")
r32342r32343
180184{
181185   if (!m_portc)
182186      return ((m_motor >> 1)^m_motor) | 3; // convert to Gray Code
183   else
184   if (m_portc < 7)
185   {
186      char kbdrow[6];
187      sprintf(kbdrow,"X%X",m_portc);
188      return ioport(kbdrow)->read();
189   }
187   else if (m_portc < 7)
188      return m_switch[m_portc]->read();
189
190190   return 0;
191191}
192192
r32342r32343
194194READ8_MEMBER( g627_state::portb_r )
195195{
196196   if (m_portc < 6)
197   {
198      char kbdrow[6];
199      sprintf(kbdrow,"Y%X",m_portc);
200      return ioport(kbdrow)->read();
201   }
197      return m_testipt[m_portc]->read();
198
202199   return 0;
203200}
204201
trunk/src/mame/drivers/flicker.c
r32342r32343
2929   flicker_state(const machine_config &mconfig, device_type type, const char *tag)
3030      : genpin_class(mconfig, type, tag)
3131      , m_maincpu(*this, "maincpu")
32      , m_testport(*this, "TEST")
33      , m_coinport(*this, "COIN")
34      , m_switch(*this, "SWITCH")
3235   { }
3336
3437   DECLARE_WRITE8_MEMBER(port00_w);
r32342r32343
3841private:
3942   UINT8 m_out_data;
4043   required_device<i4004_cpu_device> m_maincpu;
44   required_ioport m_testport;
45   required_ioport m_coinport;
46   required_ioport_array<7> m_switch;
4147};
4248
4349
r32342r32343
7480   PORT_DIPSETTING(      0x0200, DEF_STR( 1C_5C ) )
7581   PORT_DIPSETTING(      0x0400, DEF_STR( 1C_6C ) )
7682
77   PORT_START("B0")
83   PORT_START("SWITCH.0")
7884   PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left Lane Target") PORT_CODE(KEYCODE_W)
7985   PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("/B Target") PORT_CODE(KEYCODE_E)
8086   PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left Lane 1000") PORT_CODE(KEYCODE_R)
8187   PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("/A Target") PORT_CODE(KEYCODE_Y)
82   PORT_START("B1")
88   PORT_START("SWITCH.1")
8389   PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right Lane Target") PORT_CODE(KEYCODE_U)
8490   PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("/C Target") PORT_CODE(KEYCODE_I)
8591   PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right Lane 1000") PORT_CODE(KEYCODE_O)
8692   PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("/D Target") PORT_CODE(KEYCODE_A)
87   PORT_START("B2")
93   PORT_START("SWITCH.2")
8894   PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Spinner") PORT_CODE(KEYCODE_S)
89   PORT_START("B3")
95   PORT_START("SWITCH.3")
9096   PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("10's Target") PORT_CODE(KEYCODE_D)
9197   PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("100's Target") PORT_CODE(KEYCODE_F)
9298   PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Pot Bumper") PORT_CODE(KEYCODE_G)
9399   PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("3000 Hole") PORT_CODE(KEYCODE_H)
94   PORT_START("B4")
100   PORT_START("SWITCH.4")
95101   PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("1000 Bonus") PORT_CODE(KEYCODE_J)
96102   PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("500 Target") PORT_CODE(KEYCODE_K)
97103   PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Out Hole") PORT_CODE(KEYCODE_X)
98   PORT_START("B5")
104   PORT_START("SWITCH.5")
99105   PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left 500 Out") PORT_CODE(KEYCODE_L)
100106   PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left Bumper") PORT_CODE(KEYCODE_Z)
101107   PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right 500 Out") PORT_CODE(KEYCODE_C)
102108   PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right Bumper") PORT_CODE(KEYCODE_V)
103   PORT_START("B6")
109   PORT_START("SWITCH.6")
104110   PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("A Target") PORT_CODE(KEYCODE_B)
105111   PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("B target") PORT_CODE(KEYCODE_N)
106112   PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("C target") PORT_CODE(KEYCODE_M)
r32342r32343
112118   offset = m_maincpu->state_int(I4004_RAM) & 0x0f; // we need the full address
113119
114120   if (offset < 7)
115   {
116      char kbdrow[6];
117      sprintf(kbdrow,"B%X",offset);
118      return ioport(kbdrow)->read();
119   }
121      return m_switch[offset]->read();
122
120123   return 0;
121124}
122125
r32342r32343
132135// The output lines operate the various lamps (44 of them)
133136   offset = m_maincpu->state_int(I4004_RAM) & 0x0f; // we need the full address
134137
135   UINT16 test_port = ioport("TEST")->read() & 0xf81e;
136   UINT16 coin_port = ioport("COIN")->read() & 0x07e0;
138   UINT16 test_port = m_testport->read() & 0xf81e;
139   UINT16 coin_port = m_coinport->read() & 0x07e0;
137140
138   if (BIT(ioport("COIN")->read(), 0) )
141   if (BIT(m_coinport->read(), 0) )
139142      test_port |= coin_port;
140143
141144   m_maincpu->set_test(BIT(test_port, offset));
trunk/src/mame/drivers/atari_s2.c
r32342r32343
4444   DECLARE_WRITE8_MEMBER(sol1_w) { };
4545   DECLARE_WRITE8_MEMBER(intack_w);
4646   DECLARE_WRITE8_MEMBER(display_w);
47   DECLARE_READ8_MEMBER(switch_r);
4847   TIMER_DEVICE_CALLBACK_MEMBER(irq);
4948   TIMER_DEVICE_CALLBACK_MEMBER(timer_s);
5049private:
r32342r32343
6766   ADDRESS_MAP_GLOBAL_MASK(0x3fff)
6867   AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x0700) AM_RAM
6968   AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0700) AM_RAM AM_SHARE("nvram") // battery backed
70   AM_RANGE(0x1000, 0x1007) AM_MIRROR(0x07F8) AM_READ(switch_r)
69   AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.0")
70   AM_RANGE(0x1001, 0x1001) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.1")
71   AM_RANGE(0x1002, 0x1002) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.2")
72   AM_RANGE(0x1003, 0x1003) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.3")
73   AM_RANGE(0x1004, 0x1004) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.4")
74   AM_RANGE(0x1005, 0x1005) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.5")
75   AM_RANGE(0x1006, 0x1006) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.6")
76   AM_RANGE(0x1007, 0x1007) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.7")
7177   AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x071F) AM_WRITE(sound0_w)
7278   AM_RANGE(0x1820, 0x1820) AM_MIRROR(0x071F) AM_WRITE(sound1_w)
7379   AM_RANGE(0x1840, 0x1847) AM_MIRROR(0x0718) AM_WRITE(display_w)
r32342r32343
8793   ADDRESS_MAP_GLOBAL_MASK(0x3fff)
8894   AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x0700) AM_RAM
8995   AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0700) AM_RAM AM_SHARE("nvram") // battery backed
90   AM_RANGE(0x1000, 0x1007) AM_MIRROR(0x07F8) AM_READ(switch_r)
96   AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.0")
97   AM_RANGE(0x1001, 0x1001) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.1")
98   AM_RANGE(0x1002, 0x1002) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.2")
99   AM_RANGE(0x1003, 0x1003) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.3")
100   AM_RANGE(0x1004, 0x1004) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.4")
101   AM_RANGE(0x1005, 0x1005) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.5")
102   AM_RANGE(0x1006, 0x1006) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.6")
103   AM_RANGE(0x1007, 0x1007) AM_MIRROR(0x07F8) AM_READ_PORT("SWITCH.7")
91104   AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x071F) AM_WRITE(sound0_w)
92105   AM_RANGE(0x1820, 0x1820) AM_MIRROR(0x071F) AM_WRITE(sound1_w)
93106   AM_RANGE(0x1840, 0x1847) AM_MIRROR(0x0718) AM_WRITE(display_w)
r32342r32343
218231   PORT_START("DSW7")
219232   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
220233
221   PORT_START("X0") // 1000
234   PORT_START("SWITCH.0") // 1000
222235   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Test") PORT_CODE(KEYCODE_0)
223236   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
224237   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START )
r32342r32343
227240   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER )
228241   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
229242
230   PORT_START("X1") // 1001
243   PORT_START("SWITCH.1") // 1001
231244   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER )
232245   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER )
233246   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER )
r32342r32343
236249   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W)
237250   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
238251
239   PORT_START("X2") // 1002
252   PORT_START("SWITCH.2") // 1002
240253   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER )
241254   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER )
242255   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E)
r32342r32343
245258   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U)
246259   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
247260
248   PORT_START("X3") // 1003
261   PORT_START("SWITCH.3") // 1003
249262   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I)
250263   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O)
251264   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A)
r32342r32343
254267   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D)
255268   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
256269
257   PORT_START("X4") // 1004
270   PORT_START("SWITCH.4") // 1004
258271   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F)
259272   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G)
260273   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER )
r32342r32343
263276   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K)
264277   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
265278
266   PORT_START("X5") // 1005
279   PORT_START("SWITCH.5") // 1005
267280   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L)
268281   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER )
269282   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER )
r32342r32343
272285   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER )
273286   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
274287
275   PORT_START("X6") // 1006
288   PORT_START("SWITCH.6") // 1006
276289   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT )
277290   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER )
278291   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER )
r32342r32343
281294   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C)
282295   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
283296
284   PORT_START("X7") // 1007
297   PORT_START("SWITCH.7") // 1007
285298   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V)
286299   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B)
287300   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER )
r32342r32343
346359   m_maincpu->set_input_line(M6800_IRQ_LINE, CLEAR_LINE);
347360}
348361
349READ8_MEMBER( atari_s2_state::switch_r )
350{
351   char kbdrow[8];
352   sprintf(kbdrow,"X%X",offset);
353   return ioport(kbdrow)->read();
354}
355
356362// Sound
357363// 4 frequencies (500k,250k,125k,62.5k) come from main clock circuits
358364// We choose one of these with SEL A,B
trunk/src/mame/drivers/peyper.c
r32342r32343
4444   peyper_state(const machine_config &mconfig, device_type type, const char *tag)
4545      : genpin_class(mconfig, type, tag)
4646      , m_maincpu(*this, "maincpu")
47      , m_switch(*this, "SWITCH")
4748   { }
4849
4950   DECLARE_READ8_MEMBER(sw_r);
r32342r32343
6566   UINT8 m_disp_layout[36];
6667   virtual void machine_reset();
6768   required_device<cpu_device> m_maincpu;
69   required_ioport_array<4> m_switch;
6870};
6971
7072WRITE8_MEMBER( peyper_state::col_w )
r32342r32343
7476
7577READ8_MEMBER( peyper_state::sw_r )
7678{
77   UINT8 data = 0xff;
78
7979   if (m_digit < 4)
80   {
81      char kbdrow[6];
82      sprintf(kbdrow,"X%X",m_digit);
83      data = ioport(kbdrow)->read();
84   }
85   return data;
80      return m_switch[m_digit]->read();
81
82   return 0xff;
8683}
8784
8885WRITE8_MEMBER( peyper_state::disp_w )
r32342r32343
250247   PORT_DIPSETTING(    0x02, "0k 0k and 0k / 0k" )
251248   PORT_DIPSETTING(    0x03, "0k 0k and 0k / 0k" )
252249
253   PORT_START("X0")
250   PORT_START("SWITCH.0")
254251   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole")
255252   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W)
256253   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E)
r32342r32343
260257   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I)
261258   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O)
262259
263   PORT_START("X1")
260   PORT_START("SWITCH.1")
264261   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A)
265262   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S)
266263   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D)
r32342r32343
270267   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J)
271268   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K)
272269
273   PORT_START("X2")
270   PORT_START("SWITCH.2")
274271   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
275272   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C)
276273   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V)
r32342r32343
280277   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
281278   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
282279
283   PORT_START("X3")
280   PORT_START("SWITCH.3")
284281   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L)
285282   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
286283   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team