initial upstream import
[drnoksnes] / gfx_gp2x.s
1
2         .global SnesScreenClear32
3         .global SnesScreenClear8
4
5 SnesScreenClear32:
6         ;@ r0 = pointer to screen
7         ;@ r1 = number of lines to update
8         ;@ r2 = colour
9         
10         stmfd sp!,{r4-r9,lr}
11         mov r3,r2 ;@ copy the back colour to 7 other regs
12         mov r4,r2
13         mov r5,r2
14         mov r6,r2
15         mov r7,r2
16         mov r8,r2
17         mov r9,r2
18 1:
19         stmia r0!,{r2-r9} ;@ now store 8*2 pixels in 1 opcode
20         stmia r0!,{r2-r9} ;@ do this 16 times, which equals 256 pixels
21         stmia r0!,{r2-r9} ;@ which is the length of a snes rendered line on the GP2X
22         stmia r0!,{r2-r9}
23         stmia r0!,{r2-r9}
24         stmia r0!,{r2-r9}
25         stmia r0!,{r2-r9}
26         stmia r0!,{r2-r9}
27         stmia r0!,{r2-r9}
28         stmia r0!,{r2-r9}
29         stmia r0!,{r2-r9}
30         stmia r0!,{r2-r9}
31         stmia r0!,{r2-r9}
32         stmia r0!,{r2-r9}
33         stmia r0!,{r2-r9}
34         stmia r0!,{r2-r9}
35         
36         subs r1,r1,#1
37         ;@ if we need to loop again, then push screen pointer to start of next line
38         addne r0,r0,#640-(256*2)  ;@  RealPitch(640) - 
39         bne 1b
40         ldmfd sp!,{r4-r9,pc}
41         
42 SnesScreenClear8:       
43         ;@ r0 = pointer to screen
44         ;@ r1 = number of lines to update
45         ;@ r2 = colour
46         
47         stmfd sp!,{r4-r9,lr}
48         mov r3,r2 ;@ copy the back colour to 7 other regs
49         mov r4,r2
50         mov r5,r2
51         mov r6,r2
52         mov r7,r2
53         mov r8,r2
54         mov r9,r2
55 1:
56         stmia r0!,{r2-r9} ;@ now store 8*2 pixels in 1 opcode
57         stmia r0!,{r2-r9} ;@ do this 8 times, which equals 256 8bit pixels
58         stmia r0!,{r2-r9} ;@ which is the length of a snes rendered line on the GP2X
59         stmia r0!,{r2-r9}
60         stmia r0!,{r2-r9}
61         stmia r0!,{r2-r9}
62         stmia r0!,{r2-r9}
63         stmia r0!,{r2-r9}
64
65         
66         subs r1,r1,#1
67         ;@ if we need to loop again, then push screen pointer to start of next line
68         addne r0,r0,#320-256  ;@  ZPitch(320) - 
69         bne 1b
70         ldmfd sp!,{r4-r9,pc}
71         
72