⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blit.s

📁 symbian 的一个 二维飞行游戏 源码 及相关技术文章
💻 S
字号:
@@  Copyright 2002 Kenneth Guy,
@@  
        	.global	BlitAsm__4CMap
BlitAsm__4CMap:
        stmfd sp!, {r0-r12,lr}
        @@  r0 CMap*
        @@     - offset 0  vtable
        @@     - offset 4    const TInt16* iMapData;
        @@     - offset 8    TUint16* iMapDrawPoint;
        @@     - offset 12   TUint16* iDrawArea;
        @@     - offset 16   TUint16* iDrawEnd;
        @@     - offset 20   TUint16* iScreenBase;
        @@     - offset 24   TUint16* iBlitStart;
        @@     - offset 28   const TUint16* iMapSprites;

        add     r0,r0,#16                
        ldmia   r0, {r1,r2,r3}  @ iDrawEnd,iScreenBase,iBlitStart

        mov     r0,#200
        add     r2,r2,#128       @  skip status area
        add     r3,r3,#64       @  skip left offscreen area
        sub     r1,r1,#1408     @ last line is a special case
blitLoop:
        cmp     r3,r1
        bge     overlap
        
        @  line of pixels from iBlitStart to iScreenBase
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r12,r14};stmia   r2!,{r4-r12,r14}
        ldmia   r3!,{r4-r11};stmia   r2!,{r4-r11}
        add     r3,r3,#256      @ skip extra sprite
overlapReturn:    
        add     r2,r2,#128       @ skip status area
        subs    r0,r0,#1
        bne     blitLoop
blitEnd:        
        ldmfd sp!, {r0-r12,lr}
	@ handle returning to thumb code
	bx      lr



overlap:
        add     r1,r1,#1408

        mov     r5,#1152
        cmp     r3,r1
        subge   r3,r3,#0x4D000  @ length of draw area
lastBits:
        ldr     r7,[r3],#4
        str     r7,[r2],#4
        cmp     r3,r1
        subge   r3,r3,#0x4D000  @ length of draw area
        subs    r5,r5,#4
        bne     lastBits

        add     r3,r3,#256      @ skip extra sprite
        cmp     r3,r1
        subge   r3,r3,#0x4D000  @ length of draw area

b       overlapReturn


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -