libsidplayfp  2.0.2
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
libsidplayfp::MOS6526 Class Referenceabstract

#include <mos6526.h>

Inheritance diagram for libsidplayfp::MOS6526:
Inheritance graph
[legend]
Collaboration diagram for libsidplayfp::MOS6526:
Collaboration graph
[legend]

Public Member Functions

void setModel (bool newModel)
 
virtual void reset ()
 
void setDayOfTimeRate (unsigned int clock)
 

Static Public Member Functions

static const char * credits ()
 

Protected Member Functions

 MOS6526 (EventScheduler &scheduler)
 
virtual void interrupt (bool state)=0
 
virtual void portA ()
 
virtual void portB ()
 
uint8_t read (uint_least8_t addr)
 
void write (uint_least8_t addr, uint8_t data)
 

Protected Attributes

EventSchedulereventScheduler
 Event context.
 
uint8_t & pra
 Ports.
 
uint8_t & prb
 
uint8_t & ddra
 
uint8_t & ddrb
 
uint8_t regs [0x10]
 These are all CIA registers.
 
TimerA timerA
 Timers A and B.
 
TimerB timerB
 
std::unique_ptr< InterruptSourceinterruptSource
 Interrupt Source.
 
Tod tod
 TOD.
 
SerialPort serialPort
 Serial Data Registers.
 
EventCallback< MOS6526bTickEvent
 Events.
 

Friends

class InterruptSource6526
 
class InterruptSource8521
 
class SerialPort
 
class TimerA
 
class TimerB
 
class Tod
 

Detailed Description

This class is heavily based on the ciacore/ciatimer source code from VICE. The CIA state machine is lifted as-is. Big thanks to VICE project!

Author
alankila

Constructor & Destructor Documentation

◆ MOS6526()

libsidplayfp::MOS6526::MOS6526 ( EventScheduler scheduler)
protected

Create a new CIA.

Parameters
contextthe event context

Member Function Documentation

◆ credits()

const char * libsidplayfp::MOS6526::credits ( )
static

Get the credits.

Returns
the credits

◆ interrupt()

virtual void libsidplayfp::MOS6526::interrupt ( bool  state)
protectedpure virtual

Signal interrupt.

Parameters
stateinterrupt state

Implemented in libsidplayfp::c64cia2, and libsidplayfp::c64cia1.

◆ read()

uint8_t libsidplayfp::MOS6526::read ( uint_least8_t  addr)
protected

Read CIA register.

Parameters
addrregister address to read (lowest 4 bits)

◆ reset()

void libsidplayfp::MOS6526::reset ( )
virtual

Reset CIA.

Reimplemented in libsidplayfp::c64cia1.

◆ setDayOfTimeRate()

void libsidplayfp::MOS6526::setDayOfTimeRate ( unsigned int  clock)
inline

Set day-of-time event occurence of rate.

Parameters
clock

◆ setModel()

void libsidplayfp::MOS6526::setModel ( bool  newModel)

Select chip model.

Parameters
newModeltrue for new model 8521, false for old 6526

◆ write()

void libsidplayfp::MOS6526::write ( uint_least8_t  addr,
uint8_t  data 
)
protected

Write CIA register.

Parameters
addrregister address to write (lowest 4 bits)
datavalue to write

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