Coverage for MC6809/components/MC6809data/MC6809_op_data.py: 100%

25 statements  

« prev     ^ index     » next       coverage.py v7.2.1, created at 2023-03-06 19:50 +0100

1#!/usr/bin/env python 

2 

3""" 

4 6809 instruction set data 

5 ~~~~~~~~~~~~~~~~~~~~~~~~~ 

6 

7 merged data from: 

8 * http://www.maddes.net/m6809pm/sections.htm#sec4_4 

9 * http://www.burgins.com/m6809.html 

10 * http://www.maddes.net/m6809pm/appendix_a.htm#appA 

11 

12 Note: 

13 * read_from_memory: it's "excluded" the address modes routines. 

14 So if the address mode will fetch the memory to get the 

15 effective address, but the content of the memory is not needed in 

16 the instruction them self, the read_from_memory must be set to False. 

17 

18 Generated data is online here: 

19 https://docs.google.com/spreadsheet/ccc?key=0Alhtym6D6yKjdFBtNmF0UVR5OW05S3psaURnUTNtSFE 

20 

21 :copyleft: 2013-2014 by Jens Diemer 

22 :license: GNU GPL v3 or above, see LICENSE for more details. 

23""" 

24 

25 

26BYTE = "8" 

27WORD = "16" 

28 

29 

30# Address modes: 

31DIRECT = "DIRECT" 

32DIRECT_WORD = "DIRECT_WORD" 

33EXTENDED = "EXTENDED" 

34EXTENDED_WORD = "EXTENDED_WORD" 

35IMMEDIATE = "IMMEDIATE" 

36IMMEDIATE_WORD = "IMMEDIATE_WORD" 

37INDEXED = "INDEXED" 

38INDEXED_WORD = "INDEXED_WORD" 

39INHERENT = "INHERENT" 

40RELATIVE = "RELATIVE" 

41RELATIVE_WORD = "RELATIVE_WORD" 

42 

43 

44# Registers: 

45REG_A = "A" 

46REG_B = "B" 

47REG_CC = "CC" 

48REG_D = "D" 

49REG_DP = "DP" 

50REG_PC = "PC" 

51REG_S = "S" 

52REG_U = "U" 

53REG_X = "X" 

54REG_Y = "Y" 

55 

56 

