libsidplayfp  1.3.0
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
MOS656X Class Referenceabstract
Inheritance diagram for MOS656X:
component Event c64vic

Public Types

enum  model_t { MOS6567R56A = 0, MOS6567R8, MOS6569, MOS6572 }
 

Public Member Functions

void event ()
 
void chip (model_t model)
 
void lightpen ()
 
void reset ()
 
const char * credits () const
 
int getCyclesPerLine () const
 
int getRasterLines () const
 

Protected Member Functions

 MOS656X (EventContext *context)
 
virtual void interrupt (bool state)=0
 
virtual void setBA (bool state)=0
 
uint8_t read (uint_least8_t addr)
 
void write (uint_least8_t addr, uint8_t data)
 

Protected Attributes

event_clock_t(MOS656X::* clock )()
 
event_clock_t rasterClk
 
EventContextevent_context
 
unsigned int cyclesPerLine
 
unsigned int maxRasters
 
unsigned int lineCycle
 
unsigned int rasterY
 
unsigned int yscroll
 
bool areBadLinesEnabled
 
bool isBadLine
 
bool rasterYIRQCondition
 
bool vblanking
 
bool lp_triggered
 
uint8_t irqFlags
 
uint8_t irqMask
 
uint8_t lpx
 
uint8_t lpy
 
uint8_t regs [0x40]
 
uint8_t & sprite_enable
 
uint8_t & sprite_y_expansion
 
uint8_t sprite_dma
 
uint8_t sprite_mc_base [8]
 
uint8_t sprite_mc [8]
 

Static Protected Attributes

static const unsigned int FIRST_DMA_LINE = 0x30
 
static const unsigned int LAST_DMA_LINE = 0xf7
 

Member Function Documentation

void MOS656X::event ( )
virtual

Event code to be executed. Events are allowed to safely reschedule themselves with the EventScheduler during invocations.

Implements Event.

uint8_t MOS656X::read ( uint_least8_t  addr)
protectedvirtual

Read VIC register.

Parameters
addrRegister to read.

Implements component.

void MOS656X::write ( uint_least8_t  addr,
uint8_t  data 
)
protectedvirtual

Write to VIC register.

Parameters
addrRegister to write to.
dataData byte to write.

Implements component.

Member Data Documentation

bool MOS656X::areBadLinesEnabled
protected

are bad lines enabled for this frame?

unsigned int MOS656X::cyclesPerLine
protected

Number of cycles per line.

EventContext& MOS656X::event_context
protected

CPU's event context.

const unsigned int MOS656X::FIRST_DMA_LINE = 0x30
staticprotected

First line when we check for bad lines

uint8_t MOS656X::irqFlags
protected

internal IRQ flags

uint8_t MOS656X::irqMask
protected

masks for the IRQ flags

bool MOS656X::isBadLine
protected

is the current line a bad line

const unsigned int MOS656X::LAST_DMA_LINE = 0xf7
staticprotected

Last line when we check for bad lines

unsigned int MOS656X::lineCycle
protected

Current visible line

bool MOS656X::lp_triggered
protected

Has light pen IRQ been triggered in this frame already?

uint8_t MOS656X::lpx
protected

Light pen coordinates

unsigned int MOS656X::rasterY
protected

current raster line

bool MOS656X::rasterYIRQCondition
protected

Is rasterYIRQ condition true?

uint8_t MOS656X::regs[0x40]
protected

memory for chip registers

uint8_t MOS656X::sprite_dma
protected

the 8 sprites data

uint8_t& MOS656X::sprite_enable
protected

the 8 sprites data

uint8_t MOS656X::sprite_mc[8]
protected

the 8 sprites data

uint8_t MOS656X::sprite_mc_base[8]
protected

the 8 sprites data

uint8_t & MOS656X::sprite_y_expansion
protected

the 8 sprites data

bool MOS656X::vblanking
protected

Set when new frame starts.

unsigned int MOS656X::yscroll
protected

vertical scrolling value


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