The Spc700 class represents the SPC700 processor. More...
#include <spc700.h>
Classes | |
struct | Flags |
Public Member Functions | |
Spc700 (ApuCallbacks &callbacks) | |
uint8_t | FlagsToByte (Flags flags) |
Flags | ByteToFlags (uint8_t byte) |
void | Reset (bool hard=false) |
void | RunOpcode () |
void | ExecuteInstructions (uint8_t opcode) |
void | LogInstruction (uint16_t initial_pc, uint8_t opcode) |
uint8_t | read (uint16_t address) |
uint16_t | read_word (uint16_t address) |
uint8_t | ReadOpcode () |
uint16_t | ReadOpcodeWord () |
void | DoBranch (uint8_t value, bool check) |
void | write (uint16_t address, uint8_t value) |
void | push_byte (uint8_t value) |
void | push_word (uint16_t value) |
uint8_t | pull_byte () |
uint16_t | pull_word () |
uint16_t | imm () |
uint8_t | dp () |
uint16_t | dpx () |
uint8_t | get_dp_addr () |
uint8_t | abs_bit (uint16_t *adr) |
uint16_t | dp_dp (uint8_t *src) |
uint16_t | ind () |
uint16_t | ind_ind (uint8_t *srcVal) |
uint16_t | dp_word (uint16_t *low) |
uint16_t | ind_p () |
uint16_t | abs_x () |
uint16_t | abs_y () |
uint16_t | idx () |
uint16_t | idy () |
uint16_t | dp_y () |
uint16_t | dp_imm (uint8_t *srcVal) |
uint16_t | abs () |
int8_t | rel () |
uint8_t | dp_plus_x () |
uint8_t | dp_plus_y () |
uint16_t | dp_plus_x_indirect () |
uint16_t | dp_indirect_plus_y () |
uint8_t | i () |
uint8_t | i_postinc () |
uint16_t | addr_plus_i () |
uint16_t | addr_plus_i_indexed () |
void | MOV (uint16_t adr) |
void | MOV_ADDR (uint16_t address, uint8_t operand) |
void | MOVY (uint16_t adr) |
void | MOVX (uint16_t adr) |
void | MOVS (uint16_t adr) |
void | MOVSX (uint16_t adr) |
void | MOVSY (uint16_t adr) |
void | ADC (uint16_t adr) |
void | ADCM (uint16_t &dest, uint8_t operand) |
void | SBC (uint16_t adr) |
void | SBCM (uint16_t &dest, uint8_t operand) |
void | CMP (uint16_t adr) |
void | CMPX (uint16_t adr) |
void | CMPM (uint16_t dst, uint8_t value) |
void | CMPY (uint16_t adr) |
void | AND (uint16_t adr) |
void | ANDM (uint16_t dest, uint8_t operand) |
void | OR (uint16_t adr) |
void | ORM (uint16_t dest, uint8_t operand) |
void | EOR (uint16_t adr) |
void | EORM (uint16_t dest, uint8_t operand) |
void | ASL (uint16_t operand) |
void | LSR (uint16_t adr) |
void | ROL (uint16_t operand) |
void | ROR (uint16_t adr) |
void | XCN (uint8_t operand, bool isImmediate=false) |
void | INC (uint16_t adr) |
void | DEC (uint16_t operand) |
void | MOVW (uint16_t &dest, uint16_t operand) |
void | INCW (uint16_t &operand) |
void | DECW (uint16_t &operand) |
void | ADDW (uint16_t &dest, uint16_t operand) |
void | SUBW (uint16_t &dest, uint16_t operand) |
void | CMPW (uint16_t operand) |
void | MUL (uint8_t operand) |
void | DIV (uint8_t operand) |
void | BRA (int8_t offset) |
void | BEQ (int8_t offset) |
void | BNE (int8_t offset) |
void | BCS (int8_t offset) |
void | BCC (int8_t offset) |
void | BVS (int8_t offset) |
void | BVC (int8_t offset) |
void | BMI (int8_t offset) |
void | BPL (int8_t offset) |
void | BBS (uint8_t bit, uint8_t operand) |
void | BBC (uint8_t bit, uint8_t operand) |
void | JMP (uint16_t address) |
void | CALL (uint16_t address) |
void | PCALL (uint8_t offset) |
void | TCALL (uint8_t offset) |
void | BRK () |
void | RET () |
void | RETI () |
void | PUSH (uint8_t operand) |
void | POP (uint8_t &operand) |
void | SET1 (uint8_t bit, uint8_t &operand) |
void | CLR1 (uint8_t bit, uint8_t &operand) |
void | TSET1 (uint8_t bit, uint8_t &operand) |
void | TCLR1 (uint8_t bit, uint8_t &operand) |
void | AND1 (uint8_t bit, uint8_t &operand) |
void | OR1 (uint8_t bit, uint8_t &operand) |
void | EOR1 (uint8_t bit, uint8_t &operand) |
void | NOT1 (uint8_t bit, uint8_t &operand) |
void | MOV1 (uint8_t bit, uint8_t &operand) |
void | CLRC () |
void | SETC () |
void | NOTC () |
void | CLRV () |
void | CLRP () |
void | SETP () |
void | EI () |
void | DI () |
void | NOP () |
void | SLEEP () |
void | STOP () |
Public Attributes | |
uint8_t | A = 0x00 |
uint8_t | X = 0x00 |
uint8_t | Y = 0x00 |
uint16_t | YA = 0x00 |
uint16_t | PC = 0xFFC0 |
uint8_t | SP = 0x00 |
Flags | PSW |
Private Attributes | |
ApuCallbacks | callbacks_ |
std::vector< std::string > | log_ |
bool | stopped_ |
bool | reset_wanted_ |
uint8_t | opcode |
uint32_t | step = 0 |
uint32_t | bstep |
uint16_t | adr |
uint16_t | adr1 |
uint8_t | dat |
uint16_t | dat16 |
uint8_t | param |
const uint8_t | ipl_rom_ [64] |
The Spc700 class represents the SPC700 processor.
The Spc700 class provides the functionality to execute instructions, read and write memory, and handle various addressing modes. It also contains registers and flags specific to the SPC700.
AudioRam
object for memory access.
|
inlineexplicit |
|
inline |
Definition at line 120 of file spc700.h.
References yaze::app::emu::audio::Spc700::Flags::B, yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::H, yaze::app::emu::audio::Spc700::Flags::I, yaze::app::emu::audio::Spc700::Flags::N, yaze::app::emu::audio::Spc700::Flags::P, yaze::app::emu::audio::Spc700::Flags::V, and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
|
inline |
Definition at line 125 of file spc700.h.
References yaze::app::emu::audio::Spc700::Flags::B, yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::H, yaze::app::emu::audio::Spc700::Flags::I, yaze::app::emu::audio::Spc700::Flags::N, yaze::app::emu::audio::Spc700::Flags::P, yaze::app::emu::audio::Spc700::Flags::V, and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions(), and Reset().
void yaze::app::emu::audio::Spc700::Reset | ( | bool | hard = false | ) |
Definition at line 16 of file spc700.cc.
References A, ByteToFlags(), PC, PSW, reset_wanted_, SP, step, stopped_, X, and Y.
Referenced by yaze::app::emu::audio::Apu::Reset().
void yaze::app::emu::audio::Spc700::RunOpcode | ( | ) |
Definition at line 30 of file spc700.cc.
References bstep, callbacks_, ExecuteInstructions(), yaze::app::emu::audio::Spc700::Flags::I, yaze::app::emu::audio::ApuCallbacks::idle, opcode, PC, PSW, read(), read_word(), ReadOpcode(), reset_wanted_, SP, step, and stopped_.
Referenced by yaze::app::emu::audio::Apu::RunCycles().
void yaze::app::emu::audio::Spc700::ExecuteInstructions | ( | uint8_t | opcode | ) |
Definition at line 58 of file spc700.cc.
References A, abs(), abs_bit(), abs_x(), abs_y(), ADC(), ADCM(), adr, AND(), ANDM(), ASL(), yaze::app::emu::audio::Spc700::Flags::B, ByteToFlags(), yaze::app::emu::audio::Spc700::Flags::C, callbacks_, CMP(), CMPM(), CMPX(), CMPY(), dat, DEC(), DoBranch(), dp(), dp_dp(), dp_imm(), dp_word(), dp_y(), dpx(), EOR(), EORM(), FlagsToByte(), yaze::app::emu::audio::Spc700::Flags::H, yaze::app::emu::audio::Spc700::Flags::I, i(), yaze::app::emu::audio::ApuCallbacks::idle, idx(), idy(), imm(), INC(), ind(), ind_ind(), ind_p(), LSR(), MOV(), MOVS(), MOVSX(), MOVSY(), MOVX(), MOVY(), yaze::app::emu::audio::Spc700::Flags::N, opcode, OR(), ORM(), yaze::app::emu::audio::Spc700::Flags::P, PC, PSW, pull_byte(), pull_word(), push_byte(), push_word(), read(), read_word(), ReadOpcode(), ReadOpcodeWord(), ROL(), ROR(), SBC(), SBCM(), SP, step, stopped_, yaze::app::emu::audio::Spc700::Flags::V, write(), X, Y, and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by RunOpcode(), and yaze::test::emu::TEST_F().
void yaze::app::emu::audio::Spc700::LogInstruction | ( | uint16_t | initial_pc, |
uint8_t | opcode ) |
|
inline |
Definition at line 146 of file spc700.h.
References callbacks_, and yaze::app::emu::audio::ApuCallbacks::read.
Referenced by ADC(), ADCM(), addr_plus_i(), addr_plus_i_indexed(), AND(), ANDM(), ASL(), CMP(), CMPM(), CMPX(), CMPY(), DEC(), dp_dp(), dp_plus_x(), dp_plus_y(), EOR(), EORM(), ExecuteInstructions(), i(), i_postinc(), INC(), ind(), ind_ind(), ind_p(), LSR(), MOV(), MOVS(), MOVSX(), MOVSY(), MOVX(), MOVY(), OR(), ORM(), POP(), pull_byte(), rel(), RET(), RETI(), ROL(), ROR(), RunOpcode(), SBC(), and SBCM().
|
inline |
Definition at line 148 of file spc700.h.
References callbacks_, and yaze::app::emu::audio::ApuCallbacks::read.
Referenced by dp_indirect_plus_y(), dp_plus_x_indirect(), ExecuteInstructions(), idx(), idy(), and RunOpcode().
|
inline |
Definition at line 155 of file spc700.h.
References callbacks_, opcode, PC, and yaze::app::emu::audio::ApuCallbacks::read.
Referenced by dp(), dp_dp(), dp_imm(), dp_word(), dp_y(), dpx(), ExecuteInstructions(), idx(), idy(), ReadOpcodeWord(), and RunOpcode().
|
inline |
Definition at line 160 of file spc700.h.
References ReadOpcode().
Referenced by abs(), abs_bit(), abs_x(), abs_y(), and ExecuteInstructions().
|
inline |
Definition at line 166 of file spc700.h.
References callbacks_, yaze::app::emu::audio::ApuCallbacks::idle, and PC.
Referenced by ExecuteInstructions().
|
inline |
Definition at line 176 of file spc700.h.
References callbacks_, and yaze::app::emu::audio::ApuCallbacks::write.
Referenced by ADCM(), ANDM(), ASL(), BRK(), CALL(), DEC(), EORM(), ExecuteInstructions(), INC(), LSR(), MOV_ADDR(), MOVS(), MOVSX(), MOVSY(), ORM(), PCALL(), PUSH(), ROL(), ROR(), SBCM(), and TCALL().
|
inline |
Definition at line 180 of file spc700.h.
References callbacks_, SP, and yaze::app::emu::audio::ApuCallbacks::write.
Referenced by ExecuteInstructions(), and push_word().
|
inline |
Definition at line 185 of file spc700.h.
References push_byte().
Referenced by ExecuteInstructions().
|
inline |
Definition at line 190 of file spc700.h.
Referenced by ExecuteInstructions(), and pull_word().
|
inline |
Definition at line 195 of file spc700.h.
References pull_byte().
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::imm | ( | ) |
Definition at line 81 of file addressing.cc.
References PC.
Referenced by ExecuteInstructions(), and XCN().
uint8_t yaze::app::emu::audio::Spc700::dp | ( | ) |
Definition at line 84 of file addressing.cc.
References yaze::app::emu::audio::Spc700::Flags::P, PSW, and ReadOpcode().
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::dpx | ( | ) |
Definition at line 21 of file addressing.cc.
References callbacks_, yaze::app::emu::audio::ApuCallbacks::idle, yaze::app::emu::audio::Spc700::Flags::P, PSW, ReadOpcode(), and X.
Referenced by ExecuteInstructions().
uint8_t yaze::app::emu::audio::Spc700::get_dp_addr | ( | ) |
uint8_t yaze::app::emu::audio::Spc700::abs_bit | ( | uint16_t * | adr | ) |
Definition at line 63 of file addressing.cc.
References adr, and ReadOpcodeWord().
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::dp_dp | ( | uint8_t * | src | ) |
Definition at line 116 of file addressing.cc.
References yaze::app::emu::audio::Spc700::Flags::P, PSW, read(), and ReadOpcode().
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::ind | ( | ) |
Definition at line 10 of file addressing.cc.
References yaze::app::emu::audio::Spc700::Flags::P, PC, PSW, read(), and X.
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::ind_ind | ( | uint8_t * | srcVal | ) |
Definition at line 57 of file addressing.cc.
References yaze::app::emu::audio::Spc700::Flags::P, PC, PSW, read(), X, and Y.
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::dp_word | ( | uint16_t * | low | ) |
Definition at line 69 of file addressing.cc.
References adr, yaze::app::emu::audio::Spc700::Flags::P, PSW, and ReadOpcode().
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::ind_p | ( | ) |
Definition at line 75 of file addressing.cc.
References yaze::app::emu::audio::Spc700::Flags::P, PC, PSW, read(), and X.
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::abs_x | ( | ) |
Definition at line 33 of file addressing.cc.
References callbacks_, yaze::app::emu::audio::ApuCallbacks::idle, ReadOpcodeWord(), and X.
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::abs_y | ( | ) |
Definition at line 39 of file addressing.cc.
References callbacks_, yaze::app::emu::audio::ApuCallbacks::idle, ReadOpcodeWord(), and Y.
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::idx | ( | ) |
Definition at line 15 of file addressing.cc.
References callbacks_, yaze::app::emu::audio::ApuCallbacks::idle, yaze::app::emu::audio::Spc700::Flags::P, PSW, read_word(), ReadOpcode(), and X.
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::idy | ( | ) |
Definition at line 45 of file addressing.cc.
References adr, callbacks_, yaze::app::emu::audio::ApuCallbacks::idle, yaze::app::emu::audio::Spc700::Flags::P, PSW, read_word(), ReadOpcode(), and Y.
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::dp_y | ( | ) |
Definition at line 27 of file addressing.cc.
References callbacks_, yaze::app::emu::audio::ApuCallbacks::idle, yaze::app::emu::audio::Spc700::Flags::P, PSW, ReadOpcode(), and Y.
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::dp_imm | ( | uint8_t * | srcVal | ) |
Definition at line 52 of file addressing.cc.
References yaze::app::emu::audio::Spc700::Flags::P, PSW, and ReadOpcode().
Referenced by ExecuteInstructions().
uint16_t yaze::app::emu::audio::Spc700::abs | ( | ) |
Definition at line 121 of file addressing.cc.
References ReadOpcodeWord().
Referenced by ExecuteInstructions().
int8_t yaze::app::emu::audio::Spc700::rel | ( | ) |
uint8_t yaze::app::emu::audio::Spc700::dp_plus_x | ( | ) |
Definition at line 89 of file addressing.cc.
References yaze::app::emu::audio::Spc700::Flags::P, PC, PSW, read(), and X.
uint8_t yaze::app::emu::audio::Spc700::dp_plus_y | ( | ) |
Definition at line 96 of file addressing.cc.
References yaze::app::emu::audio::Spc700::Flags::P, PC, PSW, read(), and Y.
uint16_t yaze::app::emu::audio::Spc700::dp_plus_x_indirect | ( | ) |
Definition at line 103 of file addressing.cc.
References PC, read_word(), and X.
uint16_t yaze::app::emu::audio::Spc700::dp_indirect_plus_y | ( | ) |
Definition at line 110 of file addressing.cc.
References PC, read_word(), and Y.
uint8_t yaze::app::emu::audio::Spc700::i | ( | ) |
Definition at line 128 of file addressing.cc.
References yaze::app::emu::audio::Spc700::Flags::P, PSW, read(), and X.
Referenced by ExecuteInstructions().
uint8_t yaze::app::emu::audio::Spc700::i_postinc | ( | ) |
Definition at line 130 of file addressing.cc.
References yaze::app::emu::audio::Spc700::Flags::P, PSW, read(), and X.
uint16_t yaze::app::emu::audio::Spc700::addr_plus_i | ( | ) |
uint16_t yaze::app::emu::audio::Spc700::addr_plus_i_indexed | ( | ) |
void yaze::app::emu::audio::Spc700::MOV | ( | uint16_t | adr | ) |
Definition at line 43 of file instructions.cc.
References A, adr, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::MOV_ADDR | ( | uint16_t | address, |
uint8_t | operand ) |
Definition at line 49 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PSW, write(), and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::MOVY | ( | uint16_t | adr | ) |
Definition at line 16 of file instructions.cc.
References adr, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), Y, and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::MOVX | ( | uint16_t | adr | ) |
Definition at line 10 of file instructions.cc.
References adr, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), X, and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::MOVS | ( | uint16_t | adr | ) |
Definition at line 22 of file instructions.cc.
References A, adr, bstep, read(), and write().
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::MOVSX | ( | uint16_t | adr | ) |
Definition at line 29 of file instructions.cc.
References adr, bstep, read(), write(), and X.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::MOVSY | ( | uint16_t | adr | ) |
Definition at line 36 of file instructions.cc.
References adr, bstep, read(), write(), and Y.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::ADC | ( | uint16_t | adr | ) |
Definition at line 55 of file instructions.cc.
References A, adr, yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::H, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), yaze::app::emu::audio::Spc700::Flags::V, and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::ADCM | ( | uint16_t & | dest, |
uint8_t | operand ) |
Definition at line 66 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::H, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), yaze::app::emu::audio::Spc700::Flags::V, write(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::SBC | ( | uint16_t | adr | ) |
Definition at line 78 of file instructions.cc.
References A, adr, yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::H, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), yaze::app::emu::audio::Spc700::Flags::V, and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::SBCM | ( | uint16_t & | dest, |
uint8_t | operand ) |
Definition at line 89 of file instructions.cc.
References A, yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::H, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), yaze::app::emu::audio::Spc700::Flags::V, write(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::CMP | ( | uint16_t | adr | ) |
Definition at line 127 of file instructions.cc.
References A, adr, yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::CMPX | ( | uint16_t | adr | ) |
Definition at line 102 of file instructions.cc.
References adr, yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), X, and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::CMPM | ( | uint16_t | dst, |
uint8_t | value ) |
Definition at line 118 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, callbacks_, yaze::app::emu::audio::ApuCallbacks::idle, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::CMPY | ( | uint16_t | adr | ) |
Definition at line 110 of file instructions.cc.
References adr, yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), Y, and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::AND | ( | uint16_t | adr | ) |
Definition at line 135 of file instructions.cc.
References A, adr, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::ANDM | ( | uint16_t | dest, |
uint8_t | operand ) |
Definition at line 141 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), write(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::OR | ( | uint16_t | adr | ) |
Definition at line 148 of file instructions.cc.
References A, adr, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::ORM | ( | uint16_t | dest, |
uint8_t | operand ) |
Definition at line 154 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), write(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::EOR | ( | uint16_t | adr | ) |
Definition at line 161 of file instructions.cc.
References A, adr, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::EORM | ( | uint16_t | dest, |
uint8_t | operand ) |
Definition at line 167 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), write(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::ASL | ( | uint16_t | operand | ) |
Definition at line 174 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), write(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::LSR | ( | uint16_t | adr | ) |
Definition at line 183 of file instructions.cc.
References adr, yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), write(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::ROL | ( | uint16_t | operand | ) |
Definition at line 202 of file instructions.cc.
References adr, yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), write(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::ROR | ( | uint16_t | adr | ) |
Definition at line 192 of file instructions.cc.
References adr, yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), write(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::XCN | ( | uint8_t | operand, |
bool | isImmediate = false ) |
Definition at line 213 of file instructions.cc.
References imm(), yaze::app::emu::audio::Spc700::Flags::N, PSW, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::INC | ( | uint16_t | adr | ) |
Definition at line 221 of file instructions.cc.
References adr, yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), write(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::DEC | ( | uint16_t | operand | ) |
Definition at line 228 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PSW, read(), write(), and yaze::app::emu::audio::Spc700::Flags::Z.
Referenced by ExecuteInstructions().
void yaze::app::emu::audio::Spc700::MOVW | ( | uint16_t & | dest, |
uint16_t | operand ) |
Definition at line 235 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PSW, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::INCW | ( | uint16_t & | operand | ) |
Definition at line 241 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PSW, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::DECW | ( | uint16_t & | operand | ) |
Definition at line 247 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PSW, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::ADDW | ( | uint16_t & | dest, |
uint16_t | operand ) |
Definition at line 253 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::N, PSW, yaze::app::emu::audio::Spc700::Flags::V, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::SUBW | ( | uint16_t & | dest, |
uint16_t | operand ) |
Definition at line 262 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::N, PSW, yaze::app::emu::audio::Spc700::Flags::V, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::CMPW | ( | uint16_t | operand | ) |
Definition at line 271 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, yaze::app::emu::audio::Spc700::Flags::N, PSW, YA, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::MUL | ( | uint8_t | operand | ) |
Definition at line 278 of file instructions.cc.
References A, yaze::app::emu::audio::Spc700::Flags::N, PSW, YA, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::DIV | ( | uint8_t | operand | ) |
Definition at line 285 of file instructions.cc.
References A, yaze::app::emu::audio::Spc700::Flags::N, PSW, Y, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::BRA | ( | int8_t | offset | ) |
Definition at line 298 of file instructions.cc.
References PC.
void yaze::app::emu::audio::Spc700::BEQ | ( | int8_t | offset | ) |
Definition at line 300 of file instructions.cc.
References PC, PSW, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::BNE | ( | int8_t | offset | ) |
Definition at line 306 of file instructions.cc.
References PC, PSW, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::BCS | ( | int8_t | offset | ) |
Definition at line 312 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, PC, and PSW.
void yaze::app::emu::audio::Spc700::BCC | ( | int8_t | offset | ) |
Definition at line 318 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, PC, and PSW.
void yaze::app::emu::audio::Spc700::BVS | ( | int8_t | offset | ) |
Definition at line 324 of file instructions.cc.
References PC, PSW, and yaze::app::emu::audio::Spc700::Flags::V.
void yaze::app::emu::audio::Spc700::BVC | ( | int8_t | offset | ) |
Definition at line 330 of file instructions.cc.
References PC, PSW, and yaze::app::emu::audio::Spc700::Flags::V.
void yaze::app::emu::audio::Spc700::BMI | ( | int8_t | offset | ) |
Definition at line 336 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PC, and PSW.
void yaze::app::emu::audio::Spc700::BPL | ( | int8_t | offset | ) |
Definition at line 342 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PC, and PSW.
void yaze::app::emu::audio::Spc700::BBS | ( | uint8_t | bit, |
uint8_t | operand ) |
void yaze::app::emu::audio::Spc700::BBC | ( | uint8_t | bit, |
uint8_t | operand ) |
void yaze::app::emu::audio::Spc700::JMP | ( | uint16_t | address | ) |
Definition at line 362 of file instructions.cc.
References PC.
void yaze::app::emu::audio::Spc700::CALL | ( | uint16_t | address | ) |
Definition at line 364 of file instructions.cc.
References PC, SP, and write().
void yaze::app::emu::audio::Spc700::PCALL | ( | uint8_t | offset | ) |
Definition at line 372 of file instructions.cc.
References PC, SP, and write().
void yaze::app::emu::audio::Spc700::TCALL | ( | uint8_t | offset | ) |
Definition at line 380 of file instructions.cc.
References PC, SP, and write().
void yaze::app::emu::audio::Spc700::BRK | ( | ) |
Definition at line 388 of file instructions.cc.
References PC, SP, and write().
void yaze::app::emu::audio::Spc700::RET | ( | ) |
Definition at line 396 of file instructions.cc.
References PC, read(), and SP.
void yaze::app::emu::audio::Spc700::RETI | ( | ) |
Definition at line 402 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::I, PC, PSW, read(), and SP.
void yaze::app::emu::audio::Spc700::PUSH | ( | uint8_t | operand | ) |
void yaze::app::emu::audio::Spc700::POP | ( | uint8_t & | operand | ) |
void yaze::app::emu::audio::Spc700::SET1 | ( | uint8_t | bit, |
uint8_t & | operand ) |
Definition at line 419 of file instructions.cc.
void yaze::app::emu::audio::Spc700::CLR1 | ( | uint8_t | bit, |
uint8_t & | operand ) |
Definition at line 421 of file instructions.cc.
void yaze::app::emu::audio::Spc700::TSET1 | ( | uint8_t | bit, |
uint8_t & | operand ) |
Definition at line 423 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, and PSW.
void yaze::app::emu::audio::Spc700::TCLR1 | ( | uint8_t | bit, |
uint8_t & | operand ) |
Definition at line 428 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, and PSW.
void yaze::app::emu::audio::Spc700::AND1 | ( | uint8_t | bit, |
uint8_t & | operand ) |
Definition at line 433 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PSW, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::OR1 | ( | uint8_t | bit, |
uint8_t & | operand ) |
Definition at line 439 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PSW, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::EOR1 | ( | uint8_t | bit, |
uint8_t & | operand ) |
Definition at line 445 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PSW, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::NOT1 | ( | uint8_t | bit, |
uint8_t & | operand ) |
Definition at line 451 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::N, PSW, and yaze::app::emu::audio::Spc700::Flags::Z.
void yaze::app::emu::audio::Spc700::MOV1 | ( | uint8_t | bit, |
uint8_t & | operand ) |
Definition at line 457 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, and PSW.
void yaze::app::emu::audio::Spc700::CLRC | ( | ) |
Definition at line 462 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, and PSW.
void yaze::app::emu::audio::Spc700::SETC | ( | ) |
Definition at line 464 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, and PSW.
void yaze::app::emu::audio::Spc700::NOTC | ( | ) |
Definition at line 466 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::C, and PSW.
void yaze::app::emu::audio::Spc700::CLRV | ( | ) |
Definition at line 468 of file instructions.cc.
References PSW, and yaze::app::emu::audio::Spc700::Flags::V.
void yaze::app::emu::audio::Spc700::CLRP | ( | ) |
Definition at line 470 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::P, and PSW.
void yaze::app::emu::audio::Spc700::SETP | ( | ) |
Definition at line 472 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::P, and PSW.
void yaze::app::emu::audio::Spc700::EI | ( | ) |
Definition at line 474 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::I, and PSW.
void yaze::app::emu::audio::Spc700::DI | ( | ) |
Definition at line 476 of file instructions.cc.
References yaze::app::emu::audio::Spc700::Flags::I, and PSW.
void yaze::app::emu::audio::Spc700::NOP | ( | ) |
Definition at line 478 of file instructions.cc.
References PC.
void yaze::app::emu::audio::Spc700::SLEEP | ( | ) |
Definition at line 480 of file instructions.cc.
void yaze::app::emu::audio::Spc700::STOP | ( | ) |
Definition at line 482 of file instructions.cc.
|
private |
Definition at line 74 of file spc700.h.
Referenced by abs_x(), abs_y(), CMPM(), DoBranch(), dp_y(), dpx(), ExecuteInstructions(), idx(), idy(), push_byte(), read(), read_word(), ReadOpcode(), RunOpcode(), and write().
|
private |
|
private |
Definition at line 77 of file spc700.h.
Referenced by ExecuteInstructions(), Reset(), and RunOpcode().
|
private |
Definition at line 78 of file spc700.h.
Referenced by Reset(), and RunOpcode().
|
private |
Definition at line 80 of file spc700.h.
Referenced by ExecuteInstructions(), LogInstruction(), ReadOpcode(), and RunOpcode().
|
private |
Definition at line 81 of file spc700.h.
Referenced by ExecuteInstructions(), Reset(), and RunOpcode().
|
private |
|
private |
|
private |
Definition at line 85 of file spc700.h.
Referenced by ExecuteInstructions().
|
private |
uint8_t yaze::app::emu::audio::Spc700::A = 0x00 |
uint8_t yaze::app::emu::audio::Spc700::X = 0x00 |
Definition at line 102 of file spc700.h.
Referenced by abs_x(), addr_plus_i(), addr_plus_i_indexed(), CMPX(), dp_plus_x(), dp_plus_x_indirect(), dpx(), ExecuteInstructions(), i(), i_postinc(), idx(), ind(), ind_ind(), ind_p(), LogInstruction(), MOVSX(), MOVX(), and Reset().
uint8_t yaze::app::emu::audio::Spc700::Y = 0x00 |
Definition at line 103 of file spc700.h.
Referenced by abs_y(), CMPY(), DIV(), dp_indirect_plus_y(), dp_plus_y(), dp_y(), ExecuteInstructions(), idy(), ind_ind(), LogInstruction(), MOVSY(), MOVY(), and Reset().
uint16_t yaze::app::emu::audio::Spc700::YA = 0x00 |
uint16_t yaze::app::emu::audio::Spc700::PC = 0xFFC0 |
Definition at line 105 of file spc700.h.
Referenced by addr_plus_i(), addr_plus_i_indexed(), BBC(), BBS(), BCC(), BCS(), BEQ(), BMI(), BNE(), BPL(), BRA(), BRK(), BVC(), BVS(), CALL(), DoBranch(), dp_indirect_plus_y(), dp_plus_x(), dp_plus_x_indirect(), dp_plus_y(), ExecuteInstructions(), imm(), ind(), ind_ind(), ind_p(), JMP(), NOP(), PCALL(), ReadOpcode(), rel(), Reset(), RET(), RETI(), RunOpcode(), yaze::test::emu::Spc700Test::SetUp(), and TCALL().
uint8_t yaze::app::emu::audio::Spc700::SP = 0x00 |
Definition at line 106 of file spc700.h.
Referenced by BRK(), CALL(), ExecuteInstructions(), PCALL(), POP(), pull_byte(), PUSH(), push_byte(), Reset(), RET(), RETI(), RunOpcode(), and TCALL().
Flags yaze::app::emu::audio::Spc700::PSW |
Definition at line 118 of file spc700.h.
Referenced by ADC(), ADCM(), ADDW(), AND(), AND1(), ANDM(), ASL(), BCC(), BCS(), BEQ(), BMI(), BNE(), BPL(), BVC(), BVS(), CLRC(), CLRP(), CLRV(), CMP(), CMPM(), CMPW(), CMPX(), CMPY(), DEC(), DECW(), DI(), DIV(), dp(), dp_dp(), dp_imm(), dp_plus_x(), dp_plus_y(), dp_word(), dp_y(), dpx(), EI(), EOR(), EOR1(), EORM(), ExecuteInstructions(), i(), i_postinc(), idx(), idy(), INC(), INCW(), ind(), ind_ind(), ind_p(), LSR(), MOV(), MOV1(), MOV_ADDR(), MOVW(), MOVX(), MOVY(), MUL(), NOT1(), NOTC(), OR(), OR1(), ORM(), Reset(), RETI(), ROL(), ROR(), RunOpcode(), SBC(), SBCM(), SETC(), SETP(), SUBW(), TCLR1(), TSET1(), and XCN().