Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
1792 yogev_ezra 1
key:
2
    mcall 2
3
    cmp   [extended_key],1
4
    je	  .extended_key
5
    test  al, al
6
    jnz   still
7
    cmp   ah, 0xE0
8
    jne   @f
9
    mov   [extended_key],1
10
    jmp   still
11
@@:
12
    cmp   ah,15
13
    jne   .no_tab
14
    inc   [select_panel_counter]
15
    and   [select_panel_counter],1b
16
    call  draw_left_panel
17
    call  draw_right_panel
18
    jmp   still
19
.no_tab:
20
    cmp   ah,72   ; arrow up
21
    je	  key_72.1
22
    cmp   ah,80   ; arrow down
23
    je	  key_80.1
24
    cmp   ah,28   ; Enter
25
    je	  key_28.1
26
    cmp   ah,17   ; W
27
    je    set_background
28
    cmp   ah,19   ; R
29
    je	  reload_dir_1
30
    cmp   ah,42
31
    je	  key_shift_up
32
    cmp   ah,54
33
    je	  key_shift_up
2345 mario79 34
    cmp   ah,142
35
    je	  exit_dir_1	; BackSpace Up
1792 yogev_ezra 36
    cmp   ah,170
37
    je	  key_shift_down
38
    cmp   ah,182
39
    je	  key_shift_down
40
    cmp   ah,29
41
    je	  key_ctrl_up.1
42
    cmp   ah,157
43
    je	  key_ctrl_down.1
44
    cmp   ah,56
45
    je	  key_alt_up.1
46
    cmp   ah,184
47
    je	  key_alt_down.1
48
    cmp   ah,206 ; NumPad+ Up
49
    je    NumPad_plus_Up
50
    cmp   ah,202 ; NumPad- Up
51
    je    NumPad_minus_Up
52
    cmp   ah,183 ; NumPad* Up
53
    je    NumPad_sneg_Up
54
    cmp   ah,158
55
    je    symbol_a_up
56
    cmp   ah,59    ; down F1
57
    je	  f_key_f1
58
    cmp   ah,60    ; down F2
59
    je	  f_key_f2
60
    cmp   ah,61    ; down F3
61
    je	  f_key_f3 ;sort_name
62
    cmp   ah,62    ; down F4
63
    je	  f_key_f4 ;sort_type
64
    cmp   ah,63    ; down F5
65
    je	  f_key_f5 ;sort_size
66
    cmp   ah,64    ; down F6
67
    je	  f_key_f6 ; sort_date
68
    cmp   ah,65    ; down F7
69
    je	  f_key_f7 ;
70
    cmp   ah,66    ; down F8
71
    je	  f_key_f8 ; delete_file
72
    cmp   ah,88    ; down F12
73
    je	  f_key_f12
74
    jmp  still
75
;-------------------------------------------------------------
76
.extended_key:
77
    mov  [extended_key],0
78
key_80:
79
    cmp  ah,80	; arrow down
80
    jne  key_72
81
.1:
82
    cmp  [select_panel_counter],0
83
    jne  .right_1
84
    mov  eax,[left_folder_block]
85
    dec  eax
86
    imul eax,10
87
    cmp  ax,[left_start_draw_cursor_line]
88
    jbe  .marked_action   ;still
89
    mov  ax,[left_start_draw_cursor_line]
90
    add  ax,10
3840 mario79 91
    cmp  ax,[left_panel_y_correct_size_y]
1792 yogev_ezra 92
    jae  @f
93
.add_1:
94
    add  [left_start_draw_cursor_line],10
95
    call draw_left_panel_selection
96
    mov  [drawing_panel_folder],1
97
.all:
98
    sub  ecx,10 shl 16
99
    mov  edx,0xffffff
3840 mario79 100
	mcall
1792 yogev_ezra 101
    mov  [not_clear_lines],1
102
    call draw_folder_data
103
    mov  [not_clear_lines],0
104
    jmp  still
105
.marked_action:
106
    cmp  [marked_action],0
107
    je   still
108
    mov  [marked_action],0
109
    call draw_left_panel
110
    jmp  still
