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

#include <TC8566AF.hh>

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

Public Types

enum  Command {
  CMD_UNKNOWN , CMD_READ_DATA , CMD_WRITE_DATA , CMD_WRITE_DELETED_DATA ,
  CMD_READ_DELETED_DATA , CMD_READ_DIAGNOSTIC , CMD_READ_ID , CMD_FORMAT ,
  CMD_SCAN_EQUAL , CMD_SCAN_LOW_OR_EQUAL , CMD_SCAN_HIGH_OR_EQUAL , CMD_SEEK ,
  CMD_RECALIBRATE , CMD_SENSE_INTERRUPT_STATUS , CMD_SPECIFY , CMD_SENSE_DEVICE_STATUS
}
 
enum  Phase { PHASE_IDLE , PHASE_COMMAND , PHASE_DATA_TRANSFER , PHASE_RESULT }
 
enum  SeekState { SEEK_IDLE , SEEK_SEEK , SEEK_RECALIBRATE }
 

Public Member Functions

 TC8566AF (Scheduler &scheduler, std::span< std::unique_ptr< DiskDrive >, 4 >, MSXCliComm &cliComm, EmuTime::param time)
 
void reset (EmuTime::param time)
 
uint8_t peekDataPort (EmuTime::param time) const
 
uint8_t readDataPort (EmuTime::param time)
 
uint8_t peekStatus () const
 
uint8_t readStatus (EmuTime::param time)
 
void writeControlReg0 (uint8_t value, EmuTime::param time)
 
void writeControlReg1 (uint8_t value, EmuTime::param time)
 
void writeDataPort (uint8_t value, EmuTime::param time)
 
bool diskChanged (unsigned driveNum)
 
bool peekDiskChanged (unsigned driveNum) 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 19 of file TC8566AF.hh.

Member Enumeration Documentation

◆ Command

Enumerator
CMD_UNKNOWN 
CMD_READ_DATA 
CMD_WRITE_DATA 
CMD_WRITE_DELETED_DATA 
CMD_READ_DELETED_DATA 
CMD_READ_DIAGNOSTIC 
CMD_READ_ID 
CMD_FORMAT 
CMD_SCAN_EQUAL 
CMD_SCAN_LOW_OR_EQUAL 
CMD_SCAN_HIGH_OR_EQUAL 
CMD_SEEK 
CMD_RECALIBRATE 
CMD_SENSE_INTERRUPT_STATUS 
CMD_SPECIFY 
CMD_SENSE_DEVICE_STATUS 

Definition at line 40 of file TC8566AF.hh.

◆ Phase

Enumerator
PHASE_IDLE 
PHASE_COMMAND 
PHASE_DATA_TRANSFER 
PHASE_RESULT 

Definition at line 58 of file TC8566AF.hh.

◆ SeekState

Enumerator
SEEK_IDLE 
SEEK_SEEK 
SEEK_RECALIBRATE 

Definition at line 64 of file TC8566AF.hh.

Constructor & Destructor Documentation

◆ TC8566AF()

openmsx::TC8566AF::TC8566AF ( Scheduler scheduler,
std::span< std::unique_ptr< DiskDrive >, 4 >  drv,
MSXCliComm cliComm,
EmuTime::param  time 
)

Member Function Documentation

◆ diskChanged()

bool openmsx::TC8566AF::diskChanged ( unsigned  driveNum)

Definition at line 871 of file TC8566AF.cc.

Referenced by openmsx::TurboRFDC::readMem().

◆ peekDataPort()

uint8_t openmsx::TC8566AF::peekDataPort ( EmuTime::param  time) const

Definition at line 136 of file TC8566AF.cc.

References PHASE_DATA_TRANSFER, and PHASE_RESULT.

Referenced by openmsx::TalentTDC600::peekMem(), and openmsx::TurboRFDC::peekMem().

◆ peekDiskChanged()

bool openmsx::TC8566AF::peekDiskChanged ( unsigned  driveNum) const

Definition at line 877 of file TC8566AF.cc.

Referenced by openmsx::TurboRFDC::peekMem().

◆ peekStatus()

uint8_t openmsx::TC8566AF::peekStatus ( ) const

◆ readDataPort()

uint8_t openmsx::TC8566AF::readDataPort ( EmuTime::param  time)

◆ readStatus()

uint8_t openmsx::TC8566AF::readStatus ( EmuTime::param  time)

◆ reset()

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

Definition at line 77 of file TC8566AF.cc.

References CMD_UNKNOWN, PHASE_IDLE, and SEEK_IDLE.

Referenced by openmsx::TalentTDC600::reset(), openmsx::TurboRFDC::reset(), and TC8566AF().

◆ serialize()

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

◆ writeControlReg0()

void openmsx::TC8566AF::writeControlReg0 ( uint8_t  value,
EmuTime::param  time 
)

Definition at line 313 of file TC8566AF.cc.

Referenced by openmsx::TalentTDC600::writeMem(), and openmsx::TurboRFDC::writeMem().

◆ writeControlReg1()

void openmsx::TC8566AF::writeControlReg1 ( uint8_t  value,
EmuTime::param  time 
)

Definition at line 324 of file TC8566AF.cc.

References PHASE_DATA_TRANSFER.

Referenced by openmsx::TurboRFDC::writeMem().

◆ writeDataPort()

void openmsx::TC8566AF::writeDataPort ( uint8_t  value,
EmuTime::param  time 
)

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