Guest User

CPU FILE

a guest
Jan 21st, 2020
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.77 KB | None | 0 0
  1. #cpudef "CPU_65202"
  2. {
  3. #bits 8
  4.  
  5. #tokendef FLAGS
  6. {
  7. Z = 0x2
  8. Za = 0x3
  9. Zx = 0x4
  10. O = 0x5
  11. U = 0x6
  12. G = 0x7
  13. L = 0x8
  14. NZ = 0x9
  15. NZa = 0xA
  16. NZx = 0xB
  17. NO = 0xC
  18. NU = 0xD
  19. NG = 0xE
  20. NL = 0xF
  21. }
  22.  
  23. ;------------------------------------------------------------------------------
  24. ; n <- Immediate Value
  25. ; (n) <- Absolute Address
  26. ; [n] <- N-Page Address
  27. ;--------------------------------------------------------------------------0x00
  28. NOP -> 0x00[7:0]
  29. INT {src} -> 0x01[7:0] @ src[7:0]
  30. EI -> 0x02[7:0]
  31. DI -> 0x03[7:0]
  32. EXO -> 0x04[7:0]
  33. DXO -> 0x05[7:0]
  34. CLF -> 0x06[7:0]
  35. IN AL, ({src}) -> 0x07[7:0] @ src[15:0]
  36. OUT ({src}), AL -> 0x08[7:0] @ src[15:0]
  37. ; -> 0x09[7:0]
  38. ; -> 0x0A[7:0]
  39. ; -> 0x0B[7:0]
  40. JMP {src} -> 0x0C[7:0] @ src[23:0]
  41. JMP ({src}, X) -> 0x0D[7:0] @ src[23:0]
  42. RET -> 0x0E[7:0]
  43. HALT -> 0x0F[7:0]
  44. ;--------------------------------------------------------------------------0x10
  45. LD AH, ({src}) -> 0x10[7:0] @ src[23:0]
  46. LD AH, ({src}, X) -> 0x11[7:0] @ src[23:0]
  47. LD AH, ({src}, Y) -> 0x12[7:0] @ src[23:0]
  48. LD AH, {src} -> 0x13[7:0] @ src[7:0]
  49. LD AH, [{src}] -> 0x14[7:0] @ src[7:0]
  50. LD AH, [{src}, XL] -> 0x15[7:0] @ src[7:0]
  51. LD AH, [{src}, YL] -> 0x16[7:0] @ src[7:0]
  52. LD AL, ([{src}]) -> 0x17[7:0] @ src[7:0]
  53. ADD AH -> 0x18[7:0]
  54. ADD AL -> 0x19[7:0]
  55. ADD ({src}) -> 0x1A[7:0] @ src[23:0]
  56. ADD ({src}, X) -> 0x1B[7:0] @ src[23:0]
  57. ADD ({src}, Y) -> 0x1C[7:0] @ src[23:0]
  58. ADD [{src}] -> 0x1D[7:0] @ src[7:0]
  59. ADD [{src}, XL] -> 0x1E[7:0] @ src[7:0]
  60. ; -> 0x1F[7:0]
  61. ;--------------------------------------------------------------------------0x20
  62. LD AL, ({src}) -> 0x20[7:0] @ src[23:0]
  63. LD AL, ({src}, X) -> 0x21[7:0] @ src[23:0]
  64. LD AL, ({src}, Y) -> 0x22[7:0] @ src[23:0]
  65. LD AL, {src} -> 0x23[7:0] @ src[7:0]
  66. LD AL, [{src}] -> 0x24[7:0] @ src[7:0]
  67. LD AL, [{src}, XL] -> 0x25[7:0] @ src[7:0]
  68. LD AL, [{src}, YL] -> 0x26[7:0] @ src[7:0]
  69. LD ([{src}]), AL -> 0x27[7:0] @ src[7:0]
  70. INC AH -> 0x28[7:0]
  71. INC AL -> 0x29[7:0]
  72. INC ({src}) -> 0x2A[7:0] @ src[23:0]
  73. INC ({src}, X) -> 0x2B[7:0] @ src[23:0]
  74. INC ({src}, Y) -> 0x2C[7:0] @ src[23:0]
  75. INC [{src}] -> 0x2D[7:0] @ src[7:0]
  76. INC [{src}, XL] -> 0x2E[7:0] @ src[7:0]
  77. ; -> 0x2F[7:0]
  78. ;--------------------------------------------------------------------------0x30
  79. LD XH, ({src}) -> 0x30[7:0] @ src[23:0]
  80. LD XH, ({src}, Y) -> 0x31[7:0] @ src[23:0]
  81. LD SP, ({src}) -> 0x32[7:0] @ src[23:0]
  82. LD XH, {src} -> 0x33[7:0] @ src[7:0]
  83. LD XH, [{src}] -> 0x34[7:0] @ src[7:0]
  84. LD SN, ({src}) -> 0x35[7:0] @ src[23:0]
  85. LD XH, [{src}, YL] -> 0x36[7:0] @ src[7:0]
  86. LD ITP, {src} -> 0x37[7:0] @ src[23:0]
  87. SUB AH -> 0x38[7:0]
  88. SUB AL -> 0x39[7:0]
  89. SUB ({src}) -> 0x3A[7:0] @ src[23:0]
  90. SUB ({src}, X) -> 0x3B[7:0] @ src[23:0]
  91. SUB ({src}, Y) -> 0x3C[7:0] @ src[23:0]
  92. SUB [{src}] -> 0x3D[7:0] @ src[7:0]
  93. SUB [{src}, XL] -> 0x3E[7:0] @ src[7:0]
  94. ; -> 0x3F[7:0]
  95. ;--------------------------------------------------------------------------0x40
  96. LD XL, ({src}) -> 0x40[7:0] @ src[23:0]
  97. LD XL, ({src}, Y) -> 0x41[7:0] @ src[23:0]
  98. LD SP, {src} -> 0x42[7:0] @ src[15:0]
  99. LD XL, {src} -> 0x43[7:0] @ src[7:0]
  100. LD XL, [{src}] -> 0x44[7:0] @ src[7:0]
  101. LD SN, {src} -> 0x45[7:0] @ src[7:0]
  102. LD XL, [{src}, YL] -> 0x46[7:0] @ src[7:0]
  103. LD A, {src} -> 0x47[7:0] @ src[15:0]
  104. DEC AH -> 0x48[7:0]
  105. DEC AL -> 0x49[7:0]
  106. DEC ({src}) -> 0x4A[7:0] @ src[23:0]
  107. DEC ({src}, X) -> 0x4B[7:0] @ src[23:0]
  108. DEC ({src}, Y) -> 0x4C[7:0] @ src[23:0]
  109. DEC [{src}] -> 0x4D[7:0] @ src[7:0]
  110. DEC [{src}, XL] -> 0x4E[7:0] @ src[7:0]
  111. ; -> 0x4F[7:0]
  112. ;--------------------------------------------------------------------------0x50
  113. LD YH, ({src}) -> 0x50[7:0] @ src[23:0]
  114. LD YH, ({src}, X) -> 0x51[7:0] @ src[23:0]
  115. LD N, ({src}) -> 0x52[7:0] @ src[23:0]
  116. LD YH, {src} -> 0x53[7:0] @ src[7:0]
  117. LD YH, [{src}] -> 0x54[7:0] @ src[7:0]
  118. LD YH, [{src}, XL] -> 0x55[7:0] @ src[7:0]
  119. LD AL, ([{src}, XL]) -> 0x56[7:0] @ src[7:0]
  120. LD X, {src} -> 0x57[7:0] @ src[15:0]
  121. AND AH -> 0x58[7:0]
  122. AND AL -> 0x59[7:0]
  123. AND ({src}) -> 0x5A[7:0] @ src[23:0]
  124. AND ({src}, X) -> 0x5B[7:0] @ src[23:0]
  125. AND ({src}, Y) -> 0x5C[7:0] @ src[23:0]
  126. AND [{src}] -> 0x5D[7:0] @ src[7:0]
  127. AND [{src}, XL] -> 0x5E[7:0] @ src[7:0]
  128. ; -> 0x5F[7:0]
  129. ;--------------------------------------------------------------------------0x60
  130. LD YL, ({src}) -> 0x60[7:0] @ src[23:0]
  131. LD YL, ({src}, X) -> 0x61[7:0] @ src[23:0]
  132. LD N, {src} -> 0x62[7:0] @ src[15:0]
  133. LD YL, {src} -> 0x63[7:0] @ src[7:0]
  134. LD YL, [{src}] -> 0x64[7:0] @ src[7:0]
  135. LD YL, [{src}, XL] -> 0x65[7:0] @ src[7:0]
  136. LD AL, ([{src}], Y) -> 0x66[7:0] @ src[7:0]
  137. LD Y, {src} -> 0x67[7:0] @ src[15:0]
  138. OR AH -> 0x68[7:0]
  139. OR AL -> 0x69[7:0]
  140. OR ({src}) -> 0x6A[7:0] @ src[23:0]
  141. OR ({src}, X) -> 0x6B[7:0] @ src[23:0]
  142. OR ({src}, Y) -> 0x6C[7:0] @ src[23:0]
  143. OR [{src}] -> 0x6D[7:0] @ src[7:0]
  144. OR [{src}, XL] -> 0x6E[7:0] @ src[7:0]
  145. ; -> 0x6F[7:0]
  146. ;--------------------------------------------------------------------------0x70
  147. LD ({dest}), AH -> 0x70[7:0] @ dest[23:0]
  148. LD ({dest}, X), AH -> 0x71[7:0] @ dest[23:0]
  149. LD ({dest}, Y), AH -> 0x72[7:0] @ dest[23:0]
  150. LD [{dest}], AH -> 0x73[7:0] @ dest[7:0]
  151. LD [{dest}, XL], AH -> 0x74[7:0] @ dest[7:0]
  152. LD [{dest}, YL], AH -> 0x75[7:0] @ dest[7:0]
  153. LD AL, FL -> 0x76[7:0]
  154. LD FL, AL -> 0x77[7:0]
  155. XOR AH -> 0x78[7:0]
  156. XOR AL -> 0x79[7:0]
  157. XOR ({src}) -> 0x7A[7:0] @ src[23:0]
  158. XOR ({src}, X) -> 0x7B[7:0] @ src[23:0]
  159. XOR ({src}, Y) -> 0x7C[7:0] @ src[23:0]
  160. XOR [{src}] -> 0x7D[7:0] @ src[7:0]
  161. XOR [{src}, XL] -> 0x7E[7:0] @ src[7:0]
  162. ; -> 0x7F[7:0]
  163. ;--------------------------------------------------------------------------0x80
  164. LD ({dest}), AL -> 0x80[7:0] @ dest[23:0]
  165. LD ({dest}, X), AL -> 0x81[7:0] @ dest[23:0]
  166. LD ({dest}, Y), AL -> 0x82[7:0] @ dest[23:0]
  167. LD [{dest}], AL -> 0x83[7:0] @ dest[7:0]
  168. LD [{dest}, XL], AL -> 0x84[7:0] @ dest[7:0]
  169. LD [{dest}, YL], AL -> 0x85[7:0] @ dest[7:0]
  170. LD AL, SN -> 0x86[7:0]
  171. LD SN, AL -> 0x87[7:0]
  172. SFR AH -> 0x88[7:0]
  173. SFR AL -> 0x89[7:0]
  174. SFR ({src}) -> 0x8A[7:0] @ src[23:0]
  175. SFR ({src}, X) -> 0x8B[7:0] @ src[23:0]
  176. SFR ({src}, Y) -> 0x8C[7:0] @ src[23:0]
  177. SFR [{src}] -> 0x8D[7:0] @ src[7:0]
  178. SFR [{src}, XL] -> 0x8E[7:0] @ src[7:0]
  179. ADD {src} -> 0x8F[7:0] @ src[7:0]
  180. ;--------------------------------------------------------------------------0x90
  181. LD ({dest}), XH -> 0x90[7:0] @ dest[23:0]
  182. LD AL, (SP, X) -> 0x91[7:0]
  183. LD (SP, X), AL -> 0x92[7:0]
  184. LD [{dest}], XH -> 0x93[7:0] @ dest[7:0]
  185. SWAP A -> 0x94[7:0]
  186. LD [{dest}, YL], XH -> 0x95[7:0] @ dest[7:0]
  187. LD A, SP -> 0x96[7:0]
  188. LD SP, A -> 0x97[7:0]
  189. SFL AH -> 0x98[7:0]
  190. SFL AL -> 0x99[7:0]
  191. SFL ({src}) -> 0x9A[7:0] @ src[23:0]
  192. SFL ({src}, X) -> 0x9B[7:0] @ src[23:0]
  193. SFL ({src}, Y) -> 0x9C[7:0] @ src[23:0]
  194. SFL [{src}] -> 0x9D[7:0] @ src[7:0]
  195. SFL [{src}, XL] -> 0x9E[7:0] @ src[7:0]
  196. SUB {src} -> 0x9F[7:0] @ src[7:0]
  197. ;--------------------------------------------------------------------------0xA0
  198. LD ({dest}), XL -> 0xA0[7:0] @ dest[23:0]
  199. LD ({dest}), SP -> 0xA1[7:0] @ dest[23:0]
  200. SWAP X -> 0xA2[7:0]
  201. LD [{dest}], XL -> 0xA3[7:0] @ dest[7:0]
  202. SWAP XY -> 0xA4[7:0]
  203. LD [{dest}, YL], XL -> 0xA5[7:0] @ dest[7:0]
  204. LD A, X -> 0xA6[7:0]
  205. LD X, A -> 0xA7[7:0]
  206. CMP AH -> 0xA8[7:0]
  207. CMP AL -> 0xA9[7:0]
  208. CMP ({src}) -> 0xAA[7:0] @ src[23:0]
  209. CMP ({src}, X) -> 0xAB[7:0] @ src[23:0]
  210. CMP ({src}, Y) -> 0xAC[7:0] @ src[23:0]
  211. CMP [{src}] -> 0xAD[7:0] @ src[7:0]
  212. CMP [{src}, XL] -> 0xAE[7:0] @ src[7:0]
  213. AND {src} -> 0xAF[7:0] @ src[7:0]
  214. ;--------------------------------------------------------------------------0xB0
  215. LD ({dest}), YH -> 0xB0[7:0] @ dest[23:0]
  216. LD ({dest}), N -> 0xB1[7:0] @ dest[23:0]
  217. SWAP Y -> 0xB2[7:0]
  218. LD [{dest}], YH -> 0xB3[7:0] @ dest[7:0]
  219. LD [{dest}, XL], YH -> 0xB4[7:0] @ dest[7:0]
  220. LD ([{dest}, XL]), AL -> 0xB5[7:0] @ dest[7:0]
  221. LD A, Y -> 0xB6[7:0]
  222. LD Y, A -> 0xB7[7:0]
  223. INC XH -> 0xB8[7:0]
  224. INC XL -> 0xB9[7:0]
  225. DEC XH -> 0xBA[7:0]
  226. DEC XL -> 0xBB[7:0]
  227. ADD XL -> 0xBC[7:0]
  228. SUB XL -> 0xBD[7:0]
  229. CMP XL -> 0xBE[7:0]
  230. OR {src} -> 0xBF[7:0] @ src[7:0]
  231. ;--------------------------------------------------------------------------0xC0
  232. LD ({dest}), YL -> 0xC0[7:0] @ dest[23:0]
  233. LD ({dest}), SN -> 0xC1[7:0] @ dest[23:0]
  234. LD [{dest}], {src} -> 0xC2[7:0] @ dest[7:0] @ src[7:0]
  235. LD [{dest}], YL -> 0xC3[7:0] @ dest[7:0]
  236. LD [{dest}, XL], YL -> 0xC4[7:0] @ dest[7:0]
  237. LD ([{dest}], Y), AL -> 0xC5[7:0] @ dest[7:0]
  238. LD A, N -> 0xC6[7:0]
  239. LD N, A -> 0xC7[7:0]
  240. INC YH -> 0xC8[7:0]
  241. INC YL -> 0xC9[7:0]
  242. DEC YH -> 0xCA[7:0]
  243. DEC YL -> 0xCB[7:0]
  244. ADD YL -> 0xCC[7:0]
  245. SUB YL -> 0xCD[7:0]
  246. CMP YL -> 0xCE[7:0]
  247. XOR {src} -> 0xCF[7:0] @ src[7:0]
  248. ;--------------------------------------------------------------------------0xD0
  249. PUSH AH -> 0xD0[7:0]
  250. PUSH AL -> 0xD1[7:0]
  251. PUSH XH -> 0xD2[7:0]
  252. PUSH XL -> 0xD3[7:0]
  253. PUSH YH -> 0xD4[7:0]
  254. PUSH YL -> 0xD5[7:0]
  255. PUSH [{src}] -> 0xD6[7:0] @ src[7:0]
  256. PUSH {src} -> 0xD7[7:0] @ src[7:0]
  257. POP AH -> 0xD8[7:0]
  258. POP AL -> 0xD9[7:0]
  259. POP XH -> 0xDA[7:0]
  260. POP XL -> 0xDB[7:0]
  261. POP YH -> 0xDC[7:0]
  262. POP YL -> 0xDD[7:0]
  263. POP [{dest}] -> 0xDE[7:0] @ dest[7:0]
  264. CMP {src} -> 0xDF[7:0] @ src[7:0]
  265. ;--------------------------------------------------------------------------0xE0
  266. JR {src} -> 0xE0[7:0] @ (src - pc)[15:0]
  267. JR Y -> 0xE1[7:0]
  268. JR {fl:FLAGS} {src} -> 0xE[3:0] @ fl[3:0] @ (src - pc)[15:0]
  269. ;--------------------------------------------------------------------------0xF0
  270. CALL {src} -> 0xF0[7:0] @ src[23:0]
  271. CALL ({src}, X) -> 0xF1[7:0] @ src[23:0]
  272. CALL {fl:FLAGS} {src} -> 0xF[3:0] @ fl[3:0] @ src[23:0]
  273. ;--------------------------------------------------------------------------0x00----PAGE-1
  274.  
  275. ;--------------------------------------------------------------------------0x10----PAGE-1
  276.  
  277. ;--------------------------------------------------------------------------0x20----PAGE-1
  278.  
  279. ;--------------------------------------------------------------------------0x30----PAGE-1
  280.  
  281. ;--------------------------------------------------------------------------0x40----PAGE-1
  282.  
  283. ;--------------------------------------------------------------------------0x50----PAGE-1
  284.  
  285. ;--------------------------------------------------------------------------0x60----PAGE-1
  286.  
  287. ;--------------------------------------------------------------------------0x70----PAGE-1
  288.  
  289. ;--------------------------------------------------------------------------0x80----PAGE-1
  290. LD AH, AL -> 0xF1[7:0] @ 0x80[7:0]
  291. LD AL, AH -> 0xF1[7:0] @ 0x81[7:0]
  292. ;--------------------------------------------------------------------------0x90----PAGE-1
  293. LD XH, XL -> 0xF1[7:0] @ 0x90[7:0]
  294. LD XL, XH -> 0xF1[7:0] @ 0x91[7:0]
  295. ;--------------------------------------------------------------------------0xA0----PAGE-1
  296. LD YH, YL -> 0xF1[7:0] @ 0xA0[7:0]
  297. LD YL, YH -> 0xF1[7:0] @ 0xA1[7:0]
  298. ;--------------------------------------------------------------------------0xB0----PAGE-1
  299.  
  300. ;--------------------------------------------------------------------------0xC0----PAGE-1
  301.  
  302. ;--------------------------------------------------------------------------0xD0----PAGE-1
  303.  
  304. ;--------------------------------------------------------------------------0xE0----PAGE-1
  305.  
  306. ;--------------------------------------------------------------------------0xF0----PAGE-1
  307.  
  308.  
  309. }
Add Comment
Please, Sign In to add comment