57OP_DATA = {'ABX': {'mnemonic': {'ABX': {'needs_ea': False, 

58 'ops': {0x3a: {'addr_mode': INHERENT, 

59 'bytes': 1, 

60 'cycles': 3}}, 

61 'read_from_memory': None, 

62 'register': None, 

63 'write_to_memory': None}}}, 

64 'ADC': {'mnemonic': {'ADCA': {'needs_ea': False, 

65 'ops': {0x89: {'addr_mode': IMMEDIATE, 

66 'bytes': 2, 

67 'cycles': 2}, 

68 0x99: {'addr_mode': DIRECT, 

69 'bytes': 2, 

70 'cycles': 4}, 

71 0xa9: {'addr_mode': INDEXED, 

72 'bytes': 2, 

73 'cycles': 4}, 

74 0xb9: {'addr_mode': EXTENDED, 

75 'bytes': 3, 

76 'cycles': 5}}, 

77 'read_from_memory': BYTE, 

78 'register': REG_A, 

79 'write_to_memory': None}, 

80 'ADCB': {'needs_ea': False, 

81 'ops': {0xc9: {'addr_mode': IMMEDIATE, 

82 'bytes': 2, 

83 'cycles': 2}, 

84 0xd9: {'addr_mode': DIRECT, 

85 'bytes': 2, 

86 'cycles': 4}, 

87 0xe9: {'addr_mode': INDEXED, 

88 'bytes': 2, 

89 'cycles': 4}, 

90 0xf9: {'addr_mode': EXTENDED, 

91 'bytes': 3, 

92 'cycles': 5}}, 

93 'read_from_memory': BYTE, 

94 'register': REG_B, 

95 'write_to_memory': None}}}, 

96 'ADD': {'mnemonic': {'ADDA': {'needs_ea': False, 

97 'ops': {0x8b: {'addr_mode': IMMEDIATE, 

98 'bytes': 2, 

99 'cycles': 2}, 

100 0x9b: {'addr_mode': DIRECT, 

101 'bytes': 2, 

102 'cycles': 4}, 

103 0xab: {'addr_mode': INDEXED, 

104 'bytes': 2, 

105 'cycles': 4}, 

106 0xbb: {'addr_mode': EXTENDED, 

107 'bytes': 3, 

108 'cycles': 5}}, 

109 'read_from_memory': BYTE, 

110 'register': REG_A, 

111 'write_to_memory': None}, 

112 'ADDB': {'needs_ea': False, 

113 'ops': {0xcb: {'addr_mode': IMMEDIATE, 

114 'bytes': 2, 

115 'cycles': 2}, 

116 0xdb: {'addr_mode': DIRECT, 

117 'bytes': 2, 

118 'cycles': 4}, 

119 0xeb: {'addr_mode': INDEXED, 

120 'bytes': 2, 

121 'cycles': 4}, 

122 0xfb: {'addr_mode': EXTENDED, 

123 'bytes': 3, 

124 'cycles': 5}}, 

125 'read_from_memory': BYTE, 

126 'register': REG_B, 

127 'write_to_memory': None}, 

128 'ADDD': {'needs_ea': False, 

129 'ops': {0xc3: {'addr_mode': IMMEDIATE_WORD, 

130 'bytes': 3, 

131 'cycles': 4}, 

132 0xd3: {'addr_mode': DIRECT_WORD, 

133 'bytes': 2, 

134 'cycles': 6}, 

135 0xe3: {'addr_mode': INDEXED_WORD, 

136 'bytes': 2, 

137 'cycles': 6}, 

138 0xf3: {'addr_mode': EXTENDED_WORD, 

139 'bytes': 3, 

140 'cycles': 7}}, 

141 'read_from_memory': WORD, 

142 'register': REG_D, 

143 'write_to_memory': None}}}, 

144 'AND': {'mnemonic': {'ANDA': {'needs_ea': False, 

145 'ops': {0x84: {'addr_mode': IMMEDIATE, 

146 'bytes': 2, 

147 'cycles': 2}, 

148 0x94: {'addr_mode': DIRECT, 

149 'bytes': 2, 

150 'cycles': 4}, 

151 0xa4: {'addr_mode': INDEXED, 

152 'bytes': 2, 

153 'cycles': 4}, 

154 0xb4: {'addr_mode': EXTENDED, 

155 'bytes': 3, 

156 'cycles': 5}}, 

157 'read_from_memory': BYTE, 

158 'register': REG_A, 

159 'write_to_memory': None}, 

160 'ANDB': {'needs_ea': False, 

161 'ops': {0xc4: {'addr_mode': IMMEDIATE, 

162 'bytes': 2, 

163 'cycles': 2}, 

164 0xd4: {'addr_mode': DIRECT, 

165 'bytes': 2, 

166 'cycles': 4}, 

167 0xe4: {'addr_mode': INDEXED, 

168 'bytes': 2, 

169 'cycles': 4}, 

170 0xf4: {'addr_mode': EXTENDED, 

171 'bytes': 3, 

172 'cycles': 5}}, 

173 'read_from_memory': BYTE, 

174 'register': REG_B, 

175 'write_to_memory': None}, 

176 'ANDCC': {'needs_ea': False, 

177 'ops': {0x1c: {'addr_mode': IMMEDIATE, 

178 'bytes': 2, 

179 'cycles': 3}}, 

180 'read_from_memory': BYTE, 

181 'register': REG_CC, 

182 'write_to_memory': None}}}, 

183 'ASR': {'mnemonic': {'ASR': {'needs_ea': True, 

184 'ops': {0x07: {'addr_mode': DIRECT, 

185 'bytes': 2, 

186 'cycles': 6}, 

187 0x67: {'addr_mode': INDEXED, 

188 'bytes': 2, 

189 'cycles': 6}, 

190 0x77: {'addr_mode': EXTENDED, 

191 'bytes': 3, 

192 'cycles': 7}}, 

193 'read_from_memory': BYTE, 

194 'register': None, 

195 'write_to_memory': BYTE}, 

196 'ASRA': {'needs_ea': False, 

197 'ops': {0x47: {'addr_mode': INHERENT, 

198 'bytes': 1, 

199 'cycles': 2}}, 

200 'read_from_memory': None, 

201 'register': REG_A, 

202 'write_to_memory': None}, 

203 'ASRB': {'needs_ea': False, 

204 'ops': {0x57: {'addr_mode': INHERENT, 

205 'bytes': 1, 

206 'cycles': 2}}, 

207 'read_from_memory': None, 

208 'register': REG_B, 

209 'write_to_memory': None}}}, 

210 'BEQ': {'mnemonic': {'BEQ': {'needs_ea': True, 

211 'ops': {0x27: {'addr_mode': RELATIVE, 

212 'bytes': 2, 

213 'cycles': 3}}, 

214 'read_from_memory': None, 

215 'register': None, 

216 'write_to_memory': None}, 

217 'LBEQ': {'needs_ea': True, 

218 'ops': {0x1027: {'addr_mode': RELATIVE_WORD, 

219 'bytes': 4, 

220 'cycles': 5}}, 

221 'read_from_memory': None, 

222 'register': None, 

223 'write_to_memory': None}}}, 

224 'BGE': {'mnemonic': {'BGE': {'needs_ea': True, 

225 'ops': {0x2c: {'addr_mode': RELATIVE, 

226 'bytes': 2, 

227 'cycles': 3}}, 

228 'read_from_memory': None, 

229 'register': None, 

230 'write_to_memory': None}, 

231 'LBGE': {'needs_ea': True, 

232 'ops': {0x102c: {'addr_mode': RELATIVE_WORD, 

233 'bytes': 4, 

234 'cycles': 5}}, 

235 'read_from_memory': None, 

236 'register': None, 

237 'write_to_memory': None}}}, 

238 'BGT': {'mnemonic': {'BGT': {'needs_ea': True, 

239 'ops': {0x2e: {'addr_mode': RELATIVE, 

240 'bytes': 2, 

241 'cycles': 3}}, 

242 'read_from_memory': None, 

243 'register': None, 

244 'write_to_memory': None}, 

245 'LBGT': {'needs_ea': True, 

246 'ops': {0x102e: {'addr_mode': RELATIVE_WORD, 

247 'bytes': 4, 

248 'cycles': 5}}, 

249 'read_from_memory': None, 

250 'register': None, 

251 'write_to_memory': None}}}, 

252 'BHI': {'mnemonic': {'BHI': {'needs_ea': True, 

253 'ops': {0x22: {'addr_mode': RELATIVE, 

254 'bytes': 2, 

255 'cycles': 3}}, 

256 'read_from_memory': None, 

257 'register': None, 

258 'write_to_memory': None}, 

259 'LBHI': {'needs_ea': True, 

260 'ops': {0x1022: {'addr_mode': RELATIVE_WORD, 

261 'bytes': 4, 

262 'cycles': 5}}, 

263 'read_from_memory': None, 

264 'register': None, 

265 'write_to_memory': None}}}, 

266 'BHS': {'mnemonic': {'BCC': {'needs_ea': True, 

267 'ops': {0x24: {'addr_mode': RELATIVE, 

268 'bytes': 2, 

269 'cycles': 3}}, 

270 'read_from_memory': None, 

271 'register': None, 

272 'write_to_memory': None}, 

273 'LBCC': {'needs_ea': True, 

274 'ops': {0x1024: {'addr_mode': RELATIVE_WORD, 

275 'bytes': 4, 

276 'cycles': 5}}, 

277 'read_from_memory': None, 

278 'register': None, 

279 'write_to_memory': None}}}, 

280 'BIT': {'mnemonic': {'BITA': {'needs_ea': False, 

281 'ops': {0x85: {'addr_mode': IMMEDIATE, 

282 'bytes': 2, 

283 'cycles': 2}, 

284 0x95: {'addr_mode': DIRECT, 

285 'bytes': 2, 

286 'cycles': 4}, 

287 0xa5: {'addr_mode': INDEXED, 

288 'bytes': 2, 

289 'cycles': 4}, 

290 0xb5: {'addr_mode': EXTENDED, 

291 'bytes': 3, 

292 'cycles': 5}}, 

293 'read_from_memory': BYTE, 

294 'register': REG_A, 

295 'write_to_memory': None}, 

296 'BITB': {'needs_ea': False, 

297 'ops': {0xc5: {'addr_mode': IMMEDIATE, 

298 'bytes': 2, 

299 'cycles': 2}, 

300 0xd5: {'addr_mode': DIRECT, 

301 'bytes': 2, 

302 'cycles': 4}, 

303 0xe5: {'addr_mode': INDEXED, 

304 'bytes': 2, 

305 'cycles': 4}, 

306 0xf5: {'addr_mode': EXTENDED, 

307 'bytes': 3, 

308 'cycles': 5}}, 

309 'read_from_memory': BYTE, 

310 'register': REG_B, 

311 'write_to_memory': None}}}, 

312 'BLE': {'mnemonic': {'BLE': {'needs_ea': True, 

313 'ops': {0x2f: {'addr_mode': RELATIVE, 

314 'bytes': 2, 

315 'cycles': 3}}, 

316 'read_from_memory': None, 

317 'register': None, 

318 'write_to_memory': None}, 

319 'LBLE': {'needs_ea': True, 

320 'ops': {0x102f: {'addr_mode': RELATIVE_WORD, 

321 'bytes': 4, 

322 'cycles': 5}}, 

323 'read_from_memory': None, 

324 'register': None, 

325 'write_to_memory': None}}}, 

326 'BLO': {'mnemonic': {'BLO': {'needs_ea': True, 

327 'ops': {0x25: {'addr_mode': RELATIVE, 

328 'bytes': 2, 

329 'cycles': 3}}, 

330 'read_from_memory': None, 

331 'register': None, 

332 'write_to_memory': None}, 

333 'LBCS': {'needs_ea': True, 

334 'ops': {0x1025: {'addr_mode': RELATIVE_WORD, 

335 'bytes': 4, 

336 'cycles': 5}}, 

337 'read_from_memory': None, 

338 'register': None, 

339 'write_to_memory': None}}}, 

340 'BLS': {'mnemonic': {'BLS': {'needs_ea': True, 

341 'ops': {0x23: {'addr_mode': RELATIVE, 

342 'bytes': 2, 

343 'cycles': 3}}, 

344 'read_from_memory': None, 

345 'register': None, 

346 'write_to_memory': None}, 

347 'LBLS': {'needs_ea': True, 

348 'ops': {0x1023: {'addr_mode': RELATIVE_WORD, 

349 'bytes': 4, 

350 'cycles': 5}}, 

351 'read_from_memory': None, 

352 'register': None, 

353 'write_to_memory': None}}}, 

354 'BLT': {'mnemonic': {'BLT': {'needs_ea': True, 

355 'ops': {0x2d: {'addr_mode': RELATIVE, 

356 'bytes': 2, 

357 'cycles': 3}}, 

358 'read_from_memory': None, 

359 'register': None, 

360 'write_to_memory': None}, 

361 'LBLT': {'needs_ea': True, 

362 'ops': {0x102d: {'addr_mode': RELATIVE_WORD, 

363 'bytes': 4, 

364 'cycles': 5}}, 

365 'read_from_memory': None, 

366 'register': None, 

367 'write_to_memory': None}}}, 

368 'BMI': {'mnemonic': {'BMI': {'needs_ea': True, 

369 'ops': {0x2b: {'addr_mode': RELATIVE, 

370 'bytes': 2, 

371 'cycles': 3}}, 

372 'read_from_memory': None, 

373 'register': None, 

374 'write_to_memory': None}, 

375 'LBMI': {'needs_ea': True, 

376 'ops': {0x102b: {'addr_mode': RELATIVE_WORD, 

377 'bytes': 4, 

378 'cycles': 5}}, 

379 'read_from_memory': None, 

380 'register': None, 

381 'write_to_memory': None}}}, 

382 'BNE': {'mnemonic': {'BNE': {'needs_ea': True, 

383 'ops': {0x26: {'addr_mode': RELATIVE, 

384 'bytes': 2, 

385 'cycles': 3}}, 

386 'read_from_memory': None, 

387 'register': None, 

388 'write_to_memory': None}, 

389 'LBNE': {'needs_ea': True, 

390 'ops': {0x1026: {'addr_mode': RELATIVE_WORD, 

391 'bytes': 4, 

392 'cycles': 5}}, 

393 'read_from_memory': None, 

394 'register': None, 

395 'write_to_memory': None}}}, 

396 'BPL': {'mnemonic': {'BPL': {'needs_ea': True, 

397 'ops': {0x2a: {'addr_mode': RELATIVE, 

398 'bytes': 2, 

399 'cycles': 3}}, 

400 'read_from_memory': None, 

401 'register': None, 

402 'write_to_memory': None}, 

403 'LBPL': {'needs_ea': True, 

404 'ops': {0x102a: {'addr_mode': RELATIVE_WORD, 

405 'bytes': 4, 

406 'cycles': 5}}, 

407 'read_from_memory': None, 

408 'register': None, 

409 'write_to_memory': None}}}, 

410 'BRA': {'mnemonic': {'BRA': {'needs_ea': True, 

411 'ops': {0x20: {'addr_mode': RELATIVE, 

412 'bytes': 2, 

413 'cycles': 3}}, 

414 'read_from_memory': None, 

415 'register': None, 

416 'write_to_memory': None}, 

417 'LBRA': {'needs_ea': True, 

418 'ops': {0x16: {'addr_mode': RELATIVE_WORD, 

419 'bytes': 3, 

420 'cycles': 5}}, 

421 'read_from_memory': None, 

422 'register': None, 

423 'write_to_memory': None}}}, 

424 'BRN': {'mnemonic': {'BRN': {'needs_ea': True, 

425 'ops': {0x21: {'addr_mode': RELATIVE, 

426 'bytes': 2, 

427 'cycles': 3}}, 

428 'read_from_memory': None, 

429 'register': None, 

430 'write_to_memory': None}, 

431 'LBRN': {'needs_ea': True, 

432 'ops': {0x1021: {'addr_mode': RELATIVE_WORD, 

433 'bytes': 4, 

434 'cycles': 5}}, 

435 'read_from_memory': None, 

436 'register': None, 

437 'write_to_memory': None}}}, 

438 'BSR': {'mnemonic': {'BSR': {'needs_ea': True, 

439 'ops': {0x8d: {'addr_mode': RELATIVE, 

440 'bytes': 2, 

441 'cycles': 7}}, 

442 'read_from_memory': None, 

443 'register': None, 

444 'write_to_memory': None}, 

445 'LBSR': {'needs_ea': True, 

446 'ops': {0x17: {'addr_mode': RELATIVE_WORD, 

447 'bytes': 3, 

448 'cycles': 9}}, 

449 'read_from_memory': None, 

450 'register': None, 

451 'write_to_memory': None}}}, 

452 'BVC': {'mnemonic': {'BVC': {'needs_ea': True, 

453 'ops': {0x28: {'addr_mode': RELATIVE, 

454 'bytes': 2, 

455 'cycles': 3}}, 

456 'read_from_memory': None, 

457 'register': None, 

458 'write_to_memory': None}, 

459 'LBVC': {'needs_ea': True, 

460 'ops': {0x1028: {'addr_mode': RELATIVE_WORD, 

461 'bytes': 4, 

462 'cycles': 5}}, 

463 'read_from_memory': None, 

464 'register': None, 

465 'write_to_memory': None}}}, 

466 'BVS': {'mnemonic': {'BVS': {'needs_ea': True, 

467 'ops': {0x29: {'addr_mode': RELATIVE, 

468 'bytes': 2, 

469 'cycles': 3}}, 

470 'read_from_memory': None, 

471 'register': None, 

472 'write_to_memory': None}, 

473 'LBVS': {'needs_ea': True, 

474 'ops': {0x1029: {'addr_mode': RELATIVE_WORD, 

475 'bytes': 4, 

476 'cycles': 5}}, 

477 'read_from_memory': None, 

478 'register': None, 

479 'write_to_memory': None}}}, 

480 'CLR': {'mnemonic': {'CLR': {'needs_ea': True, 

481 'ops': {0x0f: {'addr_mode': DIRECT, 

482 'bytes': 2, 

483 'cycles': 6}, 

484 0x6f: {'addr_mode': INDEXED, 

485 'bytes': 2, 

486 'cycles': 6}, 

487 0x7f: {'addr_mode': EXTENDED, 

488 'bytes': 3, 

489 'cycles': 7}}, 

490 'read_from_memory': None, 

491 'register': None, 

492 'write_to_memory': BYTE}, 

493 'CLRA': {'needs_ea': False, 

494 'ops': {0x4f: {'addr_mode': INHERENT, 

495 'bytes': 1, 

496 'cycles': 2}}, 

497 'read_from_memory': None, 

498 'register': REG_A, 

499 'write_to_memory': None}, 

500 'CLRB': {'needs_ea': False, 

501 'ops': {0x5f: {'addr_mode': INHERENT, 

502 'bytes': 1, 

503 'cycles': 2}}, 

504 'read_from_memory': None, 

505 'register': REG_B, 

506 'write_to_memory': None}}}, 

507 'CMP': {'mnemonic': {'CMPA': {'needs_ea': False, 

508 'ops': {0x81: {'addr_mode': IMMEDIATE, 

509 'bytes': 2, 

510 'cycles': 2}, 

511 0x91: {'addr_mode': DIRECT, 

512 'bytes': 2, 

513 'cycles': 4}, 

514 0xa1: {'addr_mode': INDEXED, 

515 'bytes': 2, 

516 'cycles': 4}, 

517 0xb1: {'addr_mode': EXTENDED, 

518 'bytes': 3, 

519 'cycles': 5}}, 

520 'read_from_memory': BYTE, 

521 'register': REG_A, 

522 'write_to_memory': None}, 

523 'CMPB': {'needs_ea': False, 

524 'ops': {0xc1: {'addr_mode': IMMEDIATE, 

525 'bytes': 2, 

526 'cycles': 2}, 

527 0xd1: {'addr_mode': DIRECT, 

528 'bytes': 2, 

529 'cycles': 4}, 

530 0xe1: {'addr_mode': INDEXED, 

531 'bytes': 2, 

532 'cycles': 4}, 

533 0xf1: {'addr_mode': EXTENDED, 

534 'bytes': 3, 

535 'cycles': 5}}, 

536 'read_from_memory': BYTE, 

537 'register': REG_B, 

538 'write_to_memory': None}, 

539 'CMPD': {'needs_ea': False, 

540 'ops': {0x1083: {'addr_mode': IMMEDIATE_WORD, 

541 'bytes': 4, 

542 'cycles': 5}, 

543 0x1093: {'addr_mode': DIRECT_WORD, 

544 'bytes': 3, 

545 'cycles': 7}, 

546 0x10a3: {'addr_mode': INDEXED_WORD, 

547 'bytes': 3, 

548 'cycles': 7}, 

549 0x10b3: {'addr_mode': EXTENDED_WORD, 

550 'bytes': 4, 

551 'cycles': 8}}, 

552 'read_from_memory': WORD, 

553 'register': REG_D, 

554 'write_to_memory': None}, 

555 'CMPS': {'needs_ea': False, 

556 'ops': {0x118c: {'addr_mode': IMMEDIATE_WORD, 

557 'bytes': 4, 

558 'cycles': 5}, 

559 0x119c: {'addr_mode': DIRECT_WORD, 

560 'bytes': 3, 

561 'cycles': 7}, 

562 0x11ac: {'addr_mode': INDEXED_WORD, 

563 'bytes': 3, 

564 'cycles': 7}, 

565 0x11bc: {'addr_mode': EXTENDED_WORD, 

566 'bytes': 4, 

567 'cycles': 8}}, 

568 'read_from_memory': WORD, 

569 'register': REG_S, 

570 'write_to_memory': None}, 

571 'CMPU': {'needs_ea': False, 

572 'ops': {0x1183: {'addr_mode': IMMEDIATE_WORD, 

573 'bytes': 4, 

574 'cycles': 5}, 

575 0x1193: {'addr_mode': DIRECT_WORD, 

576 'bytes': 3, 

577 'cycles': 7}, 

578 0x11a3: {'addr_mode': INDEXED_WORD, 

579 'bytes': 3, 

580 'cycles': 7}, 

581 0x11b3: {'addr_mode': EXTENDED_WORD, 

582 'bytes': 4, 

583 'cycles': 8}}, 

584 'read_from_memory': WORD, 

585 'register': REG_U, 

586 'write_to_memory': None}, 

587 'CMPX': {'needs_ea': False, 

588 'ops': {0x8c: {'addr_mode': IMMEDIATE_WORD, 

589 'bytes': 3, 

590 'cycles': 4}, 

591 0x9c: {'addr_mode': DIRECT_WORD, 

592 'bytes': 2, 

593 'cycles': 6}, 

594 0xac: {'addr_mode': INDEXED_WORD, 

595 'bytes': 2, 

596 'cycles': 6}, 

597 0xbc: {'addr_mode': EXTENDED_WORD, 

598 'bytes': 3, 

599 'cycles': 7}}, 

600 'read_from_memory': WORD, 

601 'register': REG_X, 

602 'write_to_memory': None}, 

603 'CMPY': {'needs_ea': False, 

604 'ops': {0x108c: {'addr_mode': IMMEDIATE_WORD, 

605 'bytes': 4, 

606 'cycles': 5}, 

607 0x109c: {'addr_mode': DIRECT_WORD, 

608 'bytes': 3, 

609 'cycles': 7}, 

610 0x10ac: {'addr_mode': INDEXED_WORD, 

611 'bytes': 3, 

612 'cycles': 7}, 

613 0x10bc: {'addr_mode': EXTENDED_WORD, 

614 'bytes': 4, 

615 'cycles': 8}}, 

616 'read_from_memory': WORD, 

617 'register': REG_Y, 

618 'write_to_memory': None}}}, 

619 'COM': {'mnemonic': {'COM': {'needs_ea': True, 

620 'ops': {0x03: {'addr_mode': DIRECT, 

621 'bytes': 2, 

622 'cycles': 6}, 

623 0x63: {'addr_mode': INDEXED, 

624 'bytes': 2, 

625 'cycles': 6}, 

626 0x73: {'addr_mode': EXTENDED, 

627 'bytes': 3, 

628 'cycles': 7}}, 

629 'read_from_memory': BYTE, 

630 'register': None, 

631 'write_to_memory': BYTE}, 

632 'COMA': {'needs_ea': False, 

633 'ops': {0x43: {'addr_mode': INHERENT, 

634 'bytes': 1, 

635 'cycles': 2}}, 

636 'read_from_memory': None, 

637 'register': REG_A, 

638 'write_to_memory': None}, 

639 'COMB': {'needs_ea': False, 

640 'ops': {0x53: {'addr_mode': INHERENT, 

641 'bytes': 1, 

642 'cycles': 2}}, 

643 'read_from_memory': None, 

644 'register': REG_B, 

645 'write_to_memory': None}}}, 

646 'CWAI': {'mnemonic': {'CWAI': {'needs_ea': False, 

647 'ops': {0x3c: {'addr_mode': IMMEDIATE, 

648 'bytes': 2, 

649 'cycles': 21}}, 

650 'read_from_memory': BYTE, 

651 'register': None, 

652 'write_to_memory': None}}}, 

653 'DAA': {'mnemonic': {'DAA': {'needs_ea': False, 

654 'ops': {0x19: {'addr_mode': INHERENT, 

655 'bytes': 1, 

656 'cycles': 2}}, 

657 'read_from_memory': None, 

658 'register': None, 

659 'write_to_memory': None}}}, 

660 'DEC': {'mnemonic': {'DEC': {'needs_ea': True, 

661 'ops': {0x0a: {'addr_mode': DIRECT, 

662 'bytes': 2, 

663 'cycles': 6}, 

664 0x6a: {'addr_mode': INDEXED, 

665 'bytes': 2, 

666 'cycles': 6}, 

667 0x7a: {'addr_mode': EXTENDED, 

668 'bytes': 3, 

669 'cycles': 7}}, 

670 'read_from_memory': BYTE, 

671 'register': None, 

672 'write_to_memory': BYTE}, 

673 'DECA': {'needs_ea': False, 

674 'ops': {0x4a: {'addr_mode': INHERENT, 

675 'bytes': 1, 

676 'cycles': 2}}, 

677 'read_from_memory': None, 

678 'register': REG_A, 

679 'write_to_memory': None}, 

680 'DECB': {'needs_ea': False, 

681 'ops': {0x5a: {'addr_mode': INHERENT, 

682 'bytes': 1, 

683 'cycles': 2}}, 

684 'read_from_memory': None, 

685 'register': REG_B, 

686 'write_to_memory': None}}}, 

687 'EOR': {'mnemonic': {'EORA': {'needs_ea': False, 

688 'ops': {0x88: {'addr_mode': IMMEDIATE, 

689 'bytes': 2, 

690 'cycles': 2}, 

691 0x98: {'addr_mode': DIRECT, 

692 'bytes': 2, 

693 'cycles': 4}, 

694 0xa8: {'addr_mode': INDEXED, 

695 'bytes': 2, 

696 'cycles': 4}, 

697 0xb8: {'addr_mode': EXTENDED, 

698 'bytes': 3, 

699 'cycles': 5}}, 

700 'read_from_memory': BYTE, 

701 'register': REG_A, 

702 'write_to_memory': None}, 

703 'EORB': {'needs_ea': False, 

704 'ops': {0xc8: {'addr_mode': IMMEDIATE, 

705 'bytes': 2, 

706 'cycles': 2}, 

707 0xd8: {'addr_mode': DIRECT, 

708 'bytes': 2, 

709 'cycles': 4}, 

710 0xe8: {'addr_mode': INDEXED, 

711 'bytes': 2, 

712 'cycles': 4}, 

713 0xf8: {'addr_mode': EXTENDED, 

714 'bytes': 3, 

715 'cycles': 5}}, 

716 'read_from_memory': BYTE, 

717 'register': REG_B, 

718 'write_to_memory': None}}}, 

719 'EXG': {'mnemonic': {'EXG': {'needs_ea': False, 

720 'ops': {0x1e: {'addr_mode': IMMEDIATE, 

721 'bytes': 2, 

722 'cycles': 8}}, 

723 'read_from_memory': BYTE, 

724 'register': None, 

725 'write_to_memory': None}}}, 

726 'INC': {'mnemonic': {'INC': {'needs_ea': True, 

727 'ops': {0x0c: {'addr_mode': DIRECT, 

728 'bytes': 2, 

729 'cycles': 6}, 

730 0x6c: {'addr_mode': INDEXED, 

731 'bytes': 2, 

732 'cycles': 6}, 

733 0x7c: {'addr_mode': EXTENDED, 

734 'bytes': 3, 

735 'cycles': 7}}, 

736 'read_from_memory': BYTE, 

737 'register': None, 

738 'write_to_memory': BYTE}, 

739 'INCA': {'needs_ea': False, 

740 'ops': {0x4c: {'addr_mode': INHERENT, 

741 'bytes': 1, 

742 'cycles': 2}}, 

743 'read_from_memory': None, 

744 'register': REG_A, 

745 'write_to_memory': None}, 

746 'INCB': {'needs_ea': False, 

747 'ops': {0x5c: {'addr_mode': INHERENT, 

748 'bytes': 1, 

749 'cycles': 2}}, 

750 'read_from_memory': None, 

751 'register': REG_B, 

752 'write_to_memory': None}}}, 

753 'JMP': {'mnemonic': {'JMP': {'needs_ea': True, 

754 'ops': {0x0e: {'addr_mode': DIRECT, 

755 'bytes': 2, 

756 'cycles': 3}, 

757 0x6e: {'addr_mode': INDEXED, 

758 'bytes': 2, 

759 'cycles': 3}, 

760 0x7e: {'addr_mode': EXTENDED, 

761 'bytes': 3, 

762 'cycles': 3}}, 

763 'read_from_memory': None, 

764 'register': None, 

765 'write_to_memory': None}}}, 

766 'JSR': {'mnemonic': {'JSR': {'needs_ea': True, 

767 'ops': {0x9d: {'addr_mode': DIRECT, 

768 'bytes': 2, 

769 'cycles': 7}, 

770 0xad: {'addr_mode': INDEXED, 

771 'bytes': 2, 

772 'cycles': 7}, 

773 0xbd: {'addr_mode': EXTENDED, 

774 'bytes': 3, 

775 'cycles': 8}}, 

776 'read_from_memory': None, 

777 'register': None, 

778 'write_to_memory': None}}}, 

779 'LD': {'mnemonic': {'LDA': {'needs_ea': False, 

780 'ops': {0x86: {'addr_mode': IMMEDIATE, 

781 'bytes': 2, 

782 'cycles': 2}, 

783 0x96: {'addr_mode': DIRECT, 

784 'bytes': 2, 

785 'cycles': 4}, 

786 0xa6: {'addr_mode': INDEXED, 

787 'bytes': 2, 

788 'cycles': 4}, 

789 0xb6: {'addr_mode': EXTENDED, 

790 'bytes': 3, 

791 'cycles': 5}}, 

792 'read_from_memory': BYTE, 

793 'register': REG_A, 

794 'write_to_memory': None}, 

795 'LDB': {'needs_ea': False, 

796 'ops': {0xc6: {'addr_mode': IMMEDIATE, 

797 'bytes': 2, 

798 'cycles': 2}, 

799 0xd6: {'addr_mode': DIRECT, 

800 'bytes': 2, 

801 'cycles': 4}, 

802 0xe6: {'addr_mode': INDEXED, 

803 'bytes': 2, 

804 'cycles': 4}, 

805 0xf6: {'addr_mode': EXTENDED, 

806 'bytes': 3, 

807 'cycles': 5}}, 

808 'read_from_memory': BYTE, 

809 'register': REG_B, 

810 'write_to_memory': None}, 

811 'LDD': {'needs_ea': False, 

812 'ops': {0xcc: {'addr_mode': IMMEDIATE_WORD, 

813 'bytes': 3, 

814 'cycles': 3}, 

815 0xdc: {'addr_mode': DIRECT_WORD, 

816 'bytes': 2, 

817 'cycles': 5}, 

818 0xec: {'addr_mode': INDEXED_WORD, 

819 'bytes': 2, 

820 'cycles': 5}, 

821 0xfc: {'addr_mode': EXTENDED_WORD, 

822 'bytes': 3, 

823 'cycles': 6}}, 

824 'read_from_memory': WORD, 

825 'register': REG_D, 

826 'write_to_memory': None}, 

827 'LDS': {'needs_ea': False, 

828 'ops': {0x10ce: {'addr_mode': IMMEDIATE_WORD, 

829 'bytes': 4, 

830 'cycles': 4}, 

831 0x10de: {'addr_mode': DIRECT_WORD, 

832 'bytes': 3, 

833 'cycles': 6}, 

834 0x10ee: {'addr_mode': INDEXED_WORD, 

835 'bytes': 3, 

836 'cycles': 6}, 

837 0x10fe: {'addr_mode': EXTENDED_WORD, 

838 'bytes': 4, 

839 'cycles': 7}}, 

840 'read_from_memory': WORD, 

841 'register': REG_S, 

842 'write_to_memory': None}, 

843 'LDU': {'needs_ea': False, 

844 'ops': {0xce: {'addr_mode': IMMEDIATE_WORD, 

845 'bytes': 3, 

846 'cycles': 3}, 

847 0xde: {'addr_mode': DIRECT_WORD, 

848 'bytes': 2, 

849 'cycles': 5}, 

850 0xee: {'addr_mode': INDEXED_WORD, 

851 'bytes': 2, 

852 'cycles': 5}, 

853 0xfe: {'addr_mode': EXTENDED_WORD, 

854 'bytes': 3, 

855 'cycles': 6}}, 

856 'read_from_memory': WORD, 

857 'register': REG_U, 

858 'write_to_memory': None}, 

859 'LDX': {'needs_ea': False, 

860 'ops': {0x8e: {'addr_mode': IMMEDIATE_WORD, 

861 'bytes': 3, 

862 'cycles': 3}, 

863 0x9e: {'addr_mode': DIRECT_WORD, 

864 'bytes': 2, 

865 'cycles': 5}, 

866 0xae: {'addr_mode': INDEXED_WORD, 

867 'bytes': 2, 

868 'cycles': 5}, 

869 0xbe: {'addr_mode': EXTENDED_WORD, 

870 'bytes': 3, 

871 'cycles': 6}}, 

872 'read_from_memory': WORD, 

873 'register': REG_X, 

874 'write_to_memory': None}, 

875 'LDY': {'needs_ea': False, 

876 'ops': {0x108e: {'addr_mode': IMMEDIATE_WORD, 

877 'bytes': 4, 

878 'cycles': 4}, 

879 0x109e: {'addr_mode': DIRECT_WORD, 

880 'bytes': 3, 

881 'cycles': 6}, 

882 0x10ae: {'addr_mode': INDEXED_WORD, 

883 'bytes': 3, 

884 'cycles': 6}, 

885 0x10be: {'addr_mode': EXTENDED_WORD, 

886 'bytes': 4, 

887 'cycles': 7}}, 

888 'read_from_memory': WORD, 

889 'register': REG_Y, 

890 'write_to_memory': None}}}, 

891 'LEA': {'mnemonic': {'LEAS': {'needs_ea': True, 

892 'ops': {0x32: {'addr_mode': INDEXED, 

893 'bytes': 2, 

894 'cycles': 4}}, 

895 'read_from_memory': None, 

896 'register': REG_S, 

897 'write_to_memory': None}, 

898 'LEAU': {'needs_ea': True, 

899 'ops': {0x33: {'addr_mode': INDEXED, 

900 'bytes': 2, 

901 'cycles': 4}}, 

902 'read_from_memory': None, 

903 'register': REG_U, 

904 'write_to_memory': None}, 

905 'LEAX': {'needs_ea': True, 

906 'ops': {0x30: {'addr_mode': INDEXED, 

907 'bytes': 2, 

908 'cycles': 4}}, 

909 'read_from_memory': None, 

910 'register': REG_X, 

911 'write_to_memory': None}, 

912 'LEAY': {'needs_ea': True, 

913 'ops': {0x31: {'addr_mode': INDEXED, 

914 'bytes': 2, 

915 'cycles': 4}}, 

916 'read_from_memory': None, 

917 'register': REG_Y, 

918 'write_to_memory': None}}}, 

919 'LSL': {'mnemonic': {'LSL': {'needs_ea': True, 

920 'ops': {0x08: {'addr_mode': DIRECT, 

921 'bytes': 2, 

922 'cycles': 6}, 

923 0x68: {'addr_mode': INDEXED, 

924 'bytes': 2, 

925 'cycles': 6}, 

926 0x78: {'addr_mode': EXTENDED, 

927 'bytes': 3, 

928 'cycles': 7}}, 

929 'read_from_memory': BYTE, 

930 'register': None, 

931 'write_to_memory': BYTE}, 

932 'LSLA': {'needs_ea': False, 

933 'ops': {0x48: {'addr_mode': INHERENT, 

934 'bytes': 1, 

935 'cycles': 2}}, 

936 'read_from_memory': None, 

937 'register': REG_A, 

938 'write_to_memory': None}, 

939 'LSLB': {'needs_ea': False, 

940 'ops': {0x58: {'addr_mode': INHERENT, 

941 'bytes': 1, 

942 'cycles': 2}}, 

943 'read_from_memory': None, 

944 'register': REG_B, 

945 'write_to_memory': None}}}, 

946 'LSR': {'mnemonic': {'LSR': {'needs_ea': True, 

947 'ops': {0x04: {'addr_mode': DIRECT, 

948 'bytes': 2, 

949 'cycles': 6}, 

950 0x64: {'addr_mode': INDEXED, 

951 'bytes': 2, 

952 'cycles': 6}, 

953 0x74: {'addr_mode': EXTENDED, 

954 'bytes': 3, 

955 'cycles': 7}}, 

956 'read_from_memory': BYTE, 

957 'register': None, 

958 'write_to_memory': BYTE}, 

959 'LSRA': {'needs_ea': False, 

960 'ops': {0x44: {'addr_mode': INHERENT, 

961 'bytes': 1, 

962 'cycles': 2}}, 

963 'read_from_memory': None, 

964 'register': REG_A, 

965 'write_to_memory': None}, 

966 'LSRB': {'needs_ea': False, 

967 'ops': {0x54: {'addr_mode': INHERENT, 

968 'bytes': 1, 

969 'cycles': 2}}, 

970 'read_from_memory': None, 

971 'register': REG_B, 

972 'write_to_memory': None}}}, 

973 'MUL': {'mnemonic': {'MUL': {'needs_ea': False, 

974 'ops': {0x3d: {'addr_mode': INHERENT, 

975 'bytes': 1, 

976 'cycles': 11}}, 

977 'read_from_memory': None, 

978 'register': None, 

979 'write_to_memory': None}}}, 

980 'NEG': {'mnemonic': {'NEG': {'needs_ea': True, 

981 'ops': {0x00: {'addr_mode': DIRECT, 

982 'bytes': 2, 

983 'cycles': 6}, 

984 0x60: {'addr_mode': INDEXED, 

985 'bytes': 2, 

986 'cycles': 6}, 

987 0x70: {'addr_mode': EXTENDED, 

988 'bytes': 3, 

989 'cycles': 7}}, 

990 'read_from_memory': BYTE, 

991 'register': None, 

992 'write_to_memory': BYTE}, 

993 'NEGA': {'needs_ea': False, 

994 'ops': {0x40: {'addr_mode': INHERENT, 

995 'bytes': 1, 

996 'cycles': 2}}, 

997 'read_from_memory': None, 

998 'register': REG_A, 

999 'write_to_memory': None}, 

1000 'NEGB': {'needs_ea': False, 

1001 'ops': {0x50: {'addr_mode': INHERENT, 

1002 'bytes': 1, 

1003 'cycles': 2}}, 

1004 'read_from_memory': None, 

1005 'register': REG_B, 

1006 'write_to_memory': None}}}, 

1007 'NOP': {'mnemonic': {'NOP': {'needs_ea': False, 

1008 'ops': {0x12: {'addr_mode': INHERENT, 

1009 'bytes': 1, 

1010 'cycles': 2}}, 

1011 'read_from_memory': None, 

1012 'register': None, 

1013 'write_to_memory': None}}}, 

1014 'OR': {'mnemonic': {'ORA': {'needs_ea': False, 

1015 'ops': {0x8a: {'addr_mode': IMMEDIATE, 

1016 'bytes': 2, 

1017 'cycles': 2}, 

1018 0x9a: {'addr_mode': DIRECT, 

1019 'bytes': 2, 

1020 'cycles': 4}, 

1021 0xaa: {'addr_mode': INDEXED, 

1022 'bytes': 2, 

1023 'cycles': 4}, 

1024 0xba: {'addr_mode': EXTENDED, 

1025 'bytes': 3, 

1026 'cycles': 5}}, 

1027 'read_from_memory': BYTE, 

1028 'register': REG_A, 

1029 'write_to_memory': None}, 

1030 'ORB': {'needs_ea': False, 

1031 'ops': {0xca: {'addr_mode': IMMEDIATE, 

1032 'bytes': 2, 

1033 'cycles': 2}, 

1034 0xda: {'addr_mode': DIRECT, 

1035 'bytes': 2, 

1036 'cycles': 4}, 

1037 0xea: {'addr_mode': INDEXED, 

1038 'bytes': 2, 

1039 'cycles': 4}, 

1040 0xfa: {'addr_mode': EXTENDED, 

1041 'bytes': 3, 

1042 'cycles': 5}}, 

1043 'read_from_memory': BYTE, 

1044 'register': REG_B, 

1045 'write_to_memory': None}, 

1046 'ORCC': {'needs_ea': False, 

1047 'ops': {0x1a: {'addr_mode': IMMEDIATE, 

1048 'bytes': 2, 

1049 'cycles': 3}}, 

1050 'read_from_memory': BYTE, 

1051 'register': REG_CC, 

1052 'write_to_memory': None}}}, 

1053 'PAGE': {'mnemonic': {'PAGE 1': {'needs_ea': False, 

1054 'ops': {0x10: {'addr_mode': None, 

1055 'bytes': 1, 

1056 'cycles': 1}}, 

1057 'read_from_memory': None, 

1058 'register': None, 

1059 'write_to_memory': None}, 

1060 'PAGE 2': {'needs_ea': False, 

1061 'ops': {0x11: {'addr_mode': None, 

1062 'bytes': 1, 

1063 'cycles': 1}}, 

1064 'read_from_memory': None, 

1065 'register': None, 

1066 'write_to_memory': None}}}, 

1067 'PSH': {'mnemonic': {'PSHS': {'needs_ea': False, 

1068 'ops': {0x34: {'addr_mode': IMMEDIATE, 

1069 'bytes': 2, 

1070 'cycles': 5}}, 

1071 'read_from_memory': BYTE, 

1072 'register': REG_S, 

1073 'write_to_memory': None}, 

1074 'PSHU': {'needs_ea': False, 

1075 'ops': {0x36: {'addr_mode': IMMEDIATE, 

1076 'bytes': 2, 

1077 'cycles': 5}}, 

1078 'read_from_memory': BYTE, 

1079 'register': REG_U, 

1080 'write_to_memory': None}}}, 

1081 'PUL': {'mnemonic': {'PULS': {'needs_ea': False, 

1082 'ops': {0x35: {'addr_mode': IMMEDIATE, 

1083 'bytes': 2, 

1084 'cycles': 5}}, 

1085 'read_from_memory': BYTE, 

1086 'register': REG_S, 

1087 'write_to_memory': None}, 

1088 'PULU': {'needs_ea': False, 

1089 'ops': {0x37: {'addr_mode': IMMEDIATE, 

1090 'bytes': 2, 

1091 'cycles': 5}}, 

1092 'read_from_memory': BYTE, 

1093 'register': REG_U, 

1094 'write_to_memory': None}}}, 

1095 'RESET': {'mnemonic': {'RESET': {'needs_ea': False, 

1096 'ops': {0x3e: {'addr_mode': None, 

1097 'bytes': 1, 

1098 'cycles': -1}}, 

1099 'read_from_memory': None, 

1100 'register': None, 

1101 'write_to_memory': None}}}, 

1102 'ROL': {'mnemonic': {'ROL': {'needs_ea': True, 

1103 'ops': {0x09: {'addr_mode': DIRECT, 

1104 'bytes': 2, 

1105 'cycles': 6}, 

1106 0x69: {'addr_mode': INDEXED, 

1107 'bytes': 2, 

1108 'cycles': 6}, 

1109 0x79: {'addr_mode': EXTENDED, 

1110 'bytes': 3, 

1111 'cycles': 7}}, 

1112 'read_from_memory': BYTE, 

1113 'register': None, 

1114 'write_to_memory': BYTE}, 

1115 'ROLA': {'needs_ea': False, 

1116 'ops': {0x49: {'addr_mode': INHERENT, 

1117 'bytes': 1, 

1118 'cycles': 2}}, 

1119 'read_from_memory': None, 

1120 'register': REG_A, 

1121 'write_to_memory': None}, 

1122 'ROLB': {'needs_ea': False, 

1123 'ops': {0x59: {'addr_mode': INHERENT, 

1124 'bytes': 1, 

1125 'cycles': 2}}, 

1126 'read_from_memory': None, 

1127 'register': REG_B, 

1128 'write_to_memory': None}}}, 

1129 'ROR': {'mnemonic': {'ROR': {'needs_ea': True, 

1130 'ops': {0x06: {'addr_mode': DIRECT, 

1131 'bytes': 2, 

1132 'cycles': 6}, 

1133 0x66: {'addr_mode': INDEXED, 

1134 'bytes': 2, 

1135 'cycles': 6}, 

1136 0x76: {'addr_mode': EXTENDED, 

1137 'bytes': 3, 

1138 'cycles': 7}}, 

1139 'read_from_memory': BYTE, 

1140 'register': None, 

1141 'write_to_memory': BYTE}, 

1142 'RORA': {'needs_ea': False, 

1143 'ops': {0x46: {'addr_mode': INHERENT, 

1144 'bytes': 1, 

1145 'cycles': 2}}, 

1146 'read_from_memory': None, 

1147 'register': REG_A, 

1148 'write_to_memory': None}, 

1149 'RORB': {'needs_ea': False, 

1150 'ops': {0x56: {'addr_mode': INHERENT, 

1151 'bytes': 1, 

1152 'cycles': 2}}, 

1153 'read_from_memory': None, 

1154 'register': REG_B, 

1155 'write_to_memory': None}}}, 

1156 'RTI': {'mnemonic': {'RTI': {'needs_ea': False, 

1157 'ops': {0x3b: {'addr_mode': INHERENT, 

1158 'bytes': 1, 

1159 'cycles': 6}}, 

1160 'read_from_memory': None, 

1161 'register': None, 

1162 'write_to_memory': None}}}, 

1163 'RTS': {'mnemonic': {'RTS': {'needs_ea': False, 

1164 'ops': {0x39: {'addr_mode': INHERENT, 

1165 'bytes': 1, 

1166 'cycles': 5}}, 

1167 'read_from_memory': None, 

1168 'register': None, 

1169 'write_to_memory': None}}}, 

1170 'SBC': {'mnemonic': {'SBCA': {'needs_ea': False, 

1171 'ops': {0x82: {'addr_mode': IMMEDIATE, 

1172 'bytes': 2, 

1173 'cycles': 2}, 

1174 0x92: {'addr_mode': DIRECT, 

1175 'bytes': 2, 

1176 'cycles': 4}, 

1177 0xa2: {'addr_mode': INDEXED, 

1178 'bytes': 2, 

1179 'cycles': 4}, 

1180 0xb2: {'addr_mode': EXTENDED, 

1181 'bytes': 3, 

1182 'cycles': 5}}, 

1183 'read_from_memory': BYTE, 

1184 'register': REG_A, 

1185 'write_to_memory': None}, 

1186 'SBCB': {'needs_ea': False, 

1187 'ops': {0xc2: {'addr_mode': IMMEDIATE, 

1188 'bytes': 2, 

1189 'cycles': 2}, 

1190 0xd2: {'addr_mode': DIRECT, 

1191 'bytes': 2, 

1192 'cycles': 4}, 

1193 0xe2: {'addr_mode': INDEXED, 

1194 'bytes': 2, 

1195 'cycles': 4}, 

1196 0xf2: {'addr_mode': EXTENDED, 

1197 'bytes': 3, 

1198 'cycles': 5}}, 

1199 'read_from_memory': BYTE, 

1200 'register': REG_B, 

1201 'write_to_memory': None}}}, 

1202 'SEX': {'mnemonic': {'SEX': {'needs_ea': False, 

1203 'ops': {0x1d: {'addr_mode': INHERENT, 

1204 'bytes': 1, 

1205 'cycles': 2}}, 

1206 'read_from_memory': None, 

1207 'register': None, 

1208 'write_to_memory': None}}}, 

1209 'ST': {'mnemonic': {'STA': {'needs_ea': True, 

1210 'ops': {0x97: {'addr_mode': DIRECT, 

1211 'bytes': 2, 

1212 'cycles': 4}, 

1213 0xa7: {'addr_mode': INDEXED, 

1214 'bytes': 2, 

1215 'cycles': 4}, 

1216 0xb7: {'addr_mode': EXTENDED, 

1217 'bytes': 3, 

1218 'cycles': 5}}, 

1219 'read_from_memory': None, 

1220 'register': REG_A, 

1221 'write_to_memory': BYTE}, 

1222 'STB': {'needs_ea': True, 

1223 'ops': {0xd7: {'addr_mode': DIRECT, 

1224 'bytes': 2, 

1225 'cycles': 4}, 

1226 0xe7: {'addr_mode': INDEXED, 

1227 'bytes': 2, 

1228 'cycles': 4}, 

1229 0xf7: {'addr_mode': EXTENDED, 

1230 'bytes': 3, 

1231 'cycles': 5}}, 

1232 'read_from_memory': None, 

1233 'register': REG_B, 

1234 'write_to_memory': BYTE}, 

1235 'STD': {'needs_ea': True, 

1236 'ops': {0xdd: {'addr_mode': DIRECT, 

1237 'bytes': 2, 

1238 'cycles': 5}, 

1239 0xed: {'addr_mode': INDEXED, 

1240 'bytes': 2, 

1241 'cycles': 5}, 

1242 0xfd: {'addr_mode': EXTENDED, 

1243 'bytes': 3, 

1244 'cycles': 6}}, 

1245 'read_from_memory': None, 

1246 'register': REG_D, 

1247 'write_to_memory': WORD}, 

1248 'STS': {'needs_ea': True, 

1249 'ops': {0x10df: {'addr_mode': DIRECT, 

1250 'bytes': 3, 

1251 'cycles': 6}, 

1252 0x10ef: {'addr_mode': INDEXED, 

1253 'bytes': 3, 

1254 'cycles': 6}, 

1255 0x10ff: {'addr_mode': EXTENDED, 

1256 'bytes': 4, 

1257 'cycles': 7}}, 

1258 'read_from_memory': None, 

1259 'register': REG_S, 

1260 'write_to_memory': WORD}, 

1261 'STU': {'needs_ea': True, 

1262 'ops': {0xdf: {'addr_mode': DIRECT, 

1263 'bytes': 2, 

1264 'cycles': 5}, 

1265 0xef: {'addr_mode': INDEXED, 

1266 'bytes': 2, 

1267 'cycles': 5}, 

1268 0xff: {'addr_mode': EXTENDED, 

1269 'bytes': 3, 

1270 'cycles': 6}}, 

1271 'read_from_memory': None, 

1272 'register': REG_U, 

1273 'write_to_memory': WORD}, 

1274 'STX': {'needs_ea': True, 

1275 'ops': {0x9f: {'addr_mode': DIRECT, 

1276 'bytes': 2, 

1277 'cycles': 5}, 

1278 0xaf: {'addr_mode': INDEXED, 

1279 'bytes': 2, 

1280 'cycles': 5}, 

1281 0xbf: {'addr_mode': EXTENDED, 

1282 'bytes': 3, 

1283 'cycles': 6}}, 

1284 'read_from_memory': None, 

1285 'register': REG_X, 

1286 'write_to_memory': WORD}, 

1287 'STY': {'needs_ea': True, 

1288 'ops': {0x109f: {'addr_mode': DIRECT, 

1289 'bytes': 3, 

1290 'cycles': 6}, 

1291 0x10af: {'addr_mode': INDEXED, 

1292 'bytes': 3, 

1293 'cycles': 6}, 

1294 0x10bf: {'addr_mode': EXTENDED, 

1295 'bytes': 4, 

1296 'cycles': 7}}, 

1297 'read_from_memory': None, 

1298 'register': REG_Y, 

1299 'write_to_memory': WORD}}}, 

1300 'SUB': {'mnemonic': {'SUBA': {'needs_ea': False, 

1301 'ops': {0x80: {'addr_mode': IMMEDIATE, 

1302 'bytes': 2, 

1303 'cycles': 2}, 

1304 0x90: {'addr_mode': DIRECT, 

1305 'bytes': 2, 

1306 'cycles': 4}, 

1307 0xa0: {'addr_mode': INDEXED, 

1308 'bytes': 2, 

1309 'cycles': 4}, 

1310 0xb0: {'addr_mode': EXTENDED, 

1311 'bytes': 3, 

1312 'cycles': 5}}, 

1313 'read_from_memory': BYTE, 

1314 'register': REG_A, 

1315 'write_to_memory': None}, 

1316 'SUBB': {'needs_ea': False, 

1317 'ops': {0xc0: {'addr_mode': IMMEDIATE, 

1318 'bytes': 2, 

1319 'cycles': 2}, 

1320 0xd0: {'addr_mode': DIRECT, 

1321 'bytes': 2, 

1322 'cycles': 4}, 

1323 0xe0: {'addr_mode': INDEXED, 

1324 'bytes': 2, 

1325 'cycles': 4}, 

1326 0xf0: {'addr_mode': EXTENDED, 

1327 'bytes': 3, 

1328 'cycles': 5}}, 

1329 'read_from_memory': BYTE, 

1330 'register': REG_B, 

1331 'write_to_memory': None}, 

1332 'SUBD': {'needs_ea': False, 

1333 'ops': {0x83: {'addr_mode': IMMEDIATE_WORD, 

1334 'bytes': 3, 

1335 'cycles': 4}, 

1336 0x93: {'addr_mode': DIRECT_WORD, 

1337 'bytes': 2, 

1338 'cycles': 6}, 

1339 0xa3: {'addr_mode': INDEXED_WORD, 

1340 'bytes': 2, 

1341 'cycles': 6}, 

1342 0xb3: {'addr_mode': EXTENDED_WORD, 

1343 'bytes': 3, 

1344 'cycles': 7}}, 

1345 'read_from_memory': WORD, 

1346 'register': REG_D, 

1347 'write_to_memory': None}}}, 

1348 'SWI': {'mnemonic': {'SWI': {'needs_ea': False, 

1349 'ops': {0x3f: {'addr_mode': INHERENT, 

1350 'bytes': 1, 

1351 'cycles': 19}}, 

1352 'read_from_memory': None, 

1353 'register': None, 

1354 'write_to_memory': None}, 

1355 'SWI2': {'needs_ea': False, 

1356 'ops': {0x103f: {'addr_mode': INHERENT, 

1357 'bytes': 2, 

1358 'cycles': 20}}, 

1359 'read_from_memory': None, 

1360 'register': None, 

1361 'write_to_memory': None}, 

1362 'SWI3': {'needs_ea': False, 

1363 'ops': {0x113f: {'addr_mode': INHERENT, 

1364 'bytes': 2, 

1365 'cycles': 20}}, 

1366 'read_from_memory': None, 

1367 'register': None, 

1368 'write_to_memory': None}}}, 

1369 'SYNC': {'mnemonic': {'SYNC': {'needs_ea': False, 

1370 'ops': {0x13: {'addr_mode': INHERENT, 

1371 'bytes': 1, 

1372 'cycles': 2}}, 

1373 'read_from_memory': None, 

1374 'register': None, 

1375 'write_to_memory': None}}}, 

1376 'TFR': {'mnemonic': {'TFR': {'needs_ea': False, 

1377 'ops': {0x1f: {'addr_mode': IMMEDIATE, 

1378 'bytes': 2, 

1379 'cycles': 7}}, 

1380 'read_from_memory': BYTE, 

1381 'register': None, 

1382 'write_to_memory': None}}}, 

1383 'TST': {'mnemonic': {'TST': {'needs_ea': False, 

1384 'ops': {0x0d: {'addr_mode': DIRECT, 

1385 'bytes': 2, 

1386 'cycles': 6}, 

1387 0x6d: {'addr_mode': INDEXED, 

1388 'bytes': 2, 

1389 'cycles': 6}, 

1390 0x7d: {'addr_mode': EXTENDED, 

1391 'bytes': 3, 

1392 'cycles': 7}}, 

1393 'read_from_memory': BYTE, 

1394 'register': None, 

1395 'write_to_memory': None}, 

1396 'TSTA': {'needs_ea': False, 

1397 'ops': {0x4d: {'addr_mode': INHERENT, 

1398 'bytes': 1, 

1399 'cycles': 2}}, 

1400 'read_from_memory': None, 

1401 'register': REG_A, 

1402 'write_to_memory': None}, 

1403 'TSTB': {'needs_ea': False, 

1404 'ops': {0x5d: {'addr_mode': INHERENT, 

1405 'bytes': 1, 

1406 'cycles': 2}}, 

1407 'read_from_memory': None, 

1408 'register': REG_B, 

1409 'write_to_memory': None}}}}