Advertisement
12Me21

tetris

Sep 23rd, 2017
405
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  1. CALL @ME
  2. LD I,@PIXEL
  3. LD v1,1B
  4. LD v2,1F
  5. DRW v1,v2,1
  6. LD v1,20
  7. DRW v1,v2,1
  8.  
  9. LD I,280
  10. LD v1,1A
  11. LD v2,11
  12. DRW v1,v2,F
  13. ADD v2,F1
  14. DRW v1,v2,F
  15. ADD v1,0B
  16. DRW v1,v2,F
  17. ADD v2,0F
  18. DRW v1,v2,F
  19.  
  20. LD v6,0
  21. CALL @SCORE
  22. CALL @DISPNEXT
  23. CALL @MAKEPART
  24.  
  25. @MAIN
  26. CALL @TIME
  27. CALL @MOVEDOWN
  28. CALL @MOVELEFT
  29. CALL @MOVERIGHT
  30. CALL @ROTATERIGHT
  31. JMP @MAIN
  32.  
  33. @TIME
  34. LD vF,DT
  35. SE vF,0
  36. RET
  37. SE vC,0
  38. ADD vC,FF
  39. SE vD,0
  40. ADD vD,FF
  41. SE vE,0
  42. ADD vE,FF
  43. LD vF,1
  44. LD DT,vF
  45. RET
  46.  
  47. NOP
  48.  
  49. @DRAWPART
  50. LD I,@PARTS
  51. ADD I,v4
  52. ADD I,v3
  53. DRW v1,v2,4 'JMP @DRAW
  54. RET
  55.  
  56. NOP
  57. NOP
  58. NOP
  59.  
  60. @DISPNEXT
  61. LD v1,30
  62. LD v2,10
  63. LD I,@PARTS
  64. ADD I,v5
  65. DRW v1,v2,4
  66. RET
  67.  
  68. NOP
  69. NOP
  70.  
  71. F8FF
  72. 80C0
  73. NOP
  74. NOP
  75. NOP
  76. NOP
  77. NOP
  78. NOP
  79.  
  80. 8080
  81. 8080
  82. 8080
  83. 8080
  84. 8080
  85. 8080
  86. 8080
  87. 8080
  88.  
  89. @PARTS
  90. ...
  91.  
  92. @MOVELEFT
  93. LD vF,04
  94. SK vF
  95. SE vC,00
  96. RET
  97. LD vC,06
  98. CALL @DRAWPART
  99. ADD v1,FF
  100. CALL @DRAWPART
  101. SE rF,01
  102. RET
  103. CALL @DRAWPART
  104. ADD v1,01
  105. CALL @DRAWPART
  106. RET
  107.  
  108. NOP
  109.  
  110. @MOVERIGHT
  111. LD vF,06
  112. SK vF
  113. SE vC,00
  114. RET
  115. LD vC,06
  116. CALL @DRAWPART
  117. ADD v1,01
  118. CALL @DRAWPART
  119. SE rF,01
  120. RET
  121. CALL @DRAWPART
  122. ADD v1,FF
  123. CALL @DRAWPART
  124. RET
  125.  
  126. NOP
  127.  
  128. @MOVEDOWN
  129. LD vF,08
  130. SNK
  131. JMP @SKIPFAST
  132. SE vE,00
  133. LD vE,01
  134. @SKIPFAST
  135. SE vE,00
  136. RET
  137. LD vE,v0
  138. CALL @DRAWPART
  139. ADD v2,1
  140. CALL @DRAWPART
  141. SE rF,1
  142. RET
  143. CALL @DRAWPART
  144. ADD v2,FF
  145. CALL @DRAWPART
  146. LD vF,03
  147. LD ST,vF
  148. CALL @TESTROWS
  149. NOP
  150.  
  151. @MAKEPART
  152. LD I,@DROPS
  153. LD v0,v7
  154. SHR v0,v0
  155. SHR v0,v0
  156. SHR v0,v0
  157. ADD I,v0
  158. LD v0,[I]
  159. CALL @DISPNEXT
  160. @RND
  161. RND v5,70
  162. SNE v5,70
  163. JMP @RND
  164. CALL @DISPNEXT
  165. LD v1,1E
  166. LD v2,03
  167. LD v3,00
  168. CALL @DRAWPART
  169. SE vF,1
  170. RET
  171. LD vF,80
  172. LD ST,vF
  173. IN vF
  174. CLS
  175. LD vF,0
  176. LD ST,vF
  177. JMP 200
  178.  
  179. NOP
  180.  
  181. @ROTATERIGHT
  182. LD vF,2
  183. SK vF
  184. LD vB,0
  185. SK vF
  186. RET
  187. SE vB,0
  188. RET
  189. LD vB,1
  190. CALL @DRAWPART
  191. ADD v3,4
  192. LD vF,C
  193. AND v3,vF
  194. CALL @DRAWPART
  195. SE rF,1
  196. RET
  197. CALL @DRAWPART
  198. ADD v3,FC
  199. LD vF,C
  200. AND v3,vF
  201. CALL @DRAWPART
  202. RET
  203.  
  204. NOP
  205. NOP
  206. NOP
  207.  
  208. 'use v3 for persistant v2, v2 for Y temp
  209. @TESTROWS
  210. LD vE,00
  211. LD vB,00
  212. @TESTLOOP
  213. LD v3,v2
  214. CALL @TESTROW
  215. ADD v2,1
  216. SNE v2,1F
  217. RET
  218. ADD vE,1
  219. SNE vE,4
  220. RET
  221. JMP @TESTLOOP
  222.  
  223. NOP
  224. NOP
  225. NOP
  226.  
  227. @TESTROW
  228. LD v1,1B
  229. LD I,@PIXEL+1
  230. DRW v1,v3,1
  231. DRW v1,v3,1
  232. SNE vF,1
  233. RET
  234. ADD v1,08
  235. LD I,@PIXEL+3
  236. DRW v1,v3,1
  237. DRW v1,v3,1
  238. SNE vF,1
  239. RET
  240.  
  241. LD I,@PIXEL
  242. LD v1,1B
  243. LD ST,v1 'bad
  244. DRW v1,v3,1
  245. ADD v1,5
  246. DRW v1,v3,1
  247. LD v0,0
  248.  
  249. @LOOP_Y
  250. LD v1,#1B
  251. ADD v3,FF
  252. LD v4,00
  253. @LOOP_X
  254. LD I,@PIXEL+2
  255. DRW v1,v3,1
  256. SNE vF,1
  257. ADD v0,4
  258. SHL v0,v0
  259. ADD v1,1
  260. SNE v1,20
  261. CALL @DRAW_ROW
  262. SE v1,25
  263. JMP @LOOP_X
  264. CALL @DRAW_ROW
  265. SE v4,0
  266. JMP @LOOP_Y
  267.  
  268. SE v7,B7
  269. ADD v7,1
  270. ADD vB,1
  271. CALL @SCORE
  272. ADD v6,vB
  273. @SCORE
  274. LD v1,40
  275. LD r9,0
  276. LD I,700
  277. LDD [I],v6
  278. LD I,FF0
  279. CALL @DIGIT
  280. LD I,FF1
  281. CALL @DIGIT
  282. LD I,FF2
  283. @DIGIT
  284. LD v0,[I]
  285. LDF I,v0
  286. DRW v1,v9,5
  287. ADD v1,5
  288. RET 'DOUBLE
  289.  
  290. NOP
  291. NOP
  292. NOP
  293. NOP
  294.  
  295. @DRAW_ROW
  296. OR v4,v0
  297. LD I,FFF
  298. LD [I],v0
  299. LD I,FFF
  300. ADD v1,FB
  301. ADD v3,1
  302. DRW v1,v3,1
  303. ADD v3,FF
  304. LD vF,F8
  305. XOR v0,vF
  306. LD [I],v0
  307. LD I,FFF
  308. DRW v1,v3,1
  309. ADD v1,5
  310. LD v0,0
  311. RET
  312.  
  313. NOP
  314. NOP
  315. NOP
  316. NOP
  317. NOP
  318. NOP
  319. NOP
  320. NOP
  321.  
  322. @ME
  323. LD v1,0
  324. LD v2,10
  325. LD I,@MEDATA
  326. CALL @MEPART
  327. LD I,@MEDATA+1
  328. CALL @MEPART
  329. LD I,@MEDATA+2
  330. CALL @MEPART
  331. LD I,@PIXEL+3
  332. ADD v2,4
  333. DRW v1,v2,1
  334. RET
  335. @MEPART
  336. DRW v1,v2,5
  337. ADD v1,8
  338. RET
  339.  
  340. NOP
  341.  
  342. @MEDATA
  343. ...
  344.  
  345. @DROPDATA
  346. ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement