Rev 2469 | Rev 2476 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2469 | Rev 2475 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | ;* DESKTOP ICON MANAGER * |
3 | ;* DESKTOP ICON MANAGER * |
4 | ;* * |
4 | ;* * |
5 | ;* Compile with flat assembler * |
5 | ;* Compile with flat assembler * |
6 | ;* * |
6 | ;* * |
7 | ;******************************** |
7 | ;******************************** |
- | 8 | ;--------------------------------------------------------------------- |
|
- | 9 | ; version: 2.1 |
|
- | 10 | ; last update: 17/03/2012 |
|
- | 11 | ; changed by: Marat Zakiyanov aka Mario79, aka Mario |
|
- | 12 | ; changes: Global optimization! The program uses |
|
8 | ; 22.02.05 was modified for work with new multi-thread ICON. |
13 | ; only 161 KB of memory instead of 603 kb is now. |
- | 14 | ;--------------------------------------------------------------------- |
|
- | 15 | ; version: 2.02 |
|
- | 16 | ; last update: 15/03/2012 |
|
- | 17 | ; changed by: Marat Zakiyanov aka Mario79, aka Mario |
|
- | 18 | ; changes: some optimisations and code refactoring |
|
- | 19 | ;--------------------------------------------------------------------- |
|
- | 20 | ; version: 2.01 |
|
- | 21 | ; last update: 27/09/2011 |
|
9 | ; 8.03.07 ïåðåõîä íà 70 ôóíêöèþ by SPraid |
22 | ; changed by: Marat Zakiyanov aka Mario79, aka Mario |
- | 23 | ; changes: deactivate the window after click |
|
- | 24 | ; (working to kernel r.2244 and above) |
|
- | 25 | ;--------------------------------------------------------------------- |
|
- | 26 | ; Many fix's and changes created by: |
|
- | 27 | ; Halyavin, Diamond, Heavyiron, |
|
- | 28 | ; SPraid, Dunkaist |
|
- | 29 | ;--------------------------------------------------------------------- |
|
- | 30 | ; version: 2.00 |
|
- | 31 | ; last update: 22|02|2005 |
|
- | 32 | ; changed by: Willow and Mario79 |
|
- | 33 | ; changes: modified for work with new multi-thread ICON. |
|
10 | ;****************************************************************************** |
34 | ;****************************************************************************** |
11 | RAW_SIZE equ 350000 |
- | |
12 | ICON_SIZE equ 32*32*3 |
35 | ICON_SIZE equ 32*32*3 |
- | 36 | RAW_SIZE equ ICON_SIZE*32 ;350000 |
|
13 | GIF_SIZE equ 45000 |
37 | GIF_SIZE equ 12*1024 ;45000 |
14 | REC_SIZE equ 80 |
38 | REC_SIZE equ 80 |
15 | ICONS_DAT equ '/sys/ICONS.DAT' |
39 | ICONS_DAT equ '/sys/ICONS.DAT' |
16 | ICON_APP equ '/sys/ICON' |
40 | ICON_APP equ '/sys/ICON' |
17 | ICON_STRIP equ '/sys/ICONSTRP.GIF' |
41 | ICON_STRIP equ '/sys/ICONSTRP.GIF' |
18 | ;------------------------------------------------------------------------------ |
42 | ;------------------------------------------------------------------------------ |
19 | use32 |
43 | use32 |
20 | org 0x0 |
44 | org 0x0 |
21 | db 'MENUET01' ; 8 byte id |
45 | db 'MENUET01' ; 8 byte id |
22 | dd 0x01 ; header version |
46 | dd 0x01 ; header version |
23 | dd START ; start of code |
47 | dd START ; start of code |
24 | dd I_END ; size of image |
48 | dd IM_END ; size of image |
25 | dd icon_data+0x30000 ; memory for app |
49 | dd I_END ; memory for app |
26 | dd stack_area ; esp |
50 | dd stack_area ; esp |
27 | dd I_Param , 0x0 ; I_Param , I_Icon |
51 | dd I_Param ; boot parameters |
- | 52 | dd 0x0 ; path |
|
28 | ;------------------------------------------------------------------------------ |
53 | ;------------------------------------------------------------------------------ |
29 | include '../../../macros.inc' |
54 | include '../../../macros.inc' |
30 | include 'lang.inc' |
55 | include 'lang.inc' |
31 | COLOR_ORDER equ MENUETOS |
56 | COLOR_ORDER equ MENUETOS |
32 | include 'gif_lite.inc' |
57 | include 'gif_lite.inc' |
Line 62... | Line 87... | ||
62 | 87 | ||
63 | dec eax ; key in buffer ? |
88 | dec eax ; key in buffer ? |
64 | jz key |
89 | jz key |
65 | ;------------------------------------------------------------------------------ |
90 | ;------------------------------------------------------------------------------ |
66 | align 4 |
91 | align 4 |
67 | button: ; button |
92 | button: |
68 | mcall 17 ; get id |
93 | mcall 17 ; get id |
Line 69... | Line 94... | ||
69 | shr eax,8 |
94 | shr eax,8 |
70 | 95 | ||
Line 160... | Line 185... | ||
160 | mov esi,iconlst |
185 | mov esi,iconlst |
161 | call lst_path |
186 | call lst_path |
162 | mcall 70 |
187 | mcall 70 |
163 | ; (2) terminate all icons |
188 | ; (2) terminate all icons |
164 | or ecx,-1 |
189 | or ecx,-1 |
165 | mcall 9,I_END |
190 | mcall 9,process_table |
166 | mov edi,[ebx+30] |
191 | mov edi,[ebx+30] |
167 | ;-------------------------------------- |
192 | ;-------------------------------------- |
168 | align 4 |
193 | align 4 |
169 | newread2: |
194 | newread2: |
170 | mov esi,1 |
195 | mov esi,1 |
171 | ;-------------------------------------- |
196 | ;-------------------------------------- |
172 | align 4 |
197 | align 4 |
173 | newread: |
198 | newread: |
174 | inc esi |
199 | inc esi |
175 | mov ecx,esi |
200 | mov ecx,esi |
176 | mcall 9,I_END |
201 | mcall 9,process_table |
177 | cmp edi,[ebx+30] |
202 | cmp edi,[ebx+30] |
178 | je newread |
203 | je newread |
Line 179... | Line 204... | ||
179 | 204 | ||
180 | cmp esi,eax |
205 | cmp esi,eax |
Line 181... | Line 206... | ||
181 | jg all_terminated |
206 | jg apply_changes |
182 | 207 | ||
183 | mov eax,[ebx+10] ;[I_END+10] |
208 | mov eax,[ebx+10] |
184 | and eax,not 20202020h |
209 | and eax,not 20202020h |
185 | cmp eax,'@ICO' |
210 | cmp eax,'@ICO' |
186 | jz @f |
211 | jz @f |
187 | cmp eax,'ICON' |
212 | cmp eax,'ICON' |
188 | jne newread |
213 | jne newread |
189 | ;-------------------------------------- |
214 | ;-------------------------------------- |
190 | align 4 |
215 | align 4 |
191 | @@: |
216 | @@: |
192 | mov eax,51 |
217 | mov eax,51 |
Line 193... | Line 218... | ||
193 | cmp eax,[ebx+42] ;[I_END+42] |
218 | cmp eax,[ebx+42] |
194 | jne newread |
219 | jne newread |
Line 195... | Line 220... | ||
195 | 220 | ||
196 | cmp eax,[ebx+46] ;[I_END+46] |
221 | cmp eax,[ebx+46] |
197 | jne newread |
222 | jne newread |
Line 220... | Line 245... | ||
220 | .path: |
245 | .path: |
221 | db ICON_STRIP,0 |
246 | db ICON_STRIP,0 |
222 | rb 31-($-.path) |
247 | rb 31-($-.path) |
223 | ;------------------------------------------------------------------------------ |
248 | ;------------------------------------------------------------------------------ |
224 | align 4 |
249 | align 4 |
225 | all_terminated: |
- | |
226 | ;apply_changes: |
250 | apply_changes: |
227 | mov ebx, finfo_start |
251 | mov ebx, finfo_start |
228 | mov dword [ebx+8], boot_str+6 |
252 | mov dword [ebx+8], boot_str+6 |
229 | mov esi, iconname |
253 | mov esi, iconname |
230 | call lst_path |
254 | call lst_path |
231 | mcall 70 |
255 | mcall 70 |
Line 251... | Line 275... | ||
251 | sub eax,40 |
275 | sub eax,40 |
Line 252... | Line 276... | ||
252 | 276 | ||
253 | xor edx,edx ; bcd -> 10 |
277 | xor edx,edx ; bcd -> 10 |
254 | mov ebx,16 |
278 | mov ebx,16 |
255 | div ebx |
- | |
256 | ; imul eax,10 |
279 | div ebx |
257 | ; multiply x10 |
280 | ; multiply x10 |
258 | shl eax,1 ; multiply x2 |
281 | shl eax,1 ; multiply x2 |
259 | lea eax,[eax+eax*4] ; multiply x5 |
282 | lea eax,[eax+eax*4] ; multiply x5 |
Line 307... | Line 330... | ||
307 | jne no_f;ound |
330 | jne no_f;ound |
Line 308... | Line 331... | ||
308 | 331 | ||
309 | mcall 17 |
332 | mcall 17 |
310 | shr eax,8 |
333 | shr eax,8 |
311 | cmp eax,40 |
334 | cmp eax,40 |
312 | jb red;no_f;ound |
335 | jb red |
Line 313... | Line 336... | ||
313 | sub eax,40 |
336 | sub eax,40 |
314 | 337 | ||
315 | xor edx,edx |
338 | xor edx,edx |
316 | mov ebx,16 |
- | |
317 | div ebx |
339 | mov ebx,16 |
318 | ; imul eax,10 |
340 | div ebx |
319 | ; multiply x10 |
341 | ; multiply x10 |
320 | shl eax,1 ; multiply x2 |
342 | shl eax,1 ; multiply x2 |
Line 567... | Line 589... | ||
567 | call print_strings |
589 | call print_strings |
568 | popa |
590 | popa |
569 | ret |
591 | ret |
570 | ;------------------------------------------------------------------------------ |
592 | ;------------------------------------------------------------------------------ |
571 | align 4 |
593 | align 4 |
572 | key: ; key |
594 | key: |
573 | mcall 2 ; just read it and ignore |
595 | mcall 2 ; just read it and ignore |
574 | jmp still |
596 | jmp still |
575 | ;------------------------------------------------------------------------------ |
597 | ;------------------------------------------------------------------------------ |
576 | ; ********************************************* |
598 | ; ********************************************* |
577 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
599 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
Line 908... | Line 930... | ||
908 | ;-------------------------------------- |
930 | ;-------------------------------------- |
909 | align 4 |
931 | align 4 |
910 | apply_changes2: |
932 | apply_changes2: |
911 | mov edi,[icons] |
933 | mov edi,[icons] |
912 | mov esi,icon_data |
934 | mov esi,icon_data |
913 | mov ebp,0x5000 ; threads stack starting point |
935 | mov ebp,thread_stack+0x100 ;0x5000 ; threads stack starting point |
914 | ;-------------------------------------- |
936 | ;-------------------------------------- |
915 | align 4 |
937 | align 4 |
916 | start_new: |
938 | start_new: |
917 | mov eax,[esi] |
939 | mov eax,[esi] |
918 | mov [ebp-20],eax |
940 | mov [ebp-20],eax |
Line 921... | Line 943... | ||
921 | mov edx,ebp |
943 | mov edx,ebp |
922 | mov dword[ebp-4],esi |
944 | mov dword[ebp-4],esi |
923 | mcall 51,1,thread |
945 | mcall 51,1,thread |
924 | add ebp,0x100 |
946 | add ebp,0x100 |
Line -... | Line 947... | ||
- | 947 | ||
925 | 948 | ; change to next thread if mutex is blocked |
|
926 | mov eax,5 |
949 | mov eax,68 |
927 | mov ebx,1 |
950 | mov ebx,1 |
928 | ;-------------------------------------- |
951 | ;-------------------------------------- |
929 | align 4 |
952 | align 4 |
930 | wait_thread_start: ;wait until thread draw itself first time |
953 | wait_thread_start: ;wait until thread draw itself first time |
931 | cmp [create_thread_event],bl |
954 | cmp [create_thread_event],bl ;mutex |
932 | jz wait_thread_end |
955 | jz wait_thread_end |
933 | mcall |
956 | mcall |
934 | jmp wait_thread_start |
957 | jmp wait_thread_start |
935 | ;-------------------------------------- |
958 | ;-------------------------------------- |
Line 943... | Line 966... | ||
943 | align 4 |
966 | align 4 |
944 | close: |
967 | close: |
945 | or eax,-1 |
968 | or eax,-1 |
946 | mcall |
969 | mcall |
947 | ;------------------------------------------------------------------------------ |
970 | ;------------------------------------------------------------------------------ |
- | 971 | ; esp-28 = start of thread stack |
|
- | 972 | ; esp-24 = ??? |
|
- | 973 | ; esp-20 = 'AA-F' or... |
|
- | 974 | ; esp-16 = ??? SHL greedy maniac mode on! |
|
- | 975 | ; esp-12 = ebp+0 = X |
|
- | 976 | ; esp-8 = ebp+4 = Y |
|
- | 977 | ; esp-4 = ebp+8 = adress of icon_data |
|
- | 978 | ;------------------------------------------------------------------------------ |
|
948 | align 4 |
979 | align 4 |
949 | thread: |
980 | thread: |
950 | ; pop ebp ;ebp - address of our icon |
- | |
951 | sub esp,12 |
981 | sub esp,12 |
952 | mov ebp,esp |
982 | mov ebp,esp |
953 | sub esp,16 |
983 | sub esp,16 |
- | 984 | call shape_window |
|
954 | call draw_window2 |
985 | call draw_window2 |
955 | mov [create_thread_event],1 |
986 | mov [create_thread_event],1 |
956 | mcall 40,010101b |
987 | mcall 40,010101b |
957 | ;------------------------------------------------------------------------------ |
988 | ;------------------------------------------------------------------------------ |
958 | align 4 |
989 | align 4 |
Line 963... | Line 994... | ||
963 | 994 | ||
964 | cmp eax,3 |
995 | cmp eax,3 |
Line 965... | Line 996... | ||
965 | je button2 |
996 | je button2 |
966 | - | ||
967 | call get_bg_info |
- | |
968 | mov eax,5 |
997 | |
Line 969... | Line 998... | ||
969 | mov ebx,1 |
998 | call get_bg_info |
970 | call draw_icon2 |
999 | call draw_icon2_1 |
971 | 1000 | ||
972 | jmp still2 |
1001 | jmp still2 |
Line 980... | Line 1009... | ||
980 | mov [warea.by_x],eax |
1009 | mov [warea.by_x],eax |
981 | mov [warea.by_y],ebx |
1010 | mov [warea.by_y],ebx |
982 | add ebp,+12 |
1011 | add ebp,+12 |
983 | call calc_icon_pos |
1012 | call calc_icon_pos |
984 | add ebp,-12 |
1013 | add ebp,-12 |
985 | mcall 9,I_END,-1 |
1014 | mcall 9,process_table,-1 |
986 | mov eax,[I_END+process_information.box.left] |
1015 | mov eax,[process_table+process_information.box.left] |
987 | cmp eax,[ebp+0] |
1016 | cmp eax,[ebp+0] |
988 | jne @f |
1017 | jne @f |
989 | mov eax,[I_END+process_information.box.top] |
1018 | mov eax,[process_table+process_information.box.top] |
990 | cmp eax,[ebp+4] |
1019 | cmp eax,[ebp+4] |
991 | je .lp1 |
1020 | je .lp1 |
992 | ;-------------------------------------- |
1021 | ;-------------------------------------- |
993 | align 4 |
1022 | align 4 |
994 | @@: |
1023 | @@: |
Line 1004... | Line 1033... | ||
1004 | button2: |
1033 | button2: |
1005 | mcall 17 |
1034 | mcall 17 |
1006 | cmp ah, 2 |
1035 | cmp ah, 2 |
1007 | jnz still2 |
1036 | jnz still2 |
Line 1008... | Line 1037... | ||
1008 | 1037 | ||
1009 | mcall 9,I_END,-1 |
1038 | mcall 9,process_table,-1 |
1010 | mov ecx,[ebx+30] ; PID |
1039 | mov ecx,[ebx+30] ; PID |
1011 | mcall 18,21 |
1040 | mcall 18,21 |
1012 | mov edx,eax ; SLOT |
1041 | mov edx,eax ; SLOT |
1013 | mcall 18,7 |
1042 | mcall 18,7 |
Line 1112... | Line 1141... | ||
1112 | loop .l0 |
1141 | loop .l0 |
1113 | ret |
1142 | ret |
1114 | ;------------------------------------------------------------------------------ |
1143 | ;------------------------------------------------------------------------------ |
1115 | align 4 |
1144 | align 4 |
1116 | draw_picture: |
1145 | draw_picture: |
1117 | mov [image],0x3000 |
1146 | mov [image],image_area |
- | 1147 | ||
1118 | mov edi,[ebp+8] |
1148 | mov edi,[ebp+8] |
1119 | lea esi,[edi+12] |
1149 | lea esi,[edi+12] |
1120 | call atoi |
1150 | call atoi |
1121 | cmp eax,[icon_count] |
1151 | cmp eax,[icon_count] |
1122 | ja toponly.ex |
1152 | ja toponly.ex |
Line 1125... | Line 1155... | ||
1125 | shl eax,10 ; multiply x1024 |
1155 | shl eax,10 ; multiply x1024 |
Line 1126... | Line 1156... | ||
1126 | 1156 | ||
1127 | lea edi,[eax+strip_file+8] |
1157 | lea edi,[eax+strip_file+8] |
1128 | xor ebx,ebx |
1158 | xor ebx,ebx |
1129 | xor ecx,ecx |
1159 | xor ecx,ecx |
Line 1130... | Line 1160... | ||
1130 | mov esi,edi;strip_file+8+(32*3*32)*2 |
1160 | mov esi,edi |
1131 | 1161 | ||
1132 | mov [pixpos],0 |
1162 | mov [pixpos],0 |
1133 | ;-------------------------------------- |
1163 | ;-------------------------------------- |
Line 1146... | Line 1176... | ||
1146 | 1176 | ||
1147 | push esi |
1177 | push esi |
1148 | mov esi,edi |
1178 | mov esi,edi |
1149 | add esi,[pixpos] |
1179 | add esi,[pixpos] |
1150 | ;-------------------------------------- |
- | |
1151 | align 4 |
- | |
1152 | no_correction_pixpos: |
1180 | ;-------------------------------------- |
1153 | add [pixpos],3 |
1181 | add [pixpos],3 |
1154 | mov eax,[esi] |
1182 | mov eax,[esi] |
Line 1155... | Line 1183... | ||
1155 | and eax,0xffffff |
1183 | and eax,0xffffff |
Line 1216... | Line 1244... | ||
1216 | pop ecx |
1244 | pop ecx |
1217 | pop ebx |
1245 | pop ebx |
Line 1218... | Line 1246... | ||
1218 | 1246 | ||
1219 | mov edx,eax |
1247 | mov edx,eax |
1220 | mov eax,[image] |
1248 | mov eax,[image] |
1221 | mov [eax],edx |
1249 | |
1222 | mov [eax],dl |
1250 | mov [eax],dl |
1223 | inc eax |
1251 | inc eax |
- | 1252 | ror edx,8 |
|
1224 | ror edx,8 |
1253 | |
1225 | mov [eax],dl |
1254 | mov [eax],dl |
1226 | inc eax |
1255 | inc eax |
- | 1256 | ror edx,8 |
|
1227 | ror edx,8 |
1257 | |
- | 1258 | mov [eax],dl |
|
1228 | mov [eax],dl |
1259 | |
1229 | inc eax |
1260 | inc eax |
1230 | mov [image],eax |
1261 | mov [image],eax |
- | 1262 | inc ebx |
|
1231 | inc ebx |
1263 | |
1232 | mov eax,[yw] |
1264 | mov eax,[yw] |
1233 | inc eax |
1265 | inc eax |
1234 | cmp ebx,eax |
1266 | cmp ebx,eax |
- | 1267 | jb newb |
|
1235 | jnz newb |
1268 | |
Line 1236... | Line 1269... | ||
1236 | xor ebx,ebx |
1269 | xor ebx,ebx |
1237 | 1270 | ||
1238 | inc ecx |
1271 | inc ecx |
Line 1251... | Line 1284... | ||
1251 | jnz newb |
1284 | jnz newb |
1252 | ;-------------------------------------- |
1285 | ;-------------------------------------- |
1253 | align 4 |
1286 | align 4 |
1254 | toponly: |
1287 | toponly: |
1255 | xor edx,edx |
1288 | xor edx,edx |
1256 | mcall 7,0x3000,<52,52> |
1289 | mcall 7,image_area,<52,52> |
1257 | ;-------------------------------------- |
1290 | ;-------------------------------------- |
1258 | align 4 |
1291 | align 4 |
1259 | .ex: |
1292 | .ex: |
1260 | mov [load_pic],0 |
1293 | mov [load_pic],0 |
1261 | ret |
1294 | ret |
Line 1264... | Line 1297... | ||
1264 | draw_text: |
1297 | draw_text: |
1265 | mov esi,[ebp+8] |
1298 | mov esi,[ebp+8] |
1266 | add esi,3 |
1299 | add esi,3 |
1267 | push edi |
1300 | push edi |
1268 | mov edi,title |
1301 | mov edi,title |
1269 | ; mov ecx,8 |
- | |
1270 | ; cld |
- | |
1271 | ; rep movsb |
- | |
1272 | mov ecx,8/4 |
1302 | mov ecx,8/4 |
1273 | cld |
1303 | cld |
1274 | rep movsd |
1304 | rep movsd |
1275 | pop edi |
1305 | pop edi |
1276 | mov eax,title |
1306 | mov eax,title |
Line 1337... | Line 1367... | ||
1337 | 1367 | ||
1338 | ; DRAW WINDOW |
1368 | ; DRAW WINDOW |
1339 | xor eax,eax ; function 0 : define and draw window |
1369 | xor eax,eax ; function 0 : define and draw window |
1340 | mov ebx,[ebp+0-2] |
1370 | mov ebx,[ebp+0-2] |
1341 | mov ecx,[ebp+4-2] |
1371 | mov ecx,[ebp+4-2] |
1342 | add ebx,[yw] ; [x start] *65536 + [x size] |
1372 | mov bx,[yw] ; [x start] *65536 + [x size] |
1343 | add ecx,51 ; [y start] *65536 + [y size] |
1373 | mov cx,51 ; [y start] *65536 + [y size] |
1344 | mov edx,0x41000000 ; color of work area RRGGBB,8->color gl |
1374 | mov edx,0x41000000 ; color of work area RRGGBB,8->color gl |
Line 1345... | Line 1375... | ||
1345 | mcall |
1375 | mcall |
- | 1376 | ||
1346 | 1377 | mcall 8,51,50,0x40000002 ; button |
|
- | 1378 | ;-------------------------------------- |
|
- | 1379 | align 4 |
|
1347 | mcall 8,51,50,0x40000002 ; button |
1380 | draw_icon2_1: |
1348 | 1381 | ; change to next thread if mutex is blocked |
|
1349 | mov eax,5 |
1382 | mov eax,68 |
1350 | mov ebx,1 |
1383 | mov ebx,1 |
1351 | ;-------------------------------------- |
1384 | ;-------------------------------------- |
1352 | align 4 |
1385 | align 4 |
1353 | draw_icon2: |
1386 | draw_icon2: |
1354 | xchg [load_pic],bl |
1387 | xchg [load_pic],bl ;mutex |
1355 | test bl,bl |
1388 | test bl,bl |
1356 | je draw_icon_end |
1389 | je draw_icon_end |
1357 | mcall |
1390 | mcall |
1358 | jmp draw_icon2 |
1391 | jmp draw_icon2 |
1359 | ;-------------------------------------- |
1392 | ;-------------------------------------- |
- | 1393 | align 4 |
|
1360 | align 4 |
1394 | draw_icon_end: |
1361 | draw_icon_end: |
1395 | ; change to next thread if mutex is blocked |
1362 | mov eax,5 |
1396 | mov eax,68 |
1363 | mov ebx,1 |
1397 | mov ebx,1 |
1364 | ;-------------------------------------- |
1398 | ;-------------------------------------- |
1365 | align 4 |
1399 | align 4 |
1366 | draw_icon_2: |
1400 | draw_icon_2: |
1367 | xchg [draw_pic],bl |
1401 | xchg [draw_pic],bl ;mutex |
1368 | test bl,bl |
1402 | test bl,bl |
1369 | je draw_icon_end_2 |
1403 | je draw_icon_end_2 |
1370 | mcall |
1404 | mcall |
1371 | jmp draw_icon_2 |
1405 | jmp draw_icon_2 |
1372 | ;-------------------------------------- |
1406 | ;-------------------------------------- |
1373 | align 4 |
- | |
1374 | draw_icon_end_2: |
1407 | align 4 |
1375 | mcall 9,process_table,-1 |
1408 | draw_icon_end_2: |
1376 | call draw_picture |
1409 | call draw_picture |
1377 | call draw_text |
1410 | call draw_text |
1378 | mcall 12,2 |
1411 | mcall 12,2 |
- | 1412 | ret |
|
- | 1413 | ;------------------------------------------------------------------------------ |
|
- | 1414 | shape_window: |
|
- | 1415 | ; give the shape reference area |
|
- | 1416 | mcall 50,0,shape_reference |
|
- | 1417 | ; give the shape scale 32 x 32 -> 128 x 128 ecx = 2 |
|
- | 1418 | ; you dont have to give this, scale is 1:1 by default |
|
- | 1419 | ; mcall 50,1,2 |
|
- | 1420 | ret |
|
- | 1421 | ;------------------------------------------------------------------------------ |
|
- | 1422 | shape_reference: ; 32 x 32 ( window_size_X + 1 ) * ( window_size_Y + 1 ) |
|
- | 1423 | ||
- | 1424 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1425 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1426 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1427 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1428 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1429 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1430 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1431 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1432 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1433 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1434 | ||
- | 1435 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1436 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1437 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1438 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1439 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1440 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1441 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1442 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1443 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1444 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1445 | ||
- | 1446 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1447 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1448 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1449 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1450 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1451 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1452 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1453 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1454 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1455 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1456 | ||
- | 1457 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1458 | db 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0 |
|
- | 1459 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
- | 1460 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
- | 1461 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
- | 1462 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
- | 1463 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
- | 1464 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
- | 1465 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
- | 1466 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
|
- | 1467 | ||
- | 1468 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
|
- | 1469 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
|
- | 1470 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
|
- | 1471 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
|
- | 1472 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
|
- | 1473 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
|
- | 1474 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
|
- | 1475 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
|
- | 1476 | db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
|
- | 1477 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
- | 1478 | ||
- | 1479 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
|
1379 | ret |
1480 | db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
1380 | ;------------------------------------------------------------------------------ |
1481 | ;------------------------------------------------------------------------------ |
1381 | tl dd 8 |
1482 | tl dd 8 |
1382 | yw dd 51 |
1483 | yw: dd 51 |
Line 1383... | Line 1484... | ||
1383 | ya dd 0 |
1484 | ya dd 0 |
1384 | cur_btn dd 40 |
1485 | cur_btn dd 40 |
1385 | 1486 | ||
Line 1386... | Line 1487... | ||
1386 | draw_pic db 0 |
1487 | draw_pic db 0 |
1387 | load_pic db 0 |
- | |
1388 | create_thread_event db 0 |
- | |
1389 | - | ||
1390 | image dd 0x3000 |
- | |
1391 | - | ||
Line -... | Line 1488... | ||
- | 1488 | load_pic db 0 |
|
- | 1489 | create_thread_event db 0 |
|
- | 1490 | ||
- | 1491 | image dd image_area |
|
- | 1492 | ||
1392 | I_Param: |
1493 | IncludeUGlobals |
1393 | icon_data = I_END+0x1400 |
1494 | ;------------------------------------------------------------------------------ |
1394 | stack_area = I_END+0x3400-4 |
- | |
1395 | process_table = I_END+0x3400 |
- | |
1396 | - | ||
Line 1397... | Line 1495... | ||
1397 | bgrx dd ? |
1495 | IM_END: |
1398 | bgry dd ? |
1496 | ;------------------------------------------------------------------------------ |
1399 | param_str rb 31 |
1497 | align 4 |
1400 | 1498 | bgrx dd ? |
|
Line 1417... | Line 1515... | ||
1417 | addr dd ? |
1515 | addr dd ? |
1418 | cur_str dd ? |
1516 | cur_str dd ? |
1419 | cur_band dd ? |
1517 | cur_band dd ? |
1420 | sel_icon1 rd 1 |
1518 | sel_icon1 rd 1 |
1421 | icon_count rd 1 |
1519 | icon_count rd 1 |
- | 1520 | ;------------------------------------------------------------------------------ |
|
- | 1521 | align 4 |
|
- | 1522 | param_str rb 31 |
|
- | 1523 | ;------------------------------------------------------------------------------ |
|
- | 1524 | align 4 |
|
1422 | gif_file rb GIF_SIZE |
1525 | gif_file rb GIF_SIZE |
- | 1526 | ;------------------------------------------------------------------------------ |
|
- | 1527 | align 4 |
|
1423 | strip_file rb RAW_SIZE |
1528 | strip_file rb RAW_SIZE |
1424 | - | ||
1425 | IncludeUGlobals |
- | |
1426 | - | ||
1427 | I_END: |
- | |
1428 | ;------------------------------------------------------------------------------52,52>',13,10>'<',13,10>->->->45,280-2>32,32>(236+35),3>(260-24),(37+15-2)>(33-20),(34*8+2)>120,250>(23-15),(273-24)>(33-19),(34*8)>(260-23),32>(20-14),8>20,(129-2)>(329+2),(15-4)>20,259>(275+1+14),(13-2)>20,72>135,135>20,280>35,235>150,150>35,200>20,260>30,(390-14)>210,300>278+12,40>100,180> |
1529 | ;------------------------------------------------------------------------------ |
1429 | 1530 | align 4 |
|
- | 1531 | process_table: |
|
- | 1532 | rb 0x400 |
|
- | 1533 | ;------------------------------------------------------------------------------ |
|
- | 1534 | align 4 |
|
- | 1535 | icon_data: |
|
- | 1536 | rb 0x1000 |
|
- | 1537 | ;------------------------------------------------------------------------------ |
|
- | 1538 | align 4 |
|
- | 1539 | rb 0x1000 |
|
- | 1540 | stack_area: |
|
- | 1541 | ;------------------------------------------------------------------------------ |
|
- | 1542 | align 4 |
|
- | 1543 | I_Param: |
|
- | 1544 | rb 0x100 ; max 256 |
|
- | 1545 | ;------------------------------------------------------------------------------ |
|
- | 1546 | align 4 |
|
- | 1547 | thread_stack: |
|
- | 1548 | rb 0x100*48 ; max 48 icons |
|
- | 1549 | ;------------------------------------------------------------------------------ |
|
- | 1550 | align 4 |
|
- | 1551 | image_area: |
|
- | 1552 | rb 52*52*3 |
|
- | 1553 | ;------------------------------------------------------------------------------ |
|
- | 1554 | ;align 4 |
|
- | 1555 | ;shape_reference_0: |
|
- | 1556 | ; rb 52*52 ; ( window_size_X + 1 ) * ( window_size_Y + 1 ) |
|
- | 1557 | ;------------------------------------------------------------------------------ |
|
- | 1558 | I_END:52,52>',13,10>'<',13,10>->->->45,280-2>32,32>(236+35),3>(260-24),(37+15-2)>(33-20),(34*8+2)>120,250>(23-15),(273-24)>(33-19),(34*8)>(260-23),32>(20-14),8>20,(129-2)>(329+2),(15-4)>20,259>(275+1+14),(13-2)>20,72>135,135>20,280>35,235>150,150>35,200>20,260>30,(390-14)>210,300>278+12,40>100,180> |
|
- | 1559 |