diff --git a/Components/1770/1770.cpp b/Components/1770/1770.cpp index a7d8c0efb..f60a12f6c 100644 --- a/Components/1770/1770.cpp +++ b/Components/1770/1770.cpp @@ -372,6 +372,7 @@ void WD1770::posit_event(Event new_event_type) status_ &= ~(Flag::LostData | Flag::RecordNotFound | Flag::WriteProtect | Flag::RecordType); set_data_request(false); distance_into_section_ = 0; + // TODO: this bit doesn't mean this if the personality is 1773. if((command_&0x08) || (status_ & Flag::MotorOn)) goto test_type2_delay; // Perform spin up. @@ -401,6 +402,7 @@ void WD1770::posit_event(Event new_event_type) if(distance_into_section_ == 7) { is_reading_data_ = false; + // TODO: check the side too, if this is a 1773 and we've been asked to. if(header_[0] == track_ && header_[2] == sector_) { // TODO: test CRC diff --git a/Components/1770/1770.hpp b/Components/1770/1770.hpp index cc681b2f0..a1b9ea948 100644 --- a/Components/1770/1770.hpp +++ b/Components/1770/1770.hpp @@ -54,7 +54,8 @@ class WD1770: public Storage::Disk::Controller { private: Personality personality_; - uint8_t status_; + uint8_t status_; // TODO: to ensure correctness, this probably needs either to be a different value per command type, + // or — probably more easily — to be an ordinary struct of flags with the value put together upon request. uint8_t track_; uint8_t sector_; uint8_t data_;