Rev 7448 | Rev 7460 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7448 | Rev 7459 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
3 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
3 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
4 | ; Compile with FASM |
4 | ; Compile with FASM |
5 | ; Version 0.3.6: Oct 9, 2018 |
5 | ; Version 0.3.7: Oct 14, 2018 |
Line 6... | Line 6... | ||
6 | 6 | ||
7 | ; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage |
7 | ; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage |
8 | ; All rights reserved. |
8 | ; All rights reserved. |
9 | ; Redistribution and use in source and binary forms, with or without modification, |
9 | ; Redistribution and use in source and binary forms, with or without modification, |
Line 113... | Line 113... | ||
113 | invoke edit_box_mouse, editLU ;ïðîâåðêà ñîáûòèé ìûøè äëÿ editBox'îâ |
113 | invoke edit_box_mouse, editLU ;ïðîâåðêà ñîáûòèé ìûøè äëÿ editBox'îâ |
114 | invoke edit_box_mouse, editLD |
114 | invoke edit_box_mouse, editLD |
115 | invoke edit_box_mouse, editRU |
115 | invoke edit_box_mouse, editRU |
116 | invoke edit_box_mouse, editRD |
116 | invoke edit_box_mouse, editRD |
117 | ;stdcall [kmainmenu_dispatch_cursorevent], [modeMenu] ;ïðîâåðêà ìûøè äëÿ êîìáîáîêñà |
117 | ;stdcall [kmainmenu_dispatch_cursorevent], [modeMenu] ;ïðîâåðêà ìûøè äëÿ êîìáîáîêñà |
- | 118 | invoke edit_box_mouse, editRadius |
|
Line 118... | Line 119... | ||
118 | 119 | ||
Line 119... | Line 120... | ||
119 | jmp event_wait |
120 | jmp event_wait |
Line 125... | Line 126... | ||
125 | 126 | ||
126 | key: ; Keypress event handler |
127 | key: ; Keypress event handler |
127 | mov eax, 2 ; The key is returned in ah. The key must be |
128 | mov eax, 2 ; The key is returned in ah. The key must be |
Line -... | Line 129... | ||
- | 129 | mcall ; read and cleared from the system queue. |
|
128 | mcall ; read and cleared from the system queue. |
130 | |
129 | 131 | ;push eax |
|
130 | invoke edit_box_key, editLU |
132 | invoke edit_box_key, editLU |
131 | invoke edit_box_key, editLD |
133 | invoke edit_box_key, editLD |
- | 134 | invoke edit_box_key, editRU |
|
- | 135 | invoke edit_box_key, editRD |
|
- | 136 | invoke edit_box_key, editRadius |
|
- | 137 | ;pop eax |
|
- | 138 | ||
- | 139 | cmp eax, 1 |
|
- | 140 | je event_wait ;.end ;@f |
|
- | 141 | cmp word[hkSymbol], 0 |
|
- | 142 | jne event_wait ;.end ;@f |
|
- | 143 | cmp al, 0 |
|
- | 144 | jne .next |
|
- | 145 | mov byte[hkSymbol], ah |
|
- | 146 | ||
- | 147 | push eax ecx esi ;ñîõðàíÿåì ñêàíêîä êëàâèøè |
|
- | 148 | shr eax, 16 |
|
- | 149 | mov byte[keyscan], al |
|
- | 150 | mov ecx, 0 |
|
- | 151 | mov cl, al ;byte[keyscan] |
|
- | 152 | mov esi, keystr.data |
|
- | 153 | call IntToStr |
|
- | 154 | ||
- | 155 | ;ñ÷èòàåì ïîëó÷åííûé ðàçìåð ñòðîêè |
|
- | 156 | xor ecx, ecx |
|
- | 157 | mov esi, keystr.data |
|
- | 158 | @@: |
|
- | 159 | cmp byte[esi], 0 |
|
- | 160 | je @f |
|
- | 161 | inc esi |
|
- | 162 | inc ecx |
|
- | 163 | ;cmp ecx, 4 |
|
- | 164 | ;je @f |
|
- | 165 | jmp @b |
|
- | 166 | @@: |
|
- | 167 | ;è ñîõðàíÿåì åãî |
|
- | 168 | mov dword[keystr.size], ecx |
|
- | 169 | ||
- | 170 | ; cmp ecx, 3 |
|
- | 171 | ; jbe @f |
|
- | 172 | ; mcall -1 |
|
- | 173 | ; @@: |
|
- | 174 | ||
- | 175 | pop esi ecx eax |
|
- | 176 | ||
- | 177 | jmp red |
|
- | 178 | .next: |
|
- | 179 | ;cmp al, 2 |
|
- | 180 | ;jne @f |
|
- | 181 | ;cmp ah, 0 |
|
- | 182 | ;jne @f |
|
- | 183 | ;ñ÷èòûâàåì óïðàâëÿþùèå êëàâèøè |
|
- | 184 | ;shr eax, 16 |
|
- | 185 | ;bt eax, 0 ;left shift |
|
- | 186 | ;jne @f |
|
- | 187 | ;mov byte[hkSymbol], 2 |
|
- | 188 | ;jmp red |
|
132 | invoke edit_box_key, editRU |
189 | @@: |
Line 133... | Line 190... | ||
133 | invoke edit_box_key, editRD |
190 | ;.end: |
134 | jmp event_wait ; Just read the key, ignore it and jump to event_wait. |
191 | jmp event_wait ; Just read the key, ignore it and jump to event_wait. |
135 | 192 | ||
Line 180... | Line 237... | ||
180 | mov eax, dword[pi+34] |
237 | mov eax, dword[pi+34] |
181 | add eax, buttonModeX ;+ 5 |
238 | add eax, buttonModeX ;+ 5 |
182 | mov word[coordModeMenu.x], ax |
239 | mov word[coordModeMenu.x], ax |
Line 183... | Line 240... | ||
183 | 240 | ||
184 | mov eax, dword[pi+38] |
241 | mov eax, dword[pi+38] |
185 | add eax, buttonModeY + 17 ;20 ;42 |
242 | add eax, buttonModeY + 13 ;17 |
Line 186... | Line 243... | ||
186 | mov word[coordModeMenu.y], ax |
243 | mov word[coordModeMenu.y], ax |
187 | 244 | ||
188 | stdcall [ksubmenu_draw], [modeMenu], coordModeMenu |
245 | stdcall [ksubmenu_draw], [modeMenu], coordModeMenu |
189 | pop ecx ebx eax |
246 | pop ecx ebx eax |
- | 247 | jmp event_wait |
|
- | 248 | @@: |
|
- | 249 | cmp ah, 9 |
|
- | 250 | jne @f |
|
- | 251 | mov word[hkSymbol], 0 |
|
190 | jmp event_wait |
252 | jmp red ;event_wait |
191 | @@: |
253 | @@: |
192 | cmp ah, 110 |
254 | cmp ah, 110 |
193 | jne @f |
255 | jne @f |
194 | mov byte[mode], 48 ;'0' |
256 | mov byte[mode], 48 ;'0' |
Line 225... | Line 287... | ||
225 | .data_adr dd 0 ;óêàçàòåëü íà äàííûå |
287 | .data_adr dd 0 ;óêàçàòåëü íà äàííûå |
226 | .path db 0 |
288 | .path db 0 |
227 | .path_adr dd fileName ;ïóòü |
289 | .path_adr dd fileName ;ïóòü |
Line 228... | Line 290... | ||
228 | 290 | ||
229 | ;ñòðîêà ïàðàìåòðîâ ïî óìîë÷àíèþ è å¸ ðàçìåð |
291 | ;ñòðîêà ïàðàìåòðîâ ïî óìîë÷àíèþ è å¸ ðàçìåð |
230 | defaultDataForConfig db 121,13,10,'/rd/1/HACONFIG',13,10,'/rd/1/HACONFIG',13,10,'/rd/1/HACONFIG',13,10,'/rd/1/HACONFIG',13,10 |
292 | defaultDataForConfig db 121,13,10,'/rd/1/HACONFIG',13,10,'/rd/1/HACONFIG',13,10,'/rd/1/HACONFIG',13,10,'/rd/1/HACONFIG',13,10,'Space',13,10,'57',13,10,'10',13,10,'s',13,10 |
Line 231... | Line 293... | ||
231 | defaultDataSize = 48+19 |
293 | defaultDataSize = 85 ;48+19+4 |
232 | 294 | ||
233 | 295 | ||
Line 269... | Line 331... | ||
269 | push eax ebx ecx |
331 | push eax ebx ecx |
270 | ;mov dword[createFile.data_adr], defaultDataForConfig |
332 | ;mov dword[createFile.data_adr], defaultDataForConfig |
271 | ;mov dword[createFile.size], defaultDataSize |
333 | ;mov dword[createFile.size], defaultDataSize |
Line 272... | Line 334... | ||
272 | 334 | ||
273 | ;âû÷èñëèì ðàçìåð ôàéëà êîíôèãóðàöèè â áàéòàõ |
335 | ;âû÷èñëèì ðàçìåð ôàéëà êîíôèãóðàöèè â áàéòàõ |
274 | mov ecx, 5*2+1 ;1 áàéò íà ñîñòîÿíèå àêòèâíîñòè è 5 ïàð ïåðåíîñîâ ñòðîê (ñèìâîëû 13, 10) |
336 | mov ecx, 9*2+1 ;1 áàéò íà ñîñòîÿíèå àêòèâíîñòè è 9 ïàð ïåðåíîñîâ ñòðîê (ñèìâîëû 13, 10) |
275 | add ecx, dword[editLU.size] ;ïëþñ ðàçìåð êàæäîé ñòðîêè â áàéòàõ |
337 | add ecx, dword[editLU.size] ;ïëþñ ðàçìåð êàæäîé ñòðîêè â áàéòàõ |
276 | add ecx, dword[editLD.size] |
338 | add ecx, dword[editLD.size] |
277 | add ecx, dword[editRU.size] |
339 | add ecx, dword[editRU.size] |
- | 340 | add ecx, dword[editRD.size] ;dataBuffer.size4] |
|
- | 341 | add ecx, dword[editRadius.size] |
|
- | 342 | add ecx, dword[hkSize] ;ðàçìåð èìåíè àêòèâàöèîííîé êíîïêè |
|
- | 343 | add ecx, dword[keystr.size] ;ðàçìåð ñêàíêîäà àêòèâàöèîííîé êíîïêè |
|
- | 344 | inc ecx ; åù¸ 1 áàéò äëÿ õðàíåíèÿ ðàçìåðà ýëåìåíòîâ |
|
- | 345 | ;mov ecx, 85 |
|
- | 346 | ||
- | 347 | cmp dword[keystr.size], 3 |
|
- | 348 | jbe @f |
|
- | 349 | ;mcall -1 |
|
Line 278... | Line 350... | ||
278 | add ecx, dword[editRD.size] ;dataBuffer.size4] |
350 | @@: |
279 | 351 | ||
280 | ;åñëè çàäàíû ïóñòûå ñòðîêè, òî ìû àâòîìàòè÷åñêè äîáàâëÿåì çíàê ìèíóñ, çíà÷èò ðàçìåð +1 áàéò |
352 | ;åñëè çàäàíû ïóñòûå ñòðîêè, òî ìû àâòîìàòè÷åñêè äîáàâëÿåì çíàê ìèíóñ, çíà÷èò ðàçìåð +1 áàéò |
281 | cmp dword[editLU.size], 0 |
353 | cmp dword[editLU.size], 0 |
Line 302... | Line 374... | ||
302 | 374 | ||
303 | ;çàïîëíèì áóôåð ñîäåðæèìîãî: |
375 | ;çàïîëíèì áóôåð ñîäåðæèìîãî: |
304 | ;cmp byte[mode], 0 |
376 | ;cmp byte[mode], 0 |
305 | ;jne @f |
377 | ;jne @f |
306 | ;@@: |
- | |
Line 307... | Line 378... | ||
307 | ; |
378 | ;@@: |
308 | 379 | ||
309 | push ebx ;ñîõðàíÿåì âûáðàííûé ðåæèì |
380 | push ebx ;ñîõðàíÿåì âûáðàííûé ðåæèì |
310 | mov bl, byte[mode] |
381 | mov bl, byte[mode] |
Line 335... | Line 406... | ||
335 | mov esi, dataBuffer.4 |
406 | mov esi, dataBuffer.4 |
336 | mov ebx, dataBuffer.size4 |
407 | mov ebx, dataBuffer.size4 |
337 | call copyParam |
408 | call copyParam |
338 | call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè |
409 | call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè |
Line -... | Line 410... | ||
- | 410 | ||
- | 411 | ;ñîõðàíÿåì êíîïêó àêòèâàöèè |
|
- | 412 | call saveKey |
|
- | 413 | call addPerenos |
|
- | 414 | ||
- | 415 | ;ñîõðàíÿåì ñêàíêîä êíîïêè |
|
- | 416 | mov esi, keystr.data ;çàïèñûâàåì ñòðîêó keystr â ôàéë |
|
- | 417 | xor ebx, ebx |
|
- | 418 | @@: |
|
- | 419 | cmp byte[esi], 0 |
|
- | 420 | je @f |
|
- | 421 | mov bl, byte[esi] |
|
- | 422 | mov byte[eax], bl |
|
- | 423 | inc eax |
|
- | 424 | inc esi |
|
- | 425 | cmp esi, keystr.size-1 |
|
- | 426 | jae @f |
|
- | 427 | jmp @b |
|
- | 428 | @@: |
|
- | 429 | call addPerenos |
|
- | 430 | ||
- | 431 | ;ñîõðàíÿåì ðàäèóñ |
|
- | 432 | ;!!! åñëè ðàäèóñ îñòàâëåí ïóñòûì, òî íóæíî ñîõðàíÿòü çíà÷åíèå ïî óìîë÷àíèþ (ñåé÷àñ ïèøåòñÿ '-') |
|
- | 433 | mov esi, radiusBuffer.data |
|
- | 434 | mov ebx, editRadius.size ;radiusBuffer.size |
|
- | 435 | call copyParam |
|
- | 436 | call addPerenos |
|
- | 437 | ||
- | 438 | ;äîáàâëÿåì ðàçìåð ýëåìåíòîâ |
|
- | 439 | push ebx ;ñîõðàíÿåì âûáðàííûé ðåæèì |
|
- | 440 | mov bl, byte[sizeStyle] |
|
- | 441 | mov byte[eax], bl |
|
- | 442 | pop ebx |
|
- | 443 | inc eax |
|
- | 444 | call addPerenos |
|
339 | 445 | ||
Line 340... | Line 446... | ||
340 | pop ebx esi |
446 | pop ebx esi |
341 | 447 | ||
Line 438... | Line 544... | ||
438 | mov dword[dataBuffer.size3], eax |
544 | mov dword[dataBuffer.size3], eax |
Line 439... | Line 545... | ||
439 | 545 | ||
440 | mov eax, dword[editRD.size] |
546 | mov eax, dword[editRD.size] |
Line -... | Line 547... | ||
- | 547 | mov dword[dataBuffer.size4], eax |
|
- | 548 | ||
- | 549 | mov eax, dword[editRadius.size] |
|
441 | mov dword[dataBuffer.size4], eax |
550 | mov dword[radiusBuffer.size], eax |
442 | 551 | ||
Line 443... | Line 552... | ||
443 | pop eax |
552 | pop eax |
Line 472... | Line 581... | ||
472 | cmp bl, 'n' ;åñëè n - òî ðåæèì "îòêëþ÷åíî" |
581 | cmp bl, 'n' ;åñëè n - òî ðåæèì "îòêëþ÷åíî" |
473 | jne @f |
582 | jne @f |
474 | mov byte[mode], 48 ;'0' |
583 | mov byte[mode], 48 ;'0' |
475 | jmp loadConfig.modeEnd |
584 | jmp loadConfig.modeEnd |
476 | @@: |
585 | @@: |
- | 586 | cmp bl, 'y' ;åñëè y - òî êëàññè÷åñêèé ðåæèì |
|
- | 587 | jne @f |
|
- | 588 | mov byte[mode], 49 ;'1' |
|
- | 589 | jmp loadConfig.modeEnd |
|
- | 590 | @@: |
|
- | 591 | mov byte[mode], 48 ;'0' èíà÷å ïî óìîë÷àíèþ îòêëþ÷åíî |
|
477 | mov byte[mode], 49 ;'1' èíà÷å ïî óìîë÷àíèþ âêëþ÷¸í êëàññè÷åñêèé ðåæèì ðàáîòû |
592 | ;mov byte[mode], 49 ;'1' èíà÷å ïî óìîë÷àíèþ âêëþ÷¸í êëàññè÷åñêèé ðåæèì ðàáîòû |
478 | .modeEnd: |
593 | .modeEnd: |
479 | pop ebx |
594 | pop ebx |
480 | ;jmp loadConfig.end ;êîìàíäà äëÿ óäîáñòâà îòëàäêè è ïîèñêà îøèáîê |
595 | ;jmp loadConfig.end ;êîìàíäà äëÿ óäîáñòâà îòëàäêè è ïîèñêà îøèáîê |
Line 481... | Line 596... | ||
481 | 596 | ||
Line 528... | Line 643... | ||
528 | ;xor ecx, ecx ;îáíóëÿåì ðàçìåð ñòðîêè |
643 | ;xor ecx, ecx ;îáíóëÿåì ðàçìåð ñòðîêè |
Line 529... | Line 644... | ||
529 | 644 | ||
530 | cmp edi, dataBuffer.size1 ;åñëè ýòî áûë ïîñëåäíèé áóôåð (è ìû âûøëè çà àäðåñà ðàçìåðîâ áóôåðîâ), òî âûõîäèì |
645 | cmp edi, dataBuffer.size1 ;åñëè ýòî áûë ïîñëåäíèé áóôåð (è ìû âûøëè çà àäðåñà ðàçìåðîâ áóôåðîâ), òî âûõîäèì |
Line -... | Line 646... | ||
- | 646 | jb loadConfig.block |
|
- | 647 | ||
- | 648 | call readOptKey ;ñ÷èòûâàåì êëàâèøó |
|
- | 649 | call gotoEndString |
|
- | 650 | ||
- | 651 | ;ñ÷èòûâàåì ñêàíêîä êëàâèøè |
|
- | 652 | call readScanKey |
|
- | 653 | call gotoEndString |
|
- | 654 | ||
- | 655 | call readOptRadius ;ñ÷èòûâàåì çíà÷åíèå ðàäèóñà äëÿ mode 3 |
|
- | 656 | call gotoEndString |
|
- | 657 | call readOptSize ;ñ÷èòûâàåì ðàçìåð ýëåìåíòîâ |
|
531 | jb loadConfig.block |
658 | call gotoEndString |
Line 532... | Line 659... | ||
532 | 659 | ||
533 | pop eax ebx ecx esi edi |
660 | pop eax ebx ecx esi edi |
534 | 661 | ||
Line 542... | Line 669... | ||
542 | cmp ecx, 0 |
669 | cmp ecx, 0 |
543 | je @f |
670 | je @f |
544 | mcall 68, 13, ecx ;âûãðóæàåì ôàéë èç ïàìÿòè |
671 | mcall 68, 13, ecx ;âûãðóæàåì ôàéë èç ïàìÿòè |
545 | @@: |
672 | @@: |
546 | call updateParams ;ïðèìåíÿåì íàñòðîéêè êàæäîãî áóôåðà |
673 | call updateParams ;ïðèìåíÿåì íàñòðîéêè êàæäîãî áóôåðà |
- | 674 | call setMySize ;ïðèìåíÿåì íàñòðîéêè ðàçìåðà ýëåìåíòîâ |
|
547 | pop edx ecx ebx eax |
675 | pop edx ecx ebx eax |
548 | ret |
676 | ret |
Line -... | Line 677... | ||
- | 677 | ||
- | 678 | ||
- | 679 | setMySize: |
|
- | 680 | push eax |
|
- | 681 | ;âûñòàâëÿåì mysize â çàâèñèìîñòè îò çíà÷åíèÿ sizeStyle |
|
- | 682 | cmp byte[sizeStyle], '0' |
|
- | 683 | jb @f |
|
- | 684 | cmp byte[sizeStyle], '7' |
|
- | 685 | ja @f |
|
- | 686 | mov eax, 0 ;åñëè çíà÷åíèå ðàçìåðà çàäàíî, òî åãî è âûñòàâëÿåì |
|
- | 687 | mov al, byte[sizeStyle] |
|
- | 688 | sub al, '0' |
|
- | 689 | jmp .end |
|
- | 690 | @@: |
|
- | 691 | cmp byte[sizeStyle], 'a' |
|
- | 692 | je .auto |
|
- | 693 | ;cmp byte[sizeStyle], 's' |
|
- | 694 | ;je .system |
|
- | 695 | .system: ;èíà÷å çíà÷åíèå ïî óìîë÷àíèþ: s - ñèñòåìíàÿ |
|
- | 696 | ; push ebx ecx |
|
- | 697 | ;!!! |
|
- | 698 | ; mov eax, 9 |
|
- | 699 | ; mcall 48, 11 ;ïîëó÷àåì ñèñòåìíûé ðàçìåð øðèôòà |
|
- | 700 | ;eax - âûñîòà øðèôòà â ïèêñåëÿõ |
|
- | 701 | ; mov ecx, eax |
|
- | 702 | ; push eax |
|
- | 703 | ; mcall 48, 12, ecx ;ïðèìåíÿåì ðàçìåð øðèôòà |
|
- | 704 | ; pop eax |
|
- | 705 | ; pop ecx ebx |
|
- | 706 | ;temp fix - äåëèì íà òåêóùèé ðàçìåð øðèôòà and -1 |
|
- | 707 | ; push ebx edx |
|
- | 708 | ; mov ebx, 9 |
|
- | 709 | ;div ebx |
|
- | 710 | ; pop edx ebx |
|
- | 711 | ;cmp eax, 0 |
|
- | 712 | ;je .end |
|
- | 713 | ;dec eax |
|
- | 714 | mov eax, 0 ;xor eax, eax ;test temp |
|
- | 715 | jmp .end |
|
- | 716 | .auto: ;a - âûñòàâëÿåì â çàâèñèìîñòè îò ðàçðåøåíèÿ ýêðàíà |
|
- | 717 | ;!!! |
|
- | 718 | mcall 14 |
|
- | 719 | push ebx |
|
- | 720 | xor ebx, ebx |
|
- | 721 | mov bx, ax |
|
- | 722 | shr eax, 16 |
|
- | 723 | cmp ax, bx ;ïîëó÷àåì áîëüøèé ðàçìåð ñòîðîíû |
|
- | 724 | jae .a |
|
- | 725 | mov ax, bx |
|
- | 726 | .a: |
|
- | 727 | pop ebx |
|
- | 728 | cmp ax, 1919 ;ðàçìåðû ïîëó÷åííûå âûøå îò 0 è íà 1 ìåíüøå |
|
- | 729 | jb .size0 |
|
- | 730 | cmp ax, 2047 |
|
- | 731 | jb .size1 |
|
- | 732 | cmp ax, 4095 |
|
- | 733 | jb .size2 |
|
- | 734 | cmp ax, 8191 |
|
- | 735 | jb .size3 |
|
- | 736 | ||
- | 737 | jmp .size4 |
|
- | 738 | ||
- | 739 | .size0: |
|
- | 740 | mov eax, 0 |
|
- | 741 | jmp .end |
|
- | 742 | .size1: |
|
- | 743 | mov eax, 1 |
|
- | 744 | jmp .end |
|
- | 745 | .size2: |
|
- | 746 | mov eax, 2 |
|
- | 747 | jmp .end |
|
- | 748 | .size3: |
|
- | 749 | mov eax, 3 |
|
- | 750 | jmp .end |
|
- | 751 | .size4: |
|
- | 752 | mov eax, 4 |
|
- | 753 | jmp .end |
|
- | 754 | .size5: |
|
- | 755 | mov eax, 5 |
|
- | 756 | jmp .end |
|
- | 757 | .size6: |
|
- | 758 | mov eax, 6 |
|
- | 759 | jmp .end |
|
- | 760 | .size7: |
|
- | 761 | mov eax, 7 |
|
- | 762 | jmp .end |
|
- | 763 | ||
- | 764 | ;.default: |
|
- | 765 | ; mov eax, 1 |
|
- | 766 | .end: |
|
- | 767 | mov byte[mysize], al ;mov dword[mysize], eax |
|
- | 768 | pop eax |
|
- | 769 | ret |
|
- | 770 | ||
- | 771 | ||
- | 772 | readScanKey: |
|
- | 773 | ;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå |
|
- | 774 | cmp eax, edx ;åñëè ôàéë çàêîí÷èëñÿ, òî |
|
- | 775 | ja .default ;íàñòðîéêè ïî óìîë÷àíèþ |
|
- | 776 | cmp byte[eax], 10 |
|
- | 777 | je @f |
|
- | 778 | cmp byte[eax], 0 |
|
- | 779 | je @f |
|
- | 780 | cmp byte[eax], 13 |
|
- | 781 | je @f |
|
- | 782 | ||
- | 783 | push ecx ebx esi |
|
- | 784 | mov ecx, 0 ;xor ecx, ecx |
|
- | 785 | mov esi, keystr.data |
|
- | 786 | .copy: |
|
- | 787 | mov bl, byte[eax] |
|
- | 788 | cmp bl, 0 |
|
- | 789 | je .copyEnd |
|
- | 790 | cmp bl, 10 |
|
- | 791 | je .copyEnd |
|
- | 792 | cmp bl, 13 |
|
- | 793 | je .copyEnd |
|
- | 794 | cmp esi, keystr.size-1 |
|
- | 795 | jae .copyEnd |
|
- | 796 | mov byte[esi], bl |
|
- | 797 | inc esi |
|
- | 798 | inc eax |
|
- | 799 | inc ecx |
|
- | 800 | jmp .copy |
|
- | 801 | .copyEnd: |
|
- | 802 | mov byte[esi], 0 |
|
- | 803 | mov dword[keystr.size], ecx |
|
- | 804 | pop esi ebx ecx |
|
- | 805 | ||
- | 806 | jmp .end |
|
- | 807 | @@: |
|
- | 808 | inc eax |
|
- | 809 | jmp readScanKey |
|
- | 810 | .default: |
|
- | 811 | mov byte[keyscan], 57 |
|
- | 812 | mov word[keystr.data], '57' |
|
- | 813 | mov byte[keystr.data+2], 0 |
|
- | 814 | mov dword[keystr.size], 2 |
|
- | 815 | .end: |
|
- | 816 | ret |
|
- | 817 | ||
- | 818 | readOptKey: ;1;3;4;5 - space or shift |
|
- | 819 | ;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå |
|
- | 820 | cmp eax, edx ;åñëè ôàéë çàêîí÷èëñÿ, òî |
|
- | 821 | ja .default ;íàñòðîéêè ïî óìîë÷àíèþ |
|
- | 822 | cmp byte[eax], 10 |
|
- | 823 | je @f |
|
- | 824 | cmp byte[eax], 0 |
|
- | 825 | je @f |
|
- | 826 | cmp byte[eax], 13 |
|
- | 827 | je @f |
|
- | 828 | ;èíà÷å ÷èòàåì êëàâèøó è âûõîäèì |
|
- | 829 | cmp dword[eax], 'Ctrl' |
|
- | 830 | jne .notCtrl |
|
- | 831 | mov byte[hkSymbol], 3 |
|
- | 832 | mov dword[hkSize], 4 |
|
- | 833 | jmp .end |
|
- | 834 | .notCtrl: |
|
- | 835 | cmp dword[eax], 'Shif' |
|
- | 836 | jne .notShift |
|
- | 837 | mov byte[hkSymbol], 2 |
|
- | 838 | mov dword[hkSize], 5 |
|
- | 839 | jmp .end |
|
- | 840 | .notShift: |
|
- | 841 | cmp dword[eax], 'Spac' |
|
- | 842 | jne .notSpace |
|
- | 843 | mov byte[hkSymbol], 32 |
|
- | 844 | mov dword[hkSize], 5 |
|
- | 845 | jmp .end |
|
- | 846 | .notSpace: |
|
- | 847 | cmp word[eax], 'Al' |
|
- | 848 | jne .notAlt |
|
- | 849 | mov byte[hkSymbol], 1 |
|
- | 850 | mov dword[hkSize], 3 |
|
- | 851 | jmp .end |
|
- | 852 | .notAlt: |
|
- | 853 | ;óáåäèìñÿ, ÷òî òàì 1 ñèìâîë, à íå ñòðîêà |
|
- | 854 | cmp byte[eax+1], 10 |
|
- | 855 | je .oneSymb |
|
- | 856 | cmp byte[eax+1], 0 |
|
- | 857 | je .oneSymb |
|
- | 858 | cmp byte[eax+1], 13 |
|
- | 859 | je .oneSymb |
|
- | 860 | jmp .default |
|
- | 861 | .oneSymb: |
|
- | 862 | ;ïðîâåðÿåì, ÷òî ñèìâîë ðàçðåø¸ííûé !!! |
|
- | 863 | ||
- | 864 | ;äîáàâëÿåì ñèìâîë êàê åñòü |
|
- | 865 | push ebx |
|
- | 866 | ;xor ebx, ebx |
|
- | 867 | mov bl, byte[eax] |
|
- | 868 | mov byte[hkSymbol], bl |
|
- | 869 | mov dword[hkSize], 1 |
|
- | 870 | pop ebx |
|
- | 871 | ||
- | 872 | jmp .end |
|
- | 873 | @@: |
|
- | 874 | inc eax |
|
- | 875 | jmp readOptKey |
|
- | 876 | ||
- | 877 | .default: |
|
- | 878 | mov byte[hkSymbol], 32 |
|
- | 879 | mov dword[hkSize], 5 |
|
- | 880 | .end: |
|
- | 881 | mov byte[hkSymbol+1], 0 |
|
- | 882 | ret |
|
- | 883 | ||
- | 884 | ;ïðîõîäèì äî êîíöà òåêóùåé ñòðîêè |
|
- | 885 | gotoEndString: |
|
- | 886 | cmp eax, edx ;åñëè ôàéë çàêîí÷èëñÿ, òî |
|
- | 887 | ja @f ;âûõîäèì |
|
- | 888 | cmp byte[eax], 10 |
|
- | 889 | je @f |
|
- | 890 | cmp byte[eax], 0 |
|
- | 891 | je @f |
|
- | 892 | cmp byte[eax], 13 |
|
- | 893 | je @f |
|
- | 894 | ;èíà÷å ïåðåõîäèì íà ñëåäóþùèé ñèìâîë |
|
- | 895 | inc eax |
|
- | 896 | jmp gotoEndString |
|
- | 897 | @@: |
|
- | 898 | ret |
|
- | 899 | ||
- | 900 | readOptRadius: |
|
- | 901 | ;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå |
|
- | 902 | cmp eax, edx ;åñëè ôàéë çàêîí÷èëñÿ, òî |
|
- | 903 | ja .default ;íàñòðîéêè ïî óìîë÷àíèþ |
|
- | 904 | cmp byte[eax], 10 |
|
- | 905 | je @f |
|
- | 906 | cmp byte[eax], 0 |
|
- | 907 | je @f |
|
- | 908 | cmp byte[eax], 13 |
|
- | 909 | je @f |
|
- | 910 | ||
- | 911 | ;èíà÷å ñ÷èòûâàåì çíà÷åíèå |
|
- | 912 | push ebx ecx |
|
- | 913 | xor ecx, ecx |
|
- | 914 | .readValue: |
|
- | 915 | mov bl, byte[eax] |
|
- | 916 | mov byte[radiusBuffer.data+ecx], bl |
|
- | 917 | inc ecx |
|
- | 918 | inc eax |
|
- | 919 | cmp eax, edx ;åñëè ôàéë çàêîí÷èëñÿ, òî âûõîä |
|
- | 920 | ja .readEnd |
|
- | 921 | cmp byte[eax], 10 |
|
- | 922 | je .readEnd |
|
- | 923 | cmp byte[eax], 0 |
|
- | 924 | je .readEnd |
|
- | 925 | cmp byte[eax], 13 |
|
- | 926 | je .readEnd |
|
- | 927 | cmp ecx, 6 |
|
- | 928 | jae .readEnd |
|
- | 929 | jmp .readValue |
|
- | 930 | .readEnd: |
|
- | 931 | mov byte[radiusBuffer.data+ecx], 0 |
|
- | 932 | mov dword[radiusBuffer.size], ecx |
|
- | 933 | pop ecx ebx |
|
- | 934 | ||
- | 935 | jmp .end |
|
- | 936 | @@: |
|
- | 937 | inc eax |
|
- | 938 | jmp readOptRadius |
|
- | 939 | .default: |
|
- | 940 | mov byte[radiusBuffer.data], '0' |
|
- | 941 | mov byte[radiusBuffer.data+1], 0 |
|
- | 942 | mov dword[radiusBuffer.size], 1 |
|
- | 943 | .end: |
|
- | 944 | ||
- | 945 | ret |
|
- | 946 | ||
- | 947 | ||
- | 948 | readOptSize: |
|
- | 949 | ;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå |
|
- | 950 | cmp eax, edx ;åñëè ôàéë çàêîí÷èëñÿ, òî |
|
- | 951 | ja .default ;íàñòðîéêè ïî óìîë÷àíèþ |
|
- | 952 | cmp byte[eax], 10 |
|
- | 953 | je @f |
|
- | 954 | cmp byte[eax], 0 |
|
- | 955 | je @f |
|
- | 956 | cmp byte[eax], 13 |
|
- | 957 | je @f |
|
- | 958 | ||
- | 959 | ;ïðîâåðÿåì, ÷òî ýòî äîïóñòèìîå çíà÷åíèå: 1-7, a, s |
|
- | 960 | cmp byte[eax], 'a' |
|
- | 961 | je .setValue |
|
- | 962 | cmp byte[eax], 's' |
|
- | 963 | je .setValue |
|
- | 964 | cmp byte[eax], '0' |
|
- | 965 | je .setValue |
|
- | 966 | cmp byte[eax], '1' |
|
- | 967 | je .setValue |
|
- | 968 | cmp byte[eax], '2' |
|
- | 969 | je .setValue |
|
- | 970 | cmp byte[eax], '3' |
|
- | 971 | je .setValue |
|
- | 972 | cmp byte[eax], '4' |
|
- | 973 | je .setValue |
|
- | 974 | cmp byte[eax], '5' |
|
- | 975 | je .setValue |
|
- | 976 | cmp byte[eax], '6' |
|
- | 977 | je .setValue |
|
- | 978 | cmp byte[eax], '7' |
|
- | 979 | je .setValue |
|
- | 980 | ||
- | 981 | jmp .default ;èíà÷å ñòàâèì çíà÷åíèå ïî óìîë÷àíèþ |
|
- | 982 | ||
- | 983 | .setValue: |
|
- | 984 | push ebx |
|
- | 985 | mov bl, byte[eax] |
|
- | 986 | mov byte[sizeStyle], bl |
|
- | 987 | pop ebx |
|
- | 988 | ||
- | 989 | jmp .end |
|
- | 990 | @@: |
|
- | 991 | inc eax |
|
- | 992 | jmp readOptSize |
|
- | 993 | .default: |
|
- | 994 | mov byte[sizeStyle], 's' ;ñèñòåìíûé |
|
- | 995 | .end: |
|
- | 996 | ret |
|
- | 997 | ||
- | 998 | ||
549 | 999 | ||
550 | 1000 | ||
551 | updateParams: ;max, size, pos |
1001 | updateParams: ;max, size, pos |
552 | push eax |
1002 | push eax |
553 | mov eax, dword[dataBuffer.size1] |
1003 | mov eax, dword[dataBuffer.size1] |
Line 563... | Line 1013... | ||
563 | mov dword[editRU.pos], eax |
1013 | mov dword[editRU.pos], eax |
Line 564... | Line 1014... | ||
564 | 1014 | ||
565 | mov eax, dword[dataBuffer.size4] |
1015 | mov eax, dword[dataBuffer.size4] |
566 | mov dword[editRD.size], eax |
1016 | mov dword[editRD.size], eax |
- | 1017 | mov dword[editRD.pos], eax |
|
- | 1018 | ||
- | 1019 | mov eax, dword[radiusBuffer.size] |
|
- | 1020 | mov dword[editRadius.size], eax |
|
567 | mov dword[editRD.pos], eax |
1021 | mov dword[editRadius.pos], eax |
568 | pop eax |
1022 | pop eax |
Line 637... | Line 1091... | ||
637 | @@: |
1091 | @@: |
638 | pop edi esi ecx ebx eax |
1092 | pop edi esi ecx ebx eax |
639 | ret |
1093 | ret |
Line 640... | Line 1094... | ||
640 | 1094 | ||
641 | WindowsWidth = 450 |
1095 | WindowsWidth = 450 |
642 | WindowsHeight = 195 |
1096 | WindowsHeight = 195 + 35 - 5 |
643 | coord: ;êîîðäèíàòû îêíà ïðèëîæåíèÿ |
1097 | coord: ;êîîðäèíàòû îêíà ïðèëîæåíèÿ |
644 | .y dw 0 |
1098 | .y dw 0 |
Line 645... | Line 1099... | ||
645 | .x dw 0 |
1099 | .x dw 0 |
Line 695... | Line 1149... | ||
695 | invoke edit_box_draw, editLD |
1149 | invoke edit_box_draw, editLD |
696 | invoke edit_box_draw, editRU |
1150 | invoke edit_box_draw, editRU |
697 | invoke edit_box_draw, editRD |
1151 | invoke edit_box_draw, editRD |
Line 698... | Line 1152... | ||
698 | 1152 | ||
- | 1153 | ;ðèñóåì êíîïêó |
|
699 | ;ðèñóåì êíîïêó |
1154 | buttonAppleY = WindowsHeight-35 ;160 |
700 | mov ebx, (WindowsWidth-80-Otstup)*65536 + 80 ;êîîðäèíàòà X, øèðèíà êíîïêè |
1155 | mov ebx, (WindowsWidth-80-Otstup)*65536 + 80 ;êîîðäèíàòà X, øèðèíà êíîïêè |
701 | mov ecx, 160*65536 + 20 ;êîîðäèíàòà Y, âûñîòà êíîïêè |
1156 | mov ecx, buttonAppleY*65536 + 20 ;êîîðäèíàòà Y, âûñîòà êíîïêè |
702 | mov edx, 0x00000002 ;2 ;íîìåð êíîïêè |
1157 | mov edx, 0x00000002 ;2 ;íîìåð êíîïêè |
703 | mov esi, 0x00AABBCC ;öâåò êíîïêè |
1158 | mov esi, 0x00AABBCC ;öâåò êíîïêè |
704 | mcall 8 |
1159 | mcall 8 |
705 | ;ðèñóåì òåêñò êíîïêè |
1160 | ;ðèñóåì òåêñò êíîïêè |
706 | mov ebx, (WindowsWidth-80-Otstup+25-buttonTextXoffset) * 65536 + 166 ;êîîðäèíàòû òåêñòà (x, y) |
1161 | mov ebx, (WindowsWidth-80-Otstup+25-buttonTextXoffset) * 65536 + (buttonAppleY+6) ;êîîðäèíàòû òåêñòà (x, y) |
707 | mov ecx, 0xFFFFFF ;áåëûé öâåò òåêñòà |
1162 | mov ecx, 0xFFFFFF ;áåëûé öâåò òåêñòà |
708 | mov edx, buttonText |
1163 | mov edx, buttonText |
709 | mov esi, buttonTextSize ;ðàçìåð òåêñòà â ñèìâîëàõ |
1164 | mov esi, buttonTextSize ;ðàçìåð òåêñòà â ñèìâîëàõ |
Line 759... | Line 1214... | ||
759 | mcall 8 |
1214 | mcall 8 |
760 | ;draw button Mode |
1215 | ;draw button Mode |
761 | buttonModeX = 30 ;433 |
1216 | buttonModeX = 30 ;433 |
762 | buttonModeY = 160 ;50 |
1217 | buttonModeY = 160 ;50 |
763 | buttonModeWidth = 221 |
1218 | buttonModeWidth = 221 |
764 | buttonModeHeight = 20 |
1219 | buttonModeHeight = 14 ;20 |
- | 1220 | buttonModeTextYoffset = 3;6 |
|
765 | buttonModeTextXoffset = 5 |
1221 | buttonModeTextXoffset = 5 |
766 | mov ebx, buttonModeX*65536 + buttonModeWidth ;X + Width |
1222 | mov ebx, buttonModeX*65536 + buttonModeWidth ;X + Width |
767 | mov ecx, buttonModeY*65536 + buttonModeHeight ;Y + Height |
1223 | mov ecx, buttonModeY*65536 + buttonModeHeight ;Y + Height |
768 | mov edx, 0x00000008 ;button id |
1224 | mov edx, 0x00000008 ;button id |
769 | mov esi, 0x00FFFFFF ;color button |
1225 | mov esi, 0x00FFFFFF ;color button |
Line 771... | Line 1227... | ||
771 | mov ebx, (buttonModeX+2+buttonModeWidth-20)*65536 + (20-2) ;X + Width |
1227 | mov ebx, (buttonModeX+2+buttonModeWidth-20)*65536 + (20-2) ;X + Width |
772 | mov ecx, (buttonModeY+1)*65536 + buttonModeHeight-2 ;Y + Height |
1228 | mov ecx, (buttonModeY+1)*65536 + buttonModeHeight-2 ;Y + Height |
773 | mov edx, 0xAABBCC |
1229 | mov edx, 0xAABBCC |
774 | mcall 13 |
1230 | mcall 13 |
775 | ;draw text for button Mode |
1231 | ;draw text for button Mode |
776 | mov ebx, (buttonModeX+buttonModeTextXoffset) * 65536 + (buttonModeY+6) ;(x, y) |
1232 | mov ebx, (buttonModeX+buttonModeTextXoffset) * 65536 + (buttonModeY+buttonModeTextYoffset) ;(x, y) |
777 | mov ecx, 0x000000 |
1233 | mov ecx, 0x000000 |
778 | call setTextModeMenu |
1234 | call setTextModeMenu |
779 | mov esi, valueModeMenuSize |
1235 | mov esi, valueModeMenuSize |
780 | mcall 4 |
1236 | mcall 4 |
781 | mov ebx, (buttonModeX+buttonModeWidth-12) * 65536 + (buttonModeY+6) |
1237 | mov ebx, (buttonModeX+buttonModeWidth-12) * 65536 + (buttonModeY+buttonModeTextYoffset) |
782 | mov ecx, 0x80FFFFFF |
1238 | mov ecx, 0x80FFFFFF |
783 | mov edx, symbolDownArrow |
1239 | mov edx, symbolDownArrow |
784 | mcall 4 |
1240 | mcall 4 |
Line -... | Line 1241... | ||
- | 1241 | ||
- | 1242 | ;êíîïêà âûáîðà ãîðÿ÷åé êëàâèøè |
|
- | 1243 | buttonHotKeyX = 280-10 |
|
- | 1244 | buttonHotKeyWidth = 90 |
|
- | 1245 | mov edx, 0x80000009 ;óäàëÿåì |
|
- | 1246 | mcall 8 |
|
- | 1247 | cmp byte[mode], 49 ;ðèñóåì âûáîð êëàâèøè, òîëüêî åñëè mode > 1 |
|
- | 1248 | jbe @f |
|
- | 1249 | ;ðèñóåì íîâóþ |
|
- | 1250 | push eax ebx ecx edx esi |
|
- | 1251 | mov ebx, buttonHotKeyX*65536 + buttonHotKeyWidth ;X + Width |
|
- | 1252 | mov ecx, buttonModeY*65536 + buttonModeHeight ;Y + Height |
|
- | 1253 | mov edx, 0x00000009 ;button id |
|
- | 1254 | mov esi, 0x00FFFFFF ;color button |
|
- | 1255 | mcall 8 |
|
- | 1256 | pop esi edx ecx ebx eax |
|
- | 1257 | ;òåêñò ïîäñêàçêè äëÿ ãîðÿ÷åé êëàâèøè |
|
- | 1258 | mov ebx, (buttonHotKeyX+buttonModeTextXoffset) * 65536 + (buttonModeY+buttonModeTextYoffset) ;(x, y) |
|
- | 1259 | mov ecx, 0x80224466 |
|
- | 1260 | call setTextForHotKey |
|
- | 1261 | mov esi, valueModeMenuSize |
|
- | 1262 | mcall 4 |
|
- | 1263 | ;çàãîëîâîê |
|
- | 1264 | push eax ebx ecx edx edi esi |
|
- | 1265 | mov ebx, buttonHotKeyX * 65536 + (buttonModeY-11) |
|
- | 1266 | mov ecx, 0x80224466 |
|
- | 1267 | mov edx, hkCaption |
|
- | 1268 | mov esi, 3 |
|
- | 1269 | mcall 4 |
|
- | 1270 | pop esi edi edx ecx ebx eax |
|
- | 1271 | @@: |
|
- | 1272 | ||
- | 1273 | ;îòîáðàæàåì íàñòðîéêó ðàäèóñà äåéñòâèÿ æåñòà, òîëüêî åñëè âûáðàí ðåæèì 3 |
|
- | 1274 | cmp byte[mode], 51 |
|
- | 1275 | jne @f |
|
- | 1276 | ;çàãîëîâîê |
|
- | 1277 | push eax ebx ecx edx edi esi |
|
- | 1278 | mov ebx, (buttonHotKeyX + buttonHotKeyWidth + 20) * 65536 + (buttonModeY-11) |
|
- | 1279 | mov ecx, 0x80224466 |
|
- | 1280 | mov edx, radiusCaption |
|
- | 1281 | mov esi, 3 |
|
- | 1282 | mcall 4 |
|
- | 1283 | pop esi edi edx ecx ebx eax |
|
- | 1284 | invoke edit_box_draw, editRadius |
|
- | 1285 | @@: |
|
785 | 1286 | ||
Line 786... | Line 1287... | ||
786 | call draw_super_text |
1287 | call draw_super_text |
787 | 1288 | ||
- | 1289 | LineLength = 62 |
|
- | 1290 | mov ebx, 40 * 65536 + 36 ; draw info text with function 4 (x, y) |
|
- | 1291 | ||
- | 1292 | ;xor ecx, ecx |
|
- | 1293 | ;mov cl, 1 ;byte[mysize] |
|
- | 1294 | ;shl ecx, 24 |
|
788 | LineLength = 62 |
1295 | ;add ecx, 0x224466 |
- | 1296 | ;or ecx, 0x00224466 ;80224466 |
|
789 | mov ebx, 40 * 65536 + 36 ; draw info text with function 4 (x, y) |
1297 | mov ecx, 0x224466 |
790 | mov ecx, 0x224466 |
1298 | |
791 | mov edx, text |
1299 | mov edx, text |
Line 792... | Line 1300... | ||
792 | mov esi, LineLength |
1300 | mov esi, LineLength |
Line 803... | Line 1311... | ||
803 | mov ebx, 2 ; 2, end of draw |
1311 | mov ebx, 2 ; 2, end of draw |
804 | mcall |
1312 | mcall |
Line 805... | Line 1313... | ||
805 | 1313 | ||
Line -... | Line 1314... | ||
- | 1314 | ret |
|
- | 1315 | ||
- | 1316 | hkSymbol: db 0, 0 |
|
- | 1317 | ||
- | 1318 | setTextForHotKey: |
|
- | 1319 | push eax |
|
- | 1320 | mov al, byte[hkSymbol] |
|
- | 1321 | cmp al, 0 |
|
- | 1322 | jne @f |
|
- | 1323 | mov edx, hkHint |
|
- | 1324 | mov dword[hkSize], 5 ;çíà÷åíèå ïî óìîë÷àíèþ SPACE ;shift |
|
- | 1325 | jmp setTextForHotKey.end |
|
- | 1326 | @@: |
|
- | 1327 | cmp al, 1 |
|
- | 1328 | jne @f |
|
- | 1329 | mov edx, hkAlt |
|
- | 1330 | mov dword[hkSize], 3 |
|
- | 1331 | jmp setTextForHotKey.end |
|
- | 1332 | @@: |
|
- | 1333 | cmp al, 2 |
|
- | 1334 | jne @f |
|
- | 1335 | mov edx, hkShift |
|
- | 1336 | mov dword[hkSize], 5 |
|
- | 1337 | jmp setTextForHotKey.end |
|
- | 1338 | @@: |
|
- | 1339 | cmp al, 3 |
|
- | 1340 | jne @f |
|
- | 1341 | mov edx, hkCtrl |
|
- | 1342 | mov dword[hkSize], 4 |
|
- | 1343 | jmp setTextForHotKey.end |
|
- | 1344 | @@: |
|
- | 1345 | cmp al, 32 |
|
- | 1346 | jne @f |
|
- | 1347 | mov edx, hkSpace |
|
- | 1348 | mov dword[hkSize], 5 |
|
- | 1349 | jmp setTextForHotKey.end |
|
- | 1350 | @@: |
|
- | 1351 | cmp al, 96 ;'`' |
|
- | 1352 | je setTextForHotKey.symb |
|
- | 1353 | cmp al, 126 ;'~' |
|
- | 1354 | je setTextForHotKey.symb |
|
- | 1355 | cmp al, 48 ;'0' |
|
- | 1356 | jb @f |
|
- | 1357 | cmp al, 57 ;'9' |
|
- | 1358 | ja @f |
|
- | 1359 | .symb: |
|
- | 1360 | mov edx, hkSymbol |
|
- | 1361 | mov dword[hkSize], 1 |
|
- | 1362 | jmp setTextForHotKey.end |
|
- | 1363 | @@: |
|
- | 1364 | cmp al, 97 ;'a' |
|
- | 1365 | jb @f |
|
- | 1366 | cmp al, 122 ;'z' |
|
- | 1367 | ja @f |
|
- | 1368 | ;jmp setTextForHotKey.symb |
|
- | 1369 | mov edx, hkSymbol |
|
- | 1370 | mov dword[hkSize], 1 |
|
- | 1371 | jmp setTextForHotKey.end |
|
- | 1372 | @@: |
|
- | 1373 | cmp al, 65 ;'A' |
|
- | 1374 | jb @f |
|
- | 1375 | cmp al, 90 ;'Z' |
|
- | 1376 | ja @f |
|
- | 1377 | ;jmp setTextForHotKey.symb |
|
- | 1378 | mov edx, hkSymbol |
|
- | 1379 | mov dword[hkSize], 1 |
|
- | 1380 | jmp setTextForHotKey.end |
|
- | 1381 | @@: |
|
- | 1382 | mov word[hkSymbol], 0 ;åñëè æå ïîïàëî ÷òî-òî íåèçâåñòíîå, òî ñîòð¸ì åãî |
|
- | 1383 | mov edx, hkHint |
|
- | 1384 | mov dword[hkSize], 5 ;shift or space - çíà÷åíèå ïî óìîë÷àíèþ |
|
- | 1385 | .end: |
|
- | 1386 | pop eax |
|
Line 806... | Line 1387... | ||
806 | ret |
1387 | ret |
807 | 1388 | ||
808 | 1389 | ||
809 | setTextModeMenu: |
1390 | setTextModeMenu: |
Line 829... | Line 1410... | ||
829 | @@: |
1410 | @@: |
830 | mov edx, valueModeMenu1 |
1411 | mov edx, valueModeMenu1 |
831 | ret |
1412 | ret |
Line -... | Line 1413... | ||
- | 1413 | ||
- | 1414 | ||
- | 1415 | ||
- | 1416 | ||
- | 1417 | saveKey: |
|
- | 1418 | cmp word[hkSymbol], 0 |
|
- | 1419 | je .default |
|
- | 1420 | cmp byte[hkSymbol], 1 |
|
- | 1421 | je .alt |
|
- | 1422 | cmp byte[hkSymbol], 2 |
|
- | 1423 | je .shift |
|
- | 1424 | cmp byte[hkSymbol], 3 |
|
- | 1425 | je .ctrl |
|
- | 1426 | cmp byte[hkSymbol], 32 |
|
- | 1427 | je .space |
|
- | 1428 | .other: |
|
- | 1429 | mov esi, hkSymbol |
|
- | 1430 | mov byte[esi+1], 0 |
|
- | 1431 | mov dword[hkSize], 1 |
|
- | 1432 | jmp .end |
|
- | 1433 | .space: |
|
- | 1434 | mov esi, hkSpace |
|
- | 1435 | mov dword[hkSize], 5 |
|
- | 1436 | jmp .end |
|
- | 1437 | .ctrl: |
|
- | 1438 | mov esi, hkCtrl |
|
- | 1439 | mov dword[hkSize], 4 |
|
- | 1440 | jmp .end |
|
- | 1441 | .alt: |
|
- | 1442 | mov esi, hkAlt |
|
- | 1443 | mov dword[hkSize], 3 |
|
- | 1444 | jmp .end |
|
- | 1445 | .default: |
|
- | 1446 | .shift: |
|
- | 1447 | mov esi, hkShift |
|
- | 1448 | mov dword[hkSize], 5 |
|
- | 1449 | .end: |
|
- | 1450 | mov ebx, hkSize ;óêàçàòåëü íà dword[hkSize] |
|
- | 1451 | call copyParam |
|
- | 1452 | ret |
|
- | 1453 | ||
- | 1454 | ||
- | 1455 | ||
832 | 1456 | ||
833 | 1457 | ||
Line 834... | Line 1458... | ||
834 | align 16 |
1458 | align 16 |
Line 881... | Line 1505... | ||
881 | err_message_found_lib0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0 |
1505 | err_message_found_lib0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'proc_lib.obj',39,0 |
882 | err_message_import0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0 |
1506 | err_message_import0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0 |
883 | err_message_found_lib1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'kmenu.obj',39,0 |
1507 | err_message_found_lib1 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'kmenu.obj',39,0 |
884 | err_message_import1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0 |
1508 | err_message_import1 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0 |
Line -... | Line 1509... | ||
- | 1509 | ||
- | 1510 | hkCaption: db '« ¢¨è :',0 |
|
- | 1511 | ;hkHint: db ' ¦¬¨â¥ «î¡ãî ª« ¢¨èã',0 |
|
- | 1512 | radiusCaption: db ' ¤¨ãá:',0 |
|
885 | 1513 | ||
Line 886... | Line 1514... | ||
886 | else ;èíà÷å àíãëèéñêèé òåêñò |
1514 | else ;èíà÷å àíãëèéñêèé òåêñò |
887 | 1515 | ||
888 | text db "This is a Hot Angles Configurator. " |
1516 | text db "This is a Hot Angles Configurator. " |
Line 915... | Line 1543... | ||
915 | err_message_found_lib0 db 'Could not find library ',39,'proc_lib.obj',39,0 |
1543 | err_message_found_lib0 db 'Could not find library ',39,'proc_lib.obj',39,0 |
916 | err_message_import0 db 'Error importing library ',39,'proc_lib.obj',39,0 |
1544 | err_message_import0 db 'Error importing library ',39,'proc_lib.obj',39,0 |
917 | err_message_found_lib1 db 'Could not find library ',39,'kmenu.obj',39,0 |
1545 | err_message_found_lib1 db 'Could not find library ',39,'kmenu.obj',39,0 |
918 | err_message_import1 db 'Error importing library ',39,'kmenu',39,0 |
1546 | err_message_import1 db 'Error importing library ',39,'kmenu',39,0 |
Line -... | Line 1547... | ||
- | 1547 | ||
- | 1548 | hkCaption: db 'Key:',0 |
|
- | 1549 | ;hkHint: db 'press any key',0 |
|
- | 1550 | radiusCaption: db 'Radius:',0 |
|
919 | 1551 | ||
Line -... | Line 1552... | ||
- | 1552 | end if |
|
- | 1553 | ||
- | 1554 | hkAlt: db 'Alt',0 |
|
- | 1555 | hkShift: db 'Shift',0 |
|
- | 1556 | hkCtrl: db 'Ctrl',0 |
|
- | 1557 | hkSpace: db 'Space',0 |
|
Line 920... | Line 1558... | ||
920 | end if |
1558 | hkHint: db '?',0 |
921 | 1559 | hkSize: rd 1 ;ðàçìåð ñòðîêè ñ èìåíåì êëàâèøè |
|
- | 1560 | ||
- | 1561 | draw_super_text: |
|
- | 1562 | push eax ebx ecx edx edi esi |
|
- | 1563 | ||
- | 1564 | mov ecx, 0 |
|
- | 1565 | mov ch, byte[mysize] |
|
922 | 1566 | shl ecx, 16 |
|
923 | draw_super_text: |
1567 | add ecx, 0x224466 |
924 | push eax ebx ecx edx edi esi |
1568 | |
925 | mov ebx, Otstup * 65536 + 74 ; draw info text with function 4 (x, y) |
1569 | mov ebx, Otstup * 65536 + 74 ; draw info text with function 4 (x, y) |
926 | mov ecx, 0x224466 |
1570 | ;mov ecx, 0x224466 |
927 | mov eax, superText.lu |
1571 | mov eax, superText.lu |
Line 948... | Line 1592... | ||
948 | or ecx, 0x80000000 |
1592 | or ecx, 0x80000000 |
949 | mov edx, ModeMenu |
1593 | mov edx, ModeMenu |
950 | mov esi, 3 |
1594 | mov esi, 3 |
951 | mcall 4 |
1595 | mcall 4 |
Line -... | Line 1596... | ||
- | 1596 | ||
- | 1597 | ; mov ebx, buttonHotKeyX * 65536 + (buttonModeY-11) |
|
- | 1598 | ; or ecx, 0x80000000 |
|
- | 1599 | ; mov edx, hkCaption |
|
- | 1600 | ; mov esi, 3 |
|
- | 1601 | ; mcall 4 |
|
952 | 1602 | ||
953 | pop esi edi edx ecx ebx eax |
1603 | pop esi edi edx ecx ebx eax |
Line 954... | Line 1604... | ||
954 | ret |
1604 | ret |
955 | 1605 | ||
Line 1025... | Line 1675... | ||
1025 | call setRESULT |
1675 | call setRESULT |
1026 | pop edx ecx ebx eax |
1676 | pop edx ecx ebx eax |
1027 | ret |
1677 | ret |
Line -... | Line 1678... | ||
- | 1678 | ||
- | 1679 | ||
- | 1680 | IntToStr: ;in esi - ñòðîêà; eñx - ÷èñëî |
|
- | 1681 | push eax ecx edx esi |
|
- | 1682 | cmp ecx, 0 |
|
- | 1683 | jne @f |
|
- | 1684 | mov byte[esi], 48 ; '0' |
|
- | 1685 | inc esi |
|
- | 1686 | jmp .end |
|
- | 1687 | @@: |
|
- | 1688 | mov eax, ecx |
|
- | 1689 | mov ecx, 10 |
|
- | 1690 | .next: |
|
- | 1691 | mov edx, 0 |
|
- | 1692 | div ecx |
|
- | 1693 | add edx, 48 |
|
- | 1694 | ||
- | 1695 | mov byte[esi], dl |
|
- | 1696 | ||
- | 1697 | inc esi |
|
- | 1698 | cmp eax, 0 |
|
- | 1699 | je .end |
|
- | 1700 | jmp .next |
|
- | 1701 | .end: |
|
- | 1702 | mov byte[esi], 0 ;êëàä¸ì çàâåðøàþùèé íîëü |
|
- | 1703 | pop esi edx ecx eax |
|
- | 1704 | call reverseString ;äåëàåì ðåâåðñ ñòðîêè |
|
- | 1705 | ret |
|
- | 1706 | ||
- | 1707 | ;âõîä: esi - óêàçàòåëü íà ñòðîêó |
|
- | 1708 | reverseString: |
|
- | 1709 | push eax esi edi |
|
- | 1710 | ||
- | 1711 | mov al, byte[esi] ;åñëè ñòðîêà ïóñòàÿ òî âûõîäèì ðåâåðñ äåëàòü íå íàäî |
|
- | 1712 | cmp al, 0 |
|
- | 1713 | je reverseString.end |
|
- | 1714 | ||
- | 1715 | mov edi, esi ;èíà÷å íàéä¸ì ïîçèöèþ ïîñëåäíåãî ñèìâîëà ñòðîêè è ïîëîæèì å¸ â edi |
|
- | 1716 | .go_last_symbol: |
|
- | 1717 | mov al, byte[edi+1] |
|
- | 1718 | cmp al, 0 |
|
- | 1719 | je @f |
|
- | 1720 | ||
- | 1721 | inc edi |
|
- | 1722 | jmp reverseString.go_last_symbol |
|
- | 1723 | @@: |
|
- | 1724 | push ebx |
|
- | 1725 | .rev: |
|
- | 1726 | cmp esi, edi |
|
- | 1727 | jae @f |
|
- | 1728 | ||
- | 1729 | ;ìåíÿåì ìåñòàìè ñèìâîëû â öèêëå |
|
- | 1730 | mov al, byte[edi] |
|
- | 1731 | mov bl, byte[esi] |
|
- | 1732 | mov byte[edi], bl |
|
- | 1733 | mov byte[esi], al |
|
- | 1734 | ||
- | 1735 | inc esi |
|
- | 1736 | dec edi |
|
- | 1737 | jmp reverseString.rev |
|
- | 1738 | @@: |
|
- | 1739 | pop ebx |
|
- | 1740 | .end: |
|
- | 1741 | pop edi esi eax |
|
- | 1742 | ret |
|
- | 1743 | ||
1028 | 1744 | ||
1029 | 1745 | ||
1030 | align 4 |
1746 | align 4 |
1031 | but_open_dlg: |
1747 | but_open_dlg: |
1032 | pushad |
1748 | pushad |
Line 1115... | Line 1831... | ||
1115 | align 4 |
1831 | align 4 |
1116 | editLU edit_box 180-buttonW,Otstup+buttonW,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.1, mouse_dd, 0, edMax, edMax ;ed_focus |
1832 | editLU edit_box 180-buttonW,Otstup+buttonW,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.1, mouse_dd, 0, edMax, edMax ;ed_focus |
1117 | editLD edit_box 180-buttonW,Otstup+buttonW,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.2, mouse_dd, 0, edMax, edMax |
1833 | editLD edit_box 180-buttonW,Otstup+buttonW,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.2, mouse_dd, 0, edMax, edMax |
1118 | editRU edit_box 180-buttonW,240,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.3, mouse_dd, 0, edMax, edMax |
1834 | editRU edit_box 180-buttonW,240,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.3, mouse_dd, 0, edMax, edMax |
1119 | editRD edit_box 180-buttonW,240,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.4, mouse_dd, 0, edMax, edMax |
1835 | editRD edit_box 180-buttonW,240,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.4, mouse_dd, 0, edMax, edMax |
- | 1836 | editRadius edit_box 40,(buttonHotKeyX + buttonHotKeyWidth + 20),buttonModeY, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, 4, radiusBuffer.data, mouse_dd, ed_figure_only, edMax, edMax |
|
Line 1120... | Line 1837... | ||
1120 | 1837 | ||
1121 | align 4 |
1838 | align 4 |
1122 | import_libkmenu: |
1839 | import_libkmenu: |
1123 | kmenu_init dd akmenu_init |
1840 | kmenu_init dd akmenu_init |
Line 1140... | Line 1857... | ||
1140 | aksubmenu_add db 'ksubmenu_add',0 |
1857 | aksubmenu_add db 'ksubmenu_add',0 |
1141 | akmenuitem_new db 'kmenuitem_new',0 |
1858 | akmenuitem_new db 'kmenuitem_new',0 |
1142 | akmenuitem_delete db 'kmenuitem_delete',0 |
1859 | akmenuitem_delete db 'kmenuitem_delete',0 |
1143 | akmenuitem_draw db 'kmenuitem_draw',0 |
1860 | akmenuitem_draw db 'kmenuitem_draw',0 |
Line 1144... | Line 1861... | ||
1144 | 1861 | ||
1145 | mouse_dd dd ? |
1862 | ;mouse_dd dd ? |
- | 1863 | sc system_colors |
|
- | 1864 | mouse_dd rd 1 |
|
- | 1865 | ||
- | 1866 | sizeStyle: rb 1 ;ðàçìåð òåêñòà è îñòàëüíûõ ýëåìåíòîâ îêíà |
|
- | 1867 | mysize: rb 1 ;rd 1 |
|
- | 1868 | radiusBuffer: ;áóôåð äëÿ ïîëÿ ðàäèóñà æåñòà |
|
- | 1869 | .data: rb 6 |
|
- | 1870 | .size: rd 1 |
|
Line 1146... | Line 1871... | ||
1146 | sc system_colors |
1871 | radiusBufferEnd: |
Line 1147... | Line 1872... | ||
1147 | 1872 | ||
1148 | button_press rd 0 ;for kmenu |
1873 | button_press rd 0 ;for kmenu |
Line 1154... | Line 1879... | ||
1154 | filename_area: rb 256 |
1879 | filename_area: rb 256 |
1155 | rb 1024 |
1880 | rb 1024 |
1156 | procinfo process_information |
1881 | procinfo process_information |
1157 | pi rb 1024 |
1882 | pi rb 1024 |
Line -... | Line 1883... | ||
- | 1883 | ||
- | 1884 | keyscan: rb 1 |
|
- | 1885 | keystr: |
|
- | 1886 | .data: rb 4 ;ñòðîêà ñî çíà÷åíèåì ñêàíêîäà àêòèâàöèîííîé êëàâèøè |
|
Line 1158... | Line 1887... | ||
1158 | 1887 | .size: rd 1 ;ðàçìåð ñîäåðæèìîãî ñòðîêè áåç ïîñëåäíåãî íóëÿ |
|
1159 | 1888 | ||
1160 | dataBuffer: |
1889 | dataBuffer: |
1161 | .1: rb 512 |
1890 | .1: rb 512 |