Subversion Repositories Kolibri OS

Rev

Rev 1792 | Rev 3755 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1792 yogev_ezra 1
read_delete_dir:
2
   mcall 70, read_delete_dir_data
3
   ret
4
;---------------------------------------------------------------------
5
create_directory_f70:
6
   mcall 70, create_dir_file_data
7
   ret
8
;---------------------------------------------------------------------
9
del_file:
10
   mcall 70, delete_file_data
11
   ret
12
;---------------------------------------------------------------------
13
start_appl:
14
   mcall 70, start_file_data
15
   ret
16
;---------------------------------------------------------------------
17
get_file_size:
18
   mcall 70, read_file_features
19
   ret
20
;---------------------------------------------------------------------
21
load_file:
22
   mcall 70, read_file
23
   ret
24
;---------------------------------------------------------------------
25
write_file:
26
   mcall 70, save_file
27
   ret
28
;---------------------------------------------------------------------
29
add_write_file:
30
   mcall 70, add_save_file
31
   ret
32
;---------------------------------------------------------------------
33
proc_read_left_folder:
34
   xor   eax,eax
35
   mov   [left_marked_counter],eax
36
   mov	 [read_folder.start],eax    ;dword 0
37
   inc   eax
38
   mov	 [read_folder.size],eax     ;dword 1
39
   mov   eax,[left_folder_data]
40
   push  eax
41
   mov   [read_folder.return],eax
42
   mcall 70, read_folder
43
    test  eax,eax
44
    jz    @f
45
    cmp   eax,6
46
    jne   .error_1
47
@@:
48
   mov   eax,[esp]
49
   cmp	 [eax+32+40],word 2Eh
50
   jne	 @f
51
   mov	 [read_folder.start],dword 1
52
@@:
53
   mov   ebx,[eax+8]
54
   mov	 [read_folder.size],ebx  ;dword 10  ;5000
55
   imul  ebx,304
56
   add   ebx,32
57
   mov   ecx,[right_folder_data]
58
   sub   ecx,[left_folder_data]
59
   push  ebx ecx
60
   cmp   ebx,ecx
61
   je    .continue
62
   sub   ebx,ecx
63
   js    .sub_mem
64
.add_mem:
65
   mov   ecx,[appl_memory]
66
   add   ecx,ebx
67
   mov   [esp],ebx
68
   mov   ebx,[appl_memory]
69
   mov   [esp+4],ebx
70
   mov   [appl_memory],ecx
71
   mcall 64,1
72
   call  move_up_right_table
73
;   mov   [temp_znak],1
74
   jmp   .continue
75
.sub_mem:
76
   mov   ebx,[esp]
77
   mov   ecx,[esp+4]
78
   sub   ebx,ecx
79
   mov   ecx,[appl_memory]
80
   sub   ecx,ebx
81
   mov   [esp],ebx
82
   mov   ebx,[appl_memory]
83
   mov   [esp+4],ebx
84
   mov   [appl_memory],ecx
85
   call  move_down_right_table
86
   mcall 64,1
87
;   mov   [temp_znak],2
88
.continue:
89
;   mov	 edi,eax  ;folder_data
90
;   call  clear_folder_data_area
91
   mcall 70, read_folder
92
   mov	 [left_folder_block],ebx
93
   add   esp,4*3
94
    test  eax,eax
95
    jz    @f
96
    cmp   eax,6
97
    jne   .error
98
@@:
99
   push  eax
3731 mario79 100
;   call  left_files_name_normalize
1792 yogev_ezra 101
   call  left_prepare_extension_start
102
   call  left_sort_files
103
   pop   eax
104
;   pusha
105
;   call  draw_window
106
;   popa
107
   ret
108
.error_1:
109
   add   esp,4
110
.error:
111
   mov	 [left_folder_block],dword 2
112
   mov   edi,[left_folder_data]
113
   call  error_handler
114
   ret
115
;---------------------------------------------------------------------
116
error_handler:
117
   push  eax
118
   xor   eax,eax
119
   add   edi,32+40
120
   push  edi
121
   sub   edi,40
122
   mov   ecx,304/4
123
   cld
124
   rep   stosd
125
   pop   edi
126
   mov   [edi-40],byte 0x10
127
   mov   [edi],word '..'
128
   mov   [edi+2],al
129
   add   edi,304
130
   push  edi
131
   sub   edi,40
132
   mov   ecx,304/4
133
   cld
134
   rep   stosd
135
   pop   edi
136
   mov   eax,[esp]
137
   mov   [edi+32-40],eax
138
   mov   esi,error_type
139
   mov   ecx,19
140
   cld
141
   rep   movsb
142
   pop   eax
143
   ret
144
;---------------------------------------------------------------------
145
proc_read_right_folder:
146
   xor   eax,eax
147
   mov   [right_marked_counter],eax
148
   mov	 [read_folder_1.start],eax      ;dword 0
149
   inc   eax
150
   mov	 [read_folder_1.size],eax       ;dword 1
151
   mov   eax,[right_folder_data]
152
   push  eax
153
   mov   [read_folder_1.return],eax
154
   mcall 70, read_folder_1
155
    test  eax,eax
156
    jz    @f
157
    cmp   eax,6
158
    jne   .error_1
159
@@:
160
   mov   eax,[esp]
161
   cmp	 [eax+32+40],word 2Eh
162
   jne	 @f
163
   mov	 [read_folder_1.start],dword 1
164
@@:
165
   mov   ebx,[eax+8]
166
   mov	 [read_folder_1.size],ebx  ;dword 10  ;5000
167
   imul  ebx,304
168
   add   ebx,32
169
   mov   ecx,[appl_memory]
170
   sub   ecx,[right_folder_data]
171
   push  ebx ecx
172
   cmp   ebx,ecx
173
   je    .continue
174
   sub   ebx,ecx
175
   js    .sub_mem
176
.add_mem:
177
   mov   ecx,[appl_memory]
178
   add   ecx,ebx
179
   mov   [appl_memory],ecx
180
   mcall 64,1
181
;   mov   [temp_znak],1
182
   jmp   .continue
183
.sub_mem:
184
   mov   ebx,[esp]
185
   mov   ecx,[esp+4]
186
   sub   ebx,ecx
187
   mov   ecx,[appl_memory]
188
   sub   ecx,ebx
189
   mov   [appl_memory],ecx
190
   mcall 64,1
191
;   mov   [temp_znak],2
192
.continue:
193
;   mov	 edi,eax  ;folder_data_1
194
;   call  clear_folder_data_area
195
   mcall 70, read_folder_1
196
   mov	 [right_folder_block],ebx
197
   add   esp,4*3
198
    test  eax,eax
199
    jz    @f
200
    cmp   eax,6
201
    jne   .error
202
@@:
203
   push  eax
3731 mario79 204
;   call  right_files_name_normalize
1792 yogev_ezra 205
   call  right_prepare_extension_start
206
   call  right_sort_files
207
   pop   eax
208
;   pusha
209
;   call  draw_window
210
;   popa
211
   ret
212
.error_1:
213
   add   esp,4
214
.error:
215
   mov	 [right_folder_block],dword 2
216
   mov   edi,[right_folder_data]
217
   call  error_handler
218
   ret
219
;---------------------------------------------------------------------
220
move_up_right_table:
221
   mov  esi,[esp+8]
222
   mov  ecx,esi
223
   sub  ecx,[right_folder_data]
224
   mov  edi,esi
225
   add  edi,[esp+4]
226
   shr  ecx,2
227
   std
228
;   rep  movsb
229
   rep  movsd
230
   mov  eax,[esp+4]
231
   add  [right_folder_data],eax
232
   ret
233
;---------------------------------------------------------------------
234
move_down_right_table:
235
   mov  esi,[right_folder_data]
236
   mov  edi,esi
