bsnes/higan/processor/gsu/gsu.hpp

86 lines
2.7 KiB
C++

#pragma once
namespace Processor {
struct GSU {
#include "registers.hpp"
virtual auto step(uint clocks) -> void = 0;
virtual auto stop() -> void = 0;
virtual auto color(uint8 source) -> uint8 = 0;
virtual auto plot(uint8 x, uint8 y) -> void = 0;
virtual auto rpix(uint8 x, uint8 y) -> uint8 = 0;
virtual auto pipe() -> uint8 = 0;
virtual auto syncROMBuffer() -> void = 0;
virtual auto readROMBuffer() -> uint8 = 0;
virtual auto syncRAMBuffer() -> void = 0;
virtual auto readRAMBuffer(uint16 addr) -> uint8 = 0;
virtual auto writeRAMBuffer(uint16 addr, uint8 data) -> void = 0;
virtual auto flushCache() -> void = 0;
virtual auto read(uint24 addr, uint8 data = 0x00) -> uint8 = 0;
virtual auto write(uint24 addr, uint8 data) -> void = 0;
//gsu.cpp
auto power() -> void;
//instructions.cpp
auto instructionADD_ADC(uint n) -> void;
auto instructionALT1() -> void;
auto instructionALT2() -> void;
auto instructionALT3() -> void;
auto instructionAND_BIC(uint n) -> void;
auto instructionASR_DIV2() -> void;
auto instructionBranch(bool c) -> void;
auto instructionCACHE() -> void;
auto instructionCOLOR_CMODE() -> void;
auto instructionDEC(uint n) -> void;
auto instructionFMULT_LMULT() -> void;
auto instructionFROM_MOVES(uint n) -> void;
auto instructionGETB() -> void;
auto instructionGETC_RAMB_ROMB() -> void;
auto instructionHIB() -> void;
auto instructionIBT_LMS_SMS(uint n) -> void;
auto instructionINC(uint n) -> void;
auto instructionIWT_LM_SM(uint n) -> void;
auto instructionJMP_LJMP(uint n) -> void;
auto instructionLINK(uint n) -> void;
auto instructionLoad(uint n) -> void;
auto instructionLOB() -> void;
auto instructionLOOP() -> void;
auto instructionLSR() -> void;
auto instructionMERGE() -> void;
auto instructionMULT_UMULT(uint n) -> void;
auto instructionNOP() -> void;
auto instructionNOT() -> void;
auto instructionOR_XOR(uint n) -> void;
auto instructionPLOT_RPIX() -> void;
auto instructionROL() -> void;
auto instructionROR() -> void;
auto instructionSBK() -> void;
auto instructionSEX() -> void;
auto instructionStore(uint n) -> void;
auto instructionSTOP() -> void;
auto instructionSUB_SBC_CMP(uint n) -> void;
auto instructionSWAP() -> void;
auto instructionTO_MOVE(uint n) -> void;
auto instructionWITH(uint n) -> void;
//switch.cpp
auto instruction(uint8 opcode) -> void;
//serialization.cpp
auto serialize(serializer&) -> void;
//disassembler.cpp
auto disassembleOpcode(char* output) -> void;
auto disassembleALT0(char* output) -> void;
auto disassembleALT1(char* output) -> void;
auto disassembleALT2(char* output) -> void;
auto disassembleALT3(char* output) -> void;
};
}