draw_amips.s 42 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756
  1. #*
  2. #* several drawing related functions for Allegrex MIPS
  3. #* (C) notaz, 2007-2008
  4. #*
  5. #* This work is licensed under the terms of MAME license.
  6. #* See COPYING file in the top-level directory.
  7. #*
  8. #* this is highly specialized, be careful if changing related C code!
  9. #*
  10. .set noreorder # don't reorder any instructions
  11. .set noat # don't use $at
  12. .text
  13. .align 4
  14. # void amips_clut(unsigned short *dst, unsigned char *src, unsigned short *pal, int count)
  15. .global amips_clut
  16. amips_clut:
  17. srl $a3, 2
  18. amips_clut_loop:
  19. lbu $t0, 0($a1) # tried lw here, no improvement noticed
  20. lbu $t1, 1($a1)
  21. lbu $t2, 2($a1)
  22. lbu $t3, 3($a1)
  23. sll $t0, 1
  24. sll $t1, 1
  25. sll $t2, 1
  26. sll $t3, 1
  27. addu $t0, $a2
  28. addu $t1, $a2
  29. addu $t2, $a2
  30. addu $t3, $a2
  31. lhu $t0, 0($t0)
  32. lhu $t1, 0($t1)
  33. lhu $t2, 0($t2)
  34. lhu $t3, 0($t3)
  35. ins $t0, $t1, 16, 16 # ins rt, rs, pos, size - Insert size bits starting
  36. ins $t2, $t3, 16, 16 # from the LSB of rs into rt starting at position pos
  37. sw $t0, 0($a0)
  38. sw $t2, 4($a0)
  39. addiu $a0, 8
  40. addiu $a3, -1
  41. bnez $a3, amips_clut_loop
  42. addiu $a1, 4
  43. jr $ra
  44. nop
  45. .global amips_clut_6bit
  46. amips_clut_6bit:
  47. srl $a3, 2
  48. li $t4, 0
  49. li $t5, 0
  50. li $t6, 0
  51. li $t7, 0
  52. amips_clut_loop6:
  53. lbu $t0, 0($a1) # tried lw here, no improvement noticed
  54. lbu $t1, 1($a1)
  55. lbu $t2, 2($a1)
  56. lbu $t3, 3($a1)
  57. ins $t4, $t0, 1, 6
  58. ins $t5, $t1, 1, 6
  59. ins $t6, $t2, 1, 6
  60. ins $t7, $t3, 1, 6
  61. addu $t0, $t4, $a2
  62. addu $t1, $t5, $a2
  63. addu $t2, $t6, $a2
  64. addu $t3, $t7, $a2
  65. lhu $t0, 0($t0)
  66. lhu $t1, 0($t1)
  67. lhu $t2, 0($t2)
  68. lhu $t3, 0($t3)
  69. ins $t0, $t1, 16, 16 # ins rt, rs, pos, size - Insert size bits starting
  70. ins $t2, $t3, 16, 16 # from the LSB of rs into rt starting at position pos
  71. sw $t0, 0($a0)
  72. sw $t2, 4($a0)
  73. addiu $a0, 8
  74. addiu $a3, -1
  75. bnez $a3, amips_clut_loop6
  76. addiu $a1, 4
  77. jr $ra
  78. nop
  79. # $a0 - pd, $a1 - tile word, $a2 - pal
  80. # ext rt, rs, pos, size // Extract size bits from position pos in rs and store in rt
  81. .macro TilePixelPrep shift dreg offs
  82. .if \shift
  83. ext \dreg, $a1, \shift, 4
  84. .else
  85. andi \dreg, $a1, 0xf
  86. .endif
  87. .if \offs
  88. sltu $t8, $0, \dreg
  89. ins $t9, $t8, \offs, 1
  90. .else
  91. sltu $t9, $0, \dreg
  92. .endif
  93. .endm
  94. .macro TileStartCode
  95. sll $a1, $a1, 1
  96. lui $t1, %hi(Pico+0x10000)
  97. addu $a1, $a1, $t1
  98. lw $a1, %lo(Pico+0x10000)($a1) # Pico.vram + addr
  99. beqz $a1, TileEmpty
  100. rotr $t1, $a1, 4
  101. beq $t1, $a1, SingleColor
  102. and $v0, $0 # not empty tile
  103. .endm
  104. .macro TileEndCode
  105. xori $t8, $t9, 0xff
  106. beqz $t8, tile11111111 # common case
  107. lui $v1, %hi(HighCol)
  108. lui $t8, %hi(TileTable)
  109. ins $t8, $t9, 2, 8
  110. lw $t8, %lo(TileTable)($t8)
  111. lw $v1, %lo(HighCol)($v1)
  112. jr $t8
  113. addu $a0, $v1
  114. .endm
  115. .global TileNorm
  116. TileNorm:
  117. TileStartCode
  118. TilePixelPrep 12, $t0, 0
  119. TilePixelPrep 8, $t1, 1
  120. TilePixelPrep 4, $t2, 2
  121. TilePixelPrep 0, $t3, 3
  122. TilePixelPrep 28, $t4, 4
  123. TilePixelPrep 24, $t5, 5
  124. TilePixelPrep 20, $t6, 6
  125. TilePixelPrep 16, $t7, 7
  126. TileEndCode
  127. .global TileFlip
  128. TileFlip:
  129. TileStartCode
  130. TilePixelPrep 16, $t0, 0
  131. TilePixelPrep 20, $t1, 1
  132. TilePixelPrep 24, $t2, 2
  133. TilePixelPrep 28, $t3, 3
  134. TilePixelPrep 0, $t4, 4
  135. TilePixelPrep 4, $t5, 5
  136. TilePixelPrep 8, $t6, 6
  137. TilePixelPrep 12, $t7, 7
  138. TileEndCode
  139. SingleColor:
  140. lui $t9, %hi(HighCol)
  141. lw $t9, %lo(HighCol)($t9)
  142. andi $t0, $a1, 0xf
  143. or $t0, $t0, $a2
  144. addu $a0, $t9
  145. sb $t0, 0($a0)
  146. sb $t0, 1($a0)
  147. sb $t0, 2($a0)
  148. sb $t0, 3($a0)
  149. sb $t0, 4($a0)
  150. sb $t0, 5($a0)
  151. sb $t0, 6($a0)
  152. jr $ra
  153. sb $t0, 7($a0)
  154. TileEmpty:
  155. jr $ra
  156. or $v0, $0, 1 # empty tile
  157. tile11111111:
  158. lw $v1, %lo(HighCol)($v1)
  159. or $t0, $t0, $a2
  160. addu $a0, $v1
  161. sb $t0, 0($a0)
  162. tile11111110:
  163. or $t1, $t1, $a2
  164. sb $t1, 1($a0)
  165. tile11111100:
  166. or $t2, $t2, $a2
  167. sb $t2, 2($a0)
  168. tile11111000:
  169. or $t3, $t3, $a2
  170. sb $t3, 3($a0)
  171. tile11110000:
  172. or $t4, $t4, $a2
  173. sb $t4, 4($a0)
  174. tile11100000:
  175. or $t5, $t5, $a2
  176. sb $t5, 5($a0)
  177. tile11000000:
  178. or $t6, $t6, $a2
  179. sb $t6, 6($a0)
  180. tile10000000:
  181. or $t7, $t7, $a2
  182. jr $ra
  183. sb $t7, 7($a0)
  184. tile11111101:
  185. or $t0, $t0, $a2
  186. sb $t0, 0($a0)
  187. or $t2, $t2, $a2
  188. sb $t2, 2($a0)
  189. or $t3, $t3, $a2
  190. sb $t3, 3($a0)
  191. or $t4, $t4, $a2
  192. sb $t4, 4($a0)
  193. or $t5, $t5, $a2
  194. sb $t5, 5($a0)
  195. or $t6, $t6, $a2
  196. sb $t6, 6($a0)
  197. or $t7, $t7, $a2
  198. jr $ra
  199. sb $t7, 7($a0)
  200. tile11111011:
  201. or $t0, $t0, $a2
  202. sb $t0, 0($a0)
  203. tile11111010:
  204. or $t1, $t1, $a2
  205. sb $t1, 1($a0)
  206. or $t3, $t3, $a2
  207. sb $t3, 3($a0)
  208. or $t4, $t4, $a2
  209. sb $t4, 4($a0)
  210. or $t5, $t5, $a2
  211. sb $t5, 5($a0)
  212. or $t6, $t6, $a2
  213. sb $t6, 6($a0)
  214. or $t7, $t7, $a2
  215. jr $ra
  216. sb $t7, 7($a0)
  217. tile11111001:
  218. or $t0, $t0, $a2
  219. sb $t0, 0($a0)
  220. or $t3, $t3, $a2
  221. sb $t3, 3($a0)
  222. or $t4, $t4, $a2
  223. sb $t4, 4($a0)
  224. or $t5, $t5, $a2
  225. sb $t5, 5($a0)
  226. or $t6, $t6, $a2
  227. sb $t6, 6($a0)
  228. or $t7, $t7, $a2
  229. jr $ra
  230. sb $t7, 7($a0)
  231. tile11110111:
  232. or $t0, $t0, $a2
  233. sb $t0, 0($a0)
  234. tile11110110:
  235. or $t1, $t1, $a2
  236. sb $t1, 1($a0)
  237. tile11110100:
  238. or $t2, $t2, $a2
  239. sb $t2, 2($a0)
  240. or $t4, $t4, $a2
  241. sb $t4, 4($a0)
  242. or $t5, $t5, $a2
  243. sb $t5, 5($a0)
  244. or $t6, $t6, $a2
  245. sb $t6, 6($a0)
  246. or $t7, $t7, $a2
  247. jr $ra
  248. sb $t7, 7($a0)
  249. tile11110101:
  250. or $t0, $t0, $a2
  251. sb $t0, 0($a0)
  252. or $t2, $t2, $a2
  253. sb $t2, 2($a0)
  254. or $t4, $t4, $a2
  255. sb $t4, 4($a0)
  256. or $t5, $t5, $a2
  257. sb $t5, 5($a0)
  258. or $t6, $t6, $a2
  259. sb $t6, 6($a0)
  260. or $t7, $t7, $a2
  261. jr $ra
  262. sb $t7, 7($a0)
  263. tile11110011:
  264. or $t0, $t0, $a2
  265. sb $t0, 0($a0)
  266. tile11110010:
  267. or $t1, $t1, $a2
  268. sb $t1, 1($a0)
  269. or $t4, $t4, $a2
  270. sb $t4, 4($a0)
  271. or $t5, $t5, $a2
  272. sb $t5, 5($a0)
  273. or $t6, $t6, $a2
  274. sb $t6, 6($a0)
  275. or $t7, $t7, $a2
  276. jr $ra
  277. sb $t7, 7($a0)
  278. tile11110001:
  279. or $t0, $t0, $a2
  280. sb $t0, 0($a0)
  281. or $t4, $t4, $a2
  282. sb $t4, 4($a0)
  283. or $t5, $t5, $a2
  284. sb $t5, 5($a0)
  285. or $t6, $t6, $a2
  286. sb $t6, 6($a0)
  287. or $t7, $t7, $a2
  288. jr $ra
  289. sb $t7, 7($a0)
  290. tile11101111:
  291. or $t0, $t0, $a2
  292. sb $t0, 0($a0)
  293. tile11101110:
  294. or $t1, $t1, $a2
  295. sb $t1, 1($a0)
  296. tile11101100:
  297. or $t2, $t2, $a2
  298. sb $t2, 2($a0)
  299. tile11101000:
  300. or $t3, $t3, $a2
  301. sb $t3, 3($a0)
  302. or $t5, $t5, $a2
  303. sb $t5, 5($a0)
  304. or $t6, $t6, $a2
  305. sb $t6, 6($a0)
  306. or $t7, $t7, $a2
  307. jr $ra
  308. sb $t7, 7($a0)
  309. tile11101101:
  310. or $t0, $t0, $a2
  311. sb $t0, 0($a0)
  312. or $t2, $t2, $a2
  313. sb $t2, 2($a0)
  314. or $t3, $t3, $a2
  315. sb $t3, 3($a0)
  316. or $t5, $t5, $a2
  317. sb $t5, 5($a0)
  318. or $t6, $t6, $a2
  319. sb $t6, 6($a0)
  320. or $t7, $t7, $a2
  321. jr $ra
  322. sb $t7, 7($a0)
  323. tile11101011:
  324. or $t0, $t0, $a2
  325. sb $t0, 0($a0)
  326. tile11101010:
  327. or $t1, $t1, $a2
  328. sb $t1, 1($a0)
  329. or $t3, $t3, $a2
  330. sb $t3, 3($a0)
  331. or $t5, $t5, $a2
  332. sb $t5, 5($a0)
  333. or $t6, $t6, $a2
  334. sb $t6, 6($a0)
  335. or $t7, $t7, $a2
  336. jr $ra
  337. sb $t7, 7($a0)
  338. tile11101001:
  339. or $t0, $t0, $a2
  340. sb $t0, 0($a0)
  341. or $t3, $t3, $a2
  342. sb $t3, 3($a0)
  343. or $t5, $t5, $a2
  344. sb $t5, 5($a0)
  345. or $t6, $t6, $a2
  346. sb $t6, 6($a0)
  347. or $t7, $t7, $a2
  348. jr $ra
  349. sb $t7, 7($a0)
  350. tile11100111:
  351. or $t0, $t0, $a2
  352. sb $t0, 0($a0)
  353. tile11100110:
  354. or $t1, $t1, $a2
  355. sb $t1, 1($a0)
  356. tile11100100:
  357. or $t2, $t2, $a2
  358. sb $t2, 2($a0)
  359. or $t5, $t5, $a2
  360. sb $t5, 5($a0)
  361. or $t6, $t6, $a2
  362. sb $t6, 6($a0)
  363. or $t7, $t7, $a2
  364. jr $ra
  365. sb $t7, 7($a0)
  366. tile11100101:
  367. or $t0, $t0, $a2
  368. sb $t0, 0($a0)
  369. or $t2, $t2, $a2
  370. sb $t2, 2($a0)
  371. or $t5, $t5, $a2
  372. sb $t5, 5($a0)
  373. or $t6, $t6, $a2
  374. sb $t6, 6($a0)
  375. or $t7, $t7, $a2
  376. jr $ra
  377. sb $t7, 7($a0)
  378. tile11100011:
  379. or $t0, $t0, $a2
  380. sb $t0, 0($a0)
  381. tile11100010:
  382. or $t1, $t1, $a2
  383. sb $t1, 1($a0)
  384. or $t5, $t5, $a2
  385. sb $t5, 5($a0)
  386. or $t6, $t6, $a2
  387. sb $t6, 6($a0)
  388. or $t7, $t7, $a2
  389. jr $ra
  390. sb $t7, 7($a0)
  391. tile11100001:
  392. or $t0, $t0, $a2
  393. sb $t0, 0($a0)
  394. or $t5, $t5, $a2
  395. sb $t5, 5($a0)
  396. or $t6, $t6, $a2
  397. sb $t6, 6($a0)
  398. or $t7, $t7, $a2
  399. jr $ra
  400. sb $t7, 7($a0)
  401. tile11011111:
  402. or $t0, $t0, $a2
  403. sb $t0, 0($a0)
  404. tile11011110:
  405. or $t1, $t1, $a2
  406. sb $t1, 1($a0)
  407. tile11011100:
  408. or $t2, $t2, $a2
  409. sb $t2, 2($a0)
  410. tile11011000:
  411. or $t3, $t3, $a2
  412. sb $t3, 3($a0)
  413. tile11010000:
  414. or $t4, $t4, $a2
  415. sb $t4, 4($a0)
  416. or $t6, $t6, $a2
  417. sb $t6, 6($a0)
  418. or $t7, $t7, $a2
  419. jr $ra
  420. sb $t7, 7($a0)
  421. tile11011101:
  422. or $t0, $t0, $a2
  423. sb $t0, 0($a0)
  424. or $t2, $t2, $a2
  425. sb $t2, 2($a0)
  426. or $t3, $t3, $a2
  427. sb $t3, 3($a0)
  428. or $t4, $t4, $a2
  429. sb $t4, 4($a0)
  430. or $t6, $t6, $a2
  431. sb $t6, 6($a0)
  432. or $t7, $t7, $a2
  433. jr $ra
  434. sb $t7, 7($a0)
  435. tile11011011:
  436. or $t0, $t0, $a2
  437. sb $t0, 0($a0)
  438. tile11011010:
  439. or $t1, $t1, $a2
  440. sb $t1, 1($a0)
  441. or $t3, $t3, $a2
  442. sb $t3, 3($a0)
  443. or $t4, $t4, $a2
  444. sb $t4, 4($a0)
  445. or $t6, $t6, $a2
  446. sb $t6, 6($a0)
  447. or $t7, $t7, $a2
  448. jr $ra
  449. sb $t7, 7($a0)
  450. tile11011001:
  451. or $t0, $t0, $a2
  452. sb $t0, 0($a0)
  453. or $t3, $t3, $a2
  454. sb $t3, 3($a0)
  455. or $t4, $t4, $a2
  456. sb $t4, 4($a0)
  457. or $t6, $t6, $a2
  458. sb $t6, 6($a0)
  459. or $t7, $t7, $a2
  460. jr $ra
  461. sb $t7, 7($a0)
  462. tile11010111:
  463. or $t0, $t0, $a2
  464. sb $t0, 0($a0)
  465. tile11010110:
  466. or $t1, $t1, $a2
  467. sb $t1, 1($a0)
  468. tile11010100:
  469. or $t2, $t2, $a2
  470. sb $t2, 2($a0)
  471. or $t4, $t4, $a2
  472. sb $t4, 4($a0)
  473. or $t6, $t6, $a2
  474. sb $t6, 6($a0)
  475. or $t7, $t7, $a2
  476. jr $ra
  477. sb $t7, 7($a0)
  478. tile11010101:
  479. or $t0, $t0, $a2
  480. sb $t0, 0($a0)
  481. or $t2, $t2, $a2
  482. sb $t2, 2($a0)
  483. or $t4, $t4, $a2
  484. sb $t4, 4($a0)
  485. or $t6, $t6, $a2
  486. sb $t6, 6($a0)
  487. or $t7, $t7, $a2
  488. jr $ra
  489. sb $t7, 7($a0)
  490. tile11010011:
  491. or $t0, $t0, $a2
  492. sb $t0, 0($a0)
  493. tile11010010:
  494. or $t1, $t1, $a2
  495. sb $t1, 1($a0)
  496. or $t4, $t4, $a2
  497. sb $t4, 4($a0)
  498. or $t6, $t6, $a2
  499. sb $t6, 6($a0)
  500. or $t7, $t7, $a2
  501. jr $ra
  502. sb $t7, 7($a0)
  503. tile11010001:
  504. or $t0, $t0, $a2
  505. sb $t0, 0($a0)
  506. or $t4, $t4, $a2
  507. sb $t4, 4($a0)
  508. or $t6, $t6, $a2
  509. sb $t6, 6($a0)
  510. or $t7, $t7, $a2
  511. jr $ra
  512. sb $t7, 7($a0)
  513. tile11001111:
  514. or $t0, $t0, $a2
  515. sb $t0, 0($a0)
  516. tile11001110:
  517. or $t1, $t1, $a2
  518. sb $t1, 1($a0)
  519. tile11001100:
  520. or $t2, $t2, $a2
  521. sb $t2, 2($a0)
  522. tile11001000:
  523. or $t3, $t3, $a2
  524. sb $t3, 3($a0)
  525. or $t6, $t6, $a2
  526. sb $t6, 6($a0)
  527. or $t7, $t7, $a2
  528. jr $ra
  529. sb $t7, 7($a0)
  530. tile11001101:
  531. or $t0, $t0, $a2
  532. sb $t0, 0($a0)
  533. or $t2, $t2, $a2
  534. sb $t2, 2($a0)
  535. or $t3, $t3, $a2
  536. sb $t3, 3($a0)
  537. or $t6, $t6, $a2
  538. sb $t6, 6($a0)
  539. or $t7, $t7, $a2
  540. jr $ra
  541. sb $t7, 7($a0)
  542. tile11001011:
  543. or $t0, $t0, $a2
  544. sb $t0, 0($a0)
  545. tile11001010:
  546. or $t1, $t1, $a2
  547. sb $t1, 1($a0)
  548. or $t3, $t3, $a2
  549. sb $t3, 3($a0)
  550. or $t6, $t6, $a2
  551. sb $t6, 6($a0)
  552. or $t7, $t7, $a2
  553. jr $ra
  554. sb $t7, 7($a0)
  555. tile11001001:
  556. or $t0, $t0, $a2
  557. sb $t0, 0($a0)
  558. or $t3, $t3, $a2
  559. sb $t3, 3($a0)
  560. or $t6, $t6, $a2
  561. sb $t6, 6($a0)
  562. or $t7, $t7, $a2
  563. jr $ra
  564. sb $t7, 7($a0)
  565. tile11000111:
  566. or $t0, $t0, $a2
  567. sb $t0, 0($a0)
  568. tile11000110:
  569. or $t1, $t1, $a2
  570. sb $t1, 1($a0)
  571. tile11000100:
  572. or $t2, $t2, $a2
  573. sb $t2, 2($a0)
  574. or $t6, $t6, $a2
  575. sb $t6, 6($a0)
  576. or $t7, $t7, $a2
  577. jr $ra
  578. sb $t7, 7($a0)
  579. tile11000101:
  580. or $t0, $t0, $a2
  581. sb $t0, 0($a0)
  582. or $t2, $t2, $a2
  583. sb $t2, 2($a0)
  584. or $t6, $t6, $a2
  585. sb $t6, 6($a0)
  586. or $t7, $t7, $a2
  587. jr $ra
  588. sb $t7, 7($a0)
  589. tile11000011:
  590. or $t0, $t0, $a2
  591. sb $t0, 0($a0)
  592. tile11000010:
  593. or $t1, $t1, $a2
  594. sb $t1, 1($a0)
  595. or $t6, $t6, $a2
  596. sb $t6, 6($a0)
  597. or $t7, $t7, $a2
  598. jr $ra
  599. sb $t7, 7($a0)
  600. tile11000001:
  601. or $t0, $t0, $a2
  602. sb $t0, 0($a0)
  603. or $t6, $t6, $a2
  604. sb $t6, 6($a0)
  605. or $t7, $t7, $a2
  606. jr $ra
  607. sb $t7, 7($a0)
  608. tile10111111:
  609. or $t0, $t0, $a2
  610. sb $t0, 0($a0)
  611. tile10111110:
  612. or $t1, $t1, $a2
  613. sb $t1, 1($a0)
  614. tile10111100:
  615. or $t2, $t2, $a2
  616. sb $t2, 2($a0)
  617. tile10111000:
  618. or $t3, $t3, $a2
  619. sb $t3, 3($a0)
  620. tile10110000:
  621. or $t4, $t4, $a2
  622. sb $t4, 4($a0)
  623. tile10100000:
  624. or $t5, $t5, $a2
  625. sb $t5, 5($a0)
  626. or $t7, $t7, $a2
  627. jr $ra
  628. sb $t7, 7($a0)
  629. tile10111101:
  630. or $t0, $t0, $a2
  631. sb $t0, 0($a0)
  632. or $t2, $t2, $a2
  633. sb $t2, 2($a0)
  634. or $t3, $t3, $a2
  635. sb $t3, 3($a0)
  636. or $t4, $t4, $a2
  637. sb $t4, 4($a0)
  638. or $t5, $t5, $a2
  639. sb $t5, 5($a0)
  640. or $t7, $t7, $a2
  641. jr $ra
  642. sb $t7, 7($a0)
  643. tile10111011:
  644. or $t0, $t0, $a2
  645. sb $t0, 0($a0)
  646. tile10111010:
  647. or $t1, $t1, $a2
  648. sb $t1, 1($a0)
  649. or $t3, $t3, $a2
  650. sb $t3, 3($a0)
  651. or $t4, $t4, $a2
  652. sb $t4, 4($a0)
  653. or $t5, $t5, $a2
  654. sb $t5, 5($a0)
  655. or $t7, $t7, $a2
  656. jr $ra
  657. sb $t7, 7($a0)
  658. tile10111001:
  659. or $t0, $t0, $a2
  660. sb $t0, 0($a0)
  661. or $t3, $t3, $a2
  662. sb $t3, 3($a0)
  663. or $t4, $t4, $a2
  664. sb $t4, 4($a0)
  665. or $t5, $t5, $a2
  666. sb $t5, 5($a0)
  667. or $t7, $t7, $a2
  668. jr $ra
  669. sb $t7, 7($a0)
  670. tile10110111:
  671. or $t0, $t0, $a2
  672. sb $t0, 0($a0)
  673. tile10110110:
  674. or $t1, $t1, $a2
  675. sb $t1, 1($a0)
  676. tile10110100:
  677. or $t2, $t2, $a2
  678. sb $t2, 2($a0)
  679. or $t4, $t4, $a2
  680. sb $t4, 4($a0)
  681. or $t5, $t5, $a2
  682. sb $t5, 5($a0)
  683. or $t7, $t7, $a2
  684. jr $ra
  685. sb $t7, 7($a0)
  686. tile10110101:
  687. or $t0, $t0, $a2
  688. sb $t0, 0($a0)
  689. or $t2, $t2, $a2
  690. sb $t2, 2($a0)
  691. or $t4, $t4, $a2
  692. sb $t4, 4($a0)
  693. or $t5, $t5, $a2
  694. sb $t5, 5($a0)
  695. or $t7, $t7, $a2
  696. jr $ra
  697. sb $t7, 7($a0)
  698. tile10110011:
  699. or $t0, $t0, $a2
  700. sb $t0, 0($a0)
  701. tile10110010:
  702. or $t1, $t1, $a2
  703. sb $t1, 1($a0)
  704. or $t4, $t4, $a2
  705. sb $t4, 4($a0)
  706. or $t5, $t5, $a2
  707. sb $t5, 5($a0)
  708. or $t7, $t7, $a2
  709. jr $ra
  710. sb $t7, 7($a0)
  711. tile10110001:
  712. or $t0, $t0, $a2
  713. sb $t0, 0($a0)
  714. or $t4, $t4, $a2
  715. sb $t4, 4($a0)
  716. or $t5, $t5, $a2
  717. sb $t5, 5($a0)
  718. or $t7, $t7, $a2
  719. jr $ra
  720. sb $t7, 7($a0)
  721. tile10101111:
  722. or $t0, $t0, $a2
  723. sb $t0, 0($a0)
  724. tile10101110:
  725. or $t1, $t1, $a2
  726. sb $t1, 1($a0)
  727. tile10101100:
  728. or $t2, $t2, $a2
  729. sb $t2, 2($a0)
  730. tile10101000:
  731. or $t3, $t3, $a2
  732. sb $t3, 3($a0)
  733. or $t5, $t5, $a2
  734. sb $t5, 5($a0)
  735. or $t7, $t7, $a2
  736. jr $ra
  737. sb $t7, 7($a0)
  738. tile10101101:
  739. or $t0, $t0, $a2
  740. sb $t0, 0($a0)
  741. or $t2, $t2, $a2
  742. sb $t2, 2($a0)
  743. or $t3, $t3, $a2
  744. sb $t3, 3($a0)
  745. or $t5, $t5, $a2
  746. sb $t5, 5($a0)
  747. or $t7, $t7, $a2
  748. jr $ra
  749. sb $t7, 7($a0)
  750. tile10101011:
  751. or $t0, $t0, $a2
  752. sb $t0, 0($a0)
  753. tile10101010:
  754. or $t1, $t1, $a2
  755. sb $t1, 1($a0)
  756. or $t3, $t3, $a2
  757. sb $t3, 3($a0)
  758. or $t5, $t5, $a2
  759. sb $t5, 5($a0)
  760. or $t7, $t7, $a2
  761. jr $ra
  762. sb $t7, 7($a0)
  763. tile10101001:
  764. or $t0, $t0, $a2
  765. sb $t0, 0($a0)
  766. or $t3, $t3, $a2
  767. sb $t3, 3($a0)
  768. or $t5, $t5, $a2
  769. sb $t5, 5($a0)
  770. or $t7, $t7, $a2
  771. jr $ra
  772. sb $t7, 7($a0)
  773. tile10100111:
  774. or $t0, $t0, $a2
  775. sb $t0, 0($a0)
  776. tile10100110:
  777. or $t1, $t1, $a2
  778. sb $t1, 1($a0)
  779. tile10100100:
  780. or $t2, $t2, $a2
  781. sb $t2, 2($a0)
  782. or $t5, $t5, $a2
  783. sb $t5, 5($a0)
  784. or $t7, $t7, $a2
  785. jr $ra
  786. sb $t7, 7($a0)
  787. tile10100101:
  788. or $t0, $t0, $a2
  789. sb $t0, 0($a0)
  790. or $t2, $t2, $a2
  791. sb $t2, 2($a0)
  792. or $t5, $t5, $a2
  793. sb $t5, 5($a0)
  794. or $t7, $t7, $a2
  795. jr $ra
  796. sb $t7, 7($a0)
  797. tile10100011:
  798. or $t0, $t0, $a2
  799. sb $t0, 0($a0)
  800. tile10100010:
  801. or $t1, $t1, $a2
  802. sb $t1, 1($a0)
  803. or $t5, $t5, $a2
  804. sb $t5, 5($a0)
  805. or $t7, $t7, $a2
  806. jr $ra
  807. sb $t7, 7($a0)
  808. tile10100001:
  809. or $t0, $t0, $a2
  810. sb $t0, 0($a0)
  811. or $t5, $t5, $a2
  812. sb $t5, 5($a0)
  813. or $t7, $t7, $a2
  814. jr $ra
  815. sb $t7, 7($a0)
  816. tile10011111:
  817. or $t0, $t0, $a2
  818. sb $t0, 0($a0)
  819. tile10011110:
  820. or $t1, $t1, $a2
  821. sb $t1, 1($a0)
  822. tile10011100:
  823. or $t2, $t2, $a2
  824. sb $t2, 2($a0)
  825. tile10011000:
  826. or $t3, $t3, $a2
  827. sb $t3, 3($a0)
  828. tile10010000:
  829. or $t4, $t4, $a2
  830. sb $t4, 4($a0)
  831. or $t7, $t7, $a2
  832. jr $ra
  833. sb $t7, 7($a0)
  834. tile10011101:
  835. or $t0, $t0, $a2
  836. sb $t0, 0($a0)
  837. or $t2, $t2, $a2
  838. sb $t2, 2($a0)
  839. or $t3, $t3, $a2
  840. sb $t3, 3($a0)
  841. or $t4, $t4, $a2
  842. sb $t4, 4($a0)
  843. or $t7, $t7, $a2
  844. jr $ra
  845. sb $t7, 7($a0)
  846. tile10011011:
  847. or $t0, $t0, $a2
  848. sb $t0, 0($a0)
  849. tile10011010:
  850. or $t1, $t1, $a2
  851. sb $t1, 1($a0)
  852. or $t3, $t3, $a2
  853. sb $t3, 3($a0)
  854. or $t4, $t4, $a2
  855. sb $t4, 4($a0)
  856. or $t7, $t7, $a2
  857. jr $ra
  858. sb $t7, 7($a0)
  859. tile10011001:
  860. or $t0, $t0, $a2
  861. sb $t0, 0($a0)
  862. or $t3, $t3, $a2
  863. sb $t3, 3($a0)
  864. or $t4, $t4, $a2
  865. sb $t4, 4($a0)
  866. or $t7, $t7, $a2
  867. jr $ra
  868. sb $t7, 7($a0)
  869. tile10010111:
  870. or $t0, $t0, $a2
  871. sb $t0, 0($a0)
  872. tile10010110:
  873. or $t1, $t1, $a2
  874. sb $t1, 1($a0)
  875. tile10010100:
  876. or $t2, $t2, $a2
  877. sb $t2, 2($a0)
  878. or $t4, $t4, $a2
  879. sb $t4, 4($a0)
  880. or $t7, $t7, $a2
  881. jr $ra
  882. sb $t7, 7($a0)
  883. tile10010101:
  884. or $t0, $t0, $a2
  885. sb $t0, 0($a0)
  886. or $t2, $t2, $a2
  887. sb $t2, 2($a0)
  888. or $t4, $t4, $a2
  889. sb $t4, 4($a0)
  890. or $t7, $t7, $a2
  891. jr $ra
  892. sb $t7, 7($a0)
  893. tile10010011:
  894. or $t0, $t0, $a2
  895. sb $t0, 0($a0)
  896. tile10010010:
  897. or $t1, $t1, $a2
  898. sb $t1, 1($a0)
  899. or $t4, $t4, $a2
  900. sb $t4, 4($a0)
  901. or $t7, $t7, $a2
  902. jr $ra
  903. sb $t7, 7($a0)
  904. tile10010001:
  905. or $t0, $t0, $a2
  906. sb $t0, 0($a0)
  907. or $t4, $t4, $a2
  908. sb $t4, 4($a0)
  909. or $t7, $t7, $a2
  910. jr $ra
  911. sb $t7, 7($a0)
  912. tile10001111:
  913. or $t0, $t0, $a2
  914. sb $t0, 0($a0)
  915. tile10001110:
  916. or $t1, $t1, $a2
  917. sb $t1, 1($a0)
  918. tile10001100:
  919. or $t2, $t2, $a2
  920. sb $t2, 2($a0)
  921. tile10001000:
  922. or $t3, $t3, $a2
  923. sb $t3, 3($a0)
  924. or $t7, $t7, $a2
  925. jr $ra
  926. sb $t7, 7($a0)
  927. tile10001101:
  928. or $t0, $t0, $a2
  929. sb $t0, 0($a0)
  930. or $t2, $t2, $a2
  931. sb $t2, 2($a0)
  932. or $t3, $t3, $a2
  933. sb $t3, 3($a0)
  934. or $t7, $t7, $a2
  935. jr $ra
  936. sb $t7, 7($a0)
  937. tile10001011:
  938. or $t0, $t0, $a2
  939. sb $t0, 0($a0)
  940. tile10001010:
  941. or $t1, $t1, $a2
  942. sb $t1, 1($a0)
  943. or $t3, $t3, $a2
  944. sb $t3, 3($a0)
  945. or $t7, $t7, $a2
  946. jr $ra
  947. sb $t7, 7($a0)
  948. tile10001001:
  949. or $t0, $t0, $a2
  950. sb $t0, 0($a0)
  951. or $t3, $t3, $a2
  952. sb $t3, 3($a0)
  953. or $t7, $t7, $a2
  954. jr $ra
  955. sb $t7, 7($a0)
  956. tile10000111:
  957. or $t0, $t0, $a2
  958. sb $t0, 0($a0)
  959. tile10000110:
  960. or $t1, $t1, $a2
  961. sb $t1, 1($a0)
  962. tile10000100:
  963. or $t2, $t2, $a2
  964. sb $t2, 2($a0)
  965. or $t7, $t7, $a2
  966. jr $ra
  967. sb $t7, 7($a0)
  968. tile10000101:
  969. or $t0, $t0, $a2
  970. sb $t0, 0($a0)
  971. or $t2, $t2, $a2
  972. sb $t2, 2($a0)
  973. or $t7, $t7, $a2
  974. jr $ra
  975. sb $t7, 7($a0)
  976. tile10000011:
  977. or $t0, $t0, $a2
  978. sb $t0, 0($a0)
  979. tile10000010:
  980. or $t1, $t1, $a2
  981. sb $t1, 1($a0)
  982. or $t7, $t7, $a2
  983. jr $ra
  984. sb $t7, 7($a0)
  985. tile10000001:
  986. or $t0, $t0, $a2
  987. sb $t0, 0($a0)
  988. or $t7, $t7, $a2
  989. jr $ra
  990. sb $t7, 7($a0)
  991. tile01111111:
  992. or $t0, $t0, $a2
  993. sb $t0, 0($a0)
  994. tile01111110:
  995. or $t1, $t1, $a2
  996. sb $t1, 1($a0)
  997. tile01111100:
  998. or $t2, $t2, $a2
  999. sb $t2, 2($a0)
  1000. tile01111000:
  1001. or $t3, $t3, $a2
  1002. sb $t3, 3($a0)
  1003. tile01110000:
  1004. or $t4, $t4, $a2
  1005. sb $t4, 4($a0)
  1006. tile01100000:
  1007. or $t5, $t5, $a2
  1008. sb $t5, 5($a0)
  1009. tile01000000:
  1010. or $t6, $t6, $a2
  1011. jr $ra
  1012. sb $t6, 6($a0)
  1013. tile00000000:
  1014. tile01111101:
  1015. or $t0, $t0, $a2
  1016. sb $t0, 0($a0)
  1017. or $t2, $t2, $a2
  1018. sb $t2, 2($a0)
  1019. or $t3, $t3, $a2
  1020. sb $t3, 3($a0)
  1021. or $t4, $t4, $a2
  1022. sb $t4, 4($a0)
  1023. or $t5, $t5, $a2
  1024. sb $t5, 5($a0)
  1025. or $t6, $t6, $a2
  1026. jr $ra
  1027. sb $t6, 6($a0)
  1028. tile01111011:
  1029. or $t0, $t0, $a2
  1030. sb $t0, 0($a0)
  1031. tile01111010:
  1032. or $t1, $t1, $a2
  1033. sb $t1, 1($a0)
  1034. or $t3, $t3, $a2
  1035. sb $t3, 3($a0)
  1036. or $t4, $t4, $a2
  1037. sb $t4, 4($a0)
  1038. or $t5, $t5, $a2
  1039. sb $t5, 5($a0)
  1040. or $t6, $t6, $a2
  1041. jr $ra
  1042. sb $t6, 6($a0)
  1043. tile01111001:
  1044. or $t0, $t0, $a2
  1045. sb $t0, 0($a0)
  1046. or $t3, $t3, $a2
  1047. sb $t3, 3($a0)
  1048. or $t4, $t4, $a2
  1049. sb $t4, 4($a0)
  1050. or $t5, $t5, $a2
  1051. sb $t5, 5($a0)
  1052. or $t6, $t6, $a2
  1053. jr $ra
  1054. sb $t6, 6($a0)
  1055. tile01110111:
  1056. or $t0, $t0, $a2
  1057. sb $t0, 0($a0)
  1058. tile01110110:
  1059. or $t1, $t1, $a2
  1060. sb $t1, 1($a0)
  1061. tile01110100:
  1062. or $t2, $t2, $a2
  1063. sb $t2, 2($a0)
  1064. or $t4, $t4, $a2
  1065. sb $t4, 4($a0)
  1066. or $t5, $t5, $a2
  1067. sb $t5, 5($a0)
  1068. or $t6, $t6, $a2
  1069. jr $ra
  1070. sb $t6, 6($a0)
  1071. tile01110101:
  1072. or $t0, $t0, $a2
  1073. sb $t0, 0($a0)
  1074. or $t2, $t2, $a2
  1075. sb $t2, 2($a0)
  1076. or $t4, $t4, $a2
  1077. sb $t4, 4($a0)
  1078. or $t5, $t5, $a2
  1079. sb $t5, 5($a0)
  1080. or $t6, $t6, $a2
  1081. jr $ra
  1082. sb $t6, 6($a0)
  1083. tile01110011:
  1084. or $t0, $t0, $a2
  1085. sb $t0, 0($a0)
  1086. tile01110010:
  1087. or $t1, $t1, $a2
  1088. sb $t1, 1($a0)
  1089. or $t4, $t4, $a2
  1090. sb $t4, 4($a0)
  1091. or $t5, $t5, $a2
  1092. sb $t5, 5($a0)
  1093. or $t6, $t6, $a2
  1094. jr $ra
  1095. sb $t6, 6($a0)
  1096. tile01110001:
  1097. or $t0, $t0, $a2
  1098. sb $t0, 0($a0)
  1099. or $t4, $t4, $a2
  1100. sb $t4, 4($a0)
  1101. or $t5, $t5, $a2
  1102. sb $t5, 5($a0)
  1103. or $t6, $t6, $a2
  1104. jr $ra
  1105. sb $t6, 6($a0)
  1106. tile01101111:
  1107. or $t0, $t0, $a2
  1108. sb $t0, 0($a0)
  1109. tile01101110:
  1110. or $t1, $t1, $a2
  1111. sb $t1, 1($a0)
  1112. tile01101100:
  1113. or $t2, $t2, $a2
  1114. sb $t2, 2($a0)
  1115. tile01101000:
  1116. or $t3, $t3, $a2
  1117. sb $t3, 3($a0)
  1118. or $t5, $t5, $a2
  1119. sb $t5, 5($a0)
  1120. or $t6, $t6, $a2
  1121. jr $ra
  1122. sb $t6, 6($a0)
  1123. tile01101101:
  1124. or $t0, $t0, $a2
  1125. sb $t0, 0($a0)
  1126. or $t2, $t2, $a2
  1127. sb $t2, 2($a0)
  1128. or $t3, $t3, $a2
  1129. sb $t3, 3($a0)
  1130. or $t5, $t5, $a2
  1131. sb $t5, 5($a0)
  1132. or $t6, $t6, $a2
  1133. jr $ra
  1134. sb $t6, 6($a0)
  1135. tile01101011:
  1136. or $t0, $t0, $a2
  1137. sb $t0, 0($a0)
  1138. tile01101010:
  1139. or $t1, $t1, $a2
  1140. sb $t1, 1($a0)
  1141. or $t3, $t3, $a2
  1142. sb $t3, 3($a0)
  1143. or $t5, $t5, $a2
  1144. sb $t5, 5($a0)
  1145. or $t6, $t6, $a2
  1146. jr $ra
  1147. sb $t6, 6($a0)
  1148. tile01101001:
  1149. or $t0, $t0, $a2
  1150. sb $t0, 0($a0)
  1151. or $t3, $t3, $a2
  1152. sb $t3, 3($a0)
  1153. or $t5, $t5, $a2
  1154. sb $t5, 5($a0)
  1155. or $t6, $t6, $a2
  1156. jr $ra
  1157. sb $t6, 6($a0)
  1158. tile01100111:
  1159. or $t0, $t0, $a2
  1160. sb $t0, 0($a0)
  1161. tile01100110:
  1162. or $t1, $t1, $a2
  1163. sb $t1, 1($a0)
  1164. tile01100100:
  1165. or $t2, $t2, $a2
  1166. sb $t2, 2($a0)
  1167. or $t5, $t5, $a2
  1168. sb $t5, 5($a0)
  1169. or $t6, $t6, $a2
  1170. jr $ra
  1171. sb $t6, 6($a0)
  1172. tile01100101:
  1173. or $t0, $t0, $a2
  1174. sb $t0, 0($a0)
  1175. or $t2, $t2, $a2
  1176. sb $t2, 2($a0)
  1177. or $t5, $t5, $a2
  1178. sb $t5, 5($a0)
  1179. or $t6, $t6, $a2
  1180. jr $ra
  1181. sb $t6, 6($a0)
  1182. tile01100011:
  1183. or $t0, $t0, $a2
  1184. sb $t0, 0($a0)
  1185. tile01100010:
  1186. or $t1, $t1, $a2
  1187. sb $t1, 1($a0)
  1188. or $t5, $t5, $a2
  1189. sb $t5, 5($a0)
  1190. or $t6, $t6, $a2
  1191. jr $ra
  1192. sb $t6, 6($a0)
  1193. tile01100001:
  1194. or $t0, $t0, $a2
  1195. sb $t0, 0($a0)
  1196. or $t5, $t5, $a2
  1197. sb $t5, 5($a0)
  1198. or $t6, $t6, $a2
  1199. jr $ra
  1200. sb $t6, 6($a0)
  1201. tile01011111:
  1202. or $t0, $t0, $a2
  1203. sb $t0, 0($a0)
  1204. tile01011110:
  1205. or $t1, $t1, $a2
  1206. sb $t1, 1($a0)
  1207. tile01011100:
  1208. or $t2, $t2, $a2
  1209. sb $t2, 2($a0)
  1210. tile01011000:
  1211. or $t3, $t3, $a2
  1212. sb $t3, 3($a0)
  1213. tile01010000:
  1214. or $t4, $t4, $a2
  1215. sb $t4, 4($a0)
  1216. or $t6, $t6, $a2
  1217. jr $ra
  1218. sb $t6, 6($a0)
  1219. tile01011101:
  1220. or $t0, $t0, $a2
  1221. sb $t0, 0($a0)
  1222. or $t2, $t2, $a2
  1223. sb $t2, 2($a0)
  1224. or $t3, $t3, $a2
  1225. sb $t3, 3($a0)
  1226. or $t4, $t4, $a2
  1227. sb $t4, 4($a0)
  1228. or $t6, $t6, $a2
  1229. jr $ra
  1230. sb $t6, 6($a0)
  1231. tile01011011:
  1232. or $t0, $t0, $a2
  1233. sb $t0, 0($a0)
  1234. tile01011010:
  1235. or $t1, $t1, $a2
  1236. sb $t1, 1($a0)
  1237. or $t3, $t3, $a2
  1238. sb $t3, 3($a0)
  1239. or $t4, $t4, $a2
  1240. sb $t4, 4($a0)
  1241. or $t6, $t6, $a2
  1242. jr $ra
  1243. sb $t6, 6($a0)
  1244. tile01011001:
  1245. or $t0, $t0, $a2
  1246. sb $t0, 0($a0)
  1247. or $t3, $t3, $a2
  1248. sb $t3, 3($a0)
  1249. or $t4, $t4, $a2
  1250. sb $t4, 4($a0)
  1251. or $t6, $t6, $a2
  1252. jr $ra
  1253. sb $t6, 6($a0)
  1254. tile01010111:
  1255. or $t0, $t0, $a2
  1256. sb $t0, 0($a0)
  1257. tile01010110:
  1258. or $t1, $t1, $a2
  1259. sb $t1, 1($a0)
  1260. tile01010100:
  1261. or $t2, $t2, $a2
  1262. sb $t2, 2($a0)
  1263. or $t4, $t4, $a2
  1264. sb $t4, 4($a0)
  1265. or $t6, $t6, $a2
  1266. jr $ra
  1267. sb $t6, 6($a0)
  1268. tile01010101:
  1269. or $t0, $t0, $a2
  1270. sb $t0, 0($a0)
  1271. or $t2, $t2, $a2
  1272. sb $t2, 2($a0)
  1273. or $t4, $t4, $a2
  1274. sb $t4, 4($a0)
  1275. or $t6, $t6, $a2
  1276. jr $ra
  1277. sb $t6, 6($a0)
  1278. tile01010011:
  1279. or $t0, $t0, $a2
  1280. sb $t0, 0($a0)
  1281. tile01010010:
  1282. or $t1, $t1, $a2
  1283. sb $t1, 1($a0)
  1284. or $t4, $t4, $a2
  1285. sb $t4, 4($a0)
  1286. or $t6, $t6, $a2
  1287. jr $ra
  1288. sb $t6, 6($a0)
  1289. tile01010001:
  1290. or $t0, $t0, $a2
  1291. sb $t0, 0($a0)
  1292. or $t4, $t4, $a2
  1293. sb $t4, 4($a0)
  1294. or $t6, $t6, $a2
  1295. jr $ra
  1296. sb $t6, 6($a0)
  1297. tile01001111:
  1298. or $t0, $t0, $a2
  1299. sb $t0, 0($a0)
  1300. tile01001110:
  1301. or $t1, $t1, $a2
  1302. sb $t1, 1($a0)
  1303. tile01001100:
  1304. or $t2, $t2, $a2
  1305. sb $t2, 2($a0)
  1306. tile01001000:
  1307. or $t3, $t3, $a2
  1308. sb $t3, 3($a0)
  1309. or $t6, $t6, $a2
  1310. jr $ra
  1311. sb $t6, 6($a0)
  1312. tile01001101:
  1313. or $t0, $t0, $a2
  1314. sb $t0, 0($a0)
  1315. or $t2, $t2, $a2
  1316. sb $t2, 2($a0)
  1317. or $t3, $t3, $a2
  1318. sb $t3, 3($a0)
  1319. or $t6, $t6, $a2
  1320. jr $ra
  1321. sb $t6, 6($a0)
  1322. tile01001011:
  1323. or $t0, $t0, $a2
  1324. sb $t0, 0($a0)
  1325. tile01001010:
  1326. or $t1, $t1, $a2
  1327. sb $t1, 1($a0)
  1328. or $t3, $t3, $a2
  1329. sb $t3, 3($a0)
  1330. or $t6, $t6, $a2
  1331. jr $ra
  1332. sb $t6, 6($a0)
  1333. tile01001001:
  1334. or $t0, $t0, $a2
  1335. sb $t0, 0($a0)
  1336. or $t3, $t3, $a2
  1337. sb $t3, 3($a0)
  1338. or $t6, $t6, $a2
  1339. jr $ra
  1340. sb $t6, 6($a0)
  1341. tile01000111:
  1342. or $t0, $t0, $a2
  1343. sb $t0, 0($a0)
  1344. tile01000110:
  1345. or $t1, $t1, $a2
  1346. sb $t1, 1($a0)
  1347. tile01000100:
  1348. or $t2, $t2, $a2
  1349. sb $t2, 2($a0)
  1350. or $t6, $t6, $a2
  1351. jr $ra
  1352. sb $t6, 6($a0)
  1353. tile01000101:
  1354. or $t0, $t0, $a2
  1355. sb $t0, 0($a0)
  1356. or $t2, $t2, $a2
  1357. sb $t2, 2($a0)
  1358. or $t6, $t6, $a2
  1359. jr $ra
  1360. sb $t6, 6($a0)
  1361. tile01000011:
  1362. or $t0, $t0, $a2
  1363. sb $t0, 0($a0)
  1364. tile01000010:
  1365. or $t1, $t1, $a2
  1366. sb $t1, 1($a0)
  1367. or $t6, $t6, $a2
  1368. jr $ra
  1369. sb $t6, 6($a0)
  1370. tile01000001:
  1371. or $t0, $t0, $a2
  1372. sb $t0, 0($a0)
  1373. or $t6, $t6, $a2
  1374. jr $ra
  1375. sb $t6, 6($a0)
  1376. tile00111111:
  1377. or $t0, $t0, $a2
  1378. sb $t0, 0($a0)
  1379. tile00111110:
  1380. or $t1, $t1, $a2
  1381. sb $t1, 1($a0)
  1382. tile00111100:
  1383. or $t2, $t2, $a2
  1384. sb $t2, 2($a0)
  1385. tile00111000:
  1386. or $t3, $t3, $a2
  1387. sb $t3, 3($a0)
  1388. tile00110000:
  1389. or $t4, $t4, $a2
  1390. sb $t4, 4($a0)
  1391. tile00100000:
  1392. or $t5, $t5, $a2
  1393. jr $ra
  1394. sb $t5, 5($a0)
  1395. tile00111101:
  1396. or $t0, $t0, $a2
  1397. sb $t0, 0($a0)
  1398. or $t2, $t2, $a2
  1399. sb $t2, 2($a0)
  1400. or $t3, $t3, $a2
  1401. sb $t3, 3($a0)
  1402. or $t4, $t4, $a2
  1403. sb $t4, 4($a0)
  1404. or $t5, $t5, $a2
  1405. jr $ra
  1406. sb $t5, 5($a0)
  1407. tile00111011:
  1408. or $t0, $t0, $a2
  1409. sb $t0, 0($a0)
  1410. tile00111010:
  1411. or $t1, $t1, $a2
  1412. sb $t1, 1($a0)
  1413. or $t3, $t3, $a2
  1414. sb $t3, 3($a0)
  1415. or $t4, $t4, $a2
  1416. sb $t4, 4($a0)
  1417. or $t5, $t5, $a2
  1418. jr $ra
  1419. sb $t5, 5($a0)
  1420. tile00111001:
  1421. or $t0, $t0, $a2
  1422. sb $t0, 0($a0)
  1423. or $t3, $t3, $a2
  1424. sb $t3, 3($a0)
  1425. or $t4, $t4, $a2
  1426. sb $t4, 4($a0)
  1427. or $t5, $t5, $a2
  1428. jr $ra
  1429. sb $t5, 5($a0)
  1430. tile00110111:
  1431. or $t0, $t0, $a2
  1432. sb $t0, 0($a0)
  1433. tile00110110:
  1434. or $t1, $t1, $a2
  1435. sb $t1, 1($a0)
  1436. tile00110100:
  1437. or $t2, $t2, $a2
  1438. sb $t2, 2($a0)
  1439. or $t4, $t4, $a2
  1440. sb $t4, 4($a0)
  1441. or $t5, $t5, $a2
  1442. jr $ra
  1443. sb $t5, 5($a0)
  1444. tile00110101:
  1445. or $t0, $t0, $a2
  1446. sb $t0, 0($a0)
  1447. or $t2, $t2, $a2
  1448. sb $t2, 2($a0)
  1449. or $t4, $t4, $a2
  1450. sb $t4, 4($a0)
  1451. or $t5, $t5, $a2
  1452. jr $ra
  1453. sb $t5, 5($a0)
  1454. tile00110011:
  1455. or $t0, $t0, $a2
  1456. sb $t0, 0($a0)
  1457. tile00110010:
  1458. or $t1, $t1, $a2
  1459. sb $t1, 1($a0)
  1460. or $t4, $t4, $a2
  1461. sb $t4, 4($a0)
  1462. or $t5, $t5, $a2
  1463. jr $ra
  1464. sb $t5, 5($a0)
  1465. tile00110001:
  1466. or $t0, $t0, $a2
  1467. sb $t0, 0($a0)
  1468. or $t4, $t4, $a2
  1469. sb $t4, 4($a0)
  1470. or $t5, $t5, $a2
  1471. jr $ra
  1472. sb $t5, 5($a0)
  1473. tile00101111:
  1474. or $t0, $t0, $a2
  1475. sb $t0, 0($a0)
  1476. tile00101110:
  1477. or $t1, $t1, $a2
  1478. sb $t1, 1($a0)
  1479. tile00101100:
  1480. or $t2, $t2, $a2
  1481. sb $t2, 2($a0)
  1482. tile00101000:
  1483. or $t3, $t3, $a2
  1484. sb $t3, 3($a0)
  1485. or $t5, $t5, $a2
  1486. jr $ra
  1487. sb $t5, 5($a0)
  1488. tile00101101:
  1489. or $t0, $t0, $a2
  1490. sb $t0, 0($a0)
  1491. or $t2, $t2, $a2
  1492. sb $t2, 2($a0)
  1493. or $t3, $t3, $a2
  1494. sb $t3, 3($a0)
  1495. or $t5, $t5, $a2
  1496. jr $ra
  1497. sb $t5, 5($a0)
  1498. tile00101011:
  1499. or $t0, $t0, $a2
  1500. sb $t0, 0($a0)
  1501. tile00101010:
  1502. or $t1, $t1, $a2
  1503. sb $t1, 1($a0)
  1504. or $t3, $t3, $a2
  1505. sb $t3, 3($a0)
  1506. or $t5, $t5, $a2
  1507. jr $ra
  1508. sb $t5, 5($a0)
  1509. tile00101001:
  1510. or $t0, $t0, $a2
  1511. sb $t0, 0($a0)
  1512. or $t3, $t3, $a2
  1513. sb $t3, 3($a0)
  1514. or $t5, $t5, $a2
  1515. jr $ra
  1516. sb $t5, 5($a0)
  1517. tile00100111:
  1518. or $t0, $t0, $a2
  1519. sb $t0, 0($a0)
  1520. tile00100110:
  1521. or $t1, $t1, $a2
  1522. sb $t1, 1($a0)
  1523. tile00100100:
  1524. or $t2, $t2, $a2
  1525. sb $t2, 2($a0)
  1526. or $t5, $t5, $a2
  1527. jr $ra
  1528. sb $t5, 5($a0)
  1529. tile00100101:
  1530. or $t0, $t0, $a2
  1531. sb $t0, 0($a0)
  1532. or $t2, $t2, $a2
  1533. sb $t2, 2($a0)
  1534. or $t5, $t5, $a2
  1535. jr $ra
  1536. sb $t5, 5($a0)
  1537. tile00100011:
  1538. or $t0, $t0, $a2
  1539. sb $t0, 0($a0)
  1540. tile00100010:
  1541. or $t1, $t1, $a2
  1542. sb $t1, 1($a0)
  1543. or $t5, $t5, $a2
  1544. jr $ra
  1545. sb $t5, 5($a0)
  1546. tile00100001:
  1547. or $t0, $t0, $a2
  1548. sb $t0, 0($a0)
  1549. or $t5, $t5, $a2
  1550. jr $ra
  1551. sb $t5, 5($a0)
  1552. tile00011111:
  1553. or $t0, $t0, $a2
  1554. sb $t0, 0($a0)
  1555. tile00011110:
  1556. or $t1, $t1, $a2
  1557. sb $t1, 1($a0)
  1558. tile00011100:
  1559. or $t2, $t2, $a2
  1560. sb $t2, 2($a0)
  1561. tile00011000:
  1562. or $t3, $t3, $a2
  1563. sb $t3, 3($a0)
  1564. tile00010000:
  1565. or $t4, $t4, $a2
  1566. jr $ra
  1567. sb $t4, 4($a0)
  1568. tile00011101:
  1569. or $t0, $t0, $a2
  1570. sb $t0, 0($a0)
  1571. or $t2, $t2, $a2
  1572. sb $t2, 2($a0)
  1573. or $t3, $t3, $a2
  1574. sb $t3, 3($a0)
  1575. or $t4, $t4, $a2
  1576. jr $ra
  1577. sb $t4, 4($a0)
  1578. tile00011011:
  1579. or $t0, $t0, $a2
  1580. sb $t0, 0($a0)
  1581. tile00011010:
  1582. or $t1, $t1, $a2
  1583. sb $t1, 1($a0)
  1584. or $t3, $t3, $a2
  1585. sb $t3, 3($a0)
  1586. or $t4, $t4, $a2
  1587. jr $ra
  1588. sb $t4, 4($a0)
  1589. tile00011001:
  1590. or $t0, $t0, $a2
  1591. sb $t0, 0($a0)
  1592. or $t3, $t3, $a2
  1593. sb $t3, 3($a0)
  1594. or $t4, $t4, $a2
  1595. jr $ra
  1596. sb $t4, 4($a0)
  1597. tile00010111:
  1598. or $t0, $t0, $a2
  1599. sb $t0, 0($a0)
  1600. tile00010110:
  1601. or $t1, $t1, $a2
  1602. sb $t1, 1($a0)
  1603. tile00010100:
  1604. or $t2, $t2, $a2
  1605. sb $t2, 2($a0)
  1606. or $t4, $t4, $a2
  1607. jr $ra
  1608. sb $t4, 4($a0)
  1609. tile00010101:
  1610. or $t0, $t0, $a2
  1611. sb $t0, 0($a0)
  1612. or $t2, $t2, $a2
  1613. sb $t2, 2($a0)
  1614. or $t4, $t4, $a2
  1615. jr $ra
  1616. sb $t4, 4($a0)
  1617. tile00010011:
  1618. or $t0, $t0, $a2
  1619. sb $t0, 0($a0)
  1620. tile00010010:
  1621. or $t1, $t1, $a2
  1622. sb $t1, 1($a0)
  1623. or $t4, $t4, $a2
  1624. jr $ra
  1625. sb $t4, 4($a0)
  1626. tile00010001:
  1627. or $t0, $t0, $a2
  1628. sb $t0, 0($a0)
  1629. or $t4, $t4, $a2
  1630. jr $ra
  1631. sb $t4, 4($a0)
  1632. tile00001111:
  1633. or $t0, $t0, $a2
  1634. sb $t0, 0($a0)
  1635. tile00001110:
  1636. or $t1, $t1, $a2
  1637. sb $t1, 1($a0)
  1638. tile00001100:
  1639. or $t2, $t2, $a2
  1640. sb $t2, 2($a0)
  1641. tile00001000:
  1642. or $t3, $t3, $a2
  1643. jr $ra
  1644. sb $t3, 3($a0)
  1645. tile00001101:
  1646. or $t0, $t0, $a2
  1647. sb $t0, 0($a0)
  1648. or $t2, $t2, $a2
  1649. sb $t2, 2($a0)
  1650. or $t3, $t3, $a2
  1651. jr $ra
  1652. sb $t3, 3($a0)
  1653. tile00001011:
  1654. or $t0, $t0, $a2
  1655. sb $t0, 0($a0)
  1656. tile00001010:
  1657. or $t1, $t1, $a2
  1658. sb $t1, 1($a0)
  1659. or $t3, $t3, $a2
  1660. jr $ra
  1661. sb $t3, 3($a0)
  1662. tile00001001:
  1663. or $t0, $t0, $a2
  1664. sb $t0, 0($a0)
  1665. or $t3, $t3, $a2
  1666. jr $ra
  1667. sb $t3, 3($a0)
  1668. tile00000111:
  1669. or $t0, $t0, $a2
  1670. sb $t0, 0($a0)
  1671. tile00000110:
  1672. or $t1, $t1, $a2
  1673. sb $t1, 1($a0)
  1674. tile00000100:
  1675. or $t2, $t2, $a2
  1676. jr $ra
  1677. sb $t2, 2($a0)
  1678. tile00000101:
  1679. or $t0, $t0, $a2
  1680. sb $t0, 0($a0)
  1681. or $t2, $t2, $a2
  1682. jr $ra
  1683. sb $t2, 2($a0)
  1684. tile00000011:
  1685. or $t0, $t0, $a2
  1686. sb $t0, 0($a0)
  1687. tile00000010:
  1688. or $t1, $t1, $a2
  1689. jr $ra
  1690. sb $t1, 1($a0)
  1691. tile00000001:
  1692. or $t0, $t0, $a2
  1693. jr $ra
  1694. sb $t0, 0($a0)
  1695. .data
  1696. .align 4
  1697. TileTable:
  1698. .long 000000000000, tile00000001, tile00000010, tile00000011, tile00000100, tile00000101, tile00000110, tile00000111
  1699. .long tile00001000, tile00001001, tile00001010, tile00001011, tile00001100, tile00001101, tile00001110, tile00001111
  1700. .long tile00010000, tile00010001, tile00010010, tile00010011, tile00010100, tile00010101, tile00010110, tile00010111
  1701. .long tile00011000, tile00011001, tile00011010, tile00011011, tile00011100, tile00011101, tile00011110, tile00011111
  1702. .long tile00100000, tile00100001, tile00100010, tile00100011, tile00100100, tile00100101, tile00100110, tile00100111
  1703. .long tile00101000, tile00101001, tile00101010, tile00101011, tile00101100, tile00101101, tile00101110, tile00101111
  1704. .long tile00110000, tile00110001, tile00110010, tile00110011, tile00110100, tile00110101, tile00110110, tile00110111
  1705. .long tile00111000, tile00111001, tile00111010, tile00111011, tile00111100, tile00111101, tile00111110, tile00111111
  1706. .long tile01000000, tile01000001, tile01000010, tile01000011, tile01000100, tile01000101, tile01000110, tile01000111
  1707. .long tile01001000, tile01001001, tile01001010, tile01001011, tile01001100, tile01001101, tile01001110, tile01001111
  1708. .long tile01010000, tile01010001, tile01010010, tile01010011, tile01010100, tile01010101, tile01010110, tile01010111
  1709. .long tile01011000, tile01011001, tile01011010, tile01011011, tile01011100, tile01011101, tile01011110, tile01011111
  1710. .long tile01100000, tile01100001, tile01100010, tile01100011, tile01100100, tile01100101, tile01100110, tile01100111
  1711. .long tile01101000, tile01101001, tile01101010, tile01101011, tile01101100, tile01101101, tile01101110, tile01101111
  1712. .long tile01110000, tile01110001, tile01110010, tile01110011, tile01110100, tile01110101, tile01110110, tile01110111
  1713. .long tile01111000, tile01111001, tile01111010, tile01111011, tile01111100, tile01111101, tile01111110, tile01111111
  1714. .long tile10000000, tile10000001, tile10000010, tile10000011, tile10000100, tile10000101, tile10000110, tile10000111
  1715. .long tile10001000, tile10001001, tile10001010, tile10001011, tile10001100, tile10001101, tile10001110, tile10001111
  1716. .long tile10010000, tile10010001, tile10010010, tile10010011, tile10010100, tile10010101, tile10010110, tile10010111
  1717. .long tile10011000, tile10011001, tile10011010, tile10011011, tile10011100, tile10011101, tile10011110, tile10011111
  1718. .long tile10100000, tile10100001, tile10100010, tile10100011, tile10100100, tile10100101, tile10100110, tile10100111
  1719. .long tile10101000, tile10101001, tile10101010, tile10101011, tile10101100, tile10101101, tile10101110, tile10101111
  1720. .long tile10110000, tile10110001, tile10110010, tile10110011, tile10110100, tile10110101, tile10110110, tile10110111
  1721. .long tile10111000, tile10111001, tile10111010, tile10111011, tile10111100, tile10111101, tile10111110, tile10111111
  1722. .long tile11000000, tile11000001, tile11000010, tile11000011, tile11000100, tile11000101, tile11000110, tile11000111
  1723. .long tile11001000, tile11001001, tile11001010, tile11001011, tile11001100, tile11001101, tile11001110, tile11001111
  1724. .long tile11010000, tile11010001, tile11010010, tile11010011, tile11010100, tile11010101, tile11010110, tile11010111
  1725. .long tile11011000, tile11011001, tile11011010, tile11011011, tile11011100, tile11011101, tile11011110, tile11011111
  1726. .long tile11100000, tile11100001, tile11100010, tile11100011, tile11100100, tile11100101, tile11100110, tile11100111
  1727. .long tile11101000, tile11101001, tile11101010, tile11101011, tile11101100, tile11101101, tile11101110, tile11101111
  1728. .long tile11110000, tile11110001, tile11110010, tile11110011, tile11110100, tile11110101, tile11110110, tile11110111
  1729. .long tile11111000, tile11111001, tile11111010, tile11111011, tile11111100, tile11111101, tile11111110, tile11111111
  1730. # vim:filetype=mips