openMSX
Public Types | Public Member Functions | List of all members
openmsx::WD2793 Class Referencefinal

#include <WD2793.hh>

Inheritance diagram for openmsx::WD2793:
Inheritance graph
[legend]
Collaboration diagram for openmsx::WD2793:
Collaboration graph
[legend]

Public Types

enum  FSMState {
  FSM_NONE , FSM_SEEK , FSM_TYPE2_LOADED , FSM_TYPE2_NOT_FOUND ,
  FSM_TYPE2_ROTATED , FSM_CHECK_WRITE , FSM_PRE_WRITE_SECTOR , FSM_WRITE_SECTOR ,
  FSM_POST_WRITE_SECTOR , FSM_TYPE3_LOADED , FSM_TYPE3_ROTATED , FSM_WRITE_TRACK ,
  FSM_READ_TRACK , FSM_IDX_IRQ
}
 

Public Member Functions

 WD2793 (Scheduler &scheduler, DiskDrive &drive, CliComm &cliComm, EmuTime::param time, bool isWD1770)
 This class has emulation for WD1770, WD1793, WD2793. More...
 
void reset (EmuTime::param time)
 
uint8_t getStatusReg (EmuTime::param time)
 
uint8_t getTrackReg (EmuTime::param time) const
 
uint8_t getSectorReg (EmuTime::param time) const
 
uint8_t getDataReg (EmuTime::param time)
 
uint8_t peekStatusReg (EmuTime::param time) const
 
uint8_t peekTrackReg (EmuTime::param time) const
 
uint8_t peekSectorReg (EmuTime::param time) const
 
uint8_t peekDataReg (EmuTime::param time) const
 
void setCommandReg (uint8_t value, EmuTime::param time)
 
void setTrackReg (uint8_t value, EmuTime::param time)
 
void setSectorReg (uint8_t value, EmuTime::param time)
 
void setDataReg (uint8_t value, EmuTime::param time)
 
bool getIRQ (EmuTime::param time) const
 
bool getDTRQ (EmuTime::param time) const
 
bool peekIRQ (EmuTime::param time) const
 
bool peekDTRQ (EmuTime::param time) const
 
template<typename Archive >
void serialize (Archive &ar, unsigned version)
 
- Public Member Functions inherited from openmsx::Schedulable
 Schedulable (const Schedulable &)=delete
 
Schedulableoperator= (const Schedulable &)=delete
 
virtual void executeUntil (EmuTime::param time)=0
 When the previously registered syncPoint is reached, this method gets called. More...
 
virtual void schedulerDeleted ()
 Just before the the Scheduler is deleted, it calls this method of all the Schedulables that are still registered. More...
 
SchedulergetScheduler () const
 
EmuTime::param getCurrentTime () const
 Convenience method: This is the same as getScheduler().getCurrentTime(). More...
 
template<typename Archive >
void serialize (Archive &ar, unsigned version)
 

Additional Inherited Members

- Static Public Member Functions inherited from openmsx::Schedulable
template<typename Archive >
static std::vector< SyncPointBWserializeBW (Archive &ar)
 
template<typename Archive >
static void restoreOld (Archive &ar, std::vector< Schedulable * > schedulables)
 
- Protected Member Functions inherited from openmsx::Schedulable
 Schedulable (Scheduler &scheduler)
 
 ~Schedulable ()
 
void setSyncPoint (EmuTime::param timestamp)
 
bool removeSyncPoint ()
 
void removeSyncPoints ()
 
bool pendingSyncPoint () const
 
bool pendingSyncPoint (EmuTime &result) const
 

Detailed Description

Definition at line 17 of file WD2793.hh.

Member Enumeration Documentation

◆ FSMState

Enumerator
FSM_NONE 
FSM_SEEK 
FSM_TYPE2_LOADED 
FSM_TYPE2_NOT_FOUND 
FSM_TYPE2_ROTATED 
FSM_CHECK_WRITE 
FSM_PRE_WRITE_SECTOR 
FSM_WRITE_SECTOR 
FSM_POST_WRITE_SECTOR 
FSM_TYPE3_LOADED 
FSM_TYPE3_ROTATED 
FSM_WRITE_TRACK 
FSM_READ_TRACK 
FSM_IDX_IRQ 

Definition at line 50 of file WD2793.hh.

Constructor & Destructor Documentation

◆ WD2793()

openmsx::WD2793::WD2793 ( Scheduler scheduler_,
DiskDrive drive_,
CliComm cliComm_,
EmuTime::param  time,
bool  isWD1770_ 
)

This class has emulation for WD1770, WD1793, WD2793.

Though at the moment the only emulated difference between WD1770 and WD{12}793 is that WD1770 has no ready input signal. (E.g. we don't emulate the WD1770 motor out signal yet).

Definition at line 49 of file WD2793.cc.

References reset(), and openmsx::RawTrack::STANDARD_SIZE.

Member Function Documentation

◆ getDataReg()

uint8_t openmsx::WD2793::getDataReg ( EmuTime::param  time)

◆ getDTRQ()

bool openmsx::WD2793::getDTRQ ( EmuTime::param  time) const

◆ getIRQ()

bool openmsx::WD2793::getIRQ ( EmuTime::param  time) const

◆ getSectorReg()

uint8_t openmsx::WD2793::getSectorReg ( EmuTime::param  time) const

◆ getStatusReg()

uint8_t openmsx::WD2793::getStatusReg ( EmuTime::param  time)

◆ getTrackReg()

uint8_t openmsx::WD2793::getTrackReg ( EmuTime::param  time) const

◆ peekDataReg()

uint8_t openmsx::WD2793::peekDataReg ( EmuTime::param  time) const

◆ peekDTRQ()

bool openmsx::WD2793::peekDTRQ ( EmuTime::param  time) const

◆ peekIRQ()

bool openmsx::WD2793::peekIRQ ( EmuTime::param  time) const

◆ peekSectorReg()

uint8_t openmsx::WD2793::peekSectorReg ( EmuTime::param  time) const

◆ peekStatusReg()

uint8_t openmsx::WD2793::peekStatusReg ( EmuTime::param  time) const

◆ peekTrackReg()

uint8_t openmsx::WD2793::peekTrackReg ( EmuTime::param  time) const

◆ reset()

void openmsx::WD2793::reset ( EmuTime::param  time)

◆ serialize()

template<typename Archive >
void openmsx::WD2793::serialize ( Archive &  ar,
unsigned  version 
)

◆ setCommandReg()

void openmsx::WD2793::setCommandReg ( uint8_t  value,
EmuTime::param  time 
)

◆ setDataReg()

void openmsx::WD2793::setDataReg ( uint8_t  value,
EmuTime::param  time 
)

◆ setSectorReg()

void openmsx::WD2793::setSectorReg ( uint8_t  value,
EmuTime::param  time 
)

◆ setTrackReg()

void openmsx::WD2793::setTrackReg ( uint8_t  value,
EmuTime::param  time 
)

The documentation for this class was generated from the following files: