trunk/src/mame/drivers/gp_1.c
| r31381 | r31382 | |
| 11 | 11 | #include "cpu/z80/z80daisy.h" |
| 12 | 12 | #include "machine/i8255.h" |
| 13 | 13 | #include "machine/z80ctc.h" |
| 14 | #include "gp_1.lh" |
| 14 | 15 | |
| 15 | 16 | class gp_1_state : public genpin_class |
| 16 | 17 | { |
| r31381 | r31382 | |
| 29 | 30 | private: |
| 30 | 31 | UINT8 m_u14; |
| 31 | 32 | UINT8 m_digit; |
| 32 | | UINT8 m_sol; |
| 33 | UINT8 m_segment; |
| 33 | 34 | virtual void machine_reset(); |
| 34 | 35 | required_device<cpu_device> m_maincpu; |
| 35 | 36 | required_device<z80ctc_device> m_ctc; |
| r31381 | r31382 | |
| 48 | 49 | ADDRESS_MAP_END |
| 49 | 50 | |
| 50 | 51 | static INPUT_PORTS_START( gp_1 ) |
| 51 | | PORT_START("TEST") |
| 52 | | //PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Self Test") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, gp_1_state, self_test, 0) |
| 53 | | |
| 54 | 52 | PORT_START("DSW0") |
| 55 | | PORT_DIPNAME( 0x01, 0x01, "S01") // S1-5: 32 combinations of coins/credits of coin slot 1. |
| 56 | | PORT_DIPSETTING( 0x01, DEF_STR( Off )) |
| 57 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 58 | | PORT_DIPNAME( 0x02, 0x00, "S02") |
| 59 | | PORT_DIPSETTING( 0x02, DEF_STR( Off )) |
| 60 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 61 | | PORT_DIPNAME( 0x04, 0x04, "S03") |
| 62 | | PORT_DIPSETTING( 0x04, DEF_STR( Off )) |
| 63 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 64 | | PORT_DIPNAME( 0x08, 0x08, "S04") |
| 65 | | PORT_DIPSETTING( 0x08, DEF_STR( Off )) |
| 66 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 67 | | PORT_DIPNAME( 0x10, 0x10, "S05") |
| 68 | | PORT_DIPSETTING( 0x10, DEF_STR( Off )) |
| 69 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 70 | | PORT_DIPNAME( 0x20, 0x20, "S06") |
| 71 | | PORT_DIPSETTING( 0x20, DEF_STR( Off )) |
| 72 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 73 | | PORT_DIPNAME( 0x40, 0x40, "S07") |
| 74 | | PORT_DIPSETTING( 0x40, DEF_STR( Off )) |
| 75 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 76 | | PORT_DIPNAME( 0x80, 0x80, "Free Play") |
| 77 | | PORT_DIPSETTING( 0x80, DEF_STR( Off )) |
| 78 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 53 | PORT_DIPNAME( 0x01, 0x00, "S01") // S1-5: 32 combinations of coins/credits of coin slot 1. |
| 54 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 55 | PORT_DIPSETTING( 0x01, DEF_STR( On )) |
| 56 | PORT_DIPNAME( 0x02, 0x02, "S02") |
| 57 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 58 | PORT_DIPSETTING( 0x02, DEF_STR( On )) |
| 59 | PORT_DIPNAME( 0x04, 0x00, "S03") |
| 60 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 61 | PORT_DIPSETTING( 0x04, DEF_STR( On )) |
| 62 | PORT_DIPNAME( 0x08, 0x00, "S04") |
| 63 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 64 | PORT_DIPSETTING( 0x08, DEF_STR( On )) |
| 65 | PORT_DIPNAME( 0x10, 0x00, "S05") |
| 66 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 67 | PORT_DIPSETTING( 0x10, DEF_STR( On )) |
| 68 | PORT_DIPNAME( 0x20, 0x00, "S06") |
| 69 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 70 | PORT_DIPSETTING( 0x20, DEF_STR( On )) |
| 71 | PORT_DIPNAME( 0x40, 0x00, "S07") |
| 72 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 73 | PORT_DIPSETTING( 0x40, DEF_STR( On )) |
| 74 | PORT_DIPNAME( 0x80, 0x00, "Free Play") |
| 75 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 76 | PORT_DIPSETTING( 0x80, DEF_STR( On )) |
| 79 | 77 | |
| 80 | 78 | PORT_START("DSW1") |
| 81 | | PORT_DIPNAME( 0x01, 0x01, "S09") // S09-12 determine coinage for slot 2 |
| 82 | | PORT_DIPSETTING( 0x01, DEF_STR( Off )) |
| 83 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 84 | | PORT_DIPNAME( 0x02, 0x02, "S10") |
| 85 | | PORT_DIPSETTING( 0x02, DEF_STR( Off )) |
| 86 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 87 | | PORT_DIPNAME( 0x04, 0x04, "S11") |
| 88 | | PORT_DIPSETTING( 0x04, DEF_STR( Off )) |
| 89 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 90 | | PORT_DIPNAME( 0x08, 0x08, "S12") |
| 91 | | PORT_DIPSETTING( 0x08, DEF_STR( Off )) |
| 92 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 93 | | PORT_DIPNAME( 0x10, 0x10, "S13") |
| 94 | | PORT_DIPSETTING( 0x10, DEF_STR( Off )) |
| 95 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 96 | | PORT_DIPNAME( 0x20, 0x20, "S14") |
| 97 | | PORT_DIPSETTING( 0x20, DEF_STR( Off )) |
| 98 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 99 | | PORT_DIPNAME( 0x40, 0x40, "S15") |
| 100 | | PORT_DIPSETTING( 0x40, DEF_STR( Off )) |
| 101 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 79 | PORT_DIPNAME( 0x01, 0x00, "S09") // S09-12 determine coinage for slot 2 |
| 80 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 81 | PORT_DIPSETTING( 0x01, DEF_STR( On )) |
| 82 | PORT_DIPNAME( 0x02, 0x00, "S10") |
| 83 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 84 | PORT_DIPSETTING( 0x02, DEF_STR( On )) |
| 85 | PORT_DIPNAME( 0x04, 0x00, "S11") |
| 86 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 87 | PORT_DIPSETTING( 0x04, DEF_STR( On )) |
| 88 | PORT_DIPNAME( 0x08, 0x00, "S12") |
| 89 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 90 | PORT_DIPSETTING( 0x08, DEF_STR( On )) |
| 91 | PORT_DIPNAME( 0x10, 0x00, "S13") |
| 92 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 93 | PORT_DIPSETTING( 0x10, DEF_STR( On )) |
| 94 | PORT_DIPNAME( 0x20, 0x00, "S14") |
| 95 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 96 | PORT_DIPSETTING( 0x20, DEF_STR( On )) |
| 97 | PORT_DIPNAME( 0x40, 0x00, "S15") |
| 98 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 99 | PORT_DIPSETTING( 0x40, DEF_STR( On )) |
| 102 | 100 | PORT_DIPNAME( 0x80, 0x00, "Play Tunes") |
| 103 | | PORT_DIPSETTING( 0x80, DEF_STR( Off )) |
| 104 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 101 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 102 | PORT_DIPSETTING( 0x80, DEF_STR( On )) |
| 105 | 103 | |
| 106 | 104 | PORT_START("DSW2") |
| 107 | | PORT_DIPNAME( 0x01, 0x01, "S17") // S17-21 coins for slot 3 |
| 108 | | PORT_DIPSETTING( 0x01, DEF_STR( Off )) |
| 109 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 110 | | PORT_DIPNAME( 0x02, 0x00, "S18") |
| 111 | | PORT_DIPSETTING( 0x02, DEF_STR( Off )) |
| 112 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 113 | | PORT_DIPNAME( 0x04, 0x04, "S19") |
| 114 | | PORT_DIPSETTING( 0x04, DEF_STR( Off )) |
| 115 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 116 | | PORT_DIPNAME( 0x08, 0x08, "S20") |
| 117 | | PORT_DIPSETTING( 0x08, DEF_STR( Off )) |
| 118 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 119 | | PORT_DIPNAME( 0x10, 0x10, "S21") |
| 120 | | PORT_DIPSETTING( 0x10, DEF_STR( Off )) |
| 121 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 122 | | PORT_DIPNAME( 0x20, 0x20, "S22") |
| 123 | | PORT_DIPSETTING( 0x20, DEF_STR( Off )) |
| 124 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 125 | | PORT_DIPNAME( 0x40, 0x40, "S23") |
| 126 | | PORT_DIPSETTING( 0x40, DEF_STR( Off )) |
| 127 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 128 | | PORT_DIPNAME( 0x80, 0x80, "S24") |
| 129 | | PORT_DIPSETTING( 0x80, DEF_STR( Off )) |
| 130 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 105 | PORT_DIPNAME( 0x01, 0x00, "S17") // S17-21 coins for slot 3 |
| 106 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 107 | PORT_DIPSETTING( 0x01, DEF_STR( On )) |
| 108 | PORT_DIPNAME( 0x02, 0x02, "S18") |
| 109 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 110 | PORT_DIPSETTING( 0x02, DEF_STR( On )) |
| 111 | PORT_DIPNAME( 0x04, 0x00, "S19") |
| 112 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 113 | PORT_DIPSETTING( 0x04, DEF_STR( On )) |
| 114 | PORT_DIPNAME( 0x08, 0x00, "S20") |
| 115 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 116 | PORT_DIPSETTING( 0x08, DEF_STR( On )) |
| 117 | PORT_DIPNAME( 0x10, 0x00, "S21") |
| 118 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 119 | PORT_DIPSETTING( 0x10, DEF_STR( On )) |
| 120 | PORT_DIPNAME( 0x20, 0x00, "S22") |
| 121 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 122 | PORT_DIPSETTING( 0x20, DEF_STR( On )) |
| 123 | PORT_DIPNAME( 0x40, 0x00, "S23") |
| 124 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 125 | PORT_DIPSETTING( 0x40, DEF_STR( On )) |
| 126 | PORT_DIPNAME( 0x80, 0x00, "S24") |
| 127 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 128 | PORT_DIPSETTING( 0x80, DEF_STR( On )) |
| 131 | 129 | |
| 132 | 130 | PORT_START("DSW3") |
| 133 | | PORT_DIPNAME( 0x07, 0x00, "Max number of credits") |
| 134 | | PORT_DIPSETTING( 0x07, "5" ) |
| 135 | | PORT_DIPSETTING( 0x06, "10") |
| 136 | | PORT_DIPSETTING( 0x05, "15") |
| 137 | | PORT_DIPSETTING( 0x04, "20") |
| 138 | | PORT_DIPSETTING( 0x03, "25") |
| 139 | | PORT_DIPSETTING( 0x02, "30") |
| 140 | | PORT_DIPSETTING( 0x01, "35") |
| 141 | | PORT_DIPSETTING( 0x00, "40") |
| 142 | | PORT_DIPNAME( 0x08, 0x00, "Balls") |
| 143 | | PORT_DIPSETTING( 0x00, "5") |
| 144 | | PORT_DIPSETTING( 0x08, "3") |
| 145 | | PORT_DIPNAME( 0x10, 0x00, "Award") |
| 146 | | PORT_DIPSETTING( 0x00, "Replay") |
| 147 | | PORT_DIPSETTING( 0x10, "Extra Ball") |
| 148 | | PORT_DIPNAME( 0x20, 0x00, "Match") |
| 149 | | PORT_DIPSETTING( 0x00, DEF_STR( On )) |
| 150 | | PORT_DIPSETTING( 0x20, DEF_STR( Off )) |
| 151 | | PORT_DIPNAME( 0xC0, 0x40, "Credits for exceeding high score") |
| 152 | | PORT_DIPSETTING( 0xC0, "0") |
| 153 | | PORT_DIPSETTING( 0x80, "1") |
| 154 | | PORT_DIPSETTING( 0x40, "2") |
| 131 | PORT_DIPNAME( 0x07, 0x07, "Max number of credits") |
| 132 | PORT_DIPSETTING( 0x00, "5" ) |
| 133 | PORT_DIPSETTING( 0x01, "10") |
| 134 | PORT_DIPSETTING( 0x02, "15") |
| 135 | PORT_DIPSETTING( 0x03, "20") |
| 136 | PORT_DIPSETTING( 0x04, "25") |
| 137 | PORT_DIPSETTING( 0x05, "30") |
| 138 | PORT_DIPSETTING( 0x06, "35") |
| 139 | PORT_DIPSETTING( 0x07, "40") |
| 140 | PORT_DIPNAME( 0x08, 0x08, "Balls") |
| 155 | 141 | PORT_DIPSETTING( 0x00, "3") |
| 142 | PORT_DIPSETTING( 0x08, "5") |
| 143 | PORT_DIPNAME( 0x10, 0x10, "Award") |
| 144 | PORT_DIPSETTING( 0x00, "Extra Ball") |
| 145 | PORT_DIPSETTING( 0x10, "Replay") |
| 146 | PORT_DIPNAME( 0x20, 0x20, "Match") |
| 147 | PORT_DIPSETTING( 0x00, DEF_STR( Off )) |
| 148 | PORT_DIPSETTING( 0x20, DEF_STR( On )) |
| 149 | PORT_DIPNAME( 0xC0, 0x80, "Credits for exceeding high score") |
| 150 | PORT_DIPSETTING( 0x00, "0") |
| 151 | PORT_DIPSETTING( 0x40, "1") |
| 152 | PORT_DIPSETTING( 0x80, "2") |
| 153 | PORT_DIPSETTING( 0xC0, "3") |
| 156 | 154 | |
| 157 | 155 | PORT_START("X7") |
| 158 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Accounting Reset") |
| 159 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 ) |
| 160 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT1 ) PORT_NAME("Slam Tilt") |
| 161 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 162 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 163 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 ) |
| 164 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 165 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT ) |
| 156 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_NAME("Accounting Reset") |
| 157 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 ) |
| 158 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT1 ) PORT_NAME("Slam Tilt") |
| 159 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 160 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 ) |
| 161 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN3 ) |
| 162 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 ) |
| 163 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT ) |
| 166 | 164 | |
| 167 | 165 | PORT_START("X8") |
| 168 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("L and R Target") PORT_CODE(KEYCODE_A) |
| 169 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Spinner C") PORT_CODE(KEYCODE_S) |
| 170 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X) |
| 171 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Spinner B") PORT_CODE(KEYCODE_D) |
| 172 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("R. Slingshot") PORT_CODE(KEYCODE_F) |
| 173 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Special when lit") PORT_CODE(KEYCODE_G) |
| 174 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("L. Slingshot") PORT_CODE(KEYCODE_H) |
| 175 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Extra when lit") PORT_CODE(KEYCODE_J) |
| 166 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L and R Target") PORT_CODE(KEYCODE_A) |
| 167 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinner C") PORT_CODE(KEYCODE_S) |
| 168 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X) |
| 169 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinner B") PORT_CODE(KEYCODE_D) |
| 170 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R. Slingshot") PORT_CODE(KEYCODE_F) |
| 171 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Special when lit") PORT_CODE(KEYCODE_G) |
| 172 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L. Slingshot") PORT_CODE(KEYCODE_H) |
| 173 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Extra when lit") PORT_CODE(KEYCODE_J) |
| 176 | 174 | |
| 177 | 175 | PORT_START("X9") |
| 178 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("R. Spinner") PORT_CODE(KEYCODE_K) |
| 179 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("1000 and advance") PORT_CODE(KEYCODE_L) |
| 180 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 181 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Advance and Change") PORT_CODE(KEYCODE_Z) |
| 182 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("L. Bumper") PORT_CODE(KEYCODE_C) |
| 183 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("R. Bumper") PORT_CODE(KEYCODE_V) |
| 184 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("L. Spinner") PORT_CODE(KEYCODE_B) |
| 185 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Spinner A") PORT_CODE(KEYCODE_N) |
| 176 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R. Spinner") PORT_CODE(KEYCODE_K) |
| 177 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("1000 and advance") PORT_CODE(KEYCODE_L) |
| 178 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 179 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Advance and Change") PORT_CODE(KEYCODE_Z) |
| 180 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L. Bumper") PORT_CODE(KEYCODE_C) |
| 181 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R. Bumper") PORT_CODE(KEYCODE_V) |
| 182 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L. Spinner") PORT_CODE(KEYCODE_B) |
| 183 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinner A") PORT_CODE(KEYCODE_N) |
| 186 | 184 | |
| 187 | 185 | PORT_START("XA") |
| 188 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("1000 Rollover") PORT_CODE(KEYCODE_M) |
| 189 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) |
| 190 | | PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 186 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("1000 Rollover") PORT_CODE(KEYCODE_M) |
| 187 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 ) |
| 188 | PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 191 | 189 | |
| 192 | 190 | PORT_START("XB") |
| 193 | | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 191 | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 194 | 192 | INPUT_PORTS_END |
| 195 | 193 | |
| 196 | 194 | READ8_MEMBER( gp_1_state::portb_r ) |
| r31381 | r31382 | |
| 222 | 220 | WRITE8_MEMBER( gp_1_state::porta_w ) |
| 223 | 221 | { |
| 224 | 222 | m_u14 = data >> 4; |
| 223 | /*if (m_u14 >= 8)*/ m_segment = data & 15; |
| 225 | 224 | if ((data > 0x0f) && (data < 0x30)) |
| 226 | 225 | { |
| 227 | | m_sol = data; |
| 228 | | switch (m_sol) |
| 226 | switch (data) |
| 229 | 227 | { |
| 230 | 228 | case 0x10: |
| 231 | 229 | break; |
| r31381 | r31382 | |
| 265 | 263 | break; |
| 266 | 264 | } |
| 267 | 265 | } |
| 266 | static const UINT8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67,0x58,0x4c,0x62,0x69,0x78,0x00 }; // 7448 |
| 267 | if ((m_u14 >= 8) && (m_u14 <= 11)) |
| 268 | { |
| 269 | output_set_digit_value(m_digit+(m_u14-8)*8, patterns[m_segment]); |
| 270 | } |
| 268 | 271 | } |
| 269 | 272 | |
| 270 | 273 | WRITE8_MEMBER( gp_1_state::portc_w ) |
| 271 | 274 | { |
| 272 | | if (BIT(data, 4)) |
| 273 | | m_digit = data & 7; |
| 274 | | else |
| 275 | | m_digit = 0xff; |
| 275 | output_set_value("led0", BIT(data, 3)); |
| 276 | |
| 277 | m_digit = data & 7; |
| 278 | static const UINT8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67,0x58,0x4c,0x62,0x69,0x78,0x00 }; // 7448 |
| 279 | if ((m_digit) && (m_u14 >= 8) && (m_u14 <= 11)) |
| 280 | { |
| 281 | output_set_digit_value(m_digit+(m_u14-8)*8, patterns[m_segment]); |
| 282 | } |
| 276 | 283 | } |
| 277 | 284 | |
| 278 | 285 | void gp_1_state::machine_reset() |
| r31381 | r31382 | |
| 281 | 288 | m_digit = 0xff; |
| 282 | 289 | } |
| 283 | 290 | |
| 284 | | DRIVER_INIT_MEMBER(gp_1_state,gp_1) |
| 285 | | { |
| 286 | | } |
| 287 | | |
| 288 | 291 | // zero-cross detection |
| 289 | 292 | TIMER_DEVICE_CALLBACK_MEMBER( gp_1_state::zero_timer ) |
| 290 | 293 | { |
| r31381 | r31382 | |
| 305 | 308 | MCFG_CPU_IO_MAP(gp_1_io) |
| 306 | 309 | MCFG_CPU_CONFIG(daisy_chain) |
| 307 | 310 | |
| 311 | /* Video */ |
| 312 | MCFG_DEFAULT_LAYOUT(layout_gp_1) |
| 313 | |
| 308 | 314 | /* Sound */ |
| 309 | 315 | MCFG_FRAGMENT_ADD( genpin_audio ) |
| 310 | 316 | |
| r31381 | r31382 | |
| 371 | 377 | ROM_LOAD( "startrip.u13", 0x0800, 0x0800, CRC(b941a1a8) SHA1(a43f8acadb3db3e2274162d5305e30006f912339)) |
| 372 | 378 | ROM_END |
| 373 | 379 | |
| 374 | | GAME(1978, gp_110, 0, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Model 110", GAME_IS_BIOS_ROOT) |
| 375 | | GAME(1978, blvelvet, gp_110, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Black Velvet", GAME_IS_SKELETON_MECHANICAL) |
| 376 | | GAME(1978, camlight, gp_110, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Camel Lights", GAME_IS_SKELETON_MECHANICAL) |
| 377 | | GAME(1978, foxylady, gp_110, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Foxy Lady", GAME_IS_SKELETON_MECHANICAL) |
| 378 | | GAME(1978, real, gp_110, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Real", GAME_IS_SKELETON_MECHANICAL) |
| 379 | | GAME(1978, rio, gp_110, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Rio", GAME_IS_SKELETON_MECHANICAL) |
| 380 | | GAME(1978, chucklck, gp_110, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Chuck-A-Luck", GAME_IS_SKELETON_MECHANICAL) |
| 381 | | GAME(1979, famlyfun, 0, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Family Fun!", GAME_IS_SKELETON_MECHANICAL) |
| 382 | | GAME(1979, startrip, 0, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Star Trip", GAME_IS_SKELETON_MECHANICAL) |
| 380 | GAME(1978, gp_110, 0, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Model 110", GAME_IS_BIOS_ROOT) |
| 381 | GAME(1978, blvelvet, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Black Velvet", GAME_IS_SKELETON_MECHANICAL) |
| 382 | GAME(1978, camlight, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Camel Lights", GAME_IS_SKELETON_MECHANICAL) |
| 383 | GAME(1978, foxylady, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Foxy Lady", GAME_IS_SKELETON_MECHANICAL) |
| 384 | GAME(1978, real, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Real", GAME_IS_SKELETON_MECHANICAL) |
| 385 | GAME(1978, rio, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Rio", GAME_IS_SKELETON_MECHANICAL) |
| 386 | GAME(1978, chucklck, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Chuck-A-Luck", GAME_IS_SKELETON_MECHANICAL) |
| 387 | GAME(1979, famlyfun, 0, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Family Fun!", GAME_IS_SKELETON_MECHANICAL) |
| 388 | GAME(1979, startrip, 0, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Star Trip", GAME_IS_SKELETON_MECHANICAL) |