4 .global vidCpy8to16 @ void *dest, void *src, short *pal, int lines|(is32col<<8)
12 orr r3, r3, r3, lsl #8
13 orreq r3, r3, #(320/8-1)<<24 @ 40 col mode
14 orrne r3, r3, #(256/8-1)<<24 @ 32 col mode
15 orrne r3, r3, #0x10000
26 and r4, lr, r12,lsl #1
28 and r5, lr, r12,lsr #7
30 and r6, lr, r12,lsr #15
32 orr r4, r4, r5, lsl #16
34 and r5, lr, r12,lsr #23
36 and r8, lr, r7, lsl #1
38 orr r5, r6, r5, lsl #16
40 and r6, lr, r7, lsr #7
42 and r12,lr, r7, lsr #15
44 and r7, lr, r7, lsr #23
46 orr r8, r8, r6, lsl #16
49 orr r12,r12, r7, lsl #16
51 stmia r0!, {r4,r5,r8,r12}
55 add r1, r1, #336 @ skip a line and 1 col
56 addne r1, r1, #64 @ skip more for 32col mode
57 add r0, r0, #(320+2)*2
59 addeq r3, r3, #(320/8)<<24
60 addne r3, r3, #(256/8)<<24
66 orr r3, r3, r4, lsr #8
84 and r6, lr, r12, lsl #1
86 and r5, lr, r12, lsr #7
88 orr r4, r8, r6, lsl #16
90 and r6, lr, r12, lsr #15
92 and r8, lr, r12, lsr #23
94 orr r5, r5, r6, lsl #16
96 and r6, lr, r7, lsl #1
98 and r12,lr, r7, lsr #7
100 orr r6, r8, r6, lsl #16
102 and r8, lr, r7, lsr #15
106 and r7, lr, r7, lsr #23
107 orr r12,r12,r8, lsl #16
111 stmia r0!, {r4,r5,r6,r12}
118 add r1, r1, #336 @ skip a line and 1 col
119 addne r1, r1, #64 @ skip more for 32col mode
120 add r0, r0, #(320+2)*2
122 addeq r3, r3, #(320/8)<<24
123 addne r3, r3, #(256/8)<<24
128 ldmfd sp!, {r4-r8,lr}