mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-26 23:52:26 +00:00
Shuffled a little to reduce risk of overflow, ensured writing is a loop, still seem to be writing too quickly for some reason.
This commit is contained in:
parent
d2ad2c756e
commit
98be6ede45
@ -626,7 +626,6 @@ void WD1770::posit_event(Event new_event_type)
|
|||||||
for(int b = 0; b < 16; b++)
|
for(int b = 0; b < 16; b++)
|
||||||
write_bit(!(b&1));
|
write_bit(!(b&1));
|
||||||
}
|
}
|
||||||
// printf("%d\n", counter);
|
|
||||||
WAIT_FOR_EVENT(Event::DataWritten);
|
WAIT_FOR_EVENT(Event::DataWritten);
|
||||||
distance_into_section_ = 0;
|
distance_into_section_ = 0;
|
||||||
|
|
||||||
@ -637,7 +636,9 @@ void WD1770::posit_event(Event new_event_type)
|
|||||||
update_status([] (Status &status) {
|
update_status([] (Status &status) {
|
||||||
status.data_request = true;
|
status.data_request = true;
|
||||||
});
|
});
|
||||||
|
printf("- %d\n", counter);
|
||||||
WAIT_FOR_EVENT(Event::DataWritten);
|
WAIT_FOR_EVENT(Event::DataWritten);
|
||||||
|
printf("+ %d\n", counter);
|
||||||
distance_into_section_++;
|
distance_into_section_++;
|
||||||
if(distance_into_section_ == 128 << header_[3])
|
if(distance_into_section_ == 128 << header_[3])
|
||||||
{
|
{
|
||||||
@ -652,6 +653,8 @@ void WD1770::posit_event(Event new_event_type)
|
|||||||
goto wait_for_command;
|
goto wait_for_command;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
goto type2_write_loop;
|
||||||
|
|
||||||
type2_write_crc:
|
type2_write_crc:
|
||||||
// TODO: write CRC and FF
|
// TODO: write CRC and FF
|
||||||
for(int b = 0; b < 48; b++)
|
for(int b = 0; b < 48; b++)
|
||||||
|
@ -189,7 +189,7 @@ void Controller::set_expected_bit_length(Time bit_length)
|
|||||||
bit_length_ = bit_length;
|
bit_length_ = bit_length;
|
||||||
bit_length_.simplify();
|
bit_length_.simplify();
|
||||||
|
|
||||||
cycles_per_bit_ = Storage::Time(8000000) * (bit_length * rotational_multiplier_);
|
cycles_per_bit_ = Storage::Time(8000000) * (bit_length * rotational_multiplier_) * Storage::Time(clock_rate_multiplier_);
|
||||||
cycles_per_bit_.simplify();
|
cycles_per_bit_.simplify();
|
||||||
|
|
||||||
// this conversion doesn't need to be exact because there's a lot of variation to be taken
|
// this conversion doesn't need to be exact because there's a lot of variation to be taken
|
||||||
|
Loading…
Reference in New Issue
Block a user