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, MSXCliComm &cliComm, EmuTime::param time, bool isWD1770)
 This class has emulation for WD1770, WD1793, WD2793.
 
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 schedulerDeleted ()
 Just before the the Scheduler is deleted, it calls this method of all the Schedulables that are still registered.
 
SchedulergetScheduler () const
 
EmuTime::param getCurrentTime () const
 Convenience method: This is the same as getScheduler().getCurrentTime().
 
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_,
MSXCliComm 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: