Diff for /np2/wince/arm/sdrawq16.s between versions 1.1 and 1.3

version 1.1, 2003/12/04 18:31:02 version 1.3, 2003/12/21 23:27:09
Line 1 Line 1
   
 ; それ以前にメモリが遅いから C版とあんまり変らないような…          INCLUDE sdraw.inc
   
   
 NP2PALS_TXT             equ             10  
 NP2PALS_GRPH    equ             16  
   
 NP2PAL_TEXT             equ             0  
 NP2PAL_SKIP             equ             NP2PALS_TXT  
 NP2PAL_GRPH             equ             (NP2PAL_SKIP + NP2PALS_GRPH)  
 NP2PAL_TEXT2    equ             (NP2PAL_GRPH + NP2PALS_GRPH)  
   
 SURFACE_WIDTH   equ             640  
   
 S_SRC                   equ             0  
 S_SRC2                  equ             4  
 S_DST                   equ             8  
 S_WIDTH                 equ             12  
 S_XBYTES                equ             16  
 S_Y                             equ             20  
 S_XALIGN                equ             24  
 S_YALIGN                equ             28  
 S_DIRTY                 equ             32  
   
         IMPORT  np2_pal16          IMPORT  np2_pal16
   
         EXPORT  sdraw_getproctbl          EXPORT  sdraw_getproctbl
   
         AREA    SDRAWQ16, CODE, READONLY          AREA    .text, CODE, READONLY
   
 qvga16p_0               stmdb   sp!, {r4 - r8, lr}  qvga16p_0               stmdb   sp!, {r4 - r8, lr}
                                 ldr             r6, [r0, #S_SRC]                                  add             r0, r0, #S_HDRSIZE
                                 ldr             r7, [r0, #S_DST]                                  ldr             lr, pal16_0
                                 ldr             r8, [r0, #S_WIDTH]  
                                 ldr             r3, [r0, #S_XALIGN]                                  ldr             r3, [r0, #S_XALIGN]
                                 ldr             r4, [r0, #S_Y]                                  ldr             r4, [r0, #S_Y]
                                 ldr             r5, [r0, #S_YALIGN]  
                                 ldr             lr, pal16_0  
                                 ldr             lr, [lr]                                  ldr             lr, [lr]
                                 add             lr, lr, lr, lsr #16                                  ldr             r5, [r0, #S_YALIGN]
                                 mov             lr, lr, lsr #16                                  ldr             r6, [r0, #S_SRC]
                                 add             lr, lr, lr, lsl #16                                  ldr             r7, [r0, #S_DST]
                                 add             r0, r0, #S_DIRTY                                  ldrh    r12, [r4, r0]
 putylp_0                ldrh    r12, [r0, r4]                                  ldr             r8, [r0, #S_WIDTH]
                                 cmp             r12, #0                                  orr             lr, lr, lr lsr #16
   putylp_0                cmp             r12, #0
                                 beq             putyed_0                                  beq             putyed_0
                                 mov             r12, r7                                  mov             r12, r7
                                 mov             r2, #0                                  mov             r2, #0
Line 55  putyed_0  add  r4, r4, #2 Line 30  putyed_0  add  r4, r4, #2
                                 add             r6, r6, #(SURFACE_WIDTH * 2)                                  add             r6, r6, #(SURFACE_WIDTH * 2)
                                 add             r7, r7, r5                                  add             r7, r7, r5
                                 cmp             r4, r1                                  cmp             r4, r1
                                   ldrcch  r12, [r4, r0]
                                 bcc             putylp_0                                  bcc             putylp_0
                                 str             r6, [r0, #(S_SRC - S_DIRTY)]                                  str             r6, [r0, #S_SRC]
                                 str             r7, [r0, #(S_DST - S_DIRTY)]                                  str             r7, [r0, #S_DST]
                                 str             r4, [r0, #(S_Y - S_DIRTY)]                                  str             r4, [r0, #S_Y]
                                 ldmia   sp!, {r4 - r8, pc}                                  ldmia   sp!, {r4 - r8, pc}
 pal16_0                 dcd             (np2_pal16 + (NP2PAL_TEXT2 * 4))  pal16_0                 dcd             (np2_pal16 + (NP2PAL_TEXT2 * 4))
   
 qvga16p_1               stmdb   sp!, {r4 - r11, lr}  qvga16p_1               stmdb   sp!, {r4 - r11, lr}
                                   add             r0, r0, #S_HDRSIZE
                                 ldr             r11, pal16_1                                  ldr             r11, pal16_1
                                 ldr             lr, pmask_1                                  ldr             lr, pmask_1
                                 ldr             r7, [r0, #S_SRC]  
                                 ldr             r8, [r0, #S_DST]  
                                 ldr             r10, [r0, #S_WIDTH]  
                                 ldr             r3, [r0, #S_XALIGN]                                  ldr             r3, [r0, #S_XALIGN]
                                 ldr             r4, [r0, #S_Y]                                  ldr             r4, [r0, #S_Y]
                                 ldr             r5, [r0, #S_YALIGN]                                  ldr             r5, [r0, #S_YALIGN]
                                 add             r0, r0, #S_DIRTY                                  ldr             r7, [r0, #S_SRC]
 putylp_1                ldrh    r12, [r0, r4]                                  ldrh    r12, [r0, r4]
                                 cmp             r12, #0                                  ldr             r8, [r0, #S_DST]
                                   ldr             r10, [r0, #S_WIDTH]
   putylp_1                cmp             r12, #0
                                 beq             putyed_1                                  beq             putyed_1
                                 str             r4, [r0, #(S_Y - S_DIRTY)]                                  ldr             r9, [r7]                        ; r2 = 0
                                 mov             r9, r8                                  str             r4, [r0, #S_Y]
                                   str             r8, [r0, #S_DST]
                                 mov             r2, #0                                  mov             r2, #0
 putxlp_1                ldr             r4, [r7, r2]  putxlp_1                and             r5, r9, #255
                                 and             r12, r4, #255                                  mov             r12, r9 lsr #8
                                 ldr             r5, [r11, r12, lsl #2]  
                                 mov             r12, r4, lsr #8  
                                 and             r12, r12, #255                                  and             r12, r12, #255
                                 ldr             r12, [r11, r12, lsl #2]                                  ldr             r5, [r11, r5 lsl #2]
                                 add             r5, r5, r12                                  ldr             r12, [r11, r12 lsl #2]
                                 mov             r12, r4, lsr #16                                  mov             r4, r9 lsr #16
                                 and             r12, r12, #255                                  and             r4, r4, #255
                                 ldr             r6, [r11, r12, lsl #2]  
                                 mov             r12, r4, lsr #24  
                                 ldr             r12, [r11, r12, lsl #2]  
                                 add             r6, r6, r12  
                                 add             r12, r2, #SURFACE_WIDTH  
                                 ldr             r4, [r7, r12]  
                                 and             r12, r4, #255  
                                 ldr             r12, [r11, r12, lsl #2]  
                                 add             r5, r5, r12                                  add             r5, r5, r12
                                 mov             r12, r4, lsr #8                                  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                                  and             r12, r12, #255
                                 ldr             r12, [r11, r12, lsl #2]                                  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                                  add             r5, r5, r12
                                 mov             r12, r4, lsr #16                                  and             r4, r9, #255
                                 and             r12, r12, #255                                  mov             r12, r9 lsr #8
                                 ldr             r12, [r11, r12, lsl #2]                                  ldr             r4, [r11, r4 lsl #2]
                                 add             r6, r6, r12                                  ldr             r12, [r11, r12 lsl #2]
                                 mov             r12, r4, lsr #24  
                                 ldr             r12, [r11, r12, lsl #2]  
                                 add             r6, r6, r12  
                                 and             r5, r5, lr                                  and             r5, r5, lr
                                 mov             r12, r5, lsr #2                                  add             r6, r6, r4
                                 add             r12, r12, r5, lsr #18                                  add             r6, r6, r12
                                 strh    r12, [r9], r3  
                                 and             r6, r6, lr                                  and             r6, r6, lr
                                 mov             r12, r6, lsr #2                                  mov             r9, r5 lsr #2
                                 add             r12, r12, r6, lsr #18                                  add             r9, r9, r5 lsr #18
                                 strh    r12, [r9], r3                                  mov             r12, r6 lsr #2
                                 add             r2, r2, #4                                  add             r12, r12, r6 lsr #18
                                   strh    r9, [r8], r3
                                   strh    r12, [r8], r3
                                 cmp             r2, r10                                  cmp             r2, r10
                                   ldrcc   r9, [r2, r7]
                                 bcc             putxlp_1                                  bcc             putxlp_1
                                 ldr             r4, [r0, #(S_Y - S_DIRTY)]                                  ldr             r4, [r0, #S_Y]
                                 ldr             r5, [r0, #(S_YALIGN - S_DIRTY)]                                  ldr             r5, [r0, #S_YALIGN]
                                   ldr             r8, [r0, #S_DST]
 putyed_1                add             r4, r4, #2  putyed_1                add             r4, r4, #2
                                 add             r7, r7, #(SURFACE_WIDTH * 2)                                  add             r7, r7, #(SURFACE_WIDTH * 2)
                                 add             r8, r8, r5                                  add             r8, r8, r5
                                 cmp             r4, r1                                  cmp             r4, r1
                                   ldrcch  r12, [r4, r0]
                                 bcc             putylp_1                                  bcc             putylp_1
                                 str             r7, [r0, #(S_SRC - S_DIRTY)]                                  str             r7, [r0, #S_SRC]
                                 str             r8, [r0, #(S_DST - S_DIRTY)]                                  str             r8, [r0, #S_DST]
                                 str             r4, [r0, #(S_Y - S_DIRTY)]                                  str             r4, [r0, #S_Y]
                                 ldmia   sp!, {r4 - r11, pc}                                  ldmia   sp!, {r4 - r11, pc}
 pal16_1                 dcd             (np2_pal16 + (NP2PAL_GRPH * 4))  pal16_1                 dcd             (np2_pal16 + (NP2PAL_GRPH * 4))
 pmask_1                 dcd             (&07e0f81f << 2)  pmask_1                 dcd             (&07e0f81f << 2)
   
 qvga16p_2               stmdb   sp!, {r4 - r11, lr}  qvga16p_2               stmdb   sp!, {r4 - r11, lr}
                                   add             r0, r0, #S_HDRSIZE
                                 ldr             r11, pal16_2                                  ldr             r11, pal16_2
                                 ldr             lr, pmask_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             r7, [r0, #S_SRC]
                                 ldr             r8, [r0, #S_SRC2]                                  ldr             r8, [r0, #S_SRC2]
                                   ldr             r12, [r4, r0]
                                 ldr             r9, [r0, #S_DST]                                  ldr             r9, [r0, #S_DST]
                                 ldr             r10, [r0, #S_WIDTH]                                  ldr             r10, [r0, #S_WIDTH]
                                 ldr             r3, [r0, #S_XALIGN]  putylp_2                cmp             r12, #0
                                 ldr             r4, [r0, #S_Y]  
                                 ldr             r5, [r0, #S_YALIGN]  
                                 add             r0, r0, #S_DIRTY  
 putylp_2                ldrh    r12, [r0, r4]  
                                 cmp             r12, #0  
                                 beq             putyed_2                                  beq             putyed_2
                                 str             r9, [r0, #(S_DST - S_DIRTY)]                                  str             r9, [r0, #S_DST]
                                 str             r4, [r0, #(S_Y - S_DIRTY)]                                  str             r4, [r0, #S_Y]
                                   ldr             r4, [r7]                        ; r2 = 0
                                   ldr             r12, [r8]                       ; r2 = 0
                                 mov             r2, #0                                  mov             r2, #0
 putxlp_2                ldr             r4, [r7, r2]                                  str             r1, [sp, #-4]!
                                 ldr             r12, [r8, r2]  putxlp_2                add             r4, r12, r4
                                 add             r4, r4, r12                                  and             r5, r4, #255
                                 and             r12, r4, #255                                  mov             r12, r4 lsr #8
                                 ldr             r5, [r11, r12, lsl #2]                                  and             r12, r12, #255
                                 mov             r12, r4, lsr #8                                  ldr             r5, [r11, r5 lsl #2]
                                 and             r12, r12, #255                                  ldr             r12, [r11, r12 lsl #2]
                                 ldr             r12, [r11, r12, lsl #2]                                  mov             r6, r4 lsr #16
                                 add             r5, r5, r12                                  and             r6, r6, #255
                                 mov             r12, r4, lsr #16                                  add             r5, r12, r5
                                 and             r12, r12, #255                                  mov             r12, r4 lsr #24
                                 ldr             r6, [r11, r12, lsl #2]                                  ldr             r6, [r11, r6 lsl #2]
                                 mov             r12, r4, lsr #24                                  ldr             r12, [r11, r12 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             r6, r6, r12
                                 add             r12, r2, #SURFACE_WIDTH                                  add             r4, r1, r4
                                 ldr             r4, [r7, r12]                                  and             r1, r4, #255
                                 ldr             r12, [r8, r12]                                  mov             r12, r4 lsr #8
                                 add             r4, r4, r12                                  and             r12, r12, #255
                                 and             r12, r4, #255                                  ldr             r1, [r11, r1 lsl #2]
                                 ldr             r12, [r11, r12, lsl #2]                                  ldr             r12, [r11, r12 lsl #2]
                                 add             r5, r5, r12                                  mov             r4, r4 lsr #16
                                 mov             r12, r4, lsr #8                                  add             r5, r5, r1
                                 and             r12, r12, #255  
                                 ldr             r12, [r11, r12, lsl #2]  
                                 add             r5, r5, r12                                  add             r5, r5, r12
                                 mov             r12, r4, lsr #16                                  and             r1, r4, #255
                                 and             r12, r12, #255                                  mov             r12, r4 lsr #8
                                 ldr             r12, [r11, r12, lsl #2]                                  ldr             r1, [r11, r1 lsl #2]
                                 add             r6, r6, r12                                  ldr             r12, [r11, r12 lsl #2]
                                 mov             r12, r4, lsr #24  
                                 ldr             r12, [r11, r12, lsl #2]  
                                 add             r6, r6, r12  
                                 and             r5, r5, lr                                  and             r5, r5, lr
                                 mov             r12, r5, lsr #2                                  add             r6, r6, r1
                                 add             r12, r12, r5, lsr #18                                  add             r6, r6, r12
                                 strh    r12, [r9], r3  
                                 and             r6, r6, lr                                  and             r6, r6, lr
                                 mov             r12, r6, lsr #2                                  mov             r4, r5 lsr #2
                                 add             r12, r12, r6, lsr #18                                  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                                  strh    r12, [r9], r3
                                 add             r2, r2, #4  
                                 cmp             r2, r10                                  cmp             r2, r10
                                   ldrcc   r4, [r2, r7]
                                   ldrcc   r12, [r2, r8]
                                 bcc             putxlp_2                                  bcc             putxlp_2
                                 ldr             r9, [r0, #(S_DST - S_DIRTY)]                                  ldr             r9, [r0, #S_DST]
                                 ldr             r4, [r0, #(S_Y - S_DIRTY)]                                  ldr             r4, [r0, #S_Y]
                                 ldr             r5, [r0, #(S_YALIGN - S_DIRTY)]                                  ldr             r5, [r0, #S_YALIGN]
                                   ldr             r1, [sp], #4
 putyed_2                add             r4, r4, #2  putyed_2                add             r4, r4, #2
                                 add             r7, r7, #(SURFACE_WIDTH * 2)                                  add             r7, r7, #(SURFACE_WIDTH * 2)
                                 add             r8, r8, #(SURFACE_WIDTH * 2)                                  add             r8, r8, #(SURFACE_WIDTH * 2)
                                 add             r9, r9, r5                                  add             r9, r9, r5
                                 cmp             r4, r1                                  cmp             r4, r1
                                   ldrcch  r12, [r4, r0]
                                 bcc             putylp_2                                  bcc             putylp_2
                                 str             r7, [r0, #(S_SRC - S_DIRTY)]                                  str             r7, [r0, #S_SRC]
                                 str             r8, [r0, #(S_SRC2 - S_DIRTY)]                                  str             r8, [r0, #S_SRC2]
                                 str             r9, [r0, #(S_DST - S_DIRTY)]                                  str             r9, [r0, #S_DST]
                                 str             r4, [r0, #(S_Y - S_DIRTY)]                                  str             r4, [r0, #S_Y]
                                 ldmia   sp!, {r4 - r11, pc}                                  ldmia   sp!, {r4 - r11, pc}
 pal16_2                 dcd             (np2_pal16 + (NP2PAL_GRPH * 4))  pal16_2                 dcd             (np2_pal16 + (NP2PAL_GRPH * 4))
 pmask_2                 dcd             (&07e0f81f << 2)  pmask_2                 dcd             (&07e0f81f << 2)
   
 qvga16p_gi              stmdb   sp!, {r4 - r11, lr}  qvga16p_gi              stmdb   sp!, {r4 - r11, lr}
                                   add             r0, r0, #S_HDRSIZE
                                 ldr             r11, pal16_gi                                  ldr             r11, pal16_gi
                                 ldr             lr, pmask_gi                                  ldr             lr, pmask_gi
                                 ldr             r7, [r0, #S_SRC]  
                                 ldr             r8, [r0, #S_DST]  
                                 ldr             r10, [r0, #S_WIDTH]  
                                 ldr             r3, [r0, #S_XALIGN]                                  ldr             r3, [r0, #S_XALIGN]
                                 ldr             r4, [r0, #S_Y]                                  ldr             r4, [r0, #S_Y]
                                 ldr             r5, [r0, #S_YALIGN]                                  ldr             r5, [r0, #S_YALIGN]
                                 add             r0, r0, #S_DIRTY                                  ldr             r7, [r0, #S_SRC]
 putylp_gi               ldrh    r12, [r0, r4]                                  ldrh    r12, [r4, r0]
                                 cmp             r12, #0                                  ldr             r8, [r0, #S_DST]
                                   ldr             r10, [r0, #S_WIDTH]
   putylp_gi               cmp             r12, #0
                                 beq             putyed_gi                                  beq             putyed_gi
                                 str             r4, [r0, #(S_Y - S_DIRTY)]                                  str             r4, [r0, #S_Y]
                                   ldr             r4, [r7]                        ; r2 = 0
                                 mov             r9, r8                                  mov             r9, r8
                                 mov             r2, #0                                  mov             r2, #0
 putxlp_gi               ldr             r4, [r7, r2]  putxlp_gi               and             r5, r4, #255
                                 and             r12, r4, #255                                  mov             r12, r4 lsr #8
                                 ldr             r5, [r11, r12, lsl #2]  
                                 mov             r12, r4, lsr #8  
                                 and             r12, r12, #255                                  and             r12, r12, #255
                                 ldr             r12, [r11, r12, lsl #2]                                  ldr             r5, [r11, r5 lsl #2]
                                 add             r5, r5, r12                                  ldr             r12, [r11, r12 lsl #2]
                                 mov             r12, r4, lsr #16                                  mov             r6, r4 lsr #16
                                 and             r12, r12, #255                                  and             r6, r6, #255
                                 ldr             r6, [r11, r12, lsl #2]                                  add             r5, r12, r5
                                 mov             r12, r4, lsr #24                                  mov             r12, r4 lsr #24
                                 ldr             r12, [r11, r12, lsl #2]                                  ldr             r6, [r11, r6 lsl #2]
                                 add             r6, r6, r12                                  ldr             r12, [r11, r12 lsl #2]
                                 and             r5, r5, lr                                  and             r5, r5, lr
                                 mov             r12, r5, lsr #1  
                                 add             r12, r12, r5, lsr #17  
                                 strh    r12, [r9], r3  
                                 and             r6, r6, lr  
                                 mov             r12, r6, lsr #1  
                                 add             r12, r12, r6, lsr #17  
                                 strh    r12, [r9], r3  
                                 add             r2, r2, #4                                  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                                  cmp             r2, r10
                                   strh    r12, [r9], r3
                                   ldrcc   r4, [r2, r7]
                                 bcc             putxlp_gi                                  bcc             putxlp_gi
                                 ldr             r4, [r0, #(S_Y - S_DIRTY)]                                  ldr             r4, [r0, #S_Y]
                                 ldr             r5, [r0, #(S_YALIGN - S_DIRTY)]                                  ldr             r5, [r0, #S_YALIGN]
 putyed_gi               add             r4, r4, #2  putyed_gi               add             r4, r4, #2
                                 add             r7, r7, #(SURFACE_WIDTH * 2)                                  add             r7, r7, #(SURFACE_WIDTH * 2)
                                 add             r8, r8, r5                                  add             r8, r8, r5
                                 cmp             r4, r1                                  cmp             r4, r1
                                   ldrcch  r12, [r4, r0]
                                 bcc             putylp_gi                                  bcc             putylp_gi
                                 str             r7, [r0, #(S_SRC - S_DIRTY)]                                  str             r7, [r0, #S_SRC]
                                 str             r8, [r0, #(S_DST - S_DIRTY)]                                  str             r8, [r0, #S_DST]
                                 str             r4, [r0, #(S_Y - S_DIRTY)]                                  str             r4, [r0, #S_Y]
                                 ldmia   sp!, {r4 - r11, pc}                                  ldmia   sp!, {r4 - r11, pc}
 pal16_gi                dcd             (np2_pal16 + (NP2PAL_GRPH * 4))  pal16_gi                dcd             (np2_pal16 + (NP2PAL_GRPH * 4))
 pmask_gi                dcd             (&07e0f81f << 1)  pmask_gi                dcd             (&07e0f81f << 1)
   
 qvga16p_2i              stmdb   sp!, {r4 - r11, lr}  qvga16p_2i              stmdb   sp!, {r4 - r11, lr}
                                   add             r0, r0, #S_HDRSIZE
                                 ldr             r11, pal16_2i                                  ldr             r11, pal16_2i
                                 ldr             lr, pmask_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             r7, [r0, #S_SRC]
                                 ldr             r8, [r0, #S_SRC2]                                  ldr             r8, [r0, #S_SRC2]
                                   ldrh    r12, [r0, r4]
                                 ldr             r9, [r0, #S_DST]                                  ldr             r9, [r0, #S_DST]
                                 ldr             r10, [r0, #S_WIDTH]                                  ldr             r10, [r0, #S_WIDTH]
                                 ldr             r3, [r0, #S_XALIGN]  putylp_2i               cmp             r12, #0
                                 ldr             r4, [r0, #S_Y]  
                                 ldr             r5, [r0, #S_YALIGN]  
                                 add             r0, r0, #S_DIRTY  
 putylp_2i               ldrh    r12, [r0, r4]  
                                 cmp             r12, #0  
                                 beq             putyed_2i                                  beq             putyed_2i
                                 str             r9, [r0, #(S_DST - S_DIRTY)]                                  str             r9, [r0, #S_DST]
                                 str             r4, [r0, #(S_Y - S_DIRTY)]                                  str             r4, [r0, #S_Y]
                                   ldr             r6, [r8, #SURFACE_WIDTH]
                                 mov             r2, #0                                  mov             r2, #0
 putxlp_2i               add             r6, r2, #SURFACE_WIDTH                                  str             r1, [sp, #-4]!
                                 ldr             r4, [r7, r2]  putxlp_2i               ldr             r4, [r7, r2]
                                 ldr             r6, [r8, r6]  
                                 ands    r12, r6, #(&f0 << 0)                                  ands    r12, r6, #(&f0 << 0)
                                         movne   r12, r12, lsr #4  
                                         addne   r12, r12, #(NP2PAL_TEXT - NP2PAL_GRPH)  
                                         andeq   r12, r4, #255                                          andeq   r12, r4, #255
                                 ldr             r5, [r11, r12, lsl #2]                                          movne   r12, r12 lsr #4
                                 ands    r12, r6, #(&f0 << 8)  
                                         movne   r12, r12, lsr #12  
                                         addne   r12, r12, #(NP2PAL_TEXT - NP2PAL_GRPH)                                          addne   r12, r12, #(NP2PAL_TEXT - NP2PAL_GRPH)
                                         moveq   r12, r4, lsr #8                                  ldr             r5, [r11, r12 lsl #2]
                                   ands    r12, r6, #(&f0 << 8)
                                           moveq   r12, r4 lsr #8
                                         andeq   r12, r12, #255                                          andeq   r12, r12, #255
                                 ldr             r12, [r11, r12, lsl #2]                                          movne   r12, r12 lsr #12
                                 add             r5, r5, r12  
                                 ands    r12, r6, #(&f0 << 16)  
                                         movne   r12, r12, lsr #20  
                                         addne   r12, r12, #(NP2PAL_TEXT - NP2PAL_GRPH)                                          addne   r12, r12, #(NP2PAL_TEXT - NP2PAL_GRPH)
                                         moveq   r12, r4, lsr #16                                  ldr             r1, [r11, r12 lsl #2]
                                   ands    r12, r6, #(&f0 << 16)
                                           moveq   r12, r4 lsr #16
                                         andeq   r12, r12, #255                                          andeq   r12, r12, #255
                                 ldr             r12, [r11, r12, lsl #2]                                          movne   r12, r12 lsr #20
                                 movs    r6, r6, lsr #28                                          addne   r12, r12, #(NP2PAL_TEXT - NP2PAL_GRPH)
                                   movs    r6, r6 lsr #28
                                           moveq   r6, r4 lsr #24
                                         addne   r6, r6, #(NP2PAL_TEXT - NP2PAL_GRPH)                                          addne   r6, r6, #(NP2PAL_TEXT - NP2PAL_GRPH)
                                         moveq   r6, r4, lsr #24                                  ldr             r12, [r11, r12 lsl #2]
                                 ldr             r6, [r11, r6, lsl #2]                                  ldr             r6, [r11, r6 lsl #2]
                                 add             r6, r6, r12                                  add             r5, r5, r1
                                   ldr             r1, [r8, r2]
                 ;;              ldr             r4, [r7, r2]                  ;;              ldr             r4, [r7, r2]
                                 ldr             r12, [r8, r2]                                  add             r6, r6, r12
                                 add             r4, r4, r12                                  add             r4, r1, r4
                                 and             r12, r4, #255                                  and             r1, r4, #255
                                 ldr             r12, [r11, r12, lsl #2]                                  mov             r12, r4 lsr #8
                                 add             r5, r5, r12  
                                 mov             r12, r4, lsr #8  
                                 and             r12, r12, #255                                  and             r12, r12, #255
                                 ldr             r12, [r11, r12, lsl #2]                                  ldr             r1, [r11, r1 lsl #2]
                                   ldr             r12, [r11, r12 lsl #2]
                                   add             r2, r2, #4
                                   add             r5, r5, r1
                                 add             r5, r5, r12                                  add             r5, r5, r12
                                 mov             r12, r4, lsr #16                                  mov             r12, r4 lsr #16
                                 and             r12, r12, #255                                  and             r12, r12, #255
                                 ldr             r12, [r11, r12, lsl #2]                                  mov             r4, r4 lsr #24
                                 add             r6, r6, r12                                  ldr             r12, [r11, r12 lsl #2]
                                 mov             r12, r4, lsr #24                                  ldr             r4, [r11, r4 lsl #2]
                                 ldr             r12, [r11, r12, lsl #2]  
                                 add             r6, r6, r12  
                                 and             r5, r5, lr                                  and             r5, r5, lr
                                 mov             r12, r5, lsr #2                                  add             r6, r6, r12
                                 add             r12, r12, r5, lsr #18                                  add             r6, r6, r4
                                 strh    r12, [r9], r3  
                                 and             r6, r6, lr                                  and             r6, r6, lr
                                 mov             r12, r6, lsr #2                                  mov             r12, r5 lsr #2
                                 add             r12, r12, r6, lsr #18                                  orr             r12, r12, r5 lsr #18
                                 strh    r12, [r9], r3                                  strh    r12, [r9], r3
                                 add             r2, r2, #4                                  mov             r12, r6 lsr #2
                                   orr             r12, r12, r6 lsr #18
                                   strh    r12, [r9], r3
                                   add             r6, r2, #SURFACE_WIDTH
                                 cmp             r2, r10                                  cmp             r2, r10
                                   ldrcc   r6, [r6, r8]
                                 bcc             putxlp_2i                                  bcc             putxlp_2i
                                 ldr             r9, [r0, #(S_DST - S_DIRTY)]                                  ldr             r1, [sp], #4
                                 ldr             r4, [r0, #(S_Y - S_DIRTY)]                                  ldr             r9, [r0, #S_DST]
                                 ldr             r5, [r0, #(S_YALIGN - S_DIRTY)]                                  ldr             r4, [r0, #S_Y]
                                   ldr             r5, [r0, #S_YALIGN]
 putyed_2i               add             r4, r4, #2  putyed_2i               add             r4, r4, #2
                                 add             r7, r7, #(SURFACE_WIDTH * 2)                                  add             r7, r7, #(SURFACE_WIDTH * 2)
                                 add             r8, r8, #(SURFACE_WIDTH * 2)                                  add             r8, r8, #(SURFACE_WIDTH * 2)
                                 add             r9, r9, r5                                  add             r9, r9, r5
                                 cmp             r4, r1                                  cmp             r4, r1
                                   ldrcch  r12, [r4, r0]
                                 bcc             putylp_2i                                  bcc             putylp_2i
                                 str             r7, [r0, #(S_SRC - S_DIRTY)]                                  str             r7, [r0, #S_SRC]
                                 str             r8, [r0, #(S_SRC2 - S_DIRTY)]                                  str             r8, [r0, #S_SRC2]
                                 str             r9, [r0, #(S_DST - S_DIRTY)]                                  str             r9, [r0, #S_DST]
                                 str             r4, [r0, #(S_Y - S_DIRTY)]                                  str             r4, [r0, #S_Y]
                                 ldmia   sp!, {r4 - r11, pc}                                  ldmia   sp!, {r4 - r11, pc}
 pal16_2i                dcd             (np2_pal16 + (NP2PAL_GRPH * 4))  pal16_2i                dcd             (np2_pal16 + (NP2PAL_GRPH * 4))
 pmask_2i                dcd             (&07e0f81f << 2)  pmask_2i                dcd             (&07e0f81f << 2)

Removed from v.1.1  
changed lines
  Added in v.1.3


RetroPC.NET-CVS <cvs@retropc.net>