111
.marked_action_1:
112
    cmp  [marked_action],0
113
    je   still
114
    mov  [marked_action],0
115
    call draw_right_panel
116
    jmp  still
117
@@:
118
    mov  eax,[left_folder_block]
119
    sub  eax,[max_panel_line]
120
    test eax,0x80000000
121
    jz	 @f
122
    xor  eax,eax
123
@@:
124
    cmp  [marked_action],0
125
    jne   @f
126
    cmp  [left_start_draw_line],eax
127
    je	 still
128
@@:
129
    mov  [marked_action],0
130
    inc  [left_start_draw_line]
131
    call draw_left_panel
132
    jmp  still
133
.right_1:
134
    mov  eax,[right_folder_block]
135
    dec  eax
136
    imul eax,10
137
    cmp  ax,[right_start_draw_cursor_line]
138
    jbe  .marked_action_1   ;still
139
    mov  ax,[right_start_draw_cursor_line]
140
    add  ax,10
3840 mario79 141
    cmp  ax,[right_panel_y_correct_size_y]
1792 yogev_ezra 142
    jae  @f
143
.add_2:
144
    add  [right_start_draw_cursor_line],10
145
    call draw_right_panel_selection
146
    mov  [drawing_panel_folder],2
147
    jmp  key_80.all
148
@@:
149
    mov  eax,[right_folder_block]
150
    sub  eax,[max_panel_line]
151
    test eax,0x80000000
152
    jz	 @f
153
    xor  eax,eax
154
@@:
155
    cmp  [marked_action],0
156
    jne  @f
157
    cmp  [right_start_draw_line],eax
158
    je	 still
159
@@:
160
    mov  [marked_action],0
161
    inc  [right_start_draw_line]
162
    call draw_right_panel
163
    jmp  still
164
;-------------------------------------------------------------
165
key_72:
166
    cmp  ah,72	;arrow up
167
    jne  key_81
168
.1:
169
    cmp  [select_panel_counter],0
170
    jne  .right_1
171
    mov  ax,[left_start_draw_cursor_line]
172
    add  ax,[left_panel_y.start_y]
173
    cmp  [left_panel_y.start_y],ax
174
    je	 @f
175
    sub  [left_start_draw_cursor_line],10
176
    call draw_left_panel_selection
177
    mov  [drawing_panel_folder],1
178
.all:
179
    add  ecx,10 shl 16
180
    mov  edx,0xffffff
3840 mario79 181
	mcall
1792 yogev_ezra 182
    mov  [not_clear_lines],1
183
    call draw_folder_data
184
    mov  [not_clear_lines],0
185
    jmp  still
186
@@:
187
    cmp  [left_start_draw_line],0
188
    je	 still
189
    dec  [left_start_draw_line]
190
    call draw_left_panel
191
    jmp  still
192
.right_1:
193
    mov  ax,[right_start_draw_cursor_line]
194
    add  ax,[right_panel_y.start_y]
195
    cmp  [right_panel_y.start_y],ax
196
    je	 @f
197
    sub  [right_start_draw_cursor_line],10
198
    call draw_right_panel_selection
199
    mov  [drawing_panel_folder],2
200
    jmp  key_72.all
201
@@:
202
    cmp  [right_start_draw_line],0
203
    je	 still
204
    dec  [right_start_draw_line]
205
    call draw_right_panel
206
    jmp  still
207
;-------------------------------------------------------------
208
key_81:
209
    cmp  ah,81 ; PageDown
210
    jne  key_73
211
    mov  eax,[max_panel_line]
212
    cmp  [select_panel_counter],0
213
    jne  .right_1
214
    mov  ebx,[left_folder_block]
215
    sub  ebx,eax
216
    test ebx,0x80000000
217
    jnz  .left_2
218
    sub  ebx,[left_start_draw_line]
219
    cmp  ebx,eax
220
    ja  .ok_1
221
    mov  ebx,[left_folder_block]
222
    sub  ebx,eax
223
    call prepare_data_left_down
224
    ja   @f
225
    cmp  ebx,[left_start_draw_line]
226
    je   still
227
@@:
228
    mov  [left_start_draw_line],ebx
229
.left_3:
230
    dec  eax
231
    imul eax,10
232
.left_1:
233
    mov  [left_start_draw_cursor_line],ax
234
    call draw_left_panel
235
    jmp  still
236
.left_2:
237
    mov  eax,[left_folder_block]
238
    sub  eax,[left_start_draw_line]
239
    dec  eax
240
    imul eax,10
241
    cmp  ax,[left_start_draw_cursor_line]
242
    jbe  still
243
    jmp  .left_1
244
.ok_1:
245
    add  [left_start_draw_line],eax
246
    call draw_left_panel
247
    jmp  still
248
.right_1:
249
    mov  ebx,[right_folder_block]
250
    sub  ebx,eax
251
    test ebx,0x80000000
252
    jnz  .right_3
253
    sub  ebx,[right_start_draw_line]
254
    cmp  ebx,eax
255
    jae  .ok_2
256
    mov  ebx,[right_folder_block]
257
    sub  ebx,eax
258
    call prepare_data_right_down
259
    ja   @f
260
    cmp  ebx,[right_start_draw_line]
261
    je   still
262
@@:
263
    mov  [right_start_draw_line],ebx
264
.right_4:
265
    dec  eax
266
    imul eax,10
267
.right_2:
268
    mov  [right_start_draw_cursor_line],ax
269
    call draw_right_panel
270
    jmp  still
271
.right_3:
272
    mov  eax,[right_folder_block]
273
    sub  eax,[right_start_draw_line]
274
    dec  eax
275
    imul eax,10
276
    cmp  ax,[right_start_draw_cursor_line]
277
    jbe  still
278
    jmp  .right_2
279
.ok_2:
280
    add  [right_start_draw_line],eax
281
    call draw_right_panel
282
    jmp  still
283
;-------------------------------------------------------------
284
prepare_data_right_down:
285
    mov  ecx,[right_folder_block]
286
    sub  ecx,[right_start_draw_line]
287
    dec  ecx
288
    imul ecx,10
289
    cmp  cx,[right_start_draw_cursor_line]
290
    ret
291
;-------------------------------------------------------------
292
prepare_data_left_down:
293
    mov  ecx,[left_folder_block]
294
    sub  ecx,[left_start_draw_line]
295
    dec  ecx
296
    imul ecx,10
297
    cmp  cx,[left_start_draw_cursor_line]
298
    ret
299
;-------------------------------------------------------------
300
key_73:
301
    cmp  ah,73 ; PageUp
302
    jne  key_71
303
    mov  eax,[max_panel_line]
304
    cmp  [select_panel_counter],0
305
    jne  .right_1
306
    mov  ebx,[left_start_draw_line]
307
    sub  ebx,eax
308
    test ebx,0x8000000
309
    jz	 @f
310
    cmp  [left_start_draw_line],0
311
    jne  .draw_line_1
312
    cmp  [left_start_draw_cursor_line],0
313
    je	 still
314
    mov  [left_start_draw_cursor_line],0
315
.draw_line_1:
316
    mov  [left_start_draw_line],0
317
    call draw_left_panel
318
    jmp  still
319
@@:
320
    sub  [left_start_draw_line],eax
321
    call draw_left_panel
322
    jmp  still
323
.right_1:
324
    mov  ebx,[right_start_draw_line]
325
    sub  ebx,eax
326
    test ebx,0x80000000
327
    jz	 @f
328
    cmp  [right_start_draw_line],0
329
    jne  .draw_line_2
330
    cmp  [right_start_draw_cursor_line],0
331
    je	 still
332
    mov  [right_start_draw_cursor_line],0
333
.draw_line_2:
334
    mov  [right_start_draw_line],0
335
    call draw_right_panel
336
    jmp  still
337
@@:
338
    sub  [right_start_draw_line],eax
339
    call draw_right_panel
340
    jmp  still
341
;-------------------------------------------------------------
342
key_71:
343
    cmp  ah,71 ; Home
344
    jne  key_79
345
    cmp  [select_panel_counter],0
346
    jne  .right_1
347
    cmp  [left_start_draw_line],0
