openMSX
Classes | Public Member Functions | Static Public Attributes | List of all members
openmsx::RawTrack Struct Reference

#include <RawTrack.hh>

Classes

struct  Sector
 

Public Member Functions

 RawTrack ()
 
void clear (unsigned size)
 Clear track data. More...
 
unsigned getLength () const
 Get track length. More...
 
void addIdam (unsigned idx)
 
byte read (int idx) const
 
void write (int idx, byte val)
 
int wrapIndex (int idx) const
 
bytegetRawBuffer ()
 
const bytegetRawBuffer () const
 
const std::vector< unsigned > & getIdamBuffer () const
 
std::vector< SectordecodeAll () const
 Get info on all sectors in this track. More...
 
bool decodeNextSector (unsigned startIdx, Sector &sector) const
 Get the next sector (starting from a certain index). More...
 
bool decodeSector (byte sectorNum, Sector &sector) const
 Get a sector with a specific number. More...
 
void readBlock (int idx, unsigned size, byte *destination) const
 Like memcpy() but copy from/to circular buffer. More...
 
void writeBlock (int idx, unsigned size, const byte *source)
 
word calcCrc (int idx, int length) const
 Convenience method to calculate CRC for part of this track. More...
 
void updateCrc (CRC16 &crc, int idx, int size) const
 
template<typename Archive >
void serialize (Archive &ar, unsigned version)
 

Static Public Attributes

static const unsigned STANDARD_SIZE = 6250
 

Detailed Description

Definition at line 62 of file RawTrack.hh.

Constructor & Destructor Documentation

openmsx::RawTrack::RawTrack ( )

Definition at line 23 of file RawTrack.cc.

References clear(), and STANDARD_SIZE.

Member Function Documentation

void openmsx::RawTrack::addIdam ( unsigned  idx)

Definition at line 34 of file RawTrack.cc.

Referenced by openmsx::DMKDiskImage::readTrack(), and openmsx::WD2793::setDataReg().

word openmsx::RawTrack::calcCrc ( int  idx,
int  length 
) const

Convenience method to calculate CRC for part of this track.

Definition at line 172 of file RawTrack.cc.

References openmsx::CRC16::getValue(), and updateCrc().

void openmsx::RawTrack::clear ( unsigned  size)

Clear track data.

Also sets the track length.

Definition at line 28 of file RawTrack.cc.

Referenced by RawTrack(), and openmsx::DMKDiskImage::readTrack().

vector< RawTrack::Sector > openmsx::RawTrack::decodeAll ( ) const

Get info on all sectors in this track.

Definition at line 101 of file RawTrack.cc.

bool openmsx::RawTrack::decodeNextSector ( unsigned  startIdx,
Sector sector 
) const

Get the next sector (starting from a certain index).

Definition at line 124 of file RawTrack.cc.

Referenced by openmsx::RealDrive::getNextSector().

bool openmsx::RawTrack::decodeSector ( byte  sectorNum,
Sector sector 
) const

Get a sector with a specific number.

Note that if a sector with the same number occurs multiple times, this method will always return the same (the first) sector. So don't use it in the implementation of FDC / DiskDrive code.

Definition at line 135 of file RawTrack.cc.

References openmsx::RawTrack::Sector::sector.

Referenced by openmsx::DMKDiskImage::readSectorImpl(), and openmsx::DMKDiskImage::writeSectorImpl().

const std::vector<unsigned>& openmsx::RawTrack::getIdamBuffer ( ) const
inline

Definition at line 114 of file RawTrack.hh.

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

unsigned openmsx::RawTrack::getLength ( ) const
inline

Get track length.

Definition at line 96 of file RawTrack.hh.

Referenced by openmsx::RealDrive::getNextSector(), and openmsx::DMKDiskImage::writeTrackImpl().

byte* openmsx::RawTrack::getRawBuffer ( )
inline
const byte* openmsx::RawTrack::getRawBuffer ( ) const
inline

Definition at line 113 of file RawTrack.hh.

byte openmsx::RawTrack::read ( int  idx) const
inline

Definition at line 103 of file RawTrack.hh.

References wrapIndex().

Referenced by openmsx::WD2793::getDataReg(), openmsx::WD2793::peekDataReg(), and readBlock().

void openmsx::RawTrack::readBlock ( int  idx,
unsigned  size,
byte destination 
) const

Like memcpy() but copy from/to circular buffer.

Definition at line 146 of file RawTrack.cc.

References read(), and size().

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

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

Definition at line 182 of file RawTrack.cc.

void openmsx::RawTrack::updateCrc ( CRC16 crc,
int  idx,
int  size 
) const

Definition at line 159 of file RawTrack.cc.

References size(), openmsx::CRC16::update(), and wrapIndex().

Referenced by calcCrc().

int openmsx::RawTrack::wrapIndex ( int  idx) const
inline

Definition at line 105 of file RawTrack.hh.

Referenced by read(), updateCrc(), and write().

void openmsx::RawTrack::write ( int  idx,
byte  val 
)
inline

Definition at line 104 of file RawTrack.hh.

References wrapIndex().

Referenced by openmsx::WD2793::setDataReg(), and writeBlock().

void openmsx::RawTrack::writeBlock ( int  idx,
unsigned  size,
const byte source 
)

Definition at line 152 of file RawTrack.cc.

References size(), and write().

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

Member Data Documentation

const unsigned openmsx::RawTrack::STANDARD_SIZE = 6250
static

Definition at line 71 of file RawTrack.hh.

Referenced by RawTrack().


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