libsidplayfp  1.0.3
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
Timer Class Reference

#include <timer.h>

Inheritance diagram for Timer:
Event TimerA TimerB

List of all members.

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
int_least32_t 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 ( const char *  name,
EventContext context,
MOS6526 parent 
) [inline, protected]

Create a new timer.

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

Member Function Documentation

bool Timer::getPb ( uint8_t  reg) const [inline]

Get PB6/PB7 Flipflop state.

Parameters:
regvalue of the control register
Returns:
PB6/PB7 flipflop state
int_least32_t Timer::getState ( ) const [inline]

Get current state value.

Returns:
current state value
uint_least16_t Timer::getTimer ( ) const [inline]

Get current timer value.

Returns:
current timer value
void Timer::latchHi ( uint8_t  data)

Set high byte of Timer start value (Latch).

Parameters:
datahigh byte of latch
void Timer::latchLo ( uint8_t  data)

Set low byte of Timer start value (Latch).

Parameters:
datalow byte of latch
void Timer::reset ( )

Reset timer.

void Timer::setControlRegister ( uint8_t  cr)

Set CRA/CRB control register.

Parameters:
crcontrol register value
void Timer::setPbToggle ( bool  state) [inline]

Set PB6/PB7 Flipflop state.

Parameters:
statePB6/PB7 flipflop state

Perform cycle skipping manually.

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

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


Member Data Documentation

MOS6526* const Timer::parent [protected]

Pointer to the MOS6526 which this Timer belongs to.

int_least32_t Timer::state [protected]

CRA/CRB control register / state.


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