MOS656X Class Referenceabstract
Inheritance diagram for MOS656X:

## 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
EventContext & | event_context
unsigned int | cyclesPerLine
unsigned int | maxRasters
unsigned int | lineCycle
unsigned int | rasterY
unsigned int | yscroll
uint16_t | raster_irq
bool | areBadLinesEnabled
bool | isBadLine
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 | ) |

protected virtual

Read VIC register.

Parameters

  addr | Register to read.

Implements component.

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

protected virtual

Write to VIC register.

Parameters

  addr | Register to write to.
  data | Data 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

static protected

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

static protected

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

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:

- mos656x.h
- mos656x.cpp