Subversion Repositories Kolibri OS

Rev

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