1
0
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:
Thomas Harte 2023-11-29 09:49:15 -05:00
parent 439104c73a
commit a992ae37b1

View File

@ -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;
} }