Rev 7397 | Rev 7408 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7397 | Rev 7402 | ||
---|---|---|---|
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
3 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
3 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
4 | ; Compile with FASM |
4 | ; Compile with FASM |
5 | ; Version 0.2: Sep 19, 2018 |
5 | ; Version 0.3: Sep 22, 2018 |
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, |
10 | ; are permitted provided that the following conditions are met: |
10 | ; are permitted provided that the following conditions are met: |
11 | ; * Redistributions of source code must retain the above copyright notice, this |
11 | ; * Redistributions of source code must retain the above copyright notice, this |
12 | ; list of conditions and the following disclaimer. |
12 | ; list of conditions and the following disclaimer. |
13 | ; * Redistributions in binary form must reproduce the above copyright notice, |
13 | ; * Redistributions in binary form must reproduce the above copyright notice, |
14 | ; this list of conditions and the following disclaimer in the documentation and/or |
14 | ; this list of conditions and the following disclaimer in the documentation and/or |
15 | ; other materials provided with the distribution. |
15 | ; other materials provided with the distribution. |
16 | ; * Neither the name of the |
16 | ; * Neither the name of the |
17 | ; be used to endorse or promote products derived from this software without |
17 | ; be used to endorse or promote products derived from this software without |
18 | ; specific prior written permission. |
18 | ; specific prior written permission. |
19 | 19 | ||
20 | ; THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, |
20 | ; THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, |
21 | ; INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
21 | ; INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |
22 | ; PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
22 | ; PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
23 | ; HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
23 | ; HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
24 | ; OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
24 | ; OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
25 | ; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
25 | ; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
26 | ; -------------------------------------------------------------------------------------- |
26 | ; -------------------------------------------------------------------------------------- |
27 | 27 | ||
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 |
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 |
38 | dd MEM |
38 | dd MEM |
39 | dd STACKTOP |
39 | dd STACKTOP |
40 | dd 0, 0 |
40 | dd 0, 0 |
41 | 41 | ||
42 | ; Íà÷àëî îáëàñòè êîäà |
42 | ; Íà÷àëî îáëàñòè êîäà |
43 | include 'lang.inc' ;ïîääåðæêà ÿçûêîâ ïðè êîìïèëÿöèè |
43 | include 'lang.inc' ;ïîääåðæêà ÿçûêîâ ïðè êîìïèëÿöèè |
44 | include '../../macros.inc' |
44 | include '../../macros.inc' |
- | 45 | include '../../proc32.inc' |
|
- | 46 | include '../../dll.inc' |
|
- | 47 | include '../../develop/libraries/box_lib/trunk/box_lib.mac' |
|
45 | include 'editbox.inc' |
48 | ;;include 'editbox.inc' |
46 | use_edit_box |
49 | ;;use_edit_box |
47 | include 'check.inc' ;âêëþ÷èòü ôàéë check.inc |
50 | ;;include 'check.inc' ;âêëþ÷èòü ôàéë check.inc |
48 | version_ch1 ;íåîáõîäèìûé ìàêðîñ äëÿ âêëþ÷åíèÿ new âåðñèè check_box1 |
51 | ;;version_ch1 ;íåîáõîäèìûé ìàêðîñ äëÿ âêëþ÷åíèÿ new âåðñèè check_box1 |
49 | use_check_box ;èñïîëüçóÿ ìàêðîñû, âíåñòè ïðîöåäóðû äëÿ ðèñîâàíèÿ ÷åê áîêñà |
52 | ;;use_check_box ;èñïîëüçóÿ ìàêðîñû, âíåñòè ïðîöåäóðû äëÿ ðèñîâàíèÿ ÷åê áîêñà |
50 | 53 | ||
51 | Otstup = 30 |
54 | Otstup = 30 |
52 | 55 | ||
53 | START: |
56 | START: |
54 | call copyKill ;ïðîñòåéøàÿ çàùèòà îò çàïóñêà âòîðîé êîïèè ïðèëîæåíèÿ |
57 | call copyKill ;ïðîñòåéøàÿ çàùèòà îò çàïóñêà âòîðîé êîïèè ïðèëîæåíèÿ |
55 | mcall 68, 11 ;èíèöèàëèçàöèÿ êó÷è |
58 | mcall 68, 11 ;èíèöèàëèçàöèÿ êó÷è |
56 | 59 | ||
57 | mov eax,48 ;ïîëó÷èòü ñèñòåìíûå öâåòà |
60 | mov eax,48 ;ïîëó÷èòü ñèñòåìíûå öâåòà |
58 | mov ebx,3 |
61 | mov ebx,3 |
59 | mov ecx, sc |
62 | mov ecx, sc |
60 | mov edx, sizeof.system_colors |
63 | mov edx, sizeof.system_colors |
61 | mcall |
64 | mcall |
- | 65 | ||
- | 66 | ||
- | 67 | stdcall dll.Load, @IMPORT |
|
- | 68 | or eax, eax |
|
- | 69 | jnz exit |
|
- | 70 | ||
- | 71 | invoke init_checkbox, ch1 |
|
62 | 72 | ||
63 | mov eax,40 ;óñòàíîâèòü ìàñêó äëÿ îæèäàåìûõ ñîáûòèé |
73 | mov eax,40 ;óñòàíîâèòü ìàñêó äëÿ îæèäàåìûõ ñîáûòèé |
64 | mov ebx,0x27 ;ñèñòåìà áóäåò ðåàãèðîâàòü òîëüêî íà ñîîáùåíèå î ïåðåðèñîâêå, íàæàòà êíîïêà, îïðåäåë¸ííàÿ ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñÿ ïðè ïðî÷òåíèè) |
74 | mov ebx,0x27 ;ñèñòåìà áóäåò ðåàãèðîâàòü òîëüêî íà ñîîáùåíèå î ïåðåðèñîâêå, íàæàòà êíîïêà, îïðåäåë¸ííàÿ ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñÿ ïðè ïðî÷òåíèè) |
65 | mcall |
75 | mcall |
66 | 76 | ||
67 | call loadConfig ;çàãðóæàåì êîíôèãóðàöèþ èç ôàéëà, åñëè íåò - òî âûñòàâëÿåì ïàðàìåòðû ïî óìîë÷àíèþ |
77 | call loadConfig ;çàãðóæàåì êîíôèãóðàöèþ èç ôàéëà, åñëè íåò - òî âûñòàâëÿåì ïàðàìåòðû ïî óìîë÷àíèþ |
68 | call draw_window ;îòðèñîâàòü îêíî ïðèëîæåíèÿ |
78 | call draw_window ;îòðèñîâàòü îêíî ïðèëîæåíèÿ |
69 | 79 | ||
70 | ; Îáðàáîòêà öèêëà ñîáûòèé |
80 | ; Îáðàáîòêà öèêëà ñîáûòèé |
71 | event_wait: |
81 | event_wait: |
72 | mov eax, 10 ; function 10 : wait until event |
82 | mov eax, 10 ; function 10 : wait until event |
73 | mcall ; event type is returned in eax |
83 | mcall ; event type is returned in eax |
74 | 84 | ||
75 | cmp eax, 1 ; Event redraw request ? |
85 | cmp eax, 1 ; Event redraw request ? |
76 | je red ; Expl.: there has been activity on screen and |
86 | je red ; Expl.: there has been activity on screen and |
77 | ; parts of the applications has to be redrawn. |
87 | ; parts of the applications has to be redrawn. |
78 | 88 | ||
79 | cmp eax, 2 ; Event key in buffer ? |
89 | cmp eax, 2 ; Event key in buffer ? |
80 | je key ; Expl.: User has pressed a key while the |
90 | je key ; Expl.: User has pressed a key while the |
81 | ; app is at the top of the window stack. |
91 | ; app is at the top of the window stack. |
82 | 92 | ||
83 | cmp eax, 3 ; Event button in buffer ? |
93 | cmp eax, 3 ; Event button in buffer ? |
84 | je button ; Expl.: User has pressed one of the |
94 | je button ; Expl.: User has pressed one of the |
85 | ; applications buttons. |
95 | ; applications buttons. |
86 | 96 | ||
87 | mouse_edit_boxes editboxes,editboxes_end |
97 | ;mouse_edit_boxes editboxes,editboxes_end |
- | 98 | ;mouse_check_boxes check_boxes,check_boxes_end ;ïðîâåðêà ÷åê áîêñà |
|
- | 99 | invoke edit_box_mouse, editLU |
|
- | 100 | invoke edit_box_mouse, editLD |
|
- | 101 | invoke edit_box_mouse, editRU |
|
- | 102 | invoke edit_box_mouse, editRD |
|
- | 103 | invoke check_box_mouse, ch1 ;ïðîâåðêà ÷åê áîêñà |
|
88 | mouse_check_boxes check_boxes,check_boxes_end ;ïðîâåðêà ÷åê áîêñà |
104 | |
89 | jmp event_wait |
105 | jmp event_wait |
90 | 106 | ||
91 | 107 | ||
92 | red: ;îáðàáîòêà ñîáûòèÿ ïåðåðèñîâêè îêíà |
108 | red: ;îáðàáîòêà ñîáûòèÿ ïåðåðèñîâêè îêíà |
93 | call draw_window |
109 | call draw_window |
94 | jmp event_wait |
110 | jmp event_wait |
95 | 111 | ||
96 | key: ; Keypress event handler |
112 | key: ; Keypress event handler |
97 | mov eax, 2 ; The key is returned in ah. The key must be |
113 | mov eax, 2 ; The key is returned in ah. The key must be |
98 | mcall ; read and cleared from the system queue. |
114 | mcall ; read and cleared from the system queue. |
99 | key_edit_boxes editboxes,editboxes_end |
115 | ;key_edit_boxes editboxes,editboxes_end |
- | 116 | invoke edit_box_key, editLU |
|
- | 117 | invoke edit_box_key, editLD |
|
- | 118 | invoke edit_box_key, editRU |
|
- | 119 | invoke edit_box_key, editRD |
|
100 | jmp event_wait ; Just read the key, ignore it and jump to event_wait. |
120 | jmp event_wait ; Just read the key, ignore it and jump to event_wait. |
101 | 121 | ||
102 | button: ; Buttonpress event handler |
122 | button: ; Buttonpress event handler |
103 | mov eax,17 ; The button number defined in window_draw |
123 | mov eax,17 ; The button number defined in window_draw |
104 | mcall ; is returned to ah. |
124 | mcall ; is returned to ah. |
105 | 125 | ||
106 | cmp ah,1 ; button id=1 ? |
126 | cmp ah,1 ; button id=1 ? |
107 | jne noclose |
127 | jne noclose |
- | 128 | exit: |
|
108 | mov eax,-1 ; Function -1 : close this program |
129 | mov eax,-1 ; Function -1 : close this program |
109 | mcall |
130 | mcall |
110 | noclose: |
131 | noclose: |
111 | cmp ah, 2 ;êíîïêà "Ïðèìåíèòü" |
132 | cmp ah, 2 ;êíîïêà "Ïðèìåíèòü" |
112 | jne butend |
133 | jne butend |
113 | call applyButton ;âûçîâ íàøåãî îáðàáîò÷èêà íàæàòèÿ êíîïêè |
134 | call applyButton ;âûçîâ íàøåãî îáðàáîò÷èêà íàæàòèÿ êíîïêè |
114 | butend: |
135 | butend: |
115 | jmp event_wait ;this is for ignored events, useful at development |
136 | jmp event_wait ;this is for ignored events, useful at development |
116 | 137 | ||
117 | 138 | ||
118 | 139 | ||
119 | ;èìÿ êîíôèãóðàöèîííîãî ôàéëà |
140 | ;èìÿ êîíôèãóðàöèîííîãî ôàéëà |
120 | fileName: db 'SETTINGS/HOTANGLES.CFG', 0 |
141 | fileName: db 'SETTINGS/HOTANGLES.CFG', 0 |
121 | 142 | ||
122 | ;ñòðóêòóðà äëÿ ñîçäàíèÿ/ïåðåçàïèñè ôàéëà |
143 | ;ñòðóêòóðà äëÿ ñîçäàíèÿ/ïåðåçàïèñè ôàéëà |
123 | createFile: |
144 | createFile: |
124 | .func dd 2 ;íîìåð ïîäôóíêöèè |
145 | .func dd 2 ;íîìåð ïîäôóíêöèè |
125 | .re dd 0, 0 ;çàðåçåðâèðîâàíî |
146 | .re dd 0, 0 ;çàðåçåðâèðîâàíî |
126 | .size dd 0 ;ñêîëüêî áàéò ïèñàòü |
147 | .size dd 0 ;ñêîëüêî áàéò ïèñàòü |
127 | .data_adr dd 0 ;óêàçàòåëü íà äàííûå |
148 | .data_adr dd 0 ;óêàçàòåëü íà äàííûå |
128 | .path db 0 |
149 | .path db 0 |
129 | .path_adr dd fileName ;ïóòü |
150 | .path_adr dd fileName ;ïóòü |
130 | 151 | ||
131 | ;ñòðîêà ïàðàìåòðîâ ïî óìîë÷àíèþ è å¸ ðàçìåð |
152 | ;ñòðîêà ïàðàìåòðîâ ïî óìîë÷àíèþ è å¸ ðàçìåð |
132 | 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 |
153 | 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 |
133 | defaultDataSize = 48+19 |
154 | defaultDataSize = 48+19 |
134 | 155 | ||
135 | 156 | ||
136 | copyParam: ;êîïèðóåò ïàðàìåòð(êîìàíäó çàïóñêà) â áóôåð (ñì. äàëüøå) |
157 | copyParam: ;êîïèðóåò ïàðàìåòð(êîìàíäó çàïóñêà) â áóôåð (ñì. äàëüøå) |
137 | push esi ebx ecx |
158 | push esi ebx ecx |
138 | mov ecx, dword[ebx] ;÷èòàåì ðàçìåð ñòðîêè |
159 | mov ecx, dword[ebx] ;÷èòàåì ðàçìåð ñòðîêè |
139 | .copy: ;êîïèðóåì ñèìâîëû |
160 | .copy: ;êîïèðóåì ñèìâîëû |
140 | cmp ecx, 0 |
161 | cmp ecx, 0 |
141 | je copyParam.copyEnd |
162 | je copyParam.copyEnd |
142 | mov bl, byte[esi] |
163 | mov bl, byte[esi] |
143 | mov byte[eax], bl |
164 | mov byte[eax], bl |
144 | dec ecx |
165 | dec ecx |
145 | inc eax |
166 | inc eax |
146 | inc esi |
167 | inc esi |
147 | jmp copyParam.copy |
168 | jmp copyParam.copy |
148 | .copyEnd: |
169 | .copyEnd: |
149 | pop ecx ebx esi |
170 | pop ecx ebx esi |
150 | ret |
171 | ret |
151 | 172 | ||
152 | 173 | ||
153 | addPerenos: ;äîáàâëÿåò ïåðåíîñ ñòðîêè â áóôåð |
174 | addPerenos: ;äîáàâëÿåò ïåðåíîñ ñòðîêè â áóôåð |
154 | mov byte[eax], 13 |
175 | mov byte[eax], 13 |
155 | inc eax |
176 | inc eax |
156 | mov byte[eax], 10 |
177 | mov byte[eax], 10 |
157 | inc eax |
178 | inc eax |
158 | ret |
179 | ret |
159 | 180 | ||
160 | ;îáðàáîò÷èê êíîïêè "Ïðèìåíèòü" |
181 | ;îáðàáîò÷èê êíîïêè "Ïðèìåíèòü" |
161 | applyButton: |
182 | applyButton: |
162 | push eax ebx ecx |
183 | push eax ebx ecx |
163 | ;mov dword[createFile.data_adr], defaultDataForConfig |
184 | ;mov dword[createFile.data_adr], defaultDataForConfig |
164 | ;mov dword[createFile.size], defaultDataSize |
185 | ;mov dword[createFile.size], defaultDataSize |
165 | 186 | ||
166 | ;âû÷èñëèì ðàçìåð ôàéëà êîíôèãóðàöèè â áàéòàõ |
187 | ;âû÷èñëèì ðàçìåð ôàéëà êîíôèãóðàöèè â áàéòàõ |
167 | mov ecx, 5*2+1 ;1 áàéò íà ñîñòîÿíèå àêòèâíîñòè è 5 ïàð ïåðåíîñîâ ñòðîê (ñèìâîëû 13, 10) |
188 | mov ecx, 5*2+1 ;1 áàéò íà ñîñòîÿíèå àêòèâíîñòè è 5 ïàð ïåðåíîñîâ ñòðîê (ñèìâîëû 13, 10) |
168 | add ecx, dword[editLU.size] ;dataBuffer.size1] ;ïëþñ ðàçìåð êàæäîé ñòðîêè â áàéòàõ |
189 | add ecx, dword[editLU.size] ;dataBuffer.size1] ;ïëþñ ðàçìåð êàæäîé ñòðîêè â áàéòàõ |
169 | add ecx, dword[editLD.size] ;dataBuffer.size2] |
190 | add ecx, dword[editLD.size] ;dataBuffer.size2] |
170 | add ecx, dword[editRU.size] ;dataBuffer.size3] |
191 | add ecx, dword[editRU.size] ;dataBuffer.size3] |
171 | add ecx, dword[editRD.size] ;dataBuffer.size4] |
192 | add ecx, dword[editRD.size] ;dataBuffer.size4] |
172 | ;òåïåðü ðàçìåð ôàéëà êîíôèãóðàöèè â ecx |
193 | ;òåïåðü ðàçìåð ôàéëà êîíôèãóðàöèè â ecx |
173 | mov dword[createFile.size], ecx ;ïîëîæèì ðàçìåð áàéò â ñòðóêòóðó ñîçäàíèÿ/ïåðåçàïèñè ôàéëà |
194 | mov dword[createFile.size], ecx ;ïîëîæèì ðàçìåð áàéò â ñòðóêòóðó ñîçäàíèÿ/ïåðåçàïèñè ôàéëà |
174 | mcall 68, 12, ecx ;âûäåëÿåì áëîê ïàìÿòè ïîä áóôåð ñîäåðæèìîãî |
195 | mcall 68, 12, ecx ;âûäåëÿåì áëîê ïàìÿòè ïîä áóôåð ñîäåðæèìîãî |
175 | mov dword[createFile.data_adr], eax ;ñîõðàíÿåì àäðåñ áóôåðà â ñòðóêòóðó |
196 | mov dword[createFile.data_adr], eax ;ñîõðàíÿåì àäðåñ áóôåðà â ñòðóêòóðó |
176 | 197 | ||
177 | ;çàïîëíèì áóôåð ñîäåðæèìîãî: |
198 | ;çàïîëíèì áóôåð ñîäåðæèìîãî: |
178 | mov byte[eax], 110; 'n' ;ïî óìîë÷àíèþ ôëàã ñíÿò |
199 | mov byte[eax], 110; 'n' ;ïî óìîë÷àíèþ ôëàã ñíÿò |
179 | cmp word[ch1.flags], ch_flag_en ;âûñòàâëåí checkBox èëè íåò? |
200 | cmp word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle ;110b ;ch_flag_en ;âûñòàâëåí checkBox èëè íåò? |
180 | jne applyButton.no |
201 | jne applyButton.no |
181 | mov byte[eax], 121 ;èíà÷å êëàä¸ì 'y' |
202 | mov byte[eax], 121 ;èíà÷å êëàä¸ì 'y' |
182 | .no: |
203 | .no: |
183 | inc eax |
204 | inc eax |
184 | call addPerenos |
205 | call addPerenos |
185 | 206 | ||
186 | push esi ebx |
207 | push esi ebx |
187 | call UpdateEditsSizes ;îáíîâèòü ðàçìåðû òåêñòà â edit'àõ |
208 | call UpdateEditsSizes ;îáíîâèòü ðàçìåðû òåêñòà â edit'àõ |
188 | 209 | ||
189 | mov esi, dataBuffer.1 ;editLU.text |
210 | mov esi, dataBuffer.1 ;editLU.text |
190 | mov ebx, dataBuffer.size1 ;editLU.size |
211 | mov ebx, dataBuffer.size1 ;editLU.size |
191 | call copyParam |
212 | call copyParam |
192 | call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè |
213 | call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè |
193 | 214 | ||
194 | mov esi, dataBuffer.2 ;editLD.text |
215 | mov esi, dataBuffer.2 ;editLD.text |
195 | mov ebx, dataBuffer.size2 ;editLD.size |
216 | mov ebx, dataBuffer.size2 ;editLD.size |
196 | call copyParam |
217 | call copyParam |
197 | call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè |
218 | call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè |
198 | 219 | ||
199 | mov esi, dataBuffer.3 |
220 | mov esi, dataBuffer.3 |
200 | mov ebx, dataBuffer.size3 |
221 | mov ebx, dataBuffer.size3 |
201 | call copyParam |
222 | call copyParam |
202 | call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè |
223 | call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè |
203 | 224 | ||
204 | mov esi, dataBuffer.4 |
225 | mov esi, dataBuffer.4 |
205 | mov ebx, dataBuffer.size4 |
226 | mov ebx, dataBuffer.size4 |
206 | call copyParam |
227 | call copyParam |
207 | call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè |
228 | call addPerenos ;äîáàâëÿåì ïåðåíîñ ñòðîêè |
208 | 229 | ||
209 | pop ebx esi |
230 | pop ebx esi |
210 | 231 | ||
211 | 232 | ||
212 | mov ebx, createFile |
233 | mov ebx, createFile |
213 | mcall 70 |
234 | mcall 70 |
214 | cmp eax, 0 |
235 | cmp eax, 0 |
215 | je .end |
236 | je .end |
216 | ;èíà÷å çäåñü íóæíî âûâåñòè îêíî ñ îøèáêîé !!! |
237 | ;èíà÷å çäåñü íóæíî âûâåñòè îêíî ñ îøèáêîé !!! |
217 | .end: |
238 | .end: |
218 | mcall 68, 13, dword[createFile.data_adr] ;îñâîáîæäàåì ïàìÿòü ïîä áóôåð |
239 | mcall 68, 13, dword[createFile.data_adr] ;îñâîáîæäàåì ïàìÿòü ïîä áóôåð |
219 | call restartHotAnglesApp ;ïåðåçàïóñêàåì @HOTANGLES |
240 | call restartHotAnglesApp ;ïåðåçàïóñêàåì @HOTANGLES |
220 | pop ecx ebx eax |
241 | pop ecx ebx eax |
221 | ret |
242 | ret |
222 | 243 | ||
223 | 244 | ||
224 | 245 | ||
225 | 246 | ||
226 | 247 | ||
227 | 248 | ||
228 | compareBytes2: |
249 | compareBytes2: |
229 | push edi esi ecx ebx |
250 | push edi esi ecx ebx |
230 | xor eax, eax |
251 | xor eax, eax |
231 | mov ecx, 10 ;max ðàçìåð ñòðîê 11 |
252 | mov ecx, 10 ;max ðàçìåð ñòðîê 11 |
232 | @@: |
253 | @@: |
233 | mov bl, byte[edi] |
254 | mov bl, byte[edi] |
234 | cmp bl, byte[esi] |
255 | cmp bl, byte[esi] |
235 | jne compareBytes.no |
256 | jne compareBytes.no |
236 | inc edi |
257 | inc edi |
237 | inc esi |
258 | inc esi |
238 | cmp ecx, 0 |
259 | cmp ecx, 0 |
239 | je @f |
260 | je @f |
240 | dec ecx |
261 | dec ecx |
241 | jmp @b |
262 | jmp @b |
242 | .no: |
263 | .no: |
243 | mov eax, 1 |
264 | mov eax, 1 |
244 | @@: |
265 | @@: |
245 | pop ebx ecx esi edi |
266 | pop ebx ecx esi edi |
246 | ret |
267 | ret |
247 | 268 | ||
248 | 269 | ||
249 | restartHotAnglesApp: ;!!! |
270 | restartHotAnglesApp: ;!!! |
250 | ;íàõîäèì âñå êîïèè ïðèëîæåíèÿ ïî èìåíè è çàâåðøàåì èõ |
271 | ;íàõîäèì âñå êîïèè ïðèëîæåíèÿ ïî èìåíè è çàâåðøàåì èõ |
251 | push eax ebx ecx esi edi |
272 | push eax ebx ecx esi edi |
252 | ;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíÿþòñÿ: |
273 | ;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíÿþòñÿ: |
253 | mov esi, startAppData.file_name ;ïåðâàÿ ñòðîêà - èñêîìîå èìÿ ïðèëîæåíèÿ |
274 | mov esi, startAppData.file_name ;ïåðâàÿ ñòðîêà - èñêîìîå èìÿ ïðèëîæåíèÿ |
254 | mov edi, buf ;âòîðàÿ ñòðîêà - èìÿ òåêóùåãî ñëîòà |
275 | mov edi, buf ;âòîðàÿ ñòðîêà - èìÿ òåêóùåãî ñëîòà |
255 | add edi, 10 |
276 | add edi, 10 |
256 | 277 | ||
257 | mov ecx, 1 |
278 | mov ecx, 1 |
258 | @@: |
279 | @@: |
259 | mcall 9, buf, ecx ;ïîëó÷àåì äàííûå î÷åðåäíîãî ñëîòà |
280 | mcall 9, buf, ecx ;ïîëó÷àåì äàííûå î÷åðåäíîãî ñëîòà |
260 | mov dword[slotMax], eax |
281 | mov dword[slotMax], eax |
261 | 282 | ||
262 | call compareBytes2 ;ñðàâíèâàåì èìÿ |
283 | call compareBytes2 ;ñðàâíèâàåì èìÿ |
263 | cmp eax, 0 |
284 | cmp eax, 0 |
264 | jne restartHotAnglesApp.next ;åñëè íå ñîâïàëî, òî ïåðåõîäèì íà ñëåäóþùèé ñëîò |
285 | jne restartHotAnglesApp.next ;åñëè íå ñîâïàëî, òî ïåðåõîäèì íà ñëåäóþùèé ñëîò |
265 | 286 | ||
266 | ;push eax ebx ecx |
287 | ;push eax ebx ecx |
267 | mcall 18, 2, ecx ;èíà÷å çàâåðøàåì ñëîò |
288 | mcall 18, 2, ecx ;èíà÷å çàâåðøàåì ñëîò |
268 | ;pop ecx ebx eax |
289 | ;pop ecx ebx eax |
269 | 290 | ||
270 | .next: |
291 | .next: |
271 | inc ecx |
292 | inc ecx |
272 | cmp ecx, dword[slotMax] |
293 | cmp ecx, dword[slotMax] |
273 | ja @f |
294 | ja @f |
274 | jmp @b |
295 | jmp @b |
275 | @@: |
296 | @@: |
276 | pop edi esi ecx ebx eax |
297 | pop edi esi ecx ebx eax |
277 | 298 | ||
278 | ;çàïóñêàåì ïðèëîæåíèå çàíîâî |
299 | ;çàïóñêàåì ïðèëîæåíèå çàíîâî |
279 | push eax ebx |
300 | push eax ebx |
280 | mcall 70, startAppData |
301 | mcall 70, startAppData |
281 | cmp eax, 0 |
302 | cmp eax, 0 |
282 | ja @f ;åñëè eax>0, òî óñïåøíî çàïóùåíî |
303 | ja @f ;åñëè eax>0, òî óñïåøíî çàïóùåíî |
283 | ;!!! èíà÷å òóò ïå÷àòàåì îøèáêó |
304 | ;!!! èíà÷å òóò ïå÷àòàåì îøèáêó |
284 | @@: |
305 | @@: |
285 | pop ebx eax |
306 | pop ebx eax |
286 | ret |
307 | ret |
287 | 308 | ||
288 | startAppData: |
309 | startAppData: |
289 | .subfunction dd 7 |
310 | .subfunction dd 7 |
290 | .flags dd 0 |
311 | .flags dd 0 |
291 | .param dd 0 |
312 | .param dd 0 |
292 | .rezerv dd 0, 0 |
313 | .rezerv dd 0, 0 |
293 | .full_name db '/rd/1/' |
314 | .full_name db '/rd/1/' |
294 | .file_name db '@HOTANGLES', 0 |
315 | .file_name db '@HOTANGLES', 0 |
295 | ;db 0 |
316 | ;db 0 |
296 | ;.name: dd HotAnglesAppName |
317 | ;.name: dd HotAnglesAppName |
297 | ;HotAnglesAppName db '@HOTANGLES', 0 |
318 | ;HotAnglesAppName db '@HOTANGLES', 0 |
298 | 319 | ||
299 | 320 | ||
300 | UpdateEditsSizes: |
321 | UpdateEditsSizes: |
301 | push eax |
322 | push eax |
302 | mov eax, dword[editLU.size] |
323 | mov eax, dword[editLU.size] |
303 | mov dword[dataBuffer.size1], eax |
324 | mov dword[dataBuffer.size1], eax |
304 | 325 | ||
305 | mov eax, dword[editLD.size] |
326 | mov eax, dword[editLD.size] |
306 | mov dword[dataBuffer.size2], eax |
327 | mov dword[dataBuffer.size2], eax |
307 | 328 | ||
308 | mov eax, dword[editRU.size] |
329 | mov eax, dword[editRU.size] |
309 | mov dword[dataBuffer.size3], eax |
330 | mov dword[dataBuffer.size3], eax |
310 | 331 | ||
311 | mov eax, dword[editRD.size] |
332 | mov eax, dword[editRD.size] |
312 | mov dword[dataBuffer.size4], eax |
333 | mov dword[dataBuffer.size4], eax |
313 | 334 | ||
314 | pop eax |
335 | pop eax |
315 | ret |
336 | ret |
316 | 337 | ||
317 | fileAdr dd 0 |
338 | fileAdr dd 0 |
318 | 339 | ||
319 | loadConfig: |
340 | loadConfig: |
320 | push eax ebx ecx edx |
341 | push eax ebx ecx edx |
321 | mcall 68, 27, fileName ;çàãðóæàåì êîíôèãóðàöèîííûé ôàéë â ÎÇÓ |
342 | mcall 68, 27, fileName ;çàãðóæàåì êîíôèãóðàöèîííûé ôàéë â ÎÇÓ |
322 | mov dword[fileAdr], eax ;ñîõðàíÿåì àäðåñ áëîêà ïàìÿòè ôàéëà |
343 | mov dword[fileAdr], eax ;ñîõðàíÿåì àäðåñ áëîêà ïàìÿòè ôàéëà |
323 | cmp eax, 0 |
344 | cmp eax, 0 |
324 | je loadConfig.default ;åñëè ôàéëà êîíôèãóðàöèè íåò, òî ñòàâèì íàñòðîéêè ïî óìîë÷àíèþ |
345 | je loadConfig.default ;åñëè ôàéëà êîíôèãóðàöèè íåò, òî ñòàâèì íàñòðîéêè ïî óìîë÷àíèþ |
325 | ;èíà÷å äàííûå çàãðóæåíû â ÎÇÓ, ðàçìåð â edx |
346 | ;èíà÷å äàííûå çàãðóæåíû â ÎÇÓ, ðàçìåð â edx |
326 | cmp edx, 0 ;åñëè ôàéë ïóñò, â í¸ì íåò äàííûõ, òî ñòàâèì íàñòðîéêè ïî óìîë÷àíèþ |
347 | cmp edx, 0 ;åñëè ôàéë ïóñò, â í¸ì íåò äàííûõ, òî ñòàâèì íàñòðîéêè ïî óìîë÷àíèþ |
327 | je loadConfig.default |
348 | je loadConfig.default |
328 | .start: |
349 | .start: |
329 | add edx, eax ;êëàä¸ì â edx - àäðåñ êîíöà êîíôèã.äàííûõ |
350 | add edx, eax ;êëàä¸ì â edx - àäðåñ êîíöà êîíôèã.äàííûõ |
330 | 351 | ||
331 | .chStart: |
352 | .chStart: |
332 | cmp byte[eax], 121 ;'y' ;âûñòàâëÿåì checkBox - ïàðàìåòð àêòèâíîñòè ïðèëîæåíèÿ |
353 | cmp byte[eax], 121 ;'y' ;âûñòàâëÿåì checkBox - ïàðàìåòð àêòèâíîñòè ïðèëîæåíèÿ |
333 | jne loadConfig.no |
354 | jne loadConfig.no |
334 | .yes: |
355 | .yes: |
335 | mov word[ch1.flags], ch_flag_en |
356 | mov word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle ;110b ;ch_flag_en |
336 | jmp loadConfig.chEnd |
357 | jmp loadConfig.chEnd |
337 | .no: |
358 | .no: |
338 | mov word[ch1.flags], 0 |
359 | mov word[ch1.flags], 100b ;0 and ch_flag_middle ;100b |
339 | .chEnd: |
360 | .chEnd: |
340 | ;jmp loadConfig.end ;êîìàíäà äëÿ óäîáñòâà îòëàäêè è ïîèñêà îøèáîê |
361 | ;jmp loadConfig.end ;êîìàíäà äëÿ óäîáñòâà îòëàäêè è ïîèñêà îøèáîê |
341 | 362 | ||
342 | ;êîïèðóåì ñîäåðæèìîå ñòðîê â áóôåð |
363 | ;êîïèðóåì ñîäåðæèìîå ñòðîê â áóôåð |
343 | push edi esi ecx ebx eax |
364 | push edi esi ecx ebx eax |
344 | ;èíèöèàëèçèðóåì óêàçàòåëè íà àäðåñà áóôåðà ñòðîêè è å¸ ðàçìåðà |
365 | ;èíèöèàëèçèðóåì óêàçàòåëè íà àäðåñà áóôåðà ñòðîêè è å¸ ðàçìåðà |
345 | mov edi, dataBuffer.1 ;dword[dataBuffer.1] |
366 | mov edi, dataBuffer.1 ;dword[dataBuffer.1] |
346 | mov esi, dataBuffer.size1 ;dword[dataBuffer.size1] |
367 | mov esi, dataBuffer.size1 ;dword[dataBuffer.size1] |
347 | ;ecx - ñ÷¸ò÷èê áàéò â ñòðîêå |
368 | ;ecx - ñ÷¸ò÷èê áàéò â ñòðîêå |
348 | ; mov ecx, 0 ;xor ecx, ecx |
369 | ; mov ecx, 0 ;xor ecx, ecx |
349 | .block: |
370 | .block: |
350 | xor ecx, ecx ;îáíóëÿåì ñ÷¸ò÷èê |
371 | xor ecx, ecx ;îáíóëÿåì ñ÷¸ò÷èê |
351 | inc eax |
372 | inc eax |
352 | cmp byte[eax], 10 ;åñëè î÷åðåäíîé êîä ñèìâîëà 10 èëè 13, òî ïðîïóñêàåì ñèìâîëû |
373 | cmp byte[eax], 10 ;åñëè î÷åðåäíîé êîä ñèìâîëà 10 èëè 13, òî ïðîïóñêàåì ñèìâîëû |
353 | je loadConfig.block ;propusk ;äî ïåðâîãî îòëè÷íîãî îò íèõ |
374 | je loadConfig.block ;propusk ;äî ïåðâîãî îòëè÷íîãî îò íèõ |
354 | cmp byte[eax], 13 |
375 | cmp byte[eax], 13 |
355 | je loadConfig.block ;propusk |
376 | je loadConfig.block ;propusk |
356 | 377 | ||
357 | ; ñèìâîë îòëè÷åí îò ïåðåíîñà ñòðîêè è âîçâðàòà êàðåòêè - íà÷èíàåì êîïèðîâàòü îòñþäà â áóôåð |
378 | ; ñèìâîë îòëè÷åí îò ïåðåíîñà ñòðîêè è âîçâðàòà êàðåòêè - íà÷èíàåì êîïèðîâàòü îòñþäà â áóôåð |
358 | mov bl, byte[eax] |
379 | mov bl, byte[eax] |
359 | mov byte[edi], bl |
380 | mov byte[edi], bl |
360 | inc edi |
381 | inc edi |
361 | inc eax |
382 | inc eax |
362 | inc ecx ;óâåëè÷èâàåì ñ÷¸ò÷èê ñèìâîëîâ â ñòðîêå |
383 | inc ecx ;óâåëè÷èâàåì ñ÷¸ò÷èê ñèìâîëîâ â ñòðîêå |
363 | 384 | ||
364 | ;èä¸ì äî êîíöà ýòîé ñòðîêè: ïîêà íå âñòðåòèì î÷åðåäíîé 10, 13, 0 èëè file end |
385 | ;èä¸ì äî êîíöà ýòîé ñòðîêè: ïîêà íå âñòðåòèì î÷åðåäíîé 10, 13, 0 èëè file end |
365 | .while: ;è êîïèðóåì âñ¸ â áóôåð |
386 | .while: ;è êîïèðóåì âñ¸ â áóôåð |
366 | cmp eax, edx ;ïðîâåðÿåì çàêîí÷èëñÿ ëè ôàéë, à êîíöà ñòðîêè íå áûëî !!! |
387 | cmp eax, edx ;ïðîâåðÿåì çàêîí÷èëñÿ ëè ôàéë, à êîíöà ñòðîêè íå áûëî !!! |
367 | ja loadConfig.ura |
388 | ja loadConfig.ura |
368 | cmp byte[eax], 10 |
389 | cmp byte[eax], 10 |
369 | je loadConfig.ura |
390 | je loadConfig.ura |
370 | cmp byte[eax], 0 |
391 | cmp byte[eax], 0 |
371 | je loadConfig.ura |
392 | je loadConfig.ura |
372 | cmp byte[eax], 13 |
393 | cmp byte[eax], 13 |
373 | je loadConfig.ura |
394 | je loadConfig.ura |
374 | 395 | ||
375 | mov bl, byte[eax] |
396 | mov bl, byte[eax] |
376 | mov byte[edi], bl |
397 | mov byte[edi], bl |
377 | inc edi |
398 | inc edi |
378 | inc eax |
399 | inc eax |
379 | inc ecx |
400 | inc ecx |
380 | cmp ecx, 511 |
401 | cmp ecx, 511 |
381 | jae loadConfig.ura |
402 | jae loadConfig.ura |
382 | jmp loadConfig.while |
403 | jmp loadConfig.while |
383 | .ura: |
404 | .ura: |
384 | mov byte[edi], 0 ;êëàä¸ì çàâåðøàþùèé 0 â ñòðîêó |
405 | mov byte[edi], 0 ;êëàä¸ì çàâåðøàþùèé 0 â ñòðîêó |
385 | mov dword[esi], ecx ;ñîõðàíÿåì ðàçìåð ñòðîêè |
406 | mov dword[esi], ecx ;ñîõðàíÿåì ðàçìåð ñòðîêè |
386 | add esi, 4 ;ïåðåõîäèì íà ðàçìåð ñëåäóþùåãî áóôåðà |
407 | add esi, 4 ;ïåðåõîäèì íà ðàçìåð ñëåäóþùåãî áóôåðà |
387 | sub edi, ecx ;ïåðåõîäèì íà ñëåäóþùèé áóôåð |
408 | sub edi, ecx ;ïåðåõîäèì íà ñëåäóþùèé áóôåð |
388 | add edi, 512 |
409 | add edi, 512 |
389 | ; mov ecx, 0 ;xor ecx, ecx ;îáíóëÿåì ðàçìåð ñòðîêè |
410 | ; mov ecx, 0 ;xor ecx, ecx ;îáíóëÿåì ðàçìåð ñòðîêè |
390 | 411 | ||
391 | cmp edi, dataBuffer.size1 ;åñëè ýòî áûë ïîñëåäíèé áóôåð (è ìû âûøëè çà àäðåñà ðàçìåðîâ áóôåðîâ), òî âûõîäèì |
412 | cmp edi, dataBuffer.size1 ;åñëè ýòî áûë ïîñëåäíèé áóôåð (è ìû âûøëè çà àäðåñà ðàçìåðîâ áóôåðîâ), òî âûõîäèì |
392 | jb loadConfig.block |
413 | jb loadConfig.block |
393 | 414 | ||
394 | pop eax ebx ecx esi edi |
415 | pop eax ebx ecx esi edi |
395 | 416 | ||
396 | jmp loadConfig.end |
417 | jmp loadConfig.end |
397 | .default: |
418 | .default: |
398 | mov eax, defaultDataForConfig |
419 | mov eax, defaultDataForConfig |
399 | mov edx, defaultDataSize |
420 | mov edx, defaultDataSize |
400 | jmp loadConfig.start |
421 | jmp loadConfig.start |
401 | .end: |
422 | .end: |
402 | mov ecx, dword[fileAdr] ;åñëè ôàéë áûë çàãðóæåí, òî |
423 | mov ecx, dword[fileAdr] ;åñëè ôàéë áûë çàãðóæåí, òî |
403 | cmp ecx, 0 |
424 | cmp ecx, 0 |
404 | je @f |
425 | je @f |
405 | mcall 68, 13, ecx ;âûãðóæàåì ôàéë èç ïàìÿòè |
426 | mcall 68, 13, ecx ;âûãðóæàåì ôàéë èç ïàìÿòè |
406 | @@: |
427 | @@: |
407 | call updateParams ;ïðèìåíÿåì íàñòðîéêè êàæäîãî áóôåðà |
428 | call updateParams ;ïðèìåíÿåì íàñòðîéêè êàæäîãî áóôåðà |
408 | pop edx ecx ebx eax |
429 | pop edx ecx ebx eax |
409 | ret |
430 | ret |
410 | 431 | ||
411 | 432 | ||
412 | updateParams: ;max, size, pos |
433 | updateParams: ;max, size, pos |
413 | push eax |
434 | push eax |
414 | mov eax, dword[dataBuffer.size1] |
435 | mov eax, dword[dataBuffer.size1] |
415 | mov dword[editLU.size], eax |
436 | mov dword[editLU.size], eax |
416 | mov dword[editLU.pos], eax |
437 | mov dword[editLU.pos], eax |
417 | 438 | ||
418 | mov eax, dword[dataBuffer.size2] |
439 | mov eax, dword[dataBuffer.size2] |
419 | mov dword[editLD.size], eax |
440 | mov dword[editLD.size], eax |
420 | mov dword[editLD.pos], eax |
441 | mov dword[editLD.pos], eax |
421 | 442 | ||
422 | mov eax, dword[dataBuffer.size3] |
443 | mov eax, dword[dataBuffer.size3] |
423 | mov dword[editRU.size], eax |
444 | mov dword[editRU.size], eax |
424 | mov dword[editRU.pos], eax |
445 | mov dword[editRU.pos], eax |
425 | 446 | ||
426 | mov eax, dword[dataBuffer.size4] |
447 | mov eax, dword[dataBuffer.size4] |
427 | mov dword[editRD.size], eax |
448 | mov dword[editRD.size], eax |
428 | mov dword[editRD.pos], eax |
449 | mov dword[editRD.pos], eax |
429 | pop eax |
450 | pop eax |
430 | ret |
451 | ret |
431 | 452 | ||
432 | 453 | ||
433 | 454 | ||
434 | selfName db 'HACONFIG', 0 ;'@HOTANGLES',0 |
455 | selfName db 'HACONFIG', 0 ;'@HOTANGLES',0 |
435 | selfNameSize = 8;9 ;äî 11 byte |
456 | selfNameSize = 8;9 ;äî 11 byte |
436 | ; |
457 | ; |
437 | compareBytes: |
458 | compareBytes: |
438 | push edi esi ecx ebx |
459 | push edi esi ecx ebx |
439 | mov eax, 0 ;xor eax, eax |
460 | mov eax, 0 ;xor eax, eax |
440 | mov ecx, selfNameSize ;11 ;max ðàçìåð ñòðîê 11 |
461 | mov ecx, selfNameSize ;11 ;max ðàçìåð ñòðîê 11 |
441 | @@: |
462 | @@: |
442 | mov bl, byte[edi] |
463 | mov bl, byte[edi] |
443 | cmp bl, byte[esi] |
464 | cmp bl, byte[esi] |
444 | jne compareBytes.no |
465 | jne compareBytes.no |
445 | inc edi |
466 | inc edi |
446 | inc esi |
467 | inc esi |
447 | cmp ecx, 0 |
468 | cmp ecx, 0 |
448 | je @f |
469 | je @f |
449 | dec ecx |
470 | dec ecx |
450 | jmp @b |
471 | jmp @b |
451 | .no: |
472 | .no: |
452 | mov eax, 1 |
473 | mov eax, 1 |
453 | @@: |
474 | @@: |
454 | pop ebx ecx esi edi |
475 | pop ebx ecx esi edi |
455 | ret |
476 | ret |
456 | ; |
477 | ; |
457 | slotMax dd 0 |
478 | slotMax dd 0 |
458 | selfPID dd 0 |
479 | selfPID dd 0 |
459 | buf db 1024 dup(0) |
480 | buf db 1024 dup(0) |
460 | copyKill: |
481 | copyKill: |
461 | push eax ebx ecx esi edi |
482 | push eax ebx ecx esi edi |
462 | 483 | ||
463 | ;ñïåðâà ïðî÷ò¸ì ñâîþ èíôîðìàöèþ |
484 | ;ñïåðâà ïðî÷ò¸ì ñâîþ èíôîðìàöèþ |
464 | mcall 9, buf, -1 |
485 | mcall 9, buf, -1 |
465 | mov eax, dword[buf+30] |
486 | mov eax, dword[buf+30] |
466 | mov dword[selfPID], eax |
487 | mov dword[selfPID], eax |
467 | 488 | ||
468 | ;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíÿþòñÿ: |
489 | ;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíÿþòñÿ: |
469 | mov esi, selfName ;ïåðâàÿ ñòðîêà - èìÿ òåêóùåãî ïðèëîæåíèÿ |
490 | mov esi, selfName ;ïåðâàÿ ñòðîêà - èìÿ òåêóùåãî ïðèëîæåíèÿ |
470 | mov edi, buf ;âòîðàÿ ñòðîêà - èìÿ òåêóùåãî ñëîòà |
491 | mov edi, buf ;âòîðàÿ ñòðîêà - èìÿ òåêóùåãî ñëîòà |
471 | add edi, 10 |
492 | add edi, 10 |
472 | 493 | ||
473 | mov ecx, 1 |
494 | mov ecx, 1 |
474 | @@: |
495 | @@: |
475 | mcall 9, buf, ecx |
496 | mcall 9, buf, ecx |
476 | mov dword[slotMax], eax |
497 | mov dword[slotMax], eax |
477 | 498 | ||
478 | ;åñëè ýòî ìû ñàìè, òî ïðîïóñêàåì ïðîâåðêó |
499 | ;åñëè ýòî ìû ñàìè, òî ïðîïóñêàåì ïðîâåðêó |
479 | mov eax, dword[buf+30] |
500 | mov eax, dword[buf+30] |
480 | cmp eax, dword[selfPID] |
501 | cmp eax, dword[selfPID] |
481 | je copyKill.propusk |
502 | je copyKill.propusk |
482 | 503 | ||
483 | call compareBytes ;ñðàâíèâàåì 11 áàéò ñòðîê, ðåçóëüòàò â eax |
504 | call compareBytes ;ñðàâíèâàåì 11 áàéò ñòðîê, ðåçóëüòàò â eax |
484 | 505 | ||
485 | cmp eax, 0 |
506 | cmp eax, 0 |
486 | je copyKill.selfKill |
507 | je copyKill.selfKill |
487 | 508 | ||
488 | .propusk: |
509 | .propusk: |
489 | inc ecx |
510 | inc ecx |
490 | cmp ecx, dword[slotMax] |
511 | cmp ecx, dword[slotMax] |
491 | ja @f |
512 | ja @f |
492 | jmp @b |
513 | jmp @b |
493 | 514 | ||
494 | .selfKill: |
515 | .selfKill: |
495 | pop edi esi ecx ebx eax |
516 | pop edi esi ecx ebx eax |
496 | mcall -1 |
517 | mcall -1 |
497 | ret |
518 | ret |
498 | @@: |
519 | @@: |
499 | pop edi esi ecx ebx eax |
520 | pop edi esi ecx ebx eax |
500 | ret |
521 | ret |
501 | 522 | ||
502 | WindowsWidth = 450 |
523 | WindowsWidth = 450 |
503 | WindowsHeight = 195 |
524 | WindowsHeight = 195 |
504 | coord: ;êîîðäèíàòû îêíà ïðèëîæåíèÿ |
525 | coord: ;êîîðäèíàòû îêíà ïðèëîæåíèÿ |
505 | .y dw 0 |
526 | .y dw 0 |
506 | .x dw 0 |
527 | .x dw 0 |
507 | 528 | ||
508 | draw_window: |
529 | draw_window: |
509 | ;óäàëÿåì êíîïêó, åñëè åñòü |
530 | ;óäàëÿåì êíîïêó, åñëè åñòü |
510 | mov edx, 0x80000002 |
531 | mov edx, 0x80000002 |
511 | mcall 8 |
532 | mcall 8 |
512 | 533 | ||
513 | mov eax, 12 ; function 12: tell os about windowdraw |
534 | mov eax, 12 ; function 12: tell os about windowdraw |
514 | mov ebx, 1 ; 1, start of draw |
535 | mov ebx, 1 ; 1, start of draw |
515 | mcall |
536 | mcall |
516 | 537 | ||
517 | ;îòîáðàçèì îêíî ïî öåíòðó ýêðàíà äëÿ ýòîãî: |
538 | ;îòîáðàçèì îêíî ïî öåíòðó ýêðàíà äëÿ ýòîãî: |
518 | mcall 14 ;ïîëó÷èì ðàçìåðû ýêðàíà |
539 | mcall 14 ;ïîëó÷èì ðàçìåðû ýêðàíà |
519 | mov dword[coord], eax ;ïîëîæèì ðàçìåðû ýêðàíà â êîîðäèíàòû |
540 | mov dword[coord], eax ;ïîëîæèì ðàçìåðû ýêðàíà â êîîðäèíàòû |
520 | shr word[coord.x], 1 ;âåðíåå ïîëîæèì èõ ïîëîâèíó |
541 | shr word[coord.x], 1 ;âåðíåå ïîëîæèì èõ ïîëîâèíó |
521 | shr word[coord.y], 1 |
542 | shr word[coord.y], 1 |
522 | 543 | ||
523 | ;âû÷èñëÿåì êîîðäèíàòû îêíà, ÷òîáû îêíî áûëî ïî ñåðåäèíå ýêðàíà |
544 | ;âû÷èñëÿåì êîîðäèíàòû îêíà, ÷òîáû îêíî áûëî ïî ñåðåäèíå ýêðàíà |
524 | sub word[coord.x], WindowsWidth/2 |
545 | sub word[coord.x], WindowsWidth/2 |
525 | sub word[coord.y], WindowsHeight/2 |
546 | sub word[coord.y], WindowsHeight/2 |
526 | 547 | ||
527 | mov eax, 0 ; function 0 : define and draw window |
548 | mov eax, 0 ; function 0 : define and draw window |
528 | mov ebx, 0 ;* 65536 + WindowsWidth ; [x start] *65536 + [x size] |
549 | mov ebx, 0 ;* 65536 + WindowsWidth ; [x start] *65536 + [x size] |
529 | mov bx, word[coord.x] |
550 | mov bx, word[coord.x] |
530 | shl ebx, 16 |
551 | shl ebx, 16 |
531 | mov bx, WindowsWidth |
552 | mov bx, WindowsWidth |
532 | 553 | ||
533 | mov ecx, 0 |
554 | mov ecx, 0 |
534 | mov cx, word[coord.y] ;* 65536 + WindowsHeight ; [y start] *65536 + [y size] |
555 | mov cx, word[coord.y] ;* 65536 + WindowsHeight ; [y start] *65536 + [y size] |
535 | shl ecx, 16 |
556 | shl ecx, 16 |
536 | mov cx, WindowsHeight |
557 | mov cx, WindowsHeight |
537 | 558 | ||
538 | mov edx, 0x14ffffff ; color of work area RRGGBB |
559 | mov edx, 0x14ffffff ; color of work area RRGGBB |
539 | ; 0x02000000 = window type 4 (fixed size, skinned window) |
560 | ; 0x02000000 = window type 4 (fixed size, skinned window) |
540 | mov esi, 0x808899ff ; color of grab bar RRGGBB |
561 | mov esi, 0x808899ff ; color of grab bar RRGGBB |
541 | ; 0x80000000 = color glide |
562 | ; 0x80000000 = color glide |
542 | mov edi, title |
563 | mov edi, title |
543 | mcall |
564 | mcall |
544 | 565 | ||
545 | draw_check_boxes check_boxes,check_boxes_end ;ðèñîâàíèå ÷åêáîêñîâ |
566 | ;draw_check_boxes check_boxes,check_boxes_end ;ðèñîâàíèå ÷åêáîêñîâ |
- | 567 | ;draw_edit_boxes editboxes,editboxes_end ;ðèñîâàíèå edit box'îâ |
|
- | 568 | invoke edit_box_draw, editLU ;ðèñîâàíèå edit box'îâ |
|
- | 569 | invoke edit_box_draw, editLD |
|
- | 570 | invoke edit_box_draw, editRU |
|
- | 571 | invoke edit_box_draw, editRD |
|
- | 572 | ||
546 | draw_edit_boxes editboxes,editboxes_end ;ðèñîâàíèå edit box'îâ |
573 | invoke check_box_draw, ch1 ;ðèñîâàíèå ÷åêáîêñîâ |
547 | 574 | ||
548 | ;ðèñóåì êíîïêó |
575 | ;ðèñóåì êíîïêó |
549 | mov ebx, (WindowsWidth-80-Otstup)*65536 + 80 ;êîîðäèíàòà X, øèðèíà êíîïêè |
576 | mov ebx, (WindowsWidth-80-Otstup)*65536 + 80 ;êîîðäèíàòà X, øèðèíà êíîïêè |
550 | mov ecx, 160*65536 + 20 ;êîîðäèíàòà Y, âûñîòà êíîïêè |
577 | mov ecx, 160*65536 + 20 ;êîîðäèíàòà Y, âûñîòà êíîïêè |
551 | mov edx, 0x00000002 ;2 ;íîìåð êíîïêè |
578 | mov edx, 0x00000002 ;2 ;íîìåð êíîïêè |
552 | mov esi, 0x00AABBCC ;öâåò êíîïêè |
579 | mov esi, 0x00AABBCC ;öâåò êíîïêè |
553 | mcall 8 |
580 | mcall 8 |
554 | ;ðèñóåì òåêñò êíîïêè |
581 | ;ðèñóåì òåêñò êíîïêè |
555 | mov ebx, (WindowsWidth-80-Otstup+25-buttonTextXoffset) * 65536 + 166 ;êîîðäèíàòû òåêñòà (x, y) |
582 | mov ebx, (WindowsWidth-80-Otstup+25-buttonTextXoffset) * 65536 + 166 ;êîîðäèíàòû òåêñòà (x, y) |
556 | mov ecx, 0xFFFFFF ;áåëûé öâåò òåêñòà |
583 | mov ecx, 0xFFFFFF ;áåëûé öâåò òåêñòà |
557 | mov edx, buttonText |
584 | mov edx, buttonText |
558 | mov esi, buttonTextSize ;5 ;ðàçìåð òåêñòà â ñèìâîëàõ |
585 | mov esi, buttonTextSize ;5 ;ðàçìåð òåêñòà â ñèìâîëàõ |
559 | mcall 4 |
586 | mcall 4 |
560 | 587 | ||
561 | call draw_super_text |
588 | call draw_super_text |
562 | 589 | ||
563 | LineLength = 62 ;42 |
590 | LineLength = 62 ;42 |
564 | mov ebx, 40 * 65536 + 36 ; draw info text with function 4 (x, y) |
591 | mov ebx, 40 * 65536 + 36 ; draw info text with function 4 (x, y) |
565 | mov ecx, 0x224466 |
592 | mov ecx, 0x224466 |
566 | mov edx, text |
593 | mov edx, text |
567 | mov esi, LineLength |
594 | mov esi, LineLength |
568 | mov eax, 4 |
595 | mov eax, 4 |
569 | 596 | ||
570 | .newline: ; text from the DATA AREA |
597 | .newline: ; text from the DATA AREA |
571 | mcall |
598 | mcall |
572 | add ebx, 12 |
599 | add ebx, 12 |
573 | add edx, LineLength |
600 | add edx, LineLength |
574 | cmp byte[edx], 0 |
601 | cmp byte[edx], 0 |
575 | jne .newline |
602 | jne .newline |
576 | 603 | ||
577 | mov eax, 12 ; function 12:tell os about windowdraw |
604 | mov eax, 12 ; function 12:tell os about windowdraw |
578 | mov ebx, 2 ; 2, end of draw |
605 | mov ebx, 2 ; 2, end of draw |
579 | mcall |
606 | mcall |
580 | 607 | ||
581 | ret |
608 | ret |
582 | 609 | ||
583 | 610 | ||
584 | 611 | ||
585 | 612 | ||
- | 613 | align 16 |
|
- | 614 | @IMPORT: |
|
- | 615 | ||
- | 616 | library box_lib, 'box_lib.obj' |
|
- | 617 | ||
- | 618 | import box_lib,\ |
|
- | 619 | edit_box_draw, 'edit_box',\ |
|
- | 620 | edit_box_key, 'edit_box_key',\ |
|
- | 621 | edit_box_mouse, 'edit_box_mouse',\ |
|
- | 622 | init_checkbox, 'init_checkbox2',\ |
|
- | 623 | check_box_draw, 'check_box_draw2',\ |
|
- | 624 | check_box_mouse, 'check_box_mouse2',\ |
|
- | 625 | option_box_draw, 'option_box_draw',\ |
|
- | 626 | option_box_mouse, 'option_box_mouse' |
|
- | 627 | ||
- | 628 | ||
586 | align 4 |
629 | |
587 | ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
630 | ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
588 | ;DATA äàííûå äëÿ check_box1 - èñïîëüçóåò ñèñòåìíûå öâåòà |
631 | ;DATA äàííûå äëÿ check_box1 - èñïîëüçóåò ñèñòåìíûå öâåòà |
589 | ;Ôîðìàò äàííûõ ÷åê áîêñà: |
632 | ;Ôîðìàò äàííûõ ÷åê áîêñà: |
590 | ; êîîðäèíàòà õ, êîîðäèíàòà ó, óêàçàòåëü íà íà÷àëî ñòðîêè, äëèíà ñòðîêè |
633 | ; êîîðäèíàòà õ, êîîðäèíàòà ó, óêàçàòåëü íà íà÷àëî ñòðîêè, äëèíà ñòðîêè |
591 | ;ñîñòîÿíèå ðàáîòû óòèëèòû: àêòèâíà/íåò |
634 | ;ñîñòîÿíèå ðàáîòû óòèëèòû: àêòèâíà/íåò |
592 | check_boxes: |
635 | ;check_boxes: |
593 | ch1 check_box1 30,160,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en |
636 | ; ch1 check_box1 30,160,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en |
594 | check_boxes_end: |
637 | ;check_boxes_end: |
- | 638 | ||
- | 639 | ;êîîðäèíàòû (x,y) = (30, 160) ðàçìåð ÷åêáîêñà 12, öâåò òåêñòà 0x224466 |
|
- | 640 | ch1 check_box2 30 shl 16 + 12, 160 shl 16 + 12, 6, 0xFFFFFFFF, 0xAABBCC, 0x224466, ch_text, 110b ; ch_flag_en and ch_flag_middle |
|
595 | 641 | ||
596 | 642 | ||
597 | if lang eq ru ;åñëè ÿçûê ñáîðêè ðóññêèé |
643 | if lang eq ru ;åñëè ÿçûê ñáîðêè ðóññêèé |
598 | 644 | ||
599 | text db "®ä¨£ãà â®à Hot Angles ®â¢¥ç ¥â § áâனªã ªâ¨¢ëå 㣫®¢. " |
645 | text db "®ä¨£ãà â®à Hot Angles ®â¢¥ç ¥â § áâனªã ªâ¨¢ëå 㣫®¢. " |
600 | db " áâன⥠¯ à ¬¥âàë ¯®¤ á¥¡ï ¨«¨ ®âª«îç¨â¥ íâã ®¯æ¨î. " |
646 | db " áâன⥠¯ à ¬¥âàë ¯®¤ á¥¡ï ¨«¨ ®âª«îç¨â¥ íâã ®¯æ¨î. " |
601 | db " ", 0 |
647 | db " ", 0 |
602 | hed: |
648 | hed: |
603 | title db "®ä¨£ãà â®à ã⨫¨âë Hot Angles", 0 |
649 | title db "®ä¨£ãà â®à ã⨫¨âë Hot Angles", 0 |
604 | buttonText db "ਬ¥¨âì", 0 |
650 | buttonText db "ਬ¥¨âì", 0 |
605 | buttonTextSize = 9 |
651 | buttonTextSize = 9 |
606 | buttonTextXoffset = 12 |
652 | buttonTextXoffset = 12 |
- | 653 | ||
607 | 654 | ch_text db 'ª«îç¨âì/ ªâ¨¢¨à®¢ âì "Hot Angles"', 0 |
|
608 | ch_text: ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñîâ |
655 | ;ch_text: ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñîâ |
609 | .1 db 'ª«îç¨âì/ ªâ¨¢¨à®¢ âì "Hot Angles"' |
656 | ;.1 db 'ª«îç¨âì/ ªâ¨¢¨à®¢ âì "Hot Angles"' |
610 | .e1: |
657 | ;.e1: |
611 | 658 | ||
612 | superText: |
659 | superText: |
613 | .lu db '®¬ ¤ «¥¢®£® ¢¥à奣® 㣫 : ', 0 |
660 | .lu db '®¬ ¤ «¥¢®£® ¢¥à奣® 㣫 : ', 0 |
614 | .ld db '®¬ ¤ «¥¢®£® ¨¦¥£® 㣫 : ', 0 |
661 | .ld db '®¬ ¤ «¥¢®£® ¨¦¥£® 㣫 : ', 0 |
615 | .ru db '®¬ ¤ ¯à ¢®£® ¢¥à奣® 㣫 :', 0 |
662 | .ru db '®¬ ¤ ¯à ¢®£® ¢¥à奣® 㣫 :', 0 |
616 | .rd db '®¬ ¤ ¯à ¢®£® ¨¦¥£® 㣫 : ', 0 |
663 | .rd db '®¬ ¤ ¯à ¢®£® ¨¦¥£® 㣫 : ', 0 |
617 | superTextSize = 30 |
664 | superTextSize = 30 |
618 | 665 | ||
619 | else ;èíà÷å àíãëèéñêèé òåêñò |
666 | else ;èíà÷å àíãëèéñêèé òåêñò |
620 | 667 | ||
621 | text db "This is a Hot Angles Configurator. " |
668 | text db "This is a Hot Angles Configurator. " |
622 | db "Set the parameters bellow for yourself or disable this option." |
669 | db "Set the parameters bellow for yourself or disable this option." |
623 | db " ", 0 |
670 | db " ", 0 |
624 | hed: |
671 | hed: |
625 | title db "Hot Angles Configurator", 0 |
672 | title db "Hot Angles Configurator", 0 |
626 | buttonText db "Apply", 0 |
673 | buttonText db "Apply", 0 |
627 | buttonTextSize = 5 |
674 | buttonTextSize = 5 |
628 | buttonTextXoffset = 0 |
675 | buttonTextXoffset = 0 |
629 | 676 | ||
630 | ch_text: ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñîâ |
677 | ch_text db 'Activate "Hot Angles"',0 ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñà |
631 | .1 db 'Activate "Hot Angles"' |
678 | ;.1 db 'Activate "Hot Angles"',0 |
632 | .e1: |
679 | ;.e1: |
633 | 680 | ||
634 | superText: |
681 | superText: |
635 | .lu db 'Left up angle command: ', 0 |
682 | .lu db 'Left up angle command: ', 0 |
636 | .ld db 'Left down angle command: ', 0 |
683 | .ld db 'Left down angle command: ', 0 |
637 | .ru db 'Right up angle command: ', 0 |
684 | .ru db 'Right up angle command: ', 0 |
638 | .rd db 'Right down angle command:', 0 |
685 | .rd db 'Right down angle command:', 0 |
639 | superTextSize = 25 |
686 | superTextSize = 25 |
640 | 687 | ||
641 | end if |
688 | end if |
642 | 689 | ||
643 | 690 | ||
644 | draw_super_text: |
691 | draw_super_text: |
645 | push eax ebx ecx edx edi esi |
692 | push eax ebx ecx edx edi esi |
646 | mov ebx, Otstup * 65536 + 74 ; draw info text with function 4 (x, y) |
693 | mov ebx, Otstup * 65536 + 74 ; draw info text with function 4 (x, y) |
647 | mov ecx, 0x224466 |
694 | mov ecx, 0x224466 |
648 | mov eax, superText.lu |
695 | mov eax, superText.lu |
649 | mov edx, eax |
696 | mov edx, eax |
650 | mov esi, superTextSize ;22 |
697 | mov esi, superTextSize ;22 |
651 | mcall 4 |
698 | mcall 4 |
652 | 699 | ||
653 | mov ebx, Otstup * 65536 + 109 |
700 | mov ebx, Otstup * 65536 + 109 |
654 | mov edx, superText.ld |
701 | mov edx, superText.ld |
655 | mov esi, superTextSize ;24 |
702 | mov esi, superTextSize ;24 |
656 | mcall 4 |
703 | mcall 4 |
657 | 704 | ||
658 | mov ebx, 240 * 65536 + 74 |
705 | mov ebx, 240 * 65536 + 74 |
659 | mov edx, superText.ru |
706 | mov edx, superText.ru |
660 | mov esi, superTextSize ;23 |
707 | mov esi, superTextSize ;23 |
661 | mcall 4 |
708 | mcall 4 |
662 | 709 | ||
663 | mov ebx, 240 * 65536 + 109 |
710 | mov ebx, 240 * 65536 + 109 |
664 | mov edx, superText.rd |
711 | mov edx, superText.rd |
665 | mov esi, superTextSize ;25 |
712 | mov esi, superTextSize ;25 |
666 | mcall 4 |
713 | mcall 4 |
667 | 714 | ||
668 | pop esi edi edx ecx ebx eax |
715 | pop esi edi edx ecx ebx eax |
669 | ret |
716 | ret |
670 | 717 | ||
671 | 718 | ||
672 | edMaxSize = 510 |
719 | edMaxSize = 510 ;òåïåðü ñ íîâûì êîìïîíåíòîì ìîæíî è 511 óêàçàòü |
- | 720 | edMax = 0 ;max, size, pos |
|
- | 721 | ||
- | 722 | align 4 |
|
- | 723 | editLU edit_box 180,Otstup,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.1, mouse_dd, 0, edMax, edMax ;ed_focus |
|
- | 724 | editLD edit_box 180,Otstup,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.2, mouse_dd, 0, edMax, edMax |
|
- | 725 | editRU edit_box 180,240,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.3, mouse_dd, 0, edMax, edMax |
|
673 | edMax = 0 ;max, size, pos |
726 | editRD edit_box 180,240,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.4, mouse_dd, 0, edMax, edMax |
674 | 727 | ||
675 | editboxes: |
728 | ;editboxes: |
676 | editLU edit_box 180,Otstup,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.1,ed_focus,edMax,edMax |
729 | ;editLU edit_box 180,Otstup,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.1,ed_focus,edMax,edMax |
677 | editLD edit_box 180,Otstup,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.2,0,edMax,edMax |
730 | ;editLD edit_box 180,Otstup,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.2,0,edMax,edMax |
678 | editRU edit_box 180,240,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.3,0,edMax,edMax |
731 | ;editRU edit_box 180,240,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.3,0,edMax,edMax |
679 | editRD edit_box 180,240,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.4,0,edMax,edMax |
732 | ;editRD edit_box 180,240,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.4,0,edMax,edMax |
680 | editboxes_end: |
733 | ;editboxes_end: |
681 | 734 | ||
682 | data_of_code dd 0 |
735 | ;data_of_code dd 0 |
683 | mouse_flag dd 0x0 |
736 | ;mouse_flag dd 0x0 |
684 | 737 | ||
685 | dataBuffer: |
738 | dataBuffer: |
686 | .1: rb 512 |
739 | .1: rb 512 |
687 | .2: rb 512 |
740 | .2: rb 512 |
688 | .3: rb 512 |
741 | .3: rb 512 |
689 | .4: rb 512 |
742 | .4: rb 512 |
690 | .size1: rd 1 |
743 | .size1: rd 1 |
691 | .size2: rd 1 |
744 | .size2: rd 1 |
692 | .size3: rd 1 |
745 | .size3: rd 1 |
693 | .size4: rd 1 |
746 | .size4: rd 1 |
694 | ;255+255+2 |
747 | ;255+255+2 |
695 | ;äâà çàïàñíûõ áàéòà íåîáõîäèìû äëÿ òîãî ÷òî áû íå ïåïåðåïèñàòü ñëåäóþùèåé áàéòû, â êîíöå áóôåðà 0 |
748 | ;äâà çàïàñíûõ áàéòà íåîáõîäèìû äëÿ òîãî ÷òî áû íå ïåïåðåïèñàòü ñëåäóþùèåé áàéòû, â êîíöå áóôåðà 0 |
696 | dataBufferEnd: |
749 | dataBufferEnd: |
- | 750 | ||
697 | 751 | mouse_dd dd ? |
|
698 | sc system_colors |
752 | sc system_colors |
699 | 753 | ||
700 | I_END: |
754 | I_END: |
701 | rb 4096 |
755 | rb 4096 |
702 | align 16 |
756 | align 16 |
703 | STACKTOP: |
757 | STACKTOP: |
704 | 758 | ||
705 | MEM: |
759 | MEM: |