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.
 
 
 
 
 

384 lignes
5.9 KiB

  1. # Copyright (C) 2014-2015 Ben Kurtovic <ben.kurtovic@gmail.com>
  2. # Released under the terms of the MIT License. See LICENSE for details.
  3. # *** ASM Instruction Description File ***
  4. # This file is used to generate 'instructions.inc.c'.
  5. # `make` should trigger a rebuild when this file is modified; if not, use:
  6. # `python scripts/update_asm_instructions.py`.
  7. ---
  8. adc:
  9. args: yes
  10. cases:
  11. - type: [register, register]
  12. cases:
  13. - cond: [a, a]
  14. return: [0x8F]
  15. - cond: [a, b]
  16. return: [0x88]
  17. - cond: [a, c]
  18. return: [0x89]
  19. - cond: [a, d]
  20. return: [0x8A]
  21. - cond: [a, e]
  22. return: [0x8B]
  23. - cond: [a, h|ih]
  24. return: [0x8C]
  25. - cond: [a, l|il]
  26. return: [0x8D]
  27. - cond: [hl, bc]
  28. return: [0xED, 0x4A]
  29. - cond: [hl, de]
  30. return: [0xED, 0x5A]
  31. - cond: [hl, hl]
  32. return: [0xED, 0x6A]
  33. - cond: [hl, sp]
  34. return: [0xED, 0x7A]
  35. - type: [register, immediate]
  36. cases:
  37. - cond: [a, u8]
  38. return: [0xCE, u8]
  39. - type: [register, indirect_hl_or_indexed]
  40. cases:
  41. - cond: [a, _]
  42. return: [0x8E]
  43. add:
  44. args: yes
  45. cases:
  46. - type: [register, register]
  47. cases:
  48. - cond: [a, a]
  49. return: [0x87]
  50. - cond: [a, b]
  51. return: [0x80]
  52. - cond: [a, c]
  53. return: [0x81]
  54. - cond: [a, d]
  55. return: [0x82]
  56. - cond: [a, e]
  57. return: [0x83]
  58. - cond: [a, h|ih]
  59. return: [0x84]
  60. - cond: [a, l|il]
  61. return: [0x85]
  62. - cond: [hl|i, bc]
  63. return: [0x09]
  64. - cond: [hl|i, de]
  65. return: [0x19]
  66. - cond: [hl|i, hl]
  67. return: [0x29]
  68. - cond: [hl|i, sp]
  69. return: [0x39]
  70. - type: [register, immediate]
  71. cases:
  72. - cond: [a, u8]
  73. return: [0xC6, u8]
  74. - type: [register, indirect_hl_or_indexed]
  75. cases:
  76. - cond: [a, _]
  77. return: [0x86]
  78. # and:
  79. # args: no
  80. # return: error
  81. # bit:
  82. # args: no
  83. # return: error
  84. # call:
  85. # args: no
  86. # return: error
  87. ccf:
  88. args: no
  89. return: [0x3F]
  90. # cp:
  91. # args: no
  92. # return: error
  93. cpd:
  94. args: no
  95. return: [0xED, 0xA9]
  96. cpdr:
  97. args: no
  98. return: [0xED, 0xB9]
  99. cpi:
  100. args: no
  101. return: [0xED, 0xA1]
  102. cpir:
  103. args: no
  104. return: [0xED, 0xB1]
  105. cpl:
  106. args: no
  107. return: [0x2F]
  108. daa:
  109. args: no
  110. return: [0x27]
  111. # dec:
  112. # args: no
  113. # return: error
  114. di:
  115. args: no
  116. return: [0xF3]
  117. # djnz:
  118. # args: no
  119. # return: error
  120. ei:
  121. args: no
  122. return: [0xFB]
  123. # ex:
  124. # args: no
  125. # return: error
  126. exx:
  127. args: no
  128. return: [0xD9]
  129. halt:
  130. args: no
  131. return: [0x76]
  132. # im:
  133. # args: no
  134. # return: error
  135. # in:
  136. # args: no
  137. # return: error
  138. inc:
  139. args: yes
  140. cases:
  141. - type: [register]
  142. cases:
  143. - cond: [a]
  144. return: [0x3C]
  145. - cond: [b]
  146. return: [0x04]
  147. - cond: [c]
  148. return: [0x0C]
  149. - cond: [d]
  150. return: [0x14]
  151. - cond: [e]
  152. return: [0x1C]
  153. - cond: [h|ih]
  154. return: [0x24]
  155. - cond: [l|il]
  156. return: [0x2C]
  157. - cond: [bc]
  158. return: [0x03]
  159. - cond: [de]
  160. return: [0x13]
  161. - cond: [hl|i]
  162. return: [0x23]
  163. - cond: [sp]
  164. return: [0x33]
  165. - type: [indirect_hl_or_indexed]
  166. cases:
  167. - cond: [_]
  168. return: [0x34]
  169. ind:
  170. args: no
  171. return: [0xED, 0xAA]
  172. indr:
  173. args: no
  174. return: [0xED, 0xBA]
  175. ini:
  176. args: no
  177. return: [0xED, 0xA2]
  178. inir:
  179. args: no
  180. return: [0xED, 0xB2]
  181. # jp:
  182. # args: no
  183. # return: error
  184. # jr:
  185. # args: no
  186. # return: error
  187. # ld:
  188. # args: no
  189. # return: error
  190. ldd:
  191. args: no
  192. return: [0xED, 0xA8]
  193. lddr:
  194. args: no
  195. return: [0xED, 0xB8]
  196. ldi:
  197. args: no
  198. return: [0xED, 0xA0]
  199. ldir:
  200. args: no
  201. return: [0xED, 0xB0]
  202. neg:
  203. args: no
  204. return: [0xED, 0x44]
  205. nop:
  206. args: no
  207. return: [0x00]
  208. # or:
  209. # args: no
  210. # return: error
  211. otdr:
  212. args: no
  213. return: [0xED, 0xBB]
  214. otir:
  215. args: no
  216. return: [0xED, 0xB3]
  217. # out:
  218. # args: no
  219. # return: error
  220. outd:
  221. args: no
  222. return: [0xED, 0xAB]
  223. outi:
  224. args: no
  225. return: [0xED, 0xA3]
  226. # pop:
  227. # args: no
  228. # return: error
  229. # push:
  230. # args: no
  231. # return: error
  232. # res:
  233. # args: no
  234. # return: error
  235. # ret:
  236. # args: no
  237. # return: error
  238. reti:
  239. args: no
  240. return: [0xED, 0x4D]
  241. retn:
  242. args: no
  243. return: [0xED, 0x45]
  244. # rl:
  245. # args: no
  246. # return: error
  247. rla:
  248. args: no
  249. return: [0x17]
  250. # rlc:
  251. # args: no
  252. # return: error
  253. rlca:
  254. args: no
  255. return: [0x07]
  256. rld:
  257. args: no
  258. return: [0xED, 0x6F]
  259. # rr:
  260. # args: no
  261. # return: error
  262. rra:
  263. args: no
  264. return: [0x1F]
  265. # rrc:
  266. # args: no
  267. # return: error
  268. rrca:
  269. args: no
  270. return: [0x0F]
  271. # rrd:
  272. # args: no
  273. # return: error
  274. # rst:
  275. # args: no
  276. # return: error
  277. # sbc:
  278. # args: no
  279. # return: error
  280. scf:
  281. args: no
  282. return: [0x37]
  283. # set:
  284. # args: no
  285. # return: error
  286. # sl1:
  287. # args: no
  288. # return: error
  289. # sla:
  290. # args: no
  291. # return: error
  292. # sll:
  293. # args: no
  294. # return: error
  295. # sls:
  296. # args: no
  297. # return: error
  298. # sra:
  299. # args: no
  300. # return: error
  301. # srl:
  302. # args: no
  303. # return: error
  304. # sub:
  305. # args: no
  306. # return: error
  307. # xor:
  308. # args: no
  309. # return: error