@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:
theonlymirage 2018-09-25 02:31:37 +00:00
parent f1c476beb9
commit 741a437da5
2 changed files with 31 additions and 25 deletions

View File

@ -2,7 +2,7 @@
; Hot Angles ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Compile with FASM
; Version 0.1: Sep 18, 2018
; Version 0.3.3: Sep 25, 2018
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
; All rights reserved.
@ -184,15 +184,17 @@ run_command:
;ïàðàìåòðû
;mov dword[struct.adr],
;ýòîò êîä çàìåíèòü - åñëè àäðåñ 0, òî íè÷åãî íå äåëàòü
;если адрес 0, то ничего не делать
cmp dword[struct70.path_adr], 0
jne .next
mov eax, testData.ld ;
mov dword[struct70.path_adr], eax
;mov eax, testData.ld
;mov dword[struct70.path_adr], eax
jmp @f
.next:
;êîíåö êîäà äëÿ çàìåíû
mcall 70, struct70
@@:
mov byte[state], LOCKd
pop ecx
@ -207,16 +209,17 @@ struct70: ;
.param_adr dd 0 ; óêàçàòåëü íà ASCIIZ-ñòðîêó ñ ïàðàìåòðàìè
.other dd 0, 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
mode: db 0 ;режим работы (для будущего расширения функционала)
testData:
.lu db '/rd/1/SHELL', 0
.ld db '/rd/1/RUN', 0
.ru db "/rd/1/TINYPAD", 0
.rd db '/rd/1/File Managers/EOLITE', 0
;testData:
; .lu db '/rd/1/SHELL', 0
; .ld db '/rd/1/RUN', 0
; .ru db "/rd/1/TINYPAD", 0
; .rd db '/rd/1/File Managers/EOLITE', 0
newData: ;òàáëè÷êà àäðåñîâ êîìàíäíûõ ñòðîê
.lu dd 0
@ -226,13 +229,10 @@ newData: ;
newDataEnd:
;èìÿ êîíôèãóðàöèîííîãî ôàéëà
fileName: db 'SETTINGS/HOTANGLES.CFG', 0 ;'ha.cfg', 0
fileName: db 'SETTINGS/HOTANGLES.CFG', 0
loadConfig:
push eax
push ebx
push ecx
push edx
push eax ebx ecx edx
mcall 68, 27, fileName ;çàãðóæàåì êîíôèãóðàöèîííûé ôàéë â ÎÇÓ
cmp eax, 0
je loadConfig.exit ;åñëè ôàéëà êîíôèãóðàöèè íåò, òî çàâåðøàåì ðàáîòó ïðèëîæåíèÿ
@ -258,7 +258,7 @@ loadConfig:
cmp byte[esi], 13
je loadConfig.propusk
; ñèìâîë îòëè÷åí îò ïåðåíîñà ñòðîêè è âîçâðàòà êàðåòêè - çàïîìèíàåì åãî
; символ отличен от переноса строки и возврата каретки - если это на знак минус, то запоминаем его
mov dword[edi], esi
add edi, 4
@ -276,6 +276,18 @@ loadConfig:
.ura:
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 ;åñëè âñÿ òàáëèöà àäðåñîâ çàïîëíåíà, òî âûõîäèì èç öèêëà
jb loadConfig.block
.fileend:
@ -289,16 +301,10 @@ loadConfig:
mov byte[esi], 0
jmp loadConfig.block
.exit:
pop edx
pop ecx
pop ebx
pop eax
pop edx ecx ebx eax
mcall -1 ;çàêðûòü ýòó ïðîãðàììó
.end:
pop edx
pop ecx
pop ebx
pop eax
pop edx ecx ebx eax
ret

View File

@ -34,7 +34,7 @@ Hot Angles
[+] отсутствие русского языка;
[-] используется маленький шрифт текста;
[-] нет возможности запуска приложения с параметрами;
[-] знак минус не влияет на попытку запуска в конкретном углу;
[+] знак минус не влияет на попытку запуска в конкретном углу;
[+] пустое поле в конфигураторе и пустая строка в конфигурационном файле неверно обрабатываются;
[-] повреждение файла конфигурации после многократного вкл./выкл. опции Hot Angles;
[-] режим явной команды клавишей активации: зажимаем горячую клавишу (например, shift), наводим курсор в угол - происходит реакция;