libsidplayfp  1.8.7
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
Timer Class Referenceabstract

#include <timer.h>

Inheritance diagram for Timer:
Event TimerA TimerB

Public Member Functions

void setControlRegister (uint8_t cr)
 
void syncWithCpu ()
 
void wakeUpAfterSyncWithCpu ()
 
void reset ()
 
void latchLo (uint8_t data)
 
void latchHi (uint8_t data)
 
void setPbToggle (bool state)
 
int_least32_t getState () const
 
uint_least16_t getTimer () const
 
bool getPb (uint8_t reg) const
 

Protected Member Functions

 Timer (const char *name, EventContext *context, MOS6526 *parent)
 

Protected Attributes

MOS6526 *const parent
 Pointer to the MOS6526 which this Timer belongs to.
 
int_least32_t state
 CRA/CRB control register / state.
 

Static Protected Attributes

static const int_least32_t CIAT_CR_START = 0x01
 
static const int_least32_t CIAT_STEP = 0x04
 
static const int_least32_t CIAT_CR_ONESHOT = 0x08
 
static const int_least32_t CIAT_CR_FLOAD = 0x10
 
static const int_least32_t CIAT_PHI2IN = 0x20
 
static const int_least32_t CIAT_CR_MASK = CIAT_CR_START | CIAT_CR_ONESHOT | CIAT_CR_FLOAD | CIAT_PHI2IN
 
static const int_least32_t CIAT_COUNT2 = 0x100
 
static const int_least32_t CIAT_COUNT3 = 0x200
 
static const int_least32_t CIAT_ONESHOT0 = 0x08 << 8
 
static const int_least32_t CIAT_ONESHOT = 0x08 << 16
 
static const int_least32_t CIAT_LOAD1 = 0x10 << 8
 
static const int_least32_t CIAT_LOAD = 0x10 << 16
 
static const int_least32_t CIAT_OUT = 0x80000000
 

Detailed Description

This is the base class for the MOS6526 timers.

Author
Ken Händel

Constructor & Destructor Documentation

§ Timer()

Timer::Timer ( const char *  name,
EventContext context,
MOS6526 parent 
)
inlineprotected

Create a new timer.

Parameters
namecomponent name
contextevent context
parentthe MOS6526 which this Timer belongs to

Member Function Documentation

§ getPb()

bool Timer::getPb ( uint8_t  reg) const
inline

Get PB6/PB7 Flipflop state.

Parameters
regvalue of the control register
Returns
PB6/PB7 flipflop state

§ getState()

int_least32_t Timer::getState ( ) const
inline

Get current state value.

Returns
current state value

§ getTimer()

uint_least16_t Timer::getTimer ( ) const
inline

Get current timer value.

Returns
current timer value

§ latchHi()

void Timer::latchHi ( uint8_t  data)

Set high byte of Timer start value (Latch).

Parameters
datahigh byte of latch

§ latchLo()

void Timer::latchLo ( uint8_t  data)

Set low byte of Timer start value (Latch).

Parameters
datalow byte of latch

§ reset()

void Timer::reset ( )

Reset timer.

§ setControlRegister()

void Timer::setControlRegister ( uint8_t  cr)

Set CRA/CRB control register.

Parameters
crcontrol register value

§ setPbToggle()

void Timer::setPbToggle ( bool  state)
inline

Set PB6/PB7 Flipflop state.

Parameters
statePB6/PB7 flipflop state

§ syncWithCpu()

void Timer::syncWithCpu ( )

Perform cycle skipping manually.

Clocks the CIA up to the state it should be in, and stops all events.

§ wakeUpAfterSyncWithCpu()

void Timer::wakeUpAfterSyncWithCpu ( )

Counterpart of syncWithCpu(), starts the event ticking if it is needed. No clock() call or anything such is permissible here!


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