Subversion Repositories Kolibri OS

Rev

Rev 3731 | 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:
3755 mario79 368
    mov  edi,read_folder_name+1
369
.1:
370
    cld
1792 yogev_ezra 371
@@:
372
    lodsb
373
    stosb
374
    cmp al,0
375
    jne  @r
376
    ret
377
;---------------------------------------------------------------------
378
copy_folder_name_1:
3755 mario79 379
    mov  edi,read_folder_1_name+1
380
    jmp  copy_folder_name.1
1792 yogev_ezra 381
;---------------------------------------------------------------------
3755 mario79 382
copy_folder_name_2:
383
    mov  edi,read_folder_2_name+1
384
    jmp  copy_folder_name.1
385
;---------------------------------------------------------------------
386
copy_folder_name_3:
387
    mov  edi,read_folder_3_name+1
388
    jmp  copy_folder_name.1
389
;---------------------------------------------------------------------
1792 yogev_ezra 390
read_folder:
391
    .subfunction dd   1
392
    .start	 dd   0
393
    .flags	 dd   0
3755 mario79 394
    .size	 dd   5000
395
    .return	 dd   0
1792 yogev_ezra 396
    db 0
397
    .name: dd read_folder_name
398
;---------------------------------------------------------------------
399
read_folder_1:
400
    .subfunction dd   1
401
    .start	 dd   0
402
    .flags	 dd   0
3755 mario79 403
    .size	 dd   5000
404
    .return	 dd   0
1792 yogev_ezra 405
    db 0
406
    .name: dd read_folder_1_name
407
;---------------------------------------------------------------------
3755 mario79 408
read_folder_2:
409
    .subfunction dd   1
410
    .start	 dd   0
411
    .flags	 dd   0
412
    .size	 dd   5000
413
    .return	 dd   left_folder_data_1
414
    db 0
415
    .name: dd read_folder_2_name
416
;---------------------------------------------------------------------
417
read_folder_3:
418
    .subfunction dd   1
419
    .start	 dd   0
420
    .flags	 dd   0
421
    .size	 dd   5000
422
    .return	 dd   right_folder_data_1
423
    db 0
424
    .name: dd read_folder_3_name
425
;---------------------------------------------------------------------
1792 yogev_ezra 426
read_file_features:
427
    .subfunction dd   5
428
    .Offset	 dd   0
429
    .Offset_1	 dd   0
430
    .size	     dd   0
431
    .return	 dd   file_features_temp_area
432
    db 0
433
    .name: dd file_name
434
;---------------------------------------------------------------------
435
read_file:
436
    .subfunction dd   0
437
    .Offset	 dd   0
438
    .Offset_1	 dd   0
439
    .size	     dd   0
440
    .return	 dd   mem
441
    db 0
442
    .name: dd file_name
443
;---------------------------------------------------------------------
444
save_file:
445
    .subfunction dd   2
446
    .Offset	 dd   0
447
    .Offset_1	 dd   0
448
    .size	     dd   0
449
    .pointer	 dd   mem
450
    db 0
451
    .name: dd start_parameter
452
;---------------------------------------------------------------------
453
add_save_file:
454
    .subfunction dd   3
455
    .Offset	 dd   0
456
    .Offset_1	 dd   0
457
    .size	     dd   0
458
    .pointer	 dd   mem
459
    db 0
460
    .name: dd start_parameter
461
;---------------------------------------------------------------------
462
create_dir_file_data:
463
    .subfunction dd   9
464
    .flags	 dd   0
465
    .param	 dd   0
466
    .rezerv	 dd   0
467
    .rezerv1	 dd   0
468
    db 0
469
    .name: dd file_name
470
;---------------------------------------------------------------------
471
start_file_data:
472
    .subfunction dd   7
473
    .flags	 dd   0
474
    .param	 dd   0
475
    .rezerv	 dd   0
476
    .rezerv1	 dd   0
477
    db 0
478
    .name: dd file_name
479
;---------------------------------------------------------------------
480
delete_file_data:
481
    .subfunction dd   8
482
    .flags	 dd   0
483
    .param	 dd   0
484
    .rezerv	 dd   0
485
    .rezerv1 dd   0
486
    db 0
487
    .name: dd file_name
488
;---------------------------------------------------------------------
489
read_delete_dir_data:
490
    .subfunction dd   1
491
    .start	 dd   0
492
    .flags	 dd   0
493
    .size	     dd   0
494
    .return	 dd   delete_dir_data
495
    db 0
496
    .name: dd file_name
497
;---------------------------------------------------------------------