libsidplayfp 1.0.3
|
Public Types | |
enum | model_t { MOS6567R56A = 0, MOS6567R8, MOS6569, MOS6572 } |
Public Member Functions | |
void | chip (model_t model) |
void | lightpen () |
void | reset () |
const char * | credits () const |
uint_least16_t | getCyclesPerLine () const |
uint_least16_t | getRasterLines () const |
Protected Member Functions | |
MOS656X (EventContext *context) | |
void | event () |
void | badLineStateChange () |
void | activateIRQFlag (int flag) |
bool | readDEN () const |
bool | evaluateIsBadLine () const |
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 | m_rasterClk |
EventContext & | event_context |
uint_least16_t | cyclesPerLine |
uint_least16_t | maxRasters |
uint_least16_t | raster_irq |
uint_least16_t | lineCycle |
uint_least16_t | rasterY |
uint_least16_t | yscroll |
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] |
EventCallback< MOS656X > | badLineStateChangeEvent |
uint8_t & | sprite_enable |
uint8_t & | sprite_y_expansion |
uint8_t | sprite_dma |
uint8_t | sprite_expand_y |
uint8_t | sprite_mc_base [8] |
Static Protected Attributes | |
static const int | FIRST_DMA_LINE = 0x30 |
static const int | LAST_DMA_LINE = 0xf7 |
void MOS656X::activateIRQFlag | ( | int | flag | ) | [inline, protected] |
Set an IRQ flag and trigger an IRQ if the corresponding IRQ mask is set. The IRQ only gets activated, i.e. flag 0x80 gets set, if it was not active before.
void MOS656X::badLineStateChange | ( | ) | [inline, protected] |
AEC state was updated.
void MOS656X::event | ( | ) | [protected, 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] |
bool MOS656X::readDEN | ( | ) | const [inline, protected] |
Read the DEN flag which tells whether the display is enabled
void MOS656X::write | ( | uint_least8_t | addr, |
uint8_t | data | ||
) | [protected, virtual] |
Write to VIC register.
addr | Register to write to. |
data | Data byte to write. |
Implements component.
bool MOS656X::areBadLinesEnabled [protected] |
are bad lines enabled for this frame?
uint_least16_t MOS656X::cyclesPerLine [protected] |
Number of cycles per line.
EventContext& MOS656X::event_context [protected] |
CPU's event context.
const 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 int MOS656X::LAST_DMA_LINE = 0xf7 [static, protected] |
Last line when we check for bad lines
uint_least16_t 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
uint_least16_t 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_expand_y [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.
uint_least16_t MOS656X::yscroll [protected] |
vertical scrolling value