Classes | Public Member Functions | Protected Member Functions | List of all members
openmsx::Disk Class Referenceabstract

#include <Disk.hh>

Inheritance diagram for openmsx::Disk:
Inheritance graph
Collaboration diagram for openmsx::Disk:
Collaboration graph


struct  TSS

Public Member Functions

virtual ~Disk ()=default
const DiskNamegetName () const
void writeTrack (uint8_t track, uint8_t side, const RawTrack &input)
 Replace a full track in this image with the given track.
virtual void readTrack (uint8_t track, uint8_t side, RawTrack &output)=0
 Read a full track from this disk image.
virtual bool hasChanged () const
 Has the content of this disk changed, by some other means than the MSX writing to the disk.
bool isDoubleSided ()
- Public Member Functions inherited from openmsx::SectorAccessibleDisk
void readSector (size_t sector, SectorBuffer &buf) const
void writeSector (size_t sector, const SectorBuffer &buf)
void readSectors (std::span< SectorBuffer > buffers, size_t startSector) const
void writeSectors (std::span< const SectorBuffer > buffers, size_t startSector)
size_t getNbSectors () const
bool isWriteProtected () const
void forceWriteProtect ()
virtual bool isDummyDisk () const
void applyPatch (Filename patchFile)
std::vector< FilenamegetPatches () const
bool hasPatches () const
Sha1Sum getSha1Sum (FilePool &filePool)
 Calculate SHA1 of the content of this disk.
virtual void readSectorsImpl (std::span< SectorBuffer > buffers, size_t startSector)
virtual void readSectorImpl (size_t sector, SectorBuffer &buf)

Protected Member Functions

 Disk (DiskName name)
size_t physToLog (uint8_t track, uint8_t side, uint8_t sector)
TSS logToPhys (size_t log)
virtual void detectGeometry ()
virtual void detectGeometryFallback ()
void setSectorsPerTrack (unsigned num)
unsigned getSectorsPerTrack ()
void setNbSides (unsigned num)
virtual void writeTrackImpl (uint8_t track, uint8_t side, const RawTrack &input)=0
- Protected Member Functions inherited from openmsx::SectorAccessibleDisk
 SectorAccessibleDisk ()
 ~SectorAccessibleDisk ()
void setPeekMode (bool peek)
bool isPeekMode () const
virtual void checkCaches ()
virtual void flushCaches ()
virtual Sha1Sum getSha1SumImpl (FilePool &filePool)

Additional Inherited Members

- Static Public Attributes inherited from openmsx::SectorAccessibleDisk
static constexpr size_t SECTOR_SIZE = sizeof(SectorBuffer)

Detailed Description

Definition at line 12 of file Disk.hh.

Constructor & Destructor Documentation

◆ ~Disk()

virtual openmsx::Disk::~Disk ( )

◆ Disk()

openmsx::Disk::Disk ( DiskName  name)

Definition at line 8 of file

Member Function Documentation

◆ detectGeometry()

void openmsx::Disk::detectGeometry ( )

◆ detectGeometryFallback()

void openmsx::Disk::detectGeometryFallback ( )

Definition at line 71 of file

References openmsx::SectorAccessibleDisk::getNbSectors().

Referenced by detectGeometry().

◆ getName()

const DiskName & openmsx::Disk::getName ( ) const

Definition at line 17 of file Disk.hh.

◆ getSectorsPerTrack()

unsigned openmsx::Disk::getSectorsPerTrack ( )

Definition at line 63 of file

References detectGeometry().

Referenced by openmsx::DMKDiskImage::getNbSectorsImpl().

◆ hasChanged()

virtual bool openmsx::Disk::hasChanged ( ) const

Has the content of this disk changed, by some other means than the MSX writing to the disk.

In other words: should caches on the MSX side be dropped? (E.g. via the 'disk-changed-signal' that's present in (some) MSX disk interfaces).

Reimplemented in openmsx::DirAsDSK.

Definition at line 29 of file Disk.hh.

◆ isDoubleSided()

bool openmsx::Disk::isDoubleSided ( )

Definition at line 22 of file

References detectGeometry().

◆ logToPhys()

Disk::TSS openmsx::Disk::logToPhys ( size_t  log)

◆ physToLog()

size_t openmsx::Disk::physToLog ( uint8_t  track,
uint8_t  side,
uint8_t  sector 

Definition at line 36 of file

References detectGeometry().

◆ readTrack()

virtual void openmsx::Disk::readTrack ( uint8_t  track,
uint8_t  side,
RawTrack output 
pure virtual

Read a full track from this disk image.

Implemented in openmsx::DMKDiskImage.

◆ setNbSides()

void openmsx::Disk::setNbSides ( unsigned  num)

◆ setSectorsPerTrack()

void openmsx::Disk::setSectorsPerTrack ( unsigned  num)

◆ writeTrack()

void openmsx::Disk::writeTrack ( uint8_t  track,
uint8_t  side,
const RawTrack input 

Replace a full track in this image with the given track.

Definition at line 13 of file

References openmsx::SectorAccessibleDisk::flushCaches(), openmsx::SectorAccessibleDisk::isWriteProtected(), and writeTrackImpl().

Referenced by openmsx::DMKDiskImage::writeSectorImpl().

◆ writeTrackImpl()

virtual void openmsx::Disk::writeTrackImpl ( uint8_t  track,
uint8_t  side,
const RawTrack input 
protectedpure virtual

Implemented in openmsx::DMKDiskImage.

Referenced by writeTrack().

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