trunk/src/mame/drivers/spectra.c
| r32342 | r32343 | |
| 50 | 50 | : genpin_class(mconfig, type, tag) |
| 51 | 51 | , m_maincpu(*this, "maincpu") |
| 52 | 52 | , m_snsnd(*this, "snsnd") |
| 53 | , m_switch(*this, "SWITCH") |
| 53 | 54 | , m_p_ram(*this, "nvram") |
| 54 | 55 | { } |
| 55 | 56 | |
| r32342 | r32343 | |
| 67 | 68 | virtual void machine_reset(); |
| 68 | 69 | required_device<cpu_device> m_maincpu; |
| 69 | 70 | required_device<sn76477_device> m_snsnd; |
| 71 | required_ioport_array<4> m_switch; |
| 70 | 72 | required_shared_ptr<UINT8> m_p_ram; |
| 71 | 73 | }; |
| 72 | 74 | |
| r32342 | r32343 | |
| 81 | 83 | ADDRESS_MAP_END |
| 82 | 84 | |
| 83 | 85 | static INPUT_PORTS_START( spectra ) |
| 84 | | PORT_START("X0") |
| 86 | PORT_START("SWITCH.0") |
| 85 | 87 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X) |
| 86 | 88 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("L Outlane 1") PORT_CODE(KEYCODE_W) |
| 87 | 89 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("CR Hole") PORT_CODE(KEYCODE_E) |
| r32342 | r32343 | |
| 90 | 92 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("C Bumper") PORT_CODE(KEYCODE_U) |
| 91 | 93 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("L Bumper") PORT_CODE(KEYCODE_I) |
| 92 | 94 | 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") |
| 94 | 96 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("L Sling") PORT_CODE(KEYCODE_A) |
| 95 | 97 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("R Outlane") PORT_CODE(KEYCODE_S) |
| 96 | 98 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("R Rollover") PORT_CODE(KEYCODE_D) |
| r32342 | r32343 | |
| 99 | 101 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("C Inside Target") PORT_CODE(KEYCODE_H) |
| 100 | 102 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("R Inside Target") PORT_CODE(KEYCODE_J) |
| 101 | 103 | 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") |
| 103 | 105 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("CL Button") PORT_CODE(KEYCODE_Z) |
| 104 | 106 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("TL Button") PORT_CODE(KEYCODE_Q) |
| 105 | 107 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("TL Target") PORT_CODE(KEYCODE_C) |
| r32342 | r32343 | |
| 108 | 110 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("R Pentagon") PORT_CODE(KEYCODE_N) |
| 109 | 111 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("L Pentagon") PORT_CODE(KEYCODE_M) |
| 110 | 112 | 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") |
| 112 | 114 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("L Area") PORT_CODE(KEYCODE_STOP) |
| 113 | 115 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("R Area") PORT_CODE(KEYCODE_SLASH) |
| 114 | 116 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Inlane Button") PORT_CODE(KEYCODE_L) |
| r32342 | r32343 | |
| 128 | 130 | |
| 129 | 131 | READ8_MEMBER( spectra_state::porta_r ) |
| 130 | 132 | { |
| 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); |
| 136 | 136 | |
| 137 | 137 | if (ret == 0x1b && m_p_ram[0x7b] < 0x1E) |
| 138 | 138 | m_samples->start(3, 8); // coin |
trunk/src/mame/drivers/atari_s1.c
| r32342 | r32343 | |
| 64 | 64 | , m_maincpu(*this, "maincpu") |
| 65 | 65 | , m_p_ram(*this, "ram") |
| 66 | 66 | , m_dac(*this, "dac") |
| 67 | , m_switch(*this, "SWITCH") |
| 67 | 68 | { } |
| 68 | 69 | |
| 69 | 70 | DECLARE_READ8_MEMBER(m1080_r); |
| r32342 | r32343 | |
| 97 | 98 | required_device<cpu_device> m_maincpu; |
| 98 | 99 | required_shared_ptr<UINT8> m_p_ram; |
| 99 | 100 | required_device<dac_device> m_dac; |
| 101 | required_ioport_array<10> m_switch; |
| 100 | 102 | }; |
| 101 | 103 | |
| 102 | 104 | static ADDRESS_MAP_START( atari_s1_map, AS_PROGRAM, 8, atari_s1_state ) |
| r32342 | r32343 | |
| 140 | 142 | ADDRESS_MAP_END |
| 141 | 143 | |
| 142 | 144 | static INPUT_PORTS_START( atari_s1 ) |
| 143 | | PORT_START("X0") // 2000-2007 |
| 145 | PORT_START("SWITCH.0") // 2000-2007 |
| 144 | 146 | PORT_DIPNAME( 0xc3, 0x00, DEF_STR( Coinage ) ) // left chute; right chute |
| 145 | 147 | PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) // 1C_1C ; 1C_1C |
| 146 | 148 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) // 1C_2C ; 1C_2C |
| r32342 | r32343 | |
| 170 | 172 | PORT_DIPSETTING( 0x20, "Free Game" ) |
| 171 | 173 | PORT_DIPSETTING( 0x10, "20000 points" ) // same as 0x30 |
| 172 | 174 | |
| 173 | | PORT_START("X1") // 2008-200F |
| 175 | PORT_START("SWITCH.1") // 2008-200F |
| 174 | 176 | // This switch together with 204C thru 204F, sets the scores at which a replay is awarded |
| 175 | 177 | PORT_DIPNAME( 0x01, 0x00, "Replay score" ) |
| 176 | 178 | PORT_DIPSETTING( 0x01, DEF_STR( High ) ) |
| r32342 | r32343 | |
| 192 | 194 | PORT_DIPSETTING( 0x40, "15" ) |
| 193 | 195 | PORT_DIPSETTING( 0xc0, "20" ) |
| 194 | 196 | |
| 195 | | PORT_START("X2") // 2010-2017 |
| 197 | PORT_START("SWITCH.2") // 2010-2017 |
| 196 | 198 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) |
| 197 | 199 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) |
| 198 | 200 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START ) |
| r32342 | r32343 | |
| 202 | 204 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) |
| 203 | 205 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) |
| 204 | 206 | |
| 205 | | PORT_START("X3") // 2018-201F |
| 207 | PORT_START("SWITCH.3") // 2018-201F |
| 206 | 208 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) |
| 207 | 209 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) |
| 208 | 210 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) |
| r32342 | r32343 | |
| 212 | 214 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) |
| 213 | 215 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) |
| 214 | 216 | |
| 215 | | PORT_START("X4") // 2020-2027 |
| 217 | PORT_START("SWITCH.4") // 2020-2027 |
| 216 | 218 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Cabinet Tilt") |
| 217 | 219 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_TILT ) PORT_NAME("Pendulum Tilt") |
| 218 | 220 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left Flipper") PORT_CODE(KEYCODE_LSHIFT) |
| r32342 | r32343 | |
| 222 | 224 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Target 2") |
| 223 | 225 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Target 1") |
| 224 | 226 | |
| 225 | | PORT_START("X5") // 2028-202F |
| 227 | PORT_START("SWITCH.5") // 2028-202F |
| 226 | 228 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) |
| 227 | 229 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) |
| 228 | 230 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) |
| r32342 | r32343 | |
| 232 | 234 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) |
| 233 | 235 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) |
| 234 | 236 | |
| 235 | | PORT_START("X6") // 2030-2037 |
| 237 | PORT_START("SWITCH.6") // 2030-2037 |
| 236 | 238 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) |
| 237 | 239 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Rollover 3") PORT_CODE(KEYCODE_Q) |
| 238 | 240 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Rollover 2") PORT_CODE(KEYCODE_W) |
| r32342 | r32343 | |
| 242 | 244 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Rollover 6") PORT_CODE(KEYCODE_U) |
| 243 | 245 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Rollover 5") PORT_CODE(KEYCODE_I) |
| 244 | 246 | |
| 245 | | PORT_START("X7") // 2038-203F |
| 247 | PORT_START("SWITCH.7") // 2038-203F |
| 246 | 248 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L Hole") PORT_CODE(KEYCODE_O) |
| 247 | 249 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Bumper 1") PORT_CODE(KEYCODE_V) |
| 248 | 250 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Bumper 2") PORT_CODE(KEYCODE_B) |
| r32342 | r32343 | |
| 252 | 254 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L Pocket") PORT_CODE(KEYCODE_S) |
| 253 | 255 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R Hole") PORT_CODE(KEYCODE_D) |
| 254 | 256 | |
| 255 | | PORT_START("X8") // 2040-2047 |
| 257 | PORT_START("SWITCH.8") // 2040-2047 |
| 256 | 258 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L Triangle") PORT_CODE(KEYCODE_F) |
| 257 | 259 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("10 points") PORT_CODE(KEYCODE_G) |
| 258 | 260 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("50 points") PORT_CODE(KEYCODE_H) |
| r32342 | r32343 | |
| 262 | 264 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) |
| 263 | 265 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R Triangle") PORT_CODE(KEYCODE_J) |
| 264 | 266 | |
| 265 | | PORT_START("X9") // 2048-204F |
| 267 | PORT_START("SWITCH.9") // 2048-204F |
| 266 | 268 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("50 points and adv letter") PORT_CODE(KEYCODE_K) |
| 267 | 269 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Captive ball rollovers") PORT_CODE(KEYCODE_L) |
| 268 | 270 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Rollover 'B' centre") PORT_CODE(KEYCODE_Z) |
| r32342 | r32343 | |
| 351 | 353 | |
| 352 | 354 | READ8_MEMBER( atari_s1_state::switch_r ) |
| 353 | 355 | { |
| 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 |
| 357 | 357 | } |
| 358 | 358 | |
| 359 | 359 | TIMER_DEVICE_CALLBACK_MEMBER( atari_s1_state::nmi ) |
trunk/src/mame/drivers/thayers.c
| r32342 | r32343 | |
| 43 | 43 | |
| 44 | 44 | thayers_state(const machine_config &mconfig, device_type type, const char *tag) |
| 45 | 45 | : 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") { } |
| 49 | 50 | |
| 50 | 51 | optional_device<pioneer_pr7820_device> m_pr7820; |
| 51 | 52 | optional_device<pioneer_ldv1000_device> m_ldv1000; |
| r32342 | r32343 | |
| 91 | 92 | virtual void machine_reset(); |
| 92 | 93 | void check_interrupt(); |
| 93 | 94 | required_device<cpu_device> m_maincpu; |
| 95 | required_ioport_array<10> m_row; |
| 94 | 96 | |
| 95 | 97 | protected: |
| 96 | 98 | virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); |
| r32342 | r32343 | |
| 318 | 320 | case 6: |
| 319 | 321 | case 7: |
| 320 | 322 | case 8: |
| 321 | | { |
| 322 | | UINT8 data; |
| 323 | | char port[4]; |
| 323 | return BIT(m_row[m_keylatch]->read(), m_rx_bit - 5); |
| 324 | 324 | |
| 325 | | sprintf(port, "R%d", m_keylatch); |
| 326 | | |
| 327 | | data = BIT(ioport(port)->read(), m_rx_bit - 5); |
| 328 | | |
| 329 | | return data; |
| 330 | | } |
| 331 | | |
| 332 | 325 | default: |
| 333 | 326 | return 0; |
| 334 | 327 | } |
| r32342 | r32343 | |
| 693 | 686 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, thayers_state,laserdisc_enter_r, NULL) |
| 694 | 687 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, thayers_state,laserdisc_ready_r, NULL) |
| 695 | 688 | |
| 696 | | PORT_START("R0") |
| 689 | PORT_START("ROW.0") |
| 697 | 690 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "2" ) PORT_CODE( KEYCODE_F2 ) |
| 698 | 691 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "1 - Clear" ) PORT_CODE( KEYCODE_BACKSPACE ) |
| 699 | 692 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Q" ) PORT_CODE( KEYCODE_Q ) |
| 700 | 693 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( DEF_STR( Yes ) ) PORT_CODE( KEYCODE_0_PAD ) |
| 701 | 694 | |
| 702 | | PORT_START("R1") |
| 695 | PORT_START("ROW.1") |
| 703 | 696 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Z - Spell of Release" ) PORT_CODE( KEYCODE_Z ) |
| 704 | 697 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "A" ) PORT_CODE( KEYCODE_A ) |
| 705 | 698 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "W - Amulet" ) PORT_CODE( KEYCODE_W ) |
| 706 | 699 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Items" ) PORT_CODE( KEYCODE_1_PAD ) |
| 707 | 700 | |
| 708 | | PORT_START("R2") |
| 701 | PORT_START("ROW.2") |
| 709 | 702 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "X - Scepter" ) PORT_CODE( KEYCODE_X ) |
| 710 | 703 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "S - Dagger" ) PORT_CODE( KEYCODE_S ) |
| 711 | 704 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "E - Black Mace" ) PORT_CODE( KEYCODE_E ) |
| 712 | 705 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Drop Item" ) PORT_CODE( KEYCODE_2_PAD ) |
| 713 | 706 | |
| 714 | | PORT_START("R3") |
| 707 | PORT_START("ROW.3") |
| 715 | 708 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "C - Spell of Seeing" ) PORT_CODE( KEYCODE_C ) |
| 716 | 709 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "D - Great Circlet" ) PORT_CODE( KEYCODE_D ) |
| 717 | 710 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "R - Blood Sword" ) PORT_CODE( KEYCODE_R ) |
| 718 | 711 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Give Score" ) PORT_CODE( KEYCODE_3_PAD ) |
| 719 | 712 | |
| 720 | | PORT_START("R4") |
| 713 | PORT_START("ROW.4") |
| 721 | 714 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "V - Shield" ) PORT_CODE( KEYCODE_V ) |
| 722 | 715 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "F - Hunting Horn" ) PORT_CODE( KEYCODE_F ) |
| 723 | 716 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "T - Chalice" ) PORT_CODE( KEYCODE_T ) |
| 724 | 717 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Replay" ) PORT_CODE( KEYCODE_4_PAD ) |
| 725 | 718 | |
| 726 | | PORT_START("R5") |
| 719 | PORT_START("ROW.5") |
| 727 | 720 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "B - Silver Wheat" ) PORT_CODE( KEYCODE_B ) |
| 728 | 721 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "G - Long Bow" ) PORT_CODE( KEYCODE_G ) |
| 729 | 722 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Y - Coins" ) PORT_CODE( KEYCODE_Y ) |
| 730 | 723 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Combine Action" ) PORT_CODE( KEYCODE_6_PAD ) |
| 731 | 724 | |
| 732 | | PORT_START("R6") |
| 725 | PORT_START("ROW.6") |
| 733 | 726 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "N - Staff" ) PORT_CODE( KEYCODE_N ) |
| 734 | 727 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "H - Medallion" ) PORT_CODE( KEYCODE_H ) |
| 735 | 728 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "U - Cold Fire" ) PORT_CODE( KEYCODE_U ) |
| 736 | 729 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Save Game" ) PORT_CODE( KEYCODE_7_PAD ) |
| 737 | 730 | |
| 738 | | PORT_START("R7") |
| 731 | PORT_START("ROW.7") |
| 739 | 732 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "M - Spell of Understanding" ) PORT_CODE( KEYCODE_M ) |
| 740 | 733 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "J - Onyx Seal" ) PORT_CODE( KEYCODE_J ) |
| 741 | 734 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "I - Crown" ) PORT_CODE( KEYCODE_I ) |
| 742 | 735 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Update" ) PORT_CODE( KEYCODE_8_PAD ) |
| 743 | 736 | |
| 744 | | PORT_START("R8") |
| 737 | PORT_START("ROW.8") |
| 745 | 738 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "3 - Enter" ) PORT_CODE( KEYCODE_ENTER ) |
| 746 | 739 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "K - Orb of Quoid" ) PORT_CODE( KEYCODE_K ) |
| 747 | 740 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "O - Crystal" ) PORT_CODE( KEYCODE_O ) |
| 748 | 741 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Hint" ) PORT_CODE( KEYCODE_9_PAD ) |
| 749 | 742 | |
| 750 | | PORT_START("R9") |
| 743 | PORT_START("ROW.9") |
| 751 | 744 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "4 - Space" ) PORT_CODE( KEYCODE_SPACE ) |
| 752 | 745 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "L" ) PORT_CODE( KEYCODE_L ) |
| 753 | 746 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "P" ) PORT_CODE( KEYCODE_P ) |
trunk/src/mame/drivers/zac_2.c
| r32342 | r32343 | |
| 18 | 18 | zac_2_state(const machine_config &mconfig, device_type type, const char *tag) |
| 19 | 19 | : driver_device(mconfig, type, tag), |
| 20 | 20 | m_maincpu(*this, "maincpu"), |
| 21 | | m_p_ram(*this, "ram") |
| 21 | m_p_ram(*this, "ram"), |
| 22 | m_row(*this, "ROW") |
| 22 | 23 | { } |
| 23 | 24 | |
| 24 | 25 | DECLARE_READ8_MEMBER(ctrl_r); |
| r32342 | r32343 | |
| 31 | 32 | UINT8 m_out_offs; |
| 32 | 33 | required_device<cpu_device> m_maincpu; |
| 33 | 34 | required_shared_ptr<UINT8> m_p_ram; |
| 35 | required_ioport_array<6> m_row; |
| 34 | 36 | TIMER_DEVICE_CALLBACK_MEMBER(zac_2_inttimer); |
| 35 | 37 | TIMER_DEVICE_CALLBACK_MEMBER(zac_2_outtimer); |
| 36 | 38 | protected: |
| r32342 | r32343 | |
| 78 | 80 | PORT_DIPSETTING( 0x08, DEF_STR(Off)) |
| 79 | 81 | PORT_DIPSETTING( 0x00, DEF_STR(On)) |
| 80 | 82 | |
| 81 | | PORT_START("ROW0") |
| 83 | PORT_START("ROW.0") |
| 82 | 84 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Advance Test") |
| 83 | 85 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Return Test") |
| 84 | 86 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT ) |
| r32342 | r32343 | |
| 88 | 90 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) |
| 89 | 91 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Printer") |
| 90 | 92 | |
| 91 | | PORT_START("ROW1") |
| 93 | PORT_START("ROW.1") |
| 92 | 94 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RAM Reset") |
| 93 | 95 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT ) |
| 94 | 96 | PORT_BIT( 0x3c, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 95 | 97 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT ) |
| 96 | 98 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Burn Test") |
| 97 | 99 | // from here is not correct |
| 98 | | PORT_START("ROW2") |
| 100 | PORT_START("ROW.2") |
| 99 | 101 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X) |
| 100 | 102 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Flap") PORT_CODE(KEYCODE_Q) |
| 101 | 103 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Flap") PORT_CODE(KEYCODE_W) |
| r32342 | r32343 | |
| 105 | 107 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Inside LH Canal") PORT_CODE(KEYCODE_U) |
| 106 | 108 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Hole") PORT_CODE(KEYCODE_I) |
| 107 | 109 | |
| 108 | | PORT_START("ROW3") |
| 110 | PORT_START("ROW.3") |
| 109 | 111 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Bumper") PORT_CODE(KEYCODE_O) |
| 110 | 112 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Canal") PORT_CODE(KEYCODE_A) |
| 111 | 113 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Top Centre Canal") PORT_CODE(KEYCODE_S) |
| r32342 | r32343 | |
| 115 | 117 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bumper") PORT_CODE(KEYCODE_H) |
| 116 | 118 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Top Hole") PORT_CODE(KEYCODE_J) |
| 117 | 119 | |
| 118 | | PORT_START("ROW4") |
| 120 | PORT_START("ROW.4") |
| 119 | 121 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Bumper") PORT_CODE(KEYCODE_K) |
| 120 | 122 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Contact") PORT_CODE(KEYCODE_L) |
| 121 | 123 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Top Contact") PORT_CODE(KEYCODE_Z) |
| r32342 | r32343 | |
| 125 | 127 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bank Contacts") PORT_CODE(KEYCODE_B) |
| 126 | 128 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Moving Target") PORT_CODE(KEYCODE_N) |
| 127 | 129 | |
| 128 | | PORT_START("ROW5") |
| 130 | PORT_START("ROW.5") |
| 129 | 131 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 1") PORT_CODE(KEYCODE_M) |
| 130 | 132 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 2") PORT_CODE(KEYCODE_MINUS) |
| 131 | 133 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 3") PORT_CODE(KEYCODE_EQUALS) |
| r32342 | r32343 | |
| 139 | 141 | READ8_MEMBER( zac_2_state::ctrl_r ) |
| 140 | 142 | { |
| 141 | 143 | 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(); |
| 147 | 145 | |
| 148 | 146 | return 0xff; |
| 149 | 147 | } |
trunk/src/mame/drivers/techno.c
| r32342 | r32343 | |
| 25 | 25 | techno_state(const machine_config &mconfig, device_type type, const char *tag) |
| 26 | 26 | : driver_device(mconfig, type, tag) |
| 27 | 27 | , m_maincpu(*this, "maincpu") |
| 28 | , m_switch(*this, "SWITCH") |
| 28 | 29 | { } |
| 29 | 30 | |
| 30 | 31 | DECLARE_READ16_MEMBER(key_r); |
| r32342 | r32343 | |
| 46 | 47 | UINT8 m_vector; |
| 47 | 48 | virtual void machine_reset(); |
| 48 | 49 | required_device<cpu_device> m_maincpu; |
| 50 | required_ioport_array<8> m_switch; |
| 49 | 51 | }; |
| 50 | 52 | |
| 51 | 53 | |
| r32342 | r32343 | |
| 135 | 137 | // inputs |
| 136 | 138 | READ16_MEMBER( techno_state::key_r ) |
| 137 | 139 | { |
| 138 | | char kbdrow[6]; |
| 139 | | sprintf(kbdrow,"X%X",m_keyrow); |
| 140 | | return ioport(kbdrow)->read(); |
| 140 | return m_switch[m_keyrow]->read(); |
| 141 | 141 | } |
| 142 | 142 | |
| 143 | 143 | // unknown |
| r32342 | r32343 | |
| 153 | 153 | } |
| 154 | 154 | |
| 155 | 155 | static INPUT_PORTS_START( techno ) |
| 156 | | PORT_START("X0") |
| 156 | PORT_START("SWITCH.0") |
| 157 | 157 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Letter select+") PORT_CODE(KEYCODE_F5) |
| 158 | 158 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN3 ) |
| 159 | 159 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) |
| r32342 | r32343 | |
| 162 | 162 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_TILT2 ) |
| 163 | 163 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Test-") PORT_CODE(KEYCODE_F7) |
| 164 | 164 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Test+") PORT_CODE(KEYCODE_F8) |
| 165 | | PORT_START("X1") |
| 165 | PORT_START("SWITCH.1") |
| 166 | 166 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix top target right") |
| 167 | 167 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Horizontal rail right") |
| 168 | 168 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| r32342 | r32343 | |
| 171 | 171 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_TILT ) |
| 172 | 172 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START ) |
| 173 | 173 | 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") |
| 175 | 175 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 176 | 176 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Inner Canal Left") PORT_CODE(KEYCODE_O) |
| 177 | 177 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Exit Canal Right") PORT_CODE(KEYCODE_OPENBRACE) |
| r32342 | r32343 | |
| 180 | 180 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Ball 3") |
| 181 | 181 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Ball 4") |
| 182 | 182 | 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") |
| 184 | 184 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Top Bumper") PORT_CODE(KEYCODE_Q) |
| 185 | 185 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Bottom Bumper") PORT_CODE(KEYCODE_W) |
| 186 | 186 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Top Right Kicker") PORT_CODE(KEYCODE_E) |
| r32342 | r32343 | |
| 189 | 189 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Exit Canal Left") PORT_CODE(KEYCODE_U) |
| 190 | 190 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Inner Canal Right") PORT_CODE(KEYCODE_I) |
| 191 | 191 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 192 | | PORT_START("X4") |
| 192 | PORT_START("SWITCH.4") |
| 193 | 193 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix left target bottom") PORT_CODE(KEYCODE_A) |
| 194 | 194 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left rollover") PORT_CODE(KEYCODE_S) |
| 195 | 195 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Barrier 1 Target") PORT_CODE(KEYCODE_D) |
| r32342 | r32343 | |
| 198 | 198 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 199 | 199 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Barrier 3 Target") PORT_CODE(KEYCODE_G) |
| 200 | 200 | 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") |
| 202 | 202 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix right target top") PORT_CODE(KEYCODE_J) |
| 203 | 203 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix right target middle-top") PORT_CODE(KEYCODE_K) |
| 204 | 204 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinning Target") PORT_CODE(KEYCODE_L) |
| r32342 | r32343 | |
| 207 | 207 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 208 | 208 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix left target top") PORT_CODE(KEYCODE_CLOSEBRACE) |
| 209 | 209 | 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") |
| 211 | 211 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix top left target left") PORT_CODE(KEYCODE_Z) |
| 212 | 212 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Ball 1 Bridge") |
| 213 | 213 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Ball 2 Bridge") |
| r32342 | r32343 | |
| 216 | 216 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 217 | 217 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix right target middle-bottom") PORT_CODE(KEYCODE_C) |
| 218 | 218 | 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") |
| 220 | 220 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix top target middle-right") PORT_CODE(KEYCODE_B) |
| 221 | 221 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix top target middle-left") PORT_CODE(KEYCODE_N) |
| 222 | 222 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Fix top target Left") PORT_CODE(KEYCODE_M) |
trunk/src/mame/drivers/g627.c
| r32342 | r32343 | |
| 52 | 52 | g627_state(const machine_config &mconfig, device_type type, const char *tag) |
| 53 | 53 | : genpin_class(mconfig, type, tag) |
| 54 | 54 | , m_maincpu(*this, "maincpu") |
| 55 | , m_switch(*this, "SWITCH") |
| 56 | , m_testipt(*this, "TEST") |
| 55 | 57 | { } |
| 56 | 58 | |
| 57 | 59 | DECLARE_DRIVER_INIT(v115); |
| r32342 | r32343 | |
| 67 | 69 | UINT8 m_motor; |
| 68 | 70 | bool m_type; |
| 69 | 71 | required_device<cpu_device> m_maincpu; |
| 72 | required_ioport_array<7> m_switch; |
| 73 | required_ioport_array<6> m_testipt; |
| 70 | 74 | }; |
| 71 | 75 | |
| 72 | 76 | |
| r32342 | r32343 | |
| 85 | 89 | ADDRESS_MAP_END |
| 86 | 90 | |
| 87 | 91 | static INPUT_PORTS_START( g627 ) |
| 88 | | //PORT_START("X0") |
| 92 | PORT_START("SWITCH.0") |
| 89 | 93 | //bits 0,1 : optical encoder for precise table alignment. Correct position = 3. |
| 90 | 94 | //bit2-7 : position of table as it turns, using Gray code. |
| 91 | | PORT_START("X1") |
| 95 | PORT_START("SWITCH.1") |
| 92 | 96 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Centre TB") PORT_CODE(KEYCODE_Q) |
| 93 | 97 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Bank Shot Outlane") PORT_CODE(KEYCODE_W) |
| 94 | 98 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Spinner") PORT_CODE(KEYCODE_E) |
| r32342 | r32343 | |
| 97 | 101 | PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_START2) PORT_NAME("Call South") |
| 98 | 102 | PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_START1) PORT_NAME("Call North") |
| 99 | 103 | PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_START4) PORT_NAME("Call West") |
| 100 | | PORT_START("X2") |
| 104 | PORT_START("SWITCH.2") |
| 101 | 105 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Bottom TB") PORT_CODE(KEYCODE_Y) |
| 102 | 106 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left Flipper Return") PORT_CODE(KEYCODE_U) |
| 103 | 107 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("3/11 Target") PORT_CODE(KEYCODE_I) |
| r32342 | r32343 | |
| 106 | 110 | PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("North Test") PORT_CODE(KEYCODE_9) |
| 107 | 111 | PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN1) PORT_NAME("North Coin") |
| 108 | 112 | PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_TILT) PORT_NAME("North Tilt") |
| 109 | | PORT_START("X3") |
| 113 | PORT_START("SWITCH.3") |
| 110 | 114 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Top Slingshot") PORT_CODE(KEYCODE_O) |
| 111 | 115 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Bank Shot Advance") PORT_CODE(KEYCODE_A) |
| 112 | 116 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("4/12 Target") PORT_CODE(KEYCODE_S) |
| r32342 | r32343 | |
| 115 | 119 | PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("South Test") PORT_CODE(KEYCODE_0) |
| 116 | 120 | PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_COIN2) PORT_NAME("South Coin") |
| 117 | 121 | PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("South Tilt") |
| 118 | | PORT_START("X4") |
| 122 | PORT_START("SWITCH.4") |
| 119 | 123 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right Slingshot") PORT_CODE(KEYCODE_F) |
| 120 | 124 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("OutHole") PORT_CODE(KEYCODE_X) |
| 121 | 125 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("5/13 Target") PORT_CODE(KEYCODE_G) |
| 122 | 126 | 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") |
| 124 | 128 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left Slingshot") PORT_CODE(KEYCODE_J) |
| 125 | 129 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right Flipper Return") PORT_CODE(KEYCODE_K) |
| 126 | 130 | 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") |
| 128 | 132 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Top TB") PORT_CODE(KEYCODE_COLON) |
| 129 | 133 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("7/15 Target") PORT_CODE(KEYCODE_QUOTE) |
| 130 | 134 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("10 Points") PORT_CODE(KEYCODE_EQUALS) |
| r32342 | r32343 | |
| 133 | 137 | |
| 134 | 138 | // Diagnostic Keyboard: Press GAME then END then TEST#. Press GAME etc for more tests. |
| 135 | 139 | // Pressing test 8 at any time will instantly reset the NVRAM. |
| 136 | | PORT_START("Y0") |
| 140 | PORT_START("TEST.0") |
| 137 | 141 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("3") PORT_CODE(KEYCODE_3_PAD) |
| 138 | 142 | PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("2") PORT_CODE(KEYCODE_2_PAD) |
| 139 | 143 | PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("1") PORT_CODE(KEYCODE_1_PAD) |
| 140 | 144 | 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") |
| 142 | 146 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("7") PORT_CODE(KEYCODE_7_PAD) |
| 143 | 147 | PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("6") PORT_CODE(KEYCODE_6_PAD) |
| 144 | 148 | PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("5") PORT_CODE(KEYCODE_5_PAD) |
| 145 | 149 | 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") |
| 147 | 151 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("SET") PORT_CODE(KEYCODE_PLUS_PAD) |
| 148 | 152 | PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME(".") PORT_CODE(KEYCODE_DEL_PAD) |
| 149 | 153 | PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("9") PORT_CODE(KEYCODE_9_PAD) |
| 150 | 154 | 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") |
| 152 | 156 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 3") PORT_CODE(KEYCODE_B) |
| 153 | 157 | PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 2") PORT_CODE(KEYCODE_V) |
| 154 | 158 | PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 1") PORT_CODE(KEYCODE_C) |
| 155 | 159 | 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") |
| 157 | 161 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 7") |
| 158 | 162 | PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 6") PORT_CODE(KEYCODE_COMMA) |
| 159 | 163 | PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 5") PORT_CODE(KEYCODE_M) |
| 160 | 164 | 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") |
| 162 | 166 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("END") PORT_CODE(KEYCODE_END) |
| 163 | 167 | PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 10") |
| 164 | 168 | PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 9") |
| r32342 | r32343 | |
| 180 | 184 | { |
| 181 | 185 | if (!m_portc) |
| 182 | 186 | 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 | |
| 190 | 190 | return 0; |
| 191 | 191 | } |
| 192 | 192 | |
| r32342 | r32343 | |
| 194 | 194 | READ8_MEMBER( g627_state::portb_r ) |
| 195 | 195 | { |
| 196 | 196 | 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 | |
| 202 | 199 | return 0; |
| 203 | 200 | } |
| 204 | 201 | |
trunk/src/mame/drivers/flicker.c
| r32342 | r32343 | |
| 29 | 29 | flicker_state(const machine_config &mconfig, device_type type, const char *tag) |
| 30 | 30 | : genpin_class(mconfig, type, tag) |
| 31 | 31 | , m_maincpu(*this, "maincpu") |
| 32 | , m_testport(*this, "TEST") |
| 33 | , m_coinport(*this, "COIN") |
| 34 | , m_switch(*this, "SWITCH") |
| 32 | 35 | { } |
| 33 | 36 | |
| 34 | 37 | DECLARE_WRITE8_MEMBER(port00_w); |
| r32342 | r32343 | |
| 38 | 41 | private: |
| 39 | 42 | UINT8 m_out_data; |
| 40 | 43 | required_device<i4004_cpu_device> m_maincpu; |
| 44 | required_ioport m_testport; |
| 45 | required_ioport m_coinport; |
| 46 | required_ioport_array<7> m_switch; |
| 41 | 47 | }; |
| 42 | 48 | |
| 43 | 49 | |
| r32342 | r32343 | |
| 74 | 80 | PORT_DIPSETTING( 0x0200, DEF_STR( 1C_5C ) ) |
| 75 | 81 | PORT_DIPSETTING( 0x0400, DEF_STR( 1C_6C ) ) |
| 76 | 82 | |
| 77 | | PORT_START("B0") |
| 83 | PORT_START("SWITCH.0") |
| 78 | 84 | PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left Lane Target") PORT_CODE(KEYCODE_W) |
| 79 | 85 | PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("/B Target") PORT_CODE(KEYCODE_E) |
| 80 | 86 | PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left Lane 1000") PORT_CODE(KEYCODE_R) |
| 81 | 87 | 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") |
| 83 | 89 | PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right Lane Target") PORT_CODE(KEYCODE_U) |
| 84 | 90 | PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("/C Target") PORT_CODE(KEYCODE_I) |
| 85 | 91 | PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right Lane 1000") PORT_CODE(KEYCODE_O) |
| 86 | 92 | 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") |
| 88 | 94 | PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Spinner") PORT_CODE(KEYCODE_S) |
| 89 | | PORT_START("B3") |
| 95 | PORT_START("SWITCH.3") |
| 90 | 96 | PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("10's Target") PORT_CODE(KEYCODE_D) |
| 91 | 97 | PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("100's Target") PORT_CODE(KEYCODE_F) |
| 92 | 98 | PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Pot Bumper") PORT_CODE(KEYCODE_G) |
| 93 | 99 | 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") |
| 95 | 101 | PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("1000 Bonus") PORT_CODE(KEYCODE_J) |
| 96 | 102 | PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("500 Target") PORT_CODE(KEYCODE_K) |
| 97 | 103 | 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") |
| 99 | 105 | PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left 500 Out") PORT_CODE(KEYCODE_L) |
| 100 | 106 | PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Left Bumper") PORT_CODE(KEYCODE_Z) |
| 101 | 107 | PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Right 500 Out") PORT_CODE(KEYCODE_C) |
| 102 | 108 | 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") |
| 104 | 110 | PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("A Target") PORT_CODE(KEYCODE_B) |
| 105 | 111 | PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("B target") PORT_CODE(KEYCODE_N) |
| 106 | 112 | PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("C target") PORT_CODE(KEYCODE_M) |
| r32342 | r32343 | |
| 112 | 118 | offset = m_maincpu->state_int(I4004_RAM) & 0x0f; // we need the full address |
| 113 | 119 | |
| 114 | 120 | 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 | |
| 120 | 123 | return 0; |
| 121 | 124 | } |
| 122 | 125 | |
| r32342 | r32343 | |
| 132 | 135 | // The output lines operate the various lamps (44 of them) |
| 133 | 136 | offset = m_maincpu->state_int(I4004_RAM) & 0x0f; // we need the full address |
| 134 | 137 | |
| 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; |
| 137 | 140 | |
| 138 | | if (BIT(ioport("COIN")->read(), 0) ) |
| 141 | if (BIT(m_coinport->read(), 0) ) |
| 139 | 142 | test_port |= coin_port; |
| 140 | 143 | |
| 141 | 144 | m_maincpu->set_test(BIT(test_port, offset)); |
trunk/src/mame/drivers/atari_s2.c
| r32342 | r32343 | |
| 44 | 44 | DECLARE_WRITE8_MEMBER(sol1_w) { }; |
| 45 | 45 | DECLARE_WRITE8_MEMBER(intack_w); |
| 46 | 46 | DECLARE_WRITE8_MEMBER(display_w); |
| 47 | | DECLARE_READ8_MEMBER(switch_r); |
| 48 | 47 | TIMER_DEVICE_CALLBACK_MEMBER(irq); |
| 49 | 48 | TIMER_DEVICE_CALLBACK_MEMBER(timer_s); |
| 50 | 49 | private: |
| r32342 | r32343 | |
| 67 | 66 | ADDRESS_MAP_GLOBAL_MASK(0x3fff) |
| 68 | 67 | AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x0700) AM_RAM |
| 69 | 68 | 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") |
| 71 | 77 | AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x071F) AM_WRITE(sound0_w) |
| 72 | 78 | AM_RANGE(0x1820, 0x1820) AM_MIRROR(0x071F) AM_WRITE(sound1_w) |
| 73 | 79 | AM_RANGE(0x1840, 0x1847) AM_MIRROR(0x0718) AM_WRITE(display_w) |
| r32342 | r32343 | |
| 87 | 93 | ADDRESS_MAP_GLOBAL_MASK(0x3fff) |
| 88 | 94 | AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x0700) AM_RAM |
| 89 | 95 | 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") |
| 91 | 104 | AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x071F) AM_WRITE(sound0_w) |
| 92 | 105 | AM_RANGE(0x1820, 0x1820) AM_MIRROR(0x071F) AM_WRITE(sound1_w) |
| 93 | 106 | AM_RANGE(0x1840, 0x1847) AM_MIRROR(0x0718) AM_WRITE(display_w) |
| r32342 | r32343 | |
| 218 | 231 | PORT_START("DSW7") |
| 219 | 232 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 220 | 233 | |
| 221 | | PORT_START("X0") // 1000 |
| 234 | PORT_START("SWITCH.0") // 1000 |
| 222 | 235 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Test") PORT_CODE(KEYCODE_0) |
| 223 | 236 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X) |
| 224 | 237 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START ) |
| r32342 | r32343 | |
| 227 | 240 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) |
| 228 | 241 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 229 | 242 | |
| 230 | | PORT_START("X1") // 1001 |
| 243 | PORT_START("SWITCH.1") // 1001 |
| 231 | 244 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) |
| 232 | 245 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) |
| 233 | 246 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) |
| r32342 | r32343 | |
| 236 | 249 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) |
| 237 | 250 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 238 | 251 | |
| 239 | | PORT_START("X2") // 1002 |
| 252 | PORT_START("SWITCH.2") // 1002 |
| 240 | 253 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) |
| 241 | 254 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) |
| 242 | 255 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) |
| r32342 | r32343 | |
| 245 | 258 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) |
| 246 | 259 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 247 | 260 | |
| 248 | | PORT_START("X3") // 1003 |
| 261 | PORT_START("SWITCH.3") // 1003 |
| 249 | 262 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) |
| 250 | 263 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) |
| 251 | 264 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) |
| r32342 | r32343 | |
| 254 | 267 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) |
| 255 | 268 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 256 | 269 | |
| 257 | | PORT_START("X4") // 1004 |
| 270 | PORT_START("SWITCH.4") // 1004 |
| 258 | 271 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) |
| 259 | 272 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) |
| 260 | 273 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) |
| r32342 | r32343 | |
| 263 | 276 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) |
| 264 | 277 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 265 | 278 | |
| 266 | | PORT_START("X5") // 1005 |
| 279 | PORT_START("SWITCH.5") // 1005 |
| 267 | 280 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) |
| 268 | 281 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) |
| 269 | 282 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) |
| r32342 | r32343 | |
| 272 | 285 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) |
| 273 | 286 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 274 | 287 | |
| 275 | | PORT_START("X6") // 1006 |
| 288 | PORT_START("SWITCH.6") // 1006 |
| 276 | 289 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) |
| 277 | 290 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) |
| 278 | 291 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) |
| r32342 | r32343 | |
| 281 | 294 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) |
| 282 | 295 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 283 | 296 | |
| 284 | | PORT_START("X7") // 1007 |
| 297 | PORT_START("SWITCH.7") // 1007 |
| 285 | 298 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) |
| 286 | 299 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) |
| 287 | 300 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) |
| r32342 | r32343 | |
| 346 | 359 | m_maincpu->set_input_line(M6800_IRQ_LINE, CLEAR_LINE); |
| 347 | 360 | } |
| 348 | 361 | |
| 349 | | READ8_MEMBER( atari_s2_state::switch_r ) |
| 350 | | { |
| 351 | | char kbdrow[8]; |
| 352 | | sprintf(kbdrow,"X%X",offset); |
| 353 | | return ioport(kbdrow)->read(); |
| 354 | | } |
| 355 | | |
| 356 | 362 | // Sound |
| 357 | 363 | // 4 frequencies (500k,250k,125k,62.5k) come from main clock circuits |
| 358 | 364 | // We choose one of these with SEL A,B |
trunk/src/mame/drivers/peyper.c
| r32342 | r32343 | |
| 44 | 44 | peyper_state(const machine_config &mconfig, device_type type, const char *tag) |
| 45 | 45 | : genpin_class(mconfig, type, tag) |
| 46 | 46 | , m_maincpu(*this, "maincpu") |
| 47 | , m_switch(*this, "SWITCH") |
| 47 | 48 | { } |
| 48 | 49 | |
| 49 | 50 | DECLARE_READ8_MEMBER(sw_r); |
| r32342 | r32343 | |
| 65 | 66 | UINT8 m_disp_layout[36]; |
| 66 | 67 | virtual void machine_reset(); |
| 67 | 68 | required_device<cpu_device> m_maincpu; |
| 69 | required_ioport_array<4> m_switch; |
| 68 | 70 | }; |
| 69 | 71 | |
| 70 | 72 | WRITE8_MEMBER( peyper_state::col_w ) |
| r32342 | r32343 | |
| 74 | 76 | |
| 75 | 77 | READ8_MEMBER( peyper_state::sw_r ) |
| 76 | 78 | { |
| 77 | | UINT8 data = 0xff; |
| 78 | | |
| 79 | 79 | 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; |
| 86 | 83 | } |
| 87 | 84 | |
| 88 | 85 | WRITE8_MEMBER( peyper_state::disp_w ) |
| r32342 | r32343 | |
| 250 | 247 | PORT_DIPSETTING( 0x02, "0k 0k and 0k / 0k" ) |
| 251 | 248 | PORT_DIPSETTING( 0x03, "0k 0k and 0k / 0k" ) |
| 252 | 249 | |
| 253 | | PORT_START("X0") |
| 250 | PORT_START("SWITCH.0") |
| 254 | 251 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole") |
| 255 | 252 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) |
| 256 | 253 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) |
| r32342 | r32343 | |
| 260 | 257 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) |
| 261 | 258 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) |
| 262 | 259 | |
| 263 | | PORT_START("X1") |
| 260 | PORT_START("SWITCH.1") |
| 264 | 261 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) |
| 265 | 262 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) |
| 266 | 263 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) |
| r32342 | r32343 | |
| 270 | 267 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) |
| 271 | 268 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) |
| 272 | 269 | |
| 273 | | PORT_START("X2") |
| 270 | PORT_START("SWITCH.2") |
| 274 | 271 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) |
| 275 | 272 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) |
| 276 | 273 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) |
| r32342 | r32343 | |
| 280 | 277 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA) |
| 281 | 278 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) |
| 282 | 279 | |
| 283 | | PORT_START("X3") |
| 280 | PORT_START("SWITCH.3") |
| 284 | 281 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) |
| 285 | 282 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) |
| 286 | 283 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS) |