Subversion Repositories freemyipod

Rev

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

Rev 2 Rev 7
Line 28... Line 28...
28
renderbmp:
28
renderbmp:
29
	ldrh	r2, [r1]
29
	ldrh	r2, [r1]
30
	sub	r2, r2, #0x4d00
30
	sub	r2, r2, #0x4d00
31
	subs	r2, r2, #0x42
31
	subs	r2, r2, #0x42
32
	movne	pc, lr
32
	movne	pc, lr
33
	str	lr, [sp,#-4]
33
	stmfd	sp!, {r4,lr}
34
	ldrh	r2, [r1,#18]
34
	ldrh	r2, [r1,#18]
35
	ldrh	r12, [r1,#20]
35
	ldrh	r12, [r1,#20]
36
	orr	r2, r2, r12,lsl#16
36
	orr	r2, r2, r12,lsl#16
37
	ldrh	r3, [r1,#22]
37
	ldrh	r4, [r1,#22]
38
	ldrh	r12, [r1,#24]
38
	ldrh	r12, [r1,#24]
39
	orr	r3, r3, r12,lsl#16
39
	orr	r4, r4, r12,lsl#16
40
	ldrh	lr, [r1,#10]
40
	ldrh	lr, [r1,#10]
41
	ldrh	r12, [r1,#12]
41
	ldrh	r12, [r1,#12]
42
	orr	lr, lr, r12,lsl#16
42
	orr	lr, lr, r12,lsl#16
43
	add	r1, r1, lr
43
	add	r1, r1, lr
44
	mov	r12, #352
44
	mov	r12, #352
45
	mul	lr, r12, r3
45
	mul	lr, r12, r4
46
	add	r0, r0, lr
46
	add	r0, r0, lr
47
renderbmp_row:
47
renderbmp_row:
48
	mov	r12, r2
48
	mov	r12, r2
49
	sub	r0, r0, #352
49
	sub	r0, r0, r3
50
renderbmp_pixel:
50
renderbmp_pixel:
51
	ldrb	lr, [r1,#1]
51
	ldrb	lr, [r1,#1]
52
	strb	lr, [r0], #1
52
	strb	lr, [r0], #1
53
	ldrb	lr, [r1], #2
53
	ldrb	lr, [r1], #2
54
	strb	lr, [r0], #1
54
	strb	lr, [r0], #1
55
	subs	r12, r12, #1
55
	subs	r12, r12, #1
56
	bne	renderbmp_pixel
56
	bne	renderbmp_pixel
57
	tst	r2, #1
57
	tst	r2, #1
58
	addne	r1, r1, #2
58
	addne	r1, r1, #2
59
	sub	r0, r0, r2,lsl#1
59
	sub	r0, r0, r2,lsl#1
60
	subs	r3, r3, #1
60
	subs	r4, r4, #1
61
	bne	renderbmp_row
61
	bne	renderbmp_row
62
	ldr	pc, [sp,#-4]
62
	ldmfd	sp!, {r4,pc}
63
.size renderbmp, .-renderbmp
63
.size renderbmp, .-renderbmp
64
 
64
 
65
 
65
 
66
.section .icode.renderchar, "ax", %progbits
66
.section .icode.renderchar, "ax", %progbits
67
.align 2
67
.align 2
68
.global renderchar
68
.global renderchar
69
.type renderchar, %function
69
.type renderchar, %function
70
renderchar:
70
renderchar:
71
	stmfd	sp!, {r4-r6,lr}
71
	stmfd	sp!, {r4-r7,lr}
-
 
72
	ldr	r7, [sp,#0x14]
72
	cmn	r2, #1
73
	cmn	r2, #1
73
	beq	renderchar_nobg
74
	beq	renderchar_nobg
74
	mov	r6, r0
75
	mov	r6, r0
75
	mov	r4, #8
76
	mov	r4, #8
76
	mov	lr, r2,lsr#16
77
	mov	lr, r2,lsr#16
Line 90... Line 91...
90
	bic	lr, lr, #0x84
91
	bic	lr, lr, #0x84
91
	add	lr, lr, r12
92
	add	lr, lr, r12
92
	strh	lr, [r6], #2
93
	strh	lr, [r6], #2
93
	subs	r5, r5, #1
94
	subs	r5, r5, #1
94
	bne	renderchar_blendcol
95
	bne	renderchar_blendcol
95
	add	r6, r6, #340
96
	add	r6, r6, r7
-
 
97
	sub	r6, r6, #12
96
	subs	r4, r4, #1
98
	subs	r4, r4, #1
97
	bne	renderchar_blendrow
99
	bne	renderchar_blendrow
98
	b	renderchar_nobg
100
	b	renderchar_nobg
99
renderchar_opaquerow:
101
renderchar_opaquerow:
100
	mov	r5, #6
102
	mov	r5, #6
101
renderchar_opaquecol:
103
renderchar_opaquecol:
102
	strh	r2, [r6], #2
104
	strh	r2, [r6], #2
103
	subs	r5, r5, #1
105
	subs	r5, r5, #1
104
	bne	renderchar_opaquecol
106
	bne	renderchar_opaquecol
105
	add	r6, r6, #340
107
	add	r6, r6, r7
-
 
108
	sub	r6, r6, #12
106
	subs	r4, r4, #1
109
	subs	r4, r4, #1
107
	bne	renderchar_opaquerow
110
	bne	renderchar_opaquerow
108
renderchar_nobg:
111
renderchar_nobg:
109
	adr	r5, renderchar_font
112
	adr	r5, renderchar_font
110
	sub	r3, r3, #0x20
113
	sub	r3, r3, #0x20
Line 116... Line 119...
116
	mov	r6, r0
119
	mov	r6, r0
117
	ldrb	r4, [r5], #1
120
	ldrb	r4, [r5], #1
118
renderchar_row:
121
renderchar_row:
119
	tst	r4, #1
122
	tst	r4, #1
120
	strneh	r1, [r6]
123
	strneh	r1, [r6]
121
	add	r6, r6, #352
124
	add	r6, r6, r7
122
	movs	r4, r4,lsr#1
125
	movs	r4, r4,lsr#1
123
	bne	renderchar_row
126
	bne	renderchar_row
124
	add	r0, r0, #2
127
	add	r0, r0, #2
125
	subs	r3, r3, #1
128
	subs	r3, r3, #1
126
	bne	renderchar_col
129
	bne	renderchar_col
127
	add	r0, r0, #2
130
	add	r0, r0, #2
128
	ldmfd	sp!, {r4-r6,pc}
131
	ldmfd	sp!, {r4-r7,pc}
129
 
132
 
130
renderchar_font:
133
renderchar_font:
131
	.byte 0, 0, 0, 0, 0
134
	.byte 0, 0, 0, 0, 0
132
	.byte 0, 0, 95, 0, 0
135
	.byte 0, 0, 95, 0, 0
133
	.byte 0, 7, 0, 7, 0
136
	.byte 0, 7, 0, 7, 0