openMSX
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
[legend]
Collaboration diagram for openmsx::Disk:
Collaboration graph
[legend]

Classes

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 ( )
virtualdefault

◆ Disk()

openmsx::Disk::Disk ( DiskName  name)
explicitprotected

Definition at line 8 of file Disk.cc.

Member Function Documentation

◆ detectGeometry()

void openmsx::Disk::detectGeometry ( )
protectedvirtual

◆ detectGeometryFallback()

void openmsx::Disk::detectGeometryFallback ( )
protectedvirtual

Definition at line 71 of file Disk.cc.

References openmsx::SectorAccessibleDisk::getNbSectors().

Referenced by detectGeometry().

◆ getName()

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

Definition at line 17 of file Disk.hh.

◆ getSectorsPerTrack()

unsigned openmsx::Disk::getSectorsPerTrack ( )
protected

Definition at line 63 of file Disk.cc.

References detectGeometry().

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

◆ hasChanged()

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

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 Disk.cc.

References detectGeometry().

◆ logToPhys()

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

◆ physToLog()

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

Definition at line 36 of file Disk.cc.

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)
inlineprotected

◆ setSectorsPerTrack()

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

◆ 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 Disk.cc.

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: