openMSX
|
#include <TC8566AF.hh>
Public Types | |
enum class | Command { UNKNOWN , READ_DATA , WRITE_DATA , WRITE_DELETED_DATA , READ_DELETED_DATA , READ_DIAGNOSTIC , READ_ID , FORMAT , SCAN_EQUAL , SCAN_LOW_OR_EQUAL , SCAN_HIGH_OR_EQUAL , SEEK , RECALIBRATE , SENSE_INTERRUPT_STATUS , SPECIFY , SENSE_DEVICE_STATUS } |
enum class | Phase { IDLE , COMMAND , DATA_TRANSFER , RESULT } |
enum class | Seek { IDLE , 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 | |
Schedulable (Schedulable &&)=delete | |
Schedulable & | operator= (const Schedulable &)=delete |
Schedulable & | operator= (Schedulable &&)=delete |
virtual void | schedulerDeleted () |
Just before the the Scheduler is deleted, it calls this method of all the Schedulables that are still registered. | |
Scheduler & | getScheduler () 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< SyncPointBW > | serializeBW (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 |
Definition at line 19 of file TC8566AF.hh.
|
strong |
Definition at line 40 of file TC8566AF.hh.
|
strong |
Enumerator | |
---|---|
IDLE | |
COMMAND | |
DATA_TRANSFER | |
RESULT |
Definition at line 58 of file TC8566AF.hh.
|
strong |
Enumerator | |
---|---|
IDLE | |
SEEK | |
RECALIBRATE |
Definition at line 64 of file TC8566AF.hh.
openmsx::TC8566AF::TC8566AF | ( | Scheduler & | scheduler, |
std::span< std::unique_ptr< DiskDrive >, 4 > | drv, | ||
MSXCliComm & | cliComm, | ||
EmuTime::param | time | ||
) |
Definition at line 65 of file TC8566AF.cc.
References ranges::copy(), reset(), openmsx::RawTrack::STANDARD_SIZE, and view::transform().
bool openmsx::TC8566AF::diskChanged | ( | unsigned | driveNum | ) |
Definition at line 883 of file TC8566AF.cc.
Referenced by openmsx::TurboRFDC::readMem().
uint8_t openmsx::TC8566AF::peekDataPort | ( | EmuTime::param | time | ) | const |
Definition at line 139 of file TC8566AF.cc.
References DATA_TRANSFER, and RESULT.
Referenced by openmsx::TalentTDC600::peekMem(), and openmsx::TurboRFDC::peekMem().
bool openmsx::TC8566AF::peekDiskChanged | ( | unsigned | driveNum | ) | const |
Definition at line 889 of file TC8566AF.cc.
Referenced by openmsx::TurboRFDC::peekMem().
uint8_t openmsx::TC8566AF::peekStatus | ( | ) | const |
Definition at line 116 of file TC8566AF.cc.
References DATA_TRANSFER.
Referenced by openmsx::TalentTDC600::peekMem(), openmsx::TurboRFDC::peekMem(), and readStatus().
uint8_t openmsx::TC8566AF::readDataPort | ( | EmuTime::param | time | ) |
Definition at line 151 of file TC8566AF.cc.
References openmsx::DynamicClock::before(), DATA_TRANSFER, and RESULT.
Referenced by openmsx::TalentTDC600::readMem(), and openmsx::TurboRFDC::readMem().
uint8_t openmsx::TC8566AF::readStatus | ( | EmuTime::param | time | ) |
Definition at line 123 of file TC8566AF.cc.
References openmsx::DynamicClock::before(), DATA_TRANSFER, and peekStatus().
Referenced by openmsx::TalentTDC600::readMem(), and openmsx::TurboRFDC::readMem().
void openmsx::TC8566AF::reset | ( | EmuTime::param | time | ) |
Definition at line 77 of file TC8566AF.cc.
Referenced by openmsx::TalentTDC600::reset(), openmsx::TurboRFDC::reset(), and TC8566AF().
void openmsx::TC8566AF::serialize | ( | Archive & | ar, |
unsigned | version | ||
) |
Definition at line 971 of file TC8566AF.cc.
References openmsx::Clock< FREQ_NUM, FREQ_DENOM >::getTime(), openmsx::CRC16::getValue(), IDLE, openmsx::CRC16::init(), openmsx::CliComm::printWarning(), RECALIBRATE, openmsx::DynamicClock::reset(), SEEK, and openmsx::DynamicClock::setFreq().
void openmsx::TC8566AF::writeControlReg0 | ( | uint8_t | value, |
EmuTime::param | time | ||
) |
Definition at line 318 of file TC8566AF.cc.
Referenced by openmsx::TalentTDC600::writeMem(), and openmsx::TurboRFDC::writeMem().
void openmsx::TC8566AF::writeControlReg1 | ( | uint8_t | value, |
EmuTime::param | time | ||
) |
Definition at line 329 of file TC8566AF.cc.
References DATA_TRANSFER.
Referenced by openmsx::TurboRFDC::writeMem().
void openmsx::TC8566AF::writeDataPort | ( | uint8_t | value, |
EmuTime::param | time | ||
) |
Definition at line 338 of file TC8566AF.cc.
References COMMAND, DATA_TRANSFER, and IDLE.
Referenced by openmsx::TalentTDC600::writeMem(), and openmsx::TurboRFDC::writeMem().