237
   sub  edi,[esp+4]
238
   push ecx
239
   mov  ecx,[esp+12]
240
   sub  ecx,[right_folder_data]
241
   shr  ecx,2
242
   cld
243
;   rep  movsb
244
   rep  movsd
245
   pop  ecx
246
   mov  eax,[esp+4]
247
   sub  [right_folder_data],eax
248
   ret
249
;---------------------------------------------------------------------
250
;clear_folder_data_area:
251
;   mov ecx,4096*10/4
252
;   xor eax,eax
253
;   cld
254
;   rep stosd
255
;   ret
256
;---------------------------------------------------------------------
257
proc_read_folder:
258
    call  proc_read_left_folder
259
;    mov   [left_panel_clear_all],1
260
    cmp  [search_pre_folder],0
261
    jne   @f
262
    mov  [left_start_draw_cursor_line],0
263
    mov  [left_start_draw_line],0
264
    jmp  .continue
265
@@:
266
    mov  edi,[left_folder_data]
267
    add  edi,32+40
268
    sub  edi,304
269
    xor  ebp,ebp
270
.search_file:
271
    cmp   [left_folder_block],ebp
272
    jbe   .end_folder
273
    mov   esi,[temp_counter_dword]
274
    mov   ecx,[extension_size]
275
    add   edi,304
276
    inc   ebp
277
    cld
278
;    mov   [temp_counter_dword_1],edi
279
    push   edi
280
    rep  cmpsb
281
    pop    edi
282
    jne   .search_file
283
    dec  ebp
284
    mov  eax,[left_folder_block]
285
    cmp  [max_panel_line],eax
286
    js  @f
287
    mov  eax,ebp
288
    imul eax,10
289
    mov  [left_start_draw_cursor_line],ax
290
    mov  [left_start_draw_line],0
291
    jmp  .end_folder
292
@@:
293
;    sub  eax,ebp
294
;    push eax
295
;    sub  eax,[max_panel_line]
296
;    jns  @f
297
;    mov  eax,[max_panel_line]
298
;    sub  eax,[esp]
299
;    imul eax,10
300
;    mov  [left_start_draw_cursor_line],ax
301
;@@:
302
    mov  [left_start_draw_cursor_line],0
303
    mov  [left_start_draw_line],ebp
304
.end_folder:
305
    mov  [search_pre_folder],0
306
.continue:
307
    call  draw_left_panel
308
    call  draw_left_select_disk_button
309
;    call  draw_window
310
;    pop   eax
311
    jmp   still
312
;---------------------------------------------------------------------
313
proc_read_folder_1:
314
    call  proc_read_right_folder
315
;    mov   [right_panel_clear_all],1
316
    cmp  [search_pre_folder],0
317
    jne   @f
318
    mov  [right_start_draw_cursor_line],0
319
    mov  [right_start_draw_line],0
320
    jmp  .continue
321
@@:
322
    mov  edi,[right_folder_data]
323
    add  edi,32+40
324
    sub  edi,304
325
    xor  ebp,ebp
326
.search_file:
327
    cmp   [right_folder_block],ebp
328
    jbe   .end_folder
329
    mov   esi,[temp_counter_dword]
330
    mov   ecx,[extension_size]
331
    add   edi,304
332
    inc   ebp
333
    cld
334
;    mov   [temp_counter_dword_1],edi
335
    push   edi
336
    rep  cmpsb
337
    pop    edi
338
    jne   .search_file
339
    dec  ebp
340
    mov  eax,[right_folder_block]
341
    cmp  [max_panel_line],eax
342
    js  @f
343
    mov  eax,ebp
344
    imul eax,10
345
    mov  [right_start_draw_cursor_line],ax
346
    mov  [right_start_draw_line],0
347
    jmp  .end_folder
