summaryrefslogtreecommitdiff
path: root/src/osnes9xgp_asmfunc.S
diff options
context:
space:
mode:
authorToad King2012-06-14 03:21:06 -0400
committerToad King2012-06-14 03:21:06 -0400
commit6fb0c7a7a53e1eba7a0f5dc5b1ade312a0d76119 (patch)
tree885cf7f507139b795ba7b2a6fb829dc044da39dd /src/osnes9xgp_asmfunc.S
downloadsnes9x2002-6fb0c7a7a53e1eba7a0f5dc5b1ade312a0d76119.tar.gz
snes9x2002-6fb0c7a7a53e1eba7a0f5dc5b1ade312a0d76119.tar.bz2
snes9x2002-6fb0c7a7a53e1eba7a0f5dc5b1ade312a0d76119.zip
initial pocketsnes commit
Diffstat (limited to 'src/osnes9xgp_asmfunc.S')
-rw-r--r--src/osnes9xgp_asmfunc.S101
1 files changed, 101 insertions, 0 deletions
diff --git a/src/osnes9xgp_asmfunc.S b/src/osnes9xgp_asmfunc.S
new file mode 100644
index 0000000..7cdc3ec
--- /dev/null
+++ b/src/osnes9xgp_asmfunc.S
@@ -0,0 +1,101 @@
+ .global asmClearScreenFast8
+ .global asmClearScreenFast16
+
+asmClearScreenFast16:
+;@R0 = scr
+;@R1 = starty
+;@R2 = endy
+;@R3 = col
+ stmfd R13!,{R4-R11}
+
+ sub R12,R2,R1
+ add R12,R12,#1
+ ;@R12 = endy-starty+1
+
+ mov r2,#320
+ mul r1,r2,r1
+ ;@R1 = 320*starty
+
+ add R0,R0,R1,lsl #1
+ ;@R0 = screen + ((320*starty)<<1)
+
+ mov R2,R3
+ mov R4,R3
+ mov R5,R3
+ mov R6,R3
+ mov R7,R3
+ mov R8,R3
+ mov R9,R3
+2:
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+
+ add r0,r0,#32*4
+
+ subs R12,R12,#1
+ bne 2b
+
+ ldmfd R13!,{R4-R11}
+ mov PC,LR
+
+
+asmClearScreenFast8:
+;R0 = scr
+;R1 = starty
+;R2 = endy
+;R3 = col
+ stmfd R13!,{R4-R11}
+
+ sub R12,R2,R1
+ add R12,R12,#1
+ ;@R12 = endy-starty+1
+
+ mov r2,#320
+ mul r1,r2,r1
+ ;@R1 = 320*starty
+
+ add R0,R0,R1
+ ;@R0 = screen + ((320*starty))
+
+ mov R2,R3
+ mov R4,R3
+ mov R5,R3
+ mov R6,R3
+ mov R7,R3
+ mov R8,R3
+ mov R9,R3
+
+2:
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+ stmia R0!,{R2,R3,R4,R5,R6,R7,R8,R9}
+
+ subs R12,R12,#1
+ bne 2b
+
+ ldmfd R13!,{R4-R11}
+ mov PC,LR
+
+ \ No newline at end of file