Subversion Repositories Kolibri OS

Rev

Rev 3794 | Rev 3802 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3794 Rev 3800
1
cmd_list:
-
 
2
 
-
 
3
        call    open_dataconnection
-
 
4
 
-
 
5
        mov     dword[s], "LIST"
-
 
6
        mov     byte[s+4], 0x0a
-
 
7
        mcall   send, [socketnum], s, 5, 0
-
 
8
 
-
 
9
        jmp     wait_for_servercommand
-
 
10
 
-
 
11
 
-
 
12
cmd_help:
1
cmd_help:
13
 
2
 
14
        push    str_help
3
        push    str_help
15
        call    [con_write_asciiz]
4
        call    [con_write_asciiz]
16
 
5
 
17
        jmp     wait_for_usercommand
6
        jmp     wait_for_usercommand
-
 
7
 
-
 
8
cmd_bye:
-
 
9
 
-
 
10
        mcall   close, [socketnum]
-
 
11
        mcall   close, [datasocket]
-
 
12
 
-
 
13
        jmp     main
18
 
14
 
19
cmd_pwd:
15
cmd_pwd:
20
 
16
 
21
        mov     dword[s], "PWD" + 10 shl 24
17
        mov     dword[s], "PWD" + 10 shl 24
22
        mcall   send, [socketnum], s, 4, 0
18
        mcall   send, [socketnum], s, 4, 0
23
 
19
 
24
        jmp     wait_for_servercommand
20
        jmp     wait_for_servercommand
25
 
21
 
26
cmd_cwd:
22
cmd_cwd:
27
 
23
 
28
        mov     dword[s], "CWD "
24
        mov     dword[s], "CWD "
29
 
25
 
30
        mov     ecx, 256
26
        mov     ecx, 256
31
        xor     al, al
27
        xor     al, al
32
        mov     edi, s
28
        mov     edi, s
33
        repne scasb
29
        repne scasb
34
        lea     esi, [edi - s - 1]
30
        lea     esi, [edi - s - 1]
35
 
31
 
36
        mcall   send, [socketnum], s, , 0
32
        mcall   send, [socketnum], s, , 0
37
 
33
 
38
        jmp     wait_for_servercommand
34
        jmp     wait_for_servercommand
-
 
35
 
-
 
36
cmd_dele:
-
 
37
 
-
 
38
        mov     dword[s], "DELE"
-
 
39
        mov     byte[s], " "
-
 
40
 
-
 
41
        mov     ecx, 256
-
 
42
        xor     al, al
-
 
43
        mov     edi, s
-
 
44
        repne scasb
-
 
45
        lea     esi, [edi - s - 1]
-
 
46
 
-
 
47
        mcall   send, [socketnum], s, , 0
-
 
48
 
-
 
49
        jmp     wait_for_servercommand
-
 
50
 
-
 
51
cmd_list:
-
 
52
 
-
 
53
        call    open_dataconnection
-
 
54
 
-
 
55
        mov     [operation], OPERATION_LIST
-
 
56
 
-
 
57
        mov     dword[s], "LIST"
-
 
58
        mov     byte[s+4], 0x0a
-
 
59
        mcall   send, [socketnum], s, 5, 0
-
 
60
 
-
 
61
        jmp     wait_for_servercommand
39
 
62
 
40
 
63
 
41
cmd_retr:
64
cmd_retr:
42
 
65
 
43
        call    open_dataconnection
66
        call    open_dataconnection
-
 
67
 
-
 
68
        mov     [operation], OPERATION_RETR
-
 
69
 
-
 
70
        mov     [filestruct.subfn], 2   ; create/rewrite file
-
 
71
        mov     [filestruct.offset], 0
-
 
72
        mov     [filestruct.offset+4], 0
-
 
73
        mov     [filestruct.size], 0
-
 
74
        mov     [filestruct.ptr], 0
-
 
75
 
-
 
76
        lea     esi, [s+5]
-
 
77
        mov     edi, filestruct.name
-
 
78
        mov     ecx, 256-5
-
 
79
        call    set_filename
-
 
80
 
-
 
81
        mcall   70, filestruct
-
 
82
        cmp     eax, -1
-
 
83
;        je      fileerror
-
 
84
 
-
 
85
        mov     [filestruct.subfn], 3   ; write to file
44
 
86
 
45
        mov     dword[s], "RETR"
87
        mov     dword[s], "RETR"
46
        mov     byte[s+4], " "
88
        mov     byte[s+4], " "
47
 
89
 
48
        mov     ecx, 256
90
        mov     ecx, 256
49
        xor     al, al
91
        xor     al, al
50
        mov     edi, s
92
        mov     edi, s
51
        repne scasb
93
        repne scasb
52
        lea     esi, [edi - s - 1]
94
        lea     esi, [edi - s - 1]
53
 
-
 
54
        mcall   send, [socketnum], s, , 0
95
        mcall   send, [socketnum], s, , 0
55
 
96
 
56
        jmp     wait_for_servercommand
97
        jmp     wait_for_servercommand
57
 
98
 
58
 
99
 
59
cmd_stor:
100
cmd_stor:
60
 
101
 
61
        call    open_dataconnection
102
        call    open_dataconnection
-
 
103
 
-
 
104
        mov     [operation], OPERATION_STOR
-
 
105
 
-
 
106
        mov     [filestruct.subfn], 0   ; read file
-
 
107
        mov     [filestruct.offset], 0
-
 
108
        mov     [filestruct.offset+4], 0
-
 
109
        mov     [filestruct.size], BUFFERSIZE
-
 
110
        mov     [filestruct.ptr], buffer_ptr2
-
 
111
 
-
 
112
        lea     esi, [s+5]
-
 
113
        mov     edi, filestruct.name
-
 
114
        mov     ecx, 256-5
-
 
115
        call    set_filename
62
 
116
 
63
        mov     dword[s], "STOR"
117
        mov     dword[s], "STOR"
64
        mov     byte[s+4], " "
118
        mov     byte[s+4], " "
65
 
119
 
66
        mov     ecx, 256
120
        mov     ecx, 256
67
        xor     al, al
121
        xor     al, al
68
        mov     edi, s
122
        mov     edi, s
69
        repne scasb
123
        repne scasb
70
        lea     esi, [edi - s - 1]
124
        lea     esi, [edi - s - 1]
71
 
-
 
72
        mcall   send, [socketnum], s, , 0
125
        mcall   send, [socketnum], s, , 0
73
 
126
 
74
        jmp     wait_for_servercommand
127
        jmp     wait_for_servercommand
75
128
 
-
 
129
 
-
 
130
 
-
 
131
; esi   = source ptr
-
 
132
; edi   = dest ptr
-
 
133
; ecx   = max length of source buffer
-
 
134
set_filename:
-
 
135
 
-
 
136
  .loop:
-
 
137
        lodsb
-
 
138
        test    al, al
-
 
139
        jz      .done
-
 
140
        cmp     al, ' '
-
 
141
        je      .done
-
 
142
        cmp     al, 10
-
 
143
        je      .done
-
 
144
        stosb
-
 
145
        loop    .loop
-
 
146
  .done:
-
 
147
        xor     al, al          ; append a 0 byte
-
 
148
        stosb
-
 
149
 
-
 
150
        ret
-
 
151
-
 
152