#define Pixel \ a=Bufw[0]; \ b=Bufw[64]; \ c=PALETTE[a&0xFF]; \ c+=PALETTE[(a>>8)&0xFF]; \ c+=PALETTE[b&0xFF]; \ c+=PALETTE[(b>>8)&0xFF]; \ Display_Data=((c>>2)&0x03)|((c>>4)&0x1C)|((c>>6)&0xE0); \ c=PALETTE[(a>>16)&0xFF]; \ c+=PALETTE[(a>>24)&0xFF]; \ c+=PALETTE[(b>>16)&0xFF]; \ c+=PALETTE[(b>>24)&0xFF]; \ Display_Data=((c>>2)&0x03)|((c>>4)&0x1C)|((c>>6)&0xE0); \ Bufw++; void BlitScreen(u8 *Buf) { u32 *Bufw=(u32*)Buf,a,b,c,y,x; for(y=0;y<120;y++) { for(x=0;x<64/4;x++) { Pixel Pixel Pixel Pixel Bufw+=64; } } } BlitScreen PROC ;;;66 void BlitScreen(u8 *Buf) ;;;67 { 000468 e92d07f0 PUSH {r4-r10} 00046c e59f14a0 LDR r1,|L1.2324| 000470 e3a06000 MOV r6,#0 000474 e5911010 LDR r1,[r1,#0x10] 000478 e3a04101 MOV r4,#0x40000000 00047c e3a0c0e0 MOV r12,#0xe0 000480 e3a0501c MOV r5,#0x1c |L1.1156| 000484 e3a03000 MOV r3,#0 |L1.1160| 000488 e5902000 LDR r2,[r0,#0] 00048c e5907100 LDR r7,[r0,#0x100] 000490 e20280ff AND r8,r2,#0xff 000494 e2029cff AND r9,r2,#0xff00 000498 e0818088 ADD r8,r1,r8,LSL #1 00049c e08193a9 ADD r9,r1,r9,LSR #7 0004a0 e1d880b0 LDRH r8,[r8,#0] 0004a4 e1d990b0 LDRH r9,[r9,#0] 0004a8 e0888009 ADD r8,r8,r9 0004ac e20790ff AND r9,r7,#0xff 0004b0 e0819089 ADD r9,r1,r9,LSL #1 0004b4 e1d990b0 LDRH r9,[r9,#0] 0004b8 e0888009 ADD r8,r8,r9 0004bc e2079cff AND r9,r7,#0xff00 0004c0 e08193a9 ADD r9,r1,r9,LSR #7 0004c4 e1d990b0 LDRH r9,[r9,#0] 0004c8 e0888009 ADD r8,r8,r9 0004cc e0059228 AND r9,r5,r8,LSR #4 0004d0 e1a0ae08 LSL r10,r8,#28 0004d4 e1899f2a ORR r9,r9,r10,LSR #30 0004d8 e00c8328 AND r8,r12,r8,LSR #6 0004dc e1888009 ORR r8,r8,r9 0004e0 e1c480b2 STRH r8,[r4,#2] 0004e4 e20288ff AND r8,r2,#0xff0000 0004e8 e1a02c22 LSR r2,r2,#24 0004ec e08187a8 ADD r8,r1,r8,LSR #15 0004f0 e0812082 ADD r2,r1,r2,LSL #1 0004f4 e1d880b0 LDRH r8,[r8,#0] 0004f8 e1d220b0 LDRH r2,[r2,#0] 0004fc e0822008 ADD r2,r2,r8 000500 e20788ff AND r8,r7,#0xff0000 000504 e08187a8 ADD r8,r1,r8,LSR #15 000508 e1a07c27 LSR r7,r7,#24 00050c e1d880b0 LDRH r8,[r8,#0] 000510 e0817087 ADD r7,r1,r7,LSL #1 000514 e1d770b0 LDRH r7,[r7,#0] 000518 e0822008 ADD r2,r2,r8 00051c e0822007 ADD r2,r2,r7 000520 e0057222 AND r7,r5,r2,LSR #4 000524 e1a08e02 LSL r8,r2,#28 000528 e1877f28 ORR r7,r7,r8,LSR #30 00052c e00c2322 AND r2,r12,r2,LSR #6 000530 e1822007 ORR r2,r2,r7 000534 e1c420b2 STRH r2,[r4,#2] 000538 e2807004 ADD r7,r0,#4 00053c e5900004 LDR r0,[r0,#4] 000540 e5972100 LDR r2,[r7,#0x100] 000544 e20080ff AND r8,r0,#0xff 000548 e2009cff AND r9,r0,#0xff00 00054c e0818088 ADD r8,r1,r8,LSL #1 000550 e08193a9 ADD r9,r1,r9,LSR #7 000554 e1d880b0 LDRH r8,[r8,#0] 000558 e1d990b0 LDRH r9,[r9,#0] 00055c e0888009 ADD r8,r8,r9 000560 e20290ff AND r9,r2,#0xff 000564 e0819089 ADD r9,r1,r9,LSL #1 000568 e1d990b0 LDRH r9,[r9,#0] 00056c e0888009 ADD r8,r8,r9 000570 e2029cff AND r9,r2,#0xff00 000574 e08193a9 ADD r9,r1,r9,LSR #7 000578 e1d990b0 LDRH r9,[r9,#0] 00057c e0888009 ADD r8,r8,r9 000580 e0059228 AND r9,r5,r8,LSR #4 000584 e1a0ae08 LSL r10,r8,#28 000588 e1899f2a ORR r9,r9,r10,LSR #30 00058c e00c8328 AND r8,r12,r8,LSR #6 000590 e1888009 ORR r8,r8,r9 000594 e1c480b2 STRH r8,[r4,#2] 000598 e20088ff AND r8,r0,#0xff0000 00059c e1a00c20 LSR r0,r0,#24 0005a0 e08187a8 ADD r8,r1,r8,LSR #15 0005a4 e0810080 ADD r0,r1,r0,LSL #1 0005a8 e1d880b0 LDRH r8,[r8,#0] 0005ac e1d000b0 LDRH r0,[r0,#0] 0005b0 e0800008 ADD r0,r0,r8 0005b4 e20288ff AND r8,r2,#0xff0000 0005b8 e08187a8 ADD r8,r1,r8,LSR #15 0005bc e1a02c22 LSR r2,r2,#24 0005c0 e1d880b0 LDRH r8,[r8,#0] 0005c4 e0812082 ADD r2,r1,r2,LSL #1 0005c8 e1d220b0 LDRH r2,[r2,#0] 0005cc e0800008 ADD r0,r0,r8 0005d0 e0800002 ADD r0,r0,r2 0005d4 e0052220 AND r2,r5,r0,LSR #4 0005d8 e1a08e00 LSL r8,r0,#28 0005dc e1822f28 ORR r2,r2,r8,LSR #30 0005e0 e00c0320 AND r0,r12,r0,LSR #6 0005e4 e1800002 ORR r0,r0,r2 0005e8 e1c400b2 STRH r0,[r4,#2] 0005ec e5b70004 LDR r0,[r7,#4]! 0005f0 e5972100 LDR r2,[r7,#0x100] 0005f4 e20080ff AND r8,r0,#0xff 0005f8 e2009cff AND r9,r0,#0xff00 0005fc e0818088 ADD r8,r1,r8,LSL #1 000600 e08193a9 ADD r9,r1,r9,LSR #7 000604 e1d880b0 LDRH r8,[r8,#0] 000608 e1d990b0 LDRH r9,[r9,#0] 00060c e0888009 ADD r8,r8,r9 000610 e20290ff AND r9,r2,#0xff 000614 e0819089 ADD r9,r1,r9,LSL #1 000618 e1d990b0 LDRH r9,[r9,#0] 00061c e0888009 ADD r8,r8,r9 000620 e2029cff AND r9,r2,#0xff00 000624 e08193a9 ADD r9,r1,r9,LSR #7 000628 e1d990b0 LDRH r9,[r9,#0] 00062c e0888009 ADD r8,r8,r9 000630 e0059228 AND r9,r5,r8,LSR #4 000634 e1a0ae08 LSL r10,r8,#28 000638 e1899f2a ORR r9,r9,r10,LSR #30 00063c e00c8328 AND r8,r12,r8,LSR #6 000640 e1888009 ORR r8,r8,r9 000644 e1c480b2 STRH r8,[r4,#2] 000648 e20088ff AND r8,r0,#0xff0000 00064c e1a00c20 LSR r0,r0,#24 000650 e08187a8 ADD r8,r1,r8,LSR #15 000654 e0810080 ADD r0,r1,r0,LSL #1 000658 e1d880b0 LDRH r8,[r8,#0] 00065c e1d000b0 LDRH r0,[r0,#0] 000660 e0800008 ADD r0,r0,r8 000664 e20288ff AND r8,r2,#0xff0000 000668 e08187a8 ADD r8,r1,r8,LSR #15 00066c e1a02c22 LSR r2,r2,#24 000670 e1d880b0 LDRH r8,[r8,#0] 000674 e0812082 ADD r2,r1,r2,LSL #1 000678 e1d220b0 LDRH r2,[r2,#0] 00067c e0800008 ADD r0,r0,r8 000680 e0800002 ADD r0,r0,r2 000684 e0052220 AND r2,r5,r0,LSR #4 000688 e1a08e00 LSL r8,r0,#28 00068c e1822f28 ORR r2,r2,r8,LSR #30 000690 e00c0320 AND r0,r12,r0,LSR #6 000694 e1800002 ORR r0,r0,r2 000698 e1c400b2 STRH r0,[r4,#2] 00069c e5b70004 LDR r0,[r7,#4]! 0006a0 e5972100 LDR r2,[r7,#0x100] 0006a4 e20080ff AND r8,r0,#0xff 0006a8 e2009cff AND r9,r0,#0xff00 0006ac e0818088 ADD r8,r1,r8,LSL #1 0006b0 e08193a9 ADD r9,r1,r9,LSR #7 0006b4 e1d880b0 LDRH r8,[r8,#0] 0006b8 e1d990b0 LDRH r9,[r9,#0] 0006bc e0888009 ADD r8,r8,r9 0006c0 e20290ff AND r9,r2,#0xff 0006c4 e0819089 ADD r9,r1,r9,LSL #1 0006c8 e1d990b0 LDRH r9,[r9,#0] 0006cc e0888009 ADD r8,r8,r9 0006d0 e2029cff AND r9,r2,#0xff00 0006d4 e08193a9 ADD r9,r1,r9,LSR #7 0006d8 e1d990b0 LDRH r9,[r9,#0] 0006dc e0888009 ADD r8,r8,r9 0006e0 e0059228 AND r9,r5,r8,LSR #4 0006e4 e1a0ae08 LSL r10,r8,#28 0006e8 e1899f2a ORR r9,r9,r10,LSR #30 0006ec e00c8328 AND r8,r12,r8,LSR #6 0006f0 e1888009 ORR r8,r8,r9 0006f4 e1c480b2 STRH r8,[r4,#2] 0006f8 e20088ff AND r8,r0,#0xff0000 0006fc e1a00c20 LSR r0,r0,#24 000700 e08187a8 ADD r8,r1,r8,LSR #15 000704 e0810080 ADD r0,r1,r0,LSL #1 000708 e1d880b0 LDRH r8,[r8,#0] 00070c e1d000b0 LDRH r0,[r0,#0] 000710 e0800008 ADD r0,r0,r8 000714 e20288ff AND r8,r2,#0xff0000 000718 e08187a8 ADD r8,r1,r8,LSR #15 00071c e1a02c22 LSR r2,r2,#24 000720 e1d880b0 LDRH r8,[r8,#0] 000724 e0812082 ADD r2,r1,r2,LSL #1 000728 e1d220b0 LDRH r2,[r2,#0] 00072c e0800008 ADD r0,r0,r8 000730 e0800002 ADD r0,r0,r2 000734 e0052220 AND r2,r5,r0,LSR #4 000738 e1a08e00 LSL r8,r0,#28 00073c e1822f28 ORR r2,r2,r8,LSR #30 000740 e00c0320 AND r0,r12,r0,LSR #6 000744 e1800002 ORR r0,r0,r2 000748 e1c400b2 STRH r0,[r4,#2] 00074c e2833001 ADD r3,r3,#1 000750 e3530010 CMP r3,#0x10 000754 e2870f41 ADD r0,r7,#0x104 000758 3affff4a BCC |L1.1160| 00075c e2866001 ADD r6,r6,#1 000760 e3560078 CMP r6,#0x78 000764 3affff46 BCC |L1.1156| 000768 e8bd07f0 POP {r4-r10} 00076c e12fff1e BX lr ;;;68 u32 *Bufw=(u32*)Buf,a,b,c,y,x; ;;;69 for(y=0;y<120;y++) ;;;70 { ;;;71 for(x=0;x<64/4;x++) ;;;72 { ;;;73 Pixel ;;;74 Pixel ;;;75 Pixel ;;;76 Pixel ;;;77 Bufw+=64; ;;;78 } ;;;79 } ;;;80 } ENDP