Advertisement
Guest User

crysisOS

a guest
Jan 6th, 2020
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 5.43 KB | None | 0 0
  1. .section .init
  2. .globl _start
  3. _start:
  4.   b main
  5.  
  6. .section .text
  7. main:
  8.   mov sp,#0x8000
  9.  
  10.   mov r0,#320
  11.   mov r1,#240
  12.   mov r2,#32
  13.   bl InitialiseFramebuffer
  14.   teq r0,#0
  15.   beq panic
  16.  
  17.   fbInfoAddr .req r4
  18.   mov fbInfoAddr,r0
  19.  
  20.   mov r0,#0
  21.   push {r0}
  22. render$:
  23.   pattern .req r0
  24.   seq .req r1
  25.   ldr pattern,=ACTPatternFlash8
  26.   pop {seq}
  27.   bl ACTSetState
  28.   .unreq seq
  29.   seq .req r0
  30.   push {seq}
  31.   .unreq seq
  32.   .unreq pattern
  33.  
  34.   fbAddr .req r3
  35.   ldr fbAddr,[fbInfoAddr,#0x20]
  36.   y .req r1
  37.   ldr y,[fbInfoAddr,#0x0C]
  38.   drawRow$:
  39.     x .req r2
  40.     ldr x,[fbInfoAddr,#0x08]
  41.     drawPixel$:
  42.       ldr r0,=Time
  43.       ldr r0,[r0]
  44.       add r0,x
  45.       add r0,y
  46.       loop$:
  47.         cmp r0,#0xff
  48.         subhi r0,#0x100
  49.         bhi loop$
  50.       push {r1}
  51.       ldr r1,=Sine
  52.       lsl r0,#2
  53.       add r1,r0
  54.       ldr r0,[r1]
  55.       pop {r1}
  56.       str r0,[fbAddr]
  57.       add fbAddr,#4
  58.       sub x,#1
  59.       teq x,#0
  60.       bne drawPixel$
  61.     sub y,#1
  62.     teq y,#0
  63.     bne drawRow$
  64.   push {r1}
  65.   ldr r1,=Time
  66.   ldr r0,[r1]
  67.   add r0,#4
  68.   str r0,[r1]
  69.   pop {r1}
  70.   b render$
  71.   .unreq fbAddr
  72.   .unreq fbInfoAddr
  73.  
  74. .section .data
  75. .align 4
  76. Time:
  77. .int 0
  78. Sine:
  79. .int 0x00000080
  80. .int 0x00000083
  81. .int 0x00000086
  82. .int 0x00000089
  83. .int 0x0000008C
  84. .int 0x00000090
  85. .int 0x00000093
  86. .int 0x00000096
  87. .int 0x00000099
  88. .int 0x0000009C
  89. .int 0x0000009F
  90. .int 0x000000A2
  91. .int 0x000000A5
  92. .int 0x000000A8
  93. .int 0x000000AB
  94. .int 0x000000AE
  95. .int 0x000000B1
  96. .int 0x000000B3
  97. .int 0x000000B6
  98. .int 0x000000B9
  99. .int 0x000000BC
  100. .int 0x000000BF
  101. .int 0x000000C1
  102. .int 0x000000C4
  103. .int 0x000000C7
  104. .int 0x000000C9
  105. .int 0x000000CC
  106. .int 0x000000CE
  107. .int 0x000000D1
  108. .int 0x000000D3
  109. .int 0x000000D5
  110. .int 0x000000D8
  111. .int 0x000000DA
  112. .int 0x000000DC
  113. .int 0x000000DE
  114. .int 0x000000E0
  115. .int 0x000000E2
  116. .int 0x000000E4
  117. .int 0x000000E6
  118. .int 0x000000E8
  119. .int 0x000000EA
  120. .int 0x000000EB
  121. .int 0x000000ED
  122. .int 0x000000EF
  123. .int 0x000000F0
  124. .int 0x000000F1
  125. .int 0x000000F3
  126. .int 0x000000F4
  127. .int 0x000000F5
  128. .int 0x000000F6
  129. .int 0x000000F8
  130. .int 0x000000F9
  131. .int 0x000000FA
  132. .int 0x000000FA
  133. .int 0x000000FB
  134. .int 0x000000FC
  135. .int 0x000000FD
  136. .int 0x000000FD
  137. .int 0x000000FE
  138. .int 0x000000FE
  139. .int 0x000000FE
  140. .int 0x000000FF
  141. .int 0x000000FF
  142. .int 0x000000FF
  143. .int 0x000000FF
  144. .int 0x000000FF
  145. .int 0x000000FF
  146. .int 0x000000FF
  147. .int 0x000000FE
  148. .int 0x000000FE
  149. .int 0x000000FE
  150. .int 0x000000FD
  151. .int 0x000000FD
  152. .int 0x000000FC
  153. .int 0x000000FB
  154. .int 0x000000FA
  155. .int 0x000000FA
  156. .int 0x000000F9
  157. .int 0x000000F8
  158. .int 0x000000F6
  159. .int 0x000000F5
  160. .int 0x000000F4
  161. .int 0x000000F3
  162. .int 0x000000F1
  163. .int 0x000000F0
  164. .int 0x000000EF
  165. .int 0x000000ED
  166. .int 0x000000EB
  167. .int 0x000000EA
  168. .int 0x000000E8
  169. .int 0x000000E6
  170. .int 0x000000E4
  171. .int 0x000000E2
  172. .int 0x000000E0
  173. .int 0x000000DE
  174. .int 0x000000DC
  175. .int 0x000000DA
  176. .int 0x000000D8
  177. .int 0x000000D5
  178. .int 0x000000D3
  179. .int 0x000000D1
  180. .int 0x000000CE
  181. .int 0x000000CC
  182. .int 0x000000C9
  183. .int 0x000000C7
  184. .int 0x000000C4
  185. .int 0x000000C1
  186. .int 0x000000BF
  187. .int 0x000000BC
  188. .int 0x000000B9
  189. .int 0x000000B6
  190. .int 0x000000B3
  191. .int 0x000000B1
  192. .int 0x000000AE
  193. .int 0x000000AB
  194. .int 0x000000A8
  195. .int 0x000000A5
  196. .int 0x000000A2
  197. .int 0x0000009F
  198. .int 0x0000009C
  199. .int 0x00000099
  200. .int 0x00000096
  201. .int 0x00000093
  202. .int 0x00000090
  203. .int 0x0000008C
  204. .int 0x00000089
  205. .int 0x00000086
  206. .int 0x00000083
  207. .int 0x00000080
  208. .int 0x0000007D
  209. .int 0x0000007A
  210. .int 0x00000077
  211. .int 0x00000074
  212. .int 0x00000070
  213. .int 0x0000006D
  214. .int 0x0000006A
  215. .int 0x00000067
  216. .int 0x00000064
  217. .int 0x00000061
  218. .int 0x0000005E
  219. .int 0x0000005B
  220. .int 0x00000058
  221. .int 0x00000055
  222. .int 0x00000052
  223. .int 0x0000004F
  224. .int 0x0000004D
  225. .int 0x0000004A
  226. .int 0x00000047
  227. .int 0x00000044
  228. .int 0x00000041
  229. .int 0x0000003F
  230. .int 0x0000003C
  231. .int 0x00000039
  232. .int 0x00000037
  233. .int 0x00000034
  234. .int 0x00000032
  235. .int 0x0000002F
  236. .int 0x0000002D
  237. .int 0x0000002B
  238. .int 0x00000028
  239. .int 0x00000026
  240. .int 0x00000024
  241. .int 0x00000022
  242. .int 0x00000020
  243. .int 0x0000001E
  244. .int 0x0000001C
  245. .int 0x0000001A
  246. .int 0x00000018
  247. .int 0x00000016
  248. .int 0x00000015
  249. .int 0x00000013
  250. .int 0x00000011
  251. .int 0x00000010
  252. .int 0x0000000F
  253. .int 0x0000000D
  254. .int 0x0000000C
  255. .int 0x0000000B
  256. .int 0x0000000A
  257. .int 0x00000008
  258. .int 0x00000007
  259. .int 0x00000006
  260. .int 0x00000006
  261. .int 0x00000005
  262. .int 0x00000004
  263. .int 0x00000003
  264. .int 0x00000003
  265. .int 0x00000002
  266. .int 0x00000002
  267. .int 0x00000002
  268. .int 0x00000001
  269. .int 0x00000001
  270. .int 0x00000001
  271. .int 0x00000001
  272. .int 0x00000001
  273. .int 0x00000001
  274. .int 0x00000001
  275. .int 0x00000002
  276. .int 0x00000002
  277. .int 0x00000002
  278. .int 0x00000003
  279. .int 0x00000003
  280. .int 0x00000004
  281. .int 0x00000005
  282. .int 0x00000006
  283. .int 0x00000006
  284. .int 0x00000007
  285. .int 0x00000008
  286. .int 0x0000000A
  287. .int 0x0000000B
  288. .int 0x0000000C
  289. .int 0x0000000D
  290. .int 0x0000000F
  291. .int 0x00000010
  292. .int 0x00000011
  293. .int 0x00000013
  294. .int 0x00000015
  295. .int 0x00000016
  296. .int 0x00000018
  297. .int 0x0000001A
  298. .int 0x0000001C
  299. .int 0x0000001E
  300. .int 0x00000020
  301. .int 0x00000022
  302. .int 0x00000024
  303. .int 0x00000026
  304. .int 0x00000028
  305. .int 0x0000002B
  306. .int 0x0000002D
  307. .int 0x0000002F
  308. .int 0x00000032
  309. .int 0x00000034
  310. .int 0x00000037
  311. .int 0x00000039
  312. .int 0x0000003C
  313. .int 0x0000003F
  314. .int 0x00000041
  315. .int 0x00000044
  316. .int 0x00000047
  317. .int 0x0000004A
  318. .int 0x0000004D
  319. .int 0x0000004F
  320. .int 0x00000052
  321. .int 0x00000055
  322. .int 0x00000058
  323. .int 0x0000005B
  324. .int 0x0000005E
  325. .int 0x00000061
  326. .int 0x00000064
  327. .int 0x00000067
  328. .int 0x0000006A
  329. .int 0x0000006D
  330. .int 0x00000070
  331. .int 0x00000074
  332. .int 0x00000077
  333. .int 0x0000007A
  334. .int 0x0000007D
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement