trunk/src/mess/machine/wd1772.c
| r19115 | r19116 | |
| 183 | 183 | else |
| 184 | 184 | status &= ~S_HLD; |
| 185 | 185 | } |
| 186 | | sub_state = has_motor() ? SPINUP : SPINUP_DONE; |
| 186 | sub_state = has_motor() && !has_head_load() ? SPINUP : SPINUP_DONE; |
| 187 | 187 | status_type_1 = true; |
| 188 | 188 | seek_continue(); |
| 189 | 189 | } |
| r19115 | r19116 | |
| 223 | 223 | floppy->dir_w(last_dir); |
| 224 | 224 | floppy->stp_w(0); |
| 225 | 225 | floppy->stp_w(1); |
| 226 | | |
| 227 | | // When stepping with update, the track register is updated before seeking. |
| 228 | | // Important for the sam coupe format code. |
| 229 | | if(main_state == STEP && (command & 0x10)) |
| 230 | | track += last_dir ? -1 : 1; |
| 231 | 226 | } |
| 227 | // When stepping with update, the track register is updated before seeking. |
| 228 | // Important for the sam coupe format code. |
| 229 | if(main_state == STEP && (command & 0x10)) |
| 230 | track += last_dir ? -1 : 1; |
| 232 | 231 | counter++; |
| 233 | 232 | sub_state = SEEK_WAIT_STEP_TIME; |
| 234 | 233 | delay_cycles(t_gen, step_time(command & 3)); |
| r19115 | r19116 | |
| 278 | 277 | |
| 279 | 278 | case SEEK_DONE: |
| 280 | 279 | if(command & 0x04) { |
| 280 | if(has_ready() && !is_ready()) { |
| 281 | status |= S_RNF; |
| 282 | command_end(); |
| 283 | return; |
| 284 | } |
| 281 | 285 | sub_state = SCAN_ID; |
| 282 | 286 | counter = 0; |
| 283 | 287 | live_start(SEARCH_ADDRESS_MARK_HEADER); |
| r19115 | r19116 | |
| 338 | 342 | drop_drq(); |
| 339 | 343 | if (has_side_select() && floppy) |
| 340 | 344 | floppy->ss_w(BIT(command, 1)); |
| 341 | | sub_state = has_motor() ? SPINUP : SPINUP_DONE; |
| 345 | sub_state = has_motor() && !has_head_load() ? SPINUP : SPINUP_DONE; |
| 342 | 346 | status_type_1 = false; |
| 343 | 347 | read_sector_continue(); |
| 344 | 348 | } |
| r19115 | r19116 | |
| 428 | 432 | drop_drq(); |
| 429 | 433 | if (has_side_select() && floppy) |
| 430 | 434 | floppy->ss_w(BIT(command, 1)); |
| 431 | | sub_state = has_motor() ? SPINUP : SPINUP_DONE; |
| 435 | sub_state = has_motor() && !has_head_load() ? SPINUP : SPINUP_DONE; |
| 432 | 436 | status_type_1 = false; |
| 433 | 437 | read_track_continue(); |
| 434 | 438 | } |
| r19115 | r19116 | |
| 495 | 499 | drop_drq(); |
| 496 | 500 | if (has_side_select() && floppy) |
| 497 | 501 | floppy->ss_w(BIT(command, 1)); |
| 498 | | sub_state = has_motor() ? SPINUP : SPINUP_DONE; |
| 502 | sub_state = has_motor() && !has_head_load() ? SPINUP : SPINUP_DONE; |
| 499 | 503 | status_type_1 = false; |
| 500 | 504 | read_id_continue(); |
| 501 | 505 | } |
| r19115 | r19116 | |
| 560 | 564 | drop_drq(); |
| 561 | 565 | if (has_side_select() && floppy) |
| 562 | 566 | floppy->ss_w(BIT(command, 1)); |
| 563 | | sub_state = has_motor() ? SPINUP : SPINUP_DONE; |
| 567 | sub_state = has_motor() && !has_head_load() ? SPINUP : SPINUP_DONE; |
| 564 | 568 | status_type_1 = false; |
| 565 | 569 | write_track_continue(); |
| 566 | 570 | } |
| r19115 | r19116 | |
| 642 | 646 | drop_drq(); |
| 643 | 647 | if (has_side_select() && floppy) |
| 644 | 648 | floppy->ss_w(BIT(command, 1)); |
| 645 | | sub_state = has_motor() ? SPINUP : SPINUP_DONE; |
| 649 | sub_state = has_motor() && !has_head_load() ? SPINUP : SPINUP_DONE; |
| 646 | 650 | status_type_1 = false; |
| 647 | 651 | write_sector_continue(); |
| 648 | 652 | } |