📄 blankarea.s
字号:
@@ Copyright 2002 Kenneth Guy,
@@
.global BlankAreaAsm__12RScreenUtilsPQ212RScreenUtils6TBlank
BlankAreaAsm__12RScreenUtilsPQ212RScreenUtils6TBlank:
@@ r0, TScreenUtils* this
@ 0 - iScreenBase
@@ r1, TBlankArea*
@@ offset - 0 TUint32 iColor;
@@ offset - 4 TUint32 iXSize;
@@ offset - 8 TUint32 iYSize;
@@ offset - 12 TUint32 iXPos;
@@ offset - 16 TUint32 iYPos;
@@ X is in 2 pixel blocks, (ie one 32bit word), so 0-319
@@ Y is 0-199
@@ save registers and return address on full declining stack
stmfd sp!, {r0-r12,lr}
ldr r0,[r0] @ r0 = iScreenBase
ldmia r1,{r2,r3,r4,r5,r6} @ iColor,iXSize,iYSize,iXPos,iYPos;
orr r2,r2,r2,lsl#16
add r0,r0,r6,lsl#10 @ add iYPos*1280 to iScreenBase
add r0,r0,r6,lsl#8
add r0,r0,r5,lsl#2 @ iXPos*4
mov r7,r0 @ remember start of pixel line;
mov r9,#0
blankAreaAreaLineLoop:
mov r1,r3
blankAreaAreaPixelLoop:
str r2,[r0],#4
subs r1,r1,#1
bne blankAreaAreaPixelLoop
add r7,r7,#1280
mov r0,r7
subs r4,r4,#1
bne blankAreaAreaLineLoop
ldmfd sp!, {r0-r12,lr}
bx lr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -