openMSX
|
This (abstract) class defines the DiskDrive interface. More...
#include <DiskDrive.hh>
Public Types | |
enum class | TrackMode { NORMAL , YAMAHA_FD_03 } |
Public Member Functions | |
virtual | ~DiskDrive ()=default |
virtual bool | isDiskInserted () const =0 |
Is drive ready? | |
virtual bool | isWriteProtected () const =0 |
Is disk write protected? | |
virtual bool | isDoubleSided ()=0 |
Is disk double sided? | |
virtual bool | isTrack00 () const =0 |
Head above track 0. | |
virtual void | setSide (bool side)=0 |
Side select. | |
virtual bool | getSide () const =0 |
virtual void | step (bool direction, EmuTime::param time)=0 |
Step head. | |
virtual void | setMotor (bool status, EmuTime::param time)=0 |
Set motor on/off. | |
virtual bool | getMotor () const =0 |
Returns the previously set motor status. | |
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 disk is not spinning, this function returns the current time. | |
virtual unsigned | getTrackLength ()=0 |
virtual void | writeTrackByte (int idx, uint8_t val, bool addIdam=false)=0 |
virtual uint8_t | readTrackByte (int idx)=0 |
virtual EmuTime | getNextSector (EmuTime::param time, RawTrack::Sector §or)=0 |
virtual void | flushTrack ()=0 |
virtual bool | diskChanged ()=0 |
Is disk changed? | |
virtual bool | peekDiskChanged () const =0 |
virtual bool | isDummyDrive () const =0 |
Is there a dummy (unconnected) drive? | |
virtual void | applyWd2793ReadTrackQuirk ()=0 |
See RawTrack::applyWd2793ReadTrackQuirk() | |
virtual void | invalidateWd2793ReadTrackQuirk ()=0 |
Static Public Attributes | |
static constexpr unsigned | ROTATIONS_PER_SECOND = 5 |
This (abstract) class defines the DiskDrive interface.
Definition at line 12 of file DiskDrive.hh.
|
strong |
Enumerator | |
---|---|
NORMAL | |
YAMAHA_FD_03 |
Definition at line 15 of file DiskDrive.hh.
|
virtualdefault |
|
pure virtual |
See RawTrack::applyWd2793ReadTrackQuirk()
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Is disk changed?
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
Referenced by openmsx::WD2793::setCommandReg().
|
pure virtual |
Returns the previously set motor status.
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Return the time till the start of the next index pulse When there is no disk in the drive or when the disk is not spinning, this function returns the current time.
time | The current time |
count | Number of required index pulses. |
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Gets the state of the index pulse.
time | The moment in emulated time to get the pulse state for. |
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
Referenced by openmsx::WD2793::getStatusReg().
|
pure virtual |
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
Referenced by openmsx::WD2793::getDataReg().
|
pure virtual |
Is drive ready?
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Is disk double sided?
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Is there a dummy (unconnected) drive?
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Head above track 0.
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
Referenced by openmsx::WD2793::getStatusReg().
|
pure virtual |
Is disk write protected?
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
Referenced by openmsx::WD2793::getStatusReg().
|
pure virtual |
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
Referenced by openmsx::WD2793::getDataReg(), and openmsx::WD2793::peekDataReg().
|
pure virtual |
Set motor on/off.
status | false = off, true = on. |
time | The moment in emulated time this action takes place. |
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Side select.
side | false = side 0, true = side 1. |
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Step head.
direction | false = out, true = in. |
time | The moment in emulated time this action takes place. |
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
pure virtual |
Implemented in openmsx::DummyDrive, openmsx::DriveMultiplexer, and openmsx::RealDrive.
|
staticconstexpr |
Definition at line 20 of file DiskDrive.hh.