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 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 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 835 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 841 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 308 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 319 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: