Subversion Repositories Kolibri OS

Rev

Rev 7469 | Rev 7777 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7469 Rev 7776
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.8: Oct 14, 2018
5
; Version 0.3.9: Apr 11, 2020
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 28... Line 28...
28
;P.S. Êîäó òðåáóåòñÿ îïòèìèçàöèÿ è äîðàáîòêà (ñì. òåìó ôîðóìà)
28
;P.S. Êîäó òðåáóåòñÿ îïòèìèçàöèÿ è äîðàáîòêà (ñì. òåìó ôîðóìà)
29
format binary as ""     ; Binary file format without extension
29
format binary as ""     ; Binary file format without extension
30
use32                   ; Tell compiler to use 32 bit instructions
30
use32                   ; Tell compiler to use 32 bit instructions
31
org 0                   ; the base address of code, always 0x0
31
org 0                   ; the base address of code, always 0x0
Line 32... Line 32...
32
 
32
 
33
; Çàãîëîâîê èñïîëíÿåìîãî ôàéëà Êîëèáðè ÎÑ
33
; ‡àãîëîâîê èñïîëíÿåìîãî ôàéëà Êîëèáðè ÎÑ
34
db 'MENUET01'
34
db 'MENUET01'
35
dd 1
35
dd 1
36
dd START
36
dd START
37
dd I_END
37
dd I_END
Line 53... Line 53...
53
KMENUITEM_SEPARATOR equ 2
53
KMENUITEM_SEPARATOR equ 2
Line 54... Line 54...
54
 
54
 
Line 55... Line 55...
55
Otstup = 30
55
Otstup = 30
56
 
56
 
57
START:
57
START:
Line 58... Line 58...
58
    call copyKill        ;ïðîñòåéøàÿ çàùèòà îò çàïóñêà âòîðîé êîïèè ïðèëîæåíèÿ
58
    call copyKill        ;ïðîñòåéøàß çàùèòà îò çàïóñêà âòîðîé êîïèè ïðèëîæåíèß
59
    mcall  68, 11        ;èíèöèàëèçàöèÿ êó÷è
59
    mcall  68, 11        ;èíèöèàëèçàöèß êó÷è
60
 
60
 
61
    ;mcall 48,3,sc,sizeof.system_colors ;ïîëó÷èòü ñèñòåìíûå öâåòà
61
    ;mcall 48,3,sc,sizeof.system_colors ;ïîëó÷èòü ñèñòåìíûå öâåòà
Line 67... Line 67...
67
 
67
 
68
    stdcall dll.Load, @IMPORT
68
    stdcall dll.Load, @IMPORT
69
    or      eax, eax
69
    or      eax, eax
Line 70... Line 70...
70
    jnz     exit
70
    jnz     exit
71
 
71
 
72
    mov  eax,40          ;óñòàíîâèòü ìàñêó äëÿ îæèäàåìûõ ñîáûòèé
72
    mov  eax,40          ;óñòàíîâèòü ìàñêó äëß îæèäàåìûõ ñîáûòèé
Line 73... Line 73...
73
    mov  ebx,0x27        ;ñèñòåìà áóäåò ðåàãèðîâàòü òîëüêî íà ñîîáùåíèå î ïåðåðèñîâêå, íàæàòà êíîïêà, îïðåäåë¸ííàÿ ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñÿ ïðè ïðî÷òåíèè)
73
    mov  ebx,0x27        ;ñèñòåìà áóäåò ðåàãèðîâàòü òîëüêî íà ñîîáùåíèå î ïåðåðèñîâêå, íàæàòà êíîïêà, îïðåäåëÞííàß ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñß ïðè ïðî÷òåíèè)
74
    mcall
74
    mcall
Line 88... Line 88...
88
    stdcall [ksubmenu_add], [modeMenu], eax
88
    stdcall [ksubmenu_add], [modeMenu], eax
89
    stdcall [kmenuitem_new], KMENUITEM_NORMAL, valueModeMenu3, 113
89
    stdcall [kmenuitem_new], KMENUITEM_NORMAL, valueModeMenu3, 113
90
    stdcall [ksubmenu_add], [modeMenu], eax
90
    stdcall [ksubmenu_add], [modeMenu], eax
91
        stdcall [kmenuitem_new], KMENUITEM_SUBMENU, valueModeMenu1, [modeMenu]
91
        stdcall [kmenuitem_new], KMENUITEM_SUBMENU, valueModeMenu1, [modeMenu]
Line 92... Line 92...
92
 
92
 
93
    call  loadConfig     ;çàãðóæàåì êîíôèãóðàöèþ èç ôàéëà, åñëè íåò - òî âûñòàâëÿåì ïàðàìåòðû ïî óìîë÷àíèþ
-
 
94
    call  defaultElems   ;óñòàíàâëèâàåì ðàçìåðû ýëåìåíòîâ â çàâèñèìîñòè îò íàñòðîåê
-
 
95
    call  resizeElems
93
    call  loadConfig     ;çàãðóæàåì êîíôèãóðàöèþ èç ôàéëà, åñëè íåò - òî âûñòàâëßåì ïàðàìåòðû ïî óìîë÷àíèþ
Line 96... Line 94...
96
    call  draw_window    ;îòðèñîâàòü îêíî ïðèëîæåíèÿ
94
    call  draw_window    ;îòðèñîâàòü îêíî ïðèëîæåíèß
97
 
95
 
98
; Îáðàáîòêà öèêëà ñîáûòèé
96
; Îáðàáîòêà öèêëà ñîáûòèé
99
event_wait:
97
event_wait:
Line 110... Line 108...
110
 
108
 
111
    cmp     eax, 3       ; Event button in buffer ?
109
    cmp     eax, 3       ; Event button in buffer ?
112
    je      button       ; Expl.: User has pressed one of the
110
    je      button       ; Expl.: User has pressed one of the
Line 113... Line 111...
113
                         ; applications buttons.
111
                         ; applications buttons.
114
 
112
 
115
    invoke  edit_box_mouse, editLU   ;ïðîâåðêà ñîáûòèé ìûøè äëÿ editBox'îâ
113
    invoke  edit_box_mouse, editLU   ;ïðîâåðêà ñîáûòèé ìûøè äëß editBox'îâ
116
    invoke  edit_box_mouse, editLD
114
    invoke  edit_box_mouse, editLD
-
 
115
    invoke  edit_box_mouse, editRU
117
    invoke  edit_box_mouse, editRU
116
    invoke  edit_box_mouse, editRD
Line 118... Line 117...
118
    invoke  edit_box_mouse, editRD
117
    ;stdcall [kmainmenu_dispatch_cursorevent], [modeMenu] ;ïðîâåðêà ìûøè äëß êîìáîáîêñà
Line 119... Line 118...
119
    invoke  edit_box_mouse, editRadius
118
    invoke  edit_box_mouse, editRadius
120
 
119
 
121
    jmp     event_wait
120
    jmp     event_wait
Line 122... Line 121...
122
 
121
 
123
 
122
 
Line 141... Line 140...
141
        jne event_wait
140
        jne event_wait
142
        cmp al, 0
141
        cmp al, 0
143
        jne .next
142
        jne .next
144
        mov byte[hkSymbol], ah
143
        mov byte[hkSymbol], ah
Line 145... Line 144...
145
 
144
 
146
        push eax ecx esi            ;ñîõðàíÿåì ñêàíêîä êëàâèøè
145
        push eax ecx esi            ;ñîõðàíßåì ñêàíêîä êëàâèøè
147
        shr eax, 16
146
        shr eax, 16
148
        mov byte[keyscan], al
147
        mov byte[keyscan], al
149
        mov ecx, 0
148
        mov ecx, 0
150
        mov cl, al ;byte[keyscan]
149
        mov cl, al ;byte[keyscan]
Line 161... Line 160...
161
        inc ecx
160
        inc ecx
162
        ;cmp ecx, 4
161
        ;cmp ecx, 4
163
        ;je @f
162
        ;je @f
164
        jmp @b
163
        jmp @b
165
       @@:
164
       @@:
166
        ;è ñîõðàíÿåì åãî
165
        ;è ñîõðàíßåì åãî
167
        mov dword[keystr.size], ecx
166
        mov dword[keystr.size], ecx
Line 168... Line 167...
168
 
167
 
169
        pop esi ecx eax
168
        pop esi ecx eax
170
        jmp red
169
        jmp red
171
.next:
170
.next:
172
        ;cmp al, 2
171
        ;cmp al, 2
173
        ;jne @f
172
        ;jne @f
174
        ;cmp ah, 0
173
        ;cmp ah, 0
175
        ;jne @f
174
        ;jne @f
176
        ;ñ÷èòûâàåì óïðàâëÿþùèå êëàâèøè
175
        ;ñ÷èòûâàåì óïðàâëßþùèå êëàâèøè
177
        ;shr eax, 16
176
        ;shr eax, 16
178
        ;bt eax, 0   ;left shift
177
        ;bt eax, 0   ;left shift
179
        ;jne @f
178
        ;jne @f
180
        ;mov byte[hkSymbol], 2
179
        ;mov byte[hkSymbol], 2
Line 192... Line 191...
192
    mov     eax,-1                  ; Function -1 : close this program
191
    mov     eax,-1                  ; Function -1 : close this program
193
    mcall
192
    mcall
194
noclose:
193
noclose:
195
    cmp  ah, 2         ;êíîïêà "Ïðèìåíèòü"
194
    cmp  ah, 2         ;êíîïêà "Ïðèìåíèòü"
196
    jne  @f ;butend
195
    jne  @f ;butend
197
    call applyButton   ;âûçîâ íàøåãî îáðàáîò÷èêà íàæàòèÿ êíîïêè
196
    call applyButton   ;âûçîâ íàøåãî îáðàáîò÷èêà íàæàòèß êíîïêè
198
    jmp event_wait
197
    jmp event_wait
199
@@:
198
@@:
200
    cmp ah, 4
199
    cmp ah, 4
201
    jne @f
200
    jne @f
202
    mov byte[editID], 4
201
    mov byte[editID], 4
Line 225... Line 224...
225
    jne @f
224
    jne @f
226
    push eax ebx ecx
225
    push eax ebx ecx
227
    mcall 9, pi, -1 ;get window coord
226
    mcall 9, pi, -1 ;get window coord
Line 228... Line 227...
228
 
227
 
229
    mov eax, dword[pi+34]
228
    mov eax, dword[pi+34]
230
    add eax, Otstup ;buttonModeX ;+ 5
229
    add eax, buttonModeX ;+ 5
Line 231... Line 230...
231
    mov word[coordModeMenu.x], ax
230
    mov word[coordModeMenu.x], ax
232
 
-
 
233
    mov eax, dword[pi+38]
-
 
234
    add ax, word[elem.butModeY]
231
 
235
    add ax, word[elem.butDialHeight]
232
    mov eax, dword[pi+38]
Line 236... Line 233...
236
    dec ax ;add eax, buttonModeY + 13 ;17
233
    add eax, buttonModeY + 13 ;17
237
    mov word[coordModeMenu.y], ax
234
    mov word[coordModeMenu.y], ax
238
 
235
 
Line 268... Line 265...
268
butend:
265
butend:
269
    jmp  event_wait    ;this is for ignored events, useful at development
266
    jmp  event_wait    ;this is for ignored events, useful at development
Line 270... Line 267...
270
 
267
 
271
 
268
 
Line 272... Line 269...
272
 
269
 
273
;èìÿ êîíôèãóðàöèîííîãî ôàéëà
270
;èìß êîíôèãóðàöèîííîãî ôàéëà
274
fileName: db 'SETTINGS/HOTANGLES.CFG', 0
271
fileName: db 'SETTINGS/HOTANGLES.CFG', 0
275
 
272
 
276
;ñòðóêòóðà äëÿ ñîçäàíèÿ/ïåðåçàïèñè ôàéëà
273
;ñòðóêòóðà äëß ñîçäàíèß/ïåðåçàïèñè ôàéëà
277
createFile:
274
createFile:
278
  .func     dd 2    ;íîìåð ïîäôóíêöèè
275
  .func     dd 2    ;íîìåð ïîäôóíêöèè
279
  .re       dd 0, 0 ;çàðåçåðâèðîâàíî
276
  .re       dd 0, 0 ;çàðåçåðâèðîâàíî
Line 280... Line 277...
280
  .size     dd 0    ;ñêîëüêî áàéò ïèñàòü
277
  .size     dd 0    ;ñêîëüêî áàéò ïèñàòü
281
  .data_adr dd 0    ;óêàçàòåëü íà äàííûå
278
  .data_adr dd 0    ;óêàçàòåëü íà äàííûå
282
  .path     db 0
279
  .path     db 0
Line 283... Line 280...
283
  .path_adr dd fileName    ;ïóòü
280
  .path_adr dd fileName    ;ïóòü
Line 292... Line 289...
292
   mov ecx, dword[ebx] ;÷èòàåì ðàçìåð ñòðîêè
289
   mov ecx, dword[ebx] ;÷èòàåì ðàçìåð ñòðîêè
Line 293... Line 290...
293
 
290
 
294
   cmp ecx, 0          ;ïóñòà ëè ñòðîêà?
291
   cmp ecx, 0          ;ïóñòà ëè ñòðîêà?
Line 295... Line 292...
295
   jne copyParam.copy  ;åñëè íåò, òî ïåðåõîäèì ê êîïèðîâàíèþ ñîäåðæèìîãî ñòðîêè (ê  öèêëó)
292
   jne copyParam.copy  ;åñëè íåò, òî ïåðåõîäèì ê êîïèðîâàíèþ ñîäåðæèìîãî ñòðîêè (ê  öèêëó)
296
 
293
 
297
   mov byte[eax], '-'  ;åñëè æå ïóñòî, òî çàìåíÿåì ñèìâîëîì ìèíóñ '-'
294
   mov byte[eax], '-'  ;åñëè æå ïóñòî, òî çàìåíßåì ñèìâîëîì ìèíóñ '-'
298
   inc eax
295
   inc eax
Line 299... Line 296...
299
   ;jmp copyParam.copyEnd ;è âûõîäèì
296
   ;jmp copyParam.copyEnd ;è âûõîäèì
300
   ;äàëåå â íà÷àëå öèêëà ïðîèçîéä¸ò ñðàâíåíèå è âûõîä
297
   ;äàëåå â íà÷àëå öèêëà ïðîèçîéäÞò ñðàâíåíèå è âûõîä
301
 
298
 
302
.copy:  ;êîïèðóåì ñèìâîëû
299
.copy:  ;êîïèðóåì ñèìâîëû
Line 311... Line 308...
311
.copyEnd:
308
.copyEnd:
312
   pop ecx ebx esi
309
   pop ecx ebx esi
313
   ret
310
   ret
Line 314... Line 311...
314
 
311
 
315
 
312
 
316
addPerenos:  ;äîáàâëÿåò ïåðåíîñ ñòðîêè â áóôåð
313
addPerenos:  ;äîáàâëßåò ïåðåíîñ ñòðîêè â áóôåð
317
   mov byte[eax], 13
314
   mov byte[eax], 13
318
   inc eax
315
   inc eax
319
   mov byte[eax], 10
316
   mov byte[eax], 10
