48 [[nodiscard]]
virtual bool getSide()
const = 0;
55 virtual void step(
bool direction, EmuTime::param time) = 0;
62 virtual void setMotor(
bool status, EmuTime::param time) = 0;
66 [[nodiscard]]
virtual bool getMotor()
const = 0;
71 [[nodiscard]]
virtual bool indexPulse(EmuTime::param time) = 0;
111 [[nodiscard]]
bool isTrack00()
const override;
112 void setSide(
bool side)
override;
113 [[nodiscard]]
bool getSide()
const override;
114 void step(
bool direction, EmuTime::param time)
override;
115 void setMotor(
bool status, EmuTime::param time)
override;
116 [[nodiscard]]
bool getMotor()
const override;
117 [[nodiscard]]
bool indexPulse(EmuTime::param time)
override;
This (abstract) class defines the DiskDrive interface.
virtual bool getMotor() const =0
Returns the previously set motor status.
virtual bool isDummyDrive() const =0
Is there a dummy (unconnected) drive?
virtual void applyWd2793ReadTrackQuirk()=0
See RawTrack::applyWd2793ReadTrackQuirk()
virtual bool peekDiskChanged() const =0
virtual bool isDiskInserted() const =0
Is drive ready?
virtual bool isWriteProtected() const =0
Is disk write protected?
virtual EmuTime getNextSector(EmuTime::param time, RawTrack::Sector §or)=0
virtual void setMotor(bool status, EmuTime::param time)=0
Set motor on/off.
virtual void step(bool direction, EmuTime::param time)=0
Step head.
virtual bool isTrack00() const =0
Head above track 0.
virtual bool indexPulse(EmuTime::param time)=0
Gets the state of the index pulse.
virtual EmuTime getTimeTillIndexPulse(EmuTime::param time, int count=1)=0
Return the time till the start of the next index pulse When there is no disk in the drive or when the...
virtual ~DiskDrive()=default
virtual bool diskChanged()=0
Is disk changed?
virtual void setSide(bool side)=0
Side select.
virtual void flushTrack()=0
virtual bool isDoubleSided()=0
Is disk double sided?
virtual void writeTrackByte(int idx, uint8_t val, bool addIdam=false)=0
virtual bool getSide() const =0
virtual unsigned getTrackLength()=0
virtual uint8_t readTrackByte(int idx)=0
static constexpr unsigned ROTATIONS_PER_SECOND
virtual void invalidateWd2793ReadTrackQuirk()=0
This class implements a not connected disk drive.
EmuTime getTimeTillIndexPulse(EmuTime::param time, int count) override
Return the time till the start of the next index pulse When there is no disk in the drive or when the...
bool peekDiskChanged() const override
void writeTrackByte(int idx, uint8_t val, bool addIdam) override
bool indexPulse(EmuTime::param time) override
Gets the state of the index pulse.
unsigned getTrackLength() override
void step(bool direction, EmuTime::param time) override
Step head.
bool isDiskInserted() const override
Is drive ready?
uint8_t readTrackByte(int idx) override
bool isWriteProtected() const override
Is disk write protected?
EmuTime getNextSector(EmuTime::param time, RawTrack::Sector §or) override
void invalidateWd2793ReadTrackQuirk() override
bool getMotor() const override
Returns the previously set motor status.
bool isDummyDrive() const override
Is there a dummy (unconnected) drive?
void setSide(bool side) override
Side select.
void setMotor(bool status, EmuTime::param time) override
Set motor on/off.
void flushTrack() override
bool getSide() const override
bool isTrack00() const override
Head above track 0.
void applyWd2793ReadTrackQuirk() override
See RawTrack::applyWd2793ReadTrackQuirk()
bool isDoubleSided() override
Is disk double sided?
bool diskChanged() override
Is disk changed?
This file implemented 3 utility functions: