Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1792 yogev_ezra 1
;**************************************************************
2
; KFM - Kolibri File Manager
3
;**************************************************************
4
use32
5
    db	  'MENUET01'
6
    dd	  0x01
7
    dd	  START
8
    dd	  I_END
9
    dd	  mem
10
    dd	  stacktop
11
    dd	  0x0
12
    dd	  path
13
 
14
;include   'lang.inc'
15
;include   'kglobals.inc'
16
include   'macros.inc'
17
include   'editbox.inc'
18
;use_edit_box
19
use_edit_box procinfo
20
;include   'ASCGL.INC'
21
;---------------------------------------------------------------------
22
include   'files.inc'
23
;---------------------------------------------------------------------
24
STRLEN = 1024
25
;---------------------------------------------------------------------
26
START:
27
    mcall 9, procinfo, -1
28
    mov   eax,[ebx+30]
29
    mov   [PID],eax
30
    xor   ecx,ecx
31
@@:
32
    inc   ecx
33
    mcall 9, procinfo
34
    mov   eax,[PID]
35
    cmp   eax,[ebx+30]
36
    jne   @r
37
    mov  [active_process],ecx
38
    mov   [appl_memory],mem
39
    mov   ax,[select_disk_char]
40
    mov   [read_folder_name],ax
41
    mov   [read_folder_1_name],ax
42
    call  load_icon_and_convert_to_img
43
    call  load_buttons_and_convert_to_img
44
    call  load_initiation_file
45
    call  add_memory_for_folders
46
    call  device_detect
47
    call  device_detect_f70
48
    mcall 66, 1, 1
49
;    call  draw_window
50
;    xor   eax,eax
51
    mov   eax,1
52
    mov   [left_sort_flag],eax
53
    mov   [right_sort_flag],eax
54
 
55
    call  proc_read_left_folder
56
    test  eax,eax
57
    jz	  @f
58
    cmp   eax,6
59
    jne   read_folder_error
60
@@:
61
    call  proc_read_right_folder
62
    test  eax,eax
63
    jz	  @f
64
    cmp   eax,6
65
    jne   read_folder_1_error
66
@@:
67
	mcall 40, 0x27
68
	jmp   red_1
69
;---------------------------------------------------------------------
70
red:
71
    call  get_window_param
72
    test  [window_status],10b
73
    jnz   red_1   ;still
74
    test  [window_status],100b
75
    jnz   red_1
76
    cmp   [window_high],180
77
    ja	  @f
78
    mov   esi,180
79
    mcall 67,-1,ebx,ebx
80
@@:
81
    cmp   [window_width],495
82
    ja	  red_1
83
    mov   edx,495
84
    mcall 67,-1,ebx, ,ebx
85
red_1:
86
    call  draw_window
87
;---------------------------------------------------------------------
88
still:
89
    mcall 10
90
    cmp   eax,1
91
    je	  red
92
    cmp   eax,2
93
    je	  key
94
    cmp   eax,3
95
    je	  button
96
    cmp   eax,6
97
    je	  mouse
98
    jmp   still
99
;---------------------------------------------------------------------
100
get_window_param:
101
    mcall 9, procinfo, -1
102
    mov   eax,[ebx+46]
103
    mov   [window_high],eax
104
    mov   eax,[ebx+42]
105
    mov   [window_width],eax
106
    mov   eax,[ebx+70]
107
    mov   [window_status],eax
108
    mcall 48,4
109
    mov   [skin_high],eax
110
    ret
111
;---------------------------------------------------------------------
112
draw_window:
113
    mcall 12, 1
114
;    mcall 0, <20,620>, <20,460>, 0x03cccccc   ; 0x805080D0, 0x005080D0
115
	xor	esi,esi
116
    mcall 0, <20,620>, <20,460>, 0x43cccccc   ; 0x805080D0, 0x005080D0
117
    call  get_window_param
118
;    mov   ecx,[temp_esi]
119
    test  [window_status],10b
120
    jnz   @f
121
    mcall 71, 1 , header
122
    ; create_dir_name
123
    ; start_parameter
124
    ; file_name
125
    ; [temp_edi]
126
    ; header
127
    ; delete_file_data.name
128
    ; start_file_data.name
129
    ; start_parameter
130
     ; start_file_data.name
131
      ; read_icon_file.name
132
		; read_file_features.name ;path ;header
133
 
134
    cmp   [window_high],180
135
    jb	  @f
136
    cmp   [window_width],495
137
    jb	  @f
138
 
139
;    pusha
140
;    mcall 4,<15,25>,0,read_folder.name,100
141
;    popa
142
    call  draw_fbutton
143
 
144
;    mov   [left_panel_clear_all],1
145
 
146
    call  draw_left_panel
147
 
148
;    mov   [right_panel_clear_all],1
149
 
150
    call  draw_right_panel
151
    call  draw_device_button
152
    call  draw_left_select_disk_button
153
    call  draw_left_sort_button
154
    call  draw_right_select_disk_button
155
    call  draw_right_sort_button
156
    call  draw_menu_bar
157
    call  draw_buttons_panel
158
    call  draw_ATAPI_tray_control
159
 
160
;    mcall 47,0x80000,[left_scroll_compens],<300, 5>,0xffffff
161
;    call  mouse.draw_data
162
;    mcall 18, 7
163
;    mov   [temp_eax],eax
164
;    mcall 47,0x80000,[active_process],<300, 5>,0xffffff
165
;    mcall 47,0x80000,[left_marked_counter],<300, 5>,0xffffff
166
;    mcall 47,0x80000,[right_marked_counter],<400, 5>,0xffffff
167
;    mcall 47,0x80000,[sorting_low_limit],<100, 5>,0xffffff
168
;    mcall 47,0x80000,[sort_counter],<200, 5>,0xffffff
169
;    mcall 47,0x80000,[sorting_high_limit],<300, 5>,0xffffff
170
;    mcall 47,0x80000,[dir_temp_counter],<400, 5>,0xffffff
171
 
172
;    mcall 47,0x80000,[timer_tick],<500, 5>,0xffffff
173
;    mcall 47,0x80000,[temp_eax],<400, 5>,0xffffff
174
;    mcall 47,0x80000,[temp_ebx],<400, 5>,0xffffff
175
;    mcall 47,0x80000,[temp_ecx],<500, 5>,0xffffff
176
;    mcall 47,0x80000,[temp_ebx],<500, 5>,0xffffff
177
;    mcall 47,0x80000,[ini_file_start],<100, 5>,0xffffff
178
;    mcall 47,0x80000,[left_folder_data],<200, 5>,0xffffff
179
;    mcall 47,0x80000,[right_folder_data],<300, 5>,0xffffff
180
;    mcall 47,0x80000,[appl_memory],<500, 5>,0xffffff
181
;    mcall 47,0x80000,[temp_znak],<500, 5>,0xffffff
182
 
183
;    mcall 47,0x80000,[sort_counter],<200, 5>,0xffffff
184
;    mcall 47,0x80000,[temp_edi],<250, 5>,0xffffff
185
;    mcall 47,0x80000,[temp_esi],<300, 5>,0xffffff
186
;    mcall 47,0x80000,[temp_ecx],<350, 5>,0xffffff
187
;    mcall 47,0x80000,[temp_znak],<400, 5>,0xffffff
188
 
189
;    movzx ecx,[left_start_draw_cursor_line]
190
;    mcall 47,0x40000, ,<300, 5>,0xffffff
191
;    mcall 47,0x40000,[left_start_draw_line],<400, 5>,0xffffff
192
 
193
;    mcall 47,0x40000,[window_width],<100, 5>,0xffffff
194
;    mcall 47,0x40000,[window_high],<130, 5>,0xffffff
195
 
196
;    mcall 47,0x80100,[left_panel_x],<200, 5>,0xffffff
197
;    mcall 47,0x80100,[left_panel_y],<250, 5>,0xffffff
198
;    mov   edx,[temp_counter_dword_1]
199
;    mcall 4,<150,3>,0x80000000
200
;    mov   edx,[temp_counter_dword]
201
;    mcall 4,<5,3>,0x80000000
202
@@:
203
    mcall 12, 2
204
    ret
205
;temp_eax dd 0
206
;temp_ebx dd 0
207
;temp_ecx dd 0
208
;temp_edx dd 0
209
;temp_esi dd 0
210
;temp_edi dd 0
211
;temp_ebp dd 0
212
;temp_esp dd 0
213
;temp_znak dd 0
214
;temp_counter_dword_1 dd 0
215
;extension_size_1 dd 0
216
;timer_tick dd 0
217
;---------------------------------------------------------------------
218
prepare_load_data:
219
    mov   esi,path
220
    mov   edi,file_name
221
    call  copy_path
222
    call  get_file_size
223
    test  eax,eax
224
    ret
225
;---------------------------------------------------------------------
226
prepare_load_data_1:
227
    mov   [read_file.return],eax
228
    mov   ebp,eax
229
prepare_load_data_4:
230
    call  load_file
231
    test  eax,eax
232
    ret
233
;---------------------------------------------------------------------
234
prepare_load_data_2:
235
    call  add_application_memory
236
prepare_load_data_3:
237
    call  add_application_memory
238
    mov   eax,[file_features_temp_area+32]
239
    mov   [read_file.size],eax
240
    ret
241
;---------------------------------------------------------------------
242
load_icon_and_convert_to_img:
243
    mov   ebx,icons_file_name
244
    call  prepare_load_data
245
    jnz   icon_error
246
    call  prepare_load_data_2
247
    add   eax,mem
248
    call  prepare_load_data_1
249
    jnz   icon_error
250
    call  convert_bmp_to_img
251
    call  sub_application_memory
252
    ret
253
;---------------------------------------------------------------------
254
load_buttons_and_convert_to_img:
255
    mov   ebx,buttons_file_name