Line 325... Line 322...
325
    push eax ebx ecx
322
    push eax ebx ecx
326
        ;mov dword[createFile.data_adr], defaultDataForConfig
323
        ;mov dword[createFile.data_adr], defaultDataForConfig
327
        ;mov dword[createFile.size], defaultDataSize
324
        ;mov dword[createFile.size], defaultDataSize
Line 328... Line 325...
328
 
325
 
329
        ;âû÷èñëèì ðàçìåð ôàéëà êîíôèãóðàöèè â áàéòàõ
326
        ;âû÷èñëèì ðàçìåð ôàéëà êîíôèãóðàöèè â áàéòàõ
330
        mov ecx, 9*2+1 ;1 áàéò íà ñîñòîÿíèå àêòèâíîñòè è 9 ïàð ïåðåíîñîâ ñòðîê (ñèìâîëû 13, 10)
327
        mov ecx, 9*2+1 ;1 áàéò íà ñîñòîßíèå àêòèâíîñòè è 9 ïàð ïåðåíîñîâ ñòðîê (ñèìâîëû 13, 10)
331
        add ecx, dword[editLU.size] ;ïëþñ ðàçìåð êàæäîé ñòðîêè â áàéòàõ
328
        add ecx, dword[editLU.size] ;ïëþñ ðàçìåð êàæäîé ñòðîêè â áàéòàõ
332
        add ecx, dword[editLD.size]
329
        add ecx, dword[editLD.size]
333
        add ecx, dword[editRU.size]
330
        add ecx, dword[editRU.size]
334
        add ecx, dword[editRD.size] ;dataBuffer.size4]
331
        add ecx, dword[editRD.size] ;dataBuffer.size4]
335
        add ecx, dword[editRadius.size]
332
        add ecx, dword[editRadius.size]
336
        add ecx, dword[hkSize] ;ðàçìåð èìåíè àêòèâàöèîííîé êíîïêè
333
        add ecx, dword[hkSize] ;ðàçìåð èìåíè àêòèâàöèîííîé êíîïêè
337
        add ecx, dword[keystr.size] ;ðàçìåð ñêàíêîäà àêòèâàöèîííîé êíîïêè
334
        add ecx, dword[keystr.size] ;ðàçìåð ñêàíêîäà àêòèâàöèîííîé êíîïêè
Line -... Line 335...
-
 
335
        inc ecx ; åùÞ 1 áàéò äëß õðàíåíèß ðàçìåðà ýëåìåíòîâ
-
 
336
 
-
 
337
        ;cmp dword[keystr.size], 3
-
 
338
        ;jbe @f
-
 
339
        ;mcall -1
338
        inc ecx ; åù¸ 1 áàéò äëÿ õðàíåíèÿ ðàçìåðà ýëåìåíòîâ
340
      ;@@:
339
 
341
 
340
        ;åñëè çàäàíû ïóñòûå ñòðîêè, òî ìû àâòîìàòè÷åñêè äîáàâëÿåì çíàê ìèíóñ, çíà÷èò ðàçìåð +1 áàéò
342
        ;åñëè çàäàíû ïóñòûå ñòðîêè, òî ìû àâòîìàòè÷åñêè äîáàâëßåì çíàê ìèíóñ, çíà÷èò ðàçìåð +1 áàéò
341
        cmp dword[editLU.size], 0
343
        cmp dword[editLU.size], 0
342
        jne @f
344
        jne @f
343
        inc ecx
345
        inc ecx
Line 354... Line 356...
354
        jne @f
356
        jne @f
355
        inc ecx
357
        inc ecx
356
@@:
358
@@:
Line 357... Line 359...
357
 
359
 
358
        ;òåïåðü ðàçìåð ôàéëà êîíôèãóðàöèè â ecx
360
        ;òåïåðü ðàçìåð ôàéëà êîíôèãóðàöèè â ecx
359
        mov dword[createFile.size], ecx ;ïîëîæèì ðàçìåð áàéò â ñòðóêòóðó ñîçäàíèÿ/ïåðåçàïèñè ôàéëà
361
        mov dword[createFile.size], ecx ;ïîëîæèì ðàçìåð áàéò â ñòðóêòóðó ñîçäàíèß/ïåðåçàïèñè ôàéëà
360
        mcall 68, 12, ecx ;âûäåëÿåì áëîê ïàìÿòè ïîä áóôåð ñîäåðæèìîãî
362
        mcall 68, 12, ecx ;âûäåëßåì áëîê ïàìßòè ïîä áóôåð ñîäåðæèìîãî
Line 361... Line 363...
361
        mov dword[createFile.data_adr], eax ;ñîõðàíÿåì àäðåñ áóôåðà â ñòðóêòóðó
363
        mov dword[createFile.data_adr], eax ;ñîõðàíßåì àäðåñ áóôåðà â ñòðóêòóðó
362
 
364
 
363
        ;çàïîëíèì áóôåð ñîäåðæèìîãî:
365
        ;çàïîëíèì áóôåð ñîäåðæèìîãî:
364
        push ebx    ;ñîõðàíÿåì âûáðàííûé ðåæèì
366
        push ebx    ;ñîõðàíßåì âûáðàííûé ðåæèì
365
        mov bl, byte[mode]
367
        mov bl, byte[mode]
Line 366... Line 368...
366
        mov byte[eax], bl
368
        mov byte[eax], bl
367
        pop ebx
369
        pop ebx
Line 368... Line 370...
368
 
370
 
369
        inc eax
371
        inc eax
Line 370... Line 372...
370
        call addPerenos
372
        call addPerenos
371
 
373
 
372
        push esi ebx
374
        push esi ebx
373
        call UpdateEditsSizes ;îáíîâèòü ðàçìåðû òåêñòà â edit'àõ
375
        call UpdateEditsSizes ;îáíîâèòü ðàçìåðû òåêñòà â edit'àõ
Line 374... Line 376...
374
 
376
 
375
        mov esi, dataBuffer.1
377
        mov esi, dataBuffer.1     ;editLU.text
376
        mov ebx, dataBuffer.size1
378
        mov ebx, dataBuffer.size1 ;editLU.size
377
        call copyParam
379
        call copyParam
Line 378... Line 380...
378
        call addPerenos     ;äîáàâëÿåì ïåðåíîñ ñòðîêè
380
        call addPerenos     ;äîáàâëßåì ïåðåíîñ ñòðîêè
379
 
381
 
380
        mov esi, dataBuffer.2
382
        mov esi, dataBuffer.2
381
        mov ebx, dataBuffer.size2
383
        mov ebx, dataBuffer.size2
Line 382... Line 384...
382
        call copyParam
384
        call copyParam
383
        call addPerenos     ;äîáàâëÿåì ïåðåíîñ ñòðîêè
385
        call addPerenos     ;äîáàâëßåì ïåðåíîñ ñòðîêè
384
 
386
 
385
        mov esi, dataBuffer.3
387
        mov esi, dataBuffer.3
Line 386... Line 388...
386
        mov ebx, dataBuffer.size3
388
        mov ebx, dataBuffer.size3
387
        call copyParam
389
        call copyParam
388
        call addPerenos     ;äîáàâëÿåì ïåðåíîñ ñòðîêè
390
        call addPerenos     ;äîáàâëßåì ïåðåíîñ ñòðîêè
Line 389... Line 391...
389
 
391
 
390
        mov esi, dataBuffer.4
392
        mov esi, dataBuffer.4
391
        mov ebx, dataBuffer.size4
393
        mov ebx, dataBuffer.size4
392
        call copyParam
394
        call copyParam
393
        call addPerenos     ;äîáàâëÿåì ïåðåíîñ ñòðîêè
395
        call addPerenos     ;äîáàâëßåì ïåðåíîñ ñòðîêè
394
 
396
 
Line 410... Line 412...
410
        jae @f
412
        jae @f
411
        jmp @b
413
        jmp @b
412
      @@:
414
      @@:
413
        call addPerenos
415
        call addPerenos
Line 414... Line 416...
414
 
416
 
415
        ;ñîõðàíÿåì ðàäèóñ
417
        ;ñîõðàíßåì ðàäèóñ
416
        ;!!! åñëè ðàäèóñ îñòàâëåí ïóñòûì, òî íóæíî ñîõðàíÿòü çíà÷åíèå ïî óìîë÷àíèþ (ñåé÷àñ ïèøåòñÿ '-')
418
        ;!!! åñëè ðàäèóñ îñòàâëåí ïóñòûì, òî íóæíî ñîõðàíßòü çíà÷åíèå ïî óìîë÷àíèþ (ñåé÷àñ ïèøåòñß '-')
417
        mov esi, radiusBuffer.data
419
        mov esi, radiusBuffer.data
418
        mov ebx, editRadius.size ;radiusBuffer.size
420
        mov ebx, editRadius.size ;radiusBuffer.size
419
        call copyParam
421
        call copyParam
Line 420... Line 422...
420
        call addPerenos
422
        call addPerenos
421
 
423
 
422
        ;äîáàâëÿåì ðàçìåð ýëåìåíòîâ
424
        ;äîáàâëßåì ðàçìåð ýëåìåíòîâ
423
        push ebx    ;ñîõðàíÿåì âûáðàííûé ðåæèì
425
        push ebx    ;ñîõðàíßåì âûáðàííûé ðåæèì
424
        mov bl, byte[sizeStyle]
426
        mov bl, byte[sizeStyle]
425
        mov byte[eax], bl
427
        mov byte[eax], bl
426
        pop ebx
428
        pop ebx
Line 434... Line 436...
434
    mcall 70
436
    mcall 70
435
        cmp eax, 0
437
        cmp eax, 0
436
        je .end
438
        je .end
437
        ;èíà÷å çäåñü íóæíî âûâåñòè îêíî ñ îøèáêîé !!!
439
        ;èíà÷å çäåñü íóæíî âûâåñòè îêíî ñ îøèáêîé !!!
438
.end:
440
.end:
439
        mcall 68, 13, dword[createFile.data_adr]  ;îñâîáîæäàåì ïàìÿòü ïîä áóôåð
441
        mcall 68, 13, dword[createFile.data_adr]  ;îñâîáîæäàåì ïàìßòü ïîä áóôåð
440
        call finishHotAnglesApp ;çàâåðøàåì ðàáîòó âñåõ êîïèé ñåðâèñà @HOTANGLES
442
        call finishHotAnglesApp ;çàâåðøàåì ðàáîòó âñåõ êîïèé ñåðâèñà @HOTANGLES
441
        call loadConfig         ;ïåðåçàãðóæàåì ôàéë êîíôèãà
443
        call loadConfig         ;ïåðåçàãðóæàåì ôàéë êîíôèãà
442
        call draw_window        ;ïåðåðèñîâûâàåì îêíî
444
        call draw_window        ;ïåðåðèñîâûâàåì îêíî
443
        call startHotAnglesApp  ;ïåðåçàïóñêàåì @HOTANGLES
445
        call startHotAnglesApp  ;ïåðåçàïóñêàåì @HOTANGLES
444
        pop ecx ebx eax
446
        pop ecx ebx eax
Line 469... Line 471...
469
   pop ebx ecx esi edi
471
   pop ebx ecx esi edi
470
   ret
472
   ret
Line 471... Line 473...
471
 
473
 
472
 
474
 
473
finishHotAnglesApp:
475
finishHotAnglesApp:
474
   ;íàõîäèì âñå êîïèè ïðèëîæåíèÿ ïî èìåíè è çàâåðøàåì èõ
476
   ;íàõîäèì âñå êîïèè ïðèëîæåíèß ïî èìåíè è çàâåðøàåì èõ
475
   push eax ebx ecx esi edi
477
   push eax ebx ecx esi edi
476
   ;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíÿþòñÿ:
478
   ;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíßþòñß:
477
   mov esi, startAppData.file_name       ;ïåðâàÿ ñòðîêà - èñêîìîå èìÿ ïðèëîæåíèÿ
479
   mov esi, startAppData.file_name       ;ïåðâàß ñòðîêà - èñêîìîå èìß ïðèëîæåíèß
Line 478... Line 480...
478
   mov edi, buf            ;âòîðàÿ ñòðîêà - èìÿ òåêóùåãî ñëîòà
480
   mov edi, buf            ;âòîðàß ñòðîêà - èìß òåêóùåãî ñëîòà
479
   add edi, 10
481
   add edi, 10
480
 
482
 
481
   mov ecx, 1
483
   mov ecx, 1
Line 482... Line 484...
482
@@:
484
@@:
483
   mcall 9, buf, ecx              ;ïîëó÷àåì äàííûå î÷åðåäíîãî ñëîòà
485
   mcall 9, buf, ecx              ;ïîëó÷àåì äàííûå î÷åðåäíîãî ñëîòà
484
   mov dword[slotMax], eax
486
   mov dword[slotMax], eax
Line 485... Line 487...
485
 
487
 
486
   call compareBytes2 ;ñðàâíèâàåì èìÿ
488
   call compareBytes2 ;ñðàâíèâàåì èìß
Line 539... Line 541...
539
fileAdr dd 0
541
fileAdr dd 0
Line 540... Line 542...
540
 
542
 
541
loadConfig:
543
loadConfig:
542
   push eax ebx ecx edx
544
   push eax ebx ecx edx
543
   mcall 68, 27, fileName   ;çàãðóæàåì êîíôèãóðàöèîííûé ôàéë â ÎÇÓ
545
   mcall 68, 27, fileName   ;çàãðóæàåì êîíôèãóðàöèîííûé ôàéë â ÎÇÓ
544
   mov dword[fileAdr], eax  ;ñîõðàíÿåì àäðåñ áëîêà ïàìÿòè ôàéëà
546
   mov dword[fileAdr], eax  ;ñîõðàíßåì àäðåñ áëîêà ïàìßòè ôàéëà
545
   cmp eax, 0
547
   cmp eax, 0
546
   je loadConfig.default       ;åñëè ôàéëà êîíôèãóðàöèè íåò, òî ñòàâèì íàñòðîéêè ïî óìîë÷àíèþ
548
   je loadConfig.default       ;åñëè ôàéëà êîíôèãóðàöèè íåò, òî ñòàâèì íàñòðîéêè ïî óìîë÷àíèþ
547
   ;èíà÷å äàííûå çàãðóæåíû â ÎÇÓ, ðàçìåð â edx
549
   ;èíà÷å äàííûå çàãðóæåíû â ÎÇÓ, ðàçìåð â edx
548
   cmp edx, 0               ;åñëè ôàéë ïóñò, â í¸ì íåò äàííûõ, òî ñòàâèì íàñòðîéêè ïî óìîë÷àíèþ
550
   cmp edx, 0               ;åñëè ôàéë ïóñò, â íÞì íåò äàííûõ, òî ñòàâèì íàñòðîéêè ïî óìîë÷àíèþ
549
   je loadConfig.default
551
   je loadConfig.default
550
.start:
552
.start:
Line 551... Line 553...
551
   add edx, eax             ;êëàä¸ì â edx - àäðåñ êîíöà êîíôèã.äàííûõ
553
   add edx, eax             ;êëàäÞì â edx - àäðåñ êîíöà êîíôèã.äàííûõ
Line 552... Line 554...
552
 
554
 
553
.chStart:
555
.chStart:
554
 
556
 
555
   push ebx
557
   push ebx
556
   mov bl, byte[eax]
558
   mov bl, byte[eax]
557
   cmp bl, 48          ; åñëè çíà÷åíèå âûõîäèò çà äîïóñòèìûå ïðåäåëû, òî ïðîâåðÿåì íà 'n' (äëÿ ñîâìåñòèìîñòè)
559
   cmp bl, 48          ; åñëè çíà÷åíèå âûõîäèò çà äîïóñòèìûå ïðåäåëû, òî ïðîâåðßåì íà 'n' (äëß ñîâìåñòèìîñòè)
Line 558... Line 560...
558
   jb loadConfig.checkN
560
   jb loadConfig.checkN
559
   cmp bl, 51
561
   cmp bl, 51
560
   ja loadConfig.checkN
562
   ja loadConfig.checkN
561
 
563
 
562
   mov byte[mode], bl  ;èíà÷å óñòàíàâëèâàåì ýòîò ðåæèì êàê åñòü
564
   mov byte[mode], bl  ;èíà÷å óñòàíàâëèâàåì ýòîò ðåæèì êàê åñòü
563
   jmp loadConfig.modeEnd   ;è èä¸ì äàëüøå
565
   jmp loadConfig.modeEnd   ;è èäÞì äàëüøå
564
.checkN:
566
.checkN:
Line 571... Line 573...
571
   jne @f
573
   jne @f
572
   mov byte[mode], 49 ;'1'
574
   mov byte[mode], 49 ;'1'
573
   jmp loadConfig.modeEnd
575
   jmp loadConfig.modeEnd
574
@@:
576
@@:
575
   mov byte[mode], 48 ;'0' èíà÷å ïî óìîë÷àíèþ îòêëþ÷åíî
577
   mov byte[mode], 48 ;'0' èíà÷å ïî óìîë÷àíèþ îòêëþ÷åíî
576
   ;mov byte[mode], 49 ;'1' èíà÷å ïî óìîë÷àíèþ âêëþ÷¸í êëàññè÷åñêèé ðåæèì ðàáîòû
578
   ;mov byte[mode], 49 ;'1' èíà÷å ïî óìîë÷àíèþ âêëþ÷Þí êëàññè÷åñêèé ðåæèì ðàáîòû
577
.modeEnd:
579
.modeEnd:
578
   pop ebx
580
   pop ebx
579
   ;jmp loadConfig.end   ;êîìàíäà äëÿ óäîáñòâà îòëàäêè è ïîèñêà îøèáîê
581
   ;jmp loadConfig.end   ;êîìàíäà äëß óäîáñòâà îòëàäêè è ïîèñêà îøèáîê
Line 580... Line 582...
580
 
582
 
581
   ;êîïèðóåì ñîäåðæèìîå ñòðîê â áóôåð
583
   ;êîïèðóåì ñîäåðæèìîå ñòðîê â áóôåð
582
   push edi esi ecx ebx eax
584
   push edi esi ecx ebx eax
583
   ;èíèöèàëèçèðóåì óêàçàòåëè íà àäðåñà áóôåðà ñòðîêè è å¸ ðàçìåðà
585
   ;èíèöèàëèçèðóåì óêàçàòåëè íà àäðåñà áóôåðà ñòðîêè è åÞ ðàçìåðà
584
   mov edi, dataBuffer.1
586
   mov edi, dataBuffer.1
585
   mov esi, dataBuffer.size1
587
   mov esi, dataBuffer.size1
586
   ;ecx - ñ÷¸ò÷èê áàéò â ñòðîêå
588
   ;ecx - ñ÷Þò÷èê áàéò â ñòðîêå
587
.block:
589
.block:
588
   xor ecx, ecx ;îáíóëÿåì ñ÷¸ò÷èê
590
   xor ecx, ecx ;îáíóëßåì ñ÷Þò÷èê
589
   inc eax
591
   inc eax
590
   cmp byte[eax], 10         ;åñëè î÷åðåäíîé êîä ñèìâîëà 10 èëè 13, òî ïðîïóñêàåì ñèìâîëû
592
   cmp byte[eax], 10         ;åñëè î÷åðåäíîé êîä ñèìâîëà 10 èëè 13, òî ïðîïóñêàåì ñèìâîëû
591
   je loadConfig.block       ;äî ïåðâîãî îòëè÷íîãî îò íèõ
593
   je loadConfig.block       ;äî ïåðâîãî îòëè÷íîãî îò íèõ
592
   cmp byte[eax], 13
594
   cmp byte[eax], 13
Line 595... Line 597...
595
   ; ñèìâîë îòëè÷åí îò ïåðåíîñà ñòðîêè è âîçâðàòà êàðåòêè - íà÷èíàåì êîïèðîâàòü îòñþäà â áóôåð
597
   ; ñèìâîë îòëè÷åí îò ïåðåíîñà ñòðîêè è âîçâðàòà êàðåòêè - íà÷èíàåì êîïèðîâàòü îòñþäà â áóôåð
596
   mov bl, byte[eax]
598
   mov bl, byte[eax]
597
   mov byte[edi], bl
599
   mov byte[edi], bl
598
   inc edi
600
   inc edi
599
   inc eax
601
   inc eax
600
   inc ecx ;óâåëè÷èâàåì ñ÷¸ò÷èê ñèìâîëîâ â ñòðîêå
602
   inc ecx ;óâåëè÷èâàåì ñ÷Þò÷èê ñèìâîëîâ â ñòðîêå
Line 601... Line 603...
601
 
603
 
602
   ;èä¸ì äî êîíöà ýòîé ñòðîêè: ïîêà íå âñòðåòèì î÷åðåäíîé 10, 13, 0 èëè file end
604
   ;èäÞì äî êîíöà ýòîé ñòðîêè: ïîêà íå âñòðåòèì î÷åðåäíîé 10, 13, 0 èëè file end
603
.while:     ;è êîïèðóåì âñ¸ â áóôåð
605
.while:     ;è êîïèðóåì âñÞ â áóôåð
604
   cmp eax, edx           ;ïðîâåðÿåì çàêîí÷èëñÿ ëè ôàéë, à êîíöà ñòðîêè íå áûëî !!!
606
   cmp eax, edx           ;ïðîâåðßåì çàêîí÷èëñß ëè ôàéë, à êîíöà ñòðîêè íå áûëî !!!
605
   ja loadConfig.ura
607
   ja loadConfig.ura
606
   cmp byte[eax], 10
608
   cmp byte[eax], 10
607
   je loadConfig.ura
609
   je loadConfig.ura
608
   cmp byte[eax], 0
610
   cmp byte[eax], 0
Line 617... Line 619...
617
   inc ecx
619
   inc ecx
618
   cmp ecx, 511
620
   cmp ecx, 511
619
   jae loadConfig.ura
621
   jae loadConfig.ura
620
   jmp loadConfig.while
622
   jmp loadConfig.while
621
.ura:
623
.ura:
622
   mov byte[edi], 0      ;êëàä¸ì çàâåðøàþùèé 0 â ñòðîêó
624
   mov byte[edi], 0      ;êëàäÞì çàâåðøàþùèé 0 â ñòðîêó
623
   mov dword[esi], ecx   ;ñîõðàíÿåì ðàçìåð ñòðîêè
625
   mov dword[esi], ecx   ;ñîõðàíßåì ðàçìåð ñòðîêè
624
   add esi, 4            ;ïåðåõîäèì íà ðàçìåð ñëåäóþùåãî áóôåðà
626
   add esi, 4            ;ïåðåõîäèì íà ðàçìåð ñëåäóþùåãî áóôåðà
625
   sub edi, ecx          ;ïåðåõîäèì íà ñëåäóþùèé áóôåð
627
   sub edi, ecx          ;ïåðåõîäèì íà ñëåäóþùèé áóôåð
626
   add edi, 512
628
   add edi, 512
627
   ;xor ecx, ecx          ;îáíóëÿåì ðàçìåð ñòðîêè
629
   ;xor ecx, ecx          ;îáíóëßåì ðàçìåð ñòðîêè
Line 628... Line 630...
628
 
630
 
629
   cmp edi, dataBuffer.size1 ;åñëè ýòî áûë ïîñëåäíèé áóôåð (è ìû âûøëè çà àäðåñà ðàçìåðîâ áóôåðîâ), òî âûõîäèì
631
   cmp edi, dataBuffer.size1 ;åñëè ýòî áûë ïîñëåäíèé áóôåð (è ìû âûøëè çà àäðåñà ðàçìåðîâ áóôåðîâ), òî âûõîäèì
Line 630... Line 632...
630
   jb loadConfig.block
632
   jb loadConfig.block
Line 634... Line 636...
634
 
636
 
635
   ;ñ÷èòûâàåì ñêàíêîä êëàâèøè
637
   ;ñ÷èòûâàåì ñêàíêîä êëàâèøè
636
   call readScanKey
638
   call readScanKey
Line 637... Line 639...
637
   call gotoEndString
639
   call gotoEndString
638
 
640
 
639
   call readOptRadius     ;ñ÷èòûâàåì çíà÷åíèå ðàäèóñà äëÿ mode 3
641
   call readOptRadius     ;ñ÷èòûâàåì çíà÷åíèå ðàäèóñà äëß mode 3
640
   call gotoEndString
642
   call gotoEndString
Line 641... Line 643...
641
   call readOptSize       ;ñ÷èòûâàåì ðàçìåð ýëåìåíòîâ
643
   call readOptSize       ;ñ÷èòûâàåì ðàçìåð ýëåìåíòîâ
Line 650... Line 652...
650
   jmp loadConfig.start
652
   jmp loadConfig.start
651
.end:
653
.end:
652
   mov ecx, dword[fileAdr]    ;åñëè ôàéë áûë çàãðóæåí, òî
654
   mov ecx, dword[fileAdr]    ;åñëè ôàéë áûë çàãðóæåí, òî
653
   cmp ecx, 0
655
   cmp ecx, 0
654
   je @f
656
   je @f
655
   mcall 68, 13, ecx  ;âûãðóæàåì ôàéë èç ïàìÿòè
657
   mcall 68, 13, ecx  ;âûãðóæàåì ôàéë èç ïàìßòè
656
@@:
658
@@:
657
   call updateParams ;ïðèìåíÿåì íàñòðîéêè êàæäîãî áóôåðà
659
   call updateParams ;ïðèìåíßåì íàñòðîéêè êàæäîãî áóôåðà
658
   call setMySize    ;ïðèìåíÿåì íàñòðîéêè ðàçìåðà ýëåìåíòîâ
660
   call setMySize    ;ïðèìåíßåì íàñòðîéêè ðàçìåðà ýëåìåíòîâ
659
   pop edx ecx ebx eax
661
   pop edx ecx ebx eax
660
   ret
662
   ret
Line 661... Line 663...
661
 
663
 
662
 
664
 
663
setMySize:
665
setMySize:
664
   push eax
666
   push eax
665
   ;âûñòàâëÿåì mysize â çàâèñèìîñòè îò çíà÷åíèÿ sizeStyle
667
   ;âûñòàâëßåì mysize â çàâèñèìîñòè îò çíà÷åíèß sizeStyle
666
   cmp byte[sizeStyle], '0'
668
   cmp byte[sizeStyle], '0'
667
   jb @f
669
   jb @f
668
   cmp byte[sizeStyle], '7'
670
   cmp byte[sizeStyle], '7'
669
   ja @f
671
   ja @f
670
   mov eax, 0                  ;åñëè çíà÷åíèå ðàçìåðà çàäàíî, òî åãî è âûñòàâëÿåì
672
   mov eax, 0                  ;åñëè çíà÷åíèå ðàçìåðà çàäàíî, òî åãî è âûñòàâëßåì
671
   mov al, byte[sizeStyle]
673
   mov al, byte[sizeStyle]
672
   sub al, '0'
674
   sub al, '0'
673
   jmp .end
675
   jmp .end
674
@@:
676
@@:
675
   cmp byte[sizeStyle], 'a'
677
   cmp byte[sizeStyle], 'a'
676
   je .auto
678
   je .auto
677
   cmp byte[sizeStyle], 'x'
679
   ;cmp byte[sizeStyle], 's'
678
   je .x
680
   ;je .system
-
 
681
.system:     ;èíà÷å çíà÷åíèå ïî óìîë÷àíèþ: s - ñèñòåìíàß
-
 
682
;   push ebx ecx
679
.system:     ;èíà÷å çíà÷åíèå ïî óìîë÷àíèþ: s - ñèñòåìíàÿ
683
   ;!!!
680
   push ebx ecx edx
684
;   mov eax, 9
681
   mcall 48, 11   ;ïîëó÷àåì ñèñòåìíûé ðàçìåð øðèôòà
-
 
682
   ;òåïåðü eax - âûñîòà øðèôòà â ïèêñåëÿõ
685
;   mcall 48, 11   ;ïîëó÷àåì ñèñòåìíûé ðàçìåð øðèôòà
683
   mov ebx, 9     ;temp fix -  äåëèì íà òåêóùèé ðàçìåð øðèôòà and -1
686
   ;eax - âûñîòà øðèôòà â ïèêñåëßõ
-
 
687
;   mov ecx, eax
684
   mov edx, 0
688
;   push eax
685
   div ebx
-
 
686
   pop edx ecx ebx
689
;   mcall 48, 12, ecx  ;ïðèìåíßåì ðàçìåð øðèôòà
-
 
690
;   pop eax
687
 
691
;   pop ecx ebx
688
   cmp eax, 0
692
   ;temp fix -  äåëèì íà òåêóùèé ðàçìåð øðèôòà and -1
689
   je .end
693
;   push ebx edx
690
   cmp eax, 7
694
;   mov ebx, 9
691
   jae .size7
695
   ;div ebx
692
   dec eax
696
;   pop edx ebx
693
   ;mov eax, 0   ;test
-
 
694
   jmp .end
697
   ;cmp eax, 0
695
.x:
698
   ;je .end
696
   mov byte[sizeStyle], 'x'
699
   ;dec eax
697
   mov eax, 0
700
   mov eax, 0 ;xor eax, eax ;test temp
-
 
701
   jmp .end
698
   jmp .end
702
.auto:       ;a - âûñòàâëßåì â çàâèñèìîñòè îò ðàçðåøåíèß ýêðàíà
699
.auto:       ;a - âûñòàâëÿåì â çàâèñèìîñòè îò ðàçðåøåíèÿ ýêðàíà
703
   ;!!!
700
   mcall 14
704
   mcall 14
701
   push ebx
705
   push ebx
702
   xor ebx, ebx
706
   xor ebx, ebx
703
   mov bx, ax
707
   mov bx, ax
704
   shr eax, 16
708
   shr eax, 16
705
   cmp ax, bx       ;ïîëó÷àåì áîëüøèé ðàçìåð ñòîðîíû
709
   cmp ax, bx       ;ïîëó÷àåì áîëüøèé ðàçìåð ñòîðîíû
706
   jae .a
710
   jae .a
707
   mov ax, bx
711
   mov ax, bx
708
.a:
712
.a:
709
   pop ebx
713
   pop ebx
710
   cmp ax, 1300 ;1919     ;ðàçìåðû ïîëó÷åííûå âûøå îò 0 è íà 1 ìåíüøå
-
 
711
   jb .size0
-
 
712
   cmp ax, 1899 ;919
714
   cmp ax, 1919     ;ðàçìåðû ïîëó÷åííûå âûøå îò 0 è íà 1 ìåíüøå
713
   jb .x
715
   jb .size0
714
   cmp ax, 2047
716
   cmp ax, 2047
715
   jb .size1
717
   jb .size1
716
   cmp ax, 4095
718
   cmp ax, 4095
717
   jb .size2
719
   jb .size2
718
   cmp ax, 8191
-
 
719
   jb .size3
-
 
720
   cmp ax, 16383
-
 
721
   jb .size4
-
 
722
   cmp ax, 32767
-
 
723
   jb .size5
-
 
Line 724... Line 720...
724
   cmp ax, 65535
720
   cmp ax, 8191
Line 725... Line 721...
725
   jb .size6
721
   jb .size3
726
 
722
 
727
   jmp .size7
723
   jmp .size4
728
 
724
 
Line 759... Line 755...
759
   ret
755
   ret
Line 760... Line 756...
760
 
756
 
761
 
757
 
762
readScanKey:
758
readScanKey:
763
   ;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå
759
   ;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå
764
   cmp eax, edx  ;åñëè ôàéë çàêîí÷èëñÿ, òî
760
   cmp eax, edx  ;åñëè ôàéë çàêîí÷èëñß, òî
765
   ja .default   ;íàñòðîéêè ïî óìîë÷àíèþ
761
   ja .default   ;íàñòðîéêè ïî óìîë÷àíèþ
766
   cmp byte[eax], 10
762
   cmp byte[eax], 10
767
   je @f
763
   je @f
Line 805... Line 801...
805
.end:
801
.end:
806
   ret
802
   ret
Line 807... Line 803...
807
 
803
 
808
readOptKey:  ;1;3;4;5 - space or shift
804
readOptKey:  ;1;3;4;5 - space or shift
809
   ;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå
805
   ;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå
810
   cmp eax, edx  ;åñëè ôàéë çàêîí÷èëñÿ, òî
806
   cmp eax, edx  ;åñëè ôàéë çàêîí÷èëñß, òî
811
   ja .default   ;íàñòðîéêè ïî óìîë÷àíèþ
807
   ja .default   ;íàñòðîéêè ïî óìîë÷àíèþ
812
   cmp byte[eax], 10
808
   cmp byte[eax], 10
813
   je @f
809
   je @f
814
   cmp byte[eax], 0
810
   cmp byte[eax], 0
Line 838... Line 834...
838
   jne .notAlt
834
   jne .notAlt
839
   mov byte[hkSymbol], 1
835
   mov byte[hkSymbol], 1
840
   mov dword[hkSize], 3
836
   mov dword[hkSize], 3
841
   jmp .end
837
   jmp .end
842
.notAlt:
838
.notAlt:
843
   ;óáåäèìñÿ, ÷òî òàì 1 ñèìâîë, à íå ñòðîêà
839
   ;óáåäèìñß, ÷òî òàì 1 ñèìâîë, à íå ñòðîêà
844
   cmp byte[eax+1], 10
840
   cmp byte[eax+1], 10
845
   je .oneSymb
841
   je .oneSymb
846
   cmp byte[eax+1], 0
842
   cmp byte[eax+1], 0
847
   je .oneSymb
843
   je .oneSymb
848
   cmp byte[eax+1], 13
844
   cmp byte[eax+1], 13
849
   je .oneSymb
845
   je .oneSymb
850
   jmp .default
846
   jmp .default
851
.oneSymb:
847
.oneSymb:
852
   ;ïðîâåðÿåì, ÷òî ñèìâîë ðàçðåø¸ííûé  !!!
848
   ;ïðîâåðßåì, ÷òî ñèìâîë ðàçðåøÞííûé  !!!
Line 853... Line 849...
853
 
849
 
854
   ;äîáàâëÿåì ñèìâîë êàê åñòü
850
   ;äîáàâëßåì ñèìâîë êàê åñòü
855
   push ebx
851
   push ebx
856
   ;xor ebx, ebx
852
   ;xor ebx, ebx
857
   mov bl, byte[eax]
853
   mov bl, byte[eax]
858
   mov byte[hkSymbol], bl
854
   mov byte[hkSymbol], bl
Line 871... Line 867...
871
   mov byte[hkSymbol+1], 0
867
   mov byte[hkSymbol+1], 0
872
   ret
868
   ret
Line 873... Line 869...
873
 
869
 
874
;ïðîõîäèì äî êîíöà òåêóùåé ñòðîêè
870
;ïðîõîäèì äî êîíöà òåêóùåé ñòðîêè
875
gotoEndString:
871
gotoEndString:
876
   cmp eax, edx  ;åñëè ôàéë çàêîí÷èëñÿ, òî
872
   cmp eax, edx  ;åñëè ôàéë çàêîí÷èëñß, òî
877
   ja @f         ;âûõîäèì
873
   ja @f         ;âûõîäèì
878
   cmp byte[eax], 10
874
   cmp byte[eax], 10
879
   je @f
875
   je @f
880
   cmp byte[eax], 0
876
   cmp byte[eax], 0
Line 887... Line 883...
887
@@:
883
@@:
888
   ret
884
   ret
Line 889... Line 885...
889
 
885
 
890
readOptRadius:
886
readOptRadius:
891
   ;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå
887
   ;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå
892
   cmp eax, edx  ;åñëè ôàéë çàêîí÷èëñÿ, òî
888
   cmp eax, edx  ;åñëè ôàéë çàêîí÷èëñß, òî
893
   ja .default   ;íàñòðîéêè ïî óìîë÷àíèþ
889
   ja .default   ;íàñòðîéêè ïî óìîë÷àíèþ
894
   cmp byte[eax], 10
890
   cmp byte[eax], 10
895
   je @f
891
   je @f
896
   cmp byte[eax], 0
892
   cmp byte[eax], 0
Line 904... Line 900...
904
.readValue:
900
.readValue:
905
   mov bl, byte[eax]
901
   mov bl, byte[eax]
906
   mov byte[radiusBuffer.data+ecx], bl
902
   mov byte[radiusBuffer.data+ecx], bl
907
   inc ecx
903
   inc ecx
908
   inc eax
904
   inc eax
909
   cmp eax, edx  ;åñëè ôàéë çàêîí÷èëñÿ, òî âûõîä
905
   cmp eax, edx  ;åñëè ôàéë çàêîí÷èëñß, òî âûõîä
910
   ja .readEnd
906
   ja .readEnd
911
   cmp byte[eax], 10
907
   cmp byte[eax], 10
912
   je .readEnd
908
   je .readEnd
913
   cmp byte[eax], 0
909
   cmp byte[eax], 0
914
   je .readEnd
910
   je .readEnd
Line 935... Line 931...
935
   ret
931
   ret
Line 936... Line 932...
936
 
932
 
937
 
933
 
938
readOptSize:
934
readOptSize:
939
   ;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå
935
   ;ïðîïóñêàåì ïåðåíîñû ñòðîê â íà÷àëå
940
   cmp eax, edx  ;åñëè ôàéë çàêîí÷èëñÿ, òî
936
   cmp eax, edx  ;åñëè ôàéë çàêîí÷èëñß, òî
941
   ja .default   ;íàñòðîéêè ïî óìîë÷àíèþ
937
   ja .default   ;íàñòðîéêè ïî óìîë÷àíèþ
942
   cmp byte[eax], 10
938
   cmp byte[eax], 10
943
   je @f
939
   je @f
944
   cmp byte[eax], 0
940
   cmp byte[eax], 0
945
   je @f
941
   je @f
Line 946... Line 942...
946
   cmp byte[eax], 13
942
   cmp byte[eax], 13
947
   je @f
943
   je @f
948
 
944
 
949
   ;ïðîâåðÿåì, ÷òî ýòî äîïóñòèìîå çíà÷åíèå: 1-7, a, s
945
   ;ïðîâåðßåì, ÷òî ýòî äîïóñòèìîå çíà÷åíèå: 1-7, a, s
950
   cmp byte[eax], 'a'
946
   cmp byte[eax], 'a'
951
   je .setValue
-
 
952
   cmp byte[eax], 's'
-
 
953
   je .setValue
947
   je .setValue
954
   cmp byte[eax], 'x'
948
   cmp byte[eax], 's'
955
   je .setValue
949
   je .setValue
956
   cmp byte[eax], '0'
950
   cmp byte[eax], '0'
957
   je .setValue
951
   je .setValue
Line 1043... Line 1037...
1043
selfPID dd 0
1037
selfPID dd 0
1044
buf db 1024 dup(0)
1038
buf db 1024 dup(0)
1045
copyKill:
1039
copyKill:
1046
   push eax ebx ecx esi edi
1040
   push eax ebx ecx esi edi
Line 1047... Line 1041...
1047
 
1041
 
1048
   ;ñïåðâà ïðî÷ò¸ì ñâîþ èíôîðìàöèþ
1042
   ;ñïåðâà ïðî÷òÞì ñâîþ èíôîðìàöèþ
1049
   mcall 9, buf, -1
1043
   mcall 9, buf, -1
1050
   mov eax, dword[buf+30]
1044
   mov eax, dword[buf+30]
Line 1051... Line 1045...
1051
   mov dword[selfPID], eax
1045
   mov dword[selfPID], eax
1052
 
1046
 
1053
   ;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíÿþòñÿ:
1047
   ;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíßþòñß:
1054
   mov esi, selfName       ;ïåðâàÿ ñòðîêà - èìÿ òåêóùåãî ïðèëîæåíèÿ
1048
   mov esi, selfName       ;ïåðâàß ñòðîêà - èìß òåêóùåãî ïðèëîæåíèß
Line 1055... Line 1049...
1055
   mov edi, buf            ;âòîðàÿ ñòðîêà - èìÿ òåêóùåãî ñëîòà
1049
   mov edi, buf            ;âòîðàß ñòðîêà - èìß òåêóùåãî ñëîòà
1056
   add edi, 10
1050
   add edi, 10
1057
 
1051
 
Line 1082... Line 1076...
1082
   ret
1076
   ret
1083
@@:
1077
@@:
1084
   pop edi esi ecx ebx eax
1078
   pop edi esi ecx ebx eax
1085
   ret
1079
   ret
Line 1086... Line -...
1086
 
-
 
1087
 
-
 
1088
 
-
 
1089
 
-
 
1090
reg: dw 0
-
 
1091
shlRegForSizeElems:
-
 
1092
   push eax edx
-
 
1093
   xor eax, eax
-
 
1094
   xor edx, edx
-
 
1095
   mov ax, word[reg]
-
 
1096
   mov dl, byte[mysize]
-
 
1097
@@:
-
 
1098
   cmp dl, 0
-
 
1099
   je @f
-
 
1100
   shl ax, 1
-
 
1101
   dec dl
-
 
1102
   jmp @b
-
 
1103
@@:
-
 
1104
   mov word[reg], ax
-
 
1105
   pop edx eax
-
 
1106
   ret
-
 
1107
 
1080
 
1108
 WindowsWidth  = 450
1081
 WindowsWidth  = 550
1109
 WindowsHeight = 195 + 35 - 5
1082
 WindowsHeight = 235
1110
coord:      ;êîîðäèíàòû îêíà ïðèëîæåíèÿ
1083
coord:      ;êîîðäèíàòû îêíà ïðèëîæåíèß
1111
 .y dw 0
1084
 .y dw 0
Line 1112... Line -...
1112
 .x dw 0
-
 
1113
 
-
 
1114
 
-
 
1115
 
-
 
1116
 
-
 
1117
 
-
 
1118
BaseY = 36  ;ñìåùåíèå äî ïåðâîãî, ñàìîãî âåðõíåãî, ýëåìåíòà âíóòðè îêíà
-
 
1119
 
-
 
1120
elem:
-
 
1121
 .winWidth:  dw 450
-
 
1122
 .winHeight: dw 225
-
 
1123
 .butAppleWidth:  dw 80
-
 
1124
 .butAppleHeight: dw 20
-
 
1125
 .textDelta: dw 3 ;îòñòóï ìåæäó ñòðîêàìè ìíîãîñòðî÷íîãî òåêñòà
-
 
1126
 .butDialWidth:  dw 30      ;âûñîòà è øèðèíà äëÿ 4 êíîïîê äèàëîãîâîãî îêíà
-
 
1127
 .butDialHeight: dw 14
-
 
1128
 .textHeight:    dw 9 ;ðàçìåð âûñîòà øðèôòà
-
 
1129
 ;.editHeight:    dw
-
 
1130
 .editCommandWidth: dw 150 ;180-butDialWidth
-
 
1131
 .butModeWidth: dw 221
-
 
1132
 ;.textCommandUpY: dw 74
-
 
1133
 .butModeY: dw 160
-
 
1134
 ;.editRadiusWidth: dw 40
-
 
1135
elemEnd:
-
 
1136
 
-
 
1137
 
-
 
1138
;âûñòàâëÿåì âñå çíà÷åíèÿ ïî óìîë÷àíèþ
-
 
1139
defaultElems:
-
 
1140
   mov word[elem.winWidth], 450
-
 
1141
   mov word[elem.winHeight], 225
-
 
1142
   mov word[elem.butAppleWidth], 80
-
 
1143
   mov word[elem.butAppleHeight], 20
-
 
1144
   mov word[elem.textDelta], 3
-
 
1145
   mov word[elem.butDialWidth], 30
-
 
1146
   mov word[elem.butDialHeight], 14
-
 
1147
   mov word[elem.textHeight], 9
-
 
1148
   mov word[elem.editCommandWidth], 150
-
 
1149
   mov word[elem.butModeWidth], 221
-
 
1150
   mov word[elem.butModeY], 160
-
 
1151
   ;mov word[elem.editRadiusWidth], 40
-
 
1152
   ret
-
 
1153
 
-
 
1154
;ïðîõîäèì ïî âñåì ýëåìåíòàì è ïåðåâû÷èñëÿåì ïàðàìåòðû (ôóíêöèÿ âûïîëíÿåòñÿ 1 ðàç ïðè çàãðóçêå êîíôèãóðàöèè)
-
 
1155
resizeElems:
-
 
1156
   push ebx esi
-
 
1157
   xor ebx, ebx
-
 
1158
   mov esi, elem
-
 
1159
@@:
-
 
1160
   cmp esi, elemEnd
-
 
1161
   jae @f
-
 
1162
 
-
 
1163
   mov bx, word[esi]
-
 
1164
   mov word[reg], bx
-
 
1165
   call shlRegForSizeElems
-
 
1166
   mov bx, word[reg]
-
 
1167
   mov word[esi], bx
-
 
1168
   add esi, 2
-
 
1169
   jmp @b
-
 
1170
@@:
-
 
1171
   pop esi ebx
-
 
1172
   ret
-
 
1173
 
-
 
1174
 
-
 
1175
 
-
 
1176
 
-
 
1177
 
-
 
1178
 
-
 
1179
 
1085
 .x dw 0
1180
 
1086
 
1181
draw_window:
-
 
1182
   ;óäàëÿåì êíîïêó, åñëè åñòü
-
 
Line 1183... Line -...
1183
   mov edx, 0x80000002
-
 
1184
   mcall 8
-
 
1185
 
-
 
1186
   ;óäàëÿåì åù¸ 4 êíîïêè åñëè îíè åñòü
-
 
1187
   mov edx, 0x80000004
-
 
1188
   mcall 8
-
 
1189
   mov edx, 0x80000005
-
 
1190
   mcall 8
-
 
1191
   mov edx, 0x80000006
-
 
1192
   mcall 8
-
 
1193
   mov edx, 0x80000007
-
 
1194
   mcall 8
-
 
1195
 
-
 
1196
   mov     eax, 12                 ; function 12: tell os about windowdraw
-
 
1197
   mov     ebx, 1                  ; 1, start of draw
-
 
1198
   mcall
-
 
1199
 
-
 
1200
   cmp byte[sizeStyle], 'x'
-
 
1201
   je draw_window_x
-
 
1202
   jmp draw_window_old
-
 
1203
 
-
 
1204
draw_window_x:
-
 
1205
    mov word[elem.winWidth], 450+150
-
 
1206
    mov word[elem.winHeight], 225+220/2
-
 
1207
    mov word[elem.butAppleWidth], 80+80/3
-
 
1208
    mov word[elem.butAppleHeight], 20+20/3
-
 
1209
    mov word[elem.textDelta], 3
-
 
1210
    mov word[elem.butDialWidth], 30+10
-
 
1211
    mov word[elem.butDialHeight], 14+7
-
 
1212
    mov word[elem.textHeight], 9*2
-
 
1213
    mov word[elem.editCommandWidth], 150+50
-
 
1214
    mov word[elem.butModeWidth], 221
-
 
1215
    mov word[elem.butModeY], 160+90
1087
draw_window:
1216
 
1088
		mcall   12, 1  ; Start window redraw
1217
draw_window_old:
1089
 
1218
        ;îòîáðàçèì îêíî ïî öåíòðó ýêðàíà äëÿ ýòîãî:
1090
        ;îòîáðàçèì îêíî ïî öåíòðó ýêðàíà äëß ýòîãî:
1219
        mcall 14 ;ïîëó÷èì ðàçìåðû ýêðàíà
1091
        mcall 14 ;ïîëó÷èì ðàçìåðû ýêðàíà
Line 1220... Line 1092...
1220
        mov dword[coord], eax       ;ïîëîæèì ðàçìåðû ýêðàíà â êîîðäèíàòû
1092
        mov dword[coord], eax       ;ïîëîæèì ðàçìåðû ýêðàíà â êîîðäèíàòû
1221
        shr word[coord.x], 1        ;âåðíåå ïîëîæèì èõ ïîëîâèíó
-
 
1222
        shr word[coord.y], 1
-
 
1223
 
1093
        shr word[coord.x], 1        ;âåðíåå ïîëîæèì èõ ïîëîâèíó
1224
        ;âû÷èñëÿåì êîîðäèíàòû îêíà, ÷òîáû îêíî áûëî ïî ñåðåäèíå ýêðàíà
-
 
1225
        mov bx, word[elem.winWidth] ;îòíèìàåì îò ñåðåäèíû ýêðàíà ïîëîâèíó ðàçìåðà îêíà
-
 
1226
        shr bx, 1
-
 
1227
        sub word[coord.x], bx
1094
        shr word[coord.y], 1
Line 1228... Line 1095...
1228
 
1095
 
1229
        mov bx, word[elem.winHeight]
1096
        ;âû÷èñëßåì êîîðäèíàòû îêíà, ÷òîáû îêíî áûëî ïî ñåðåäèíå ýêðàíà
1230
        shr bx, 1
1097
        sub word[coord.x], WindowsWidth/2
1231
        sub word[coord.y], bx
1098
        sub word[coord.y], WindowsHeight/2
1232
 
1099
 
Line 1233... Line 1100...
1233
        mov     eax, 0                  ; function 0 : define and draw window
1100
        mov     eax, 0                  ; function 0 : define and draw window
1234
        mov     ebx, 0                  ; [x start] *65536 + [x size]
1101
        mov     ebx, 0                  ; [x start] *65536 + [x size]
1235
        mov bx, word[coord.x]
1102
        mov bx, word[coord.x]
1236
        shl  ebx, 16
1103
        shl  ebx, 16
Line 1237... Line 1104...
1237
        mov bx, word[elem.winWidth]
1104
        mov bx, WindowsWidth
1238
 
1105
 
1239
        mov ecx, 0
1106
        mov ecx, 0
1240
        mov     cx, word[coord.y]       ; [y start] *65536 + [y size]
1107
        mov     cx, word[coord.y]       ; [y start] *65536 + [y size]
1241
        shl ecx, 16
1108
        shl ecx, 16
1242
        mov cx, word[elem.winHeight]
1109
        mov cx, WindowsHeight
Line 1243... Line -...
1243
 
-
 
1244
        mov     edx, 0x14ffffff         ; color of work area RRGGBB
-
 
1245
                                        ; 0x02000000 = window type 4 (fixed size, skinned window)
-
 
1246
        mov     esi, 0x808899ff         ; color of grab bar  RRGGBB
-
 
1247
                                        ; 0x80000000 = color glide
-
 
1248
        mov     edi, title
-
 
1249
        mcall
-
 
1250
 
-
 
1251
 
-
 
1252
        ;ðàçìåðû è êîîðäèíàòû
-
 
1253
        ;push eax
-
 
1254
        xor eax, eax ;mov eax, 0
-
 
1255
        mov ax, word[elem.editCommandWidth]
-
 
1256
        mov dword[editLU.width], eax
-
 
1257
        mov dword[editLD.width], eax
-
 
1258
        mov dword[editRU.width], eax
-
 
1259
        mov dword[editRD.width], eax
-
 
1260
 
-
 
1261
        ;mov ax, word[elem.editRadiusWidth]
-
 
1262
        mov ax, word[elem.winWidth]
-
 
1263
        sub ax, word[elem.butModeWidth]
-
 
1264
        sub ax, Otstup
-
 
1265
        sub ax, word[elem.butAppleHeight] ;Otstup
-
 
1266
        shr ax, 1
-
 
1267
        sub ax, Otstup
-
 
1268
        mov dword[editRadius.width], eax
-
 
1269
 
-
 
1270
        ;mov ax, word[elem.butDialHeight]
-
 
1271
        xor ecx, ecx
-
 
1272
        call setNewSizeForText
-
 
1273
        mov dword[editLU.text_color], ecx ;0x90000000 ;eax
-
 
1274
        mov dword[editLD.text_color], ecx
-
 
1275
        mov dword[editRU.text_color], ecx
-
 
1276
        mov dword[editRD.text_color], ecx
-
 
1277
        mov dword[editRadius.text_color], ecx
-
 
1278
 
-
 
1279
        ;mov ecx, dword[editRadius.height]
-
 
1280
        ;mov word[elem.butDialHeight], cx
-
 
1281
 
-
 
1282
        ;mov eax, 0
-
 
1283
        mov ax, word[elem.winWidth]
-
 
1284
        sub ax, Otstup
-
 
1285
        sub ax, word[elem.butDialWidth]
-
 
1286
        sub ax, word[elem.editCommandWidth]
-
 
1287
        mov dword[editRU.left], eax
-
 
1288
        mov dword[editRD.left], eax
-
 
1289
 
-
 
1290
        mov ax, Otstup
-
 
1291
        add ax, word[elem.butDialWidth]
-
 
1292
        mov dword[editLU.left], eax
-
 
1293
        mov dword[editLD.left], eax
-
 
1294
 
-
 
1295
        mov ax, word[elem.textHeight]
-
 
1296
        add ax, word[elem.textDelta]
-
 
1297
        shl ax, 2
-
 
1298
        add ax, BaseY+2
-
 
1299
        mov dword[editLU.top], eax
-
 
1300
        mov dword[editRU.top], eax
-
 
1301
 
-
 
1302
        add ax, 4
-
 
1303
        ;mov ax, word[elem.textHeight]
-
 
1304
        ;add ax, word[elem.textDelta]
-
 
1305
        ;shl ax, 2
-
 
1306
        sub ax, word[elem.textHeight]
-
 
1307
        ;add ax, BaseY
-
 
1308
        add ax, word[elem.textHeight]
-
 
1309
        ;add ax, 6
-
 
1310
        add ax, word[elem.butDialHeight]
-
 
1311
        add ax, word[elem.textHeight]
-
 
1312
        add ax, word[elem.textHeight]
1110
 
1313
        mov dword[editLD.top], eax
1111
        mov     edx, 0x14ffffff         ; color of work area RRGGBB
1314
        mov dword[editRD.top], eax
1112
                                        ; 0x02000000 = window type 4 (fixed size, skinned window)
1315
 
1113
        mov     esi, 0x808899ff         ; color of grab bar  RRGGBB
Line 1316... Line -...
1316
        ;pop eax
-
 
1317
        ;mcall   48,3,sc,40
-
 
1318
        ;edit_boxes_set_sys_color editRadius, sc  ;editLU, editLD, editRU, editRD, editRadius, sc
-
 
1319
 
-
 
1320
        invoke  edit_box_draw, editLU  ;ðèñîâàíèå edit box'îâ
-
 
1321
        invoke  edit_box_draw, editLD
-
 
1322
        invoke  edit_box_draw, editRU
-
 
1323
        invoke  edit_box_draw, editRD
-
 
1324
 
-
 
1325
        ;ðèñóåì êíîïêó
-
 
1326
        mov bx, word[elem.winWidth]       ;êîîðäèíàòà X êíîïêè
-
 
1327
        sub bx, word[elem.butAppleWidth]
-
 
1328
        sub bx, Otstup
-
 
1329
        shl ebx, 16
-
 
1330
        add bx, word[elem.butAppleWidth]  ;øèðèíà êíîïêè
-
 
1331
 
-
 
1332
        mov cx, word[elem.winHeight]      ;êîîðäèíàòà Y
1114
                                        ; 0x80000000 = color glide
1333
        sub cx, word[elem.butAppleHeight]
-
 
1334
        sub cx, 15
-
 
1335
        shl ecx, 16
-
 
1336
        add cx, word[elem.butAppleHeight] ;âûñîòà êíîïêè
-
 
1337
 
-
 
1338
        mov edx, 0x00000002       ;íîìåð êíîïêè
-
 
1339
        mov esi, 0x00AABBCC       ;öâåò êíîïêè
-
 
1340
        mcall 8
1115
        mov     edi, title
1341
        ;ðèñóåì òåêñò êíîïêè
-
 
1342
        mov bx, word[elem.winWidth]       ;êîîðäèíàòà X òåêñòà
-
 
1343
        sub bx, word[elem.butAppleWidth]
-
 
1344
        sub bx, Otstup
1116
        mcall
1345
        add bx, 25
-
 
1346
        sub bx, buttonTextXoffset     ;!!!use size
-
 
1347
        shl ebx, 16
1117
 
1348
        add bx, word[elem.winHeight]  ;êîîðäèíàòà Y òåêñòà
-
 
Line 1349... Line 1118...
1349
        sub bx, word[elem.butAppleHeight]
1118
        invoke  edit_box_draw, editLU  ;ðèñîâàíèå edit box'îâ
1350
        sub bx, 15
1119
        invoke  edit_box_draw, editLD
1351
        add bx, 6                     ;!!!use size
-
 
1352
 
1120
        invoke  edit_box_draw, editRU
1353
        mov     ecx, 0xFFFFFF     ;áåëûé öâåò òåêñòà
-
 
1354
        call setNewSizeForText
-
 
-
 
1121
        invoke  edit_box_draw, editRD
1355
        mov     edx, buttonText
1122
 
1356
        mov     esi, buttonTextSize  ;ðàçìåð òåêñòà â ñèìâîëàõ
-
 
1357
        mcall 4
-
 
1358
 
1123
        ;ðèñóåì êíîïêó è åå òåêñò
1359
        ;ðèñóåì åù¸ 4 êíîïêè äëÿ äèàëîãîâîãî îêíà âûáîðà ôàéëà
-
 
1360
        ;íîìåðà 4,5,6 è 7
-
 
1361
        buttonH = 14
-
 
1362
        buttonW = 30
-
 
1363
 
-
 
1364
 
-
 
1365
        ;ëåâûé âåðõíèé óãîë
-
 
1366
        mov ebx, Otstup ;êîîðäèíàòà X
-
 
1367
        shl ebx, 16
-
 
1368
        add bx, word[elem.butDialWidth] ;øèðèíà êíîïêè
-
 
1369
 
-
 
1370
        ;mov ecx, 85     ;êîîðäèíàòà Y      36+3*9+2*3+ 5 +9+2
-
 
1371
        ;BaseY+4*(word[elem.textHeight]+word[elem.textDelta])+2
-
 
1372
        mov cx, word[elem.textHeight]
-
 
1373
        add cx, word[elem.textDelta]
1124
        buttonAppleY = WindowsHeight-40
1374
        shl cx, 2
1125
        mcall 8, , , 2, 0x00AABBCC
1375
        add cx, BaseY+2
-
 
1376
        shl ecx, 16
-
 
1377
        add cx, word[elem.butDialHeight] ;âûñîòà êíîïêè
-
 
1378
 
-
 
1379
        mov edx, 0x00000004       ;íîìåð êíîïêè
-
 
1380
        mov esi, 0x00AABBCC       ;öâåò êíîïêè
-
 
1381
        mcall 8
-
 
1382
 
-
 
1383
        ;ëåâûé íèæíèé óãîë
-
 
1384
        mov ebx, Otstup ;êîîðäèíàòà X
-
 
1385
        shl ebx, 16
-
 
1386
        add bx, word[elem.butDialWidth] ;øèðèíà êíîïêè
-
 
1387
        ;mov ecx, 120    ;êîîðäèíàòà Y
-
 
1388
        mov cx, word[elem.textHeight]
-
 
1389
        add cx, word[elem.textDelta]
-
 
1390
        shl cx, 2
-
 
1391
        sub cx, word[elem.textHeight]
-
 
1392
        add cx, BaseY
-
 
1393
        add cx, word[elem.textHeight]
-
 
1394
        add cx, 6
-
 
1395
        add cx, word[elem.butDialHeight]
-
 
1396
        add cx, word[elem.textHeight]
1126
        mcall 4, , 0x10FFFFFF, buttonText, buttonTextSize
1397
        add cx, word[elem.textHeight]
1127
 
1398
 
-
 
1399
        shl ecx, 16
-
 
1400
        add cx, word[elem.butDialHeight] ;âûñîòà êíîïêè
-
 
1401
 
-
 
1402
        mov edx, 0x00000005       ;íîìåð êíîïêè
-
 
1403
        mov esi, 0x00AABBCC       ;öâåò êíîïêè
-
 
1404
        mcall 8
-
 
1405
 
-
 
1406
        ;ïðàâûé âåðõíèé óãîë
-
 
1407
        ;mov ebx, (WindowsWidth-Otstup-buttonW)*65536 + buttonW ;êîîðäèíàòà X, øèðèíà êíîïêè
-
 
1408
        mov bx,  word[elem.winWidth] ;êîîðäèíàòà X
-
 
1409
        sub bx, Otstup
-
 
1410
        sub bx, word[elem.butDialWidth]
-
 
1411
 
-
 
1412
        shl ebx, 16
-
 
1413
        add bx, word[elem.butDialWidth] ;øèðèíà êíîïêè
-
 
1414
 
-
 
1415
        ;mov ecx, 85     ;êîîðäèíàòà Y      36+3*9+2*3+ 5 +9+2
-
 
1416
        ;BaseY+4*(word[elem.textHeight]+word[elem.textDelta])+2
-
 
1417
        mov cx, word[elem.textHeight]
-
 
1418
        add cx, word[elem.textDelta]
-
 
1419
        shl cx, 2
-
 
1420
        add cx, BaseY+2
-
 
1421
        shl ecx, 16
1128
        ;ðèñóåì åùÞ 4 êíîïêè äëß äèàëîãîâîãî îêíà âûáîðà ôàéëà
1422
        add cx, word[elem.butDialHeight] ;âûñîòà êíîïêè
-
 
1423
 
-
 
1424
        mov edx, 0x00000006       ;íîìåð êíîïêè
-
 
1425
        mov esi, 0x00AABBCC       ;öâåò êíîïêè
-
 
1426
        mcall 8
-
 
1427
 
-
 
1428
 
1129
        ;íîìåðà 4,5,6 è 7
1429
 
-
 
1430
 
-
 
1431
        ;ïðàâûé íèæíèé óãîë
-
 
1432
        mov bx,  word[elem.winWidth]    ;êîîðäèíàòà X
-
 
1433
        sub bx, Otstup
-
 
1434
        sub bx, word[elem.butDialWidth]
-
 
1435
        shl ebx, 16
-
 
1436
        add bx, word[elem.butDialWidth] ;øèðèíà êíîïêè
-
 
1437
 
-
 
1438
        mov cx, word[elem.textHeight]   ;êîîðäèíàòà Y
-
 
1439
        add cx, word[elem.textDelta]
-
 
1440
        shl cx, 2
-
 
1441
        sub cx, word[elem.textHeight]
-
 
1442
        add cx, BaseY
-
 
1443
        add cx, word[elem.textHeight]
-
 
Line 1444... Line 1130...
1444
        add cx, 6
1130
        buttonW = 30
1445
        add cx, word[elem.butDialHeight]
1131
        buttonH = 21
1446
        add cx, word[elem.textHeight]
-
 
1447
        add cx, word[elem.textHeight]
1132
        ;ëåâûé âåðõíèé óãîë
1448
        shl ecx, 16
1133
        mcall 8, , <85,buttonH>, 4, 0x00AABBCC
1449
        add cx, word[elem.butDialHeight] ;âûñîòà êíîïêè
1134
        ;ëåâûé íèæíèé óãîë
1450
 
1135
        mcall 8, , <120,buttonH>, 5
1451
        mov edx, 0x00000007       ;íîìåð êíîïêè
1136
        ;ïðàâûé âåðõíèé óãîë
1452
        mov esi, 0x00AABBCC       ;öâåò êíîïêè
1137
        mcall 8, , <85,buttonH>, 6
1453
        mcall 8
-
 
1454
 
-
 
1455
        ;ðèñóåì òåêñòû äëÿ ýòèõ 4 êíîïîê
-
 
1456
        mov     ecx, 0xFFFFFF              ;áåëûé öâåò òåêñòà
-
 
1457
        call setNewSizeForText
-
 
1458
        mov     edx, commonButtonText      ;ñòðîêà òåêñòà
-
 
1459
        mov     esi, commonButtonTextSize  ;ðàçìåð òåêñòà â ñèìâîëàõ
-
 
1460
        ;êîîðäèíàòû òåêñòà (x, y)
-
 
1461
        deltaCommonTextX = 7
-
 
1462
        deltaCommonTextY = 2
-
 
1463
        ;mov     ebx, (Otstup+deltaCommonTextX) * 65536 + (85 + deltaCommonTextY)
-
 
1464
        mov ebx, Otstup+deltaCommonTextX
1138
        ;ïðàâûé íèæíèé óãîë
1465
        shl ebx, 16
-
 
1466
        mov bx, word[elem.textHeight]
-
 
1467
        add bx, word[elem.textDelta]
-
 
1468
        shl bx, 2
-
 
1469
        add bx, BaseY+2
-
 
1470
        add bx, deltaCommonTextY
-
 
1471
 
-
 
1472
        mcall 4
-
 
1473
 
-
 
1474
;
-
 
1475
        ;mov     ebx, (Otstup+deltaCommonTextX) * 65536 + (120 + deltaCommonTextY)
-
 
1476
        mov ebx, Otstup+deltaCommonTextX
-
 
1477
        shl ebx, 16
-
 
1478
        mov bx, word[elem.textHeight]   ;êîîðäèíàòà Y
-
 
1479
        add bx, word[elem.textDelta]
-
 
1480
        shl bx, 2
-
 
1481
        sub bx, word[elem.textHeight]
-
 
1482
        add bx, BaseY
1139
        mcall 8, , <120,buttonH>, 7
1483
        add bx, word[elem.textHeight]
-
 
1484
        add bx, 6
-
 
1485
        add bx, word[elem.butDialHeight]
-
 
1486
        add bx, word[elem.textHeight]
-
 
1487
        add bx, word[elem.textHeight]
-
 
1488
        add bx, deltaCommonTextY
-
 
1489
 
-
 
1490
        mcall 4
-
 
1491
 
-
 
1492
 
-
 
1493
        ;mov     ebx, (WindowsWidth-Otstup-buttonW+deltaCommonTextX) * 65536 + (85 + deltaCommonTextY)
-
 
1494
        mov bx,  word[elem.winWidth]    ;êîîðäèíàòà X
-
 
1495
        sub bx, Otstup
-
 
1496
        sub bx, word[elem.butDialWidth]
1140
 
1497
        add bx, deltaCommonTextX
-
 
1498
        shl ebx, 16
-
 
1499
        mov bx, word[elem.textHeight]
-
 
1500
        add bx, word[elem.textDelta]
-
 
1501
        shl bx, 2
-
 
1502
        add bx, BaseY+2
-
 
1503
        add bx, deltaCommonTextY
-
 
1504
 
-
 
1505
        mcall 4
-
 
1506
 
-
 
1507
        ;mov     ebx, (WindowsWidth-Otstup-buttonW+deltaCommonTextX) * 65536 + (120 + deltaCommonTextY)
-
 
1508
        mov bx,  word[elem.winWidth]    ;êîîðäèíàòà X
-
 
1509
        sub bx, Otstup
-
 
1510
        sub bx, word[elem.butDialWidth]
-
 
1511
        add bx, deltaCommonTextX
-
 
1512
        shl ebx, 16
-
 
1513
        mov bx, word[elem.textHeight]   ;êîîðäèíàòà Y
-
 
1514
        add bx, word[elem.textDelta]
-
 
Line 1515... Line 1141...
1515
        shl bx, 2
1141
        ;ðèñóåì òåêñòû äëß ýòèõ 4 êíîïîê
1516
        sub bx, word[elem.textHeight]
1142
        mov     ecx, 0xFFFFFF              ;áåëûé öâåò òåêñòà
1517
        add bx, BaseY
1143
        mov     edx, commonButtonText      ;ñòðîêà òåêñòà
1518
        add bx, word[elem.textHeight]
1144
        mov     esi, commonButtonTextSize  ;ðàçìåð òåêñòà â ñèìâîëàõ
1519
        add bx, 6
1145
        ;êîîðäèíàòû òåêñòà (x, y)
1520
        add bx, word[elem.butDialHeight]
1146
        deltaCommonTextX = 7
1521
        add bx, word[elem.textHeight]
1147
        deltaCommonTextY = 6
1522
        add bx, word[elem.textHeight]
1148
        mcall 4, 
1523
        add bx, deltaCommonTextY
1149
        mcall 4, 
1524
 
1150
        mcall 4, 
1525
        mcall 4
-
 
1526
 
-
 
1527
        ;delete mode button, if it exist
-
 
1528
        mov edx, 0x80000008
-
 
1529
        mcall 8
-
 
1530
        ;draw button Mode
1151
        mcall 4, 
1531
        buttonModeX = 30
-
 
1532
        buttonModeY = 160
-
 
1533
        buttonModeWidth = 221
-
 
1534
        buttonModeHeight = 14
-
 
1535
        buttonModeTextYoffset = 3
-
 
1536
        buttonModeTextXoffset = 5
-
 
1537
        ;mov ebx, buttonModeX*65536 + buttonModeWidth  ;X + Width
-
 
1538
        mov ebx, Otstup
1152
 
1539
        shl ebx, 16
-
 
1540
        add bx, word[elem.butModeWidth]
-
 
1541
 
-
 
1542
        mov cx, word[elem.butModeY] ;buttonModeY;*65536 + buttonModeHeight ;Y + Height
-
 
1543
        shl ecx, 16
-
 
1544
        mov cx, word[elem.butDialHeight]
-
 
1545
 
-
 
1546
        mov edx, 0x00000008    ;button id
-
 
1547
        mov esi, 0x00FFFFFF    ;color button
-
 
1548
        mcall 8
-
 
1549
 
-
 
1550
        ;mov ebx, (buttonModeX+2+buttonModeWidth-20)*65536 + (20-2)  ;X + Width
-
 
1551
        mov ebx, Otstup+2
-
 
1552
        add bx, word[elem.butModeWidth]
-
 
1553
        sub bx, 20
-
 
1554
        shl ebx, 16
1153
        ;delete mode button, if it exist
1555
        add bx, 20-2
1154
        mov edx, 0x80000008
1556
 
-
 
1557
       ; mov ecx, (buttonModeY+1)*65536 + buttonModeHeight-2   ;Y + Height
-
 
1558
        mov cx, word[elem.butModeY]
1155
        mcall 8
1559
        inc ecx
-
 
1560
        shl ecx, 16
-
 
1561
        mov cx, word[elem.butDialHeight]
1156
        ;draw button Mode
1562
        sub cx, 2
1157
        buttonModeX = 30 ;433
1563
 
-
 
1564
        mov edx, 0xAABBCC
-
 
1565
        mcall 13
-
 
1566
        ;draw text for button Mode
-
 
1567
        mov     ebx, (Otstup+buttonModeTextXoffset) * 65536     ;(x, y)
1158
        buttonModeY = 160 ;50
1568
        mov bx, word[elem.butModeY]
-
 
1569
        add bx, buttonModeTextYoffset
-
 
1570
        mov     ecx, 0x000000
-
 
1571
        call setNewSizeForText
-
 
1572
        and ecx, 0x7FFFFFFF
-
 
1573
        call setTextModeMenu
1159
        buttonModeWidth = 300
1574
mov     esi, valueModeMenuSize
-
 
1575
cmp byte[sizeStyle], 'x'
1160
        buttonModeHeight = 20
1576
jne @f
-
 
1577
        mov     esi, 25 ;valueModeMenuSize -3     ;ðåæèì æåñòà ïî êëàâèøå àê
-
 
1578
@@:
-
 
1579
        mcall 4
-
 
1580
 
1161
        buttonModeTextYoffset = 3
1581
        mov     ebx, (Otstup-12)
-
 
1582
        add bx, word[elem.butModeWidth]
1162
        buttonModeTextXoffset = 5
Line 1583... Line 1163...
1583
        shl ebx, 16
1163
        mcall 8, , , 8, 0x00FFFFFF
1584
        mov bx, word[elem.butModeY]
1164
        mcall 13, , , 0xAABBCC
1585
        add bx, buttonModeTextYoffset
1165
        ;draw text for button Mode
1586
 
1166
        mov     ebx, (buttonModeX+buttonModeTextXoffset) * 65536 + (buttonModeY+buttonModeTextYoffset)    ;(x, y)
1587
        mov     ecx, 0x80FFFFFF   ;80
1167
        mov     ecx, 0x10000000
1588
        call setNewSizeForText
1168
        call setTextModeMenu
1589
        and ecx, 0x7FFFFFFF
1169
        mov     esi, valueModeMenuSize
1590
        ;or ecx, 0x80000000
1170
        mcall 4
1591
 
1171
        mov     ebx, (buttonModeX+buttonModeWidth-12) * 65536 + (buttonModeY+buttonModeTextYoffset+3)
1592
        mov     edx, symbolDownArrow
1172
        mov     ecx, 0x80FFFFFF
1593
        mov esi, 1
-
 
1594
        mcall 4
-
 
1595
 
-
 
1596
        ;êíîïêà âûáîðà ãîðÿ÷åé êëàâèøè
-
 
1597
        buttonHotKeyX = 270
-
 
1598
        buttonHotKeyWidth = 90
-
 
1599
        mov edx, 0x80000009    ;óäàëÿåì
-
 
1600
        mcall 8
-
 
1601
    cmp byte[mode], 49    ;ðèñóåì âûáîð êëàâèøè, òîëüêî åñëè mode > 1
-
 
1602
    jbe @f
-
 
1603
        ;ðèñóåì íîâóþ
1173
        mov     edx, symbolDownArrow
1604
        push eax ebx ecx edx esi
-
 
1605
       ; mov ebx, buttonHotKeyX*65536 + buttonHotKeyWidth  ;X + Width
-
 
1606
        mov ebx, Otstup
-
 
1607
        add bx, word[elem.butModeWidth]
-
 
1608
        add bx, word[elem.butAppleHeight]
1174
        mcall 4
1609
        shl ebx, 16
1175
 
1610
        mov bx, word[elem.winWidth] ;buttonHotKeyWidth
1176
        ;êíîïêà âûáîðà ãîðß÷åé êëàâèøè
1611
        sub bx, word[elem.butModeWidth]
1177
        buttonHotKeyX = 350-10
1612
        sub bx, Otstup
1178
        buttonHotKeyWidth = 90
1613
        sub bx, word[elem.butAppleHeight] ;Otstup
1179
        mov edx, 0x80000009    ;óäàëßåì
1614
        shr bx, 1
-
 
1615
        sub bx, Otstup
-
 
1616
       ; mov ecx, buttonModeY*65536 + buttonModeHeight ;Y + Height
-
 
1617
        mov cx, word[elem.butModeY]
-
 
1618
        shl ecx, 16
-
 
1619
        mov cx, word[elem.butDialHeight]
-
 
1620
 
-
 
1621
        mov edx, 0x00000009    ;button id
-
 
1622
        mov esi, 0x00FFFFFF    ;color button
-
 
1623
        mcall 8
-
 
1624
        pop esi edx ecx ebx eax
-
 
1625
        ;òåêñò ïîäñêàçêè äëÿ ãîðÿ÷åé êëàâèøè
-
 
1626
        ;mov     ebx, (buttonHotKeyX+buttonModeTextXoffset) * 65536 + (buttonModeY+buttonModeTextYoffset)    ;(x, y)
1180
        mcall 8
1627
        mov ebx, Otstup
-
 
1628
        add bx, word[elem.butModeWidth]
-
 
1629
        add bx, word[elem.butAppleHeight]
-
 
1630
        add bx, buttonModeTextYoffset
-
 
1631
        shl ebx, 16
