Subversion Repositories Kolibri OS

Rev

Rev 485 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;-----------------------------------------------------------
  2. ;-----------instruments of menu-----------------------------
  3. ;-----------------------------------------------------------
  4. TakeInstruments:
  5.  
  6.          ;|||||||||||||||||||FILE||||||||||||||||||||||
  7.          cmp [number_panel],7
  8.          jne no_file
  9.  
  10.          ;<<<<<NEW>>>>>>>
  11.          cmp [number_menu],1
  12.          jne no_new
  13.  
  14.          mov eax,80
  15.          mov ebx,100
  16.          mov ecx,150
  17.          mov edx,90
  18.          mov  esi,1
  19.          call draw_volume_rectangle
  20.  
  21.          mov eax,177
  22.          mov ebx,115
  23.          mov ecx,40
  24.          mov edx,14
  25.          mov  esi,4
  26.          call draw_volume_rectangle
  27.  
  28.          mov eax,177
  29.          mov ebx,115+24
  30.          mov ecx,40
  31.          mov edx,14
  32.          mov  esi,4
  33.          call draw_volume_rectangle
  34.  
  35.          mov eax,175
  36.          mov ebx,170
  37.          mov ecx,40
  38.          mov edx,15
  39.          mov  esi,1
  40.          call draw_volume_rectangle
  41.  
  42.          mov eax,90
  43.          mov ebx,118
  44.          mov ecx,0xffffff
  45.          mov edx,new_text1
  46.          mov esi,14
  47.          call print_text
  48.  
  49.          mov eax,90
  50.          mov ebx,118+24
  51.          mov ecx,0xffffff
  52.          mov edx,new_text2
  53.          mov esi,14
  54.          call print_text
  55.  
  56.          mov eax,185
  57.          mov ebx,175
  58.          mov ecx,0xffffff
  59.          mov edx,ok_text
  60.          mov esi,2
  61.          call print_text
  62.  
  63.          mov eax,8
  64.          mov ebx,177*65536+40
  65.          mov ecx,115*65536+14
  66.          mov edx,1000000000000000000000000000000b
  67.          add edx,1000
  68.          int 0x40
  69.  
  70.          mov eax,8
  71.          mov ebx,177*65536+40
  72.          mov ecx,139*65536+14
  73.          mov edx,1000000000000000000000000000000b
  74.          add edx,1001
  75.          int 0x40
  76.  
  77.          mov eax,8
  78.          mov ebx,175*65536+40
  79.          mov ecx,170*65536+15
  80.          mov edx,1000000000000000000000000000000b
  81.          add edx,1002
  82.          int 0x40
  83.  
  84.          no_activate_space:
  85.  
  86.          mov eax,10
  87.          int 0x40
  88.  
  89.          cmp eax,1
  90.          je exit_new
  91.  
  92.          cmp eax,3
  93.          jne no_activate_space
  94.  
  95.          mov eax,17
  96.          int 0x40
  97.          shr eax,8
  98.  
  99.          cmp eax,1000
  100.          jl no_activate_space
  101.  
  102.          cmp eax,1000
  103.          jne no_picture_size_x
  104.  
  105.          mov eax,180
  106.          mov ebx,119
  107.          mov ecx,5
  108.          call dialog_line
  109.  
  110.          mov eax,string_
  111.          mov ebx,13
  112.          call find_symvol
  113.  
  114.          dec eax
  115.          mov [length_number],eax
  116.          mov eax,string_
  117.          call value
  118.  
  119.          mov [Picture_SizeX],eax
  120.  
  121.          jmp no_activate_space
  122.  
  123.          no_picture_size_x:
  124.  
  125.          cmp eax,1001
  126.          jne no_picture_size_y
  127.  
  128.          mov eax,180
  129.          mov ebx,119+24
  130.          mov ecx,5
  131.          call dialog_line
  132.  
  133.          mov eax,string_
  134.          mov ebx,13
  135.          call find_symvol
  136.  
  137.          dec eax
  138.          mov [length_number],eax
  139.          mov eax,string_
  140.          call value
  141.  
  142.          mov [Picture_SizeY],eax
  143.  
  144.          jmp no_activate_space
  145.  
  146.          no_picture_size_y:
  147.  
  148.          cmp eax,1002
  149.          jne no_activate_space
  150.  
  151.          exit_new:
  152.  
  153.          mov eax,8
  154.          mov ebx,175*65536+40
  155.          mov ecx,170*65536+15
  156.          mov edx,11100000000000000000000000000000b
  157.          add edx,1002
  158.          int 0x40
  159.  
  160.          mov eax,8
  161.          mov ebx,177*65536+40
  162.          mov ecx,139*65536+14
  163.          mov edx,11100000000000000000000000000000b
  164.          add edx,1001
  165.          int 0x40
  166.  
  167.          mov eax,8
  168.          mov ebx,177*65536+40
  169.          mov ecx,115*65536+14
  170.          mov edx,11100000000000000000000000000000b
  171.          add edx,1000
  172.          int 0x40
  173.  
  174.          ;get memory for new picture
  175.          mov eax,[Picture_SizeX]
  176.          mov ebx,[Picture_SizeY]
  177.  
  178.          imul eax,ebx
  179.          lea eax,[eax+eax*2]
  180.  
  181.          mov ebx,[ScreenPointer]
  182.          add ebx,(1200*1000*3)+50*(20*20*3)+500000
  183.  
  184.          mov [PointerToPicture],ebx
  185.          mov [PointerToCopyPicture],ebx
  186.          mov [PointerToCopyPicture2],ebx
  187.          mov [PointerToEditBufer],ebx
  188.          mov [PointerToSpriteBufer],ebx
  189.  
  190.          add [PointerToCopyPicture],eax
  191.  
  192.          add [PointerToCopyPicture2],eax
  193.          add [PointerToCopyPicture2],eax
  194.  
  195.          add [PointerToEditBufer],eax
  196.          add [PointerToEditBufer],eax
  197.          add [PointerToEditBufer],eax
  198.  
  199.          add [PointerToSpriteBufer],eax
  200.          add [PointerToSpriteBufer],eax
  201.          add [PointerToSpriteBufer],eax
  202.          add [PointerToSpriteBufer],eax
  203.  
  204.          call GetMemory
  205.  
  206.          and [save_flag],0
  207.          and [number_panel],0
  208.          and [number_menu],0
  209.  
  210.          call cleare_work_arrea
  211.          call drawwin
  212.  
  213.          jmp still
  214.          no_new:
  215.  
  216.          ;<<<<<OPEN>>>>>>>
  217.         cmp [number_menu],2
  218.          jne no_open
  219.  
  220.          opendialog drawwin,open_1,open_2,file_path
  221.          open_1:
  222.  
  223.          mov eax,40
  224.          mov ebx,100111b
  225.          int 0x40
  226.  
  227.          mov eax,file_path
  228.          mov ebx,[ScreenPointer]
  229.          add ebx,0x10000
  230.  
  231.          call load_heading_of_file
  232.  
  233.          mov esi,[ScreenPointer]
  234.          add esi,0x10000
  235.          ;-------------is this BMP file ?----------------
  236.          xor eax,eax
  237.          mov ax,[esi]
  238.          mov [type],ax
  239.  
  240.          cmp [type],word 'BM'
  241.          jne no_bmp_file
  242.  
  243.          xor eax,eax
  244.          xor ebx,ebx
  245.          mov eax,[esi+18]
  246.          mov ebx,[esi+22]
  247.          mov [Picture_SizeX],eax
  248.          mov [Picture_SizeY],ebx
  249.  
  250.          jmp exit_type
  251.  
  252.          no_bmp_file:
  253.  
  254.          ;-------------is this GIF file ?----------------
  255.          xor eax,eax
  256.          mov ax,[esi]
  257.          mov [type],ax
  258.  
  259.          cmp [type],'GI'
  260.          jne no_gif_file
  261.  
  262.          add esi,6
  263.          xor eax,eax
  264.          xor ebx,ebx
  265.          mov ax,word[esi]
  266.          mov bx,word[esi+2]
  267.          mov [Picture_SizeX],eax
  268.          mov [Picture_SizeY],ebx
  269.  
  270.          jmp exit_type
  271.  
  272.          no_gif_file:
  273.  
  274.          jmp no_unpakcing_file
  275.  
  276.          exit_type:
  277.  
  278.          ;----------------------------------------------------------
  279.          ;Get momory for unpacking picture and for picture's bufers
  280.          ;----------------------------------------------------------
  281.          mov eax,[Picture_SizeX]
  282.          mov ebx,[Picture_SizeY]
  283.  
  284.          imul eax,ebx
  285.          lea eax,[eax+eax*2]
  286.  
  287.          mov ebx,[ScreenPointer]
  288.          add ebx,(1200*1000*3)+50*(20*20*3)+500000
  289.  
  290.          mov [PointerToPicture],ebx
  291.          mov [PointerToCopyPicture],ebx
  292.          mov [PointerToCopyPicture2],ebx
  293.          mov [PointerToEditBufer],ebx
  294.          mov [PointerToSpriteBufer],ebx
  295.  
  296.          add [PointerToCopyPicture],eax
  297.  
  298.          add [PointerToCopyPicture2],eax
  299.          add [PointerToCopyPicture2],eax
  300.  
  301.          add [PointerToEditBufer],eax
  302.          add [PointerToEditBufer],eax
  303.          add [PointerToEditBufer],eax
  304.  
  305.          add [PointerToSpriteBufer],eax
  306.          add [PointerToSpriteBufer],eax
  307.          add [PointerToSpriteBufer],eax
  308.          add [PointerToSpriteBufer],eax
  309.  
  310.          call GetMemory
  311.          ;----------------------------------------------------------
  312.          ;--------------------Load file in memory-------------------
  313.          ;----------------------------------------------------------
  314.  
  315.          mov eax,file_path
  316.          mov ebx,[PointerToCopyPicture]
  317.          add ebx,1000
  318.  
  319.          call load_file
  320.  
  321.          ;----------------------------------------------------------
  322.          ;-------------------Unpacking picture----------------------
  323.          ;----------------------------------------------------------
  324.          mov esi,[PointerToCopyPicture]
  325.          add esi,1000
  326.          mov edi,[PointerToPicture]
  327.          mov eax,[ScreenPointer]
  328.  
  329.          cmp [type],'BM'
  330.          jne no_unpakcing_bmp_file
  331.             ;BMP DECODER
  332.             call bmptoimg
  333.             mov [save_flag],1
  334.          no_unpakcing_bmp_file:
  335.  
  336.  
  337.          cmp [type],'GI'
  338.          jne no_unpakcing_file
  339.            ;GIF DECODER
  340.            sub edi,12
  341.            call ReadGIF
  342.            mov [save_flag],1
  343.          no_unpakcing_file:
  344.  
  345.          call load_icons
  346.          call drawwin
  347.  
  348.          open_2:
  349.  
  350.          mov [Scroll1CoordinatX],9
  351.          mov [Scroll2CoordinatY],89
  352.          and [number_panel],0
  353.          and [number_menu],0
  354.  
  355.          jmp still
  356.  
  357.          no_open:
  358.  
  359.          ;<<<<<<<<<<<SAVE>>>>>>>>>>>>
  360.          cmp [number_menu],3
  361.          jne no_save_
  362.  
  363.          mov al,[save_flag]
  364.  
  365.          test al,al
  366.          jz no_save_file
  367.  
  368.          jmp save_enter
  369.  
  370.          no_save_file:
  371.  
  372.          and [number_panel],0
  373.          and [number_menu],0
  374.  
  375.          jmp still
  376.  
  377.          no_save_:
  378.  
  379.          ;<<<<<<<<<SAVE AS>>>>>>>>>>>
  380.          cmp [number_menu],4
  381.          jne no_save
  382.  
  383.          savedialog drawwin,save1,save2,file_path
  384.  
  385.          save1:
  386.  
  387.          save_enter:
  388.          mov eax,40
  389.          mov ebx,100111b
  390.          int 0x40
  391.  
  392.          call analizing_picture_to_palette
  393.          ;eax => number of colors in picture
  394.          mov ebx,[PointerToPicture]
  395.          mov ecx,[PointerToEditBufer]
  396.          mov edx,[PointerToPalette]
  397.          mov esi,[Picture_SizeX]
  398.          mov edi,[Picture_SizeY]
  399.  
  400.          call coding_bmp
  401.  
  402.          mov eax,file_path
  403.          mov ecx,ebx
  404.          mov ebx,[PointerToEditBufer]
  405.          push eax
  406.          push ebx
  407.          push ecx
  408.  
  409.          call save_file
  410.  
  411.          mov [save_flag],1
  412.          and [number_panel],0
  413.          and [number_menu],0
  414.          call drawwin
  415.  
  416.          jmp still
  417.  
  418.          save2:
  419.  
  420.          and [number_panel],0
  421.          and [number_menu],0
  422.  
  423.          jmp still
  424.          no_save:
  425.  
  426.          ;<<<<<<EXIT>>>>>>>
  427.          cmp [number_menu],5
  428.          jne no_exit_program
  429.  
  430.          mov eax,-1
  431.          int 0x40
  432.  
  433.          no_exit_program:
  434.  
  435.          no_file:
  436.  
  437.          ;|||||||||||||||||||||||||||||EDIT|||||||||||||||||||||||||
  438.  
  439.          ;<<<<<<<<<<UNDO>>>>>>>>>>
  440.          cmp [number_panel],6
  441.          jne no_edit
  442.  
  443.          cmp [number_menu],1
  444.          jne no_undo
  445.  
  446.          cmp [number_undo],1
  447.          jne no_one____
  448.  
  449.          mov esi,[PointerToCopyPicture]
  450.  
  451.          no_one____:
  452.  
  453.          cmp [number_undo],2
  454.          jne no_two____
  455.  
  456.          mov esi,[PointerToCopyPicture2]
  457.  
  458.          no_two____:
  459.  
  460.          mov edi,[PointerToPicture]
  461.          mov ecx,[Picture_SizeX]
  462.          imul ecx,[Picture_SizeY]
  463.          lea ecx,[ecx+ecx*2]
  464.          add ecx,4
  465.          shr ecx,2
  466.          cld
  467.          rep movsd
  468.          call MovePictureToWorkScreen
  469.  
  470.          dec [number_undo]
  471.          jnz no_null_undo
  472.  
  473.          mov [number_undo],1
  474.  
  475.          no_null_undo:
  476.  
  477.          and [number_panel],0
  478.          and [number_menu],0
  479.          jmp still
  480.          no_undo:
  481.  
  482.          ;<<<<<<<<<<COPY>>>>>>>>>>
  483.  
  484.          cmp [number_menu],2
  485.          jne no_copy
  486.  
  487.          cmp [instrument_used],1
  488.          jne no_copy
  489.          cmp [Activate_instrument],0
  490.          jne no_copy
  491.  
  492.         mov eax,[OldX]
  493.         mov ebx,[OldY]
  494.  
  495.         cmp eax,[rectangular_shade_x]
  496.         jl no_remove_x_copy
  497.  
  498.         mov ecx,[rectangular_shade_x]
  499.         mov [OldX],ecx                    ; OldX <-----> rectangulare_shade_x
  500.         mov [rectangular_shade_x],eax
  501.  
  502.         no_remove_x_copy:
  503.  
  504.         cmp ebx,[rectangular_shade_y]
  505.         jl no_remove_y_copy
  506.  
  507.         mov ecx,[rectangular_shade_y]
  508.         mov [OldY],ecx                    ; OldY <-----> rectangulare_shade_y
  509.         mov [rectangular_shade_y],ebx
  510.  
  511.         no_remove_y_copy:
  512.  
  513.          mov eax,[OldX]
  514.          mov ebx,[OldY]
  515.          mov ecx,[rectangular_shade_x]
  516.          mov edx,[rectangular_shade_y]
  517.          inc eax
  518.          inc ebx
  519.          dec ecx
  520.          dec edx
  521.  
  522.          mov [x],eax
  523.          mov [y],ebx
  524.          mov esi,eax
  525.          mov edi,ebx
  526.          mov [Dx_],1
  527.          mov [Dy_],1
  528.  
  529.          sub ecx,eax
  530.          jnz no_signum_fill_r_x_copy
  531.  
  532.          mov [Dx_],-1
  533.  
  534.          no_signum_fill_r_x_copy:
  535.  
  536.          sub edx,ebx
  537.          jnz no_signum_fill_r_y_copy
  538.  
  539.          mov [Dy_],-1
  540.  
  541.          no_signum_fill_r_y_copy:
  542.  
  543.          mov ebx,[rectangular_shade_y]
  544.          sub ebx,edi
  545.  
  546.          mov edx,[PointerToEditBufer]
  547.          mov [y],edi
  548.          loop_fill_rectangle_y_copy:
  549.  
  550.          mov [x],esi
  551.          loop_fill_rectangle_x_copy:
  552.  
  553.          push esi
  554.          push edi
  555.  
  556.          mov eax,[PointerToPicture]
  557.          mov ebx,[Picture_SizeX]
  558.          mov esi,[x]
  559.          mov edi,[y]
  560.          call GetColorOfPixel
  561.  
  562.          mov [edx],ax
  563.          shr eax,16
  564.          mov [edx+2],al
  565.  
  566.          pop edi
  567.          pop esi
  568.  
  569.          add edx,3
  570.  
  571.          mov eax,[x]
  572.          add eax,[Dx_]
  573.          mov [x],eax
  574.  
  575.          cmp eax,[rectangular_shade_x]
  576.          jl loop_fill_rectangle_x_copy
  577.  
  578.          mov eax,[y]
  579.          add eax,[Dy_]
  580.          mov [y],eax
  581.  
  582.          cmp eax,[rectangular_shade_y]
  583.          jl loop_fill_rectangle_y_copy
  584.  
  585.          call MovePictureToWorkScreen
  586.  
  587.          and [number_panel],0
  588.          and [number_menu],0
  589.          mov [DrawSprite_flag],1
  590.  
  591.          jmp still
  592.  
  593.          no_copy:
  594.  
  595.          ;<<<<<<<<<<PASTE>>>>>>>>
  596.          cmp [number_menu],3
  597.          jne no_paste
  598.  
  599.          cmp [instrument_used],1
  600.          jne no_paste
  601.  
  602.          cmp [Activate_instrument],0
  603.          jne no_paste
  604.  
  605.          mov eax,[OldX]
  606.          mov ebx,[OldY]
  607.  
  608.          cmp eax,[rectangular_shade_x]
  609.          jl no_remove_x_paste
  610.  
  611.          mov ecx,[rectangular_shade_x]
  612.          mov [OldX],ecx                    ; OldX <-----> rectangulare_shade_x
  613.          mov [rectangular_shade_x],eax
  614.  
  615.          no_remove_x_paste:
  616.  
  617.          cmp ebx,[rectangular_shade_y]
  618.          jl no_remove_y_paste
  619.  
  620.          mov ecx,[rectangular_shade_y]
  621.          mov [OldY],ecx                    ; OldY <-----> rectangulare_shade_y
  622.          mov [rectangular_shade_y],ebx
  623.  
  624.          no_remove_y_paste:
  625.  
  626.          mov eax,[OldX]
  627.          mov ebx,[OldY]
  628.          mov ecx,[rectangular_shade_x]
  629.          mov edx,[rectangular_shade_y]
  630.          inc eax
  631.          inc ebx
  632.          dec ecx
  633.          dec edx
  634.  
  635.          mov [x],eax
  636.          mov [y],ebx
  637.          mov esi,eax
  638.          mov edi,ebx
  639.          mov [Dx_],1
  640.          mov [Dy_],1
  641.  
  642.          sub ecx,eax
  643.          jnz no_signum_fill_r_x_paste
  644.  
  645.          mov [Dx_],-1
  646.  
  647.          no_signum_fill_r_x_paste:
  648.  
  649.          sub edx,ebx
  650.          jnz no_signum_fill_r_y_paste
  651.  
  652.          mov [Dy_],-1
  653.  
  654.          no_signum_fill_r_y_paste:
  655.  
  656.          mov edx,[PointerToEditBufer]
  657.          mov [y],edi
  658.  
  659.          loop_fill_rectangle_y_paste:
  660.  
  661.          mov [x],esi
  662.          loop_fill_rectangle_x_paste:
  663.  
  664.          push esi
  665.          push edi
  666.  
  667.          mov ecx,[edx]
  668.          and ecx,0xffffff ;color
  669.  
  670.          mov eax,[PointerToPicture]
  671.          mov ebx,[Picture_SizeX]
  672.          mov esi,[x]
  673.          mov edi,[y]
  674.          call PutPixel
  675.  
  676.          pop edi
  677.          pop esi
  678.  
  679.          add edx,3
  680.  
  681.          mov eax,[x]
  682.          add eax,[Dx_]
  683.          mov [x],eax
  684.          cmp eax,[rectangular_shade_x]
  685.          jl loop_fill_rectangle_x_paste
  686.  
  687.          mov eax,[y]
  688.          add eax,[Dy_]
  689.          mov [y],eax
  690.          cmp eax,[rectangular_shade_y]
  691.  
  692.          jl loop_fill_rectangle_y_paste
  693.  
  694.          call MovePictureToWorkScreen
  695.          and [number_panel],0
  696.          and [number_menu],0
  697.          mov [Paste_flag],1
  698.  
  699.          jmp still
  700.  
  701.          no_paste:
  702.  
  703.          ;<<<<<<<<<<CUT>>>>>>>>>>
  704.          cmp [number_menu],4
  705.          jne no_cut
  706.  
  707.          cmp [instrument_used],1
  708.          jne no_cut
  709.  
  710.          cmp [Activate_instrument],0
  711.          jne no_cut
  712.  
  713.          mov eax,[OldX]
  714.          mov ebx,[OldY]
  715.  
  716.          cmp eax,[rectangular_shade_x]
  717.          jl no_remove_x_cut
  718.  
  719.          mov ecx,[rectangular_shade_x]
  720.          mov [OldX],ecx                    ; OldX <-----> rectangulare_shade_x
  721.          mov [rectangular_shade_x],eax
  722.  
  723.          no_remove_x_cut:
  724.  
  725.          cmp ebx,[rectangular_shade_y]
  726.          jl no_remove_y_cut
  727.  
  728.          mov ecx,[rectangular_shade_y]
  729.          mov [OldY],ecx                    ; OldY <-----> rectangulare_shade_y
  730.          mov [rectangular_shade_y],ebx
  731.  
  732.          no_remove_y_cut:
  733.  
  734.          mov eax,[OldX]
  735.          mov ebx,[OldY]
  736.          mov ecx,[rectangular_shade_x]
  737.          mov edx,[rectangular_shade_y]
  738.          inc eax
  739.          inc ebx
  740.          dec ecx
  741.          dec edx
  742.  
  743.          mov [x],eax
  744.          mov [y],ebx
  745.          mov esi,eax
  746.          mov edi,ebx
  747.          mov [Dx_],1
  748.          mov [Dy_],1
  749.  
  750.          sub ecx,eax
  751.          jnz no_signum_fill_r_x
  752.  
  753.          mov [Dx_],-1
  754.  
  755.          no_signum_fill_r_x:
  756.  
  757.          sub edx,ebx
  758.          jnz no_signum_fill_r_y
  759.  
  760.          mov [Dy_],-1
  761.  
  762.          no_signum_fill_r_y:
  763.  
  764.          mov [y],edi
  765.          loop_fill_rectangle_y:
  766.  
  767.          mov [x],esi
  768.          loop_fill_rectangle_x:
  769.  
  770.          push esi
  771.          push edi
  772.  
  773.          mov eax,[PointerToPicture]
  774.          mov ebx,[Picture_SizeX]
  775.          mov ecx,dword 0xffffff
  776.          mov esi,[x]
  777.          mov edi,[y]
  778.          call PutPixel
  779.  
  780.          pop edi
  781.          pop esi
  782.  
  783.          mov eax,[x]
  784.          add eax,[Dx_]
  785.          mov [x],eax
  786.  
  787.          cmp eax,[rectangular_shade_x]
  788.          jl loop_fill_rectangle_x
  789.  
  790.          mov eax,[y]
  791.          add eax,[Dy_]
  792.          mov [y],eax
  793.  
  794.          cmp eax,[rectangular_shade_y]
  795.          jl loop_fill_rectangle_y
  796.  
  797.          call MovePictureToWorkScreen
  798.  
  799.          and [number_panel],0
  800.          and [number_menu],0
  801.  
  802.          jmp still
  803.          no_cut:
  804.  
  805.          ;<<<<<<CLEARE ALL>>>>>>
  806.          cmp [number_menu],5
  807.          jne no_cleare_all
  808.  
  809.          call cleare_work_arrea
  810.  
  811.          call MovePictureToWorkScreen
  812.  
  813.          and [number_panel],0
  814.          and [number_menu],0
  815.  
  816.          jmp still
  817.          no_cleare_all:
  818.          ;<<<<<<TO ALLOCATE ALL>>>>>>
  819.  
  820.          cmp [number_menu],6
  821.          jne no_to_allocate_all
  822.  
  823.          mov [OldX],1
  824.          mov [OldY],1
  825.          mov eax,[Picture_SizeX]
  826.          mov ebx,[Picture_SizeY]
  827.          dec eax
  828.          dec ebx
  829.          mov [rectangular_shade_x],eax
  830.          mov [rectangular_shade_y],ebx
  831.          mov [instrument_used],1
  832.          mov [Activate_instrument],1
  833.          mov [Current_instrument],30
  834.          mov [crossing],0
  835.          and [number_panel],0
  836.          and [number_menu],0
  837.          ;call TakeButtonInstruments
  838.          ;call MovePictureToWorkScreen
  839.          jmp still
  840.  
  841.          no_to_allocate_all:
  842.  
  843.          no_edit:
  844.  
  845.  
  846.          jmp still
  847.  
  848.          ret
  849.