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