File:
[RetroPC.NET] /
np2 /
wince /
arm /
sdrawq16.s
Revision
1.4:
download - view:
text,
annotated -
select for diffs
Wed Feb 18 11:03:37 2004 JST (21 years, 8 months ago) by
yui
Branches:
MAIN
CVS tags:
VER_0_82_x64,
VER_0_82,
VER_0_81A,
VER_0_81,
VER_0_80,
VER_0_79,
VER_0_78,
VER_0_77,
VER_0_76,
VER_0_75,
HEAD
fix egc (T.Yui)
INCLUDE sdraw.inc
IMPORT np2_pal16
EXPORT sdraw_getproctbl
AREA .text, CODE, READONLY
qvga16p_0 stmdb sp!, {r4 - r8, lr}
add r0, r0, #S_HDRSIZE
ldr lr, pal16_0
ldr r3, [r0, #S_XALIGN]
ldr r4, [r0, #S_Y]
ldr lr, [lr]
ldr r5, [r0, #S_YALIGN]
ldr r6, [r0, #S_SRC]
ldr r7, [r0, #S_DST]
ldrh r12, [r4, r0]
ldr r8, [r0, #S_WIDTH]
orr lr, lr, lr lsr #16
putylp_0 cmp r12, #0
beq putyed_0
mov r12, r7
mov r2, #0
putxlp_0 strh lr, [r12], r3
strh lr, [r12], r3
add r2, r2, #4
cmp r2, r8
bcc putxlp_0
putyed_0 add r4, r4, #2
add r6, r6, #(SURFACE_WIDTH * 2)
add r7, r7, r5
cmp r4, r1
ldrcch r12, [r4, r0]
bcc putylp_0
str r6, [r0, #S_SRC]
str r7, [r0, #S_DST]
str r4, [r0, #S_Y]
ldmia sp!, {r4 - r8, pc}
pal16_0 dcd (np2_pal16 + (NP2PAL_TEXT2 * 4))
qvga16p_1 stmdb sp!, {r4 - r11, lr}
add r0, r0, #S_HDRSIZE
ldr r11, pal16_1
ldr lr, pmask_1
ldr r3, [r0, #S_XALIGN]
ldr r4, [r0, #S_Y]
ldr r5, [r0, #S_YALIGN]
ldr r7, [r0, #S_SRC]
ldrh r12, [r0, r4]
ldr r8, [r0, #S_DST]
ldr r10, [r0, #S_WIDTH]
putylp_1 cmp r12, #0
beq putyed_1
ldr r9, [r7] ; r2 = 0
str r4, [r0, #S_Y]
str r8, [r0, #S_DST]
mov r2, #0
putxlp_1 and r5, r9, #255
mov r12, r9 lsr #8
and r12, r12, #255
ldr r5, [r11, r5 lsl #2]
ldr r12, [r11, r12 lsl #2]
mov r4, r9 lsr #16
and r4, r4, #255
add r5, r5, r12
mov r12, r9 lsr #24
ldr r6, [r11, r4 lsl #2]
ldr r12, [r11, r12 lsl #2]
add r9, r2, #SURFACE_WIDTH
ldr r9, [r9, r7]
add r6, r12, r6
add r2, r2, #4
and r4, r9, #255
mov r12, r9 lsr #8
and r12, r12, #255
ldr r4, [r11, r4 lsl #2]
ldr r12, [r11, r12 lsl #2]
mov r9, r9 lsr #16
add r5, r5, r4
add r5, r5, r12
and r4, r9, #255
mov r12, r9 lsr #8
ldr r4, [r11, r4 lsl #2]
ldr r12, [r11, r12 lsl #2]
and r5, r5, lr
add r6, r6, r4
add r6, r6, r12
and r6, r6, lr
mov r9, r5 lsr #2
add r9, r9, r5 lsr #18
mov r12, r6 lsr #2
add r12, r12, r6 lsr #18
strh r9, [r8], r3
strh r12, [r8], r3
cmp r2, r10
ldrcc r9, [r2, r7]
bcc putxlp_1
ldr r4, [r0, #S_Y]
ldr r5, [r0, #S_YALIGN]
ldr r8, [r0, #S_DST]
putyed_1 add r4, r4, #2
add r7, r7, #(SURFACE_WIDTH * 2)
add r8, r8, r5
cmp r4, r1
ldrcch r12, [r4, r0]
bcc putylp_1
str r7, [r0, #S_SRC]
str r8, [r0, #S_DST]
str r4, [r0, #S_Y]
ldmia sp!, {r4 - r11, pc}
pal16_1 dcd (np2_pal16 + (NP2PAL_GRPH * 4))
pmask_1 dcd (&07e0f81f << 2)
qvga16p_2 stmdb sp!, {r4 - r11, lr}
add r0, r0, #S_HDRSIZE
ldr r11, pal16_2
ldr lr, pmask_2
ldr r3, [r0, #S_XALIGN]
ldr r4, [r0, #S_Y]
ldr r5, [r0, #S_YALIGN]
ldr r7, [r0, #S_SRC]
ldr r8, [r0, #S_SRC2]
ldr r12, [r4, r0]
ldr r9, [r0, #S_DST]
ldr r10, [r0, #S_WIDTH]
putylp_2 cmp r12, #0
beq putyed_2
str r9, [r0, #S_DST]
str r4, [r0, #S_Y]
ldr r4, [r7] ; r2 = 0
ldr r12, [r8] ; r2 = 0
mov r2, #0
str r1, [sp, #-4]!
putxlp_2 add r4, r12, r4
and r5, r4, #255
mov r12, r4 lsr #8
and r12, r12, #255
ldr r5, [r11, r5 lsl #2]
ldr r12, [r11, r12 lsl #2]
mov r6, r4 lsr #16
and r6, r6, #255
add r5, r12, r5
mov r12, r4 lsr #24
ldr r6, [r11, r6 lsl #2]
ldr r12, [r11, r12 lsl #2]
add r1, r2, #SURFACE_WIDTH
ldr r4, [r1, r7]
ldr r1, [r1, r8]
add r2, r2, #4
add r6, r6, r12
add r4, r1, r4
and r1, r4, #255
mov r12, r4 lsr #8
and r12, r12, #255
ldr r1, [r11, r1 lsl #2]
ldr r12, [r11, r12 lsl #2]
mov r4, r4 lsr #16
add r5, r5, r1
add r5, r5, r12
and r1, r4, #255
mov r12, r4 lsr #8
ldr r1, [r11, r1 lsl #2]
ldr r12, [r11, r12 lsl #2]
and r5, r5, lr
add r6, r6, r1
add r6, r6, r12
and r6, r6, lr
mov r4, r5 lsr #2
mov r12, r6 lsr #2
add r4, r4, r5 lsr #18
add r12, r12, r6 lsr #18
strh r4, [r9], r3
strh r12, [r9], r3
cmp r2, r10
ldrcc r4, [r2, r7]
ldrcc r12, [r2, r8]
bcc putxlp_2
ldr r9, [r0, #S_DST]
ldr r4, [r0, #S_Y]
ldr r5, [r0, #S_YALIGN]
ldr r1, [sp], #4
putyed_2 add r4, r4, #2
add r7, r7, #(SURFACE_WIDTH * 2)
add r8, r8, #(SURFACE_WIDTH * 2)
add r9, r9, r5
cmp r4, r1
ldrcch r12, [r4, r0]
bcc putylp_2
str r7, [r0, #S_SRC]
str r8, [r0, #S_SRC2]
str r9, [r0, #S_DST]
str r4, [r0, #S_Y]
ldmia sp!, {r4 - r11, pc}
pal16_2 dcd (np2_pal16 + (NP2PAL_GRPH * 4))
pmask_2 dcd (&07e0f81f << 2)
qvga16p_gi stmdb sp!, {r4 - r11, lr}
add r0, r0, #S_HDRSIZE
ldr r11, pal16_gi
ldr lr, pmask_gi
ldr r3, [r0, #S_XALIGN]
ldr r4, [r0, #S_Y]
ldr r5, [r0, #S_YALIGN]
ldr r7, [r0, #S_SRC]
ldrh r12, [r4, r0]
ldr r8, [r0, #S_DST]
ldr r10, [r0, #S_WIDTH]
putylp_gi cmp r12, #0
beq putyed_gi
str r4, [r0, #S_Y]
ldr r4, [r7] ; r2 = 0
mov r9, r8
mov r2, #0
putxlp_gi and r5, r4, #255
mov r12, r4 lsr #8
and r12, r12, #255
ldr r5, [r11, r5 lsl #2]
ldr r12, [r11, r12 lsl #2]
mov r6, r4 lsr #16
and r6, r6, #255
add r5, r12, r5
mov r12, r4 lsr #24
ldr r6, [r11, r6 lsl #2]
ldr r12, [r11, r12 lsl #2]
and r5, r5, lr
add r2, r2, #4
mov r4, r5 lsr #1
orr r4, r4, r5 lsr #17
add r6, r12, r6
and r6, r6, lr
strh r4, [r9], r3
mov r12, r6 lsr #1
orr r12, r12, r6 lsr #17
cmp r2, r10
strh r12, [r9], r3
ldrcc r4, [r2, r7]
bcc putxlp_gi
ldr r4, [r0, #S_Y]
ldr r5, [r0, #S_YALIGN]
putyed_gi add r4, r4, #2
add r7, r7, #(SURFACE_WIDTH * 2)
add r8, r8, r5
cmp r4, r1
ldrcch r12, [r4, r0]
bcc putylp_gi
str r7, [r0, #S_SRC]
str r8, [r0, #S_DST]
str r4, [r0, #S_Y]
ldmia sp!, {r4 - r11, pc}
pal16_gi dcd (np2_pal16 + (NP2PAL_GRPH * 4))
pmask_gi dcd (&07e0f81f << 1)
qvga16p_2i stmdb sp!, {r4 - r11, lr}
add r0, r0, #S_HDRSIZE
ldr r11, pal16_2i
ldr lr, pmask_2i
ldr r3, [r0, #S_XALIGN]
ldr r4, [r0, #S_Y]
ldr r5, [r0, #S_YALIGN]
ldr r7, [r0, #S_SRC]
ldr r8, [r0, #S_SRC2]
ldrh r12, [r0, r4]
ldr r9, [r0, #S_DST]
ldr r10, [r0, #S_WIDTH]
putylp_2i cmp r12, #0
beq putyed_2i
str r9, [r0, #S_DST]
str r4, [r0, #S_Y]
ldr r6, [r8, #SURFACE_WIDTH]
mov r2, #0
str r1, [sp, #-4]!
putxlp_2i ldr r4, [r7, r2]
ands r12, r6, #(&f0 << 0)
andeq r12, r4, #255
movne r12, r12 lsr #4
addne r12, r12, #(NP2PAL_TEXT - NP2PAL_GRPH)
ldr r5, [r11, r12 lsl #2]
ands r12, r6, #(&f0 << 8)
moveq r12, r4 lsr #8
andeq r12, r12, #255
movne r12, r12 lsr #12
addne r12, r12, #(NP2PAL_TEXT - NP2PAL_GRPH)
ldr r1, [r11, r12 lsl #2]
ands r12, r6, #(&f0 << 16)
moveq r12, r4 lsr #16
andeq r12, r12, #255
movne r12, r12 lsr #20
addne r12, r12, #(NP2PAL_TEXT - NP2PAL_GRPH)
movs r6, r6 lsr #28
moveq r6, r4 lsr #24
addne r6, r6, #(NP2PAL_TEXT - NP2PAL_GRPH)
ldr r12, [r11, r12 lsl #2]
ldr r6, [r11, r6 lsl #2]
add r5, r5, r1
ldr r1, [r8, r2]
;; ldr r4, [r7, r2]
add r6, r6, r12
add r4, r1, r4
and r1, r4, #255
mov r12, r4 lsr #8
and r12, r12, #255
ldr r1, [r11, r1 lsl #2]
ldr r12, [r11, r12 lsl #2]
add r2, r2, #4
add r5, r5, r1
add r5, r5, r12
mov r12, r4 lsr #16
and r12, r12, #255
mov r4, r4 lsr #24
ldr r12, [r11, r12 lsl #2]
ldr r4, [r11, r4 lsl #2]
and r5, r5, lr
add r6, r6, r12
add r6, r6, r4
and r6, r6, lr
mov r12, r5 lsr #2
orr r12, r12, r5 lsr #18
strh r12, [r9], r3
mov r12, r6 lsr #2
orr r12, r12, r6 lsr #18
strh r12, [r9], r3
add r6, r2, #SURFACE_WIDTH
cmp r2, r10
ldrcc r6, [r6, r8]
bcc putxlp_2i
ldr r1, [sp], #4
ldr r9, [r0, #S_DST]
ldr r4, [r0, #S_Y]
ldr r5, [r0, #S_YALIGN]
putyed_2i add r4, r4, #2
add r7, r7, #(SURFACE_WIDTH * 2)
add r8, r8, #(SURFACE_WIDTH * 2)
add r9, r9, r5
cmp r4, r1
ldrcch r12, [r4, r0]
bcc putylp_2i
str r7, [r0, #S_SRC]
str r8, [r0, #S_SRC2]
str r9, [r0, #S_DST]
str r4, [r0, #S_Y]
ldmia sp!, {r4 - r11, pc}
pal16_2i dcd (np2_pal16 + (NP2PAL_GRPH * 4))
pmask_2i dcd (&07e0f81f << 2)
qvga16p_1d stmdb sp!, {r4 - r11, lr}
add r0, r0, #S_HDRSIZE
ldr r11, pal16_1d
ldr lr, pmask_1d
ldr r3, [r0, #S_XALIGN]
ldr r4, [r0, #S_Y]
ldr r5, [r0, #S_YALIGN]
ldr r7, [r0, #S_SRC]
ldrb r12, [r4, r0]
ldr r8, [r0, #S_DST]
ldr r10, [r0, #S_WIDTH]
putylp_1d cmp r12, #0
beq putyed_1d
str r4, [r0, #S_Y]
ldr r4, [r7] ; r2 = 0
mov r9, r8
mov r2, #0
putxlp_1d and r5, r4, #255
mov r12, r4 lsr #8
and r12, r12, #255
ldr r5, [r11, r5 lsl #2]
ldr r12, [r11, r12 lsl #2]
mov r6, r4 lsr #16
and r6, r6, #255
add r5, r12, r5
mov r12, r4 lsr #24
ldr r6, [r11, r6 lsl #2]
ldr r12, [r11, r12 lsl #2]
and r5, r5, lr
add r2, r2, #4
mov r4, r5 lsr #1
orr r4, r4, r5 lsr #17
add r6, r12, r6
and r6, r6, lr
strh r4, [r9], r3
mov r12, r6 lsr #1
orr r12, r12, r6 lsr #17
cmp r2, r10
strh r12, [r9], r3
ldrcc r4, [r2, r7]
bcc putxlp_1d
ldr r4, [r0, #S_Y]
ldr r5, [r0, #S_YALIGN]
putyed_1d add r4, r4, #1
add r7, r7, #SURFACE_WIDTH
add r8, r8, r5
cmp r4, r1
ldrccb r12, [r4, r0]
bcc putylp_1d
str r7, [r0, #S_SRC]
str r8, [r0, #S_DST]
str r4, [r0, #S_Y]
ldmia sp!, {r4 - r11, pc}
pal16_1d dcd (np2_pal16 + (NP2PAL_GRPH * 4))
pmask_1d dcd (&07e0f81f << 1)
qvga16p_2d stmdb sp!, {r4 - r11, lr}
add r0, r0, #S_HDRSIZE
ldr r11, pal16_2d
ldr lr, pmask_2d
ldr r3, [r0, #S_XALIGN]
ldr r4, [r0, #S_Y]
ldr r5, [r0, #S_YALIGN]
ldr r7, [r0, #S_SRC]
ldr r8, [r0, #S_SRC2]
ldrb r12, [r4, r0]
ldr r9, [r0, #S_DST]
ldr r10, [r0, #S_WIDTH]
putylp_2d cmp r12, #0
beq putyed_2d
str r4, [r0, #S_Y]
ldr r4, [r7] ; r2 = 0
ldr r12, [r8] ; r2 = 0
str r9, [r0, #S_DST]
mov r2, #0
putxlp_2d add r4, r12, r4
and r5, r4, #255
mov r12, r4 lsr #8
and r12, r12, #255
ldr r5, [r11, r5 lsl #2]
ldr r12, [r11, r12 lsl #2]
mov r6, r4 lsr #16
and r6, r6, #255
add r5, r12, r5
mov r12, r4 lsr #24
ldr r6, [r11, r6 lsl #2]
ldr r12, [r11, r12 lsl #2]
and r5, r5, lr
add r2, r2, #4
mov r4, r5 lsr #1
orr r4, r4, r5 lsr #17
add r6, r12, r6
and r6, r6, lr
strh r4, [r9], r3
mov r12, r6 lsr #1
orr r12, r12, r6 lsr #17
cmp r2, r10
strh r12, [r9], r3
ldrcc r4, [r2, r7]
ldrcc r12, [r2, r8]
bcc putxlp_2d
ldr r4, [r0, #S_Y]
ldr r5, [r0, #S_YALIGN]
ldr r9, [r0, #S_DST]
putyed_2d add r4, r4, #1
add r7, r7, #SURFACE_WIDTH
add r8, r8, #SURFACE_WIDTH
add r9, r9, r5
cmp r4, r1
ldrccb r12, [r4, r0]
bcc putylp_2d
str r7, [r0, #S_SRC]
str r8, [r0, #S_SRC2]
str r9, [r0, #S_DST]
str r4, [r0, #S_Y]
ldmia sp!, {r4 - r11, pc}
pal16_2d dcd (np2_pal16 + (NP2PAL_GRPH * 4))
pmask_2d dcd (&07e0f81f << 1)
sdraw_getproctbl
mov r0, pc
mov pc, lr
dcd qvga16p_0
dcd qvga16p_1
dcd qvga16p_1
dcd qvga16p_2
dcd qvga16p_0
dcd qvga16p_1
dcd qvga16p_gi
dcd qvga16p_2i
dcd qvga16p_0
dcd qvga16p_1
dcd qvga16p_gi
dcd qvga16p_2i
dcd qvga16p_0
dcd qvga16p_1d
dcd qvga16p_1d
dcd qvga16p_2d
END
RetroPC.NET-CVS <cvs@retropc.net>