src/mess/machine/cbmipt.c
| r8692 | r8693 | |
| 163 | 163 | // PORT_CATEGORY_ITEM( 0x20, "Mouse 1351", 22 ) |
| 164 | 164 | // PORT_CATEGORY_ITEM( 0x30, "Mouse (Non Proportional) 1350", 23 ) |
| 165 | 165 | PORT_CATEGORY_ITEM( 0x70, "No Device Connected", 27 ) |
| 166 | | PORT_CONFNAME( 0x08, 0x00, "Workaround for RDY") |
| 167 | | PORT_CONFSETTING( 0x00, DEF_STR( No ) ) |
| 168 | | PORT_CONFSETTING( 0x08, DEF_STR( Yes ) ) |
| 169 | 166 | PORT_CONFNAME( 0x80, 0x00, "Swap Gameport A and B") PORT_CODE(KEYCODE_F1) PORT_TOGGLE |
| 170 | 167 | PORT_CONFSETTING( 0x00, DEF_STR( No ) ) |
| 171 | 168 | PORT_CONFSETTING( 0x80, DEF_STR( Yes ) ) |
| 172 | 169 | |
| 170 | PORT_START("CYCLES") |
| 171 | PORT_CATEGORY_CLASS( 0x07, 0x00, "Cycles in a line" ) |
| 172 | PORT_CATEGORY_ITEM( 0x00, "0", 0 ) |
| 173 | PORT_CATEGORY_ITEM( 0x01, "1", 1 ) |
| 174 | PORT_CATEGORY_ITEM( 0x02, "2", 2 ) |
| 175 | PORT_CATEGORY_ITEM( 0x03, "3", 3 ) |
| 176 | PORT_CATEGORY_ITEM( 0x04, "4", 4 ) |
| 177 | PORT_CATEGORY_ITEM( 0x07, "Off", 7 ) |
| 178 | |
| 173 | 179 | PORT_START("JOY1_1B") |
| 174 | 180 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_CATEGORY(10) |
| 175 | 181 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_CATEGORY(10) |
src/mess/machine/c64.c
| r8692 | r8693 | |
| 316 | 316 | else if (offset < 0xc00) |
| 317 | 317 | return c64_colorram[offset & 0x3ff]; |
| 318 | 318 | |
| 319 | | else if (offset == 0xc00) |
| 319 | else if (offset < 0xd00) |
| 320 | 320 | { |
| 321 | | cia_set_port_mask_value(cia_0, 0, input_port_read(space->machine, "CTRLSEL") & 0x80 ? c64_keyline[8] : c64_keyline[9] ); |
| 322 | | return mos6526_r(cia_0, offset); |
| 323 | | } |
| 321 | if (offset & 1) |
| 322 | cia_set_port_mask_value(cia_0, 1, input_port_read(space->machine, "CTRLSEL") & 0x80 ? c64_keyline[9] : c64_keyline[8] ); |
| 323 | else |
| 324 | cia_set_port_mask_value(cia_0, 0, input_port_read(space->machine, "CTRLSEL") & 0x80 ? c64_keyline[8] : c64_keyline[9] ); |
| 324 | 325 | |
| 325 | | else if (offset == 0xc01) |
| 326 | | { |
| 327 | | cia_set_port_mask_value(cia_0, 1, input_port_read(space->machine, "CTRLSEL") & 0x80 ? c64_keyline[9] : c64_keyline[8] ); |
| 328 | 326 | return mos6526_r(cia_0, offset); |
| 329 | 327 | } |
| 330 | 328 | |
| 331 | | else if (offset < 0xd00) |
| 332 | | return mos6526_r(cia_0, offset); |
| 333 | | |
| 334 | 329 | else if (c64_cia1_on && (offset < 0xe00)) |
| 335 | 330 | return mos6526_r(cia_1, offset); |
| 336 | 331 | |
src/mess/video/vic6567.c
| r8692 | r8693 | |
| 374 | 374 | if (vic2->cpu_suspended == 0) |
| 375 | 375 | { |
| 376 | 376 | vic2->first_ba_cycle = vic2->cycles_counter; |
| 377 | | if (vic2->rdy_workaround_cb != NULL && vic2->rdy_workaround_cb(machine)) |
| 377 | if ((vic2->rdy_workaround_cb != NULL) && (vic2->rdy_workaround_cb(machine) != 7 )) |
| 378 | 378 | cpu_suspend(machine->firstcpu, SUSPEND_REASON_SPIN, 0); |
| 379 | 379 | vic2->cpu_suspended = 1; |
| 380 | 380 | } |
| r8692 | r8693 | |
| 385 | 385 | { |
| 386 | 386 | if (vic2->cpu_suspended == 1) |
| 387 | 387 | { |
| 388 | | if (vic2->rdy_workaround_cb != NULL && vic2->rdy_workaround_cb(machine)) |
| 388 | if ((vic2->rdy_workaround_cb != NULL)) |
| 389 | 389 | cpu_resume(machine->firstcpu, SUSPEND_REASON_SPIN); |
| 390 | 390 | vic2->cpu_suspended = 0; |
| 391 | 391 | } |
| r8692 | r8693 | |
| 446 | 446 | // Video matrix access |
| 447 | 447 | INLINE void vic2_matrix_access( running_machine *machine, vic2_state *vic2 ) |
| 448 | 448 | { |
| 449 | | if (vic2->cpu_suspended == 1) |
| 449 | // if (vic2->cpu_suspended == 1) |
| 450 | 450 | { |
| 451 | 451 | if ((vic2->cycles_counter - vic2->first_ba_cycle) < 0) |
| 452 | 452 | vic2->matrix_line[vic2->ml_index] = vic2->color_line[vic2->ml_index] = 0xff; |
| r8692 | r8693 | |
| 1186 | 1186 | |
| 1187 | 1187 | vic2->raster_x = 0xfffc; |
| 1188 | 1188 | |
| 1189 | if ((vic2->rdy_workaround_cb(machine) == 0 ) && (vic2->is_bad_line)) |
| 1190 | vic2_suspend_cpu(machine, vic2); |
| 1191 | |
| 1189 | 1192 | vic2->cycle++; |
| 1190 | 1193 | break; |
| 1191 | 1194 | |
| r8692 | r8693 | |
| 1198 | 1201 | |
| 1199 | 1202 | vic2->vc = vic2->vc_base; |
| 1200 | 1203 | |
| 1204 | if ((vic2->rdy_workaround_cb(machine) == 1 ) && (vic2->is_bad_line)) |
| 1205 | vic2_suspend_cpu(machine, vic2); |
| 1206 | |
| 1201 | 1207 | vic2->cycle++; |
| 1202 | 1208 | break; |
| 1203 | 1209 | |
| r8692 | r8693 | |
| 1212 | 1218 | if (vic2->spr_exp_y & (1 << i)) |
| 1213 | 1219 | vic2->mc_base[i] += 2; |
| 1214 | 1220 | |
| 1215 | | if (vic2->is_bad_line) |
| 1216 | | vic2_suspend_cpu(machine, vic2); |
| 1217 | | |
| 1218 | 1221 | vic2->ml_index = 0; |
| 1219 | 1222 | vic2_matrix_access(machine, vic2); |
| 1220 | 1223 | |
| 1224 | if ((vic2->rdy_workaround_cb(machine) == 2 ) && (vic2->is_bad_line)) |
| 1225 | vic2_suspend_cpu(machine, vic2); |
| 1226 | |
| 1221 | 1227 | vic2->cycle++; |
| 1222 | 1228 | break; |
| 1223 | 1229 | |
| r8692 | r8693 | |
| 1239 | 1245 | |
| 1240 | 1246 | vic2_matrix_access(machine, vic2); |
| 1241 | 1247 | |
| 1248 | if ((vic2->rdy_workaround_cb(machine) == 3 ) && (vic2->is_bad_line)) |
| 1249 | vic2_suspend_cpu(machine, vic2); |
| 1250 | |
| 1242 | 1251 | vic2->cycle++; |
| 1243 | 1252 | break; |
| 1244 | 1253 | |
| r8692 | r8693 | |
| 1273 | 1282 | vic2_fetch_if_bad_line(vic2); |
| 1274 | 1283 | vic2_matrix_access(machine, vic2); |
| 1275 | 1284 | |
| 1285 | if ((vic2->rdy_workaround_cb(machine) == 4 ) && (vic2->is_bad_line)) |
| 1286 | vic2_suspend_cpu(machine, vic2); |
| 1287 | |
| 1276 | 1288 | vic2->cycle++; |
| 1277 | 1289 | break; |
| 1278 | 1290 | |