Subversion Repositories freemyipod

Rev

Rev 242 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 242 Rev 515
Line 23... Line 23...
23
 
23
 
24
#define ASM_FILE
24
#define ASM_FILE
25
#include "global.h"
25
#include "global.h"
26
 
26
 
27
 
27
 
28
.section .icode.get_font_width, "ax", %progbits
-
 
29
.align 2
-
 
30
.global get_font_width
-
 
31
.type get_font_width, %function
-
 
32
get_font_width:
-
 
33
	mov	r0, #6
-
 
34
	mov	pc, lr
-
 
35
.size get_font_width, .-get_font_width
-
 
36
 
-
 
37
 
-
 
38
.section .icode.get_font_height, "ax", %progbits
-
 
39
.align 2
-
 
40
.global get_font_height
-
 
41
.type get_font_height, %function
-
 
42
get_font_height:
-
 
43
	mov	r0, #8
-
 
44
	mov	pc, lr
-
 
45
.size get_font_height, .-get_font_height
-
 
46
 
-
 
47
 
-
 
48
.section .icode.rendertext, "ax", %progbits
28
.section .icode.rendertext, "ax", %progbits
49
.align 2
29
.align 2
50
.global rendertext
30
.global rendertext
51
.type rendertext, %function
31
.type rendertext, %function
52
rendertext:
32
rendertext:
Line 67... Line 47...
67
rendertext_done:
47
rendertext_done:
68
	ldmfd	sp!, {r0-r5,pc}
48
	ldmfd	sp!, {r0-r5,pc}
69
.size rendertext, .-rendertext
49
.size rendertext, .-rendertext
70
 
50
 
71
 
51
 
72
.section .icode.renderfillrect, "ax", %progbits
-
 
73
.align 2
-
 
74
.global renderfillrect
-
 
75
.type renderfillrect, %function
-
 
76
renderfillrect:
-
 
77
	ldr	r12, [sp,#8]
-
 
78
	mla	r1, r12, r2, r1
-
 
79
#if (LCD_BYTESPERPIXEL == 1)
-
 
80
	add	r0, r0, r1
-
 
81
#elif (LCD_BYTESPERPIXEL == 2)
-
 
82
	add	r0, r0, r1,lsl#1
-
 
83
#elif (LCD_BYTESPERPIXEL == 4)
-
 
84
	add	r0, r0, r1,lsl#2
-
 
85
#else
-
 
86
#error Unknown number of bytes per pixel!
-
 
87
#endif
-
 
88
	ldmfd	sp, {r1,r2}
-
 
89
renderfillrect_y:
-
 
90
	cmp	r1, #0
-
 
91
	moveq	pc, lr
-
 
92
	sub	r1, r1, #1
-
 
93
	mov	r12, r3
-
 
94
renderfillrect_x:
-
 
95
	cmp	r12, #0
-
 
96
	beq	renderfillrect_y
-
 
97
	sub	r12, r12, #1
-
 
98
#if (LCD_BYTESPERPIXEL == 1)
-
 
99
	strb	r2, [r0], #1
-
 
100
#elif (LCD_BYTESPERPIXEL == 2)
-
 
101
	strh	r2, [r0], #2
-
 
102
#elif (LCD_BYTESPERPIXEL == 4)
-
 
103
	str	r2, [r0], #4
-
 
104
#else
-
 
105
#error Unknown number of bytes per pixel!
-
 
106
#endif
-
 
107
	b	renderfillrect_x
-
 
108
.size renderfillrect, .-renderfillrect
-
 
109
 
-
 
110
 
-
 
111
#if (LCD_BYTESPERPIXEL == 2)
52
#if (LCD_BYTESPERPIXEL == 2)
112
.section .icode.renderbmp, "ax", %progbits
-
 
113
.align 2
-
 
114
.global renderbmp
-
 
115
.type renderbmp, %function
-
 
116
renderbmp:
-
 
117
	mov	r2, r2,lsl#1
-
 
118
	ldrh	r3, [r1]
-
 
119
	sub	r3, r3, #0x4d00
-
 
120
	subs	r3, r3, #0x42
-
 
121
	movne	pc, lr
-
 
122
	stmfd	sp!, {r4,lr}
-
 
123
	ldrh	r4, [r1,#18]
-
 
124
	ldrh	r12, [r1,#20]
-
 
125
	orr	r4, r4, r12,lsl#16
-
 
126
	ldrh	r3, [r1,#22]
-
 
127
	ldrh	r12, [r1,#24]
-
 
128
	orr	r3, r3, r12,lsl#16
-
 
129
	ldrh	lr, [r1,#10]
-
 
130
	ldrh	r12, [r1,#12]
-
 
131
	orr	lr, lr, r12,lsl#16
-
 
132
	add	r1, r1, lr
-
 
133
	mul	lr, r2, r3
-
 
134
	add	r0, r0, lr
-
 
135
renderbmp_row:
-
 
136
	mov	r12, r4
-
 
137
	sub	r0, r0, r2
-
 
138
renderbmp_pixel:
-
 
139
	ldrb	lr, [r1,#1]
-
 
140
	strb	lr, [r0], #1
-
 
141
	ldrb	lr, [r1], #2
-
 
142
	strb	lr, [r0], #1
-
 
143
	subs	r12, r12, #1
-
 
144
	bne	renderbmp_pixel
-
 
145
	tst	r4, #1
-
 
146
	addne	r1, r1, #2
-
 
147
	sub	r0, r0, r4,lsl#1
-
 
148
	subs	r3, r3, #1
-
 
149
	bne	renderbmp_row
-
 
150
	ldmfd	sp!, {r4,pc}
-
 
151
.size renderbmp, .-renderbmp
-
 
152
 
-
 
153
 
-
 
154
.section .icode.renderchar, "ax", %progbits
53
.section .icode.renderchar, "ax", %progbits
155
.align 2
54
.align 2
156
.global renderchar
55
.global renderchar
157
.type renderchar, %function
56
.type renderchar, %function
158
renderchar:
57
renderchar: