129 lines
5.4 KiB
C++
129 lines
5.4 KiB
C++
/*
|
|
* Rockwell C39 processor module for IDA.
|
|
* Copyright (c) 2000-2006 Konstantin Norvatoff, <konnor@bk.ru>
|
|
* Freeware.
|
|
*/
|
|
|
|
#include "c39.hpp"
|
|
|
|
const instruc_t Instructions[] =
|
|
{
|
|
{ "", 0 },
|
|
{ "ADC", CF_USE1 },
|
|
{ "ADD", CF_USE1 },
|
|
{ "ANC", CF_USE1 },
|
|
{ "AND", CF_USE1 },
|
|
{ "ANE", CF_USE1 },
|
|
{ "ARR", CF_USE1 },
|
|
{ "ASL", 0 },
|
|
{ "ASR", CF_USE1 },
|
|
{ "BAR", CF_USE1|CF_USE2|CF_USE3 },
|
|
{ "BAS", CF_USE1|CF_USE2|CF_USE3 },
|
|
{ "BBR", CF_USE1|CF_USE2|CF_USE3|CF_JUMP },
|
|
{ "BBS", CF_USE1|CF_USE2|CF_USE3|CF_JUMP },
|
|
{ "BCC", CF_USE1|CF_JUMP },
|
|
{ "BCS", CF_USE1|CF_JUMP },
|
|
{ "BEQ", CF_USE1|CF_JUMP },
|
|
{ "BIT", CF_USE1 },
|
|
{ "BMI", CF_USE1|CF_JUMP },
|
|
{ "BNE", CF_USE1|CF_JUMP },
|
|
{ "BPL", CF_USE1|CF_JUMP },
|
|
{ "BRA", CF_USE1|CF_JUMP|CF_STOP },
|
|
{ "BRK", CF_STOP },
|
|
{ "BVC", CF_USE1|CF_JUMP },
|
|
{ "BVS", CF_USE1|CF_JUMP },
|
|
{ "CLC", 0 },
|
|
{ "CLD", 0 },
|
|
{ "CLI", 0 },
|
|
{ "CLV", 0 },
|
|
{ "CLW", 0 },
|
|
{ "CMP", CF_USE1 },
|
|
{ "CPX", CF_USE1 },
|
|
{ "CPY", CF_USE1 },
|
|
{ "DCP", CF_USE1|CF_CHG1 },
|
|
{ "DEC", CF_USE1|CF_CHG1 },
|
|
{ "DEX", 0 },
|
|
{ "DEY", 0 },
|
|
{ "EOR", CF_USE1 },
|
|
{ "EXC", CF_USE1 },
|
|
{ "INC", CF_USE1|CF_CHG1 },
|
|
{ "INI", 0 },
|
|
{ "INX", 0 },
|
|
{ "INY", 0 },
|
|
{ "ISB", CF_USE1|CF_CHG1 },
|
|
{ "JMP", CF_USE1|CF_STOP|CF_JUMP },
|
|
{ "JPI", CF_USE1|CF_STOP|CF_JUMP },
|
|
{ "JSB", CF_USE1|CF_CALL },
|
|
{ "JSR", CF_USE1|CF_CALL },
|
|
{ "LAB", CF_USE1 },
|
|
{ "LAE", CF_USE1 },
|
|
{ "LAI", 0 },
|
|
{ "LAN", 0 },
|
|
{ "LAX", CF_USE1 },
|
|
{ "LDA", CF_USE1 },
|
|
{ "LDX", CF_USE1 },
|
|
{ "LDY", CF_USE1 },
|
|
{ "LII", 0 },
|
|
{ "LSR", 0 },
|
|
{ "LXA", CF_USE1 },
|
|
{ "MPA", 0 },
|
|
{ "MPY", 0 },
|
|
{ "NEG", CF_USE1 },
|
|
{ "NOP", 0 },
|
|
{ "NXT", 0 },
|
|
{ "ORA", CF_USE1 },
|
|
{ "PHA", 0 },
|
|
{ "PHI", 0 },
|
|
{ "PHP", 0 },
|
|
{ "PHW", 0 },
|
|
{ "PHX", 0 },
|
|
{ "PHY", 0 },
|
|
{ "PIA", 0 },
|
|
{ "PLA", 0 },
|
|
{ "PLI", 0 },
|
|
{ "PLP", 0 },
|
|
{ "PLW", 0 },
|
|
{ "PLX", 0 },
|
|
{ "PLY", 0 },
|
|
{ "PSH", 0 },
|
|
{ "PUL", 0 },
|
|
{ "RBA", CF_USE1|CF_USE2 },
|
|
{ "RLA", CF_USE1|CF_CHG1 },
|
|
{ "RMB", CF_USE1|CF_USE2 },
|
|
{ "RND", 0 },
|
|
{ "ROL", 0 },
|
|
{ "ROR", 0 },
|
|
{ "RRA", CF_USE1|CF_CHG1 },
|
|
{ "RTI", CF_STOP },
|
|
{ "RTS", CF_STOP },
|
|
{ "SAX", CF_CHG1 },
|
|
{ "SBA", CF_USE1|CF_USE2 },
|
|
{ "SBC", CF_USE1 },
|
|
{ "SBX", CF_USE1 },
|
|
{ "SEC", 0 },
|
|
{ "SED", 0 },
|
|
{ "SEI", 0 },
|
|
{ "SHA", CF_CHG1 },
|
|
{ "SHS", CF_CHG1 },
|
|
{ "SHX", CF_CHG1 },
|
|
{ "SHY", CF_CHG1 },
|
|
{ "SLO", CF_USE1|CF_CHG1 },
|
|
{ "SMB", CF_USE1|CF_USE2|CF_CHG2 },
|
|
{ "SRE", CF_USE1|CF_CHG1 },
|
|
{ "STA", CF_CHG1 },
|
|
{ "STI", CF_USE1|CF_USE2 },
|
|
{ "STX", CF_CHG1 },
|
|
{ "STY", CF_CHG1 },
|
|
{ "TAX", 0 },
|
|
{ "TAY", 0 },
|
|
{ "TAW", 0 },
|
|
{ "TIP", 0 },
|
|
{ "TSX", 0 },
|
|
{ "TWA", 0 },
|
|
{ "TXA", 0 },
|
|
{ "TXS", 0 },
|
|
{ "TYA", 0 }
|
|
};
|
|
|
|
CASSERT(qnumber(Instructions) == C39_last);
|