256
    call  prepare_load_data
257
    jnz   buttons_error
258
    mov   eax,[appl_memory]
259
    mov   [buttons_img_start],eax
260
    call  prepare_load_data_2
261
    add   eax,[buttons_img_start]
262
    call  prepare_load_data_1
263
    jnz   buttons_error
264
    call  convert_bmp_to_img
265
    call  sub_application_memory
266
    ret
267
;---------------------------------------------------------------------
268
load_initiation_file:
269
    mov   ebx,ini_file_name
270
    call  prepare_load_data
271
    jnz   initiation_error
272
    call  prepare_load_data_3
273
    mov   eax,[appl_memory]
274
    mov   [left_folder_data],eax
275
    sub   eax,[read_file.size]
276
    mov   [read_file.return],eax
277
    mov   [ini_file_start],eax
278
    call  load_file
279
    test  eax,eax
280
    jnz   initiation_error
281
    mov   ebp,icons_associations
282
    call  search_star_and_end_tags
283
;    cmp   ebp,-1
284
;    je    .end
285
    mov   eax,[end_tag]
286
    mov   [icons_end_tag],eax
287
    ret
288
;---------------------------------------------------------------------
289
add_memory_for_folders:
290
    mov   ecx,[appl_memory]
291
    add   ecx,304*32+32
292
    mov   [right_folder_data],ecx
293
    add   ecx,304*32+32
294
    mov   [appl_memory],ecx
295
    mcall 64,1
296
    ret
297
;---------------------------------------------------------------------
298
copy_path:
299
    xor   eax,eax
300
@@:
301
    cld
302
    lodsb
303
    stosb
304
    test  eax,eax
305
    jnz   @b
306
    mov   esi,edi
307
;    dec   esi
308
@@:
309
    std
310
    lodsb
311
    cmp   al,'/'
312
    jnz   @b
313
    mov   edi,esi
314
    add   edi,2
315
    mov   esi,ebx
316
@@:
317
    cld
318
    lodsb
319
    stosb
320
    test  eax,eax
321
    jnz   @b
322
    ret
323
;---------------------------------------------------------------------
324
copy_path_1:
325
    xor   eax,eax
326
@@:
327
    cld
328
    lodsb
329
    stosb
330
    test  eax,eax
331
    jnz   @b
332
    mov   esi,ebx
333
    mov   [edi-1],byte '/'
334
@@:
335
    cld
336
    lodsb
337
    stosb
338
    test  eax,eax
339
    jnz   @b
340
    ret
341
;---------------------------------------------------------------------
342
add_application_memory:
343
    mov   ecx,[file_features_temp_area+32]
344
.1:
345
    add   ecx,[appl_memory]
346
    mov   [appl_memory],ecx
347
    mcall 64,1
348
    ret
349
;---------------------------------------------------------------------
350
sub_application_memory:
351
    mov   ecx,[appl_memory]
352
    sub   ecx,[file_features_temp_area+32]
353
.1:
354
    mov   [appl_memory],ecx
355
    mcall 64,1
356
    ret
357
;---------------------------------------------------------------------
358
include   'key.inc'
359
;---------------------------------------------------------------------
360
include   'markfile.inc'
361
;---------------------------------------------------------------------
362
include   'button.inc'
363
;---------------------------------------------------------------------
364
include   'mouse.inc'
365
;---------------------------------------------------------------------
366
include   'openfile.inc'
367
;---------------------------------------------------------------------
368
include   'draw.inc'
369
;---------------------------------------------------------------------
370
include   'menu_bar.inc'
371
;---------------------------------------------------------------------
372
include   'menu_drv.inc'
373
;---------------------------------------------------------------------
374
include   'delete.inc'
375
;---------------------------------------------------------------------
376
include   'copy.inc'
377
;---------------------------------------------------------------------
378
include   'creatdir.inc'
379
;---------------------------------------------------------------------
380
include   'confirm.inc'
381
;---------------------------------------------------------------------
382
include   'err_wind.inc'
383
;---------------------------------------------------------------------
384
include   'detect.inc'
385
;---------------------------------------------------------------------
386
include   'conv_bmp.inc'
387
;---------------------------------------------------------------------
388
include   'tran_ini.inc'
389
;---------------------------------------------------------------------
390
include   'help.inc'
391
;---------------------------------------------------------------------
392
include   'convchar.inc'
393
;---------------------------------------------------------------------
394
include   'sort.inc'
395
;---------------------------------------------------------------------
396
include   'exit.inc'
397
;---------------------------------------------------------------------
398
include   'progrbar.inc'
399
;---------------------------------------------------------------------
400
include   'scroll.inc'
401
;---------------------------------------------------------------------
402
include   'file_inf.inc'
403
;---------------------------------------------------------------------
404
include   'text.inc'
405
;---------------------------------------------------------------------
406
I_END:
407
;---------------------------------------------------------------------
408
include   'data.inc'
409
;---------------------------------------------------------------------
410
mem: