MOS6510 Class Referenceabstract

`#include <mos6510.h>`

Inheritance diagram for MOS6510:

## Public Member Functions

virtual uint8_t | cpuRead (uint_least16_t addr)=0
virtual void | cpuWrite (uint_least16_t addr, uint8_t data)=0
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 (EventContext *context)

## Friends

class | MOS6510Debug

## Detailed Description

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.

Author
  alankila

## Constructor & Destructor Documentation

## MOS6510()

MOS6510::MOS6510 | ( | EventContext * | context | ) |

protected

Create new CPU emu

Parameters

  context | The Event Context

## Member Function Documentation

## clearIRQ()

void MOS6510::clearIRQ | ( |  | ) |

Inform CPU that IRQ is no longer pulled low.

## cpuRead()

virtual uint8_t MOS6510::cpuRead | ( | uint_least16_t | addr | ) |

pure virtual

Get data from system environment.

Parameters

  address |

Returns
  data byte CPU requested

Implemented in c64cpu.

## cpuWrite()

virtual void MOS6510::cpuWrite | ( | uint_least16_t | addr,
|  | uint8_t | data
| ) |  |

pure virtual

Write data to system environment.

Parameters

  address |
  data |

Implemented in c64cpu.

## reset()

void MOS6510::reset | ( |  | ) |

Reset CPU Emulation

## setRDY()

void MOS6510::setRDY | ( | bool | newRDY | ) |

Handle bus access signals. When RDY line is asserted, the CPU will pause when executing the next read operation.

Parameters

  rdy | new state for RDY signal

## triggerIRQ()

void MOS6510::triggerIRQ | ( |  | ) |

Pull IRQ line low on CPU.

## triggerNMI()

void 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.

## triggerRST()

void 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.

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

- mos6510.h
- mos6510.cpp