348
    jne   .draw_left_panel
349
    cmp  [left_start_draw_cursor_line],0
350
    je	 still
351
.draw_left_panel:
352
    mov  [left_start_draw_line],0
353
    mov  [left_start_draw_cursor_line],0
354
    call draw_left_panel
355
    jmp  still
356
.right_1:
357
    cmp  [right_start_draw_line],0
358
    jne   .draw_right_panel
359
    cmp  [right_start_draw_cursor_line],0
360
    je	 still
361
.draw_right_panel:
362
    mov  [right_start_draw_line],0
363
    mov  [right_start_draw_cursor_line],0
364
    call draw_right_panel
365
    jmp  still
366
;-------------------------------------------------------------
367
key_79:
368
    cmp  ah,79 ; End
369
    jne  key_28
370
    cmp  [select_panel_counter],0
371
    jne  .right_1
372
    mov  eax,[left_folder_block]
373
    sub  eax,[max_panel_line]
374
    test eax,0x80000000
375
    jnz  key_81.left_2
376
    call prepare_data_left_down
377
    ja   @f
378
    cmp  eax,[left_start_draw_line]
379
    je   still
380
@@:
381
    mov  [left_start_draw_line],eax
382
    mov  eax,[max_panel_line]
383
    jmp  key_81.left_3
384
.right_1:
385
    mov  eax,[right_folder_block]
386
    sub  eax,[max_panel_line]
387
    test eax,0x80000000
388
    jnz  key_81.right_3
389
    call prepare_data_right_down
390
    ja   @f
391
    cmp  eax,[right_start_draw_line]
392
    je   still
393
@@:
394
    mov  [right_start_draw_line],eax
395
    mov  eax,[max_panel_line]
396
    jmp  key_81.right_4
397
;-------------------------------------------------------------
398
key_28:
399
    cmp  ah,28 ; Enter
400
    jne  key_ctrl_up
401
.1:
402
    cmp  [shift_flag],1
403
    je	 still
404
    cmp  [ctrl_flag],1
405
    je	 still
406
    cmp  [alt_flag],1
407
    je	 files_information
408
 
409
    mov  [open_param],0
410
.2:
411
    cmp  [select_panel_counter],0
412
    jne  .right_1
413
    mov  ebp,read_folder_name    ;read_folder.name
414
    call  calculate_left_data_1
415
    add  esi,32
416
    cmp  [exit_dir],1
417
    je	 .up_patch
418
    test [esi],byte 0x10
419
    jz	 file_no_folder
420
    cmp  [open_param],0
421
    jne  still
422
    cmp  [esi+40],word 2Eh
423
    je	 still
424
    cmp  [esi+40],word '..'
425
    je	 .up_patch
426
    call calculate_key_28_1
427
    mov  [left_start_draw_cursor_line],0
428
    mov  [left_start_draw_line],0
429
    jmp  proc_read_folder
430
.up_patch:
431
    call calculate_key_28_2
432
    jmp  proc_read_folder
433
.right_1:
434
    mov  ebp,read_folder_1_name   ;read_folder_1.name
435
    call calculate_right_data_1
436
    add  esi,32
437
    cmp  [exit_dir],1
438
    je	 .up_patch_1
439
    test [esi],byte 0x10
440
    jz	 file_no_folder
441
    cmp  [esi+40],word 2Eh
442
    je	 still
443
    cmp  [esi+40],word '..'
444
    je	 .up_patch_1
445
    call calculate_key_28_1
446
    mov  [right_start_draw_cursor_line],0
447
    mov  [right_start_draw_line],0
448
    jmp  proc_read_folder_1
449
.up_patch_1:
450
    call calculate_key_28_2
451
    jmp  proc_read_folder_1
452
;---------------------------------------------------------------------
453
calculate_key_28_1:
454
;    mov  edi,read_folder.name-1
455
    mov  edi,ebp
456
    dec  edi
457
    inc  ebp
458
@@:
459
    inc  edi
460
    cmp  [edi],byte 0
461
    jne  @r
462
    cmp  edi,ebp ;read_folder.name+1
463
    je	 @f
464
    mov  al,'/'
