1pub fn instruction_str(opcode: u8) -> &'static str { 2 match opcode { 3 0x00 => "BRK", 4 0x01 => "ORA ($xx,X)", 5 0x02 => "COP", 6 0x03 => "ORA $xx,S", 7 0x04 => "TSB $xx", 8 0x05 => "ORA $xx", 9 0x06 => "ASL $xx", 10 0x07 => "ORA [$xx]", 11 0x08 => "PHP", 12 0x09 => "ORA #<d>", 13 0x0A => "ASL A", 14 0x0B => "PHD", 15 0x0C => "TSB $xxxx", 16 0x0D => "ORA $xxxx", 17 0x0E => "ASL $xxxx", 18 0x0F => "ORA $xxxxxx", 19 0x10 => "BPL #<d>", 20 0x11 => "ORA ($xx),Y", 21 0x12 => "ORA ($xx)", 22 0x13 => "ORA ($xx,S),Y", 23 0x14 => "TRB $xx", 24 0x15 => "ORA $xx,X", 25 0x16 => "ASL $xx,X", 26 0x17 => "ORA [$xx],Y", 27 0x18 => "CLC", 28 0x19 => "ORA $xxxx,Y", 29 0x1A => "INC A", 30 0x1B => "TCS", 31 0x1C => "TRB $xxxx", 32 0x1D => "ORA $xxxx,X", 33 0x1E => "ASL $xxxx,X", 34 0x1F => "ORA $xxxxxx,X", 35 0x20 => "JSR $xxxx", 36 0x21 => "AND ($xx,X)", 37 0x22 => "JSL $xxxxxx", 38 0x23 => "AND $xx,S", 39 0x24 => "BIT $xx", 40 0x25 => "AND $xx", 41 0x26 => "ROL $xx", 42 0x27 => "AND [$xx]", 43 0x28 => "PLP", 44 0x29 => "AND #<d>", 45 0x2A => "ROL A", 46 0x2B => "PLD", 47 0x2C => "BIT $xxxx", 48 0x2D => "AND $xxxx", 49 0x2E => "ROL $xxxx", 50 0x2F => "AND $xxxxxx", 51 0x30 => "BMI #<d>", 52 0x31 => "AND ($xx),Y", 53 0x32 => "AND ($xx)", 54 0x33 => "AND ($xx,S),Y", 55 0x34 => "BIT $xx,X", 56 0x35 => "AND $xx,X", 57 0x36 => "ROL $xx,X", 58 0x37 => "AND [$xx],Y", 59 0x38 => "SEC", 60 0x39 => "AND $xxxx,Y", 61 0x3A => "DEC A", 62 0x3B => "TSC", 63 0x3C => "BIT $xxxx,X", 64 0x3D => "AND $xxxx,X", 65 0x3E => "ROL $xxxx,X", 66 0x3F => "AND $xxxxxx,X", 67 0x40 => "RTI", 68 0x41 => "EOR ($xx,X)", 69 0x42 => "WDM", 70 0x43 => "EOR $xx,S", 71 0x44 => "MVP", 72 0x45 => "EOR $xx", 73 0x46 => "LSR $xx", 74 0x47 => "EOR [$xx]", 75 0x48 => "PHA", 76 0x49 => "EOR #<d>", 77 0x4A => "LSR A", 78 0x4B => "PHK", 79 0x4C => "JMP $xxxx", 80 0x4D => "EOR $xxxx", 81 0x4E => "LSR $xxxx", 82 0x4F => "EOR $xxxxxx", 83 0x50 => "BVC #<d>", 84 0x51 => "EOR ($xx),Y", 85 0x52 => "EOR ($xx)", 86 0x53 => "EOR ($xx,S),Y", 87 0x54 => "MVN", 88 0x55 => "EOR $xx,X", 89 0x56 => "LSR $xx,X", 90 0x57 => "EOR [$xx],Y", 91 0x58 => "CLI", 92 0x59 => "EOR $xxxx,Y", 93 0x5A => "PHY", 94 0x5B => "TCD", 95 0x5C => "JMP $xxxxxx", 96 0x5D => "EOR $xxxx,X", 97 0x5E => "LSR $xxxx,X", 98 0x5F => "EOR $xxxxxx,X", 99 0x60 => "RTS", 100 0x61 => "ADC ($xx,X)", 101 0x62 => "PER #<d>", 102 0x63 => "ADC $xx,S", 103 0x64 => "STZ $xx", 104 0x65 => "ADC $xx", 105 0x66 => "ROR $xx", 106 0x67 => "ADC [$xx]", 107 0x68 => "PLA", 108 0x69 => "ADC #<d>", 109 0x6A => "ROR A", 110 0x6B => "RTL", 111 0x6C => "JMP ($xxxx)", 112 0x6D => "ADC $xxxx", 113 0x6E => "ROR $xxxx", 114 0x6F => "ADC $xxxxxx", 115 0x70 => "BVS #<d>", 116 0x71 => "ADC ($xx),Y", 117 0x72 => "ADC ($xx)", 118 0x73 => "ADC ($xx,S),Y", 119 0x74 => "STZ $xx,X", 120 0x75 => "ADC $xx,X", 121 0x76 => "ROR $xx,X", 122 0x77 => "ADC [$xx],Y", 123 0x78 => "SEI", 124 0x79 => "ADC $xxxx,Y", 125 0x7A => "PLY", 126 0x7B => "TDC", 127 0x7C => "JMP ($xxxx,X)", 128 0x7D => "ADC $xxxx,X", 129 0x7E => "ROR $xxxx,X", 130 0x7F => "ADC $xxxxxx,X", 131 0x80 => "BRA #<d>", 132 0x81 => "STA ($xx,X)", 133 0x82 => "BRL #<d>", 134 0x83 => "STA $xx,S", 135 0x84 => "STY $xx", 136 0x85 => "STA $xx", 137 0x86 => "STX $xx", 138 0x87 => "STA [$xx]", 139 0x88 => "DEY", 140 0x89 => "BIT #<d>", 141 0x8A => "TXA", 142 0x8B => "PHB", 143 0x8C => "STY $xxxx", 144 0x8D => "STA $xxxx", 145 0x8E => "STX $xxxx", 146 0x8F => "STA $xxxxxx", 147 0x90 => "BCC #<d>", 148 0x91 => "STA ($xx),Y", 149 0x92 => "STA ($xx)", 150 0x93 => "STA ($xx,S),Y", 151 0x94 => "STY $xx,X", 152 0x95 => "STA $xx,X", 153 0x96 => "STX $xx,Y", 154 0x97 => "STA [$xx],Y", 155 0x98 => "TYA", 156 0x99 => "STA $xxxx,Y", 157 0x9A => "TXS", 158 0x9B => "TXY", 159 0x9C => "STZ $xxxx", 160 0x9D => "STA $xxxx,X", 161 0x9E => "STZ $xxxx,X", 162 0x9F => "STA $xxxxxx,X", 163 0xA0 => "LDY #<d>", 164 0xA1 => "LDA ($xx,X)", 165 0xA2 => "LDX #<d>", 166 0xA3 => "LDA $xx,S", 167 0xA4 => "LDY $xx", 168 0xA5 => "LDA $xx", 169 0xA6 => "LDX $xx", 170 0xA7 => "LDA [$xx]", 171 0xA8 => "TAY", 172 0xA9 => "LDA #<d>", 173 0xAA => "TAX", 174 0xAB => "PLB", 175 0xAC => "LDY $xxxx", 176 0xAD => "LDA $xxxx", 177 0xAE => "LDX $xxxx", 178 0xAF => "LDA $xxxxxx", 179 0xB0 => "BCS #<d>", 180 0xB1 => "LDA ($xx),Y", 181 0xB2 => "LDA ($xx)", 182 0xB3 => "LDA ($xx,S),Y", 183 0xB4 => "LDY $xx,X", 184 0xB5 => "LDA $xx,X", 185 0xB6 => "LDX $xx,Y", 186 0xB7 => "LDA [$xx],Y", 187 0xB8 => "CLV", 188 0xB9 => "LDA $xxxx,Y", 189 0xBA => "TSX", 190 0xBB => "TYX", 191 0xBC => "LDY $xxxx,X", 192 0xBD => "LDA $xxxx,X", 193 0xBE => "LDX $xxxx,Y", 194 0xBF => "LDA $xxxxxx,X", 195 0xC0 => "CPY #<d>", 196 0xC1 => "CMP ($xx,X)", 197 0xC2 => "REP #<d>", 198 0xC3 => "CMP $xx,S", 199 0xC4 => "CPY $xx", 200 0xC5 => "CMP $xx", 201 0xC6 => "DEC $xx", 202 0xC7 => "CMP [$xx]", 203 0xC8 => "INY", 204 0xC9 => "CMP #<d>", 205 0xCA => "DEX", 206 0xCB => "WAI", 207 0xCC => "CPY $xxxx", 208 0xCD => "CMP $xxxx", 209 0xCE => "DEC $xxxx", 210 0xCF => "CMP $xxxxxx", 211 0xD0 => "BNE #<d>", 212 0xD1 => "CMP ($xx),Y", 213 0xD2 => "CMP ($xx)", 214 0xD3 => "CMP ($xx,S),Y", 215 0xD4 => "PEI ($xx)", 216 0xD5 => "CMP $xx,X", 217 0xD6 => "DEC $xx,X", 218 0xD7 => "CMP [$xx],Y", 219 0xD8 => "CLD", 220 0xD9 => "CMP $xxxx,Y", 221 0xDA => "PHX", 222 0xDB => "STP", 223 0xDC => "JMP [$xxxx]", 224 0xDD => "CMP $xxxx,X", 225 0xDE => "DEC $xxxx,X", 226 0xDF => "CMP $xxxxxx,X", 227 0xE0 => "CPX #<d>", 228 0xE1 => "SBC ($xx,X)", 229 0xE2 => "SEP #<d>", 230 0xE3 => "SBC $xx,S", 231 0xE4 => "CPX $xx", 232 0xE5 => "SBC $xx", 233 0xE6 => "INC $xx", 234 0xE7 => "SBC [$xx]", 235 0xE8 => "INX", 236 0xE9 => "SBC #<d>", 237 0xEA => "NOP", 238 0xEB => "XBA", 239 0xEC => "CPX $xxxx", 240 0xED => "SBC $xxxx", 241 0xEE => "INC $xxxx", 242 0xEF => "SBC $xxxxxx", 243 0xF0 => "BEQ #<d>", 244 0xF1 => "SBC ($xx),Y", 245 0xF2 => "SBC ($xx)", 246 0xF3 => "SBC ($xx,S),Y", 247 0xF4 => "PEA $xxxx", 248 0xF5 => "SBC $xx,X", 249 0xF6 => "INC $xx,X", 250 0xF7 => "SBC [$xx],Y", 251 0xF8 => "SED", 252 0xF9 => "SBC $xxxx,Y", 253 0xFA => "PLX", 254 0xFB => "XCE", 255 0xFC => "JSR ($xxxx,X)", 256 0xFD => "SBC $xxxx,X", 257 0xFE => "INC $xxxx,X", 258 0xFF => "SBC $xxxxxx,X", 259 } 260}