1181
    cmp byte[mode], 49    ;ðèñóåì âûáîð êëàâèøè, òîëüêî åñëè mode > 1
1632
        mov bx, word[elem.butModeY]
1182
    jbe @f
1633
        add bx, buttonModeTextYoffset
1183
        ;ðèñóåì íîâóþ
1634
 
1184
        push eax ebx ecx edx esi
1635
;        xor ecx, ecx
1185
        mov ebx, buttonHotKeyX*65536 + buttonHotKeyWidth  ;X + Width
1636
;        mov ch, byte[mysize]
1186
        mov ecx, buttonModeY*65536 + buttonModeHeight ;Y + Height
1637
;        shl ecx, 16
-
 
1638
;        add ecx, 0x80224466
-
 
1639
        mov ecx, 0x224466
-
 
1640
        call setNewSizeForText
-
 
1641
        ;and ecx, 0x7FFFFFFF
-
 
1642
        or ecx, 0x80000000
-
 
1643
 
-
 
1644
        call setTextForHotKey
-
 
1645
        mov     esi, valueModeMenuSize
-
 
1646
        mcall 4
-
 
1647
        ;çàãîëîâîê
-
 
1648
        push eax ebx ecx edx edi esi
-
 
1649
        ;mov     ebx, buttonHotKeyX * 65536 + (buttonModeY-11)
1187
        mov edx, 0x00000009    ;button id
1650
        mov ebx, Otstup ;buttonHotKeyX ;Otstup
-
 
1651
        add bx, word[elem.butModeWidth]
-
 
1652
        add bx, word[elem.butAppleHeight]
-
 
1653
        shl ebx, 16
-
 
1654
        add bx, word[elem.butModeY]
1188
        mov esi, 0x00FFFFFF    ;color button
1655
        sub bx, 2
1189
        mcall 8
1656
        sub bx, word[elem.textHeight]
1190
        pop esi edx ecx ebx eax
1657
 
1191
        ;òåêñò ïîäñêàçêè äëß ãîðß÷åé êëàâèøè
1658
;        xor ecx, ecx
1192
        mov     ebx, (buttonHotKeyX+buttonModeTextXoffset) * 65536 + (buttonModeY+buttonModeTextYoffset)    ;(x, y)
Line 1659... Line 1193...
1659
;        mov ch, byte[mysize]
1193
        mov     ecx, 0x90224466
1660
;        shl ecx, 16
1194
        call setTextForHotKey
1661
;        add ecx, 0x80224466
1195
        mov     esi, valueModeMenuSize
1662
        mov ecx, 0x224466
1196
        mcall 4
1663
        call setNewSizeForText
1197
        ;çàãîëîâîê
1664
        ;and ecx, 0x7FFFFFFF
-
 
1665
        or ecx, 0x80000000
-
 
1666
 
-
 
1667
        mov     edx, hkCaption
-
 
1668
        mov     esi, 3
-
 
1669
        mcall 4
1198
        push eax ebx ecx edx edi esi
1670
        pop esi edi edx ecx ebx eax
-
 
1671
    @@:
-
 
1672
 
-
 
1673
    ;îòîáðàæàåì íàñòðîéêó ðàäèóñà äåéñòâèÿ æåñòà, òîëüêî åñëè âûáðàí ðåæèì 3
-
 
1674
    cmp byte[mode], 51
-
 
1675
    jne @f
-
 
1676
        ;çàãîëîâîê
-
 
1677
        push eax ebx ecx edx edi esi
-
 
1678
        xor ebx, ebx
-
 
1679
        mov bx, word[elem.winWidth]
-
 
1680
        sub bx, Otstup
-
 
1681
        sub ebx, dword[editRadius.width]
-
 
1682
        shl ebx, 16
-
 
1683
        add bx, word[elem.butModeY]
1199
        mov     ebx, buttonHotKeyX * 65536 + (buttonModeY-11)
1684
        sub bx, 2
1200
        mov ecx, 0x80224466
1685
        sub bx, word[elem.textHeight]
1201
        mov     edx, hkCaption
1686
 
1202
        mov     esi, 3
1687
;        mov ecx, 0
1203
        mcall 4
1688
;        mov ch, byte[mysize]
-
 
1689
;        shl ecx, 16
-
 
1690
;        add ecx, 0x80224466
-
 
1691
 
-
 
1692
        mov ecx, 0x224466
-
 
1693
        call setNewSizeForText
-
 
1694
        ;and ecx, 0x7FFFFFFF
-
 
1695
        or ecx, 0x80000000
-
 
1696
 
-
 
1697
        ;mov ecx, 0x80224466
-
 
1698
        mov     edx, radiusCaption
1204
        pop esi edi edx ecx ebx eax
1699
        mov     esi, 3
1205
    @@:
Line 1700... Line 1206...
1700
        mcall 4
1206
 
Line 1701... Line 1207...
1701
        pop esi edi edx ecx ebx eax
1207
    ;îòîáðàæàåì íàñòðîéêó ðàäèóñà äåéñòâèß æåñòà, òîëüêî åñëè âûáðàí ðåæèì 3
1702
 
1208
    cmp byte[mode], 51
Line -... Line 1209...
-
 
1209
    jne @f
-
 
1210
        ;çàãîëîâîê
-
 
1211
        push eax ebx ecx edx edi esi
1703
 
1212
        mov     ebx, (buttonHotKeyX + buttonHotKeyWidth + 20) * 65536 + (buttonModeY-11)
1704
        xor eax, eax
1213
        mov ecx, 0x80224466
1705
        mov ax, word[elem.winWidth]
1214
        mov     edx, radiusCaption
Line 1706... Line 1215...
1706
        sub ax, Otstup
1215
        mov     esi, 3
1707
        sub eax, dword[editRadius.width]
1216
        mcall 4
1708
        mov dword[editRadius.left], eax
1217
        pop esi edi edx ecx ebx eax
Line 1709... Line 1218...
1709
        mov ax, word[elem.butModeY]
1218
        invoke  edit_box_draw, editRadius
1710
        mov dword[editRadius.top], eax
1219
    @@:
1711
 
-
 
1712
        invoke  edit_box_draw, editRadius
1220
 
1713
    @@:
-
 
1714
 
1221
        call draw_super_text
1715
        call draw_super_text
1222
 
1716
 
1223
        LineLength = 62
Line 1717... Line -...
1717
        LineLength = 62
-
 
1718
        mov     ebx, 40 * 65536 + BaseY    ; draw info text with function 4 (x, y)
1224
        mov     ebx, Otstup * 65536 + 32    ; draw info text with function 4 (x, y)
1719
 
-
 
1720
        mov ecx, 0x224466
-
 
1721
        call setNewSizeForText
-
 
1722
        and ecx, 0x7FFFFFFF
-
 
Line 1723... Line -...
1723
 
-
 
1724
        mov     edx, text
-
 
1725
        mov     esi, LineLength
-
 
1726
        mov     eax, 4
-
 
1727
 
-
 
1728
  .newline:                             ; text from the DATA AREA
-
 
1729
        mcall
-
 
1730
        add bx, word[elem.textHeight] ;9*n+3 ;12
-
 
1731
        add bx, word[elem.textDelta]
-
 
1732
 
-
 
1733
        add     edx, LineLength
-
 
1734
        cmp     byte[edx], 0
-
 
1735
        jne     .newline
-
 
1736
 
-
 
1737
        mov     eax, 12                 ; function 12:tell os about windowdraw
-
 
1738
        mov     ebx, 2                  ; 2, end of draw
1225
 
Line 1739... Line 1226...
1739
        mcall
1226
        ;xor ecx, ecx
Line 1740... Line 1227...
1740
 
1227
        ;mov cl, 1 ;byte[mysize]
Line 1822... Line 1309...
1822
      ;jmp setTextForHotKey.symb
1309
      ;jmp setTextForHotKey.symb
1823
      mov edx, hkSymbol
1310
      mov edx, hkSymbol
1824
      mov dword[hkSize], 1
1311
      mov dword[hkSize], 1
1825
      jmp setTextForHotKey.end
1312
      jmp setTextForHotKey.end
1826
@@:
1313
@@:
1827
   mov word[hkSymbol], 0     ;åñëè æå ïîïàëî ÷òî-òî íåèçâåñòíîå, òî ñîòð¸ì åãî
1314
   mov word[hkSymbol], 0     ;åñëè æå ïîïàëî ÷òî-òî íåèçâåñòíîå, òî ñîòðÞì åãî
1828
   mov edx, hkHint
1315
   mov edx, hkHint
1829
   mov dword[hkSize], 5 ;shift or space -  çíà÷åíèå ïî óìîë÷àíèþ
1316
   mov dword[hkSize], 5 ;shift or space -  çíà÷åíèå ïî óìîë÷àíèþ
1830
.end:
1317
.end:
1831
   pop eax
1318
   pop eax
1832
   ret
1319
   ret
Line 1913... Line 1400...
1913
        check_box_draw,         'check_box_draw2',\
1400
        check_box_draw,         'check_box_draw2',\
1914
        check_box_mouse,        'check_box_mouse2',\
1401
        check_box_mouse,        'check_box_mouse2',\
1915
        option_box_draw,        'option_box_draw',\
1402
        option_box_draw,        'option_box_draw',\
1916
        option_box_mouse,       'option_box_mouse'
1403
        option_box_mouse,       'option_box_mouse'
Line 1917... Line 1404...
1917
 
1404
 
1918
commonButtonText db '...', 0  ;òåêñò äëÿ êíîïîê âûçîâà OpenDial
1405
commonButtonText db '...', 0  ;òåêñò äëß êíîïîê âûçîâà OpenDial
Line 1919... Line 1406...
1919
commonButtonTextSize = 3
1406
commonButtonTextSize = 3
Line 1920... Line 1407...
1920
 
1407
 
1921
if lang eq ru  ;åñëè ÿçûê ñáîðêè ðóññêèé
1408
if lang eq ru  ;åñëè ßçûê ñáîðêè ðóññêèé
1922
 
1409
 
1923
text    db  "Š®­ä¨£ãà â®à Hot Angles ®â¢¥ç ¥â §  ­ áâனªã  ªâ¨¢­ëå 㣫®¢. "
1410
text    db  "Š®­ä¨£ãà â®à Hot Angles ®â¢¥ç ¥â §  ­ áâனªã  ªâ¨¢­ëå 㣫®¢. "
1924
        db  " áâன⥠¯ à ¬¥âàë ¯®¤ á¥¡ï ¨«¨ ®âª«îç¨â¥ íâã ®¯æ¨î.         ", 0
1411
        db  " áâன⥠¯ à ¬¥âàë ¯®¤ á¥¡ï ¨«¨ ®âª«îç¨â¥ íâã ®¯æ¨î.         "
1925
;        db  "                                                              ", 0
1412
        db  "                                                              ", 0
1926
 hed:
1413
 hed:
1927
title   db  "Š®­ä¨£ãà â®à ã⨫¨âë Hot Angles", 0
-
 
Line 1928... Line 1414...
1928
buttonText db "à¨¬¥­¨âì", 0
1414
title   db  "Š®­ä¨£ãà â®à ã⨫¨âë Hot Angles", 0
Line 1929... Line 1415...
1929
buttonTextSize = 9
1415
buttonText db "à¨¬¥­¨âì", 0
1930
buttonTextXoffset = 12
1416
buttonTextSize = 9
Line 1951... Line 1437...
1951
        err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
1437
        err_message_import0 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'proc_lib.obj',39,0
1952
        err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,0
1438
        err_message_found_lib1 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,0
1953
        err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
1439
        err_message_import1 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
Line 1954... Line 1440...
1954
 
1440
 
-
 
1441
hkCaption: db 'Š« ¢¨è :',0
1955
hkCaption: db 'Š« ¢¨è :',0
1442
;hkHint: db ' ¦¬¨â¥ «î¡ãî ª« ¢¨èã',0
Line 1956... Line 1443...
1956
radiusCaption: db ' ¤¨ãá:',0
1443
radiusCaption: db ' ¤¨ãá:',0
Line 1957... Line 1444...
1957
 
1444
 
1958
else  ;èíà÷å àíãëèéñêèé òåêñò
1445
else  ;èíà÷å àíãëèéñêèé òåêñò
1959
 
1446
 
1960
text    db  "This is a Hot Angles Configurator.                            "
1447
text    db  "This is a Hot Angles Configurator.                            "
1961
        db  "Set the parameters bellow for yourself or disable this option.", 0
1448
        db  "Set the parameters bellow for yourself or disable this option."
1962
;        db  "                                                              ", 0
1449
        db  "                                                              ", 0
1963
 hed:
1450
 hed:
1964
title   db  "Hot Angles Configurator", 0
-
 
Line 1965... Line 1451...
1965
buttonText db "Apply", 0
1451
title   db  "Hot Angles Configurator", 0
Line 1966... Line 1452...
1966
buttonTextSize = 5
1452
buttonText db "  Apply  ", 0
1967
buttonTextXoffset = 0
1453
buttonTextSize = 5
1968
 
1454
 
1969
ch_text db 'Activate "Hot Angles"',0       ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñà
1455
ch_text db 'Activate "Hot Angles"',0       ;ñîïðîâîæäàþùèé òåêñò äëß ÷åê áîêñà
Line 1988... Line 1474...
1988
        err_message_import0 db 'Error importing library ',39,'proc_lib.obj',39,0
1474
        err_message_import0 db 'Error importing library ',39,'proc_lib.obj',39,0
1989
        err_message_found_lib1 db 'Could not find library ',39,'kmenu.obj',39,0
1475
        err_message_found_lib1 db 'Could not find library ',39,'kmenu.obj',39,0
1990
        err_message_import1 db 'Error importing library ',39,'kmenu',39,0
1476
        err_message_import1 db 'Error importing library ',39,'kmenu',39,0
Line 1991... Line 1477...
1991
 
1477
 
-
 
1478
hkCaption: db 'Key:',0
1992
hkCaption: db 'Key:',0
1479
;hkHint: db 'press any key',0
Line 1993... Line 1480...
1993
radiusCaption: db 'Radius:',0
1480
radiusCaption: db 'Radius:',0
Line 1994... Line 1481...
1994
 
1481
 
Line 2002... Line 1489...
2002
hkSize: rd 1 ;ðàçìåð ñòðîêè ñ èìåíåì êëàâèøè
1489
hkSize: rd 1 ;ðàçìåð ñòðîêè ñ èìåíåì êëàâèøè
Line 2003... Line 1490...
2003
 
1490
 
2004
draw_super_text:
1491
draw_super_text:
Line 2005... Line 1492...
2005
   push eax ebx ecx edx edi esi
1492
   push eax ebx ecx edx edi esi
2006
 
1493
 
2007
;   mov ecx, 0
1494
   mov ecx, 0
2008
;   mov ch, byte[mysize]
1495
   mov ch, byte[mysize]
2009
;   shl ecx, 16
-
 
2010
;   add ecx, 0x224466
-
 
2011
   mov ecx, 0x224466
-
 
2012
   call setNewSizeForText
-
 
2013
   ;and ecx, 0x7FFFFFFF
-
 
2014
   or ecx, 0x80000000
-
 
2015
 
-
 