465
    mov [edi],al
466
    inc  edi
467
@@:
468
    add  esi,40
469
@@:
470
    cld
471
    lodsb
472
    stosb
473
    cmp al,0
474
    jnz   @r
475
    ret
476
;---------------------------------------------------------------------
477
calculate_key_28_2:
478
    mov  [exit_dir],0
479
    mov  edi,ebp ;read_folder.name
480
@@:
481
    inc  edi
482
    cmp  [edi],byte 0
483
    jne  @r
484
    mov  [extension_size],edi
485
    dec  edi
486
@@:
487
    dec  edi
488
    cmp  [edi],byte '/'
489
    jne  @r
490
    mov  eax,ebp ;read_folder.name
491
    cmp  edi,eax
492
    jbe  @f
493
    mov  [edi],byte 0
494
@@:
495
    inc  edi
496
    mov  [temp_counter_dword],edi
497
    dec  edi
498
    sub  [extension_size],edi
499
    mov  [search_pre_folder],1
500
    ret
501
;---------------------------------------------------------------------
502
set_background:
503
    cmp  [shift_flag],1
504
    je   .shift
505
    cmp  [ctrl_flag],1
506
    jne  still
507
    mov  [open_param],background_stretch
508
    jmp  key_28.2
509
.shift:
510
    mov  [open_param],background_tile
511
    jmp  key_28.2
512
;---------------------------------------------------------------------
513
reload_dir_1:
514
    cmp  [ctrl_flag],0
515
    je	 still
516
    jmp  reload_dir
517
;---------------------------------------------------------------------
518
symbol_a_up:
519
    cmp  [shift_flag],1
520
    je	 still
521
    cmp  [ctrl_flag],1
522
    je	 .ctrl
523
    cmp  [alt_flag],1
524
    je	 still
525
    jmp  still
526
.ctrl:
527
    mov  [mark_action_counter],0
528
    jmp  mark_all_file
529
;---------------------------------------------------------------------
530
NumPad_plus_Up:
531
    cmp  [shift_flag],1
532
    je	 still
533
    cmp  [ctrl_flag],1
534
    je	 .ctrl
535
    cmp  [alt_flag],1
536
    je	 still
537
    jmp  still
538
.ctrl:
539
    mov  [mark_action_counter],0
540
    jmp  mark_all_file
541
;---------------------------------------------------------------------
542
NumPad_minus_Up:
543
    cmp  [shift_flag],1
544
    je	 still
545
    cmp  [ctrl_flag],1
546
    je	 .ctrl
547
    cmp  [alt_flag],1
548
    je	 still
549
    jmp  still
550
.ctrl:
551
    mov  [mark_action_counter],1
552
    jmp  mark_all_file
553
;---------------------------------------------------------------------
554
NumPad_sneg_Up:
555
    cmp  [shift_flag],1
556
    je	 still
557
    cmp  [ctrl_flag],1
558
    je	 .ctrl
559
    cmp  [alt_flag],1
560
    je	 still
561
    jmp  still
562
.ctrl:
563
    mov  [mark_action_counter],2
564
    jmp  mark_all_file
565
;---------------------------------------------------------------------
566
f_key_f1:
567
;sort_name:
568
    cmp  [shift_flag],1
569
    je	 still
570
    cmp  [ctrl_flag],1
571
    je	 still
572
    cmp  [alt_flag],1
573
    je	 draw_left_select_disk_menu
574
    jmp  help_start
575
;---------------------------------------------------------------------
576
f_key_f2:
577
;sort_name:
578
    cmp  [shift_flag],1
579
    je	 still
580
    cmp  [ctrl_flag],1
581
    je	 still
582
    cmp  [alt_flag],1
583
    je	 draw_right_select_disk_menu
584
    jmp  still
585
;---------------------------------------------------------------------
586
f_key_f3:
587
;sort_name:
588
    cmp  [shift_flag],1
589
    je	 still
590
    cmp  [ctrl_flag],1
591
    je	 .ctrl
592
    cmp  [alt_flag],1
593
    je	 still
594
    jmp  still
595
.ctrl:
596
    cmp  [select_panel_counter],1
