Rev 485 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 485 | Rev 552 | ||
---|---|---|---|
Line 789... | Line 789... | ||
789 | mov ebx,dword [bmp_load_area+22] |
789 | mov ebx,dword [bmp_load_area+22] |
790 | mov dword [img_dest_area],eax |
790 | mov dword [img_dest_area],eax |
791 | mov dword [img_dest_area+4],ebx |
791 | mov dword [img_dest_area+4],ebx |
792 | } |
792 | } |
Line -... | Line 793... | ||
- | 793 | ||
793 | 794 | if used ReadGIF |
|
794 | ; For convert RGB to BGR |
795 | ; For convert RGB to BGR |
- | 796 | COLOR_ORDER equ MENUETOS |
|
- | 797 | include 'gif_lite.inc' |
|
Line 795... | Line 798... | ||
795 | COLOR_ORDER equ MENUETOS |
798 | end if |
796 | 799 | ||
797 | macro giftoani gifsrc,imgsrc,num_of_frames |
- | |
798 | { |
800 | macro giftoani gifsrc,imgsrc,num_of_frames |
799 | local hasharea, ReadGIF, nextblock,_null |
- | |
800 | local globalColor, img_count, cur_info, img_start |
- | |
801 | local codesize, compsize, bit_count, CC, EOI, Palette |
- | |
802 | local block_ofs, table_ptr, gifmacend |
- | |
803 | local no_gc, block_skip, no_comm, noextblock, uselocal |
- | |
804 | local setPal, filltable, reinit, cycle, zadd, noinc |
- | |
805 | local notintable, er, zend, nxt, continue, ex, Gif_skipmap |
- | |
806 | local Gif_get_sym, shift, nextbl, noblock, loop1, exx |
- | |
807 | local Gif_output, next, loop2 |
- | |
808 | - | ||
809 | _null = 0x1000 ; 0x1000 |
- | |
810 | 801 | { |
|
811 | ; jmp sss |
- | |
812 | ; if defined gif_hash_offset |
- | |
813 | ; else |
802 | gif_img_count = num_of_frames |
814 | ; hasharea: |
- | |
815 | ; times 4096 dd 0 ;4096 |
- | |
816 | ; end if |
- | |
817 | ;sss: |
- | |
818 | - | ||
819 | mov esi,gifsrc ;ª § ⥫ì ä ¨« ¢ ¯ ¬ï⨠|
- | |
820 | mov edi,imgsrc ;ª § ⥫ì ᯨ᮪ ª à⨮ª |
- | |
821 | - | ||
822 | if defined gif_hash_offset |
- | |
823 | mov eax,gif_hash_offset ; ¡®ç ï ®¡« áâì ¬¨¨¬ã¬ 4096*4 ¡ ©â |
- | |
824 | else |
- | |
825 | mov eax,hasharea ; ¡®ç ï ®¡« áâì ¬¨¨¬ã¬ 4096*4 ¡ ©â |
- | |
826 | end if |
803 | mov esi, gifsrc |
827 | - | ||
828 | call ReadGIF |
- | |
829 | push ecx |
- | |
830 | pop dword num_of_frames |
- | |
831 | jmp gifmacend |
- | |
832 | - | ||
833 | if defined gif_hash_offset |
- | |
834 | else |
- | |
835 | hasharea: |
- | |
836 | times 4096 dd 0 ;4096 |
- | |
837 | end if |
- | |
838 | - | ||
839 | ReadGIF: |
- | |
840 | push esi edi |
- | |
841 | mov [table_ptr],eax |
- | |
842 | mov [cur_info],edi |
- | |
843 | xor eax,eax |
- | |
844 | mov [globalColor],eax |
- | |
845 | mov [img_count],eax |
- | |
846 | inc eax |
- | |
847 | cmp dword[esi],'GIF8' |
- | |
848 | jne er ; signature |
- | |
849 | mov ecx,[esi+0xa] |
- | |
850 | inc eax |
- | |
851 | add esi,0xd |
- | |
852 | mov edi,esi |
- | |
853 | bt ecx,7 |
- | |
854 | jnc nextblock |
- | |
855 | mov [globalColor],esi |
- | |
856 | call Gif_skipmap |
- | |
857 | nextblock: |
- | |
858 | cmp byte[edi],0x21 |
- | |
859 | jne noextblock |
- | |
860 | inc edi |
- | |
861 | cmp byte[edi],0xf9 ; Graphic Control Ext |
- | |
862 | jne no_gc |
- | |
863 | add edi,7 |
- | |
864 | jmp nextblock |
- | |
865 | no_gc: |
- | |
866 | cmp byte[edi],0xfe ; Comment Ext |
- | |
867 | jne no_comm |
- | |
868 | inc edi |
- | |
869 | block_skip: |
- | |
870 | movzx eax,byte[edi] |
- | |
871 | lea edi,[edi+eax+1] |
- | |
872 | cmp byte[edi],0 |
- | |
873 | jnz block_skip |
- | |
874 | inc edi |
- | |
875 | jmp nextblock |
- | |
876 | no_comm: |
- | |
877 | cmp byte[edi],0xff ; Application Ext |
- | |
878 | jne nextblock |
- | |
879 | add edi,13 |
- | |
880 | jmp block_skip |
- | |
881 | noextblock: |
- | |
882 | cmp byte[edi],0x2c ; image beginning |
- | |
883 | jne er |
- | |
884 | inc [img_count] |
- | |
885 | inc edi |
- | |
886 | mov esi,[cur_info] |
- | |
887 | xchg esi,edi |
- | |
888 | movsd |
- | |
889 | movsd |
- | |
890 | - | ||
891 | push edi |
- | |
892 | movzx ecx,word[esi] |
- | |
893 | inc esi |
- | |
894 | bt ecx,7 |
- | |
895 | jc uselocal |
- | |
896 | push [globalColor] |
- | |
897 | mov edi,esi |
- | |
898 | jmp setPal |
- | |
899 | uselocal: |
- | |
900 | call Gif_skipmap |
- | |
901 | push esi |
- | |
902 | setPal: |
- | |
903 | movzx ecx,byte[edi] |
- | |
904 | inc ecx |
- | |
905 | mov [codesize],ecx |
- | |
906 | dec ecx |
- | |
907 | pop [Palette] |
- | |
908 | lea esi,[edi+1] |
- | |
909 | mov edi,[table_ptr] |
- | |
910 | xor eax,eax |
- | |
911 | cld |
- | |
912 | lodsb ; eax - block_count |
- | |
913 | add eax,esi |
- | |
914 | mov [block_ofs],eax |
- | |
915 | mov [bit_count],8 |
- | |
916 | mov eax,1 |
- | |
917 | shl eax,cl |
- | |
918 | mov [CC],eax |
- | |
919 | inc eax |
- | |
920 | mov [EOI],eax |
- | |
921 | lea ecx,[eax-1] |
- | |
922 | mov eax, _null shl 16 |
- | |
923 | filltable: |
- | |
924 | stosd |
- | |
925 | inc eax |
- | |
926 | loop filltable |
- | |
927 | pop edi |
- | |
928 | mov [img_start],edi |
- | |
929 | reinit: |
- | |
930 | mov edx,[EOI] |
- | |
931 | inc edx |
- | |
932 | push [codesize] |
- | |
933 | pop [compsize] |
- | |
934 | call Gif_get_sym |
- | |
935 | cmp eax,[CC] |
- | |
936 | je reinit |
- | |
937 | call Gif_output |
- | |
938 | cycle: |
- | |
939 | movzx ebx,ax |
- | |
940 | call Gif_get_sym |
- | |
941 | cmp eax,edx |
- | |
942 | jae notintable |
- | |
943 | cmp eax,[CC] |
- | |
944 | je reinit |
- | |
945 | cmp eax,[EOI] |
- | |
946 | je zend |
- | |
947 | call Gif_output |
- | |
948 | zadd: |
- | |
949 | push eax |
- | |
950 | mov eax,[table_ptr] |
- | |
951 | mov [eax+edx*4],ebx |
- | |
952 | pop eax |
- | |
953 | cmp edx,0xFFF |
- | |
954 | jae cycle |
- | |
955 | inc edx |
- | |
956 | bsr ebx,edx |
- | |
957 | cmp ebx,[compsize] |
- | |
958 | jne noinc |
- | |
959 | inc [compsize] |
- | |
960 | noinc: |
- | |
961 | jmp cycle |
- | |
962 | notintable: |
- | |
963 | push eax |
- | |
964 | mov eax,ebx |
- | |
965 | call Gif_output |
- | |
966 | push ebx |
- | |
967 | movzx eax,bx |
- | |
968 | call Gif_output |
- | |
969 | pop ebx eax |
- | |
970 | jmp zadd |
- | |
971 | er: |
- | |
972 | pop edi |
- | |
973 | jmp ex |
- | |
974 | zend: |
- | |
975 | ; mov eax,[.cur_info] ; skip offset to next frame |
- | |
976 | ; mov [eax],edi |
- | |
977 | mov [cur_info],edi |
- | |
978 | add esi,2 |
- | |
979 | xchg esi,edi |
- | |
980 | nxt: |
- | |
981 | cmp byte[edi],0 |
- | |
982 | jnz continue |
- | |
983 | inc edi |
- | |
984 | jmp nxt |
- | |
985 | continue: |
- | |
986 | cmp byte[edi],0x3b ;read next frame |
- | |
987 | jne nextblock |
- | |
988 | xor eax,eax |
- | |
989 | stosd |
- | |
990 | mov ecx,[img_count] |
- | |
991 | ex: |
- | |
992 | pop edi esi |
- | |
993 | ret |
- | |
994 | - | ||
995 | Gif_skipmap: |
- | |
996 | ; in: ecx - image descriptor, esi - pointer to colormap |
- | |
997 | ; out: edi - pointer to area after colormap |
- | |
998 | - | ||
999 | and ecx,111b |
- | |
1000 | inc ecx ; color map size |
- | |
1001 | mov ebx,1 |
- | |
1002 | shl ebx,cl |
- | |
1003 | lea ebx,[ebx*2+ebx] |
- | |
1004 | lea edi,[esi+ebx] |
- | |
1005 | ret |
- | |
1006 | - | ||
1007 | Gif_get_sym: |
- | |
1008 | mov ecx,[compsize] |
- | |
1009 | push ecx |
- | |
1010 | xor eax,eax |
- | |
1011 | shift: |
- | |
1012 | ror byte[esi],1 |
- | |
1013 | rcr eax,1 |
- | |
1014 | dec [bit_count] |
- | |
1015 | jnz loop1 |
- | |
1016 | inc esi |
- | |
1017 | cmp esi,[block_ofs] |
- | |
1018 | jb noblock |
- | |
1019 | push eax |
- | |
1020 | xor eax,eax |
- | |
1021 | lodsb |
- | |
1022 | test eax,eax |
- | |
1023 | jnz nextbl |
- | |
1024 | mov eax,[EOI] |
- | |
1025 | sub esi,2 |
- | |
1026 | add esp,8 |
- | |
1027 | jmp exx |
- | |
1028 | nextbl: |
- | |
1029 | add eax,esi |
- | |
1030 | mov [block_ofs],eax |
- | |
1031 | pop eax |
- | |
1032 | noblock: |
- | |
1033 | mov [bit_count],8 |
- | |
1034 | loop1: |
- | |
1035 | loop shift |
- | |
1036 | pop ecx |
- | |
1037 | rol eax,cl |
- | |
1038 | exx: |
- | |
1039 | xor ecx,ecx |
- | |
1040 | ret |
- | |
1041 | - | ||
1042 | Gif_output: |
- | |
1043 | push esi eax edx |
- | |
1044 | mov edx,[table_ptr] |
- | |
1045 | next: |
- | |
1046 | push word[edx+eax*4] |
- | |
1047 | mov ax,word[edx+eax*4+2] |
- | |
1048 | inc ecx |
- | |
1049 | cmp ax,_null |
- | |
1050 | jnz next |
- | |
1051 | shl ebx,16 |
- | |
1052 | mov bx,[esp] |
- | |
1053 | loop2: |
- | |
1054 | pop ax |
- | |
1055 | - | ||
1056 | lea esi,[eax+eax*2] |
- | |
1057 | add esi,[Palette] |
- | |
1058 | - | ||
1059 | if COLOR_ORDER eq MENUETOS |
- | |
1060 | mov esi,[esi] |
- | |
1061 | bswap esi |
- | |
1062 | shr esi,8 |
- | |
1063 | mov [edi],esi |
- | |
1064 | add edi,3 |
- | |
1065 | else |
- | |
1066 | movsw |
- | |
1067 | movsb |
- | |
1068 | end if |
- | |
1069 | - | ||
1070 | loop loop2 |
- | |
1071 | pop edx eax esi |
- | |
1072 | ret |
- | |
1073 | - | ||
1074 | globalColor dd 1 |
- | |
1075 | img_count dd 1 |
- | |
1076 | cur_info dd 1 ; image table pointer |
- | |
1077 | img_start dd 1 |
- | |
1078 | codesize dd 1 |
- | |
1079 | compsize dd 1 |
- | |
1080 | bit_count dd 1 |
- | |
1081 | CC dd 1 |
- | |
1082 | EOI dd 1 |
- | |
1083 | Palette dd 1 |
- | |
1084 | block_ofs dd 1 |
- | |
1085 | table_ptr dd 1 |
- | |
1086 | 804 | mov edi, imgsrc |
|
Line 1087... | Line -... | ||
1087 | gifmacend: |
- | |
1088 | } |
- | |
1089 | 805 | call ReadGIF |
|
1090 | 806 | } |
|
1091 | - | ||
1092 | macro giftoimg gifsrc,imgsrc |
- | |
1093 | { |
- | |
1094 | local hasharea, ReadGIF, nextblock,_null |
- | |
1095 | local globalColor, img_count, cur_info, img_start |
- | |
1096 | local codesize, compsize, bit_count, CC, EOI, Palette |
- | |
1097 | local block_ofs, table_ptr, gifmacend |
- | |
1098 | local no_gc, block_skip, no_comm, noextblock, uselocal |
- | |
1099 | local setPal, filltable, reinit, cycle, zadd, noinc |
- | |
1100 | local notintable, er, zend, nxt, continue, ex, Gif_skipmap |
- | |
1101 | local Gif_get_sym, shift, nextbl, noblock, loop1, exx |
- | |
1102 | local Gif_output, next, loop2 |
- | |
1103 | - | ||
1104 | _null = 0x1000 ; 0x1000 |
- | |
1105 | - | ||
1106 | mov esi,gifsrc ;ª § ⥫ì ä ¨« ¢ ¯ ¬ï⨠|
807 | |
1107 | mov edi,imgsrc ;ª § ⥫ì ᯨ᮪ ª à⨮ª |
808 | macro giftoimg gifsrc,imgsrc |
1108 | - | ||
1109 | if defined gif_hash_offset |
- | |
1110 | mov eax,gif_hash_offset ; ¡®ç ï ®¡« áâì ¬¨¨¬ã¬ 4096*4 ¡ ©â |
809 | { |
1111 | else |
- | |
- | 810 | if defined gif_img_count |
|
- | 811 | error 'giftoimg cannot be used in GIF multiple images mode. Use giftoani instead.' |
|
1112 | mov eax,hasharea ; ¡®ç ï ®¡« áâì ¬¨¨¬ã¬ 4096*4 ¡ ©â |
812 | end if |
1113 | end if |
- | |
1114 | - | ||
1115 | call ReadGIF |
- | |
1116 | jmp gifmacend |
- | |
1117 | - | ||
1118 | if defined gif_hash_offset |
- | |
1119 | else |
- | |
1120 | hasharea: |
- | |
1121 | times 4096 dd 0 ;4096 |
- | |
1122 | end if |
- | |
1123 | - | ||
1124 | ReadGIF: |
- | |
1125 | push esi edi |
- | |
1126 | mov [table_ptr],eax |
- | |
1127 | mov [cur_info],edi |
- | |
1128 | xor eax,eax |
- | |
1129 | mov [globalColor],eax |
- | |
1130 | mov [img_count],eax |
- | |
1131 | inc eax |
- | |
1132 | cmp dword[esi],'GIF8' |
- | |
1133 | jne er ; signature |
- | |
1134 | mov ecx,[esi+0xa] |
- | |
1135 | inc eax |
- | |
1136 | add esi,0xd |
- | |
1137 | mov edi,esi |
- | |
1138 | bt ecx,7 |
- | |
1139 | jnc nextblock |
- | |
1140 | mov [globalColor],esi |
- | |
1141 | call Gif_skipmap |
- | |
1142 | nextblock: |
- | |
1143 | cmp byte[edi],0x21 |
- | |
1144 | jne noextblock |
- | |
1145 | inc edi |
- | |
1146 | cmp byte[edi],0xf9 ; Graphic Control Ext |
- | |
1147 | jne no_gc |
- | |
1148 | add edi,7 |
- | |
1149 | jmp nextblock |
- | |
1150 | no_gc: |
- | |
1151 | cmp byte[edi],0xfe ; Comment Ext |
- | |
1152 | jne no_comm |
- | |
1153 | inc edi |
- | |
1154 | block_skip: |
- | |
1155 | movzx eax,byte[edi] |
- | |
1156 | lea edi,[edi+eax+1] |
- | |
1157 | cmp byte[edi],0 |
- | |
1158 | jnz block_skip |
- | |
1159 | inc edi |
- | |
1160 | jmp nextblock |
- | |
1161 | no_comm: |
- | |
1162 | cmp byte[edi],0xff ; Application Ext |
- | |
1163 | jne nextblock |
- | |
1164 | add edi,13 |
- | |
1165 | jmp block_skip |
- | |
1166 | noextblock: |
- | |
1167 | cmp byte[edi],0x2c ; image beginning |
- | |
1168 | jne er |
- | |
1169 | inc [img_count] |
- | |
1170 | inc edi |
- | |
1171 | mov esi,[cur_info] |
- | |
1172 | xchg esi,edi |
- | |
1173 | ; movsd |
- | |
1174 | ; movsd |
- | |
1175 | - | ||
1176 | mov bp,word[esi+4] |
- | |
1177 | movzx ebx,bp |
- | |
1178 | mov [edi],ebx |
- | |
1179 | - | ||
1180 | mov bp,word[esi+6] |
- | |
1181 | movzx ebx,bp |
- | |
1182 | mov [edi+4],ebx |
- | |
1183 | - | ||
1184 | add edi,8 |
- | |
1185 | add esi,8 |
- | |
1186 | - | ||
1187 | push edi |
- | |
1188 | movzx ecx,word[esi] |
- | |
1189 | inc esi |
- | |
1190 | bt ecx,7 |
- | |
1191 | jc uselocal |
- | |
1192 | push [globalColor] |
- | |
1193 | mov edi,esi |
- | |
1194 | jmp setPal |
- | |
1195 | uselocal: |
- | |
1196 | call Gif_skipmap |
- | |
1197 | push esi |
- | |
1198 | setPal: |
- | |
1199 | movzx ecx,byte[edi] |
- | |
1200 | inc ecx |
- | |
1201 | mov [codesize],ecx |
- | |
1202 | dec ecx |
- | |
1203 | pop [Palette] |
- | |
1204 | lea esi,[edi+1] |
- | |
1205 | mov edi,[table_ptr] |
- | |
1206 | xor eax,eax |
- | |
1207 | cld |
- | |
1208 | lodsb ; eax - block_count |
- | |
1209 | add eax,esi |
- | |
1210 | mov [block_ofs],eax |
- | |
1211 | mov [bit_count],8 |
- | |
1212 | mov eax,1 |
- | |
1213 | shl eax,cl |
- | |
1214 | mov [CC],eax |
- | |
1215 | inc eax |
- | |
1216 | mov [EOI],eax |
- | |
1217 | lea ecx,[eax-1] |
- | |
1218 | mov eax, _null shl 16 |
- | |
1219 | filltable: |
- | |
1220 | stosd |
- | |
1221 | inc eax |
- | |
1222 | loop filltable |
- | |
1223 | pop edi |
- | |
1224 | mov [img_start],edi |
- | |
1225 | reinit: |
- | |
1226 | mov edx,[EOI] |
- | |
1227 | inc edx |
- | |
1228 | push [codesize] |
- | |
1229 | pop [compsize] |
- | |
1230 | call Gif_get_sym |
- | |
1231 | cmp eax,[CC] |
- | |
1232 | je reinit |
- | |
1233 | call Gif_output |
- | |
1234 | cycle: |
- | |
1235 | movzx ebx,ax |
- | |
1236 | call Gif_get_sym |
- | |
1237 | cmp eax,edx |
- | |
1238 | jae notintable |
- | |
1239 | cmp eax,[CC] |
- | |
1240 | je reinit |
- | |
1241 | cmp eax,[EOI] |
- | |
1242 | je zend |
- | |
1243 | call Gif_output |
- | |
1244 | zadd: |
- | |
1245 | push eax |
- | |
1246 | mov eax,[table_ptr] |
- | |
1247 | mov [eax+edx*4],ebx |
- | |
1248 | pop eax |
- | |
1249 | cmp edx,0xFFF |
- | |
1250 | jae cycle |
- | |
1251 | inc edx |
- | |
1252 | bsr ebx,edx |
- | |
1253 | cmp ebx,[compsize] |
- | |
1254 | jne noinc |
- | |
1255 | inc [compsize] |
- | |
1256 | noinc: |
- | |
1257 | jmp cycle |
- | |
1258 | notintable: |
- | |
1259 | push eax |
- | |
1260 | mov eax,ebx |
- | |
1261 | call Gif_output |
- | |
1262 | push ebx |
- | |
1263 | movzx eax,bx |
- | |
1264 | call Gif_output |
- | |
1265 | pop ebx eax |
- | |
1266 | jmp zadd |
- | |
1267 | er: |
- | |
1268 | pop edi |
- | |
1269 | jmp ex |
- | |
1270 | zend: |
- | |
1271 | ; mov eax,[.cur_info] ; skip offset to next frame |
- | |
1272 | ; mov [eax],edi |
- | |
1273 | mov [cur_info],edi |
- | |
1274 | add esi,2 |
- | |
1275 | xchg esi,edi |
- | |
1276 | nxt: |
- | |
1277 | cmp byte[edi],0 |
- | |
1278 | jnz continue |
- | |
1279 | inc edi |
- | |
1280 | jmp nxt |
- | |
1281 | continue: |
- | |
1282 | ; cmp byte[edi],0x3b ;read next frame |
- | |
1283 | ; jne nextblock |
- | |
1284 | xor eax,eax |
- | |
1285 | stosd |
- | |
1286 | mov ecx,[img_count] |
- | |
1287 | ex: |
- | |
1288 | pop edi esi |
- | |
1289 | ret |
- | |
1290 | - | ||
1291 | Gif_skipmap: |
- | |
1292 | ; in: ecx - image descriptor, esi - pointer to colormap |
- | |
1293 | ; out: edi - pointer to area after colormap |
- | |
1294 | and ecx,111b |
- | |
1295 | inc ecx ; color map size |
- | |
1296 | mov ebx,1 |
- | |
1297 | shl ebx,cl |
- | |
1298 | lea ebx,[ebx*2+ebx] |
- | |
1299 | lea edi,[esi+ebx] |
- | |
1300 | ret |
- | |
1301 | - | ||
1302 | Gif_get_sym: |
- | |
1303 | mov ecx,[compsize] |
- | |
1304 | push ecx |
- | |
1305 | xor eax,eax |
- | |
1306 | shift: |
- | |
1307 | ror byte[esi],1 |
- | |
1308 | rcr eax,1 |
- | |
1309 | dec [bit_count] |
- | |
1310 | jnz loop1 |
- | |
1311 | inc esi |
- | |
1312 | cmp esi,[block_ofs] |
- | |
1313 | jb noblock |
- | |
1314 | push eax |
- | |
1315 | xor eax,eax |
- | |
1316 | lodsb |
- | |
1317 | test eax,eax |
- | |
1318 | jnz nextbl |
- | |
1319 | mov eax,[EOI] |
- | |
1320 | sub esi,2 |
- | |
1321 | add esp,8 |
- | |
1322 | jmp exx |
- | |
1323 | nextbl: |
- | |
1324 | add eax,esi |
- | |
1325 | mov [block_ofs],eax |
- | |
1326 | pop eax |
- | |
1327 | noblock: |
- | |
1328 | mov [bit_count],8 |
- | |
1329 | loop1: |
- | |
1330 | loop shift |
- | |
1331 | pop ecx |
- | |
1332 | rol eax,cl |
- | |
1333 | exx: |
- | |
1334 | xor ecx,ecx |
- | |
1335 | ret |
- | |
1336 | - | ||
1337 | Gif_output: |
- | |
1338 | push esi eax edx |
- | |
1339 | mov edx,[table_ptr] |
- | |
1340 | next: |
- | |
1341 | push word[edx+eax*4] |
- | |
1342 | mov ax,word[edx+eax*4+2] |
- | |
1343 | inc ecx |
- | |
1344 | cmp ax,_null |
- | |
1345 | jnz next |
- | |
1346 | shl ebx,16 |
- | |
1347 | mov bx,[esp] |
- | |
1348 | loop2: |
- | |
1349 | pop ax |
- | |
1350 | - | ||
1351 | lea esi,[eax+eax*2] |
- | |
1352 | add esi,[Palette] |
- | |
1353 | - | ||
1354 | if COLOR_ORDER eq MENUETOS |
- | |
1355 | mov esi,[esi] |
- | |
1356 | bswap esi |
- | |
1357 | shr esi,8 |
- | |
1358 | mov [edi],esi |
- | |
1359 | add edi,3 |
- | |
1360 | else |
- | |
1361 | movsw |
- | |
1362 | movsb |
- | |
1363 | end if |
- | |
1364 | - | ||
1365 | loop loop2 |
- | |
1366 | pop edx eax esi |
- | |
1367 | ret |
- | |
1368 | - | ||
1369 | globalColor dd 1 |
- | |
1370 | img_count dd 1 |
- | |
1371 | cur_info dd 1 ; image table pointer |
- | |
1372 | img_start dd 1 |
- | |
1373 | codesize dd 1 |
- | |
1374 | compsize dd 1 |
- | |
1375 | bit_count dd 1 |
- | |
1376 | CC dd 1 |
- | |
1377 | EOI dd 1 |
- | |
1378 | Palette dd 1 |
- | |
1379 | block_ofs dd 1 |
- | |
1380 | table_ptr dd 1 |
813 | mov esi, gifsrc |
1381 | - |