summaryrefslogtreecommitdiff
path: root/disasm.h
diff options
context:
space:
mode:
authormrb0nk500 <b0nk@b0nk.xyz>2020-05-03 15:51:57 -0400
committermrb0nk500 <b0nk@b0nk.xyz>2020-05-03 15:51:57 -0400
commit1c622005c289ef1cd9feea277bd0ff46b19d15f0 (patch)
treeb5258bd461ac2070c39e0eb437da676a10e295c3 /disasm.h
parented88644ded82008577804c590bec7188ef0da011 (diff)
Put the instruction, and I/O routines into separate
functions. I did this to make it more readable, while still making it fast, due to inlining it.
Diffstat (limited to 'disasm.h')
-rw-r--r--disasm.h187
1 files changed, 187 insertions, 0 deletions
diff --git a/disasm.h b/disasm.h
new file mode 100644
index 0000000..8fe2b4c
--- /dev/null
+++ b/disasm.h
@@ -0,0 +1,187 @@
+static const char *opname[0x100] = {
+ [0x00] = "CPS",
+ [0x01] = "ADC #",
+ [0x02] = "AAB",
+ [0x04] = "ADC a",
+ [0x05] = "LDA ind",
+ [0x06] = "ADC zm",
+ [0x08] = "PHP #",
+ [0x09] = "CPB #",
+ [0x0A] = "PHB #",
+ [0x0C] = "DEC a",
+ [0x0D] = "DEC zm",
+ [0x0E] = "JMP zm",
+ [0x10] = "JMP a",
+ [0x11] = "SBC #",
+ [0x12] = "SAB",
+ [0x14] = "SBC a",
+ [0x15] = "STA ind",
+ [0x16] = "SBC zm",
+ [0x18] = "ENT #",
+ [0x19] = "CPY #",
+ [0x1A] = "PLB #",
+ [0x1C] = "INC a",
+ [0x1D] = "INC zm",
+ [0x1E] = "JSR zm",
+ [0x20] = "JSL a",
+ [0x21] = "AND #",
+ [0x22] = "ABA",
+ [0x24] = "AND a",
+ [0x25] = "CMP ind",
+ [0x26] = "AND zm",
+ [0x28] = "PLP #",
+ [0x29] = "CPX #",
+ [0x2A] = "PHY #",
+ [0x2C] = "CPB a",
+ [0x2D] = "CPB zm",
+ [0x2E] = "BPO zm",
+ [0x30] = "BPO a",
+ [0x31] = "ORA #",
+ [0x32] = "OAB",
+ [0x34] = "ORA a",
+ [0x35] = "LDB ind",
+ [0x36] = "ORA zm",
+ [0x38] = "STT #",
+ [0x39] = "LDA zmy",
+ [0x3A] = "PLY #",
+ [0x3C] = "CPX a",
+ [0x3D] = "CPY zm",
+ [0x3E] = "BNG zm",
+ [0x40] = "BNG a",
+ [0x41] = "XOR #",
+ [0x42] = "XAB",
+ [0x44] = "XOR a",
+ [0x45] = "STB ind",
+ [0x46] = "XOR zm",
+ [0x48] = "PHA #",
+ [0x49] = "STA zmy",
+ [0x4A] = "PHX #",
+ [0x4C] = "CPY a",
+ [0x4D] = "CPX zm",
+ [0x4E] = "BCS zm",
+ [0x50] = "BCS a",
+ [0x51] = "LSL #",
+ [0x52] = "LLB",
+ [0x54] = "LSL a",
+ [0x55] = "CPB ind",
+ [0x56] = "LSL zm",
+ [0x58] = "CLC",
+ [0x59] = "LDB zmy",
+ [0x5A] = "PLX #",
+ [0x5C] = "LDA iny",
+ [0x5D] = "LDA inx",
+ [0x5E] = "BCC zm",
+ [0x60] = "BCC a",
+ [0x61] = "LSR #",
+ [0x62] = "LRB",
+ [0x64] = "LSR a",
+ [0x65] = "LDY ind",
+ [0x66] = "LSR zm",
+ [0x68] = "PLA #",
+ [0x69] = "STB zmy",
+ [0x6A] = "TAB",
+ [0x6C] = "STA iny",
+ [0x6D] = "STA inx",
+ [0x6E] = "BEQ zm",
+ [0x70] = "BEQ a",
+ [0x71] = "ROL #",
+ [0x72] = "RLB",
+ [0x74] = "ROL a",
+ [0x75] = "STY ind",
+ [0x76] = "ROL zm",
+ [0x78] = "SEC",
+ [0x79] = "LDA zmx",
+ [0x7A] = "TBA",
+ [0x7C] = "CMP iny",
+ [0x7D] = "CMP inx",
+ [0x7E] = "BNE zm",
+ [0x80] = "BNE a",
+ [0x81] = "ROR #",
+ [0x82] = "RRB",
+ [0x84] = "ROR a",
+ [0x85] = "CPY ind",
+ [0x86] = "ROR zm",
+ [0x88] = "DEY",
+ [0x89] = "STA zmx",
+ [0x8A] = "TAY",
+ [0x8C] = "LDB iny",
+ [0x8D] = "LDB inx",
+ [0x8E] = "BVS zm",
+ [0x90] = "BVS a",
+ [0x91] = "MUL #",
+ [0x92] = "MAB",
+ [0x94] = "MUL a",
+ [0x95] = "LDX ind",
+ [0x96] = "MUL zm",
+ [0x98] = "CLI",
+ [0x99] = "LDB zmx",
+ [0x9A] = "TYA",
+ [0x9C] = "STB iny",
+ [0x9D] = "STB inx",
+ [0x9E] = "BVC zm",
+ [0xA0] = "BVC a",
+ [0xA1] = "DIV #",
+ [0xA2] = "DAB",
+ [0xA4] = "DIV a",
+ [0xA5] = "STX ind",
+ [0xA6] = "DIV zm",
+ [0xA8] = "INY",
+ [0xA9] = "STB zmx",
+ [0xAA] = "TAX",
+ [0xAC] = "CPB iny",
+ [0xAD] = "CPB inx",
+ [0xAE] = "RTS",
+ [0xB0] = "RTL",
+ [0xB1] = "CMP #",
+ [0xB2] = "CAB",
+ [0xB4] = "CMP a",
+ [0xB5] = "CPX ind",
+ [0xB6] = "CMP zm",
+ [0xB8] = "SEI",
+ [0xB9] = "LDX #",
+ [0xBA] = "TXA",
+ [0xBC] = "LDX a",
+ [0xBD] = "LDX zm",
+ [0xBE] = "JSR ind",
+ [0xC0] = "RTI",
+ [0xC1] = "LDA #",
+ [0xC4] = "LDA a",
+ [0xC5] = "DEX",
+ [0xC6] = "LDA zm",
+ [0xC8] = "CLV",
+ [0xC9] = "LDX zmy",
+ [0xCA] = "TYX",
+ [0xCC] = "STA a",
+ [0xCD] = "STA zm",
+ [0xCE] = "JMP ind",
+ [0xD0] = "TSX",
+ [0xD1] = "LDB #",
+ [0xD4] = "LDB a",
+ [0xD5] = "INX",
+ [0xD6] = "LDB zm",
+ [0xD8] = "WAI",
+ [0xD9] = "STX zmy",
+ [0xDA] = "TXY",
+ [0xDC] = "STB a",
+ [0xDD] = "STB zm",
+ [0xE0] = "TXS #",
+ [0xE1] = "LDY #",
+ [0xE4] = "LDY a",
+ [0xE5] = "DEC A",
+ [0xE6] = "LDY zm",
+ [0xE8] = "BRK",
+ [0xE9] = "LDY zmx",
+ [0xEA] = "NOP",
+ [0xEC] = "STY a",
+ [0xED] = "STY zm",
+ [0xEE] = "DEB",
+ [0xF1] = "ASR #",
+ [0xF2] = "ARB",
+ [0xF4] = "ASR a",
+ [0xF5] = "INC A",
+ [0xF6] = "ASR zm",
+ [0xF9] = "STY zmx",
+ [0xFC] = "STX a",
+ [0xFD] = "STX zm",
+ [0xFE] = "INB"
+};