Subversion Repositories Kolibri OS

Rev

Rev 7408 | Rev 7436 | Go to most recent revision | Show entire file | Regard 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