Compare commits
2 Commits
floppybird
...
929a75f751
Author | SHA1 | Date | |
---|---|---|---|
929a75f751 | |||
9d0cfa8dfb |
@@ -343,7 +343,7 @@ void kos_Main()
|
||||
|
||||
void drawGameWindow()
|
||||
{
|
||||
kos_DefineAndDrawWindow(windowX, windowY, WINDOW_WIDTH, WINDOW_HEIGHT, 0x34, 0x00FFFF, 0, 0, (Dword)HEADER_STRING);
|
||||
kos_DefineAndDrawWindow(windowX, windowY, WINDOW_WIDTH, WINDOW_HEIGHT, 0x33, 0x00FFFF, 0, 0, (Dword)HEADER_STRING);
|
||||
bird.draw();
|
||||
for (int i = 0; i < tubeNumber; ++i)
|
||||
tubes[i].draw();
|
||||
@@ -370,7 +370,7 @@ void redrawGameWindow()
|
||||
|
||||
void drawGameoverWindow()
|
||||
{
|
||||
kos_DefineAndDrawWindow(windowX, windowY, WINDOW_WIDTH, WINDOW_HEIGHT, 0x34, 0x000000, 0, 0, (Dword)HEADER_STRING);
|
||||
kos_DefineAndDrawWindow(windowX, windowY, WINDOW_WIDTH, WINDOW_HEIGHT, 0x33, 0x000000, 0, 0, (Dword)HEADER_STRING);
|
||||
kos_WriteTextToWindow(125, 50, 0x82, 0xFFFFFF, GAMEOVER_STRING, 0);
|
||||
kos_WriteTextToWindow(135, 100, 0x81, 0xFFFFFF, scoreString, 0);
|
||||
kos_WriteTextToWindow(50, 150, 0x81, 0xFFFFFF, ANY_KEY_STRING, 0);
|
||||
@@ -387,7 +387,7 @@ void WriteBorderedText(Word x, Word y, Byte fontType, Dword textColor, const cha
|
||||
|
||||
void drawMenuWindow()
|
||||
{
|
||||
kos_DefineAndDrawWindow(windowX, windowY, WINDOW_WIDTH, WINDOW_HEIGHT, 0x34, 0x00FFFF, 0, 0, (Dword)HEADER_STRING);
|
||||
kos_DefineAndDrawWindow(windowX, windowY, WINDOW_WIDTH, WINDOW_HEIGHT, 0x33, 0x00FFFF, 0, 0, (Dword)HEADER_STRING);
|
||||
|
||||
WriteBorderedText(85, 40, 0x4, 0xFFFFFF, HEADER_STRING, 6, 0x000000, 2);
|
||||
WriteBorderedText(185, 80, 0x84, 0xFFFFFF, HEADER_STRING + 7, 0, 0x000000, 2);
|
||||
|
@@ -1,6 +1,6 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;;
|
||||
;; Copyright (C) KolibriOS team 2013-2021. All rights reserved. ;;
|
||||
;; Copyright (C) KolibriOS team 2013-2025. All rights reserved. ;;
|
||||
;; Distributed under terms of the GNU General Public License ;;
|
||||
;; ;;
|
||||
;; ftpc.asm - FTP client for KolibriOS ;;
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
@@ -7,6 +7,7 @@ include '../../load_lib.mac'
|
||||
|
||||
icon_tl_sys dd 0
|
||||
icon_tl_nod dd 0
|
||||
show_log db 0 ; 0 - hide log, 1 - show log
|
||||
|
||||
TLIST_SZ = 325+16 ;=341. 16 is x-size of scroll bar
|
||||
TLIST1_X = 50
|
||||
@@ -45,8 +46,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 +85,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 +99,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 +122,7 @@ gui: ;//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
align 4
|
||||
.still:
|
||||
mcall 10
|
||||
mcall SF_WAIT_EVENT
|
||||
|
||||
dec eax
|
||||
jz .redraw
|
||||
@@ -146,65 +147,79 @@ 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-160>, 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
|
||||
stdcall [ted_draw], tedit0
|
||||
mcall SF_DRAW_RECT, , ted_wnd_t
|
||||
|
||||
; 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 "Show|Hide log" button
|
||||
mcall SF_DEFINE_BUTTON, <50,79>, <326,25>, 10, BT_COL
|
||||
; string "Show|Hide log"
|
||||
cmp [show_log],0
|
||||
je @f
|
||||
stdcall [ted_draw], tedit0
|
||||
mov edx, str_hide_log
|
||||
jmp .end_log_1
|
||||
@@:
|
||||
mov edx, str_show_log
|
||||
.end_log_1:
|
||||
mcall SF_DRAW_TEXT, <50+5,326+5>, 0xb0000000+STR_COL
|
||||
cmp [show_log],0
|
||||
je @f
|
||||
; draw "Copy" button
|
||||
mcall 8, <50,40>, <326,25>, 4, BT_COL
|
||||
mcall SF_DEFINE_BUTTON, <129+5,40>, <326,25>, 4, BT_COL
|
||||
; string "copy"
|
||||
mcall 4, <50+5,326+5>, 0xb0000000+STR_COL, str_copy
|
||||
mcall SF_DRAW_TEXT, <129+10,326+5>, 0xb0000000+STR_COL, str_copy
|
||||
@@:
|
||||
; draw "Search" button
|
||||
mcall 8, <TLIST2_X+TLIST_SZ-55,55>, <20,25>, 5, BT_COL
|
||||
mcall SF_DEFINE_BUTTON, <TLIST2_X+TLIST_SZ-55,55>, <20,25>, 5, BT_COL
|
||||
; string "Search"
|
||||
mcall 4, <TLIST2_X+TLIST_SZ-55+5,20+5>, 0xb0000000+STR_COL, str_search
|
||||
mcall SF_DRAW_TEXT, <TLIST2_X+TLIST_SZ-55+5,20+5>, 0xb0000000+STR_COL, str_search
|
||||
|
||||
; draw "LIST" button
|
||||
mcall 8, <TLIST2_X+TLIST_SZ-4*BT_SZ_X-15,BT_SZ_X>, <50,25>, 12, BT_COL
|
||||
mcall SF_DEFINE_BUTTON, <TLIST2_X+TLIST_SZ-4*BT_SZ_X-15,BT_SZ_X>, <50,25>, 12, BT_COL
|
||||
; string "LIST"
|
||||
mcall 4, <TLIST2_X+TLIST_SZ-4*BT_SZ_X-15+5,50+5>, 0xb0000000+STR_COL, str_list
|
||||
mcall SF_DRAW_TEXT, <TLIST2_X+TLIST_SZ-4*BT_SZ_X-15+5,50+5>, 0xb0000000+STR_COL, str_list
|
||||
; draw "DELE" button
|
||||
mcall 8, <TLIST2_X+TLIST_SZ-3*BT_SZ_X-10,BT_SZ_X>, <50,25>, 7, BT_COL
|
||||
mcall SF_DEFINE_BUTTON, <TLIST2_X+TLIST_SZ-3*BT_SZ_X-10,BT_SZ_X>, <50,25>, 7, BT_COL
|
||||
; string "DELE"
|
||||
mcall 4, <TLIST2_X+TLIST_SZ-3*BT_SZ_X-10+5,50+5>, 0xb0000000+STR_COL, str_dele
|
||||
mcall SF_DRAW_TEXT, <TLIST2_X+TLIST_SZ-3*BT_SZ_X-10+5,50+5>, 0xb0000000+STR_COL, str_dele
|
||||
; draw "RDIR" button
|
||||
mcall 8, <TLIST2_X+TLIST_SZ-2*BT_SZ_X-5,BT_SZ_X>, <50,25>, 8, BT_COL
|
||||
mcall SF_DEFINE_BUTTON, <TLIST2_X+TLIST_SZ-2*BT_SZ_X-5,BT_SZ_X>, <50,25>, 8, BT_COL
|
||||
; string "RDIR"
|
||||
mcall 4, <TLIST2_X+TLIST_SZ-2*BT_SZ_X-5+5,50+5>, 0xb0000000+STR_COL, str_rdir
|
||||
mcall SF_DRAW_TEXT, <TLIST2_X+TLIST_SZ-2*BT_SZ_X-5+5,50+5>, 0xb0000000+STR_COL, str_rdir
|
||||
; draw "RMD" button
|
||||
mcall 8, <TLIST2_X+TLIST_SZ-BT_SZ_X,BT_SZ_X>, <50,25>, 9, BT_COL
|
||||
mcall SF_DEFINE_BUTTON, <TLIST2_X+TLIST_SZ-BT_SZ_X,BT_SZ_X>, <50,25>, 9, BT_COL
|
||||
; string "RMD"
|
||||
mcall 4, <TLIST2_X+TLIST_SZ-BT_SZ_X+5,50+5>, 0xb0000000+STR_COL, str_rmd
|
||||
mcall SF_DRAW_TEXT, <TLIST2_X+TLIST_SZ-BT_SZ_X+5,50+5>, 0xb0000000+STR_COL, str_rmd
|
||||
|
||||
; draw "mkd" button
|
||||
mcall 8, <TLIST2_X+TLIST_SZ-BT_SZ_X,BT_SZ_X>, <80,20>, 6, BT_COL
|
||||
mcall SF_DEFINE_BUTTON, <TLIST2_X+TLIST_SZ-BT_SZ_X,BT_SZ_X>, <80,20>, 6, BT_COL
|
||||
; string "mkd"
|
||||
mcall 4, <TLIST2_X+TLIST_SZ-BT_SZ_X+5,80+5>, 0xb0000000+STR_COL, str_mkd
|
||||
mcall SF_DRAW_TEXT, <TLIST2_X+TLIST_SZ-BT_SZ_X+5,80+5>, 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, <TLIST1_X+TLIST_SZ-55,55>, <100-20,22>, 11, BT_COL
|
||||
mcall SF_DEFINE_BUTTON, <TLIST1_X+TLIST_SZ-55,55>, <100-20,22>, 11, BT_COL
|
||||
; string "Change"
|
||||
mcall 4, <TLIST1_X+TLIST_SZ-55+5,100-20+5>, 0xb0000000+STR_COL, str_change
|
||||
mcall SF_DRAW_TEXT, <TLIST1_X+TLIST_SZ-55+5,100-20+5>, 0xb0000000+STR_COL, str_change
|
||||
|
||||
;--------------------------
|
||||
; tree list components
|
||||
@@ -222,12 +237,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 +250,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
|
||||
|
||||
@@ -243,6 +258,8 @@ gui: ;//////////////////////////////////////////////////////////////////////////
|
||||
jmp .still
|
||||
|
||||
@@:
|
||||
cmp [show_log],0
|
||||
je .still
|
||||
stdcall [ted_mouse], tedit0
|
||||
jmp .still
|
||||
|
||||
@@ -256,7 +273,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,13 +283,19 @@ gui: ;//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
align 16
|
||||
.button:
|
||||
mcall 17
|
||||
mcall SF_GET_BUTTON
|
||||
|
||||
cmp ah, 3
|
||||
jne @f
|
||||
ijmp eax, interface_addr, interface.server_addr
|
||||
jmp .still
|
||||
|
||||
@@:
|
||||
cmp ah, 10
|
||||
jne @f
|
||||
call show_hide_log
|
||||
jmp .still
|
||||
|
||||
@@:
|
||||
cmp ah, 4
|
||||
jne @f
|
||||
@@ -327,7 +350,10 @@ gui: ;//////////////////////////////////////////////////////////////////////////
|
||||
cmp byte[esi], 0
|
||||
jne @b
|
||||
stdcall [ted_text_add], tedit0, tedit_buffer, ecx, ebx
|
||||
cmp [show_log],0
|
||||
je .end_log_2
|
||||
stdcall [ted_draw], tedit0
|
||||
.end_log_2:
|
||||
; write to log file
|
||||
mov eax, [esp+36]
|
||||
sub ecx, 2 ; 0a0d is not included
|
||||
@@ -424,6 +450,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 +498,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 +524,7 @@ gui: ;//////////////////////////////////////////////////////////////////////////
|
||||
;;================================================================================================;;
|
||||
|
||||
; detect abort
|
||||
mcall 17
|
||||
mcall SF_GET_BUTTON
|
||||
cmp ah, 10
|
||||
je cmd_abor
|
||||
|
||||
@@ -641,7 +671,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 +682,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
|
||||
@@ -746,6 +776,16 @@ EvSize:
|
||||
ret
|
||||
|
||||
|
||||
;
|
||||
show_hide_log:
|
||||
mov esi, 555
|
||||
xor [show_log],1
|
||||
jnz @f
|
||||
sub esi, 160
|
||||
@@:
|
||||
mcall SF_CHANGE_WINDOW, -1, -1, -1
|
||||
ret
|
||||
|
||||
;;================================================================================================;;
|
||||
filter_remote_list: ;/////////////////////////////////////////////////////////////////////////////;;
|
||||
;;------------------------------------------------------------------------------------------------;;
|
||||
@@ -866,6 +906,8 @@ search: ;///////////////////////////////////////////////////////////////////////
|
||||
;hed db 'FTP Client for KolibriOS',0
|
||||
str_change db 'Change',0
|
||||
str_disconnect db 'Disconnect',0
|
||||
str_show_log db 'Show log',0
|
||||
str_hide_log db 'Hide log',0
|
||||
str_copy db 'Copy',0
|
||||
str_mkd db 'MKD',0
|
||||
str_dele db 'DELE',0
|
||||
|
@@ -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, <WIN_X,WIN_W>, <WIN_Y,WIN_H>, , 0x805080DD, str_title
|
||||
mcall SF_CREATE_WINDOW, <WIN_X,WIN_W>, <WIN_Y,WIN_H>, , 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,12 @@ login_gui: ;////////////////////////////////////////////////////////////////////
|
||||
jmp .still
|
||||
|
||||
.connect:
|
||||
mcall 67, 35, 20, 830, 555 ; resize to main gui window's coordinates
|
||||
mov esi, 555
|
||||
or [show_log],0
|
||||
jnz @f
|
||||
sub esi, 160
|
||||
@@:
|
||||
mcall SF_CHANGE_WINDOW, 35, 20, 830 ; resize to main gui window's coordinates
|
||||
cmp [param_server_addr], 0
|
||||
jne gui.main
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user