mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-16 18:30:32 +00:00
Added enough stuff that SSDs attached to a 1770 will now reach the entry point for writing.
This commit is contained in:
parent
e56beb3e9c
commit
901f19f89c
@ -498,7 +498,7 @@ void WD1770::posit_event(Event new_event_type)
|
|||||||
WAIT_FOR_TIME(30);
|
WAIT_FOR_TIME(30);
|
||||||
|
|
||||||
test_type2_write_protection:
|
test_type2_write_protection:
|
||||||
if(command_&0x20) // TODO:: && is_write_protected
|
if(command_&0x20 && get_drive_is_read_only())
|
||||||
{
|
{
|
||||||
update_status([] (Status &status) {
|
update_status([] (Status &status) {
|
||||||
status.write_protect = true;
|
status.write_protect = true;
|
||||||
|
@ -181,6 +181,12 @@ bool Controller::get_drive_is_ready()
|
|||||||
return drive_->has_disk();
|
return drive_->has_disk();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Controller::get_drive_is_read_only()
|
||||||
|
{
|
||||||
|
if(!drive_) return false;
|
||||||
|
return drive_->get_is_read_only();
|
||||||
|
}
|
||||||
|
|
||||||
void Controller::step(int direction)
|
void Controller::step(int direction)
|
||||||
{
|
{
|
||||||
if(drive_) drive_->step(direction);
|
if(drive_) drive_->step(direction);
|
||||||
|
@ -99,6 +99,7 @@ class Controller: public DigitalPhaseLockedLoop::Delegate, public TimedEventLoop
|
|||||||
bool get_is_track_zero();
|
bool get_is_track_zero();
|
||||||
void step(int direction);
|
void step(int direction);
|
||||||
virtual bool get_drive_is_ready();
|
virtual bool get_drive_is_ready();
|
||||||
|
bool get_drive_is_read_only();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Time bit_length_;
|
Time bit_length_;
|
||||||
|
@ -40,6 +40,11 @@ unsigned int SSD::get_head_count()
|
|||||||
return head_count_;
|
return head_count_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SSD::get_is_read_only()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
std::shared_ptr<Track> SSD::get_uncached_track_at_position(unsigned int head, unsigned int position)
|
std::shared_ptr<Track> SSD::get_uncached_track_at_position(unsigned int head, unsigned int position)
|
||||||
{
|
{
|
||||||
std::shared_ptr<Track> track;
|
std::shared_ptr<Track> track;
|
||||||
|
@ -35,6 +35,7 @@ class SSD: public Disk, public Storage::FileHolder {
|
|||||||
// implemented to satisfy @c Disk
|
// implemented to satisfy @c Disk
|
||||||
unsigned int get_head_position_count();
|
unsigned int get_head_position_count();
|
||||||
unsigned int get_head_count();
|
unsigned int get_head_count();
|
||||||
|
bool get_is_read_only();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::shared_ptr<Track> get_uncached_track_at_position(unsigned int head, unsigned int position);
|
std::shared_ptr<Track> get_uncached_track_at_position(unsigned int head, unsigned int position);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user