Subversion Repositories Kolibri OS

Rev

Rev 9121 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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