source: trunk/src/gdi32/rgbcvt.asm@ 2607

Last change on this file since 2607 was 2602, checked in by dengert, 26 years ago

speedup conversion RGB555 -> RGB565

File size: 643 bytes
Line 
1; $Id: rgbcvt.asm,v 1.1 2000-02-03 10:23:25 dengert Exp $
2; Copyright 2000 Daniela Engert (dani@ngrt.de)
3
4 .386p
5 .MODEL FLAT
6 .CODE
7
8; void _Optlink RGB555to565 (WORD *dest, WORD *src, ULONG num);
9
10 PUBLIC ?RGB555to565
11
12?RGB555to565 PROC NEAR
13
14 PUSH ESI
15 PUSH EDI
16 CLD
17
18 MOV EDI, EAX ; _Optlink arg1 = EAX
19 MOV ESI, EDX ; _Optlink arg2 = EDX
20 SHR ECX, 1 ; _Optlink arg3 = ECX
21 PUSHF
22cvt:
23 LODSD
24 MOV EDX, EAX
25 AND EDX, 001F001Fh
26 SHL EAX, 1
27 AND EAX, 0FFC0FFC0h
28 OR EAX, EDX
29 STOSD
30 LOOP cvt
31
32 POPF
33 JNC SHORT done
34
35 LODSW
36 MOV DX, AX
37 AND DX, 001Fh
38 SHL AX, 1
39 AND AX, 0FFC0h
40 OR AX, DX
41 STOSW
42
43done:
44 POP EDI
45 POP ESI
46 RET
47
48 ENDP
49
50 END
Note: See TracBrowser for help on using the repository browser.