Rev 7408 | Rev 7436 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7408 | Rev 7412 | ||
---|---|---|---|
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.1: Sep 23, 2018 |
5 | ; Version 0.3.2: Sep 24, 2018 |
Line 6... | Line 6... | ||
6 | 6 | ||
7 | ; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage |
7 | ; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage |
8 | ; All rights reserved. |
8 | ; All rights reserved. |
9 | ; Redistribution and use in source and binary forms, with or without modification, |
9 | ; Redistribution and use in source and binary forms, with or without modification, |
Line 148... | Line 148... | ||
148 | 148 | ||
149 | 149 | ||
150 | copyParam: ;êîïèðóåò ïàðàìåòð(êîìàíäó çàïóñêà) â áóôåð (ñì. äàëüøå) |
150 | copyParam: ;êîïèðóåò ïàðàìåòð(êîìàíäó çàïóñêà) â áóôåð (ñì. äàëüøå) |
- | 151 | push esi ebx ecx |
|
- | 152 | mov ecx, dword[ebx] ;÷èòàåì ðàçìåð ñòðîêè |
|
- | 153 | ||
- | 154 | cmp ecx, 0 ;ïóñòà ëè ñòðîêà? |
|
- | 155 | jne copyParam.copy ;åñëè íåò, òî ïåðåõîäèì ê êîïèðîâàíèþ ñîäåðæèìîãî ñòðîêè (ê öèêëó) |
|
- | 156 | ||
- | 157 | mov byte[eax], '-' ;åñëè æå ïóñòî, òî çàìåíÿåì ñèìâîëîì ìèíóñ '-' |
|
- | 158 | inc eax |
|
- | 159 | ;jmp copyParam.copyEnd ;è âûõîäèì |
|
151 | push esi ebx ecx |
160 | ;äàëåå â íà÷àëå öèêëà ïðîèçîéä¸ò ñðàâíåíèå è âûõîä |
152 | mov ecx, dword[ebx] ;÷èòàåì ðàçìåð ñòðîêè |
161 | |
153 | .copy: ;êîïèðóåì ñèìâîëû |
162 | .copy: ;êîïèðóåì ñèìâîëû |
154 | cmp ecx, 0 |
163 | cmp ecx, 0 |
155 | je copyParam.copyEnd |
164 | je copyParam.copyEnd |
Line 181... | Line 190... | ||
181 | mov ecx, 5*2+1 ;1 áàéò íà ñîñòîÿíèå àêòèâíîñòè è 5 ïàð ïåðåíîñîâ ñòðîê (ñèìâîëû 13, 10) |
190 | mov ecx, 5*2+1 ;1 áàéò íà ñîñòîÿíèå àêòèâíîñòè è 5 ïàð ïåðåíîñîâ ñòðîê (ñèìâîëû 13, 10) |
182 | add ecx, dword[editLU.size] ;ïëþñ ðàçìåð êàæäîé ñòðîêè â áàéòàõ |
191 | add ecx, dword[editLU.size] ;ïëþñ ðàçìåð êàæäîé ñòðîêè â áàéòàõ |
183 | add ecx, dword[editLD.size] |
192 | add ecx, dword[editLD.size] |
184 | add ecx, dword[editRU.size] |
193 | add ecx, dword[editRU.size] |
185 | add ecx, dword[editRD.size] ;dataBuffer.size4] |
194 | add ecx, dword[editRD.size] ;dataBuffer.size4] |
- | 195 | ||
- | 196 | ;åñëè çàäàíû ïóñòûå ñòðîêè, òî ìû àâòîìàòè÷åñêè äîáàâëÿåì çíàê ìèíóñ, çíà÷èò ðàçìåð +1 áàéò |
|
- | 197 | cmp dword[editLU.size], 0 |
|
- | 198 | jne @f |
|
- | 199 | inc ecx |
|
- | 200 | @@: |
|
- | 201 | cmp dword[editLD.size], 0 |
|
- | 202 | jne @f |
|
- | 203 | inc ecx |
|
- | 204 | @@: |
|
- | 205 | cmp dword[editRU.size], 0 |
|
- | 206 | jne @f |
|
- | 207 | inc ecx |
|
- | 208 | @@: |
|
- | 209 | cmp dword[editRD.size], 0 |
|
- | 210 | jne @f |
|
- | 211 | inc ecx |
|
- | 212 | @@: |
|
- | 213 | ||
186 | ;òåïåðü ðàçìåð ôàéëà êîíôèãóðàöèè â ecx |
214 | ;òåïåðü ðàçìåð ôàéëà êîíôèãóðàöèè â ecx |
187 | mov dword[createFile.size], ecx ;ïîëîæèì ðàçìåð áàéò â ñòðóêòóðó ñîçäàíèÿ/ïåðåçàïèñè ôàéëà |
215 | mov dword[createFile.size], ecx ;ïîëîæèì ðàçìåð áàéò â ñòðóêòóðó ñîçäàíèÿ/ïåðåçàïèñè ôàéëà |
188 | mcall 68, 12, ecx ;âûäåëÿåì áëîê ïàìÿòè ïîä áóôåð ñîäåðæèìîãî |
216 | mcall 68, 12, ecx ;âûäåëÿåì áëîê ïàìÿòè ïîä áóôåð ñîäåðæèìîãî |
189 | mov dword[createFile.data_adr], eax ;ñîõðàíÿåì àäðåñ áóôåðà â ñòðóêòóðó |
217 | mov dword[createFile.data_adr], eax ;ñîõðàíÿåì àäðåñ áóôåðà â ñòðóêòóðó |
Line 228... | Line 256... | ||
228 | cmp eax, 0 |
256 | cmp eax, 0 |
229 | je .end |
257 | je .end |
230 | ;èíà÷å çäåñü íóæíî âûâåñòè îêíî ñ îøèáêîé !!! |
258 | ;èíà÷å çäåñü íóæíî âûâåñòè îêíî ñ îøèáêîé !!! |
231 | .end: |
259 | .end: |
232 | mcall 68, 13, dword[createFile.data_adr] ;îñâîáîæäàåì ïàìÿòü ïîä áóôåð |
260 | mcall 68, 13, dword[createFile.data_adr] ;îñâîáîæäàåì ïàìÿòü ïîä áóôåð |
- | 261 | call finishHotAnglesApp ;çàâåðøàåì ðàáîòó âñåõ êîïèé ñåðâèñà @HOTANGLES |
|
- | 262 | call loadConfig ;ïåðåçàãðóæàåì ôàéë êîíôèãà |
|
- | 263 | call draw_window ;ïåðåðèñîâûâàåì îêíî |
|
233 | call restartHotAnglesApp ;ïåðåçàïóñêàåì @HOTANGLES |
264 | call startHotAnglesApp ;ïåðåçàïóñêàåì @HOTANGLES |
234 | pop ecx ebx eax |
265 | pop ecx ebx eax |
235 | ret |
266 | ret |
Line 258... | Line 289... | ||
258 | @@: |
289 | @@: |
259 | pop ebx ecx esi edi |
290 | pop ebx ecx esi edi |
260 | ret |
291 | ret |
Line 261... | Line 292... | ||
261 | 292 | ||
262 | 293 | ||
263 | restartHotAnglesApp: |
294 | finishHotAnglesApp: |
264 | ;íàõîäèì âñå êîïèè ïðèëîæåíèÿ ïî èìåíè è çàâåðøàåì èõ |
295 | ;íàõîäèì âñå êîïèè ïðèëîæåíèÿ ïî èìåíè è çàâåðøàåì èõ |
265 | push eax ebx ecx esi edi |
296 | push eax ebx ecx esi edi |
266 | ;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíÿþòñÿ: |
297 | ;óêàçàòåëè, êîòîðûå íèêîãäà íå ìåíÿþòñÿ: |
Line 273... | Line 304... | ||
273 | mcall 9, buf, ecx ;ïîëó÷àåì äàííûå î÷åðåäíîãî ñëîòà |
304 | mcall 9, buf, ecx ;ïîëó÷àåì äàííûå î÷åðåäíîãî ñëîòà |
274 | mov dword[slotMax], eax |
305 | mov dword[slotMax], eax |
Line 275... | Line 306... | ||
275 | 306 | ||
276 | call compareBytes2 ;ñðàâíèâàåì èìÿ |
307 | call compareBytes2 ;ñðàâíèâàåì èìÿ |
277 | cmp eax, 0 |
308 | cmp eax, 0 |
Line 278... | Line 309... | ||
278 | jne restartHotAnglesApp.next ;åñëè íå ñîâïàëî, òî ïåðåõîäèì íà ñëåäóþùèé ñëîò |
309 | jne finishHotAnglesApp.next ;åñëè íå ñîâïàëî, òî ïåðåõîäèì íà ñëåäóþùèé ñëîò |
279 | 310 | ||
280 | ;push eax ebx ecx |
311 | ;push eax ebx ecx |
Line 286... | Line 317... | ||
286 | cmp ecx, dword[slotMax] |
317 | cmp ecx, dword[slotMax] |
287 | ja @f |
318 | ja @f |
288 | jmp @b |
319 | jmp @b |
289 | @@: |
320 | @@: |
290 | pop edi esi ecx ebx eax |
321 | pop edi esi ecx ebx eax |
- | 322 | ret |
|
Line -... | Line 323... | ||
- | 323 | ||
291 | 324 | startHotAnglesApp: |
|
292 | ;çàïóñêàåì ïðèëîæåíèå çàíîâî |
325 | ;çàïóñêàåì ïðèëîæåíèå çàíîâî |
293 | push eax ebx |
326 | push eax ebx |
294 | mcall 70, startAppData |
327 | mcall 70, startAppData |
295 | cmp eax, 0 |
328 | cmp eax, 0 |