#include #include #include "instruction.hh" #include "mneumonic.hh" namespace tostring { const std::unordered_map op { {op::ADC, mneumonic::op::ADC}, {op::AND, mneumonic::op::AND}, {op::ASL, mneumonic::op::ASL}, {op::BBR0, mneumonic::op::BBR0}, {op::BBR1, mneumonic::op::BBR1}, {op::BBR2, mneumonic::op::BBR2}, {op::BBR3, mneumonic::op::BBR3}, {op::BBR4, mneumonic::op::BBR4}, {op::BBR5, mneumonic::op::BBR5}, {op::BBR6, mneumonic::op::BBR6}, {op::BBR7, mneumonic::op::BBR7}, {op::BBS0, mneumonic::op::BBS0}, {op::BBS1, mneumonic::op::BBS1}, {op::BBS2, mneumonic::op::BBS2}, {op::BBS3, mneumonic::op::BBS3}, {op::BBS4, mneumonic::op::BBS4}, {op::BBS5, mneumonic::op::BBS5}, {op::BBS6, mneumonic::op::BBS6}, {op::BBS7, mneumonic::op::BBS7}, {op::BCC, mneumonic::op::BCC}, {op::BCS, mneumonic::op::BCS}, {op::BEQ, mneumonic::op::BEQ}, {op::BIT, mneumonic::op::BIT}, {op::BMI, mneumonic::op::BMI}, {op::BNE, mneumonic::op::BNE}, {op::BPL, mneumonic::op::BPL}, {op::BRA, mneumonic::op::BRA}, {op::BRK, mneumonic::op::BRK}, {op::BVC, mneumonic::op::BVC}, {op::BVS, mneumonic::op::BVS}, {op::CLC, mneumonic::op::CLC}, {op::CLD, mneumonic::op::CLD}, {op::CLI, mneumonic::op::CLI}, {op::CLV, mneumonic::op::CLV}, {op::CMP, mneumonic::op::CMP}, {op::CPX, mneumonic::op::CPX}, {op::CPY, mneumonic::op::CPY}, {op::DEC, mneumonic::op::DEC}, {op::DEX, mneumonic::op::DEX}, {op::DEY, mneumonic::op::DEY}, {op::EOR, mneumonic::op::EOR}, {op::INC, mneumonic::op::INC}, {op::INX, mneumonic::op::INX}, {op::INY, mneumonic::op::INY}, {op::JMP, mneumonic::op::JMP}, {op::JSR, mneumonic::op::JSR}, {op::LDA, mneumonic::op::LDA}, {op::LDX, mneumonic::op::LDX}, {op::LDY, mneumonic::op::LDY}, {op::LSR, mneumonic::op::LSR}, {op::NOP, mneumonic::op::NOP}, {op::ORA, mneumonic::op::ORA}, {op::PHA, mneumonic::op::PHA}, {op::PHP, mneumonic::op::PHP}, {op::PHX, mneumonic::op::PHX}, {op::PHY, mneumonic::op::PHY}, {op::PLA, mneumonic::op::PLA}, {op::PLP, mneumonic::op::PLP}, {op::PLX, mneumonic::op::PLX}, {op::PLY, mneumonic::op::PLY}, {op::RMB0, mneumonic::op::RMB0}, {op::RMB1, mneumonic::op::RMB1}, {op::RMB2, mneumonic::op::RMB2}, {op::RMB3, mneumonic::op::RMB3}, {op::RMB4, mneumonic::op::RMB4}, {op::RMB5, mneumonic::op::RMB5}, {op::RMB6, mneumonic::op::RMB6}, {op::RMB7, mneumonic::op::RMB7}, {op::ROL, mneumonic::op::ROL}, {op::ROR, mneumonic::op::ROR}, {op::RTI, mneumonic::op::RTI}, {op::RTS, mneumonic::op::RTS}, {op::SBC, mneumonic::op::SBC}, {op::SEC, mneumonic::op::SEC}, {op::SED, mneumonic::op::SED}, {op::SEI, mneumonic::op::SEI}, {op::SMB0, mneumonic::op::SMB0}, {op::SMB1, mneumonic::op::SMB1}, {op::SMB2, mneumonic::op::SMB2}, {op::SMB3, mneumonic::op::SMB3}, {op::SMB4, mneumonic::op::SMB4}, {op::SMB5, mneumonic::op::SMB5}, {op::SMB6, mneumonic::op::SMB6}, {op::SMB7, mneumonic::op::SMB7}, {op::STA, mneumonic::op::STA}, {op::STP, mneumonic::op::STP}, {op::STX, mneumonic::op::STX}, {op::STY, mneumonic::op::STY}, {op::STZ, mneumonic::op::STZ}, {op::TAX, mneumonic::op::TAX}, {op::TAY, mneumonic::op::TAY}, {op::TRB, mneumonic::op::TRB}, {op::TSB, mneumonic::op::TSB}, {op::TSX, mneumonic::op::TSX}, {op::TXA, mneumonic::op::TXA}, {op::TXS, mneumonic::op::TXS}, {op::TYA, mneumonic::op::TYA}, {op::WAI, mneumonic::op::WAI}, }; const std::unordered_map mode { {mode::A, mneumonic::mode::A}, {mode::AII, mneumonic::mode::AII}, {mode::AIX, mneumonic::mode::AIX}, {mode::AIY, mneumonic::mode::AIY}, {mode::AI, mneumonic::mode::AI}, {mode::ACC, mneumonic::mode::ACC}, {mode::IMM, mneumonic::mode::IMM}, {mode::I, mneumonic::mode::I}, {mode::R, mneumonic::mode::R}, {mode::S, mneumonic::mode::S}, {mode::ZP, mneumonic::mode::ZP}, {mode::ZPII, mneumonic::mode::ZPII}, {mode::ZPX, mneumonic::mode::ZPX}, {mode::ZPY, mneumonic::mode::ZPY}, {mode::ZPI, mneumonic::mode::ZPI}, {mode::ZPIY, mneumonic::mode::ZPIY}, }; }