notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sms wip: initial graphics support
[picodrive.git]
/
platform
/
uiq3
/
engine
/
blit.s
diff --git
a/platform/uiq3/engine/blit.s
b/platform/uiq3/engine/blit.s
index
521c31a
..
f10a3cc
100644
(file)
--- a/
platform/uiq3/engine/blit.s
+++ b/
platform/uiq3/engine/blit.s
@@
-1,8
+1,11
@@
+@ vim:filetype=armasm
\r
@ some color conversion and blitting routines
\r
\r
@ (c) Copyright 2006, notaz
\r
@ All Rights Reserved
\r
\r
@ some color conversion and blitting routines
\r
\r
@ (c) Copyright 2006, notaz
\r
@ All Rights Reserved
\r
\r
+.include "port_config.s"
\r
+
\r
\r
@ Convert 0000bbb0 ggg0rrr0 0000bbb0 ggg0rrr0
\r
@ to 00000000 rrr00000 ggg00000 bbb00000 ...
\r
\r
@ Convert 0000bbb0 ggg0rrr0 0000bbb0 ggg0rrr0
\r
@ to 00000000 rrr00000 ggg00000 bbb00000 ...
\r
@@
-341,13
+344,13
@@
vidConvCpy_90:
mov r6, #0
\r
stmia r0!, {r3-r6}
\r
stmia r0!, {r3-r6}
\r
mov r6, #0
\r
stmia r0!, {r3-r6}
\r
stmia r0!, {r3-r6}
\r
- add r7, r0, #
256
*4-8*4
\r
+ add r7, r0, #
(240+BORDER_R)
*4-8*4
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
- add r7, r7, #
256
*4-8*4
\r
+ add r7, r7, #
(240+BORDER_R)
*4-8*4
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
- add r7, r7, #
256
*4-8*4
\r
+ add r7, r7, #
(240+BORDER_R)
*4-8*4
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
\r
@@
-372,7
+375,7
@@
vidConvCpy_90:
mode2_4pix 0
\r
.endif
\r
stmia r0, {r7,r8,r10,lr}
\r
mode2_4pix 0
\r
.endif
\r
stmia r0, {r7,r8,r10,lr}
\r
- add r0, r0, #
256
*4
\r
+ add r0, r0, #
(240+BORDER_R)
*4
\r
\r
.if \is270
\r
mode2_4pix 16
\r
\r
.if \is270
\r
mode2_4pix 16
\r
@@
-380,7
+383,7
@@
vidConvCpy_90:
mode2_4pix 8
\r
.endif
\r
stmia r0, {r7,r8,r10,lr}
\r
mode2_4pix 8
\r
.endif
\r
stmia r0, {r7,r8,r10,lr}
\r
- add r0, r0, #
256
*4
\r
+ add r0, r0, #
(240+BORDER_R)
*4
\r
\r
.if \is270
\r
mode2_4pix 8
\r
\r
.if \is270
\r
mode2_4pix 8
\r
@@
-388,7
+391,7
@@
vidConvCpy_90:
mode2_4pix 16
\r
.endif
\r
stmia r0, {r7,r8,r10,lr}
\r
mode2_4pix 16
\r
.endif
\r
stmia r0, {r7,r8,r10,lr}
\r
- add r0, r0, #
256
*4
\r
+ add r0, r0, #
(240+BORDER_R)
*4
\r
\r
.if \is270
\r
mode2_4pix 0
\r
\r
.if \is270
\r
mode2_4pix 0
\r
@@
-396,7
+399,7
@@
vidConvCpy_90:
mode2_4pix 24
\r
.endif
\r
stmia r0!,{r7,r8,r10,lr}
\r
mode2_4pix 24
\r
.endif
\r
stmia r0!,{r7,r8,r10,lr}
\r
- sub r0, r0, #
256
*4*3
\r
+ sub r0, r0, #
(240+BORDER_R)
*4*3
\r
\r
bpl 0b @ .loopM2RGB32_270
\r
\r
\r
bpl 0b @ .loopM2RGB32_270
\r
\r
@@
-406,13
+409,13
@@
vidConvCpy_90:
mov r6, #0
\r
stmia r0!, {r3-r6}
\r
stmia r0!, {r3-r6}
\r
mov r6, #0
\r
stmia r0!, {r3-r6}
\r
stmia r0!, {r3-r6}
\r
- add r0, r0, #
256
*4-8*4
\r
+ add r0, r0, #
(240+BORDER_R)
*4-8*4
\r
stmia r0!, {r3-r6}
\r
stmia r0!, {r3-r6}
\r
stmia r0!, {r3-r6}
\r
stmia r0!, {r3-r6}
\r
- add r0, r0, #
256
*4-8*4
\r
+ add r0, r0, #
(240+BORDER_R)
*4-8*4
\r
stmia r0!, {r3-r6}
\r
stmia r0!, {r3-r6}
\r
stmia r0!, {r3-r6}
\r
stmia r0!, {r3-r6}
\r
- add r0, r0, #
256
*4-8*4
\r
+ add r0, r0, #
(240+BORDER_R)
*4-8*4
\r
stmia r0!, {r3-r6}
\r
nop @ phone crashes if this is commented out. Do I stress it too much?
\r
stmia r0!, {r3-r6}
\r
stmia r0!, {r3-r6}
\r
nop @ phone crashes if this is commented out. Do I stress it too much?
\r
stmia r0!, {r3-r6}
\r
@@
-421,7
+424,9
@@
vidConvCpy_90:
subs r12, r12, #1
\r
ldmeqfd sp!, {r4-r11,pc} @ return
\r
\r
subs r12, r12, #1
\r
ldmeqfd sp!, {r4-r11,pc} @ return
\r
\r
- add r0, r0, #16*4
\r
+.if BORDER_R
\r
+ add r0, r0, #BORDER_R*4
\r
+.endif
\r
.if \is270
\r
sub r9, r9, #4 @ fix src pointer
\r
.else
\r
.if \is270
\r
sub r9, r9, #4 @ fix src pointer
\r
.else
\r
@@
-431,13
+436,13
@@
vidConvCpy_90:
\r
stmia r0!, {r3-r6} @ top border
\r
stmia r0!, {r3-r6}
\r
\r
stmia r0!, {r3-r6} @ top border
\r
stmia r0!, {r3-r6}
\r
- add r7, r0, #
256
*4-8*4
\r
+ add r7, r0, #
(240+BORDER_R)
*4-8*4
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
- add r7, r7, #
256
*4-8*4
\r
+ add r7, r7, #
(240+BORDER_R)
*4-8*4
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
- add r7, r7, #
256
*4-8*4
\r
+ add r7, r7, #
(240+BORDER_R)
*4-8*4
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
\r
stmia r7!, {r3-r6}
\r
stmia r7!, {r3-r6}
\r
\r
@@
-480,7
+485,9
@@
vidConvCpy_center_0:
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {r4-r6,r11,pc} @ return
\r
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {r4-r6,r11,pc} @ return
\r
- add r0, r0, #16*4
\r
+.if BORDER_R
\r
+ add r0, r0, #BORDER_R*4
\r
+.endif
\r
add r1, r1, #88
\r
orr r12, #(240/4-1)<<16
\r
b .loopRGB32_c0
\r
add r1, r1, #88
\r
orr r12, #(240/4-1)<<16
\r
b .loopRGB32_c0
\r
@@
-509,7
+516,9
@@
vidConvCpy_center_180:
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {r4-r6,r11,pc} @ return
\r
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {r4-r6,r11,pc} @ return
\r
- add r0, r0, #16*4
\r
+.if BORDER_R
\r
+ add r0, r0, #BORDER_R*4
\r
+.endif
\r
sub r1, r1, #88
\r
orr r12, #(240/4-1)<<16
\r
b .loopRGB32_c180
\r
sub r1, r1, #88
\r
orr r12, #(240/4-1)<<16
\r
b .loopRGB32_c180
\r
@@
-543,7
+552,9
@@
vidConvCpy_center2_40c_0:
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {r4-r6,r10,r11,pc} @ return
\r
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {r4-r6,r10,r11,pc} @ return
\r
- add r0, r0, #16*4
\r
+.if BORDER_R
\r
+ add r0, r0, #BORDER_R*4
\r
+.endif
\r
add r1, r1, #8
\r
orr r12, #(240/3-1)<<16
\r
b .loopRGB32_c2_40c_0
\r
add r1, r1, #8
\r
orr r12, #(240/3-1)<<16
\r
b .loopRGB32_c2_40c_0
\r
@@
-579,7
+590,9
@@
vidConvCpy_center2_40c_180:
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {r4-r6,r10,r11,pc} @ return
\r
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {r4-r6,r10,r11,pc} @ return
\r
- add r0, r0, #16*4
\r
+.if BORDER_R
\r
+ add r0, r0, #BORDER_R*4
\r
+.endif
\r
sub r1, r1, #8
\r
orr r12, #(240/3-1)<<16
\r
b .loop_c2_40c_180
\r
sub r1, r1, #8
\r
orr r12, #(240/3-1)<<16
\r
b .loop_c2_40c_180
\r
@@
-616,7
+629,9
@@
vidConvCpy_center2_32c_0:
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {r4-r11,pc} @ return
\r
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {r4-r11,pc} @ return
\r
- add r0, r0, #16*4
\r
+.if BORDER_R
\r
+ add r0, r0, #BORDER_R*4
\r
+.endif
\r
add r1, r1, #64+8
\r
orr r12, #(240/15-1)<<16
\r
b .loop_c2_32c_0
\r
add r1, r1, #64+8
\r
orr r12, #(240/15-1)<<16
\r
b .loop_c2_32c_0
\r
@@
-657,7
+672,9
@@
vidConvCpy_center2_32c_180:
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {r4-r11,pc} @ return
\r
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {r4-r11,pc} @ return
\r
- add r0, r0, #16*4
\r
+.if BORDER_R
\r
+ add r0, r0, #BORDER_R*4
\r
+.endif
\r
sub r1, r1, #64+8
\r
orr r12, #(240/15-1)<<16
\r
b .loop_c2_32c_180
\r
sub r1, r1, #64+8
\r
orr r12, #(240/15-1)<<16
\r
b .loop_c2_32c_180
\r
@@
-689,7
+706,19
@@
vidClear:
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {pc} @ return
\r
sub r12, r12, #1
\r
adds r12, r12, #1<<16
\r
ldmeqfd sp!, {pc} @ return
\r
- add r0, r0, #16*4
\r
+.if BORDER_R
\r
+ add r0, r0, #BORDER_R*4
\r
+.endif
\r
orr r12, #(240/16-1)<<16
\r
b .loopVidClear
\r
\r
orr r12, #(240/16-1)<<16
\r
b .loopVidClear
\r
\r
+@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
\r
+
\r
+.equ EExecSetExceptionHandler, (90)
\r
+
\r
+.global my_SetExceptionHandler
\r
+
\r
+my_SetExceptionHandler:
\r
+ mov ip, lr
\r
+ swi EExecSetExceptionHandler
\r
+
\r