home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / gamesuite_1 / GameSuite / Examples / BolMaster / !BolMaster / Sources / HellShift < prev    next >
Encoding:
Text File  |  1995-04-29  |  6.2 KB  |  406 lines

  1. #name ^.Object.HellShift
  2. #type &ffd
  3.  
  4. .hellshift
  5. DCD hellshift0-hellshift
  6. DCD hellshift1-hellshift
  7. DCD hellshift2-hellshift
  8. DCD hellshift3-hellshift
  9. .hellshift0
  10. STMFD R13!,{R9}
  11. ADD R11,R11,R9
  12. RSB R9,R9,#96
  13. s0mac
  14. LDMFD R13!,{R9}
  15. SUB R11,R11,#96
  16. s0mac
  17. MOV PC,R14
  18.  
  19.  
  20.  
  21. macro s0mac {
  22. CMP R9,#64
  23. BLT _hsk00
  24. LDMIA R11!,{R0-R7}
  25. STMIA R10!,{R0-R7}
  26. LDMIA R11!,{R0-R7}
  27. STMIA R10!,{R0-R7}
  28. SUB R9,R9,#64
  29. ._hsk00
  30. CMP R9,#32
  31. BLT _hsk01
  32. LDMIA R11!,{R0-R7}
  33. STMIA R10!,{R0-R7}
  34. SUB R9,R9,#32
  35. ._hsk01
  36. CMP R9,#16
  37. BLT _hsk02
  38. LDMIA R11!,{R0-R3}
  39. STMIA R10!,{R0-R3}
  40. SUB R9,R9,#16
  41. ._hsk02
  42. CMP R9,#8
  43. BLT _hsk03
  44. LDMIA R11!,{R0-R1}
  45. STMIA R10!,{R0-R1}
  46. SUB R9,R9,#8
  47. ._hsk03
  48. CMP R9,#4
  49. LDRGE R0,[R11],#4
  50. STRGE R0,[R10],#4
  51. }
  52.  
  53. .hellshift1
  54. STMFD R13!,{R9}
  55. ADD R11,R11,R9
  56. RSB R9,R9,#92
  57.  
  58. s1mac
  59. LDMFD R13!,{R9}
  60. LDR R0,[R11]
  61. SUB R11,R11,#92
  62. LDR R1,[R11]
  63. MOV R0,R0,LSR #8
  64. ORR R0,R0,R1,LSL #24
  65. STR R0,[R10],#4
  66. s1mac
  67. MOV PC,R14
  68.  
  69.  
  70.  
  71. macro s1mac {
  72. CMP R9,#64
  73. BLT _hsk00
  74. LDMIA R11!,{R0-R8}
  75. SUB R11,R11,#4
  76. MOV R0,R0,LSR #8
  77. ORR R0,R0,R1,LSL #24
  78. MOV R1,R1,LSR #8
  79. ORR R1,R1,R2,LSL #24
  80. MOV R2,R2,LSR #8
  81. ORR R2,R2,R3,LSL #24
  82. MOV R3,R3,LSR #8
  83. ORR R3,R3,R4,LSL #24
  84. MOV R4,R4,LSR #8
  85. ORR R4,R4,R5,LSL #24
  86. MOV R5,R5,LSR #8
  87. ORR R5,R5,R6,LSL #24
  88. MOV R6,R6,LSR #8
  89. ORR R6,R6,R7,LSL #24
  90. MOV R7,R7,LSR #8
  91. ORR R7,R7,R8,LSL #24
  92. STMIA R10!,{R0-R7}
  93. LDMIA R11!,{R0-R8}
  94. SUB R11,R11,#4
  95. MOV R0,R0,LSR #8
  96. ORR R0,R0,R1,LSL #24
  97. MOV R1,R1,LSR #8
  98. ORR R1,R1,R2,LSL #24
  99. MOV R2,R2,LSR #8
  100. ORR R2,R2,R3,LSL #24
  101. MOV R3,R3,LSR #8
  102. ORR R3,R3,R4,LSL #24
  103. MOV R4,R4,LSR #8
  104. ORR R4,R4,R5,LSL #24
  105. MOV R5,R5,LSR #8
  106. ORR R5,R5,R6,LSL #24
  107. MOV R6,R6,LSR #8
  108. ORR R6,R6,R7,LSL #24
  109. MOV R7,R7,LSR #8
  110. ORR R7,R7,R8,LSL #24
  111. STMIA R10!,{R0-R7}
  112. SUB R9,R9,#64
  113. ._hsk00
  114. CMP R9,#32
  115. BLT _hsk01
  116. LDMIA R11!,{R0-R8}
  117. SUB R11,R11,#4
  118. MOV R0,R0,LSR #8
  119. ORR R0,R0,R1,LSL #24
  120. MOV R1,R1,LSR #8
  121. ORR R1,R1,R2,LSL #24
  122. MOV R2,R2,LSR #8
  123. ORR R2,R2,R3,LSL #24
  124. MOV R3,R3,LSR #8
  125. ORR R3,R3,R4,LSL #24
  126. MOV R4,R4,LSR #8
  127. ORR R4,R4,R5,LSL #24
  128. MOV R5,R5,LSR #8
  129. ORR R5,R5,R6,LSL #24
  130. MOV R6,R6,LSR #8
  131. ORR R6,R6,R7,LSL #24
  132. MOV R7,R7,LSR #8
  133. ORR R7,R7,R8,LSL #24
  134. STMIA R10!,{R0-R7}
  135. SUB R9,R9,#32
  136. ._hsk01
  137. CMP R9,#16
  138. BLT _hsk02
  139. LDMIA R11!,{R0-R4}
  140. SUB R11,R11,#4
  141. MOV R0,R0,LSR #8
  142. ORR R0,R0,R1,LSL #24
  143. MOV R1,R1,LSR #8
  144. ORR R1,R1,R2,LSL #24
  145. MOV R2,R2,LSR #8
  146. ORR R2,R2,R3,LSL #24
  147. MOV R3,R3,LSR #8
  148. ORR R3,R3,R4,LSL #24
  149. STMIA R10!,{R0-R3}
  150. SUB R9,R9,#16
  151. ._hsk02
  152. CMP R9,#8
  153. BLT _hsk03
  154. LDMIA R11!,{R0-R2}
  155. SUB R11,R11,#4
  156. MOV R0,R0,LSR #8
  157. ORR R0,R0,R1,LSL #24
  158. MOV R1,R1,LSR #8
  159. ORR R1,R1,R2,LSL #24
  160. STMIA R10!,{R0-R1}
  161. SUB R9,R9,#8
  162. ._hsk03
  163. CMP R9,#4
  164. LDRGE R0,[R11],#4
  165. LDRGE R1,[R11]
  166. MOV R0,R0,LSR #8
  167. ORR R0,R0,R1,LSL #24
  168. STRGE R0,[R10],#4
  169. }
  170.  
  171. .hellshift2
  172. STMFD R13!,{R9}
  173. ADD R11,R11,R9
  174. RSB R9,R9,#92
  175.  
  176. s2mac
  177. LDMFD R13!,{R9}
  178. LDR R0,[R11]
  179. SUB R11,R11,#92
  180. LDR R1,[R11]
  181. MOV R0,R0,LSR #16
  182. ORR R0,R0,R1,LSL #16
  183. STR R0,[R10],#4
  184. s2mac
  185. MOV PC,R14
  186.  
  187.  
  188.  
  189. macro s2mac {
  190. CMP R9,#64
  191. BLT _hsk00
  192. LDMIA R11!,{R0-R8}
  193. SUB R11,R11,#4
  194. MOV R0,R0,LSR #16
  195. ORR R0,R0,R1,LSL #16
  196. MOV R1,R1,LSR #16
  197. ORR R1,R1,R2,LSL #16
  198. MOV R2,R2,LSR #16
  199. ORR R2,R2,R3,LSL #16
  200. MOV R3,R3,LSR #16
  201. ORR R3,R3,R4,LSL #16
  202. MOV R4,R4,LSR #16
  203. ORR R4,R4,R5,LSL #16
  204. MOV R5,R5,LSR #16
  205. ORR R5,R5,R6,LSL #16
  206. MOV R6,R6,LSR #16
  207. ORR R6,R6,R7,LSL #16
  208. MOV R7,R7,LSR #16
  209. ORR R7,R7,R8,LSL #16
  210. STMIA R10!,{R0-R7}
  211. LDMIA R11!,{R0-R8}
  212. SUB R11,R11,#4
  213. MOV R0,R0,LSR #16
  214. ORR R0,R0,R1,LSL #16
  215. MOV R1,R1,LSR #16
  216. ORR R1,R1,R2,LSL #16
  217. MOV R2,R2,LSR #16
  218. ORR R2,R2,R3,LSL #16
  219. MOV R3,R3,LSR #16
  220. ORR R3,R3,R4,LSL #16
  221. MOV R4,R4,LSR #16
  222. ORR R4,R4,R5,LSL #16
  223. MOV R5,R5,LSR #16
  224. ORR R5,R5,R6,LSL #16
  225. MOV R6,R6,LSR #16
  226. ORR R6,R6,R7,LSL #16
  227. MOV R7,R7,LSR #16
  228. ORR R7,R7,R8,LSL #16
  229. STMIA R10!,{R0-R7}
  230. SUB R9,R9,#64
  231. ._hsk00
  232. CMP R9,#32
  233. BLT _hsk01
  234. LDMIA R11!,{R0-R8}
  235. SUB R11,R11,#4
  236. MOV R0,R0,LSR #16
  237. ORR R0,R0,R1,LSL #16
  238. MOV R1,R1,LSR #16
  239. ORR R1,R1,R2,LSL #16
  240. MOV R2,R2,LSR #16
  241. ORR R2,R2,R3,LSL #16
  242. MOV R3,R3,LSR #16
  243. ORR R3,R3,R4,LSL #16
  244. MOV R4,R4,LSR #16
  245. ORR R4,R4,R5,LSL #16
  246. MOV R5,R5,LSR #16
  247. ORR R5,R5,R6,LSL #16
  248. MOV R6,R6,LSR #16
  249. ORR R6,R6,R7,LSL #16
  250. MOV R7,R7,LSR #16
  251. ORR R7,R7,R8,LSL #16
  252. STMIA R10!,{R0-R7}
  253. SUB R9,R9,#32
  254. ._hsk01
  255. CMP R9,#16
  256. BLT _hsk02
  257. LDMIA R11!,{R0-R4}
  258. SUB R11,R11,#4
  259. MOV R0,R0,LSR #16
  260. ORR R0,R0,R1,LSL #16
  261. MOV R1,R1,LSR #16
  262. ORR R1,R1,R2,LSL #16
  263. MOV R2,R2,LSR #16
  264. ORR R2,R2,R3,LSL #16
  265. MOV R3,R3,LSR #16
  266. ORR R3,R3,R4,LSL #16
  267. STMIA R10!,{R0-R3}
  268. SUB R9,R9,#16
  269. ._hsk02
  270. CMP R9,#8
  271. BLT _hsk03
  272. LDMIA R11!,{R0-R2}
  273. SUB R11,R11,#4
  274. MOV R0,R0,LSR #16
  275. ORR R0,R0,R1,LSL #16
  276. MOV R1,R1,LSR #16
  277. ORR R1,R1,R2,LSL #16
  278. STMIA R10!,{R0-R1}
  279. SUB R9,R9,#8
  280. ._hsk03
  281. CMP R9,#4
  282. LDRGE R0,[R11],#4
  283. LDRGE R1,[R11]
  284. MOV R0,R0,LSR #16
  285. ORR R0,R0,R1,LSL #16
  286. STRGE R0,[R10],#4
  287. }
  288.  
  289. .hellshift3
  290. STMFD R13!,{R9}
  291. ADD R11,R11,R9
  292. RSB R9,R9,#92
  293.  
  294. s3mac
  295. LDMFD R13!,{R9}
  296. LDR R0,[R11]
  297. SUB R11,R11,#92
  298. LDR R1,[R11]
  299. MOV R0,R0,LSR #24
  300. ORR R0,R0,R1,LSL #8
  301. STR R0,[R10],#4
  302. s3mac
  303. MOV PC,R14
  304.  
  305.  
  306.  
  307. macro s3mac {
  308. CMP R9,#64
  309. BLT _hsk00
  310. LDMIA R11!,{R0-R8}
  311. SUB R11,R11,#4
  312. MOV R0,R0,LSR #24
  313. ORR R0,R0,R1,LSL #8
  314. MOV R1,R1,LSR #24
  315. ORR R1,R1,R2,LSL #8
  316. MOV R2,R2,LSR #24
  317. ORR R2,R2,R3,LSL #8
  318. MOV R3,R3,LSR #24
  319. ORR R3,R3,R4,LSL #8
  320. MOV R4,R4,LSR #24
  321. ORR R4,R4,R5,LSL #8
  322. MOV R5,R5,LSR #24
  323. ORR R5,R5,R6,LSL #8
  324. MOV R6,R6,LSR #24
  325. ORR R6,R6,R7,LSL #8
  326. MOV R7,R7,LSR #24
  327. ORR R7,R7,R8,LSL #8
  328. STMIA R10!,{R0-R7}
  329. LDMIA R11!,{R0-R8}
  330. SUB R11,R11,#4
  331. MOV R0,R0,LSR #24
  332. ORR R0,R0,R1,LSL #8
  333. MOV R1,R1,LSR #24
  334. ORR R1,R1,R2,LSL #8
  335. MOV R2,R2,LSR #24
  336. ORR R2,R2,R3,LSL #8
  337. MOV R3,R3,LSR #24
  338. ORR R3,R3,R4,LSL #8
  339. MOV R4,R4,LSR #24
  340. ORR R4,R4,R5,LSL #8
  341. MOV R5,R5,LSR #24
  342. ORR R5,R5,R6,LSL #8
  343. MOV R6,R6,LSR #24
  344. ORR R6,R6,R7,LSL #8
  345. MOV R7,R7,LSR #24
  346. ORR R7,R7,R8,LSL #8
  347. STMIA R10!,{R0-R7}
  348. SUB R9,R9,#64
  349. ._hsk00
  350. CMP R9,#32
  351. BLT _hsk01
  352. LDMIA R11!,{R0-R8}
  353. SUB R11,R11,#4
  354. MOV R0,R0,LSR #24
  355. ORR R0,R0,R1,LSL #8
  356. MOV R1,R1,LSR #24
  357. ORR R1,R1,R2,LSL #8
  358. MOV R2,R2,LSR #24
  359. ORR R2,R2,R3,LSL #8
  360. MOV R3,R3,LSR #24
  361. ORR R3,R3,R4,LSL #8
  362. MOV R4,R4,LSR #24
  363. ORR R4,R4,R5,LSL #8
  364. MOV R5,R5,LSR #24
  365. ORR R5,R5,R6,LSL #8
  366. MOV R6,R6,LSR #24
  367. ORR R6,R6,R7,LSL #8
  368. MOV R7,R7,LSR #24
  369. ORR R7,R7,R8,LSL #8
  370. STMIA R10!,{R0-R7}
  371. SUB R9,R9,#32
  372. ._hsk01
  373. CMP R9,#16
  374. BLT _hsk02
  375. LDMIA R11!,{R0-R4}
  376. SUB R11,R11,#4
  377. MOV R0,R0,LSR #24
  378. ORR R0,R0,R1,LSL #8
  379. MOV R1,R1,LSR #24
  380. ORR R1,R1,R2,LSL #8
  381. MOV R2,R2,LSR #24
  382. ORR R2,R2,R3,LSL #8
  383. MOV R3,R3,LSR #24
  384. ORR R3,R3,R4,LSL #8
  385. STMIA R10!,{R0-R3}
  386. SUB R9,R9,#16
  387. ._hsk02
  388. CMP R9,#8
  389. BLT _hsk03
  390. LDMIA R11!,{R0-R2}
  391. SUB R11,R11,#4
  392. MOV R0,R0,LSR #24
  393. ORR R0,R0,R1,LSL #8
  394. MOV R1,R1,LSR #24
  395. ORR R1,R1,R2,LSL #8
  396. STMIA R10!,{R0-R1}
  397. SUB R9,R9,#8
  398. ._hsk03
  399. CMP R9,#4
  400. LDRGE R0,[R11],#4
  401. LDRGE R1,[R11]
  402. MOV R0,R0,LSR #24
  403. ORR R0,R0,R1,LSL #8
  404. STRGE R0,[R10],#4
  405. }
  406.