An emulator, assembler, and disassembler for the Sega Game Gear
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 

1298 lignes
49 KiB

  1. /* Copyright (C) 2014-2016 Ben Kurtovic <ben.kurtovic@gmail.com>
  2. Released under the terms of the MIT License. See LICENSE for details. */
  3. static DispatchTable instruction_table = {
  4. [0x00] = z80_inst_nop,
  5. [0x01] = z80_inst_ld_dd_nn,
  6. [0x02] = z80_inst_ld_bcde_a,
  7. [0x03] = z80_inst_inc_ss,
  8. [0x04] = z80_inst_inc_r,
  9. [0x05] = z80_inst_dec_r,
  10. [0x06] = z80_inst_ld_r_n,
  11. [0x07] = z80_inst_unimplemented, // TODO
  12. [0x08] = z80_inst_unimplemented, // TODO
  13. [0x09] = z80_inst_add_hl_ss,
  14. [0x0A] = z80_inst_unimplemented, // TODO
  15. [0x0B] = z80_inst_dec_ss,
  16. [0x0C] = z80_inst_inc_r,
  17. [0x0D] = z80_inst_dec_r,
  18. [0x0E] = z80_inst_ld_r_n,
  19. [0x0F] = z80_inst_unimplemented, // TODO
  20. [0x10] = z80_inst_djnz_e,
  21. [0x11] = z80_inst_ld_dd_nn,
  22. [0x12] = z80_inst_ld_bcde_a,
  23. [0x13] = z80_inst_inc_ss,
  24. [0x14] = z80_inst_inc_r,
  25. [0x15] = z80_inst_dec_r,
  26. [0x16] = z80_inst_ld_r_n,
  27. [0x17] = z80_inst_unimplemented, // TODO
  28. [0x18] = z80_inst_jr_e,
  29. [0x19] = z80_inst_add_hl_ss,
  30. [0x1A] = z80_inst_unimplemented, // TODO
  31. [0x1B] = z80_inst_dec_ss,
  32. [0x1C] = z80_inst_inc_r,
  33. [0x1D] = z80_inst_dec_r,
  34. [0x1E] = z80_inst_ld_r_n,
  35. [0x1F] = z80_inst_unimplemented, // TODO
  36. [0x20] = z80_inst_jr_cc_e,
  37. [0x21] = z80_inst_ld_dd_nn,
  38. [0x22] = z80_inst_ld_nn_hl,
  39. [0x23] = z80_inst_inc_ss,
  40. [0x24] = z80_inst_inc_r,
  41. [0x25] = z80_inst_dec_r,
  42. [0x26] = z80_inst_ld_r_n,
  43. [0x27] = z80_inst_unimplemented, // TODO
  44. [0x28] = z80_inst_jr_cc_e,
  45. [0x29] = z80_inst_add_hl_ss,
  46. [0x2A] = z80_inst_unimplemented, // TODO
  47. [0x2B] = z80_inst_dec_ss,
  48. [0x2C] = z80_inst_inc_r,
  49. [0x2D] = z80_inst_dec_r,
  50. [0x2E] = z80_inst_ld_r_n,
  51. [0x2F] = z80_inst_unimplemented, // TODO
  52. [0x30] = z80_inst_jr_cc_e,
  53. [0x31] = z80_inst_ld_dd_nn,
  54. [0x32] = z80_inst_ld_nn_a,
  55. [0x33] = z80_inst_inc_ss,
  56. [0x34] = z80_inst_unimplemented, // TODO
  57. [0x35] = z80_inst_unimplemented, // TODO
  58. [0x36] = z80_inst_ld_hl_n,
  59. [0x37] = z80_inst_unimplemented, // TODO
  60. [0x38] = z80_inst_jr_cc_e,
  61. [0x39] = z80_inst_add_hl_ss,
  62. [0x3A] = z80_inst_ld_a_nn,
  63. [0x3B] = z80_inst_dec_ss,
  64. [0x3C] = z80_inst_inc_r,
  65. [0x3D] = z80_inst_dec_r,
  66. [0x3E] = z80_inst_ld_r_n,
  67. [0x3F] = z80_inst_unimplemented, // TODO
  68. [0x40] = z80_inst_ld_r_r,
  69. [0x41] = z80_inst_ld_r_r,
  70. [0x42] = z80_inst_ld_r_r,
  71. [0x43] = z80_inst_ld_r_r,
  72. [0x44] = z80_inst_ld_r_r,
  73. [0x45] = z80_inst_ld_r_r,
  74. [0x46] = z80_inst_ld_r_hl,
  75. [0x47] = z80_inst_ld_r_r,
  76. [0x48] = z80_inst_ld_r_r,
  77. [0x49] = z80_inst_ld_r_r,
  78. [0x4A] = z80_inst_ld_r_r,
  79. [0x4B] = z80_inst_ld_r_r,
  80. [0x4C] = z80_inst_ld_r_r,
  81. [0x4D] = z80_inst_ld_r_r,
  82. [0x4E] = z80_inst_ld_r_hl,
  83. [0x4F] = z80_inst_ld_r_r,
  84. [0x50] = z80_inst_ld_r_r,
  85. [0x51] = z80_inst_ld_r_r,
  86. [0x52] = z80_inst_ld_r_r,
  87. [0x53] = z80_inst_ld_r_r,
  88. [0x54] = z80_inst_ld_r_r,
  89. [0x55] = z80_inst_ld_r_r,
  90. [0x56] = z80_inst_ld_r_hl,
  91. [0x57] = z80_inst_ld_r_r,
  92. [0x58] = z80_inst_ld_r_r,
  93. [0x59] = z80_inst_ld_r_r,
  94. [0x5A] = z80_inst_ld_r_r,
  95. [0x5B] = z80_inst_ld_r_r,
  96. [0x5C] = z80_inst_ld_r_r,
  97. [0x5D] = z80_inst_ld_r_r,
  98. [0x5E] = z80_inst_ld_r_hl,
  99. [0x5F] = z80_inst_ld_r_r,
  100. [0x60] = z80_inst_ld_r_r,
  101. [0x61] = z80_inst_ld_r_r,
  102. [0x62] = z80_inst_ld_r_r,
  103. [0x63] = z80_inst_ld_r_r,
  104. [0x64] = z80_inst_ld_r_r,
  105. [0x65] = z80_inst_ld_r_r,
  106. [0x66] = z80_inst_ld_r_hl,
  107. [0x67] = z80_inst_ld_r_r,
  108. [0x68] = z80_inst_ld_r_r,
  109. [0x69] = z80_inst_ld_r_r,
  110. [0x6A] = z80_inst_ld_r_r,
  111. [0x6B] = z80_inst_ld_r_r,
  112. [0x6C] = z80_inst_ld_r_r,
  113. [0x6D] = z80_inst_ld_r_r,
  114. [0x6E] = z80_inst_ld_r_hl,
  115. [0x6F] = z80_inst_ld_r_r,
  116. [0x70] = z80_inst_ld_hl_r,
  117. [0x71] = z80_inst_ld_hl_r,
  118. [0x72] = z80_inst_ld_hl_r,
  119. [0x73] = z80_inst_ld_hl_r,
  120. [0x74] = z80_inst_ld_hl_r,
  121. [0x75] = z80_inst_ld_hl_r,
  122. [0x76] = z80_inst_halt,
  123. [0x77] = z80_inst_ld_hl_r,
  124. [0x78] = z80_inst_ld_r_r,
  125. [0x79] = z80_inst_ld_r_r,
  126. [0x7A] = z80_inst_ld_r_r,
  127. [0x7B] = z80_inst_ld_r_r,
  128. [0x7C] = z80_inst_ld_r_r,
  129. [0x7D] = z80_inst_ld_r_r,
  130. [0x7E] = z80_inst_ld_r_hl,
  131. [0x7F] = z80_inst_ld_r_r,
  132. [0x80] = z80_inst_unimplemented, // TODO
  133. [0x81] = z80_inst_unimplemented, // TODO
  134. [0x82] = z80_inst_unimplemented, // TODO
  135. [0x83] = z80_inst_unimplemented, // TODO
  136. [0x84] = z80_inst_unimplemented, // TODO
  137. [0x85] = z80_inst_unimplemented, // TODO
  138. [0x86] = z80_inst_unimplemented, // TODO
  139. [0x87] = z80_inst_unimplemented, // TODO
  140. [0x88] = z80_inst_unimplemented, // TODO
  141. [0x89] = z80_inst_unimplemented, // TODO
  142. [0x8A] = z80_inst_unimplemented, // TODO
  143. [0x8B] = z80_inst_unimplemented, // TODO
  144. [0x8C] = z80_inst_unimplemented, // TODO
  145. [0x8D] = z80_inst_unimplemented, // TODO
  146. [0x8E] = z80_inst_unimplemented, // TODO
  147. [0x8F] = z80_inst_unimplemented, // TODO
  148. [0x90] = z80_inst_unimplemented, // TODO
  149. [0x91] = z80_inst_unimplemented, // TODO
  150. [0x92] = z80_inst_unimplemented, // TODO
  151. [0x93] = z80_inst_unimplemented, // TODO
  152. [0x94] = z80_inst_unimplemented, // TODO
  153. [0x95] = z80_inst_unimplemented, // TODO
  154. [0x96] = z80_inst_unimplemented, // TODO
  155. [0x97] = z80_inst_unimplemented, // TODO
  156. [0x98] = z80_inst_unimplemented, // TODO
  157. [0x99] = z80_inst_unimplemented, // TODO
  158. [0x9A] = z80_inst_unimplemented, // TODO
  159. [0x9B] = z80_inst_unimplemented, // TODO
  160. [0x9C] = z80_inst_unimplemented, // TODO
  161. [0x9D] = z80_inst_unimplemented, // TODO
  162. [0x9E] = z80_inst_unimplemented, // TODO
  163. [0x9F] = z80_inst_unimplemented, // TODO
  164. [0xA0] = z80_inst_unimplemented, // TODO
  165. [0xA1] = z80_inst_unimplemented, // TODO
  166. [0xA2] = z80_inst_unimplemented, // TODO
  167. [0xA3] = z80_inst_unimplemented, // TODO
  168. [0xA4] = z80_inst_unimplemented, // TODO
  169. [0xA5] = z80_inst_unimplemented, // TODO
  170. [0xA6] = z80_inst_unimplemented, // TODO
  171. [0xA7] = z80_inst_unimplemented, // TODO
  172. [0xA8] = z80_inst_xor_r,
  173. [0xA9] = z80_inst_xor_r,
  174. [0xAA] = z80_inst_xor_r,
  175. [0xAB] = z80_inst_xor_r,
  176. [0xAC] = z80_inst_xor_r,
  177. [0xAD] = z80_inst_xor_r,
  178. [0xAE] = z80_inst_unimplemented, // TODO
  179. [0xAF] = z80_inst_xor_r,
  180. [0xB0] = z80_inst_or_r,
  181. [0xB1] = z80_inst_or_r,
  182. [0xB2] = z80_inst_or_r,
  183. [0xB3] = z80_inst_or_r,
  184. [0xB4] = z80_inst_or_r,
  185. [0xB5] = z80_inst_or_r,
  186. [0xB6] = z80_inst_unimplemented, // TODO
  187. [0xB7] = z80_inst_or_r,
  188. [0xB8] = z80_inst_cp_r,
  189. [0xB9] = z80_inst_cp_r,
  190. [0xBA] = z80_inst_cp_r,
  191. [0xBB] = z80_inst_cp_r,
  192. [0xBC] = z80_inst_cp_r,
  193. [0xBD] = z80_inst_cp_r,
  194. [0xBE] = z80_inst_unimplemented, // TODO
  195. [0xBF] = z80_inst_cp_r,
  196. [0xC0] = z80_inst_ret_cc,
  197. [0xC1] = z80_inst_pop_qq,
  198. [0xC2] = z80_inst_jp_cc_nn,
  199. [0xC3] = z80_inst_jp_nn,
  200. [0xC4] = z80_inst_call_cc_nn,
  201. [0xC5] = z80_inst_push_qq,
  202. [0xC6] = z80_inst_unimplemented, // TODO
  203. [0xC7] = z80_inst_rst_p,
  204. [0xC8] = z80_inst_ret_cc,
  205. [0xC9] = z80_inst_ret,
  206. [0xCA] = z80_inst_jp_cc_nn,
  207. [0xCB] = z80_prefix_bits,
  208. [0xCC] = z80_inst_call_cc_nn,
  209. [0xCD] = z80_inst_call_nn,
  210. [0xCE] = z80_inst_unimplemented, // TODO
  211. [0xCF] = z80_inst_rst_p,
  212. [0xD0] = z80_inst_ret_cc,
  213. [0xD1] = z80_inst_pop_qq,
  214. [0xD2] = z80_inst_jp_cc_nn,
  215. [0xD3] = z80_inst_out_n_a,
  216. [0xD4] = z80_inst_call_cc_nn,
  217. [0xD5] = z80_inst_push_qq,
  218. [0xD6] = z80_inst_sub_n,
  219. [0xD7] = z80_inst_rst_p,
  220. [0xD8] = z80_inst_ret_cc,
  221. [0xD9] = z80_inst_exx,
  222. [0xDA] = z80_inst_jp_cc_nn,
  223. [0xDB] = z80_inst_in_a_n,
  224. [0xDC] = z80_inst_call_cc_nn,
  225. [0xDD] = z80_prefix_index,
  226. [0xDE] = z80_inst_unimplemented, // TODO
  227. [0xDF] = z80_inst_rst_p,
  228. [0xE0] = z80_inst_ret_cc,
  229. [0xE1] = z80_inst_pop_qq,
  230. [0xE2] = z80_inst_jp_cc_nn,
  231. [0xE3] = z80_inst_unimplemented, // TODO
  232. [0xE4] = z80_inst_call_cc_nn,
  233. [0xE5] = z80_inst_push_qq,
  234. [0xE6] = z80_inst_unimplemented, // TODO
  235. [0xE7] = z80_inst_rst_p,
  236. [0xE8] = z80_inst_ret_cc,
  237. [0xE9] = z80_inst_unimplemented, // TODO
  238. [0xEA] = z80_inst_jp_cc_nn,
  239. [0xEB] = z80_inst_ex_de_hl,
  240. [0xEC] = z80_inst_call_cc_nn,
  241. [0xED] = z80_prefix_extended,
  242. [0xEE] = z80_inst_unimplemented, // TODO
  243. [0xEF] = z80_inst_rst_p,
  244. [0xF0] = z80_inst_ret_cc,
  245. [0xF1] = z80_inst_pop_qq,
  246. [0xF2] = z80_inst_jp_cc_nn,
  247. [0xF3] = z80_inst_di,
  248. [0xF4] = z80_inst_call_cc_nn,
  249. [0xF5] = z80_inst_push_qq,
  250. [0xF6] = z80_inst_or_n,
  251. [0xF7] = z80_inst_rst_p,
  252. [0xF8] = z80_inst_ret_cc,
  253. [0xF9] = z80_inst_unimplemented, // TODO
  254. [0xFA] = z80_inst_jp_cc_nn,
  255. [0xFB] = z80_inst_ei,
  256. [0xFC] = z80_inst_call_cc_nn,
  257. [0xFD] = z80_prefix_index,
  258. [0xFE] = z80_inst_cp_n,
  259. [0xFF] = z80_inst_rst_p
  260. };
  261. static DispatchTable instruction_table_extended = {
  262. [0x00] = z80_inst_nop2,
  263. [0x01] = z80_inst_nop2,
  264. [0x02] = z80_inst_nop2,
  265. [0x03] = z80_inst_nop2,
  266. [0x04] = z80_inst_nop2,
  267. [0x05] = z80_inst_nop2,
  268. [0x06] = z80_inst_nop2,
  269. [0x07] = z80_inst_nop2,
  270. [0x08] = z80_inst_nop2,
  271. [0x09] = z80_inst_nop2,
  272. [0x0A] = z80_inst_nop2,
  273. [0x0B] = z80_inst_nop2,
  274. [0x0C] = z80_inst_nop2,
  275. [0x0D] = z80_inst_nop2,
  276. [0x0E] = z80_inst_nop2,
  277. [0x0F] = z80_inst_nop2,
  278. [0x10] = z80_inst_nop2,
  279. [0x11] = z80_inst_nop2,
  280. [0x12] = z80_inst_nop2,
  281. [0x13] = z80_inst_nop2,
  282. [0x14] = z80_inst_nop2,
  283. [0x15] = z80_inst_nop2,
  284. [0x16] = z80_inst_nop2,
  285. [0x17] = z80_inst_nop2,
  286. [0x18] = z80_inst_nop2,
  287. [0x19] = z80_inst_nop2,
  288. [0x1A] = z80_inst_nop2,
  289. [0x1B] = z80_inst_nop2,
  290. [0x1C] = z80_inst_nop2,
  291. [0x1D] = z80_inst_nop2,
  292. [0x1E] = z80_inst_nop2,
  293. [0x1F] = z80_inst_nop2,
  294. [0x20] = z80_inst_nop2,
  295. [0x21] = z80_inst_nop2,
  296. [0x22] = z80_inst_nop2,
  297. [0x23] = z80_inst_nop2,
  298. [0x24] = z80_inst_nop2,
  299. [0x25] = z80_inst_nop2,
  300. [0x26] = z80_inst_nop2,
  301. [0x27] = z80_inst_nop2,
  302. [0x28] = z80_inst_nop2,
  303. [0x29] = z80_inst_nop2,
  304. [0x2A] = z80_inst_nop2,
  305. [0x2B] = z80_inst_nop2,
  306. [0x2C] = z80_inst_nop2,
  307. [0x2D] = z80_inst_nop2,
  308. [0x2E] = z80_inst_nop2,
  309. [0x2F] = z80_inst_nop2,
  310. [0x30] = z80_inst_nop2,
  311. [0x31] = z80_inst_nop2,
  312. [0x32] = z80_inst_nop2,
  313. [0x33] = z80_inst_nop2,
  314. [0x34] = z80_inst_nop2,
  315. [0x35] = z80_inst_nop2,
  316. [0x36] = z80_inst_nop2,
  317. [0x37] = z80_inst_nop2,
  318. [0x38] = z80_inst_nop2,
  319. [0x39] = z80_inst_nop2,
  320. [0x3A] = z80_inst_nop2,
  321. [0x3B] = z80_inst_nop2,
  322. [0x3C] = z80_inst_nop2,
  323. [0x3D] = z80_inst_nop2,
  324. [0x3E] = z80_inst_nop2,
  325. [0x3F] = z80_inst_nop2,
  326. [0x40] = z80_inst_in_r_c,
  327. [0x41] = z80_inst_out_c_r,
  328. [0x42] = z80_inst_sbc_hl_ss,
  329. [0x43] = z80_inst_unimplemented, // TODO
  330. [0x44] = z80_inst_unimplemented, // TODO
  331. [0x45] = z80_inst_retn,
  332. [0x46] = z80_inst_im,
  333. [0x47] = z80_inst_unimplemented, // TODO
  334. [0x48] = z80_inst_in_r_c,
  335. [0x49] = z80_inst_out_c_r,
  336. [0x4A] = z80_inst_unimplemented, // TODO
  337. [0x4B] = z80_inst_unimplemented, // TODO
  338. [0x4C] = z80_inst_unimplemented, // TODO
  339. [0x4D] = z80_inst_unimplemented, // TODO
  340. [0x4E] = z80_inst_im,
  341. [0x4F] = z80_inst_unimplemented, // TODO
  342. [0x50] = z80_inst_in_r_c,
  343. [0x51] = z80_inst_out_c_r,
  344. [0x52] = z80_inst_sbc_hl_ss,
  345. [0x53] = z80_inst_unimplemented, // TODO
  346. [0x54] = z80_inst_unimplemented, // TODO
  347. [0x55] = z80_inst_retn,
  348. [0x56] = z80_inst_im,
  349. [0x57] = z80_inst_unimplemented, // TODO
  350. [0x58] = z80_inst_in_r_c,
  351. [0x59] = z80_inst_out_c_r,
  352. [0x5A] = z80_inst_unimplemented, // TODO
  353. [0x5B] = z80_inst_unimplemented, // TODO
  354. [0x5C] = z80_inst_unimplemented, // TODO
  355. [0x5D] = z80_inst_retn,
  356. [0x5E] = z80_inst_im,
  357. [0x5F] = z80_inst_unimplemented, // TODO
  358. [0x60] = z80_inst_in_r_c,
  359. [0x61] = z80_inst_out_c_r,
  360. [0x62] = z80_inst_sbc_hl_ss,
  361. [0x63] = z80_inst_unimplemented, // TODO
  362. [0x64] = z80_inst_unimplemented, // TODO
  363. [0x65] = z80_inst_retn,
  364. [0x66] = z80_inst_im,
  365. [0x67] = z80_inst_unimplemented, // TODO
  366. [0x68] = z80_inst_in_r_c,
  367. [0x69] = z80_inst_out_c_r,
  368. [0x6A] = z80_inst_unimplemented, // TODO
  369. [0x6B] = z80_inst_unimplemented, // TODO
  370. [0x6C] = z80_inst_unimplemented, // TODO
  371. [0x6D] = z80_inst_retn,
  372. [0x6E] = z80_inst_im,
  373. [0x6F] = z80_inst_unimplemented, // TODO
  374. [0x70] = z80_inst_in_r_c,
  375. [0x71] = z80_inst_out_c_r,
  376. [0x72] = z80_inst_sbc_hl_ss,
  377. [0x73] = z80_inst_unimplemented, // TODO
  378. [0x74] = z80_inst_unimplemented, // TODO
  379. [0x75] = z80_inst_retn,
  380. [0x76] = z80_inst_im,
  381. [0x77] = z80_inst_nop2,
  382. [0x78] = z80_inst_in_r_c,
  383. [0x79] = z80_inst_out_c_r,
  384. [0x7A] = z80_inst_unimplemented, // TODO
  385. [0x7B] = z80_inst_unimplemented, // TODO
  386. [0x7C] = z80_inst_unimplemented, // TODO
  387. [0x7D] = z80_inst_retn,
  388. [0x7E] = z80_inst_im,
  389. [0x7F] = z80_inst_nop2,
  390. [0x80] = z80_inst_unimplemented, // TODO
  391. [0x81] = z80_inst_unimplemented, // TODO
  392. [0x82] = z80_inst_unimplemented, // TODO
  393. [0x83] = z80_inst_unimplemented, // TODO
  394. [0x84] = z80_inst_unimplemented, // TODO
  395. [0x85] = z80_inst_unimplemented, // TODO
  396. [0x86] = z80_inst_unimplemented, // TODO
  397. [0x87] = z80_inst_unimplemented, // TODO
  398. [0x88] = z80_inst_unimplemented, // TODO
  399. [0x89] = z80_inst_unimplemented, // TODO
  400. [0x8A] = z80_inst_unimplemented, // TODO
  401. [0x8B] = z80_inst_unimplemented, // TODO
  402. [0x8C] = z80_inst_unimplemented, // TODO
  403. [0x8D] = z80_inst_unimplemented, // TODO
  404. [0x8E] = z80_inst_unimplemented, // TODO
  405. [0x8F] = z80_inst_unimplemented, // TODO
  406. [0x90] = z80_inst_unimplemented, // TODO
  407. [0x91] = z80_inst_unimplemented, // TODO
  408. [0x92] = z80_inst_unimplemented, // TODO
  409. [0x93] = z80_inst_unimplemented, // TODO
  410. [0x94] = z80_inst_unimplemented, // TODO
  411. [0x95] = z80_inst_unimplemented, // TODO
  412. [0x96] = z80_inst_unimplemented, // TODO
  413. [0x97] = z80_inst_unimplemented, // TODO
  414. [0x98] = z80_inst_unimplemented, // TODO
  415. [0x99] = z80_inst_unimplemented, // TODO
  416. [0x9A] = z80_inst_unimplemented, // TODO
  417. [0x9B] = z80_inst_unimplemented, // TODO
  418. [0x9C] = z80_inst_unimplemented, // TODO
  419. [0x9D] = z80_inst_unimplemented, // TODO
  420. [0x9E] = z80_inst_unimplemented, // TODO
  421. [0x9F] = z80_inst_unimplemented, // TODO
  422. [0xA0] = z80_inst_ldi,
  423. [0xA1] = z80_inst_unimplemented, // TODO
  424. [0xA2] = z80_inst_ini,
  425. [0xA3] = z80_inst_outi,
  426. [0xA4] = z80_inst_nop2,
  427. [0xA5] = z80_inst_nop2,
  428. [0xA6] = z80_inst_nop2,
  429. [0xA7] = z80_inst_nop2,
  430. [0xA8] = z80_inst_ldd,
  431. [0xA9] = z80_inst_unimplemented, // TODO
  432. [0xAA] = z80_inst_ind,
  433. [0xAB] = z80_inst_outd,
  434. [0xAC] = z80_inst_nop2,
  435. [0xAD] = z80_inst_nop2,
  436. [0xAE] = z80_inst_nop2,
  437. [0xAF] = z80_inst_nop2,
  438. [0xB0] = z80_inst_ldir,
  439. [0xB1] = z80_inst_unimplemented, // TODO
  440. [0xB2] = z80_inst_inir,
  441. [0xB3] = z80_inst_otir,
  442. [0xB4] = z80_inst_nop2,
  443. [0xB5] = z80_inst_nop2,
  444. [0xB6] = z80_inst_nop2,
  445. [0xB7] = z80_inst_nop2,
  446. [0xB8] = z80_inst_lddr,
  447. [0xB9] = z80_inst_unimplemented, // TODO
  448. [0xBA] = z80_inst_indr,
  449. [0xBB] = z80_inst_otdr,
  450. [0xBC] = z80_inst_nop2,
  451. [0xBD] = z80_inst_nop2,
  452. [0xBE] = z80_inst_nop2,
  453. [0xBF] = z80_inst_nop2,
  454. [0xC0] = z80_inst_nop2,
  455. [0xC1] = z80_inst_nop2,
  456. [0xC2] = z80_inst_nop2,
  457. [0xC3] = z80_inst_nop2,
  458. [0xC4] = z80_inst_nop2,
  459. [0xC5] = z80_inst_nop2,
  460. [0xC6] = z80_inst_nop2,
  461. [0xC7] = z80_inst_nop2,
  462. [0xC8] = z80_inst_nop2,
  463. [0xC9] = z80_inst_nop2,
  464. [0xCA] = z80_inst_nop2,
  465. [0xCB] = z80_inst_nop2,
  466. [0xCC] = z80_inst_nop2,
  467. [0xCD] = z80_inst_nop2,
  468. [0xCE] = z80_inst_nop2,
  469. [0xCF] = z80_inst_nop2,
  470. [0xD0] = z80_inst_nop2,
  471. [0xD1] = z80_inst_nop2,
  472. [0xD2] = z80_inst_nop2,
  473. [0xD3] = z80_inst_nop2,
  474. [0xD4] = z80_inst_nop2,
  475. [0xD5] = z80_inst_nop2,
  476. [0xD6] = z80_inst_nop2,
  477. [0xD7] = z80_inst_nop2,
  478. [0xD8] = z80_inst_nop2,
  479. [0xD9] = z80_inst_nop2,
  480. [0xDA] = z80_inst_nop2,
  481. [0xDB] = z80_inst_nop2,
  482. [0xDC] = z80_inst_nop2,
  483. [0xDD] = z80_inst_nop2,
  484. [0xDE] = z80_inst_nop2,
  485. [0xDF] = z80_inst_nop2,
  486. [0xE0] = z80_inst_nop2,
  487. [0xE1] = z80_inst_nop2,
  488. [0xE2] = z80_inst_nop2,
  489. [0xE3] = z80_inst_nop2,
  490. [0xE4] = z80_inst_nop2,
  491. [0xE5] = z80_inst_nop2,
  492. [0xE6] = z80_inst_nop2,
  493. [0xE7] = z80_inst_nop2,
  494. [0xE8] = z80_inst_nop2,
  495. [0xE9] = z80_inst_nop2,
  496. [0xEA] = z80_inst_nop2,
  497. [0xEB] = z80_inst_nop2,
  498. [0xEC] = z80_inst_nop2,
  499. [0xED] = z80_inst_nop2,
  500. [0xEE] = z80_inst_nop2,
  501. [0xEF] = z80_inst_nop2,
  502. [0xF0] = z80_inst_nop2,
  503. [0xF1] = z80_inst_nop2,
  504. [0xF2] = z80_inst_nop2,
  505. [0xF3] = z80_inst_nop2,
  506. [0xF4] = z80_inst_nop2,
  507. [0xF5] = z80_inst_nop2,
  508. [0xF6] = z80_inst_nop2,
  509. [0xF7] = z80_inst_nop2,
  510. [0xF8] = z80_inst_nop2,
  511. [0xF9] = z80_inst_nop2,
  512. [0xFA] = z80_inst_nop2,
  513. [0xFB] = z80_inst_nop2,
  514. [0xFC] = z80_inst_nop2,
  515. [0xFD] = z80_inst_nop2,
  516. [0xFE] = z80_inst_nop2,
  517. [0xFF] = z80_inst_nop2
  518. };
  519. static DispatchTable instruction_table_bits = {
  520. [0x00] = z80_inst_unimplemented, // TODO
  521. [0x01] = z80_inst_unimplemented, // TODO
  522. [0x02] = z80_inst_unimplemented, // TODO
  523. [0x03] = z80_inst_unimplemented, // TODO
  524. [0x04] = z80_inst_unimplemented, // TODO
  525. [0x05] = z80_inst_unimplemented, // TODO
  526. [0x06] = z80_inst_unimplemented, // TODO
  527. [0x07] = z80_inst_unimplemented, // TODO
  528. [0x08] = z80_inst_unimplemented, // TODO
  529. [0x09] = z80_inst_unimplemented, // TODO
  530. [0x0A] = z80_inst_unimplemented, // TODO
  531. [0x0B] = z80_inst_unimplemented, // TODO
  532. [0x0C] = z80_inst_unimplemented, // TODO
  533. [0x0D] = z80_inst_unimplemented, // TODO
  534. [0x0E] = z80_inst_unimplemented, // TODO
  535. [0x0F] = z80_inst_unimplemented, // TODO
  536. [0x10] = z80_inst_unimplemented, // TODO
  537. [0x11] = z80_inst_unimplemented, // TODO
  538. [0x12] = z80_inst_unimplemented, // TODO
  539. [0x13] = z80_inst_unimplemented, // TODO
  540. [0x14] = z80_inst_unimplemented, // TODO
  541. [0x15] = z80_inst_unimplemented, // TODO
  542. [0x16] = z80_inst_unimplemented, // TODO
  543. [0x17] = z80_inst_unimplemented, // TODO
  544. [0x18] = z80_inst_unimplemented, // TODO
  545. [0x19] = z80_inst_unimplemented, // TODO
  546. [0x1A] = z80_inst_unimplemented, // TODO
  547. [0x1B] = z80_inst_unimplemented, // TODO
  548. [0x1C] = z80_inst_unimplemented, // TODO
  549. [0x1D] = z80_inst_unimplemented, // TODO
  550. [0x1E] = z80_inst_unimplemented, // TODO
  551. [0x1F] = z80_inst_unimplemented, // TODO
  552. [0x20] = z80_inst_unimplemented, // TODO
  553. [0x21] = z80_inst_unimplemented, // TODO
  554. [0x22] = z80_inst_unimplemented, // TODO
  555. [0x23] = z80_inst_unimplemented, // TODO
  556. [0x24] = z80_inst_unimplemented, // TODO
  557. [0x25] = z80_inst_unimplemented, // TODO
  558. [0x26] = z80_inst_unimplemented, // TODO
  559. [0x27] = z80_inst_unimplemented, // TODO
  560. [0x28] = z80_inst_unimplemented, // TODO
  561. [0x29] = z80_inst_unimplemented, // TODO
  562. [0x2A] = z80_inst_unimplemented, // TODO
  563. [0x2B] = z80_inst_unimplemented, // TODO
  564. [0x2C] = z80_inst_unimplemented, // TODO
  565. [0x2D] = z80_inst_unimplemented, // TODO
  566. [0x2E] = z80_inst_unimplemented, // TODO
  567. [0x2F] = z80_inst_unimplemented, // TODO
  568. [0x30] = z80_inst_unimplemented, // TODO
  569. [0x31] = z80_inst_unimplemented, // TODO
  570. [0x32] = z80_inst_unimplemented, // TODO
  571. [0x33] = z80_inst_unimplemented, // TODO
  572. [0x34] = z80_inst_unimplemented, // TODO
  573. [0x35] = z80_inst_unimplemented, // TODO
  574. [0x36] = z80_inst_unimplemented, // TODO
  575. [0x37] = z80_inst_unimplemented, // TODO
  576. [0x38] = z80_inst_unimplemented, // TODO
  577. [0x39] = z80_inst_unimplemented, // TODO
  578. [0x3A] = z80_inst_unimplemented, // TODO
  579. [0x3B] = z80_inst_unimplemented, // TODO
  580. [0x3C] = z80_inst_unimplemented, // TODO
  581. [0x3D] = z80_inst_unimplemented, // TODO
  582. [0x3E] = z80_inst_unimplemented, // TODO
  583. [0x3F] = z80_inst_unimplemented, // TODO
  584. [0x40] = z80_inst_unimplemented, // TODO
  585. [0x41] = z80_inst_unimplemented, // TODO
  586. [0x42] = z80_inst_unimplemented, // TODO
  587. [0x43] = z80_inst_unimplemented, // TODO
  588. [0x44] = z80_inst_unimplemented, // TODO
  589. [0x45] = z80_inst_unimplemented, // TODO
  590. [0x46] = z80_inst_unimplemented, // TODO
  591. [0x47] = z80_inst_unimplemented, // TODO
  592. [0x48] = z80_inst_unimplemented, // TODO
  593. [0x49] = z80_inst_unimplemented, // TODO
  594. [0x4A] = z80_inst_unimplemented, // TODO
  595. [0x4B] = z80_inst_unimplemented, // TODO
  596. [0x4C] = z80_inst_unimplemented, // TODO
  597. [0x4D] = z80_inst_unimplemented, // TODO
  598. [0x4E] = z80_inst_unimplemented, // TODO
  599. [0x4F] = z80_inst_unimplemented, // TODO
  600. [0x50] = z80_inst_unimplemented, // TODO
  601. [0x51] = z80_inst_unimplemented, // TODO
  602. [0x52] = z80_inst_unimplemented, // TODO
  603. [0x53] = z80_inst_unimplemented, // TODO
  604. [0x54] = z80_inst_unimplemented, // TODO
  605. [0x55] = z80_inst_unimplemented, // TODO
  606. [0x56] = z80_inst_unimplemented, // TODO
  607. [0x57] = z80_inst_unimplemented, // TODO
  608. [0x58] = z80_inst_unimplemented, // TODO
  609. [0x59] = z80_inst_unimplemented, // TODO
  610. [0x5A] = z80_inst_unimplemented, // TODO
  611. [0x5B] = z80_inst_unimplemented, // TODO
  612. [0x5C] = z80_inst_unimplemented, // TODO
  613. [0x5D] = z80_inst_unimplemented, // TODO
  614. [0x5E] = z80_inst_unimplemented, // TODO
  615. [0x5F] = z80_inst_unimplemented, // TODO
  616. [0x60] = z80_inst_unimplemented, // TODO
  617. [0x61] = z80_inst_unimplemented, // TODO
  618. [0x62] = z80_inst_unimplemented, // TODO
  619. [0x63] = z80_inst_unimplemented, // TODO
  620. [0x64] = z80_inst_unimplemented, // TODO
  621. [0x65] = z80_inst_unimplemented, // TODO
  622. [0x66] = z80_inst_unimplemented, // TODO
  623. [0x67] = z80_inst_unimplemented, // TODO
  624. [0x68] = z80_inst_unimplemented, // TODO
  625. [0x69] = z80_inst_unimplemented, // TODO
  626. [0x6A] = z80_inst_unimplemented, // TODO
  627. [0x6B] = z80_inst_unimplemented, // TODO
  628. [0x6C] = z80_inst_unimplemented, // TODO
  629. [0x6D] = z80_inst_unimplemented, // TODO
  630. [0x6E] = z80_inst_unimplemented, // TODO
  631. [0x6F] = z80_inst_unimplemented, // TODO
  632. [0x70] = z80_inst_unimplemented, // TODO
  633. [0x71] = z80_inst_unimplemented, // TODO
  634. [0x72] = z80_inst_unimplemented, // TODO
  635. [0x73] = z80_inst_unimplemented, // TODO
  636. [0x74] = z80_inst_unimplemented, // TODO
  637. [0x75] = z80_inst_unimplemented, // TODO
  638. [0x76] = z80_inst_unimplemented, // TODO
  639. [0x77] = z80_inst_unimplemented, // TODO
  640. [0x78] = z80_inst_unimplemented, // TODO
  641. [0x79] = z80_inst_unimplemented, // TODO
  642. [0x7A] = z80_inst_unimplemented, // TODO
  643. [0x7B] = z80_inst_unimplemented, // TODO
  644. [0x7C] = z80_inst_unimplemented, // TODO
  645. [0x7D] = z80_inst_unimplemented, // TODO
  646. [0x7E] = z80_inst_unimplemented, // TODO
  647. [0x7F] = z80_inst_unimplemented, // TODO
  648. [0x80] = z80_inst_unimplemented, // TODO
  649. [0x81] = z80_inst_unimplemented, // TODO
  650. [0x82] = z80_inst_unimplemented, // TODO
  651. [0x83] = z80_inst_unimplemented, // TODO
  652. [0x84] = z80_inst_unimplemented, // TODO
  653. [0x85] = z80_inst_unimplemented, // TODO
  654. [0x86] = z80_inst_unimplemented, // TODO
  655. [0x87] = z80_inst_unimplemented, // TODO
  656. [0x88] = z80_inst_unimplemented, // TODO
  657. [0x89] = z80_inst_unimplemented, // TODO
  658. [0x8A] = z80_inst_unimplemented, // TODO
  659. [0x8B] = z80_inst_unimplemented, // TODO
  660. [0x8C] = z80_inst_unimplemented, // TODO
  661. [0x8D] = z80_inst_unimplemented, // TODO
  662. [0x8E] = z80_inst_unimplemented, // TODO
  663. [0x8F] = z80_inst_unimplemented, // TODO
  664. [0x90] = z80_inst_unimplemented, // TODO
  665. [0x91] = z80_inst_unimplemented, // TODO
  666. [0x92] = z80_inst_unimplemented, // TODO
  667. [0x93] = z80_inst_unimplemented, // TODO
  668. [0x94] = z80_inst_unimplemented, // TODO
  669. [0x95] = z80_inst_unimplemented, // TODO
  670. [0x96] = z80_inst_unimplemented, // TODO
  671. [0x97] = z80_inst_unimplemented, // TODO
  672. [0x98] = z80_inst_unimplemented, // TODO
  673. [0x99] = z80_inst_unimplemented, // TODO
  674. [0x9A] = z80_inst_unimplemented, // TODO
  675. [0x9B] = z80_inst_unimplemented, // TODO
  676. [0x9C] = z80_inst_unimplemented, // TODO
  677. [0x9D] = z80_inst_unimplemented, // TODO
  678. [0x9E] = z80_inst_unimplemented, // TODO
  679. [0x9F] = z80_inst_unimplemented, // TODO
  680. [0xA0] = z80_inst_unimplemented, // TODO
  681. [0xA1] = z80_inst_unimplemented, // TODO
  682. [0xA2] = z80_inst_unimplemented, // TODO
  683. [0xA3] = z80_inst_unimplemented, // TODO
  684. [0xA4] = z80_inst_unimplemented, // TODO
  685. [0xA5] = z80_inst_unimplemented, // TODO
  686. [0xA6] = z80_inst_unimplemented, // TODO
  687. [0xA7] = z80_inst_unimplemented, // TODO
  688. [0xA8] = z80_inst_unimplemented, // TODO
  689. [0xA9] = z80_inst_unimplemented, // TODO
  690. [0xAA] = z80_inst_unimplemented, // TODO
  691. [0xAB] = z80_inst_unimplemented, // TODO
  692. [0xAC] = z80_inst_unimplemented, // TODO
  693. [0xAD] = z80_inst_unimplemented, // TODO
  694. [0xAE] = z80_inst_unimplemented, // TODO
  695. [0xAF] = z80_inst_unimplemented, // TODO
  696. [0xB0] = z80_inst_unimplemented, // TODO
  697. [0xB1] = z80_inst_unimplemented, // TODO
  698. [0xB2] = z80_inst_unimplemented, // TODO
  699. [0xB3] = z80_inst_unimplemented, // TODO
  700. [0xB4] = z80_inst_unimplemented, // TODO
  701. [0xB5] = z80_inst_unimplemented, // TODO
  702. [0xB6] = z80_inst_unimplemented, // TODO
  703. [0xB7] = z80_inst_unimplemented, // TODO
  704. [0xB8] = z80_inst_unimplemented, // TODO
  705. [0xB9] = z80_inst_unimplemented, // TODO
  706. [0xBA] = z80_inst_unimplemented, // TODO
  707. [0xBB] = z80_inst_unimplemented, // TODO
  708. [0xBC] = z80_inst_unimplemented, // TODO
  709. [0xBD] = z80_inst_unimplemented, // TODO
  710. [0xBE] = z80_inst_unimplemented, // TODO
  711. [0xBF] = z80_inst_unimplemented, // TODO
  712. [0xC0] = z80_inst_unimplemented, // TODO
  713. [0xC1] = z80_inst_unimplemented, // TODO
  714. [0xC2] = z80_inst_unimplemented, // TODO
  715. [0xC3] = z80_inst_unimplemented, // TODO
  716. [0xC4] = z80_inst_unimplemented, // TODO
  717. [0xC5] = z80_inst_unimplemented, // TODO
  718. [0xC6] = z80_inst_unimplemented, // TODO
  719. [0xC7] = z80_inst_unimplemented, // TODO
  720. [0xC8] = z80_inst_unimplemented, // TODO
  721. [0xC9] = z80_inst_unimplemented, // TODO
  722. [0xCA] = z80_inst_unimplemented, // TODO
  723. [0xCB] = z80_inst_unimplemented, // TODO
  724. [0xCC] = z80_inst_unimplemented, // TODO
  725. [0xCD] = z80_inst_unimplemented, // TODO
  726. [0xCE] = z80_inst_unimplemented, // TODO
  727. [0xCF] = z80_inst_unimplemented, // TODO
  728. [0xD0] = z80_inst_unimplemented, // TODO
  729. [0xD1] = z80_inst_unimplemented, // TODO
  730. [0xD2] = z80_inst_unimplemented, // TODO
  731. [0xD3] = z80_inst_unimplemented, // TODO
  732. [0xD4] = z80_inst_unimplemented, // TODO
  733. [0xD5] = z80_inst_unimplemented, // TODO
  734. [0xD6] = z80_inst_unimplemented, // TODO
  735. [0xD7] = z80_inst_unimplemented, // TODO
  736. [0xD8] = z80_inst_unimplemented, // TODO
  737. [0xD9] = z80_inst_unimplemented, // TODO
  738. [0xDA] = z80_inst_unimplemented, // TODO
  739. [0xDB] = z80_inst_unimplemented, // TODO
  740. [0xDC] = z80_inst_unimplemented, // TODO
  741. [0xDD] = z80_inst_unimplemented, // TODO
  742. [0xDE] = z80_inst_unimplemented, // TODO
  743. [0xDF] = z80_inst_unimplemented, // TODO
  744. [0xE0] = z80_inst_unimplemented, // TODO
  745. [0xE1] = z80_inst_unimplemented, // TODO
  746. [0xE2] = z80_inst_unimplemented, // TODO
  747. [0xE3] = z80_inst_unimplemented, // TODO
  748. [0xE4] = z80_inst_unimplemented, // TODO
  749. [0xE5] = z80_inst_unimplemented, // TODO
  750. [0xE6] = z80_inst_unimplemented, // TODO
  751. [0xE7] = z80_inst_unimplemented, // TODO
  752. [0xE8] = z80_inst_unimplemented, // TODO
  753. [0xE9] = z80_inst_unimplemented, // TODO
  754. [0xEA] = z80_inst_unimplemented, // TODO
  755. [0xEB] = z80_inst_unimplemented, // TODO
  756. [0xEC] = z80_inst_unimplemented, // TODO
  757. [0xED] = z80_inst_unimplemented, // TODO
  758. [0xEE] = z80_inst_unimplemented, // TODO
  759. [0xEF] = z80_inst_unimplemented, // TODO
  760. [0xF0] = z80_inst_unimplemented, // TODO
  761. [0xF1] = z80_inst_unimplemented, // TODO
  762. [0xF2] = z80_inst_unimplemented, // TODO
  763. [0xF3] = z80_inst_unimplemented, // TODO
  764. [0xF4] = z80_inst_unimplemented, // TODO
  765. [0xF5] = z80_inst_unimplemented, // TODO
  766. [0xF6] = z80_inst_unimplemented, // TODO
  767. [0xF7] = z80_inst_unimplemented, // TODO
  768. [0xF8] = z80_inst_unimplemented, // TODO
  769. [0xF9] = z80_inst_unimplemented, // TODO
  770. [0xFA] = z80_inst_unimplemented, // TODO
  771. [0xFB] = z80_inst_unimplemented, // TODO
  772. [0xFC] = z80_inst_unimplemented, // TODO
  773. [0xFD] = z80_inst_unimplemented, // TODO
  774. [0xFE] = z80_inst_unimplemented, // TODO
  775. [0xFF] = z80_inst_unimplemented // TODO
  776. };
  777. static DispatchTable instruction_table_index = {
  778. [0x00] = z80_inst_nop2,
  779. [0x01] = z80_inst_nop2,
  780. [0x02] = z80_inst_nop2,
  781. [0x03] = z80_inst_nop2,
  782. [0x04] = z80_inst_nop2,
  783. [0x05] = z80_inst_nop2,
  784. [0x06] = z80_inst_nop2,
  785. [0x07] = z80_inst_nop2,
  786. [0x08] = z80_inst_nop2,
  787. [0x09] = z80_inst_unimplemented, // TODO
  788. [0x0A] = z80_inst_nop2,
  789. [0x0B] = z80_inst_nop2,
  790. [0x0C] = z80_inst_nop2,
  791. [0x0D] = z80_inst_nop2,
  792. [0x0E] = z80_inst_nop2,
  793. [0x0F] = z80_inst_nop2,
  794. [0x10] = z80_inst_nop2,
  795. [0x11] = z80_inst_nop2,
  796. [0x12] = z80_inst_nop2,
  797. [0x13] = z80_inst_nop2,
  798. [0x14] = z80_inst_nop2,
  799. [0x15] = z80_inst_nop2,
  800. [0x16] = z80_inst_nop2,
  801. [0x17] = z80_inst_nop2,
  802. [0x18] = z80_inst_nop2,
  803. [0x19] = z80_inst_unimplemented, // TODO
  804. [0x1A] = z80_inst_nop2,
  805. [0x1B] = z80_inst_nop2,
  806. [0x1C] = z80_inst_nop2,
  807. [0x1D] = z80_inst_nop2,
  808. [0x1E] = z80_inst_nop2,
  809. [0x1F] = z80_inst_nop2,
  810. [0x20] = z80_inst_nop2,
  811. [0x21] = z80_inst_unimplemented, // TODO
  812. [0x22] = z80_inst_unimplemented, // TODO
  813. [0x23] = z80_inst_unimplemented, // TODO
  814. [0x24] = z80_inst_unimplemented, // TODO
  815. [0x25] = z80_inst_unimplemented, // TODO
  816. [0x26] = z80_inst_unimplemented, // TODO
  817. [0x27] = z80_inst_nop2,
  818. [0x28] = z80_inst_nop2,
  819. [0x29] = z80_inst_unimplemented, // TODO
  820. [0x2A] = z80_inst_unimplemented, // TODO
  821. [0x2B] = z80_inst_unimplemented, // TODO
  822. [0x2C] = z80_inst_unimplemented, // TODO
  823. [0x2D] = z80_inst_unimplemented, // TODO
  824. [0x2E] = z80_inst_unimplemented, // TODO
  825. [0x2F] = z80_inst_nop2,
  826. [0x30] = z80_inst_nop2,
  827. [0x31] = z80_inst_nop2,
  828. [0x32] = z80_inst_nop2,
  829. [0x33] = z80_inst_nop2,
  830. [0x34] = z80_inst_unimplemented, // TODO
  831. [0x35] = z80_inst_unimplemented, // TODO
  832. [0x36] = z80_inst_unimplemented, // TODO
  833. [0x37] = z80_inst_nop2,
  834. [0x38] = z80_inst_nop2,
  835. [0x39] = z80_inst_unimplemented, // TODO
  836. [0x3A] = z80_inst_nop2,
  837. [0x3B] = z80_inst_nop2,
  838. [0x3C] = z80_inst_nop2,
  839. [0x3D] = z80_inst_nop2,
  840. [0x3E] = z80_inst_nop2,
  841. [0x3F] = z80_inst_nop2,
  842. [0x40] = z80_inst_nop2,
  843. [0x41] = z80_inst_nop2,
  844. [0x42] = z80_inst_nop2,
  845. [0x43] = z80_inst_nop2,
  846. [0x44] = z80_inst_unimplemented, // TODO
  847. [0x45] = z80_inst_unimplemented, // TODO
  848. [0x46] = z80_inst_unimplemented, // TODO
  849. [0x47] = z80_inst_nop2,
  850. [0x48] = z80_inst_nop2,
  851. [0x49] = z80_inst_nop2,
  852. [0x4A] = z80_inst_nop2,
  853. [0x4B] = z80_inst_nop2,
  854. [0x4C] = z80_inst_unimplemented, // TODO
  855. [0x4D] = z80_inst_unimplemented, // TODO
  856. [0x4E] = z80_inst_unimplemented, // TODO
  857. [0x4F] = z80_inst_nop2,
  858. [0x50] = z80_inst_nop2,
  859. [0x51] = z80_inst_nop2,
  860. [0x52] = z80_inst_nop2,
  861. [0x53] = z80_inst_nop2,
  862. [0x54] = z80_inst_unimplemented, // TODO
  863. [0x55] = z80_inst_unimplemented, // TODO
  864. [0x56] = z80_inst_unimplemented, // TODO
  865. [0x57] = z80_inst_nop2,
  866. [0x58] = z80_inst_nop2,
  867. [0x59] = z80_inst_nop2,
  868. [0x5A] = z80_inst_nop2,
  869. [0x5B] = z80_inst_nop2,
  870. [0x5C] = z80_inst_unimplemented, // TODO
  871. [0x5D] = z80_inst_unimplemented, // TODO
  872. [0x5E] = z80_inst_unimplemented, // TODO
  873. [0x5F] = z80_inst_nop2,
  874. [0x60] = z80_inst_unimplemented, // TODO
  875. [0x61] = z80_inst_unimplemented, // TODO
  876. [0x62] = z80_inst_unimplemented, // TODO
  877. [0x63] = z80_inst_unimplemented, // TODO
  878. [0x64] = z80_inst_unimplemented, // TODO
  879. [0x65] = z80_inst_unimplemented, // TODO
  880. [0x66] = z80_inst_unimplemented, // TODO
  881. [0x67] = z80_inst_unimplemented, // TODO
  882. [0x68] = z80_inst_unimplemented, // TODO
  883. [0x69] = z80_inst_unimplemented, // TODO
  884. [0x6A] = z80_inst_unimplemented, // TODO
  885. [0x6B] = z80_inst_unimplemented, // TODO
  886. [0x6C] = z80_inst_unimplemented, // TODO
  887. [0x6D] = z80_inst_unimplemented, // TODO
  888. [0x6E] = z80_inst_unimplemented, // TODO
  889. [0x6F] = z80_inst_unimplemented, // TODO
  890. [0x70] = z80_inst_unimplemented, // TODO
  891. [0x71] = z80_inst_unimplemented, // TODO
  892. [0x72] = z80_inst_unimplemented, // TODO
  893. [0x73] = z80_inst_unimplemented, // TODO
  894. [0x74] = z80_inst_unimplemented, // TODO
  895. [0x75] = z80_inst_unimplemented, // TODO
  896. [0x76] = z80_inst_nop2,
  897. [0x77] = z80_inst_unimplemented, // TODO
  898. [0x78] = z80_inst_nop2,
  899. [0x79] = z80_inst_nop2,
  900. [0x7A] = z80_inst_nop2,
  901. [0x7B] = z80_inst_nop2,
  902. [0x7C] = z80_inst_unimplemented, // TODO
  903. [0x7D] = z80_inst_unimplemented, // TODO
  904. [0x7E] = z80_inst_unimplemented, // TODO
  905. [0x7F] = z80_inst_nop2,
  906. [0x80] = z80_inst_nop2,
  907. [0x81] = z80_inst_nop2,
  908. [0x82] = z80_inst_nop2,
  909. [0x83] = z80_inst_nop2,
  910. [0x84] = z80_inst_unimplemented, // TODO
  911. [0x85] = z80_inst_unimplemented, // TODO
  912. [0x86] = z80_inst_unimplemented, // TODO
  913. [0x87] = z80_inst_nop2,
  914. [0x88] = z80_inst_nop2,
  915. [0x89] = z80_inst_nop2,
  916. [0x8A] = z80_inst_nop2,
  917. [0x8B] = z80_inst_nop2,
  918. [0x8C] = z80_inst_unimplemented, // TODO
  919. [0x8D] = z80_inst_unimplemented, // TODO
  920. [0x8E] = z80_inst_unimplemented, // TODO
  921. [0x8F] = z80_inst_nop2,
  922. [0x90] = z80_inst_nop2,
  923. [0x91] = z80_inst_nop2,
  924. [0x92] = z80_inst_nop2,
  925. [0x93] = z80_inst_nop2,
  926. [0x94] = z80_inst_unimplemented, // TODO
  927. [0x95] = z80_inst_unimplemented, // TODO
  928. [0x96] = z80_inst_unimplemented, // TODO
  929. [0x97] = z80_inst_nop2,
  930. [0x98] = z80_inst_nop2,
  931. [0x99] = z80_inst_nop2,
  932. [0x9A] = z80_inst_nop2,
  933. [0x9B] = z80_inst_nop2,
  934. [0x9C] = z80_inst_unimplemented, // TODO
  935. [0x9D] = z80_inst_unimplemented, // TODO
  936. [0x9E] = z80_inst_unimplemented, // TODO
  937. [0x9F] = z80_inst_nop2,
  938. [0xA0] = z80_inst_nop2,
  939. [0xA1] = z80_inst_nop2,
  940. [0xA2] = z80_inst_nop2,
  941. [0xA3] = z80_inst_nop2,
  942. [0xA4] = z80_inst_unimplemented, // TODO
  943. [0xA5] = z80_inst_unimplemented, // TODO
  944. [0xA6] = z80_inst_unimplemented, // TODO
  945. [0xA7] = z80_inst_nop2,
  946. [0xA8] = z80_inst_nop2,
  947. [0xA9] = z80_inst_nop2,
  948. [0xAA] = z80_inst_nop2,
  949. [0xAB] = z80_inst_nop2,
  950. [0xAC] = z80_inst_unimplemented, // TODO
  951. [0xAD] = z80_inst_unimplemented, // TODO
  952. [0xAE] = z80_inst_unimplemented, // TODO
  953. [0xAF] = z80_inst_nop2,
  954. [0xB0] = z80_inst_nop2,
  955. [0xB1] = z80_inst_nop2,
  956. [0xB2] = z80_inst_nop2,
  957. [0xB3] = z80_inst_nop2,
  958. [0xB4] = z80_inst_unimplemented, // TODO
  959. [0xB5] = z80_inst_unimplemented, // TODO
  960. [0xB6] = z80_inst_unimplemented, // TODO
  961. [0xB7] = z80_inst_nop2,
  962. [0xB8] = z80_inst_nop2,
  963. [0xB9] = z80_inst_nop2,
  964. [0xBA] = z80_inst_nop2,
  965. [0xBB] = z80_inst_nop2,
  966. [0xBC] = z80_inst_unimplemented, // TODO
  967. [0xBD] = z80_inst_unimplemented, // TODO
  968. [0xBE] = z80_inst_unimplemented, // TODO
  969. [0xBF] = z80_inst_nop2,
  970. [0xC0] = z80_inst_nop2,
  971. [0xC1] = z80_inst_nop2,
  972. [0xC2] = z80_inst_nop2,
  973. [0xC3] = z80_inst_nop2,
  974. [0xC4] = z80_inst_nop2,
  975. [0xC5] = z80_inst_nop2,
  976. [0xC6] = z80_inst_nop2,
  977. [0xC7] = z80_inst_nop2,
  978. [0xC8] = z80_inst_nop2,
  979. [0xC9] = z80_inst_nop2,
  980. [0xCA] = z80_inst_nop2,
  981. [0xCB] = z80_prefix_index_bits,
  982. [0xCC] = z80_inst_nop2,
  983. [0xCD] = z80_inst_nop2,
  984. [0xCE] = z80_inst_nop2,
  985. [0xCF] = z80_inst_nop2,
  986. [0xD0] = z80_inst_nop2,
  987. [0xD1] = z80_inst_nop2,
  988. [0xD2] = z80_inst_nop2,
  989. [0xD3] = z80_inst_nop2,
  990. [0xD4] = z80_inst_nop2,
  991. [0xD5] = z80_inst_nop2,
  992. [0xD6] = z80_inst_nop2,
  993. [0xD7] = z80_inst_nop2,
  994. [0xD8] = z80_inst_nop2,
  995. [0xD9] = z80_inst_nop2,
  996. [0xDA] = z80_inst_nop2,
  997. [0xDB] = z80_inst_nop2,
  998. [0xDC] = z80_inst_nop2,
  999. [0xDD] = z80_inst_nop2,
  1000. [0xDE] = z80_inst_nop2,
  1001. [0xDF] = z80_inst_nop2,
  1002. [0xE0] = z80_inst_nop2,
  1003. [0xE1] = z80_inst_pop_ixy,
  1004. [0xE2] = z80_inst_nop2,
  1005. [0xE3] = z80_inst_unimplemented, // TODO
  1006. [0xE4] = z80_inst_nop2,
  1007. [0xE5] = z80_inst_push_ixy,
  1008. [0xE6] = z80_inst_nop2,
  1009. [0xE7] = z80_inst_nop2,
  1010. [0xE8] = z80_inst_nop2,
  1011. [0xE9] = z80_inst_unimplemented, // TODO
  1012. [0xEA] = z80_inst_nop2,
  1013. [0xEB] = z80_inst_nop2,
  1014. [0xEC] = z80_inst_nop2,
  1015. [0xED] = z80_inst_nop2,
  1016. [0xEE] = z80_inst_nop2,
  1017. [0xEF] = z80_inst_nop2,
  1018. [0xF0] = z80_inst_nop2,
  1019. [0xF1] = z80_inst_nop2,
  1020. [0xF2] = z80_inst_nop2,
  1021. [0xF3] = z80_inst_nop2,
  1022. [0xF4] = z80_inst_nop2,
  1023. [0xF5] = z80_inst_nop2,
  1024. [0xF6] = z80_inst_nop2,
  1025. [0xF7] = z80_inst_nop2,
  1026. [0xF8] = z80_inst_nop2,
  1027. [0xF9] = z80_inst_unimplemented, // TODO
  1028. [0xFA] = z80_inst_nop2,
  1029. [0xFB] = z80_inst_nop2,
  1030. [0xFC] = z80_inst_nop2,
  1031. [0xFD] = z80_inst_nop2,
  1032. [0xFE] = z80_inst_nop2,
  1033. [0xFF] = z80_inst_nop2
  1034. };
  1035. static DispatchTable instruction_table_index_bits = {
  1036. [0x00] = z80_inst_unimplemented, // TODO
  1037. [0x01] = z80_inst_unimplemented, // TODO
  1038. [0x02] = z80_inst_unimplemented, // TODO
  1039. [0x03] = z80_inst_unimplemented, // TODO
  1040. [0x04] = z80_inst_unimplemented, // TODO
  1041. [0x05] = z80_inst_unimplemented, // TODO
  1042. [0x06] = z80_inst_unimplemented, // TODO
  1043. [0x07] = z80_inst_unimplemented, // TODO
  1044. [0x08] = z80_inst_unimplemented, // TODO
  1045. [0x09] = z80_inst_unimplemented, // TODO
  1046. [0x0A] = z80_inst_unimplemented, // TODO
  1047. [0x0B] = z80_inst_unimplemented, // TODO
  1048. [0x0C] = z80_inst_unimplemented, // TODO
  1049. [0x0D] = z80_inst_unimplemented, // TODO
  1050. [0x0E] = z80_inst_unimplemented, // TODO
  1051. [0x0F] = z80_inst_unimplemented, // TODO
  1052. [0x10] = z80_inst_unimplemented, // TODO
  1053. [0x11] = z80_inst_unimplemented, // TODO
  1054. [0x12] = z80_inst_unimplemented, // TODO
  1055. [0x13] = z80_inst_unimplemented, // TODO
  1056. [0x14] = z80_inst_unimplemented, // TODO
  1057. [0x15] = z80_inst_unimplemented, // TODO
  1058. [0x16] = z80_inst_unimplemented, // TODO
  1059. [0x17] = z80_inst_unimplemented, // TODO
  1060. [0x18] = z80_inst_unimplemented, // TODO
  1061. [0x19] = z80_inst_unimplemented, // TODO
  1062. [0x1A] = z80_inst_unimplemented, // TODO
  1063. [0x1B] = z80_inst_unimplemented, // TODO
  1064. [0x1C] = z80_inst_unimplemented, // TODO
  1065. [0x1D] = z80_inst_unimplemented, // TODO
  1066. [0x1E] = z80_inst_unimplemented, // TODO
  1067. [0x1F] = z80_inst_unimplemented, // TODO
  1068. [0x20] = z80_inst_unimplemented, // TODO
  1069. [0x21] = z80_inst_unimplemented, // TODO
  1070. [0x22] = z80_inst_unimplemented, // TODO
  1071. [0x23] = z80_inst_unimplemented, // TODO
  1072. [0x24] = z80_inst_unimplemented, // TODO
  1073. [0x25] = z80_inst_unimplemented, // TODO
  1074. [0x26] = z80_inst_unimplemented, // TODO
  1075. [0x27] = z80_inst_unimplemented, // TODO
  1076. [0x28] = z80_inst_unimplemented, // TODO
  1077. [0x29] = z80_inst_unimplemented, // TODO
  1078. [0x2A] = z80_inst_unimplemented, // TODO
  1079. [0x2B] = z80_inst_unimplemented, // TODO
  1080. [0x2C] = z80_inst_unimplemented, // TODO
  1081. [0x2D] = z80_inst_unimplemented, // TODO
  1082. [0x2E] = z80_inst_unimplemented, // TODO
  1083. [0x2F] = z80_inst_unimplemented, // TODO
  1084. [0x30] = z80_inst_unimplemented, // TODO
  1085. [0x31] = z80_inst_unimplemented, // TODO
  1086. [0x32] = z80_inst_unimplemented, // TODO
  1087. [0x33] = z80_inst_unimplemented, // TODO
  1088. [0x34] = z80_inst_unimplemented, // TODO
  1089. [0x35] = z80_inst_unimplemented, // TODO
  1090. [0x36] = z80_inst_unimplemented, // TODO
  1091. [0x37] = z80_inst_unimplemented, // TODO
  1092. [0x38] = z80_inst_unimplemented, // TODO
  1093. [0x39] = z80_inst_unimplemented, // TODO
  1094. [0x3A] = z80_inst_unimplemented, // TODO
  1095. [0x3B] = z80_inst_unimplemented, // TODO
  1096. [0x3C] = z80_inst_unimplemented, // TODO
  1097. [0x3D] = z80_inst_unimplemented, // TODO
  1098. [0x3E] = z80_inst_unimplemented, // TODO
  1099. [0x3F] = z80_inst_unimplemented, // TODO
  1100. [0x40] = z80_inst_unimplemented, // TODO
  1101. [0x41] = z80_inst_unimplemented, // TODO
  1102. [0x42] = z80_inst_unimplemented, // TODO
  1103. [0x43] = z80_inst_unimplemented, // TODO
  1104. [0x44] = z80_inst_unimplemented, // TODO
  1105. [0x45] = z80_inst_unimplemented, // TODO
  1106. [0x46] = z80_inst_unimplemented, // TODO
  1107. [0x47] = z80_inst_unimplemented, // TODO
  1108. [0x48] = z80_inst_unimplemented, // TODO
  1109. [0x49] = z80_inst_unimplemented, // TODO
  1110. [0x4A] = z80_inst_unimplemented, // TODO
  1111. [0x4B] = z80_inst_unimplemented, // TODO
  1112. [0x4C] = z80_inst_unimplemented, // TODO
  1113. [0x4D] = z80_inst_unimplemented, // TODO
  1114. [0x4E] = z80_inst_unimplemented, // TODO
  1115. [0x4F] = z80_inst_unimplemented, // TODO
  1116. [0x50] = z80_inst_unimplemented, // TODO
  1117. [0x51] = z80_inst_unimplemented, // TODO
  1118. [0x52] = z80_inst_unimplemented, // TODO
  1119. [0x53] = z80_inst_unimplemented, // TODO
  1120. [0x54] = z80_inst_unimplemented, // TODO
  1121. [0x55] = z80_inst_unimplemented, // TODO
  1122. [0x56] = z80_inst_unimplemented, // TODO
  1123. [0x57] = z80_inst_unimplemented, // TODO
  1124. [0x58] = z80_inst_unimplemented, // TODO
  1125. [0x59] = z80_inst_unimplemented, // TODO
  1126. [0x5A] = z80_inst_unimplemented, // TODO
  1127. [0x5B] = z80_inst_unimplemented, // TODO
  1128. [0x5C] = z80_inst_unimplemented, // TODO
  1129. [0x5D] = z80_inst_unimplemented, // TODO
  1130. [0x5E] = z80_inst_unimplemented, // TODO
  1131. [0x5F] = z80_inst_unimplemented, // TODO
  1132. [0x60] = z80_inst_unimplemented, // TODO
  1133. [0x61] = z80_inst_unimplemented, // TODO
  1134. [0x62] = z80_inst_unimplemented, // TODO
  1135. [0x63] = z80_inst_unimplemented, // TODO
  1136. [0x64] = z80_inst_unimplemented, // TODO
  1137. [0x65] = z80_inst_unimplemented, // TODO
  1138. [0x66] = z80_inst_unimplemented, // TODO
  1139. [0x67] = z80_inst_unimplemented, // TODO
  1140. [0x68] = z80_inst_unimplemented, // TODO
  1141. [0x69] = z80_inst_unimplemented, // TODO
  1142. [0x6A] = z80_inst_unimplemented, // TODO
  1143. [0x6B] = z80_inst_unimplemented, // TODO
  1144. [0x6C] = z80_inst_unimplemented, // TODO
  1145. [0x6D] = z80_inst_unimplemented, // TODO
  1146. [0x6E] = z80_inst_unimplemented, // TODO
  1147. [0x6F] = z80_inst_unimplemented, // TODO
  1148. [0x70] = z80_inst_unimplemented, // TODO
  1149. [0x71] = z80_inst_unimplemented, // TODO
  1150. [0x72] = z80_inst_unimplemented, // TODO
  1151. [0x73] = z80_inst_unimplemented, // TODO
  1152. [0x74] = z80_inst_unimplemented, // TODO
  1153. [0x75] = z80_inst_unimplemented, // TODO
  1154. [0x76] = z80_inst_unimplemented, // TODO
  1155. [0x77] = z80_inst_unimplemented, // TODO
  1156. [0x78] = z80_inst_unimplemented, // TODO
  1157. [0x79] = z80_inst_unimplemented, // TODO
  1158. [0x7A] = z80_inst_unimplemented, // TODO
  1159. [0x7B] = z80_inst_unimplemented, // TODO
  1160. [0x7C] = z80_inst_unimplemented, // TODO
  1161. [0x7D] = z80_inst_unimplemented, // TODO
  1162. [0x7E] = z80_inst_unimplemented, // TODO
  1163. [0x7F] = z80_inst_unimplemented, // TODO
  1164. [0x80] = z80_inst_unimplemented, // TODO
  1165. [0x81] = z80_inst_unimplemented, // TODO
  1166. [0x82] = z80_inst_unimplemented, // TODO
  1167. [0x83] = z80_inst_unimplemented, // TODO
  1168. [0x84] = z80_inst_unimplemented, // TODO
  1169. [0x85] = z80_inst_unimplemented, // TODO
  1170. [0x86] = z80_inst_unimplemented, // TODO
  1171. [0x87] = z80_inst_unimplemented, // TODO
  1172. [0x88] = z80_inst_unimplemented, // TODO
  1173. [0x89] = z80_inst_unimplemented, // TODO
  1174. [0x8A] = z80_inst_unimplemented, // TODO
  1175. [0x8B] = z80_inst_unimplemented, // TODO
  1176. [0x8C] = z80_inst_unimplemented, // TODO
  1177. [0x8D] = z80_inst_unimplemented, // TODO
  1178. [0x8E] = z80_inst_unimplemented, // TODO
  1179. [0x8F] = z80_inst_unimplemented, // TODO
  1180. [0x90] = z80_inst_unimplemented, // TODO
  1181. [0x91] = z80_inst_unimplemented, // TODO
  1182. [0x92] = z80_inst_unimplemented, // TODO
  1183. [0x93] = z80_inst_unimplemented, // TODO
  1184. [0x94] = z80_inst_unimplemented, // TODO
  1185. [0x95] = z80_inst_unimplemented, // TODO
  1186. [0x96] = z80_inst_unimplemented, // TODO
  1187. [0x97] = z80_inst_unimplemented, // TODO
  1188. [0x98] = z80_inst_unimplemented, // TODO
  1189. [0x99] = z80_inst_unimplemented, // TODO
  1190. [0x9A] = z80_inst_unimplemented, // TODO
  1191. [0x9B] = z80_inst_unimplemented, // TODO
  1192. [0x9C] = z80_inst_unimplemented, // TODO
  1193. [0x9D] = z80_inst_unimplemented, // TODO
  1194. [0x9E] = z80_inst_unimplemented, // TODO
  1195. [0x9F] = z80_inst_unimplemented, // TODO
  1196. [0xA0] = z80_inst_unimplemented, // TODO
  1197. [0xA1] = z80_inst_unimplemented, // TODO
  1198. [0xA2] = z80_inst_unimplemented, // TODO
  1199. [0xA3] = z80_inst_unimplemented, // TODO
  1200. [0xA4] = z80_inst_unimplemented, // TODO
  1201. [0xA5] = z80_inst_unimplemented, // TODO
  1202. [0xA6] = z80_inst_unimplemented, // TODO
  1203. [0xA7] = z80_inst_unimplemented, // TODO
  1204. [0xA8] = z80_inst_unimplemented, // TODO
  1205. [0xA9] = z80_inst_unimplemented, // TODO
  1206. [0xAA] = z80_inst_unimplemented, // TODO
  1207. [0xAB] = z80_inst_unimplemented, // TODO
  1208. [0xAC] = z80_inst_unimplemented, // TODO
  1209. [0xAD] = z80_inst_unimplemented, // TODO
  1210. [0xAE] = z80_inst_unimplemented, // TODO
  1211. [0xAF] = z80_inst_unimplemented, // TODO
  1212. [0xB0] = z80_inst_unimplemented, // TODO
  1213. [0xB1] = z80_inst_unimplemented, // TODO
  1214. [0xB2] = z80_inst_unimplemented, // TODO
  1215. [0xB3] = z80_inst_unimplemented, // TODO
  1216. [0xB4] = z80_inst_unimplemented, // TODO
  1217. [0xB5] = z80_inst_unimplemented, // TODO
  1218. [0xB6] = z80_inst_unimplemented, // TODO
  1219. [0xB7] = z80_inst_unimplemented, // TODO
  1220. [0xB8] = z80_inst_unimplemented, // TODO
  1221. [0xB9] = z80_inst_unimplemented, // TODO
  1222. [0xBA] = z80_inst_unimplemented, // TODO
  1223. [0xBB] = z80_inst_unimplemented, // TODO
  1224. [0xBC] = z80_inst_unimplemented, // TODO
  1225. [0xBD] = z80_inst_unimplemented, // TODO
  1226. [0xBE] = z80_inst_unimplemented, // TODO
  1227. [0xBF] = z80_inst_unimplemented, // TODO
  1228. [0xC0] = z80_inst_unimplemented, // TODO
  1229. [0xC1] = z80_inst_unimplemented, // TODO
  1230. [0xC2] = z80_inst_unimplemented, // TODO
  1231. [0xC3] = z80_inst_unimplemented, // TODO
  1232. [0xC4] = z80_inst_unimplemented, // TODO
  1233. [0xC5] = z80_inst_unimplemented, // TODO
  1234. [0xC6] = z80_inst_unimplemented, // TODO
  1235. [0xC7] = z80_inst_unimplemented, // TODO
  1236. [0xC8] = z80_inst_unimplemented, // TODO
  1237. [0xC9] = z80_inst_unimplemented, // TODO
  1238. [0xCA] = z80_inst_unimplemented, // TODO
  1239. [0xCB] = z80_inst_unimplemented, // TODO
  1240. [0xCC] = z80_inst_unimplemented, // TODO
  1241. [0xCD] = z80_inst_unimplemented, // TODO
  1242. [0xCE] = z80_inst_unimplemented, // TODO
  1243. [0xCF] = z80_inst_unimplemented, // TODO
  1244. [0xD0] = z80_inst_unimplemented, // TODO
  1245. [0xD1] = z80_inst_unimplemented, // TODO
  1246. [0xD2] = z80_inst_unimplemented, // TODO
  1247. [0xD3] = z80_inst_unimplemented, // TODO
  1248. [0xD4] = z80_inst_unimplemented, // TODO
  1249. [0xD5] = z80_inst_unimplemented, // TODO
  1250. [0xD6] = z80_inst_unimplemented, // TODO
  1251. [0xD7] = z80_inst_unimplemented, // TODO
  1252. [0xD8] = z80_inst_unimplemented, // TODO
  1253. [0xD9] = z80_inst_unimplemented, // TODO
  1254. [0xDA] = z80_inst_unimplemented, // TODO
  1255. [0xDB] = z80_inst_unimplemented, // TODO
  1256. [0xDC] = z80_inst_unimplemented, // TODO
  1257. [0xDD] = z80_inst_unimplemented, // TODO
  1258. [0xDE] = z80_inst_unimplemented, // TODO
  1259. [0xDF] = z80_inst_unimplemented, // TODO
  1260. [0xE0] = z80_inst_unimplemented, // TODO
  1261. [0xE1] = z80_inst_unimplemented, // TODO
  1262. [0xE2] = z80_inst_unimplemented, // TODO
  1263. [0xE3] = z80_inst_unimplemented, // TODO
  1264. [0xE4] = z80_inst_unimplemented, // TODO
  1265. [0xE5] = z80_inst_unimplemented, // TODO
  1266. [0xE6] = z80_inst_unimplemented, // TODO
  1267. [0xE7] = z80_inst_unimplemented, // TODO
  1268. [0xE8] = z80_inst_unimplemented, // TODO
  1269. [0xE9] = z80_inst_unimplemented, // TODO
  1270. [0xEA] = z80_inst_unimplemented, // TODO
  1271. [0xEB] = z80_inst_unimplemented, // TODO
  1272. [0xEC] = z80_inst_unimplemented, // TODO
  1273. [0xED] = z80_inst_unimplemented, // TODO
  1274. [0xEE] = z80_inst_unimplemented, // TODO
  1275. [0xEF] = z80_inst_unimplemented, // TODO
  1276. [0xF0] = z80_inst_unimplemented, // TODO
  1277. [0xF1] = z80_inst_unimplemented, // TODO
  1278. [0xF2] = z80_inst_unimplemented, // TODO
  1279. [0xF3] = z80_inst_unimplemented, // TODO
  1280. [0xF4] = z80_inst_unimplemented, // TODO
  1281. [0xF5] = z80_inst_unimplemented, // TODO
  1282. [0xF6] = z80_inst_unimplemented, // TODO
  1283. [0xF7] = z80_inst_unimplemented, // TODO
  1284. [0xF8] = z80_inst_unimplemented, // TODO
  1285. [0xF9] = z80_inst_unimplemented, // TODO
  1286. [0xFA] = z80_inst_unimplemented, // TODO
  1287. [0xFB] = z80_inst_unimplemented, // TODO
  1288. [0xFC] = z80_inst_unimplemented, // TODO
  1289. [0xFD] = z80_inst_unimplemented, // TODO
  1290. [0xFE] = z80_inst_unimplemented, // TODO
  1291. [0xFF] = z80_inst_unimplemented // TODO
  1292. };