forked from KolibriOS/kolibrios
@HOTANGLES: Reducing the size and correct processing of the minus sign (in cfg)
git-svn-id: svn://kolibrios.org@7416 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
f1c476beb9
commit
741a437da5
@ -2,7 +2,7 @@
|
|||||||
; Hot Angles ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
; Hot Angles ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
; Compile with FASM
|
; Compile with FASM
|
||||||
; Version 0.1: Sep 18, 2018
|
; Version 0.3.3: Sep 25, 2018
|
||||||
|
|
||||||
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
|
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
|
||||||
; All rights reserved.
|
; All rights reserved.
|
||||||
@ -184,15 +184,17 @@ run_command:
|
|||||||
;ïàðàìåòðû
|
;ïàðàìåòðû
|
||||||
;mov dword[struct.adr],
|
;mov dword[struct.adr],
|
||||||
|
|
||||||
;ýòîò êîä çàìåíèòü - åñëè àäðåñ 0, òî íè÷åãî íå äåëàòü
|
;если адрес 0, то ничего не делать
|
||||||
cmp dword[struct70.path_adr], 0
|
cmp dword[struct70.path_adr], 0
|
||||||
jne .next
|
jne .next
|
||||||
mov eax, testData.ld ;
|
;mov eax, testData.ld
|
||||||
mov dword[struct70.path_adr], eax
|
;mov dword[struct70.path_adr], eax
|
||||||
|
jmp @f
|
||||||
.next:
|
.next:
|
||||||
;êîíåö êîäà äëÿ çàìåíû
|
;êîíåö êîäà äëÿ çàìåíû
|
||||||
|
|
||||||
mcall 70, struct70
|
mcall 70, struct70
|
||||||
|
@@:
|
||||||
mov byte[state], LOCKd
|
mov byte[state], LOCKd
|
||||||
|
|
||||||
pop ecx
|
pop ecx
|
||||||
@ -207,16 +209,17 @@ struct70: ;
|
|||||||
.param_adr dd 0 ; óêàçàòåëü íà ASCIIZ-ñòðîêó ñ ïàðàìåòðàìè
|
.param_adr dd 0 ; óêàçàòåëü íà ASCIIZ-ñòðîêó ñ ïàðàìåòðàìè
|
||||||
.other dd 0, 0
|
.other dd 0, 0
|
||||||
.path db 0 ; "/rd/1/TINYPAD",0 ; ïóòü
|
.path db 0 ; "/rd/1/TINYPAD",0 ; ïóòü
|
||||||
.path_adr dd 0 ;testData.lu ;0
|
.path_adr dd 0 ;testData.lu
|
||||||
|
|
||||||
|
|
||||||
state: db 0 ; 0=unlock, 1=lock
|
state: db 0 ; 0=unlock, 1=lock
|
||||||
|
mode: db 0 ;режим работы (для будущего расширения функционала)
|
||||||
|
|
||||||
testData:
|
;testData:
|
||||||
.lu db '/rd/1/SHELL', 0
|
; .lu db '/rd/1/SHELL', 0
|
||||||
.ld db '/rd/1/RUN', 0
|
; .ld db '/rd/1/RUN', 0
|
||||||
.ru db "/rd/1/TINYPAD", 0
|
; .ru db "/rd/1/TINYPAD", 0
|
||||||
.rd db '/rd/1/File Managers/EOLITE', 0
|
; .rd db '/rd/1/File Managers/EOLITE', 0
|
||||||
|
|
||||||
newData: ;òàáëè÷êà àäðåñîâ êîìàíäíûõ ñòðîê
|
newData: ;òàáëè÷êà àäðåñîâ êîìàíäíûõ ñòðîê
|
||||||
.lu dd 0
|
.lu dd 0
|
||||||
@ -226,13 +229,10 @@ newData: ;
|
|||||||
newDataEnd:
|
newDataEnd:
|
||||||
|
|
||||||
;èìÿ êîíôèãóðàöèîííîãî ôàéëà
|
;èìÿ êîíôèãóðàöèîííîãî ôàéëà
|
||||||
fileName: db 'SETTINGS/HOTANGLES.CFG', 0 ;'ha.cfg', 0
|
fileName: db 'SETTINGS/HOTANGLES.CFG', 0
|
||||||
|
|
||||||
loadConfig:
|
loadConfig:
|
||||||
push eax
|
push eax ebx ecx edx
|
||||||
push ebx
|
|
||||||
push ecx
|
|
||||||
push edx
|
|
||||||
mcall 68, 27, fileName ;çàãðóæàåì êîíôèãóðàöèîííûé ôàéë â ÎÇÓ
|
mcall 68, 27, fileName ;çàãðóæàåì êîíôèãóðàöèîííûé ôàéë â ÎÇÓ
|
||||||
cmp eax, 0
|
cmp eax, 0
|
||||||
je loadConfig.exit ;åñëè ôàéëà êîíôèãóðàöèè íåò, òî çàâåðøàåì ðàáîòó ïðèëîæåíèÿ
|
je loadConfig.exit ;åñëè ôàéëà êîíôèãóðàöèè íåò, òî çàâåðøàåì ðàáîòó ïðèëîæåíèÿ
|
||||||
@ -258,7 +258,7 @@ loadConfig:
|
|||||||
cmp byte[esi], 13
|
cmp byte[esi], 13
|
||||||
je loadConfig.propusk
|
je loadConfig.propusk
|
||||||
|
|
||||||
; ñèìâîë îòëè÷åí îò ïåðåíîñà ñòðîêè è âîçâðàòà êàðåòêè - çàïîìèíàåì åãî
|
; символ отличен от переноса строки и возврата каретки - если это на знак минус, то запоминаем его
|
||||||
mov dword[edi], esi
|
mov dword[edi], esi
|
||||||
add edi, 4
|
add edi, 4
|
||||||
|
|
||||||
@ -276,6 +276,18 @@ loadConfig:
|
|||||||
.ura:
|
.ura:
|
||||||
mov byte[esi], 0
|
mov byte[esi], 0
|
||||||
|
|
||||||
|
;cmp byte[esi-1], '-'
|
||||||
|
;jne @f
|
||||||
|
push esi ;если это был знак минус, то меняем адрес на ноль
|
||||||
|
mov esi, dword[edi-4]
|
||||||
|
cmp byte[esi], '-'
|
||||||
|
jne @f
|
||||||
|
cmp byte[esi+1], 0
|
||||||
|
jne @f
|
||||||
|
mov dword[edi-4], 0
|
||||||
|
@@:
|
||||||
|
pop esi
|
||||||
|
|
||||||
cmp edi, newDataEnd ;newData.end ;åñëè âñÿ òàáëèöà àäðåñîâ çàïîëíåíà, òî âûõîäèì èç öèêëà
|
cmp edi, newDataEnd ;newData.end ;åñëè âñÿ òàáëèöà àäðåñîâ çàïîëíåíà, òî âûõîäèì èç öèêëà
|
||||||
jb loadConfig.block
|
jb loadConfig.block
|
||||||
.fileend:
|
.fileend:
|
||||||
@ -289,16 +301,10 @@ loadConfig:
|
|||||||
mov byte[esi], 0
|
mov byte[esi], 0
|
||||||
jmp loadConfig.block
|
jmp loadConfig.block
|
||||||
.exit:
|
.exit:
|
||||||
pop edx
|
pop edx ecx ebx eax
|
||||||
pop ecx
|
|
||||||
pop ebx
|
|
||||||
pop eax
|
|
||||||
mcall -1 ;çàêðûòü ýòó ïðîãðàììó
|
mcall -1 ;çàêðûòü ýòó ïðîãðàììó
|
||||||
.end:
|
.end:
|
||||||
pop edx
|
pop edx ecx ebx eax
|
||||||
pop ecx
|
|
||||||
pop ebx
|
|
||||||
pop eax
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ Hot Angles
|
|||||||
[+] отсутствие русского языка;
|
[+] отсутствие русского языка;
|
||||||
[-] используется маленький шрифт текста;
|
[-] используется маленький шрифт текста;
|
||||||
[-] нет возможности запуска приложения с параметрами;
|
[-] нет возможности запуска приложения с параметрами;
|
||||||
[-] знак минус не влияет на попытку запуска в конкретном углу;
|
[+] знак минус не влияет на попытку запуска в конкретном углу;
|
||||||
[+] пустое поле в конфигураторе и пустая строка в конфигурационном файле неверно обрабатываются;
|
[+] пустое поле в конфигураторе и пустая строка в конфигурационном файле неверно обрабатываются;
|
||||||
[-] повреждение файла конфигурации после многократного вкл./выкл. опции Hot Angles;
|
[-] повреждение файла конфигурации после многократного вкл./выкл. опции Hot Angles;
|
||||||
[-] режим явной команды клавишей активации: зажимаем горячую клавишу (например, shift), наводим курсор в угол - происходит реакция;
|
[-] режим явной команды клавишей активации: зажимаем горячую клавишу (например, shift), наводим курсор в угол - происходит реакция;
|
||||||
|
Loading…
Reference in New Issue
Block a user