Subversion Repositories Kolibri OS

Rev

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