/* * Rockwell C39 processor module for IDA. * Copyright (c) 2000-2006 Konstantin Norvatoff, * 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);