Rev 4082 | Rev 4088 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3853 | GerdtR | 1 | |
4082 | GerdtR | 2 | ;idbRAlign equ 101 |
3 | ;idbRFixIcons equ 102 |
||
4 | ;idbRAdd equ 103 |
||
5 | ;idbRDel equ 104 |
||
6 | ;idbRProp equ 105 |
||
7 | |||
3853 | GerdtR | 8 | |
4036 | GerdtR | 9 | COLOR_SEL_BUT equ 00F7092Dh |
4082 | GerdtR | 10 | MAX_USER_BUTTONS equ 30 |
11 | |||
4036 | GerdtR | 12 | |
3853 | GerdtR | 13 | RButtonWin: |
14 | if lang eq ru |
||
4082 | GerdtR | 15 | mov [MinRMenuW],18*6+10 |
16 | else |
||
17 | mov [MinRMenuW],15*6+10 |
||
18 | end if |
||
19 | |||
20 | |||
21 | |||
22 | |||
3921 | mario79 | 23 | mcall 48,3,sc,40 |
4036 | GerdtR | 24 | |
25 | |||
26 | rol eax,16 |
||
27 | add al,DELTA_COLOR |
||
28 | jnc @f |
||
29 | mov al,0FFh |
||
30 | @@: |
||
31 | rol eax,16 |
||
32 | add al,DELTA_COLOR |
||
33 | jnc @f |
||
34 | mov al,0FFh |
||
35 | @@: |
||
36 | add ah,DELTA_COLOR |
||
37 | jnc @f |
||
38 | mov ah,0FFh |
||
39 | @@: |
||
40 | mov [sc.workH],eax |
||
41 | |||
42 | |||
43 | rol eax,16 |
||
44 | sub al,DELTA_COLOR |
||
45 | jnc @f |
||
46 | mov al,0FFh |
||
47 | @@: |
||
48 | rol eax,16 |
||
49 | sub al,DELTA_COLOR |
||
50 | jnc @f |
||
51 | mov al,0FFh |
||
52 | @@: |
||
53 | sub ah,DELTA_COLOR |
||
54 | jnc @f |
||
55 | mov ah,0FFh |
||
56 | @@: |
||
57 | mov [sc.workL],eax |
||
58 | |||
59 | |||
60 | |||
61 | |||
3853 | GerdtR | 62 | mov [SelIcon],eax |
63 | |||
64 | |||
4082 | GerdtR | 65 | m2m [RMenuW],[MinRMenuW] |
66 | |||
67 | |||
68 | jne .RBW1 |
||
69 | ;----------- если клик не по иконке ------------------------------------------------ |
||
70 | mov [NumMenuButt],0 |
||
71 | |||
72 | |||
3853 | GerdtR | 73 | mcall 68,12,dword[bufIni+32] ;выделяем память для подписей и путей запуска |
4082 | GerdtR | 74 | mov [RBMenuCP],eax ;GetUserBut берёт отсюда первоначальный указатель на память |
75 | stdcall [ini_enum_keys],IconIni,secRButt,GetUserBut |
||
3853 | GerdtR | 76 | |
77 | |||
4082 | GerdtR | 78 | add [NumMenuButt],4 |
79 | |||
80 | |||
81 | mov [RBMenuCP+ebx*8+8],RMenuAlign |
||
82 | cmp [bFixIcons],1 |
||
83 | je @f |
||
84 | mov [RBMenuCP+ebx*8+16],RMenuOffMoving |
||
85 | jmp .RBW11 |
||
86 | @@: |
||
87 | mov [RBMenuCP+ebx*8+16],RMenuOnMoving |
||
88 | .RBW11: |
||
89 | |||
90 | |||
91 | |||
92 | |||
93 | mov [RBMenuCP+ebx*8+8+4],0 |
||
94 | mov [RBMenuCP+ebx*8+16+4],0 |
||
95 | mov [RBMenuCP+ebx*8+24+4],0 |
||
96 | |||
97 | |||
98 | |||
99 | ;----------- если клик по иконке ------------------------------------------------ |
||
100 | .RBW1: |
||
101 | xor ebx,ebx |
||
102 | mov [NumMenuButt],5 |
||
103 | |||
104 | |||
105 | mov [RBMenuCP+ebx*8+8],RMenuAlign |
||
106 | cmp [bFixIcons],1 |
||
107 | je @f |
||
108 | mov [RBMenuCP+ebx*8+16],RMenuOffMoving |
||
109 | jmp .RBW21 |
||
110 | @@: |
||
111 | mov [RBMenuCP+ebx*8+16],RMenuOnMoving |
||
112 | .RBW21: |
||
113 | mov [RBMenuCP+ebx*8+24],RMenuDel |
||
114 | mov [RBMenuCP+ebx*8+32],RMenuProp |
||
115 | |||
116 | |||
117 | mov [RBMenuCP+ebx*8+8+4],0 |
||
118 | mov [RBMenuCP+ebx*8+16+4],0 |
||
119 | mov [RBMenuCP+ebx*8+24+4],0 |
||
120 | mov [RBMenuCP+ebx*8+32+4],0 |
||
121 | |||
122 | |||
123 | .RBW2: |
||
124 | |||
125 | |||
4036 | GerdtR | 126 | jne @f |
127 | mov eax,[NumMenuButt] |
||
4082 | GerdtR | 128 | shl eax,4 |
4036 | GerdtR | 129 | mov [RMenuH],ax |
4082 | GerdtR | 130 | jmp .rbw1 |
4036 | GerdtR | 131 | @@: |
132 | mov [RMenuH],16*5 |
||
133 | .rbw1: |
||
134 | |||
3853 | GerdtR | 135 | |
4082 | GerdtR | 136 | add [RMenuH],3 ;на рамку |
137 | |||
138 | |||
3853 | GerdtR | 139 | mcall 12,1 ;RedrawWinBeg |
3921 | mario79 | 140 | mov ebx,[MouseX] |
3853 | GerdtR | 141 | shl ebx,16 |
142 | mov bx,[RMenuW] |
||
143 | |||
4082 | GerdtR | 144 | |
3853 | GerdtR | 145 | shl ecx,16 |
146 | mov cx,[RMenuH] |
||
147 | |||
4082 | GerdtR | 148 | |
4036 | GerdtR | 149 | mov esi,01000000h |
3853 | GerdtR | 150 | xor eax,eax |
151 | int 40h |
||
152 | |||
153 | |||
4036 | GerdtR | 154 | inc bx |
155 | and ecx,0FFFFh |
||
156 | inc cx |
||
157 | mcall 13,,,[sc.work] |
||
158 | |||
159 | |||
4082 | GerdtR | 160 | mov ecx,[NumMenuButt] |
161 | xor eax,eax |
||
4084 | GerdtR | 162 | .DrawUB: |
3853 | GerdtR | 163 | push ecx |
164 | |||
165 | |||
4084 | GerdtR | 166 | stdcall DrawRBLine,eax,0 |
167 | pop eax |
||
168 | add eax,16 |
||
169 | |||
3853 | GerdtR | 170 | |
171 | loop .DrawUB |
||
172 | ;--------------- |
||
4082 | GerdtR | 173 | |
3853 | GerdtR | 174 | |
4082 | GerdtR | 175 | xor ebx,ebx ;верх |
176 | mov bx,[RMenuW] |
||
3853 | GerdtR | 177 | xor ecx,ecx |
4082 | GerdtR | 178 | mcall 38,,,[sc.workL] |
179 | |||
3853 | GerdtR | 180 | |
4082 | GerdtR | 181 | shl ebx,16 |
182 | mov bx,[RMenuW] |
||
183 | xor ecx,ecx |
||
184 | mov cx,[RMenuH] |
||
185 | mcall |
||
186 | |||
187 | |||
188 | mov bx,[RMenuW] |
||
189 | mov cx,[RMenuH] |
||
190 | shl ecx,16 |
||
3853 | GerdtR | 191 | mov cx,[RMenuH] |
4082 | GerdtR | 192 | mcall |
193 | |||
3853 | GerdtR | 194 | |
4082 | GerdtR | 195 | xor ecx,ecx |
196 | mov cx,[RMenuH] |
||
197 | mcall |
||
198 | |||
3853 | GerdtR | 199 | |
4036 | GerdtR | 200 | |
4082 | GerdtR | 201 | xor ebx,ebx |
202 | mov bx,[RMenuW] |
||
203 | add ebx,1*10000h-1 |
||
204 | mov ecx,00010001h |
||
205 | mcall ,,,[sc.workH] |
||
206 | |||
4036 | GerdtR | 207 | |
4082 | GerdtR | 208 | xor ecx,ecx |
209 | mov cx,[RMenuH] |
||
210 | add ecx,1*10000h-1 |
||
211 | mcall |
||
3853 | GerdtR | 212 | |
213 | |||
214 | |||
4082 | GerdtR | 215 | mcall 12,2 ;RedrawWinEnd |
3921 | mario79 | 216 | ;------------------------------------------------------------------- |
4082 | GerdtR | 217 | |
3853 | GerdtR | 218 | |
3921 | mario79 | 219 | mcall 18,21,dword[RBProcInfo+30] |
3853 | GerdtR | 220 | m2m dword[RBSlot],eax |
221 | |||
222 | |||
223 | mcall 10 ;WaitMessage |
||
3921 | mario79 | 224 | dec eax |
3853 | GerdtR | 225 | jz RBWRedraw |
226 | sub eax,2 |
||
227 | jz RBWButton |
||
228 | sub eax,3 |
||
229 | jz RBWMouse |
||
230 | jmp RBWMessages |
||
231 | |||
232 | |||
233 | mcall 17 ;GetButtonPressed |
||
3921 | mario79 | 234 | shr eax,8 |
3853 | GerdtR | 235 | |
4082 | GerdtR | 236 | |
237 | mov eax,[RBMenuCP+ebx*8+4] ;если сдесь 0, то клик по стандартной кнопке(которая не в ini) |
||
238 | test eax,eax |
||
239 | jnz .RBWB |
||
240 | mov eax,[RBMenuCP+ebx*8] ;смотрим, указатель на какую надпись в подписи |
||
241 | cmp eax,RMenuRedrawFon ; и по ней выбираем действие |
||
242 | jz RBRedrawFon |
||
3853 | GerdtR | 243 | cmp eax,RMenuAlign |
4082 | GerdtR | 244 | jz RBAlign |
3853 | GerdtR | 245 | cmp eax,RMenuOffMoving |
4082 | GerdtR | 246 | jz RBFixIcons |
3853 | GerdtR | 247 | cmp eax,RMenuOnMoving |
4082 | GerdtR | 248 | jz RBFixIcons |
249 | cmp eax,RMenuAdd |
||
250 | jz RBAdd |
||
3853 | GerdtR | 251 | cmp eax,RMenuDel |
4082 | GerdtR | 252 | jz RBDelete |
3853 | GerdtR | 253 | cmp eax,RMenuProp |
4082 | GerdtR | 254 | jz RBPropeties |
3853 | GerdtR | 255 | |
256 | |||
4082 | GerdtR | 257 | .RBWB: |
258 | mov dword[fiRunProg+8],0 |
||
3853 | GerdtR | 259 | mov dword[fiRunProg+21],eax |
260 | mcall 70,fiRunProg |
||
261 | |||
4082 | GerdtR | 262 | |
3853 | GerdtR | 263 | |
264 | |||
265 | call MouseInWin |
||
4082 | GerdtR | 266 | jnc .RBWMnoInWin ;если вне окна, то просто восстанавливаем предыдущую кнопку |
267 | |||
268 | |||
269 | and eax,0FFF0h ;нужен только Y, причём округлённый до верхней точки кратной 16(высота кнопки) |
||
270 | cmp [PredItem],eax |
||
271 | je .RBWMendLightBut |
||
272 | |||
273 | |||
274 | cmp eax,[NumMenuButt] |
||
275 | jae .RBWMnoInWin |
||
276 | |||
277 | |||
278 | je @f |
||
4036 | GerdtR | 279 | |
4082 | GerdtR | 280 | |
281 | |||
282 | |||
4036 | GerdtR | 283 | |
4082 | GerdtR | 284 | |
285 | jnc @f |
||
4036 | GerdtR | 286 | mcall 37,1 ;положение мыши относительно окна |
287 | and eax,0FFF0h ;нужен только Y, причём округлённый до верхней точки кратной 16(высота кнопки) |
||
4082 | GerdtR | 288 | mov [PredItem],eax |
4036 | GerdtR | 289 | stdcall DrawRBLine,eax,1 |
4082 | GerdtR | 290 | |
291 | |||
4036 | GerdtR | 292 | jmp .RBWMendLightBut |
4082 | GerdtR | 293 | |
4036 | GerdtR | 294 | |
295 | |||
4082 | GerdtR | 296 | cmp [PredItem],-1 ;восстановление предыдущей кнопки |
297 | je .RBWMendLightBut |
||
298 | |||
299 | |||
300 | mov [PredItem],-1 |
||
301 | |||
302 | |||
303 | mcall 37,2 ;GetMouseKey |
||
3921 | mario79 | 304 | test eax,111b |
3853 | GerdtR | 305 | jz RBWMessages |
306 | |||
307 | |||
4082 | GerdtR | 308 | jc RBWMessages |
4036 | GerdtR | 309 | |
3853 | GerdtR | 310 | |
311 | cmp [SelIcon],-1 |
||
4082 | GerdtR | 312 | jne @f |
313 | mcall 68,13,[RBMenuCP] ;освобождаем память с подписями и путями к прогам |
||
314 | @@: |
||
315 | mov [RButtonActiv],0 |
||
3853 | GerdtR | 316 | mcall -1 ;ExitProcess |
3921 | mario79 | 317 | |
3853 | GerdtR | 318 | |
319 | |||
320 | mcall 15,3 |
||
321 | jmp RBWExit |
||
322 | |||
323 | |||
324 | call AlignIcons |
||
325 | |||
326 | |||
327 | stdcall [ini_enum_sections],IconIni,Ini_SavePos |
||
328 | |||
329 | |||
330 | mov dword[fiRunProg+21],pthNotify |
||
331 | mcall 70,fiRunProg |
||
332 | mov [bNotSave],0 |
||
333 | |||
334 | |||
335 | |||
336 | |||
337 | xor dword[bFixIcons],1 |
||
338 | |||
339 | |||
340 | je @f |
||
341 | |||
342 | |||
343 | mov dword[fiRunProg+21],pthNotify |
||
344 | mcall 70,fiRunProg |
||
345 | mov [bNotSave],0 |
||
346 | |||
347 | |||
348 | jmp RBWExit |
||
349 | |||
350 | |||
351 | cmp [DlgAddActiv],1 |
||
3921 | mario79 | 352 | je RBWSetActivWin |
353 | mov [DlgAddActiv],1 |
||
354 | |||
355 | |||
356 | jmp RBWExit |
||
3853 | GerdtR | 357 | |
358 | |||
359 | mov eax,[SelIcon] |
||
360 | mov eax,[IconsOffs+eax*4] |
||
361 | stdcall [ini_del_section],IconIni,eax |
||
362 | |||
363 | |||
364 | |||
365 | |||
366 | mov dword[fiRunProg+21],pthNotify |
||
367 | mcall 70,fiRunProg |
||
368 | mov [bNotSave],0 |
||
369 | |||
370 | |||
371 | |||
372 | |||
373 | cmp [DlgAddActiv],1 |
||
3921 | mario79 | 374 | je RBWSetActivWin |
375 | mov [DlgAddActiv],1 |
||
376 | |||
377 | |||
378 | jmp RBWExit |
||
3853 | GerdtR | 379 | |
380 | |||
3921 | mario79 | 381 | mcall 18,3,[slotDlgAdd] |
382 | jmp RBWExit |
||
383 | |||
3853 | GerdtR | 384 | |
4082 | GerdtR | 385 | |
386 | |||
387 | mov bx,[RMenuW] |
||
388 | add ebx,2*10000h-3 |
||
389 | mov ecx,[y] |
||
390 | add ecx,2 |
||
391 | shl ecx,16 |
||
392 | mov cx,16;-1-2 |
||
393 | cmp [active],1 |
||
394 | jne @f |
||
395 | mov edx,[sc.work_button] |
||
396 | jmp .L1 |
||
397 | @@: |
||
398 | mov edx,[sc.work] |
||
399 | .L1: |
||
400 | mcall 13 |
||
401 | |||
402 | |||
403 | xor ebx,ebx ;верх |
||
404 | mov bx,[RMenuW] |
||
405 | add ebx,2*10000h-3 |
||
406 | mov cx,word[y] |
||
407 | shl ecx,16 |
||
408 | mov cx,word[y] |
||
409 | add ecx,00020002h |
||
410 | |||
411 | |||
412 | jne @f |
||
413 | mov edx,[sc.workL] |
||
414 | jmp .L3 |
||
415 | @@: |
||
416 | mov edx,[sc.work] |
||
417 | .L3: |
||
418 | |||
419 | |||
420 | |||
421 | |||
422 | mov cx,word[y] |
||
423 | shl ecx,16 |
||
424 | mov cx,word[y] |
||
425 | add ecx,00020002h+16 |
||
426 | |||
427 | |||
428 | jne @f |
||
429 | mov edx,[sc.workL] |
||
430 | |||
431 | |||
432 | |||
433 | |||
434 | |||
435 | |||
436 | mov bx,[RMenuW] |
||
437 | add ebx,2*10000h-3 |
||
438 | mov cx,word[y] |
||
439 | shl ecx,16 |
||
440 | mov cx,word[y] |
||
441 | add ecx,16*10000h+16+00020002h |
||
442 | |||
443 | |||
444 | jne @f |
||
445 | mov edx,[sc.workH] |
||
446 | @@: |
||
447 | |||
448 | |||
449 | |||
450 | |||
451 | shl ebx,16 |
||
452 | mov bx,[RMenuW] |
||
453 | add ebx,-2*10000h-2 |
||
454 | mov cx,word[y] |
||
455 | shl ecx,16 |
||
456 | mov cx,word[y] |
||
457 | add ecx,00020002h+16 |
||
458 | |||
459 | |||
460 | jne @f |
||
461 | mov edx,[sc.workH] |
||
462 | @@: |
||
463 | |||
464 | |||
465 | |||
466 | |||
467 | shr eax,4 |
||
468 | mov edx,[RBMenuCP+eax*8] |
||
469 | |||
470 | |||
471 | mov ebx,[y] |
||
472 | add ebx,7*10000h+7 |
||
473 | |||
474 | |||
475 | jne @f |
||
476 | mov ecx,[sc.work_button_text] |
||
477 | jmp .L2 |
||
478 | @@: |
||
479 | mov ecx,[sc.work_text] |
||
480 | .L2: |
||
481 | |||
482 | |||
483 | |||
484 | |||
485 | |||
486 | |||
487 | endp |
||
488 | |||
489 | |||
490 | |||
491 | mcall 37,0 ;GetMousePos |
||
4036 | GerdtR | 492 | xor ebx,ebx |
493 | mov bx,ax ;y |
||
494 | shr eax,16 ;x |
||
495 | |||
3853 | GerdtR | 496 | |
4036 | GerdtR | 497 | mov cx,bx |
498 | mov bx,ax |
||
499 | |||
500 | |||
501 | cmp eax,[RBSlot] |
||
502 | jne @f |
||
503 | stc |
||
504 | ret |
||
505 | @@: |
||
506 | clc |
||
507 | ret |
||
508 | endp |
||
509 | |||
510 | |||
511 | |||
3853 | GerdtR | 512 | local posX:WORD,\ |
513 | posY:WORD,\ |
||
514 | negatX:WORD,\ |
||
515 | negatY:WORD |
||
516 | |||
517 | |||
518 | |||
519 | |||
520 | test ecx,ecx |
||
521 | jnz .AlignIco |
||
522 | ret |
||
523 | .AlignIco: |
||
524 | push ecx |
||
525 | or ecx,-1 |
||
526 | mov edi,dword[IconsOffs+ebx] |
||
527 | xor eax,eax |
||
528 | repne scasb |
||
529 | repne scasb |
||
530 | repne scasb |
||
531 | repne scasb |
||
532 | |||
533 | |||
534 | |||
535 | |||
536 | mov ax,[edi+2] |
||
537 | test ax,8000h |
||
538 | jz @f |
||
539 | neg ax |
||
540 | mov word[negatX],1 |
||
541 | @@: |
||
542 | mov [posX],ax |
||
543 | |||
544 | |||
545 | test ax,8000h |
||
546 | jz @f |
||
547 | neg ax |
||
548 | mov word[negatY],1 |
||
549 | @@: |
||
550 | mov [posY],ax |
||
551 | |||
552 | |||
553 | mov ax,[posY] |
||
554 | mov dx,ALIGN_SIZE |
||
555 | |||
556 | |||
557 | jb .AI0 |
||
558 | @@: sub ax,dx |
||
559 | cmp ax,dx |
||
560 | jae @b |
||
561 | .AI0: |
||
562 | |||
563 | |||
564 | cmp dx,ALIGN_SIZE/2 |
||
565 | jb .AI1 |
||
566 | |||
567 | |||
568 | sub ax,dx |
||
569 | add [posY],ax |
||
570 | |||
571 | |||
572 | .AI1: |
||
573 | sub [posY],dx |
||
574 | .AI2: |
||
575 | ;----- |
||
576 | mov ax,[posX] |
||
577 | mov dx,ALIGN_SIZE |
||
578 | |||
579 | |||
580 | jb .AI3 |
||
581 | @@: sub ax,dx |
||
582 | cmp ax,dx |
||
583 | jae @b |
||
584 | .AI3: |
||
585 | |||
586 | |||
587 | cmp dx,ALIGN_SIZE/2 |
||
588 | jb .AI4 |
||
589 | |||
590 | |||
591 | sub ax,dx |
||
592 | add [posX],ax |
||
593 | |||
594 | |||
595 | .AI4: |
||
596 | sub [posX],dx |
||
597 | .AI5: |
||
598 | |||
599 | |||
600 | mov ax,[posX] |
||
601 | |||
602 | |||
603 | jne @f |
||
604 | neg ax |
||
605 | inc ax |
||
606 | jmp .AI6 |
||
607 | @@: |
||
608 | |||
609 | |||
610 | shr dx,1 |
||
611 | cmp ax,dx |
||
612 | jbe .AI6 |
||
613 | sub ax,[ScreenX] |
||
614 | .AI6: |
||
615 | mov word[edi+2],ax |
||
616 | |||
617 | |||
618 | |||
619 | cmp [negatY],1 |
||
620 | jne @f |
||
621 | neg ax |
||
622 | inc ax |
||
623 | jmp .AI7 |
||
624 | @@: |
||
625 | |||
626 | |||
627 | shr dx,1 |
||
628 | cmp ax,dx |
||
629 | jbe .AI7 |
||
630 | sub ax,[ScreenY] |
||
631 | .AI7: |
||
632 | mov word[edi],ax |
||
633 | |||
634 | |||
635 | |||
636 | |||
637 | |||
638 | |||
639 | add ebx,4 |
||
640 | dec ecx |
||
641 | jnz .AlignIco |
||
642 | ; loop .AlignIco |
||
643 | |||
644 | |||
645 | |||
646 | ; mcall 70,fInfo |
||
647 | ret |
||
648 | endp |
||
649 | |||
650 | |||
651 | proc GetUserBut stdcall,f_name,sec_name,key_name,key_value |
||
652 | cmp [NumMenuButt],MAX_USER_BUTTONS |
||
4082 | GerdtR | 653 | jne @f |
3853 | GerdtR | 654 | ret |
655 | @@: |
||
656 | |||
657 | |||
658 | |||
659 | |||
660 | xor eax,eax |
||
661 | or ecx,-1 |
||
662 | repne scasb |
||
663 | sub edi,[key_name] |
||
664 | mov eax,edi |
||
665 | shl eax,1 |
||
666 | lea eax,[eax*2+eax+5*2] |
||
667 | cmp ax,[RMenuW] |
||
668 | jbe @f |
||
669 | mov [RMenuW],ax |
||
670 | @@: |
||
671 | |||
672 | |||
4082 | GerdtR | 673 | |
3853 | GerdtR | 674 | |
675 | mov edi,[RBMenuCP+ebx*8] |
||
4082 | GerdtR | 676 | @@: lodsb |
3853 | GerdtR | 677 | stosb |
678 | test al,al |
||
679 | jnz @b |
||
680 | |||
681 | |||
682 | |||
4082 | GerdtR | 683 | mov esi,[key_value] |
3853 | GerdtR | 684 | @@: lodsb |
685 | stosb |
||
686 | test al,al |
||
687 | jnz @b |
||
688 | |||
689 | |||
4082 | GerdtR | 690 | |
3853 | GerdtR | 691 | |
4082 | GerdtR | 692 | |
3853 | GerdtR | 693 | |
694 | mov eax,1 |
||
695 | ret |
||
696 | endp |
||
697 | |||
698 | |||
699 | push ebx edi esi |
||
700 | |||
3921 | mario79 | 701 | |
3853 | GerdtR | 702 | .SearchSect: |
703 | mov edi,[IconsOffs+ebx*4] |
||
704 | mov esi,[sec_name] |
||
705 | @@: |
||
706 | lodsb |
||
707 | scasb |
||
708 | jne @f |
||
709 | test al,al |
||
710 | jnz @b |
||
711 | |||
712 | |||
713 | @@: |
||
714 | |||
715 | |||
716 | cmp ebx,[MaxNumIcon] |
||
717 | jb .SearchSect |
||
718 | |||
719 | |||
720 | pop esi edi ebx |
||
721 | ret |
||
722 | |||
723 | |||
724 | or ecx,-1 |
||
725 | repne scasb |
||
726 | repne scasb |
||
727 | repne scasb |
||
728 | |||
729 | |||
3921 | mario79 | 730 | movzx eax,word[edi+2] |
3853 | GerdtR | 731 | test eax,8000h |
732 | jz @f |
||
733 | or eax,0FFFF0000h |
||
734 | @@: |
||
735 | |||
736 | |||
737 | |||
738 | |||
739 | test eax,8000h |
||
740 | jz @f |
||
741 | or eax,0FFFF0000h |
||
742 | @@: |
||
743 | |||
744 | |||
745 | |||
746 | |||
747 | pop esi edi ebx |
||
748 | ret |
||
749 | endp |
||
750 |