mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-19 23:29:05 +00:00
Mildly rearrange, to match enum order.
This commit is contained in:
parent
439104c73a
commit
a992ae37b1
@ -84,9 +84,21 @@ class FloppyController {
|
|||||||
printf("TODO: implement FDC command %d\n", uint8_t(decoder_.command()));
|
printf("TODO: implement FDC command %d\n", uint8_t(decoder_.command()));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Command::Invalid:
|
case Command::Seek:
|
||||||
printf("FDC: Invalid\n");
|
printf("FDC: Seek %d:%d to %d\n", decoder_.target().drive, decoder_.target().head, decoder_.seek_target());
|
||||||
results_.serialise_none();
|
drives_[decoder_.target().drive].track = decoder_.seek_target();
|
||||||
|
drives_[decoder_.target().drive].side = decoder_.target().head;
|
||||||
|
|
||||||
|
drives_[decoder_.target().drive].raised_interrupt = true;
|
||||||
|
drives_[decoder_.target().drive].status = decoder_.drive_head() | uint8_t(Intel::i8272::Status0::SeekEnded);
|
||||||
|
pic_.apply_edge<6>(true);
|
||||||
|
break;
|
||||||
|
case Command::Recalibrate:
|
||||||
|
printf("FDC: Recalibrate\n");
|
||||||
|
drives_[decoder_.target().drive].track = 0;
|
||||||
|
drives_[decoder_.target().drive].raised_interrupt = true;
|
||||||
|
drives_[decoder_.target().drive].status = decoder_.target().drive | uint8_t(Intel::i8272::Status0::SeekEnded);
|
||||||
|
pic_.apply_edge<6>(true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Command::SenseInterruptStatus: {
|
case Command::SenseInterruptStatus: {
|
||||||
@ -109,28 +121,16 @@ class FloppyController {
|
|||||||
pic_.apply_edge<6>(any_remaining_interrupts);
|
pic_.apply_edge<6>(any_remaining_interrupts);
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case Command::Specify:
|
case Command::Specify:
|
||||||
printf("FDC: Specify\n");
|
printf("FDC: Specify\n");
|
||||||
specify_specs_ = decoder_.specify_specs();
|
specify_specs_ = decoder_.specify_specs();
|
||||||
break;
|
break;
|
||||||
|
// case Command::SenseDriveStatus: {
|
||||||
|
// } break;
|
||||||
|
|
||||||
case Command::Recalibrate:
|
case Command::Invalid:
|
||||||
printf("FDC: Recalibrate\n");
|
printf("FDC: Invalid\n");
|
||||||
drives_[decoder_.target().drive].track = 0;
|
results_.serialise_none();
|
||||||
drives_[decoder_.target().drive].raised_interrupt = true;
|
|
||||||
drives_[decoder_.target().drive].status = decoder_.target().drive | uint8_t(Intel::i8272::Status0::SeekEnded);
|
|
||||||
pic_.apply_edge<6>(true);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Command::Seek:
|
|
||||||
printf("FDC: Seek %d:%d to %d\n", decoder_.target().drive, decoder_.target().head, decoder_.seek_target());
|
|
||||||
drives_[decoder_.target().drive].track = decoder_.seek_target();
|
|
||||||
drives_[decoder_.target().drive].side = decoder_.target().head;
|
|
||||||
|
|
||||||
drives_[decoder_.target().drive].raised_interrupt = true;
|
|
||||||
drives_[decoder_.target().drive].status = decoder_.drive_head() | uint8_t(Intel::i8272::Status0::SeekEnded);
|
|
||||||
pic_.apply_edge<6>(true);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user