597
    je	 right_sort_name
598
    jmp  left_sort_name
599
;---------------------------------------------------------------------
600
f_key_f4:
601
;sort_type:
602
    cmp  [shift_flag],1
603
    je	 still
604
    cmp  [ctrl_flag],1
605
    je	 .ctrl
606
    cmp  [alt_flag],1
607
    je	 still
608
    jmp  open_file_f4
609
.ctrl:
610
    cmp  [select_panel_counter],1
611
    je	 right_sort_type
612
    jmp  left_sort_type
613
;---------------------------------------------------------------------
614
f_key_f5:
615
;sort_size:
616
    cmp  [shift_flag],1
617
    je	 still
618
    cmp  [ctrl_flag],1
619
    je	 .ctrl
620
    cmp  [alt_flag],1
621
    je	 still
622
    jmp  copy_file_f5
623
.ctrl:
624
    cmp  [select_panel_counter],1
625
    je	 right_sort_size
626
    jmp  left_sort_size
627
;---------------------------------------------------------------------
628
f_key_f6:
629
;sort_date:
630
    cmp  [shift_flag],1
631
    je	 still
632
    cmp  [ctrl_flag],1
633
    je	 .ctrl
634
    cmp  [alt_flag],1
635
    je	 still
636
    jmp  move_file_f6
637
.ctrl:
638
    cmp  [select_panel_counter],1
639
    je	 right_sort_date
640
    jmp  left_sort_date
641
;---------------------------------------------------------------------
642
f_key_f7:
643
    cmp  [shift_flag],1
644
    je	 still
645
    cmp  [ctrl_flag],1
646
    je	 still
647
    cmp  [alt_flag],1
648
    je	 still
649
    jmp  create_directory
650
;---------------------------------------------------------------------
651
f_key_f8:
652
    cmp  [shift_flag],1
653
    je	 still
654
    cmp  [ctrl_flag],1
655
    je	 still
656
    cmp  [alt_flag],1
657
    je	 still
658
    jmp  delete_file
659
;---------------------------------------------------------------------
660
f_key_f12:
661
    cmp  [shift_flag],1
662
    je	 still
663
    cmp  [ctrl_flag],1
664
    je	 still
665
    cmp  [alt_flag],1
666
    je	 still
667
    jmp  exit_apl
668
;---------------------------------------------------------------------
669
key_shift_up:
670
    cmp  [shift_flag],1
671
    je	 still
672
    mov  [shift_flag],1
673
    jmp  key_alt_down.for_all
674
;---------------------------------------------------------------------
675
key_shift_down:
676
    mov  [shift_flag],0
677
    jmp  key_alt_down.for_all
678
;---------------------------------------------------------------------
679
key_ctrl_up:
680
    cmp   ah,29
681
    jne   key_ctrl_down
682
.1:
683
    cmp  [ctrl_flag],1
684
    je	 still
685
    mov  [ctrl_flag],1
686
    jmp  key_alt_down.for_all
687
;---------------------------------------------------------------------
688
key_ctrl_down:
689
    cmp   ah,157
690
    jne   key_alt_up
691
.1:
692
    mov  [ctrl_flag],0
693
    jmp  key_alt_down.for_all
694
;---------------------------------------------------------------------
695
key_alt_up:
696
    cmp   ah,56
697
    jne   key_alt_down
698
.1:
699
    cmp  [alt_flag],1
700
    je	 still
701
    mov  [alt_flag],1
702
    jmp  key_alt_down.for_all
703
;---------------------------------------------------------------------
704
key_alt_down:
705
    cmp   ah,184
706
    jne   key_insert
707
.1:
708
    mov  [alt_flag],0
709
.for_all:
710
    call erase_fbutton
711
    call draw_fbutton
712
    jmp  still
713
;---------------------------------------------------------------------
714
key_insert:
715
    cmp   ah,82   ; Insert
716
    je	  mark_file
717
    cmp   ah,83
2616 mario79 718
    je	  f_key_f8	;delete_file
1792 yogev_ezra 719
key_end:
720
    jmp  still
721
;---------------------------------------------------------------------