libsidplayfp 2.6.0
|
#include <mos6510.h>
Classes | |
class | haltInstruction |
Public Member Functions | |
void | reset () |
void | debug (bool enable, FILE *out) |
void | setRDY (bool newRDY) |
void | triggerRST () |
void | triggerNMI () |
void | triggerIRQ () |
void | clearIRQ () |
Static Public Member Functions | |
static const char * | credits () |
Static Public Attributes | |
static const int | SR_INTERRUPT = 2 |
Status register interrupt bit. | |
Protected Member Functions | |
MOS6510 (EventScheduler &scheduler) | |
virtual uint8_t | cpuRead (uint_least16_t addr)=0 |
virtual void | cpuWrite (uint_least16_t addr, uint8_t data)=0 |
Cycle-exact 6502/6510 emulation core.
Code is based on work by Simon A. White sidpl.nosp@m.ay2@.nosp@m.yahoo.nosp@m..com. Original Java port by Ken Händel. Later on, it has been hacked to improve compatibility with Lorenz suite on VICE's test suite.
|
protected |
Create new CPU emu.
context | The Event Context |
void libsidplayfp::MOS6510::clearIRQ | ( | ) |
Inform CPU that IRQ is no longer pulled low.
|
protectedpure virtual |
Get data from system environment.
address |
Implemented in libsidplayfp::c64cpu.
|
protectedpure virtual |
void libsidplayfp::MOS6510::reset | ( | ) |
Reset CPU Emulation.
Handle bus access signals. When RDY line is asserted, the CPU will pause when executing the next read operation.
newRDY | new state for RDY signal |
void libsidplayfp::MOS6510::triggerIRQ | ( | ) |
Pull IRQ line low on CPU.
void libsidplayfp::MOS6510::triggerNMI | ( | ) |
Trigger NMI interrupt on the CPU. Calling this method flags that CPU must enter the NMI routine at earliest opportunity. There is no way to cancel NMI request once given.
void libsidplayfp::MOS6510::triggerRST | ( | ) |
This forces the CPU to abort whatever it is doing and immediately enter the RST interrupt handling sequence. The implementation is not compatible: instructions actually get aborted mid-execution. However, there is no possible way to trigger this signal from programs, so it's OK.