2016
   ;mov     ebx, Otstup * 65536 + 74    ; draw info text with function 4 (x, y)
-
 
2017
   mov bx, Otstup
-
 
2018
   shl ebx, 16
-
 
2019
   mov bx, word[elem.textHeight]
-
 
2020
   add bx, word[elem.textDelta]
-
 
2021
   shl bx, 2
-
 
2022
   sub bx, word[elem.textHeight]
-
 
2023
   add bx, BaseY
-
 
2024
 
-
 
2025
   ;mov     ecx, 0x224466
-
 
2026
   mov eax, superText.lu
-
 
2027
   mov     edx, eax
-
 
2028
   mov     esi, superTextSize
-
 
2029
   mcall 4
-
 
2030
 
-
 
2031
   ;mov     ebx, Otstup * 65536 + 109      ;9+2+14+(9+1)
-
 
2032
   add bx, word[elem.textHeight]
-
 
2033
   add bx, 4;3
-
 
2034
   add bx, word[elem.butDialHeight]
-
 
2035
   add bx, word[elem.textHeight]
-
 
2036
 
-
 
2037
   mov     edx, superText.ld
-
 
2038
   mov     esi, superTextSize
-
 
2039
   mcall 4
-
 
2040
 
-
 
2041
   ;mov     ebx, 240 * 65536 + 74
-
 
2042
   mov bx, word[elem.winWidth]
-
 
2043
   sub bx, word[elem.butDialWidth]
-
 
2044
   sub bx, word[elem.editCommandWidth]
-
 
2045
   sub bx, Otstup
-
 
2046
   shl ebx, 16
-
 
2047
   mov bx, word[elem.textHeight]
-
 
2048
   add bx, word[elem.textDelta]
-
 
2049
   shl bx, 2
-
 
2050
   sub bx, word[elem.textHeight]
-
 
2051
   add bx, BaseY
-
 
2052
 
-
 
2053
   mov     edx, superText.ru
-
 
2054
   mov     esi, superTextSize
-
 
2055
   mcall 4
-
 
2056
 
-
 
2057
   ;mov     ebx, 240 * 65536 + 109
-
 
2058
   add bx, word[elem.textHeight]
-
 
2059
   add bx, 4;3;2
-
 
Line 2060... Line 1496...
2060
   add bx, word[elem.butDialHeight]
1496
   shl ecx, 16
2061
   add bx, word[elem.textHeight]
1497
   add ecx, 0x224466
2062
 
-
 
2063
   mov     edx, superText.rd
-
 
2064
   mov     esi, superTextSize
1498
 
2065
   mcall 4
-
 
2066
 
-
 
2067
   ;mov     ebx, Otstup * 65536 + (buttonModeY-11)
1499
   mcall 4,  ,,superText.lu,superTextSize
2068
   mov ebx, Otstup
-
 
2069
   shl ebx, 16
-
 
Line -... Line 1500...
-
 
1500
   mcall 4, ,,superText.ld,superTextSize
2070
   add bx, word[elem.butModeY]
1501
   mcall 4, <290,74>    ,,superText.ru,superTextSize
2071
   sub bx, 2
1502
   mcall 4, <290,109>   ,,superText.rd,superTextSize
2072
   sub bx, word[elem.textHeight]
1503
 
2073
 
1504
   mov     ebx, Otstup * 65536 + (buttonModeY-11)
Line -... Line 1505...
-
 
1505
   or ecx, 0x80000000
-
 
1506
   mov     edx, ModeMenu
-
 
1507
   mov     esi, 3
-
 
1508
   mcall 4
-
 
1509
 
-
 
1510
;   mov     ebx, buttonHotKeyX * 65536 + (buttonModeY-11)
2074
   or ecx, 0x80000000
1511
;   or ecx, 0x80000000
2075
   mov     edx, ModeMenu
1512
;   mov     edx, hkCaption
Line 2076... Line 1513...
2076
   mov     esi, 3
1513
;   mov     esi, 3
2077
   mcall 4
1514
;   mcall 4
Line 2173... Line 1610...
2173
   inc esi
1610
   inc esi
2174
   cmp eax, 0
1611
   cmp eax, 0
2175
   je .end
1612
   je .end
2176
   jmp .next
1613
   jmp .next
2177
.end:
1614
.end:
2178
   mov byte[esi], 0   ;êëàä¸ì çàâåðøàþùèé íîëü
1615
   mov byte[esi], 0   ;êëàäÞì çàâåðøàþùèé íîëü
2179
   pop esi edx ecx eax
1616
   pop esi edx ecx eax
2180
   call reverseString ;äåëàåì ðåâåðñ ñòðîêè
1617
   call reverseString ;äåëàåì ðåâåðñ ñòðîêè
2181
   ret
1618
   ret
Line 2182... Line 1619...
2182
 
1619
 
2183
;âõîä: esi - óêàçàòåëü íà ñòðîêó
1620
;âõîä: esi - óêàçàòåëü íà ñòðîêó
2184
reverseString:
1621
reverseString:
Line 2185... Line 1622...
2185
   push eax esi edi
1622
   push eax esi edi
2186
 
1623
 
2187
   mov al, byte[esi] ;åñëè ñòðîêà ïóñòàÿ òî âûõîäèì ðåâåðñ äåëàòü íå íàäî
1624
   mov al, byte[esi] ;åñëè ñòðîêà ïóñòàß òî âûõîäèì ðåâåðñ äåëàòü íå íàäî
Line 2188... Line 1625...
2188
   cmp al, 0
1625
   cmp al, 0
2189
   je reverseString.end
1626
   je reverseString.end
2190
 
1627
 
2191
   mov edi, esi  ;èíà÷å íàéä¸ì ïîçèöèþ ïîñëåäíåãî ñèìâîëà ñòðîêè è ïîëîæèì å¸ â edi
1628
   mov edi, esi  ;èíà÷å íàéäÞì ïîçèöèþ ïîñëåäíåãî ñèìâîëà ñòðîêè è ïîëîæèì åÞ â edi
2192
.go_last_symbol:
1629
.go_last_symbol:
Line 2200... Line 1637...
2200
   push ebx
1637
   push ebx
2201
.rev:
1638
.rev:
2202
   cmp esi, edi
1639
   cmp esi, edi
2203
   jae @f
1640
   jae @f
Line 2204... Line 1641...
2204
 
1641
 
2205
   ;ìåíÿåì ìåñòàìè ñèìâîëû â öèêëå
1642
   ;ìåíßåì ìåñòàìè ñèìâîëû â öèêëå
2206
   mov al, byte[edi]
1643
   mov al, byte[edi]
2207
   mov bl, byte[esi]
1644
   mov bl, byte[esi]
2208
   mov byte[edi], bl
1645
   mov byte[edi], bl
Line 2237... Line 1674...
2237
                ;...
1674
                ;...
2238
        .end_open:
1675
        .end_open:
2239
        popad
1676
        popad
2240
        ret
1677
        ret
Line 2241... Line 1678...
2241
 
1678
 
2242
;äàííûå äëÿ äèàëîãà îòêðûòèÿ ôàéëîâ
1679
;äàííûå äëß äèàëîãà îòêðûòèß ôàéëîâ
2243
align 4
1680
align 4
2244
OpenDialog_data:
1681
OpenDialog_data:
2245
.type                   dd 0 ;0 - îòêðûòü, 1 - ñîõðàíèòü, 2 - âûáðàòü äèðåêòîðèþ
1682
.type                   dd 0 ;0 - îòêðûòü, 1 - ñîõðàíèòü, 2 - âûáðàòü äèðåêòîðèþ
2246
.procinfo               dd procinfo
1683
.procinfo               dd procinfo
2247
.com_area_name          dd communication_area_name ;+8
1684
.com_area_name          dd communication_area_name ;+8
2248
.com_area               dd 0           ;+12
1685
.com_area               dd 0           ;+12
2249
.opendir_path           dd plugin_path ;+16
1686
.opendir_path           dd plugin_path ;+16
2250
.dir_default_path       dd default_dir ;+20
1687
.dir_default_path       dd default_dir ;+20
2251
.start_path             dd file_name   ;+24 ïóòü ê äèàëîãó îòêðûòèÿ ôàéëîâ
1688
.start_path             dd file_name   ;+24 ïóòü ê äèàëîãó îòêðûòèß ôàéëîâ
2252
.draw_window            dd draw_window ;+28
1689
.draw_window            dd draw_window ;+28
2253
.status                 dd 0           ;+32
1690
.status                 dd 0           ;+32
2254
.openfile_path          dd openfile_path ;+36 ïóòü ê îòêðûâàåìîìó ôàéëó
1691
.openfile_path          dd openfile_path ;+36 ïóòü ê îòêðûâàåìîìó ôàéëó
2255
.filename_area          dd filename_area ;+40
1692
.filename_area          dd filename_area ;+40
Line 2259... Line 1696...
2259
.x_start                dw 10  ;+50 ; Window X position
1696
.x_start                dw 10  ;+50 ; Window X position
2260
.y:
1697
.y:
2261
.y_size                 dw 320 ;+52 ; Window y size
1698
.y_size                 dw 320 ;+52 ; Window y size
2262
.y_start                dw 10  ;+54 ; Window Y position
1699
.y_start                dw 10  ;+54 ; Window Y position
Line 2263... Line 1700...
2263
 
1700
 
2264
default_dir db '/rd/1',0 ;äèðåêòîðèÿ ïî óìîë÷àíèþ
1701
default_dir db '/rd/1',0 ;äèðåêòîðèß ïî óìîë÷àíèþ
2265
communication_area_name: db 'FFFFFFFF_open_dialog',0
1702
communication_area_name: db 'FFFFFFFF_open_dialog',0
2266
open_dialog_name:  db 'opendial',0
1703
open_dialog_name:  db 'opendial',0
Line 2267... Line 1704...
2267
communication_area_default_path: db '/rd/1/File managers/',0
1704
communication_area_default_path: db '/rd/1/File managers/',0
Line 2303... Line 1740...
2303
 
1740
 
2304
edMaxSize = 510 ;òåïåðü ñ íîâûì êîìïîíåíòîì ìîæíî è 511 óêàçàòü
1741
edMaxSize = 510 ;òåïåðü ñ íîâûì êîìïîíåíòîì ìîæíî è 511 óêàçàòü
Line 2305... Line 1742...
2305
edMax = 0 ;max, size, pos
1742
edMax = 0 ;max, size, pos
2306
 
1743
 
2307
align 4
1744
align 4
2308
editLU   edit_box 180-buttonW,Otstup+buttonW,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.1, mouse_dd, 0, edMax, edMax  ;ed_focus
1745
editLU   edit_box 230-buttonW,Otstup+buttonW,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, edMaxSize, dataBuffer.1, mouse_dd, 0, edMax, edMax  ;ed_focus
2309
editLD   edit_box 180-buttonW,Otstup+buttonW,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.2, mouse_dd, 0, edMax, edMax
1746
editLD   edit_box 230-buttonW,Otstup+buttonW,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, edMaxSize, dataBuffer.2, mouse_dd, 0, edMax, edMax
2310
editRU   edit_box 180-buttonW,240,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.3, mouse_dd, 0, edMax, edMax
1747
editRU   edit_box 230-buttonW,290,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, edMaxSize, dataBuffer.3, mouse_dd, 0, edMax, edMax
Line 2311... Line 1748...
2311
editRD   edit_box 180-buttonW,240,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.4, mouse_dd, 0, edMax, edMax
1748
editRD   edit_box 230-buttonW,290,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, edMaxSize, dataBuffer.4, mouse_dd, 0, edMax, edMax
2312
editRadius edit_box 40,(buttonHotKeyX + buttonHotKeyWidth + 20),buttonModeY, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, 4, radiusBuffer.data, mouse_dd, ed_figure_only, edMax, edMax
1749
editRadius edit_box 40,(buttonHotKeyX + buttonHotKeyWidth + 20),buttonModeY, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0x10000000, 4, radiusBuffer.data, mouse_dd, ed_figure_only, edMax, edMax
2313
 
1750
 
2314
align 4
1751
align 4
Line 2338... Line 1775...
2338
sc  system_colors
1775
sc  system_colors
2339
mouse_dd  rd 1
1776
mouse_dd  rd 1
Line 2340... Line 1777...
2340
 
1777
 
2341
sizeStyle: rb 1  ;ðàçìåð òåêñòà è îñòàëüíûõ ýëåìåíòîâ îêíà
1778
sizeStyle: rb 1  ;ðàçìåð òåêñòà è îñòàëüíûõ ýëåìåíòîâ îêíà
2342
mysize: rb 1     ;rd 1
1779
mysize: rb 1     ;rd 1
2343
radiusBuffer:    ;áóôåð äëÿ ïîëÿ ðàäèóñà æåñòà
1780
radiusBuffer:    ;áóôåð äëß ïîëß ðàäèóñà æåñòà
2344
 .data: rb 6
1781
 .data: rb 6
2345
 .size: rd 1
1782
 .size: rd 1
Line 2346... Line 1783...
2346
radiusBufferEnd:
1783
radiusBufferEnd:
Line 2357... Line 1794...
2357
pi rb 1024
1794
pi rb 1024
Line 2358... Line 1795...
2358
 
1795
 
2359
keyscan: rb 1
1796
keyscan: rb 1
2360
keystr:
1797
keystr:
2361
  .data: rb 4 ;ñòðîêà ñî çíà÷åíèåì ñêàíêîäà àêòèâàöèîííîé êëàâèøè
1798
  .data: rb 4 ;ñòðîêà ñî çíà÷åíèåì ñêàíêîäà àêòèâàöèîííîé êëàâèøè
Line 2362... Line 1799...
2362
  .size: rd 1 ;ðàçìåð ñîäåðæèìîãî ñòðîêè áåç ïîñëåäíåãî íóëÿ
1799
  .size: rd 1 ;ðàçìåð ñîäåðæèìîãî ñòðîêè áåç ïîñëåäíåãî íóëß
2363
 
1800
 
2364
dataBuffer:
1801
dataBuffer:
2365
.1: rb 512
1802
.1: rb 512
Line 2369... Line 1806...
2369
.size1: rd 1
1806
.size1: rd 1
2370
.size2: rd 1
1807
.size2: rd 1
2371
.size3: rd 1
1808
.size3: rd 1
2372
.size4: rd 1
1809
.size4: rd 1
2373
;255+255+2 = 512
1810
;255+255+2 = 512
2374
;äâà çàïàñíûõ áàéòà íåîáõîäèìû äëÿ òîãî ÷òî áû íå ïåïåðåïèñàòü ñëåäóþùèåé áàéòû, â êîíöå áóôåðà 0
1811
;äâà çàïàñíûõ áàéòà íåîáõîäèìû äëß òîãî ÷òî áû íå ïåïåðåïèñàòü ñëåäóþùèåé áàéòû, â êîíöå áóôåðà 0
2375
dataBufferEnd:
1812
dataBufferEnd:
Line 2376... Line 1813...
2376
 
1813
 
2377
 
1814
 
2378
I_END:
1815
I_END:
2379
        rb 256 ;1024 ;4096
1816
        rb 4096
Line 2380... Line 1817...
2380
align 4 ;16
1817
align 16