diff options
author | Toad King | 2012-06-14 03:21:06 -0400 |
---|---|---|
committer | Toad King | 2012-06-14 03:21:06 -0400 |
commit | 6fb0c7a7a53e1eba7a0f5dc5b1ade312a0d76119 (patch) | |
tree | 885cf7f507139b795ba7b2a6fb829dc044da39dd /src/osnes9xgp_asmfunc.S | |
download | snes9x2002-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.S | 101 |
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 |