FASM: fix whole system hung if source was "dd %t" (by Prohor Nikiforov)

KFM: buildin buttons.bmp
CMM: update libs

git-svn-id: svn://kolibrios.org@7863 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2020-05-04 23:50:41 +00:00
parent 6aac7a3d5a
commit dad5229ccd
16 changed files with 191 additions and 106 deletions

View File

@ -30,7 +30,6 @@ img_files = {
{"DEVELOP/T_EDIT.INI", PROGS .. "/other/t_edit/t_edit.ini"}, {"DEVELOP/T_EDIT.INI", PROGS .. "/other/t_edit/t_edit.ini"},
{"File Managers/ICONS.INI", "common/File Managers/icons.ini"}, {"File Managers/ICONS.INI", "common/File Managers/icons.ini"},
{"File Managers/KFM.INI", "common/File Managers/kfm.ini"}, {"File Managers/KFM.INI", "common/File Managers/kfm.ini"},
{"File Managers/BUTTONS.BMP", PROGS .. "/fs/kfm/trunk/buttons.bmp"},
{"File Managers/ICONS.BMP", PROGS .. "/fs/kfm/trunk/icons.bmp"}, {"File Managers/ICONS.BMP", PROGS .. "/fs/kfm/trunk/icons.bmp"},
{"File Managers/FNAV/ABOUT.TXT", "common/File Managers/fNav/About.txt"}, {"File Managers/FNAV/ABOUT.TXT", "common/File Managers/fNav/About.txt"},
{"File Managers/FNAV/FNAV", "common/File Managers/fNav/fNav.kex"}, {"File Managers/FNAV/FNAV", "common/File Managers/fNav/fNav.kex"},

View File

@ -11,3 +11,4 @@ tup.rule("console.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK
tup.rule("info.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "info.com") tup.rule("info.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "info.com")
tup.rule("pigex.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "pigex.com") tup.rule("pigex.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "pigex.com")
tup.rule("netcheck.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "netcheck.com") tup.rule("netcheck.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "netcheck.com")
tup.rule("math.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "math.com")

View File

@ -322,6 +322,7 @@
{ {
dword n; dword n;
dword inc(dword _addition); dword inc(dword _addition);
dword set(dword _new_val);
}; };
:dword incn::inc(dword _addition) :dword incn::inc(dword _addition)
@ -330,6 +331,12 @@
return n; return n;
} }
:dword incn::set(dword _new_val)
{
n =_new_val;
return n;
}
//block with hover //block with hover
struct block { struct block {
int x,y,w,h; int x,y,w,h;

View File

@ -179,7 +179,6 @@ struct proc_info
:void GetProcessInfo(dword _process_struct_pointer, _process_id) :void GetProcessInfo(dword _process_struct_pointer, _process_id)
{ {
skin_height = GetSkinHeight();
EAX = 9; EAX = 9;
EBX = _process_struct_pointer; EBX = _process_struct_pointer;
ECX = _process_id; ECX = _process_id;

View File

@ -26,7 +26,9 @@ struct llist
int KeyDown(); int KeyDown();
int KeyUp(); int KeyUp();
int KeyHome(); int KeyHome();
int KeyHomeHor();
int KeyEnd(); int KeyEnd();
int KeyEndHor();
int KeyPgDown(); int KeyPgDown();
int KeyPgUp(); int KeyPgUp();
int KeyLeft(); int KeyLeft();
@ -124,6 +126,13 @@ struct llist
:int llist::ProcessKey(dword key) :int llist::ProcessKey(dword key)
{ {
if (horisontal_selelection) switch(key)
{
case SCAN_CODE_LEFT: return KeyLeft();
case SCAN_CODE_RIGHT: return KeyRight();
case SCAN_CODE_HOME: return KeyHomeHor();
case SCAN_CODE_END: return KeyEndHor();
}
switch(key) switch(key)
{ {
case SCAN_CODE_DOWN: return KeyDown(); case SCAN_CODE_DOWN: return KeyDown();
@ -133,11 +142,6 @@ struct llist
case SCAN_CODE_PGUP: return KeyPgUp(); case SCAN_CODE_PGUP: return KeyPgUp();
case SCAN_CODE_PGDN: return KeyPgDown(); case SCAN_CODE_PGDN: return KeyPgDown();
} }
if (horisontal_selelection) switch(key)
{
case SCAN_CODE_LEFT: return KeyLeft();
case SCAN_CODE_RIGHT: return KeyRight();
}
return 0; return 0;
} }
@ -164,8 +168,8 @@ struct llist
if (cur_y < first) || (cur_y >= first + visible) if (cur_y < first) || (cur_y >= first + visible)
{ {
first = cur_y; first = cur_y;
CheckDoesValuesOkey();
} }
CheckDoesValuesOkey();
return 1; return 1;
} }
@ -196,6 +200,21 @@ struct llist
return 1; return 1;
} }
:int llist::KeyHomeHor()
{
if (cur_x==0) return 0;
cur_x = 0;
return 1;
}
:int llist::KeyEndHor()
{
if (cur_x==column_max) return 0;
cur_x = column_max;
CheckDoesValuesOkey();
return 1;
}
:int llist::KeyHome() :int llist::KeyHome()
{ {
if (cur_y==0) && (first==0) return 0; if (cur_y==0) && (first==0) return 0;
@ -237,6 +256,7 @@ struct llist
if (visible + first > count) first = count - visible; if (visible + first > count) first = count - visible;
if (first < 0) first = 0; if (first < 0) first = 0;
if (cur_y >= count) cur_y = count - 1; if (cur_y >= count) cur_y = count - 1;
if (cur_x >= column_max) cur_x = column_max;
if (cur_y < 0) cur_y = 0; if (cur_y < 0) cur_y = 0;
if (cur_x < 0) cur_x = 0; if (cur_x < 0) cur_x = 0;
} }

View File

@ -51,7 +51,7 @@ void _http::receive()
} }
bool _http::handle_redirect() :bool _http::handle_redirect()
{ {
dword redirect; dword redirect;
http_find_header_field stdcall (transfer, "location\0"); http_find_header_field stdcall (transfer, "location\0");
@ -152,7 +152,7 @@ bool DOWNLOADER::MonitorProgress()
=====================================*/ =====================================*/
int check_is_the_adress_local(dword _in) :int check_is_the_adress_local(dword _in)
{ {
if (ESBYTE[_in]!='/') return false; if (ESBYTE[_in]!='/') return false;
_in++; _in++;
@ -168,7 +168,7 @@ int check_is_the_adress_local(dword _in)
return false; return false;
} }
int check_is_the_url_absolute(dword _in) :int check_is_the_url_absolute(dword _in)
{ {
if(!strncmp(_in,"ftp:",4)) return true; if(!strncmp(_in,"ftp:",4)) return true;
if(!strncmp(_in,"http:",5)) return true; if(!strncmp(_in,"http:",5)) return true;
@ -181,7 +181,7 @@ int check_is_the_url_absolute(dword _in)
return false; return false;
} }
void get_absolute_url(dword _rez, _base, _new) :void get_absolute_url(dword _rez, _base, _new)
{ {
int i; int i;
//case: ./valera.html //case: ./valera.html

View File

@ -927,11 +927,11 @@ inline void MEMSETD(EDI,ECX,EAX)
} }
:replace_char(dword in_str, char from_char, to_char, int length) { :replace_char(dword in_str, char from_char, to_char, int length) {
int i; dword max = in_str + length;
for (i=0; i<length; i++) { while (in_str < max) {
if (ESBYTE[in_str+i] == from_char) ESBYTE[in_str+i] = to_char; if (ESBYTE[in_str] == from_char) ESBYTE[in_str] = to_char;
in_str++;
} }
ESBYTE[in_str+length]=0;
} }
#endif #endif

View File

@ -452,7 +452,7 @@ CUI_START:
call init_memory call init_memory
call make_timestamp call get_tickcount
mov [start_time],eax mov [start_time],eax
call preprocessor call preprocessor
@ -470,7 +470,7 @@ CUI_START:
call display_number call display_number
mov esi,_passes_suffix mov esi,_passes_suffix
call display_string call display_string
call make_timestamp call get_tickcount
sub eax,[start_time] sub eax,[start_time]
xor edx,edx xor edx,edx
mov ebx,100 mov ebx,100

View File

@ -39,13 +39,131 @@ exit_program:
or eax,-1 or eax,-1
mcall mcall
make_timestamp: get_tickcount:
push ebx push ebx
mcall SF_SYSTEM_GET,SSF_TIME_COUNT mcall SF_SYSTEM_GET,SSF_TIME_COUNT
imul eax,10 imul eax,10
pop ebx pop ebx
retn retn
macro BCDtoHEX al {
aam 16
aad 10 }
make_timestamp:
mcall SF_GET_SYS_DATE ; $00SSMMHH (BCD)
mov edx,eax
shr eax,16
BCDtoHEX al
push eax ; SECONDS
mov al,dh
BCDtoHEX al
push eax ; MINUTES
mov al,dl
BCDtoHEX al
push eax ; HOURS
mcall SF_GET_SYS_DATE ; $00DDMMYY (BCD)
mov edx,eax
shr eax,16
BCDtoHEX al
push eax ; DAY
mov al,dl
BCDtoHEX al
add eax,2000
push eax ; YEAR
mov ecx,eax
mov al,dh
BCDtoHEX al
push eax ; MONTH
; ecx: YEAR
; stack: MONTH, YEAR, DAY, HOURS, MINUTES, SECONDS, retaddr
mov eax,ecx
sub eax,1970
mov ebx,365
mul ebx
mov ebp,eax
mov eax,ecx
sub eax,1969
shr eax,2
add ebp,eax
mov eax,ecx
xor edx,edx
sub eax,1901
mov ebx,100
div ebx
sub ebp,eax
mov eax,ecx
xor edx,edx
sub eax,1601
mov ebx,400
div ebx
add ebp,eax
pop ecx
; ecx: MONTH
; stack: YEAR, DAY, HOURS, MINUTES, SECONDS, retaddr
mov eax,ecx
dec eax
mov ebx,30
mul ebx
add ebp,eax
cmp ecx,8
jbe months_correction
mov eax,ecx
sub eax,7
shr eax,1
add ebp,eax
mov ecx,8
months_correction:
mov eax,ecx
shr eax,1
add ebp,eax
cmp ecx,2
pop ecx
; ecx: YEAR
; stack: DAY, HOURS, MINUTES, SECONDS, retaddr
jbe day_correction_ok
sub ebp,2
test ecx,11b
jnz day_correction_ok
xor edx,edx
mov eax,ecx
mov ebx,100
div ebx
or edx,edx
jnz day_correction
mov eax,ecx
mov ebx,400
div ebx
or edx,edx
jnz day_correction_ok
day_correction:
inc ebp
day_correction_ok:
pop eax
; eax: DAY
; stack: HOURS, MINUTES, SECONDS, retaddr
dec eax
add eax,ebp
mov ebx,24
mul ebx
pop ecx
; ecx: HOURS
; stack: MINUTES, SECONDS, retaddr
add eax,ecx
mov ebx,60
mul ebx
pop ecx
; ecx: MINUTES
; stack: SECONDS, retaddr
add eax,ecx
mov ebx,60
mul ebx
pop ecx
; ecx: SECONDS
; stack: retaddr
add eax,ecx
retn
symbol_dump: symbol_dump:
push edi push edi

View File

@ -272,3 +272,5 @@ sysopen:
dd 7,0,start_parameter,0,0 dd 7,0,start_parameter,0,0
db '/sys/@open',0 db '/sys/@open',0
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
buttons_file_data file 'images/buttons.raw'
;icons_file_data file 'icons.bmp'

View File

@ -8,72 +8,32 @@ draw_buttons_panel:
sub ebx,9 sub ebx,9
add ebx,5 shl 16 add ebx,5 shl 16
mcall 13,,,0xffffff mcall 13,,,0xffffff
mov edx,15 shl 16+20 mov edx,15 shl 16+20
add edx,[skin_high] add edx,[skin_high]
pusha mcall 7,buttons_file_data,<198,16>
call .calculate_button
mcall ,,,150 mov ecx, 20
popa add ecx, [skin_high]
mcall 7,[buttons_img_start],<16,16> shl ecx, 16
add edx,26 shl 16 add ecx, 16
add ebx,16*16*3 mcall 8,<15,16>,,150+0x40000000
pusha
call .calculate_button _new_but:
mcall ,,,151 add ebx,26 shl 16
popa inc edx
mcall
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mcall ,,,152
popa
mcall
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mcall ,,,153
popa
mcall
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mcall ,,,154
popa
mcall
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mcall ,,,155
popa
mcall
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mcall ,,,156
popa
mcall
add edx,26 shl 16
add ebx,16*16*3
pusha
call .calculate_button
mcall ,,,157
popa
mcall mcall
cmp edx, 157+0x40000000
jl _new_but
ret ret
;-------------------------------------- ;--------------------------------------
.calculate_button: .calculate_button:
mov esi,0xffffff
mov ebx,edx mov ebx,edx
mov bx,15 mov bx,15
mov ecx,edx mov ecx,edx
shl ecx,16 shl ecx,16
mov cx,bx mov cx,bx
mov eax,8
ret ret
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
draw_left_sort_button: draw_left_sort_button:

View File

@ -7,9 +7,6 @@ read_folder_1_error:
initiation_error: initiation_error:
mov [error_pointer],ini_file_name mov [error_pointer],ini_file_name
jmp error_window jmp error_window
buttons_error:
mov [error_pointer],buttons_file_name
jmp error_window
icon_error: icon_error:
mov [error_pointer],icons_file_name mov [error_pointer],icons_file_name
error_window: error_window:

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

View File

@ -69,7 +69,6 @@ START:
mov [read_folder_name],ax mov [read_folder_name],ax
mov [read_folder_1_name],ax mov [read_folder_1_name],ax
call load_icon_and_convert_to_img call load_icon_and_convert_to_img
call load_buttons_and_convert_to_img
call load_initiation_file call load_initiation_file
call add_memory_for_folders call add_memory_for_folders
call device_detect_f70 call device_detect_f70
@ -258,20 +257,6 @@ load_icon_and_convert_to_img:
call sub_application_memory call sub_application_memory
ret ret
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
load_buttons_and_convert_to_img:
mov ebx,buttons_file_name
call prepare_load_data
jnz buttons_error
mov eax,[appl_memory]
mov [buttons_img_start],eax
call prepare_load_data_2
add eax,[buttons_img_start]
call prepare_load_data_1
jnz buttons_error
call convert_bmp_to_img
call sub_application_memory
ret
;---------------------------------------------------------------------
load_initiation_file: load_initiation_file:
mov ebx,ini_file_name mov ebx,ini_file_name
call prepare_load_data call prepare_load_data

View File

@ -85,9 +85,6 @@ ini_file_name:
icons_file_name: icons_file_name:
db 'icons.bmp',0 db 'icons.bmp',0
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
buttons_file_name:
db 'buttons.bmp',0
;---------------------------------------------------------------------
error_type: error_type:
db 'File system error',0 db 'File system error',0
;--------------------------------------------------------------------- ;---------------------------------------------------------------------