1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-08-08 14:25:05 +00:00

Include seek ended flag.

This commit is contained in:
Thomas Harte
2023-11-29 09:45:45 -05:00
parent 6e2e67fd46
commit fbbe3ab7f1
2 changed files with 4 additions and 3 deletions

View File

@@ -708,8 +708,9 @@ void i8272::posit_event(int event_type) {
// If a drive was found, return its results. Otherwise return a single 0x80. // If a drive was found, return its results. Otherwise return a single 0x80.
if(found_drive != -1) { if(found_drive != -1) {
drives_[found_drive].phase = Drive::NotSeeking; drives_[found_drive].phase = Drive::NotSeeking;
status_.set_status0(uint8_t(found_drive | uint8_t(Status0::SeekEnded)));
// status_.end_sense_interrupt_status(found_drive, 0); // status_.end_sense_interrupt_status(found_drive, 0);
status_.set(Status0::SeekEnded); // status_.set(Status0::SeekEnded);
result_stack_ = { drives_[found_drive].head_position, status_[0]}; result_stack_ = { drives_[found_drive].head_position, status_[0]};
} else { } else {

View File

@@ -119,7 +119,7 @@ class FloppyController {
printf("FDC: Recalibrate\n"); printf("FDC: Recalibrate\n");
drives_[decoder_.target().drive].track = 0; drives_[decoder_.target().drive].track = 0;
drives_[decoder_.target().drive].raised_interrupt = true; drives_[decoder_.target().drive].raised_interrupt = true;
drives_[decoder_.target().drive].status = decoder_.target().drive; drives_[decoder_.target().drive].status = decoder_.target().drive | uint8_t(Intel::i8272::Status0::SeekEnded);
pic_.apply_edge<6>(true); pic_.apply_edge<6>(true);
break; break;
@@ -129,7 +129,7 @@ class FloppyController {
drives_[decoder_.target().drive].side = decoder_.target().head; drives_[decoder_.target().drive].side = decoder_.target().head;
drives_[decoder_.target().drive].raised_interrupt = true; drives_[decoder_.target().drive].raised_interrupt = true;
drives_[decoder_.target().drive].status = decoder_.drive_head(); drives_[decoder_.target().drive].status = decoder_.drive_head() | uint8_t(Intel::i8272::Status0::SeekEnded);
pic_.apply_edge<6>(true); pic_.apply_edge<6>(true);
break; break;
} }