diff --git a/programs/network/ftpc/ftpc.asm b/programs/network/ftpc/ftpc.asm index a77286934..a45aa3eb3 100644 --- a/programs/network/ftpc/ftpc.asm +++ b/programs/network/ftpc/ftpc.asm @@ -83,12 +83,12 @@ start: ;//////////////////////////////////////////////////////////////////////// ;< none ;; ;;================================================================================================;; ; initialize heap for using dynamic blocks - mcall 68, 11 + mcall SF_SYS_MISC, SSF_HEAP_INIT test eax, eax je exit2 ; disable all events except network event - mcall 40, EV_STACK + mcall SF_SET_EVENTS_MASK, EV_STACK ; load libraries stdcall dll.Load, @IMPORT test eax, eax @@ -125,16 +125,16 @@ start: ;//////////////////////////////////////////////////////////////////////// mov [acti_port_stop], ax invoke ini.get_str, path, str_general, str_dir, buf_buffer1, BUFFERSIZE, 0 - mcall 30, 1, buf_buffer1 ; set working directory + mcall SF_CURRENT_FOLDER, SSF_SET_CF, buf_buffer1 ; set working directory ; initialize log file invoke ini.get_str, path, str_general, str_logfile, log_file, 512, 0 - mov [filestruct2.subfn], 2 + mov [filestruct2.subfn], SSF_CREATE_FILE mov [filestruct2.offset], 0 mov [filestruct2.size], 0 mov [filestruct2.ptr], 0 mov [filestruct2.name], log_file - mcall 70, filestruct2 + mcall SF_FILE, filestruct2 ; Usage: ftpc [-cli] [ftp://username:password@server:port/path] @@ -355,7 +355,7 @@ wait_for_servercommand: ;/////////////////////////////////////////////////////// ; receive socket data with timeout .receive: - mcall 26, 9 + mcall SF_SYSTEM_GET, SSF_TIME_COUNT add eax, TIMEOUT*100 mov [timeout], eax .again: @@ -365,11 +365,11 @@ wait_for_servercommand: ;/////////////////////////////////////////////////////// je .closed cmp ebx, EWOULDBLOCK jne .sock_err - mcall 26, 9 + mcall SF_SYSTEM_GET, SSF_TIME_COUNT mov ebx, [timeout] sub ebx, eax jle .timeout - mcall 23 ; Wait for event with timeout + mcall SF_WAIT_EVENT_TIMEOUT ; Wait for event with timeout jmp .again .sock_err: @@ -524,7 +524,7 @@ transfer_queued: ; Error occured, we reached the end of the buffer before [queued] reached 0 mov [queued], 0 - mcall 68, 13, [ptr_fname] ; free buffer + mcall SF_SYS_MISC, SSF_MEM_FREE, [ptr_fname] ; free buffer test eax, eax jz error_heap jmp wait_for_usercommand @@ -535,7 +535,7 @@ transfer_queued: dec [queued] jnz cmd_retr - mcall 68, 13, [ptr_fname] ; free buffer + mcall SF_SYS_MISC, SSF_MEM_FREE, [ptr_fname] ; free buffer test eax, eax jz error_heap jmp cmd_retr @@ -655,12 +655,12 @@ write_to_file: ;//////////////////////////////////////////////////////////////// mov eax, 0 ret @@: - mov [filestruct2.subfn], 3 + mov [filestruct2.subfn], SSF_WRITE_FILE m2m [filestruct2.offset], [logfile_offset] mov [filestruct2.size], ecx mov [filestruct2.ptr], eax mov [filestruct2.name], log_file - mcall 70, filestruct2 + mcall SF_FILE, filestruct2 test eax, eax jz @f mov [logfile_offset], -1 ; disable logging @@ -754,7 +754,7 @@ wait_for_keypress: exit: mcall close, [controlsocket] exit2: - mcall -1 + mcall SF_TERMINATE_PROCESS diff --git a/programs/network/ftpc/gui.inc b/programs/network/ftpc/gui.inc index c8b452156..7e550e977 100755 --- a/programs/network/ftpc/gui.inc +++ b/programs/network/ftpc/gui.inc @@ -45,8 +45,8 @@ gui: ;////////////////////////////////////////////////////////////////////////// test eax, eax jnz .exit - mcall 48, 3, sc, sizeof.system_colors - mcall 40, 0xC0000027 ; set event mask + mcall SF_STYLE_SETTINGS, SSF_GET_COLORS, sc, sizeof.system_colors + mcall SF_SET_EVENTS_MASK, 0xC0000027 ; set event mask ret .server_addr: @@ -84,7 +84,7 @@ gui: ;////////////////////////////////////////////////////////////////////////// mov [filestruct.subfn], 0 mov [filestruct.offset], 54 mov [filestruct.size], ecx - mcall 70, filestruct + mcall SF_FILE, filestruct cmp ebx, 0 jl @f m2m dword[tree1.data_img_sys], dword[icon_tl_sys] @@ -98,7 +98,7 @@ gui: ;////////////////////////////////////////////////////////////////////////// ;mov [filestruct.subfn], 0 ;mov [filestruct.offset], 54 mov [filestruct.size], ecx - mcall 70, filestruct + mcall SF_FILE, filestruct cmp ebx, 0 jl @f m2m dword[tree1.data_img], dword[icon_tl_nod] @@ -121,7 +121,7 @@ gui: ;////////////////////////////////////////////////////////////////////////// align 4 .still: - mcall 10 + mcall SF_WAIT_EVENT dec eax jz .redraw @@ -146,65 +146,65 @@ gui: ;////////////////////////////////////////////////////////////////////////// align 4 .draw: - mcall 12, 1 + mcall SF_REDRAW, SSF_BEGIN_DRAW ; main window - mcall 0, <35,830>, <20,555>, 0x34000000+SYS_COL, 0x805080DD, str_title + mcall SF_CREATE_WINDOW, <35,830>, <20,555>, 0x34000000+SYS_COL, 0x805080DD, str_title ;------------------------- ; textedit components ;------------------------- - mcall 9, procinfo, -1 + mcall SF_THREAD_INFO, procinfo, -1 mov edi, tedit0 call EvSize movzx ebx,word[procinfo.client_box.width] inc bx - mcall 13, , ted_wnd_t + mcall SF_DRAW_RECT, , ted_wnd_t stdcall [ted_draw], tedit0 ; draw "disconnect" button - mcall 8, <50,95>, <25,25>, 3, BT_COL + mcall SF_DEFINE_BUTTON, <50,95>, <25,25>, 3, BT_COL ; string "disconnect" - mcall 4, <50+5,25+5>, 0xb0000000+STR_COL, str_disconnect + mcall SF_DRAW_TEXT, <50+5,25+5>, 0xb0000000+STR_COL, str_disconnect ; draw "Copy" button - mcall 8, <50,40>, <326,25>, 4, BT_COL + mcall SF_DEFINE_BUTTON, <50,40>, <326,25>, 4, BT_COL ; string "copy" - mcall 4, <50+5,326+5>, 0xb0000000+STR_COL, str_copy + mcall SF_DRAW_TEXT, <50+5,326+5>, 0xb0000000+STR_COL, str_copy ; draw "Search" button - mcall 8, , <20,25>, 5, BT_COL + mcall SF_DEFINE_BUTTON, , <20,25>, 5, BT_COL ; string "Search" - mcall 4, , 0xb0000000+STR_COL, str_search + mcall SF_DRAW_TEXT, , 0xb0000000+STR_COL, str_search ; draw "LIST" button - mcall 8, , <50,25>, 12, BT_COL + mcall SF_DEFINE_BUTTON, , <50,25>, 12, BT_COL ; string "LIST" - mcall 4, , 0xb0000000+STR_COL, str_list + mcall SF_DRAW_TEXT, , 0xb0000000+STR_COL, str_list ; draw "DELE" button - mcall 8, , <50,25>, 7, BT_COL + mcall SF_DEFINE_BUTTON, , <50,25>, 7, BT_COL ; string "DELE" - mcall 4, , 0xb0000000+STR_COL, str_dele + mcall SF_DRAW_TEXT, , 0xb0000000+STR_COL, str_dele ; draw "RDIR" button - mcall 8, , <50,25>, 8, BT_COL + mcall SF_DEFINE_BUTTON, , <50,25>, 8, BT_COL ; string "RDIR" - mcall 4, , 0xb0000000+STR_COL, str_rdir + mcall SF_DRAW_TEXT, , 0xb0000000+STR_COL, str_rdir ; draw "RMD" button - mcall 8, , <50,25>, 9, BT_COL + mcall SF_DEFINE_BUTTON, , <50,25>, 9, BT_COL ; string "RMD" - mcall 4, , 0xb0000000+STR_COL, str_rmd + mcall SF_DRAW_TEXT, , 0xb0000000+STR_COL, str_rmd ; draw "mkd" button - mcall 8, , <80,20>, 6, BT_COL + mcall SF_DEFINE_BUTTON, , <80,20>, 6, BT_COL ; string "mkd" - mcall 4, , 0xb0000000+STR_COL, str_mkd + mcall SF_DRAW_TEXT, , 0xb0000000+STR_COL, str_mkd ; draw "cancel" button - ;mcall 8, <555,55>, <308,25>, 10, BT_COL + ;mcall SF_DEFINE_BUTTON, <555,55>, <308,25>, 10, BT_COL ; string "Cancel" - ;mcall 4, <555+5,308+5>, 0xb0000000+STR_COL, str_abort + ;mcall SF_DRAW_TEXT, <555+5,308+5>, 0xb0000000+STR_COL, str_abort ; draw "change volume" button - mcall 8, , <100-20,22>, 11, BT_COL + mcall SF_DEFINE_BUTTON, , <100-20,22>, 11, BT_COL ; string "Change" - mcall 4, , 0xb0000000+STR_COL, str_change + mcall SF_DRAW_TEXT, , 0xb0000000+STR_COL, str_change ;-------------------------- ; tree list components @@ -222,12 +222,12 @@ gui: ;////////////////////////////////////////////////////////////////////////// stdcall [edit_box_draw], edit_volume stdcall [edit_box_draw], edit_search - mcall 12,2 + mcall SF_REDRAW, SSF_END_DRAW ret align 16 .mouse: - mcall 37, 1 + mcall SF_MOUSE_GET, SSF_WINDOW_POSITION cmp word[tedit0.wnd.top], ax jg .no_edit @@ -235,7 +235,7 @@ gui: ;////////////////////////////////////////////////////////////////////////// cmp word[tedit0.wnd.left], ax jg .no_edit - mcall 37, 3 + mcall SF_MOUSE_GET, SSF_BUTTON_EXT bt eax, 24 jnc @f @@ -256,7 +256,7 @@ gui: ;////////////////////////////////////////////////////////////////////////// align 16 .key: - mcall 2 + mcall SF_GET_KEY stdcall [tl_key], tree1 stdcall [tl_key], tree2 stdcall [edit_box_key], edit_mkd @@ -266,7 +266,7 @@ gui: ;////////////////////////////////////////////////////////////////////////// align 16 .button: - mcall 17 + mcall SF_GET_BUTTON cmp ah, 3 jne @f @@ -424,6 +424,8 @@ gui: ;////////////////////////////////////////////////////////////////////////// mov byte[edi], 0 ; add node to tree list + and dword[tree2.style], not 8 + stdcall [tl_cur_next], tree2 cmp word[node_entry2], 'fi' jne @f stdcall [tl_node_add], tree2, 0, node_entry2 @@ -470,6 +472,8 @@ gui: ;////////////////////////////////////////////////////////////////////////// jne @b .done_parsing: + stdcall [tl_cur_beg], tree2 + or dword[tree2.style], 8 call .draw ; to update tree list immediately in case of "auto_list" pop eax pop edx @@ -494,7 +498,7 @@ gui: ;////////////////////////////////////////////////////////////////////////// ;;================================================================================================;; ; detect abort - mcall 17 + mcall SF_GET_BUTTON cmp ah, 10 je cmd_abor @@ -641,7 +645,7 @@ populate_local_tree_list: ;///////////////////////////////////////////////////// jne @f ; removes last file name from filestruct.name - mcall 30, 2, filestruct.name,1024 ; get absolute path for cwd + mcall SF_CURRENT_FOLDER, SSF_GET_CF, filestruct.name,1024 ; get absolute path for cwd lea edi, [filestruct.name+eax] ; edi = pointer to the tail of file name mov al, '/' mov ecx, -1 @@ -652,15 +656,15 @@ populate_local_tree_list: ;///////////////////////////////////////////////////// mov ecx, filestruct.name @@: - mcall 30, 1, ; set cwd - mcall 30, 2, filestruct.name, 1024 ; get absolute path for cwd + mcall SF_CURRENT_FOLDER, SSF_SET_CF ; set cwd + mcall SF_CURRENT_FOLDER, SSF_GET_CF, filestruct.name, 1024 ; get absolute path for cwd ; clear all nodes in tree list stdcall [tl_info_clear], tree1 mov [filestruct.offset], 0 ; read 32 blocks .outer: - mcall 70, filestruct + mcall SF_FILE, filestruct ;int3 test eax, eax jz @f diff --git a/programs/network/ftpc/login_gui.inc b/programs/network/ftpc/login_gui.inc index 71c27df6e..4ad19ab70 100755 --- a/programs/network/ftpc/login_gui.inc +++ b/programs/network/ftpc/login_gui.inc @@ -27,7 +27,7 @@ login_gui: ;//////////////////////////////////////////////////////////////////// .get_username: ; in case of error when either login_gui.server_addr or ; login_gui.get_username is called, should resize window - mcall 67, WIN_X, WIN_Y, WIN_W, WIN_H ; resize to login gui window size + mcall SF_CHANGE_WINDOW, WIN_X, WIN_Y, WIN_W, WIN_H ; resize to login gui window size .redraw: call .draw @@ -44,22 +44,22 @@ login_gui: ;//////////////////////////////////////////////////////////////////// align 4 .draw: - mcall 12, 1 - mcall 48, 3, sc, 40 + mcall SF_REDRAW, SSF_BEGIN_DRAW + mcall SF_STYLE_SETTINGS, SSF_GET_COLORS, sc, 40 edit_boxes_set_sys_color edit_usr,editboxes_end,sc mov edx, 0x34000000 or edx, [sc.work] - mcall 0, , , , 0x805080DD, str_title + mcall SF_CREATE_WINDOW, , , , 0x805080DD, str_title call .draw_editboxes ; draw "connect" button - mcall 8, <162,65>, <150,25>, 2, [sc.work_button] + mcall SF_DEFINE_BUTTON, <162,65>, <150,25>, 2, [sc.work_button] ; draw strings mov ecx, 0x90000000 or ecx, [sc.work_text] - mcall 4, <3, 8>, , gui_str_usr + mcall SF_DRAW_TEXT, <3, 8>, , gui_str_usr mcall , <3,PAD*1+8>, , gui_str_pass mcall , <3,PAD*2+8>, , gui_str_server mcall , <3,PAD*3+8>, , gui_str_port @@ -74,12 +74,12 @@ login_gui: ;//////////////////////////////////////////////////////////////////// mcall mov [str_error_addr], gui_str_null ; reset error string address - mcall 12, 2 + mcall SF_REDRAW, SSF_END_DRAW ret align 4 .still: - mcall 10 ; wait for event + mcall SF_WAIT_EVENT dec eax jz .redraw dec eax @@ -96,7 +96,7 @@ login_gui: ;//////////////////////////////////////////////////////////////////// jmp .still .button: - mcall 17 + mcall SF_GET_BUTTON dec ah jz .exit @@ -107,7 +107,7 @@ login_gui: ;//////////////////////////////////////////////////////////////////// jmp .still .key: - mcall 2 + mcall SF_GET_KEY cmp ah,13 je .connect @@ -124,7 +124,7 @@ login_gui: ;//////////////////////////////////////////////////////////////////// jmp .still .connect: - mcall 67, 35, 20, 830, 555 ; resize to main gui window's coordinates + mcall SF_CHANGE_WINDOW, 35, 20, 830, 555 ; resize to main gui window's coordinates cmp [param_server_addr], 0 jne gui.main diff --git a/programs/network/ftpc/servercommands.inc b/programs/network/ftpc/servercommands.inc index d8275a7f1..75f7a540f 100644 --- a/programs/network/ftpc/servercommands.inc +++ b/programs/network/ftpc/servercommands.inc @@ -190,7 +190,7 @@ data_loop: mov [filestruct.ptr], buf_buffer2 mov [filestruct.size], eax push eax - mcall 70, filestruct + mcall SF_FILE, filestruct test eax, eax jz @f call error_fs @@ -204,7 +204,7 @@ data_loop: ; storing, send all data .stor: - mcall 70, filestruct + mcall SF_FILE, filestruct cmp eax, 6 ; end of file je .last_call test eax, eax ; error @@ -244,7 +244,7 @@ data_loop: mov ecx, eax ; eax is size of buffer received inc ecx add ecx, [size_fname] ; added old size to form new required size - mcall 68, 20, , [ptr_fname] ; realloc + mcall SF_SYS_MISC, SSF_MEM_REALLOC, , [ptr_fname] test eax, eax je error_heap mov [ptr_fname], eax ; eax contains the new block now diff --git a/programs/network/ftpc/usercommands.inc b/programs/network/ftpc/usercommands.inc index 2cba28ddc..28d4422a9 100644 --- a/programs/network/ftpc/usercommands.inc +++ b/programs/network/ftpc/usercommands.inc @@ -82,13 +82,13 @@ cmd_retr: mov ecx, 256-5 call set_filename - mov [filestruct.subfn], 2 ; create/rewrite file + mov [filestruct.subfn], SSF_CREATE_FILE ; create/rewrite file mov [filestruct.offset], 0 mov [filestruct.offset+4], 0 mov [filestruct.size], 0 mov [filestruct.ptr], 0 - mcall 70, filestruct + mcall SF_FILE, filestruct test eax, eax jz @f call error_fs @@ -96,7 +96,7 @@ cmd_retr: @@: ; Prepare to write to the file - mov [filestruct.subfn], 3 ; write to file + mov [filestruct.subfn], SSF_WRITE_FILE mov [operation], OPERATION_RETR ; Request the file from server @@ -138,7 +138,7 @@ cmd_stor: mov [operation], OPERATION_STOR ; get file size - mov [filestruct.subfn], 5 + mov [filestruct.subfn], SSF_GET_INFO mov [filestruct.offset], 0 mov [filestruct.offset+4], 0 mov [filestruct.size], 0 @@ -148,12 +148,12 @@ cmd_stor: mov ecx, 256-5 call set_filename - mcall 70, filestruct + mcall SF_FILE, filestruct mov eax, dword[folder_buf+32] ; supports file size upto 4GB mov [file_size], eax - mov [filestruct.subfn], 0 ; read file + mov [filestruct.subfn], SSF_READ_FILE ; mov [filestruct.offset], 0 ; mov [filestruct.offset+4], 0 mov [filestruct.size], BUFFERSIZE @@ -191,12 +191,12 @@ cmd_lcwd: mov byte[esi-1], 0 ; check whether entered path is valid (folder exists) - mov [filestruct2.subfn], 5 + mov [filestruct2.subfn], SSF_GET_INFO mov [filestruct2.offset], 0 mov [filestruct2.size], 0 mov [filestruct2.ptr], folder_buf mov [filestruct2.name], buf_cmd+5 - mcall 70, filestruct2 + mcall SF_FILE, filestruct2 test eax, eax jz @f cmp eax, 2 @@ -205,10 +205,10 @@ cmd_lcwd: jmp wait_for_usercommand @@: - mcall 30, 1, buf_cmd+5 ; set working directory + mcall SF_CURRENT_FOLDER, SSF_SET_CF, buf_cmd+5 ; set working directory .print: - mcall 30, 2, buf_cmd, 256 ; and read it again + mcall SF_CURRENT_FOLDER, SSF_GET_CF, buf_cmd, 256 ; and read it again icall eax, interface_addr, interface.print, str_lcwd, buf_cmd, str_newline jmp wait_for_usercommand