348
@@:
349
;    sub  eax,ebp
350
;    push eax
351
;    sub  eax,[max_panel_line]
352
;    jns  @f
353
;    mov  eax,[max_panel_line]
354
;    sub  eax,[esp]
355
;    imul eax,10
356
;    mov  [right_start_draw_cursor_line],ax
357
;@@:
358
    mov  [right_start_draw_cursor_line],0
359
    mov  [right_start_draw_line],ebp
360
.end_folder:
361
    mov  [search_pre_folder],0
362
.continue:
363
    call  draw_right_panel
364
    call  draw_right_select_disk_button
365
    jmp   still
366
;---------------------------------------------------------------------
367
copy_folder_name:
368
    mov  edi,read_folder_name+1  ;read_folder.name+1
369
@@:
370
    cld
371
    lodsb
372
    stosb
373
    cmp al,0
374
    jne  @r
375
    ret
376
;---------------------------------------------------------------------
377
copy_folder_name_1:
378
    mov  edi,read_folder_1_name+1  ;read_folder_1.name+1
379
@@:
380
    cld
381
    lodsb
382
    stosb
383
    cmp al,0
384
    jne  @r
385
    ret
386
;---------------------------------------------------------------------
387
read_folder:
388
    .subfunction dd   1
389
    .start	 dd   0
390
    .flags	 dd   0
391
    .size	     dd   5000
392
    .return	 dd   0  ;folder_data
393
    db 0
394
    .name: dd read_folder_name
395
;---------------------------------------------------------------------
396
read_folder_1:
397
    .subfunction dd   1
398
    .start	 dd   0
399
    .flags	 dd   0
400
    .size	     dd   5000
401
    .return	 dd   0  ;folder_data_1
402
    db 0
403
    .name: dd read_folder_1_name
404
;---------------------------------------------------------------------
405
read_file_features:
406
    .subfunction dd   5
407
    .Offset	 dd   0
408
    .Offset_1	 dd   0
409
    .size	     dd   0
410
    .return	 dd   file_features_temp_area
411
    db 0
412
    .name: dd file_name
413
;---------------------------------------------------------------------
414
read_file:
415
    .subfunction dd   0
416
    .Offset	 dd   0
417
    .Offset_1	 dd   0
418
    .size	     dd   0
419
    .return	 dd   mem
420
    db 0
421
    .name: dd file_name
422
;---------------------------------------------------------------------
423
save_file:
424
    .subfunction dd   2
425
    .Offset	 dd   0
426
    .Offset_1	 dd   0
427
    .size	     dd   0
428
    .pointer	 dd   mem
429
    db 0
430
    .name: dd start_parameter
431
;---------------------------------------------------------------------
432
add_save_file:
433
    .subfunction dd   3
434
    .Offset	 dd   0
435
    .Offset_1	 dd   0
436
    .size	     dd   0
437
    .pointer	 dd   mem
438
    db 0
439
    .name: dd start_parameter
440
;---------------------------------------------------------------------
441
create_dir_file_data:
442
    .subfunction dd   9
443
    .flags	 dd   0
444
    .param	 dd   0
445
    .rezerv	 dd   0
446
    .rezerv1	 dd   0
447
    db 0
448
    .name: dd file_name
449
;---------------------------------------------------------------------
450
start_file_data:
451
    .subfunction dd   7
452
    .flags	 dd   0
453
    .param	 dd   0
454
    .rezerv	 dd   0
455
    .rezerv1	 dd   0
456
    db 0
457
    .name: dd file_name
458
;---------------------------------------------------------------------
459
delete_file_data:
460
    .subfunction dd   8
461
    .flags	 dd   0
462
    .param	 dd   0
463
    .rezerv	 dd   0
464
    .rezerv1 dd   0
465
    db 0
466
    .name: dd file_name
467
;---------------------------------------------------------------------
468
read_delete_dir_data:
469
    .subfunction dd   1
470
    .start	 dd   0
471
    .flags	 dd   0
472
    .size	     dd   0
473
    .return	 dd   delete_dir_data
474
    db 0
475
    .name: dd file_name
476
;---------------------------------------------------------------------