src/mess/machine/cbmipt.c
| r3261 | r3262 | |
| 150 | 150 | |
| 151 | 151 | |
| 152 | 152 | INPUT_PORTS_START( c64_controls ) |
| 153 | | PORT_START("JOY0") |
| 154 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY |
| 155 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 156 | | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 157 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY |
| 158 | | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| 159 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) |
| 153 | PORT_START("CTRLSEL") /* Controller selection */ |
| 154 | PORT_CATEGORY_CLASS( 0x07, 0x00, "Gameport A" ) |
| 155 | PORT_CATEGORY_ITEM( 0x00, DEF_STR( Joystick ), 10 ) |
| 156 | PORT_CATEGORY_ITEM( 0x01, "Paddles 1 & 2", 11 ) |
| 157 | PORT_CATEGORY_ITEM( 0x02, "Mouse", 12 ) |
| 158 | PORT_CATEGORY_ITEM( 0x03, "Joystick 2 Buttons", 13 ) |
| 159 | PORT_CATEGORY_ITEM( 0x04, "Lightpen", 14 ) |
| 160 | PORT_CATEGORY_CLASS( 0x70, 0x00, "Gameport B" ) |
| 161 | PORT_CATEGORY_ITEM( 0x00, DEF_STR( Joystick ), 20 ) |
| 162 | PORT_CATEGORY_ITEM( 0x10, "Paddles 3 & 4", 21 ) |
| 163 | // PORT_CATEGORY_ITEM( 0x20, "Mouse", 22 ) |
| 164 | PORT_CATEGORY_ITEM( 0x30, "Joystick 2 Buttons", 23 ) |
| 165 | // PORT_CATEGORY_ITEM( 0x40, "Lightpen", 24 ) |
| 166 | PORT_CONFNAME( 0x80, 0x00, "Swap Gameport A and B") PORT_CODE(KEYCODE_F1) PORT_TOGGLE |
| 167 | PORT_CONFSETTING( 0x00, DEF_STR( No ) ) |
| 168 | PORT_CONFSETTING( 0x80, DEF_STR( Yes ) ) |
| 169 | |
| 170 | PORT_START("JOY1_1B") |
| 171 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_CATEGORY(10) |
| 172 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_CATEGORY(10) |
| 173 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_CATEGORY(10) |
| 174 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_CATEGORY(10) |
| 175 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_CATEGORY(10) |
| 176 | PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 177 | |
| 178 | PORT_START("JOY2_1B") |
| 179 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_CATEGORY(20) PORT_CODE(KEYCODE_HOME) PORT_CODE(JOYCODE_Y_UP_SWITCH) |
| 180 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_CATEGORY(20) PORT_CODE(KEYCODE_END) PORT_CODE(JOYCODE_Y_DOWN_SWITCH) |
| 181 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_CATEGORY(20) PORT_CODE(KEYCODE_DEL) PORT_CODE(JOYCODE_X_LEFT_SWITCH) |
| 182 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_CATEGORY(20) PORT_CODE(KEYCODE_PGDN) PORT_CODE(JOYCODE_X_RIGHT_SWITCH) |
| 183 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_CATEGORY(20) PORT_CODE(KEYCODE_INSERT) PORT_CODE(JOYCODE_BUTTON1) |
| 184 | PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 185 | |
| 186 | PORT_START("JOY1_2B") |
| 187 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_CATEGORY(13) |
| 188 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_CATEGORY(13) |
| 189 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_CATEGORY(13) |
| 190 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_CATEGORY(13) |
| 191 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_CATEGORY(13) |
| 192 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_CATEGORY(13) |
| 160 | 193 | PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 161 | 194 | |
| 162 | | PORT_START("JOY1") |
| 163 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("P2 Up") PORT_CODE(KEYCODE_HOME) PORT_CODE(JOYCODE_Y_UP_SWITCH) PORT_PLAYER(2) PORT_8WAY |
| 164 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_NAME("P2 Down") PORT_CODE(KEYCODE_END) PORT_CODE(JOYCODE_Y_DOWN_SWITCH) PORT_PLAYER(2) PORT_8WAY |
| 165 | | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("P2 Left") PORT_CODE(KEYCODE_DEL) PORT_CODE(JOYCODE_X_LEFT_SWITCH ) PORT_PLAYER(2) PORT_8WAY |
| 166 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("P2 Right") PORT_CODE(KEYCODE_PGDN) PORT_CODE(JOYCODE_X_RIGHT_SWITCH ) PORT_PLAYER(2) PORT_8WAY |
| 167 | | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P2 Button") PORT_CODE(KEYCODE_INSERT) PORT_CODE(JOYCODE_BUTTON1 ) PORT_PLAYER(2) |
| 168 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P2 Button 2") PORT_CODE(KEYCODE_PGUP) PORT_CODE(JOYCODE_BUTTON2 ) PORT_PLAYER(2) |
| 195 | PORT_START("JOY2_2B") |
| 196 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_CATEGORY(23) PORT_CODE(KEYCODE_HOME) PORT_CODE(JOYCODE_Y_UP_SWITCH) |
| 197 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_CATEGORY(23) PORT_CODE(KEYCODE_END) PORT_CODE(JOYCODE_Y_DOWN_SWITCH) |
| 198 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_CATEGORY(23) PORT_CODE(KEYCODE_DEL) PORT_CODE(JOYCODE_X_LEFT_SWITCH) |
| 199 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_CATEGORY(23) PORT_CODE(KEYCODE_PGDN) PORT_CODE(JOYCODE_X_RIGHT_SWITCH) |
| 200 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_CATEGORY(23) PORT_CODE(KEYCODE_INSERT) PORT_CODE(JOYCODE_BUTTON1) |
| 201 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_CATEGORY(23) PORT_CODE(KEYCODE_PGUP) PORT_CODE(JOYCODE_BUTTON2) |
| 169 | 202 | PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 170 | 203 | |
| 171 | | PORT_START("PADDLE0") |
| 172 | | PORT_BIT( 0x100, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Paddle 1 Button") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_BUTTON1) |
| 173 | | PORT_BIT( 0xff,128,IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CODE_DEC(KEYCODE_LEFT) PORT_CODE_INC(KEYCODE_RIGHT) PORT_CODE_DEC(JOYCODE_X_LEFT_SWITCH) PORT_CODE_INC(JOYCODE_X_RIGHT_SWITCH) PORT_REVERSE |
| 174 | | |
| 175 | 204 | PORT_START("PADDLE1") |
| 176 | | PORT_BIT( 0x100, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Paddle 2 Button") PORT_CODE(KEYCODE_LALT) PORT_CODE(JOYCODE_BUTTON2) |
| 177 | | PORT_BIT( 0xff,128,IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CODE_DEC(KEYCODE_DOWN) PORT_CODE_INC(KEYCODE_UP) PORT_CODE_DEC(JOYCODE_Y_UP_SWITCH) PORT_CODE_INC(JOYCODE_Y_DOWN_SWITCH) PORT_PLAYER(2) PORT_REVERSE |
| 205 | PORT_BIT( 0xff, 128, IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CODE_DEC(KEYCODE_LEFT) PORT_CODE_INC(KEYCODE_RIGHT) PORT_CODE_DEC(JOYCODE_X_LEFT_SWITCH) PORT_CODE_INC(JOYCODE_X_RIGHT_SWITCH) PORT_CATEGORY(11) PORT_PLAYER(1) PORT_REVERSE |
| 178 | 206 | |
| 179 | 207 | PORT_START("PADDLE2") |
| 180 | | PORT_BIT( 0x100, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Paddle 3 Button") PORT_CODE(KEYCODE_INSERT) PORT_CODE(JOYCODE_BUTTON1) |
| 181 | | PORT_BIT( 0xff,128,IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CODE_DEC(KEYCODE_HOME) PORT_CODE_INC(KEYCODE_PGUP) PORT_PLAYER(3) PORT_REVERSE |
| 208 | PORT_BIT( 0xff, 128, IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CODE_DEC(KEYCODE_DOWN) PORT_CODE_INC(KEYCODE_UP) PORT_CODE_DEC(JOYCODE_Y_UP_SWITCH) PORT_CODE_INC(JOYCODE_Y_DOWN_SWITCH) PORT_CATEGORY(11) PORT_PLAYER(2) PORT_REVERSE |
| 182 | 209 | |
| 183 | 210 | PORT_START("PADDLE3") |
| 184 | | PORT_BIT( 0x100, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Paddle 4 Button") PORT_CODE(KEYCODE_DEL) PORT_CODE(JOYCODE_BUTTON2) |
| 185 | | PORT_BIT( 0xff,128,IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CODE_DEC(KEYCODE_END) PORT_CODE_INC(KEYCODE_PGDN) PORT_PLAYER(4) PORT_REVERSE |
| 211 | PORT_BIT( 0xff, 128, IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CODE_DEC(KEYCODE_HOME) PORT_CODE_INC(KEYCODE_PGUP) PORT_CATEGORY(21) PORT_PLAYER(3) PORT_REVERSE |
| 186 | 212 | |
| 213 | PORT_START("PADDLE4") |
| 214 | PORT_BIT( 0xff, 128, IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CODE_DEC(KEYCODE_END) PORT_CODE_INC(KEYCODE_PGDN) PORT_CATEGORY(21) PORT_PLAYER(4) PORT_REVERSE |
| 215 | |
| 187 | 216 | PORT_START("TRACKX") |
| 188 | | PORT_BIT( 0x7e, 0x00, IPT_TRACKBALL_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_PLAYER(1) |
| 189 | | /* PORT_BIT( 0x1ff,0,IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(2) PORT_MINMAX(0,320-1) PORT_CODE_DEC(KEYCODE_LEFT) PORT_CODE_INC(KEYCODE_RIGHT) PORT_CODE_DEC(JOYCODE_X_LEFT_SWITCH) PORT_CODE_INC(JOYCODE_X_RIGHT_SWITCH) PORT_PLAYER(1) */ |
| 217 | PORT_BIT( 0x7e, 0x00, IPT_TRACKBALL_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_PLAYER(1) PORT_CATEGORY(12) |
| 190 | 218 | |
| 191 | 219 | PORT_START("TRACKY") |
| 192 | | PORT_BIT( 0x7e, 0x00, IPT_TRACKBALL_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_PLAYER(1) PORT_REVERSE |
| 193 | | /* PORT_BIT( 0xff,0,IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(2) PORT_MINMAX(0,200-1) PORT_CODE_DEC(KEYCODE_UP) PORT_CODE_INC(KEYCODE_DOWN) PORT_CODE_DEC(JOYCODE_Y_UP_SWITCH) PORT_CODE_INC(JOYCODE_Y_DOWN_SWITCH) PORT_PLAYER(2) */ |
| 220 | PORT_BIT( 0x7e, 0x00, IPT_TRACKBALL_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_PLAYER(1) PORT_CATEGORY(12) PORT_REVERSE |
| 194 | 221 | |
| 195 | | PORT_START("TRACKIPT") |
| 196 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Mouse Button Left") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_BUTTON1) |
| 197 | | /* PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Lightpen Signal") PORT_CODE(KEYCODE_LCONTROL) */ |
| 198 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Mouse Button Right") PORT_CODE(KEYCODE_LALT) PORT_CODE(JOYCODE_BUTTON2) |
| 199 | | INPUT_PORTS_END |
| 222 | PORT_START("LIGHTX") |
| 223 | PORT_BIT( 0x7e, 0x00, IPT_TRACKBALL_X) PORT_NAME("Lightpen X Axis") PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_PLAYER(1) PORT_CATEGORY(14) |
| 224 | /* PORT_BIT( 0x1ff,0,IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(2) PORT_MINMAX(0,320-1) PORT_CODE_DEC(KEYCODE_LEFT) PORT_CODE_INC(KEYCODE_RIGHT) PORT_CODE_DEC(JOYCODE_X_LEFT_SWITCH) PORT_CODE_INC(JOYCODE_X_RIGHT_SWITCH) PORT_PLAYER(1) */ |
| 200 | 225 | |
| 226 | PORT_START("LIGHTY") |
| 227 | PORT_BIT( 0x7e, 0x00, IPT_TRACKBALL_Y) PORT_NAME("Lightpen Y Axis") PORT_SENSITIVITY(100) PORT_KEYDELTA(0) PORT_PLAYER(1) PORT_CATEGORY(14) PORT_REVERSE |
| 228 | /* PORT_BIT( 0xff,0,IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(2) PORT_MINMAX(0,200-1) PORT_CODE_DEC(KEYCODE_UP) PORT_CODE_INC(KEYCODE_DOWN) PORT_CODE_DEC(JOYCODE_Y_UP_SWITCH) PORT_CODE_INC(JOYCODE_Y_DOWN_SWITCH) PORT_PLAYER(2) */ |
| 201 | 229 | |
| 202 | | INPUT_PORTS_START( c64_control_cfg ) |
| 203 | | PORT_START("DSW0") |
| 204 | | PORT_DIPNAME( 0xe000, 0x2000, "Gameport A") |
| 205 | | PORT_DIPSETTING( 0x0000, DEF_STR( None ) ) |
| 206 | | PORT_DIPSETTING( 0x2000, "Joystick 1" ) |
| 207 | | PORT_DIPSETTING( 0x4000, "Paddles 1, 2" ) |
| 208 | | PORT_DIPSETTING( 0x6000, "Mouse Joystick Emulation/2 Button Joystick" ) |
| 209 | | PORT_DIPSETTING( 0x8000, "Mouse" ) |
| 210 | | PORT_DIPSETTING( 0xa000, "Lightpen" ) |
| 211 | | PORT_DIPNAME( 0x1000, 0x1000, "Lightpen Draw Pointer") |
| 212 | | PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) |
| 213 | | PORT_DIPSETTING( 0x1000, DEF_STR( On ) ) |
| 214 | | PORT_DIPNAME( 0x0e00, 0x0200, "Gameport B") |
| 215 | | PORT_DIPSETTING( 0x0000, DEF_STR( None ) ) |
| 216 | | PORT_DIPSETTING( 0x0200, "Joystick 2" ) |
| 217 | | PORT_DIPSETTING( 0x0400, "Paddles 3, 4" ) |
| 218 | | PORT_DIPSETTING( 0x0600, "Mouse Joystick Emulation/2 Button Joystick" ) |
| 219 | | PORT_DIPSETTING( 0x0800, "Mouse" ) |
| 220 | | PORT_DIPNAME( 0x0100, 0x0000, "Swap Gameport 1 and 2") PORT_CODE(KEYCODE_F1) PORT_TOGGLE |
| 221 | | PORT_DIPSETTING( 0x0000, DEF_STR( No ) ) |
| 222 | | PORT_DIPSETTING( 0x0100, DEF_STR( Yes ) ) |
| 230 | PORT_START("OTHER") |
| 231 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Paddle 1 Button") PORT_CATEGORY(11) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_BUTTON1) |
| 232 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Paddle 2 Button") PORT_CATEGORY(11) PORT_CODE(KEYCODE_LALT) PORT_CODE(JOYCODE_BUTTON2) |
| 233 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Paddle 3 Button") PORT_CATEGORY(21) PORT_CODE(KEYCODE_INSERT) PORT_CODE(JOYCODE_BUTTON1) |
| 234 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("Paddle 4 Button") PORT_CATEGORY(21) PORT_CODE(KEYCODE_DEL) PORT_CODE(JOYCODE_BUTTON2) |
| 235 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Lightpen Signal") PORT_CATEGORY(14) PORT_CODE(KEYCODE_LCONTROL) |
| 236 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Mouse Button Left") PORT_CATEGORY(12) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(JOYCODE_BUTTON1) |
| 237 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Mouse Button Right") PORT_CATEGORY(12) PORT_CODE(KEYCODE_LALT) PORT_CODE(JOYCODE_BUTTON2) |
| 223 | 238 | INPUT_PORTS_END |
| 224 | 239 | |
| 225 | 240 | |
| r3261 | r3262 | |
| 321 | 336 | INPUT_PORTS_START( c16_special ) |
| 322 | 337 | PORT_START("SPECIAL") |
| 323 | 338 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Shift Lock (switch)") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE |
| 324 | | PORT_DIPNAME( 0x40, 0x00, "Swap Gameport 1 and 2") PORT_CODE(KEYCODE_F1) PORT_TOGGLE |
| 325 | | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 326 | | PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) |
| 339 | PORT_CONFNAME( 0x40, 0x00, "Swap Gameport 1 and 2") PORT_CODE(KEYCODE_F1) PORT_TOGGLE |
| 340 | PORT_CONFSETTING( 0x00, DEF_STR( No ) ) |
| 341 | PORT_CONFSETTING( 0x40, DEF_STR( Yes ) ) |
| 327 | 342 | INPUT_PORTS_END |
| 328 | 343 | |
| 329 | 344 | |
| r3261 | r3262 | |
| 1106 | 1121 | int bit_mask = (FPTR)param; |
| 1107 | 1122 | UINT8 port = 0; |
| 1108 | 1123 | |
| 1109 | | if (input_port_read(field->port->machine, "CFG") & 0x40) |
| 1124 | if ((input_port_read(field->port->machine, "CFG") & 0xf0) == 0x10) |
| 1110 | 1125 | port |= (input_port_read(field->port->machine, "FAKE0") & bit_mask) ? 1 : 0; |
| 1111 | 1126 | |
| 1112 | | if (input_port_read(field->port->machine, "CFG") & 0x80) |
| 1127 | if ((input_port_read(field->port->machine, "CFG") & 0xf0) == 0x00) |
| 1113 | 1128 | port |= (input_port_read(field->port->machine, "FAKE1") & bit_mask) ? 1 : 0; |
| 1114 | 1129 | |
| 1115 | 1130 | return port; |
| r3261 | r3262 | |
| 1118 | 1133 | INPUT_PORTS_START( vic_controls ) |
| 1119 | 1134 | PORT_START( "JOY" ) |
| 1120 | 1135 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vic_custom_inputs, (void *)0x02) |
| 1121 | | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Lightpen Signal") PORT_CODE(KEYCODE_LALT) |
| 1136 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Lightpen Signal") PORT_CODE(KEYCODE_LALT) PORT_CATEGORY(12) |
| 1122 | 1137 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(vic_custom_inputs, (void *)0x01) |
| 1123 | | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 1124 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 1125 | | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY |
| 1138 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_CATEGORY(10) |
| 1139 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_CATEGORY(10) |
| 1140 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_CATEGORY(10) |
| 1126 | 1141 | |
| 1127 | 1142 | PORT_START( "FAKE0" ) |
| 1128 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Paddle 2 Button") PORT_CODE(KEYCODE_DEL) |
| 1129 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Paddle 1 Button") PORT_CODE(KEYCODE_INSERT) |
| 1143 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Paddle 2 Button") PORT_CODE(KEYCODE_DEL) PORT_CATEGORY(11) |
| 1144 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Paddle 1 Button") PORT_CODE(KEYCODE_INSERT) PORT_CATEGORY(11) |
| 1130 | 1145 | |
| 1131 | 1146 | PORT_START( "FAKE1" ) |
| 1132 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY |
| 1133 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| 1147 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_CATEGORY(10) |
| 1148 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CATEGORY(10) |
| 1134 | 1149 | |
| 1135 | 1150 | PORT_START( "PADDLE0" ) |
| 1136 | | PORT_BIT( 0xff,128,IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CODE_DEC(KEYCODE_HOME) PORT_CODE_INC(KEYCODE_PGUP) PORT_REVERSE |
| 1151 | PORT_BIT( 0xff,128,IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CATEGORY(11) PORT_CODE_DEC(KEYCODE_HOME) PORT_CODE_INC(KEYCODE_PGUP) PORT_REVERSE |
| 1137 | 1152 | |
| 1138 | 1153 | PORT_START( "PADDLE1" ) |
| 1139 | | PORT_BIT( 0xff,128,IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CODE_DEC(KEYCODE_END) PORT_CODE_INC(KEYCODE_PGDN) PORT_PLAYER(2) PORT_REVERSE |
| 1154 | PORT_BIT( 0xff,128,IPT_PADDLE) PORT_SENSITIVITY(30) PORT_KEYDELTA(20) PORT_MINMAX(0,255) PORT_CATEGORY(11) PORT_CODE_DEC(KEYCODE_END) PORT_CODE_INC(KEYCODE_PGDN) PORT_PLAYER(2) PORT_REVERSE |
| 1140 | 1155 | INPUT_PORTS_END |
| 1141 | 1156 | |
| 1142 | 1157 | |
| r3261 | r3262 | |
| 1169 | 1184 | |
| 1170 | 1185 | INPUT_PORTS_START( vic_config ) |
| 1171 | 1186 | PORT_START( "CFG" ) |
| 1172 | | PORT_DIPNAME( 0x80, 0x80, DEF_STR( Joystick ) ) |
| 1173 | | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 1174 | | PORT_DIPSETTING( 0x80, DEF_STR( Yes ) ) |
| 1175 | | PORT_DIPNAME( 0x40, 0x40, "Paddles") |
| 1176 | | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 1177 | | PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) |
| 1178 | | PORT_DIPNAME( 0x20, 0x00, "Lightpen") |
| 1179 | | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 1180 | | PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) |
| 1181 | | PORT_DIPNAME( 0x10, 0x10, "Draw Pointer") |
| 1182 | | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 1183 | | PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) |
| 1187 | PORT_CATEGORY_CLASS( 0xf0, 0x00, DEF_STR( Controller ) ) |
| 1188 | PORT_CATEGORY_ITEM( 0x00, DEF_STR( Joystick ), 10 ) |
| 1189 | PORT_CATEGORY_ITEM( 0x10, "Paddles", 11 ) |
| 1190 | PORT_CATEGORY_ITEM( 0x20, "Lightpen", 12 ) |
| 1184 | 1191 | PORT_DIPNAME( 0x08, 0x08, "Tape Drive/Device 1") |
| 1185 | 1192 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 1186 | 1193 | PORT_DIPSETTING( 0x08, DEF_STR( Yes ) ) |
src/mess/machine/c64.c
| r3261 | r3262 | |
| 269 | 269 | value &= t; |
| 270 | 270 | } |
| 271 | 271 | |
| 272 | | if ( input_port_read(Machine, "DSW0") & 0x0100 ) |
| 272 | if ( input_port_read(Machine, "CTRLSEL") & 0x80 ) |
| 273 | 273 | value &= c64_keyline[8]; |
| 274 | 274 | else |
| 275 | 275 | value &= c64_keyline[9]; |
| r3261 | r3262 | |
| 291 | 291 | if (!(cia0porta & 0x02)) value &= c64_keyline[1]; |
| 292 | 292 | if (!(cia0porta & 0x01)) value &= c64_keyline[0]; |
| 293 | 293 | |
| 294 | | if ( input_port_read(Machine, "DSW0") & 0x0100 ) |
| 294 | if ( input_port_read(Machine, "CTRLSEL") & 0x80 ) |
| 295 | 295 | value &= c64_keyline[9]; |
| 296 | 296 | else |
| 297 | 297 | value &= c64_keyline[8]; |
| r3261 | r3262 | |
| 499 | 499 | |
| 500 | 500 | else if (offset == 0xc00) |
| 501 | 501 | { |
| 502 | | cia_set_port_mask_value(0, 0, input_port_read(machine, "DSW0") & 0x0100 ? c64_keyline[8] : c64_keyline[9] ); |
| 502 | cia_set_port_mask_value(0, 0, input_port_read(machine, "CTRLSEL") & 0x80 ? c64_keyline[8] : c64_keyline[9] ); |
| 503 | 503 | return cia_0_r(machine, offset); |
| 504 | 504 | } |
| 505 | 505 | |
| 506 | 506 | else if (offset == 0xc01) |
| 507 | 507 | { |
| 508 | | cia_set_port_mask_value(0, 1, input_port_read(machine, "DSW0") & 0x0100 ? c64_keyline[9] : c64_keyline[8] ); |
| 508 | cia_set_port_mask_value(0, 1, input_port_read(machine, "CTRLSEL") & 0x80 ? c64_keyline[9] : c64_keyline[8] ); |
| 509 | 509 | return cia_0_r(machine, offset); |
| 510 | 510 | } |
| 511 | 511 | |
| r3261 | r3262 | |
| 835 | 835 | { |
| 836 | 836 | int pot1 = 0xff, pot2 = 0xff, pot3 = 0xff, pot4 = 0xff, temp; |
| 837 | 837 | UINT8 cia0porta = cia_get_output_a(0); |
| 838 | | int controller = input_port_read(Machine, "DSW0") & 0x0e00; |
| 838 | int controller1 = input_port_read(Machine, "CTRLSEL") & 0x07; |
| 839 | int controller2 = input_port_read(Machine, "CTRLSEL") & 0x70; |
| 839 | 840 | |
| 840 | | if (which) |
| 841 | /* Notice that only a single input is defined for Mouse & Lightpen in both ports */ |
| 842 | switch (controller1) |
| 841 | 843 | { |
| 842 | | switch (controller) |
| 843 | | { |
| 844 | | case 0x0400: |
| 845 | | pot4 = (input_port_read(Machine, "PADDLE3") & 0xff); |
| 846 | | break; |
| 844 | case 0x01: |
| 845 | if (which) |
| 846 | pot2 = input_port_read(Machine, "PADDLE2"); |
| 847 | else |
| 848 | pot1 = input_port_read(Machine, "PADDLE1"); |
| 849 | break; |
| 847 | 850 | |
| 848 | | case 0x0600: |
| 849 | | if (input_port_read(Machine, "JOY1") & 0x20) /* Joy1 Button 2 */ |
| 850 | | pot4 = 0x00; |
| 851 | | break; |
| 852 | | |
| 853 | | case 0x0800: |
| 854 | | pot4 = input_port_read(Machine, "TRACKY"); |
| 855 | | break; |
| 851 | case 0x02: |
| 852 | if (which) |
| 853 | pot2 = input_port_read(Machine, "TRACKY"); |
| 854 | else |
| 855 | pot1 = input_port_read(Machine, "TRACKX"); |
| 856 | break; |
| 856 | 857 | |
| 857 | | case 0x4000: |
| 858 | | pot2 = (input_port_read(Machine, "PADDLE1") & 0xff); |
| 859 | | break; |
| 858 | case 0x03: |
| 859 | if (input_port_read(Machine, "JOY1_2B") & 0x20) /* Joy1 Button 2 */ |
| 860 | pot1 = 0x00; |
| 861 | break; |
| 860 | 862 | |
| 861 | | case 0x6000: |
| 862 | | if (input_port_read(Machine, "JOY0") & 0x20) /* Joy0 Button 2 */ |
| 863 | | pot1 = 0x00; |
| 864 | | break; |
| 865 | | |
| 866 | | case 0x8000: |
| 867 | | pot2 = input_port_read(Machine, "TRACKY"); |
| 868 | | break; |
| 869 | | |
| 870 | | case 0xa000: |
| 871 | | break; |
| 872 | | |
| 873 | | default: |
| 874 | | logerror("Invalid Controller Setting %d\n", controller); |
| 875 | | break; |
| 876 | | } |
| 863 | case 0x04: |
| 864 | if (which) |
| 865 | pot2 = input_port_read(Machine, "LIGHTY"); |
| 866 | else |
| 867 | pot1 = input_port_read(Machine, "LIGHTX"); |
| 868 | break; |
| 869 | |
| 870 | case 0x00: |
| 871 | break; |
| 872 | |
| 873 | default: |
| 874 | logerror("Invalid Controller Setting %d\n", controller1); |
| 875 | break; |
| 877 | 876 | } |
| 878 | | else |
| 877 | |
| 878 | switch (controller2) |
| 879 | 879 | { |
| 880 | | switch (controller) |
| 881 | | { |
| 882 | | case 0x0400: |
| 883 | | pot3 = (input_port_read(Machine, "PADDLE2") & 0xff); |
| 884 | | break; |
| 885 | | |
| 886 | | case 0x0800: |
| 880 | case 0x01: |
| 881 | if (which) |
| 882 | pot4 = input_port_read(Machine, "PADDLE4"); |
| 883 | else |
| 884 | pot3 = input_port_read(Machine, "PADDLE3"); |
| 885 | break; |
| 886 | |
| 887 | case 0x02: |
| 888 | if (which) |
| 889 | pot4 = input_port_read(Machine, "TRACKY"); |
| 890 | else |
| 887 | 891 | pot3 = input_port_read(Machine, "TRACKX"); |
| 888 | | break; |
| 892 | break; |
| 889 | 893 | |
| 890 | | case 0x4000: |
| 891 | | pot1 = (input_port_read(Machine, "PADDLE0") & 0xff); |
| 892 | | break; |
| 894 | case 0x03: |
| 895 | if (input_port_read(Machine, "JOY2_2B") & 0x20) /* Joy2 Button 2 */ |
| 896 | pot4 = 0x00; |
| 897 | break; |
| 893 | 898 | |
| 894 | | case 0x8000: |
| 895 | | pot1 = input_port_read(Machine, "TRACKX"); |
| 896 | | break; |
| 897 | | |
| 898 | | case 0x0600: |
| 899 | | case 0x6000: |
| 900 | | case 0xa000: |
| 901 | | break; |
| 902 | | |
| 903 | | default: |
| 904 | | logerror("Invalid Controller Setting %d\n", controller); |
| 905 | | break; |
| 906 | | } |
| 899 | case 0x04: |
| 900 | if (which) |
| 901 | pot4 = input_port_read(Machine, "LIGHTY"); |
| 902 | else |
| 903 | pot3 = input_port_read(Machine, "LIGHTX"); |
| 904 | break; |
| 905 | |
| 906 | case 0x00: |
| 907 | break; |
| 908 | |
| 909 | default: |
| 910 | logerror("Invalid Controller Setting %d\n", controller1); |
| 911 | break; |
| 907 | 912 | } |
| 908 | 913 | |
| 909 | | if (input_port_read(Machine, "DSW0") & 0x0100) /* Swap */ |
| 914 | if (input_port_read(Machine, "CTRLSEL") & 0x80) /* Swap */ |
| 910 | 915 | { |
| 911 | 916 | temp = pot1; pot1 = pot2; pot2 = pot1; |
| 912 | 917 | temp = pot3; pot3 = pot4; pot4 = pot3; |
| r3261 | r3262 | |
| 1128 | 1133 | { |
| 1129 | 1134 | static int monitor = -1; |
| 1130 | 1135 | int value, i; |
| 1131 | | int controller1 = input_port_read(Machine, "DSW0") & 0xe000; |
| 1132 | | int controller2 = input_port_read(Machine, "DSW0") & 0x0e00; |
| 1136 | int controller1 = input_port_read(Machine, "CTRLSEL") & 0x07; |
| 1137 | int controller2 = input_port_read(Machine, "CTRLSEL") & 0x70; |
| 1133 | 1138 | static const char *c64ports[] = { "ROW0", "ROW1", "ROW2", "ROW3", "ROW4", "ROW5", "ROW6", "ROW7" }; |
| 1134 | 1139 | static const char *c128ports[] = { "KP0", "KP1", "KP2" }; |
| 1135 | 1140 | |
| r3261 | r3262 | |
| 1175 | 1180 | value = 0xff; |
| 1176 | 1181 | switch(controller1) |
| 1177 | 1182 | { |
| 1178 | | case 0x2000: |
| 1179 | | case 0x6000: |
| 1180 | | value &= ~(input_port_read(machine, "JOY0") & 0x1f); /* Joy0 Directions + Button 1 */ |
| 1183 | case 0x00: |
| 1184 | value &= ~input_port_read(machine, "JOY1_1B"); /* Joy1 Directions + Button 1 */ |
| 1181 | 1185 | break; |
| 1182 | 1186 | |
| 1183 | | case 0x4000: |
| 1184 | | if (input_port_read(machine, "PADDLE1") & 0x100) /* Paddle1 Button */ |
| 1187 | case 0x01: |
| 1188 | if (input_port_read(machine, "OTHER") & 0x40) /* Paddle2 Button */ |
| 1185 | 1189 | value &= ~0x08; |
| 1186 | | if (input_port_read(machine, "PADDLE0") & 0x100) /* Paddle0 Button */ |
| 1190 | if (input_port_read(machine, "OTHER") & 0x80) /* Paddle1 Button */ |
| 1187 | 1191 | value &= ~0x04; |
| 1188 | 1192 | break; |
| 1189 | 1193 | |
| 1190 | | case 0x8000: |
| 1191 | | if (input_port_read(machine, "TRACKIPT") & 0x02) /* Mouse Button Left */ |
| 1194 | case 0x02: |
| 1195 | if (input_port_read(machine, "OTHER") & 0x02) /* Mouse Button Left */ |
| 1192 | 1196 | value &= ~0x10; |
| 1193 | | if (input_port_read(machine, "TRACKIPT") & 0x01) /* Mouse Button Right */ |
| 1197 | if (input_port_read(machine, "OTHER") & 0x01) /* Mouse Button Right */ |
| 1194 | 1198 | value &= ~0x01; |
| 1195 | 1199 | break; |
| 1196 | 1200 | |
| 1197 | | case 0xa000: |
| 1201 | case 0x03: |
| 1202 | value &= ~(input_port_read(machine, "JOY1_2B") & 0x1f); /* Joy1 Directions + Button 1 */ |
| 1198 | 1203 | break; |
| 1204 | |
| 1205 | case 0x04: |
| 1206 | /* was there any input on the lightpen? where is it mapped? */ |
| 1207 | // if (input_port_read(machine, "OTHER") & 0x04) /* Lightpen Signal */ |
| 1208 | // value &= ?? ; |
| 1209 | break; |
| 1199 | 1210 | |
| 1200 | 1211 | default: |
| 1201 | 1212 | logerror("Invalid Controller 1 Setting %d\n", controller1); |
| r3261 | r3262 | |
| 1208 | 1219 | value = 0xff; |
| 1209 | 1220 | switch(controller2) |
| 1210 | 1221 | { |
| 1211 | | case 0x0200: |
| 1212 | | case 0x0600: |
| 1213 | | value &= ~(input_port_read(machine, "JOY1") & 0x1f); /* Joy1 Directions + Button 1 */ |
| 1222 | case 0x00: |
| 1223 | value &= ~input_port_read(machine, "JOY2_1B"); /* Joy2 Directions + Button 1 */ |
| 1214 | 1224 | break; |
| 1215 | 1225 | |
| 1216 | | case 0x0400: |
| 1217 | | if (input_port_read(machine, "PADDLE3") & 0x100) /* Paddle3 Button */ |
| 1226 | case 0x10: |
| 1227 | if (input_port_read(machine, "OTHER") & 0x10) /* Paddle4 Button */ |
| 1218 | 1228 | value &= ~0x08; |
| 1219 | | if (input_port_read(machine, "PADDLE2") & 0x100) /* Paddle2 Button */ |
| 1229 | if (input_port_read(machine, "OTHER") & 0x20) /* Paddle3 Button */ |
| 1220 | 1230 | value &= ~0x04; |
| 1221 | 1231 | break; |
| 1222 | 1232 | |
| 1223 | | case 0x0800: |
| 1224 | | if (input_port_read(machine, "TRACKIPT") & 0x02) /* Mouse Button Left */ |
| 1233 | case 0x20: |
| 1234 | if (input_port_read(machine, "OTHER") & 0x02) /* Mouse Button Left */ |
| 1225 | 1235 | value &= ~0x10; |
| 1226 | | if (input_port_read(machine, "TRACKIPT") & 0x01) /* Mouse Button Right */ |
| 1236 | if (input_port_read(machine, "OTHER") & 0x01) /* Mouse Button Right */ |
| 1227 | 1237 | value &= ~0x01; |
| 1228 | 1238 | break; |
| 1239 | |
| 1240 | case 0x30: |
| 1241 | value &= ~(input_port_read(machine, "JOY2_2B") & 0x1f); /* Joy2 Directions + Button 1 */ |
| 1242 | break; |
| 1229 | 1243 | |
| 1244 | case 0x40: |
| 1245 | /* was there any input on the lightpen? where is it mapped? */ |
| 1246 | // if (input_port_read(machine, "OTHER") & 0x04) /* Lightpen Signal */ |
| 1247 | // value &= ?? ; |
| 1248 | break; |
| 1249 | |
| 1230 | 1250 | default: |
| 1231 | 1251 | logerror("Invalid Controller 2 Setting %d\n", controller2); |
| 1232 | 1252 | break; |
| r3261 | r3262 | |
| 1257 | 1277 | vic2_frame_interrupt (machine, cpunum); |
| 1258 | 1278 | |
| 1259 | 1279 | set_led_status (1, input_port_read(machine, "SPECIAL") & 0x40 ? 1 : 0); /* Shift Lock */ |
| 1260 | | set_led_status (0, input_port_read(machine, "DSW0") & 0x0100 ? 1 : 0); /* Joystick Swap */ |
| 1280 | set_led_status (0, input_port_read(machine, "CTRLSEL") & 0x80 ? 1 : 0); /* Joystick Swap */ |
| 1261 | 1281 | } |
| 1262 | 1282 | |
| 1263 | 1283 | |
src/mess/drivers/c128.c
| r3261 | r3262 | |
| 318 | 318 | |
| 319 | 319 | PORT_INCLUDE( c128_special ) /* SPECIAL */ |
| 320 | 320 | |
| 321 | | PORT_INCLUDE( c64_controls ) /* JOY0, JOY1, PADDLE0 -> PADDLE3, TRACKX, TRACKY, TRACKIPT */ |
| 321 | PORT_INCLUDE( c64_controls ) /* CTRLSEL, JOY0, JOY1, PADDLE0 -> PADDLE3, TRACKX, TRACKY, LIGHTX, LIGHTY, OTHER */ |
| 322 | 322 | |
| 323 | | PORT_INCLUDE( c64_control_cfg ) /* DSW */ |
| 324 | | |
| 325 | 323 | PORT_INCLUDE( c128_config ) /* CFG */ |
| 326 | 324 | INPUT_PORTS_END |
| 327 | 325 | |
| r3261 | r3262 | |
| 332 | 330 | PORT_MODIFY( "ROW1" ) |
| 333 | 331 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Z { Y }") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') |
| 334 | 332 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3 # { 3 Paragraph }") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') |
| 333 | |
| 335 | 334 | PORT_MODIFY( "ROW3" ) |
| 336 | 335 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Y { Z }") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') |
| 337 | 336 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("7 ' { 7 / }") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') |
| 337 | |
| 338 | 338 | PORT_MODIFY( "ROW4" ) |
| 339 | 339 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("0 { = }") PORT_CODE(KEYCODE_0) PORT_CHAR('0') |
| 340 | |
| 340 | 341 | PORT_MODIFY( "ROW5" ) |
| 341 | 342 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(", < { ; }") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') |
| 342 | 343 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Paragraph \xE2\x86\x91 { \xc3\xbc }") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR(0x00A7) PORT_CHAR(0x2191) |
| r3261 | r3262 | |
| 344 | 345 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(". > { : }") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') |
| 345 | 346 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("- { ' ` }") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('-') |
| 346 | 347 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("+ { \xc3\x9f ? }") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('+') |
| 348 | |
| 347 | 349 | PORT_MODIFY( "ROW6" ) |
| 348 | 350 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("/ ? { - _ }") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') |
| 349 | 351 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Sum Pi { ] \\ }") PORT_CODE(KEYCODE_DEL) PORT_CHAR(0x03A3) PORT_CHAR(0x03C0) |
| r3261 | r3262 | |
| 351 | 353 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("; ] { \xc3\xb6 }") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR(']') |
| 352 | 354 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("* ` { + * }") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('*') PORT_CHAR('`') |
| 353 | 355 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\\ { [ \xE2\x86\x91 }") PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('\\') |
| 356 | |
| 354 | 357 | PORT_MODIFY( "ROW7" ) |
| 355 | 358 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("_ { < > }") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('_') |
| 356 | 359 | |
| r3261 | r3262 | |
| 370 | 373 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("A { Q }") PORT_CODE(KEYCODE_A) PORT_CHAR('A') |
| 371 | 374 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("W { Z }") PORT_CODE(KEYCODE_W) PORT_CHAR('W') |
| 372 | 375 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3 # { \" 3 }") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') |
| 376 | |
| 373 | 377 | PORT_MODIFY( "ROW2" ) |
| 374 | 378 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("6 & { Paragraph 6 }") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') |
| 375 | 379 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("5 % { ( 5 }") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') |
| 380 | |
| 376 | 381 | PORT_MODIFY( "ROW3" ) |
| 377 | 382 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("8 ( { ! 8 }") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') |
| 378 | 383 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("7 ' { \xc3\xa8 7 }") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') |
| 384 | |
| 379 | 385 | PORT_MODIFY( "ROW4" ) |
| 380 | 386 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("K Large- { \\ }") PORT_CODE(KEYCODE_K) PORT_CHAR('K') |
| 381 | 387 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("M Large-/ { , ? }") PORT_CODE(KEYCODE_M) PORT_CHAR('M') |
| 382 | 388 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("0 { \xc3\xa0 0 }") PORT_CODE(KEYCODE_0) PORT_CHAR('0') |
| 383 | 389 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("9 ) { \xc3\xa7 9 }") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') |
| 390 | |
| 384 | 391 | PORT_MODIFY( "ROW5" ) |
| 385 | 392 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(", < { ; . }") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') |
| 386 | 393 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("@ \xc3\xbb { ^ \xc2\xa8 }") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_CHAR(0x00FB) |
| r3261 | r3262 | |
| 388 | 395 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(". > { : / }") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') |
| 389 | 396 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("- \xc2\xb0 { - _ }") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('-') PORT_CHAR('\xB0') |
| 390 | 397 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("+ \xc3\xab { ) \xc2\xb0 }") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('+') PORT_CHAR(0x00EB) |
| 398 | |
| 391 | 399 | PORT_MODIFY( "ROW6" ) |
| 392 | 400 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("/ ? { = + }") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') |
| 393 | 401 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x91 Pi { * ] }") PORT_CODE(KEYCODE_DEL) PORT_CHAR(0x2191) PORT_CHAR(0x03C0) |
| r3261 | r3262 | |
| 395 | 403 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("; ] { M Large-/ }") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR(']') |
| 396 | 404 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("* ` { $ [ }") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('*') PORT_CHAR('`') |
| 397 | 405 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\\ { @ # }") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') |
| 406 | |
| 398 | 407 | PORT_MODIFY( "ROW7" ) |
| 399 | 408 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Q { A }") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') |
| 400 | 409 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("2 \" { \xc3\xa9 2 }") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') |
| r3261 | r3262 | |
| 416 | 425 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("4 $ { ' 4 }") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') |
| 417 | 426 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("W { Z }") PORT_CODE(KEYCODE_W) PORT_CHAR('W') |
| 418 | 427 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3 # { \" 3 }") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') |
| 428 | |
| 419 | 429 | PORT_MODIFY( "ROW2" ) |
| 420 | 430 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("6 & { _ 6 }") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') |
| 421 | 431 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("5 % { ( 5 }") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') |
| 432 | |
| 422 | 433 | PORT_MODIFY( "ROW3" ) |
| 423 | 434 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("8 ( { & 8 }") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') |
| 424 | 435 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("7 ' { \xc3\xa8 7 }") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') |
| 436 | |
| 425 | 437 | PORT_MODIFY( "ROW4" ) |
| 426 | 438 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("M Large-/ { , ? }") PORT_CODE(KEYCODE_M) PORT_CHAR('M') |
| 427 | 439 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("0 { \xc3\xa0 0 }") PORT_CODE(KEYCODE_0) PORT_CHAR('0') |
| 428 | 440 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("9 ) { \xc3\xa7 9 }") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') |
| 441 | |
| 429 | 442 | PORT_MODIFY( "ROW5" ) |
| 430 | 443 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(", < { ; . }") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') |
| 431 | 444 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("@ \xc3\xbb { \xc3\xac = }") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_CHAR(0x00FB) |
| r3261 | r3262 | |
| 433 | 446 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(". > { : / }") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') |
| 434 | 447 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("- \xc2\xb0 { - + }") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('-') PORT_CHAR('\xb0') |
| 435 | 448 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("+ \xc3\xab { ) \xc2\xb0 }") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('+') PORT_CHAR(0x00EB) |
| 449 | |
| 436 | 450 | PORT_MODIFY( "ROW6" ) |
| 437 | 451 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("/ ? { \xc3\xb2 ! }") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') |
| 438 | 452 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x91 Pi { * ] }") PORT_CODE(KEYCODE_DEL) PORT_CHAR(0x2191) PORT_CHAR(0x03C0) |
| r3261 | r3262 | |
| 440 | 454 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("; ] { M }") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR(']') |
| 441 | 455 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("* ` { $ [ }") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('*') PORT_CHAR('`') |
| 442 | 456 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\\ { @ # }") PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('\\') |
| 457 | |
| 443 | 458 | PORT_MODIFY( "ROW7" ) |
| 444 | 459 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("2 \" { \xc3\xa9 2 }") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') |
| 445 | 460 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("_ { < > }") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('_') |
| r3261 | r3262 | |
| 457 | 472 | |
| 458 | 473 | PORT_MODIFY( "ROW1" ) |
| 459 | 474 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3 # { 3 Paragraph }") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') |
| 475 | |
| 460 | 476 | PORT_MODIFY( "ROW3" ) |
| 461 | 477 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("7 ' { 7 / }") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') |
| 478 | |
| 462 | 479 | PORT_MODIFY( "ROW5" ) |
| 463 | 480 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("] { \xc3\xa2 }") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR(']') |
| 464 | 481 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("[ { \xc3\xa4 }") PORT_CODE(KEYCODE_COLON) PORT_CHAR('[') |
| 465 | 482 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') |
| 466 | 483 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') |
| 484 | |
| 467 | 485 | PORT_MODIFY( "ROW6" ) |
| 468 | 486 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("; +") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR(';') PORT_CHAR('+') |
| 469 | 487 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc2\xa3 { \xc3\xb6 }") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\xA3') |
| 470 | 488 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("@") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('@') |
| 471 | 489 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(": *") PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR(':') PORT_CHAR('*') |
| 490 | |
| 472 | 491 | PORT_MODIFY( "ROW7" ) |
| 473 | 492 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("_ { < > }") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('_') |
| 474 | 493 | |