Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. draw_palitra:
  2.     ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
  3.     ;mcall   SF_DRAW_RECT, 110 shl 16+148, 9 shl 16+148, [sc.work]
  4.  
  5.     cmp     [renmode],2
  6.     je      cyrcle_draw
  7.     ;cmp     [renmode],1
  8.     ;je      picker_draw
  9.     cmp     [renmode],0
  10.     je      sheme_draw
  11.     ret
  12.  
  13.     ;.................................................................................................
  14.     ; Žâà¨á®¢ª  ªà㣮¢®© ¤¨ £à ¬¬ë
  15.     ;.................................................................................................
  16.     cyrcle_draw:
  17.     ;mov     eax,13
  18.     ;mov     edx,0x666666
  19.     ;mov     ebx,108*65536+152
  20.     ;mov     ecx,125*65536+33
  21.     ;mcall
  22.     ;mov     edx,0xF3F3F3
  23.     ;mov     ebx,109*65536+150
  24.     ;mov     ecx,126*65536+31
  25.     ;mcall
  26.  
  27.     ;mov     eax,4                         ; 4 - ¢ë¢¥á⨠áâபã ⥪áâ  ¢ ®ª­®
  28.     ;mov     ebx,115 shl 16+131            ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
  29.     ;mov     ecx,0x666666                  ; 0xX0RRGGBB (RR, GG, BB § ¤ îâ 梥â ⥪áâ )
  30.     ;mov     edx,hint                      ; 㪠§ â¥«ì ­  ­ ç «® áâப¨
  31.     ;mov     esi,24                        ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢
  32.     ;mcall
  33.     ;mov     ebx,125 shl 16+144            ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
  34.     ;mov     edx,hint2                     ; 㪠§ â¥«ì ­  ­ ç «® áâப¨
  35.     ;mov     esi,21                        ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢
  36.     ;mcall
  37.  
  38.     ;mov     edx,[color]
  39.     ;mov     ebx,109*65536+150
  40.     ;mov     ecx, 10*65536+150
  41.     ;mcall
  42.     call    mouse_local                   ; ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® ®ª­ 
  43.     mov     ecx, [mouse_x]                ; § ­®á¨¬ ¢ ॣ¨áâà
  44.     mov     edx, [mouse_y]                ; § ­®á¨¬ ¢ ॣ¨áâà
  45.     cmp     ecx, WIN_W-10
  46.     jg      cyrcle_draw_2
  47.     cmp     edx, WIN_H
  48.     jle     end_cyrcle_draw
  49.  
  50.     cyrcle_draw_2:
  51.         mcall   SF_SLEEP,10
  52.     call    desktop_get
  53.     call    mouse_global
  54.  
  55.     mov     ebx,112*65536+11
  56.     mov     esi,0                         ; counter=8
  57.     circle_loop:
  58.       mov     ecx, 10*65536+11
  59.       mov     edi,0
  60.       circle_loop2:
  61.         call    circle_pixel_read
  62.         mcall   SF_DRAW_RECT
  63.         add     ecx,11 shl 16
  64.         inc     edi
  65.         cmp     edi,13
  66.         jne     circle_loop2
  67.  
  68.       add     ebx,11 shl 16
  69.       inc     esi
  70.       cmp     esi,13
  71.       jne     circle_loop
  72.  
  73.     mcall   SF_DRAW_RECT, 177*65536+13, 76*65536+13, 0
  74.     mov     ecx, [mouse_x]
  75.     mov     edx, [mouse_y]
  76.     inc     ecx
  77.     inc     edx
  78.     mov     ebx, edx
  79.     imul    ebx, [desctop_w]
  80.     add     ebx, ecx
  81.     mcall   SF_GET_PIXEL
  82.     mov     edx,eax
  83.     mcall   SF_DRAW_RECT, 178*65536+11, 77*65536+11
  84.     ret
  85.     end_cyrcle_draw:
  86.     mcall   SF_DRAW_RECT, 111*65536+145, 9*65536+145, 0x666666
  87.     ret
  88.  
  89.     circle_pixel_read:
  90.     push    ecx ebx
  91.     mov     ecx, [mouse_x]
  92.     mov     edx, [mouse_y]
  93.     inc     ecx
  94.     add     ecx, esi
  95.     cmp     ecx, 6
  96.     jl      _cpr_exit
  97.     sub     ecx, 6
  98.     inc     edx
  99.     add     edx, edi
  100.     cmp     edx, 6
  101.     jl      _cpr_exit
  102.     sub     edx, 6
  103.  
  104.     mov     ebx, edx
  105.     imul    ebx, [desctop_w]
  106.     add     ebx, ecx
  107.     mcall   SF_GET_PIXEL
  108.     mov     edx,eax
  109.     pop     ebx ecx
  110.     ret
  111.  
  112.     _cpr_exit:
  113.     xor     edx,edx
  114.     pop     ebx ecx
  115.     ret
  116.  
  117.     ;picker_draw:
  118.     ;ret
  119.  
  120.     ;.................................................................................................
  121.     ; Žâà¨á®¢ª  ä®­  ¯®¤ ª­®¯ª¨
  122.     ;.................................................................................................
  123.  
  124.     sheme_draw:
  125.     mov     eax,SF_DRAW_RECT  ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
  126.     mov     edx,0x222222                  ; 梥â
  127.     mov     ecx, palitra_yw               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  128.     mov     esi,2                         ; ‘ç¥â稪 «¨­¨© ¯®¤«®¦¥ª
  129.     re_draw:
  130.     mov     ebx,palitra_xw             ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  131.     mov     edi,2                         ; ‘ç¥â稪 ª®«¨ç¥á⢠ ¯®¤«®¦¥ª
  132.     for_fon_loop:
  133.       int     0x40                        ; à¥à뢠­¨¥
  134.       add     ebx,(palitra_w+2) shl 16               ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® å
  135.       dec     edi                         ; “¬¥­ìè ¥¬ áç¥â稪 ª­®¯®ª
  136.       cmp     edi,0                       ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
  137.     jnz     for_fon_loop                  ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
  138.     dec     esi                           ; “¬¥­ìè ¥¬ ¥£®
  139.     cmp     esi,0                         ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
  140.     mov     ecx,(palitra_w+DRAWY+3) shl 16+palitra_w              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  141.     jnz     re_draw                       ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
  142.  
  143.     ;.................................................................................................
  144.     ; Žâà¨á®¢ª  ª­®¯®ª ¯® 横«ã
  145.     ;.................................................................................................
  146.     mov     eax,SF_DRAW_RECT  ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
  147.     mov     edx,0x0FFFFFFF                ; 梥â
  148.     mov     esi,4                         ; ‘ç¥â稪 ª®«¨ç¥á⢠  ¡§ æ¥¢ (#4,8)
  149.     mov     ebx,(palitra_x-CELLW-3) shl 16+CELLW               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  150.     for_abz:
  151.       ;;push    esi                       ; ‘®å࠭塞 §­ ç¥­¨¥ áç¥â稪  «¨­¨© ¢ á⥪
  152.       cmp     esi,2
  153.       jne     x2_line
  154.       mov     ebx,(palitra_x-CELLW-3) shl 16+CELLW
  155.       x2_line:
  156.       add     ebx,3 shl 16                ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® x
  157.       mov     edi,8                       ; ‘ç¥â稪 ª®«¨ç¥á⢠ ª­®¯®ª ¢ áâப¥
  158.       for_stolbik:
  159.         push    edi                       ; ‘®å࠭塞 §­ ç¥­¨¥ áç¥â稪  «¨­¨© ¢ á⥪
  160.         mov     edi,8                     ; ‘ç¥â稪 ª®«¨ç¥á⢠ ª­®¯®ª ¢ áâப¥
  161.         mov     ecx,  (1-CELLW/3) shl 16+CELLW          ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  162.         cmp     esi,2
  163.         jg      y2_line                   ; …᫨ ¡®«ìè¥ 4 â® ¨£­®à¨¬
  164.         mov     ecx,(palitra_w+4-(CELLW/3)) shl 16+CELLW
  165.         y2_line:
  166.         add     ebx,(CELLW+1) shl 16              ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® x
  167.         for_loop:
  168.           add     ecx,(CELLW+1) shl 16            ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® y
  169.           int     0x40                    ; à¥à뢠­¨¥
  170.           call    sub_red
  171.           dec     edi                     ; “¬¥­ìè ¥¬ áç¥â稪 ª­®¯®ª
  172.           cmp     edi,0                   ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
  173.           jnz     for_loop                ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
  174.       call    sub_green
  175.       pop     edi                         ; ˆ­ ç¥ ¢®ááâ ­ ¢«¨¢ ¥¬ áç¥â稪 «¨­¨©
  176.       dec     edi                         ; “¬¥­ìè ¥¬ ¥£®
  177.       cmp     edi,0                       ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
  178.       jnz     for_stolbik                 ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
  179.     call    sub_blue
  180.     ;;pop     esi                         ; ˆ­ ç¥ ¢®ááâ ­ ¢«¨¢ ¥¬ áç¥â稪 «¨­¨©
  181.     dec     esi                           ; “¬¥­ìè ¥¬ ¥£®
  182.     cmp     esi,0                         ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
  183.     jnz     for_abz                       ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
  184.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  185. ;end_draw_palitra-------------------------------------------------------------------------------------
  186.  
  187.  
  188. sub_red:
  189.     ;.................................................................................................
  190.     ;  áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
  191.     ;.................................................................................................
  192.     push    eax
  193.     mov     eax,[pnext]
  194.   ;sub_red_0                              ; palitra
  195.     cmp     al,0
  196.     jne     sub_red_1
  197.     sub     edx,0x40
  198.     jmp     sub_red_e
  199.   sub_red_1:                              ; random
  200.     cmp     al,1
  201.     jne     sub_red_2
  202.     sub     edx,0x20
  203.     jmp     sub_red_e
  204.   sub_red_2:                              ; gree
  205.     cmp     al,2
  206.     jne     sub_red_3
  207.     sub     edx,0x010101
  208.     jmp     sub_red_e
  209.   sub_red_3:                              ; red
  210.     cmp     al,3
  211.     jne     sub_red_4
  212.     sub     edx,0x0101
  213.     jmp     sub_red_e
  214.   sub_red_4:                              ; green
  215.     cmp     al,4
  216.     jne     sub_red_5
  217.     sub     edx,0x010001
  218.     jmp     sub_red_e
  219.   sub_red_5:                              ; blue
  220.     cmp     al,5
  221.     jne     sub_red_e
  222.     sub     edx,0x010100
  223.     jmp     sub_red_e
  224.   sub_red_e:
  225.     pop     eax
  226.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  227. ;end_sub_red------------------------------------------------------------------------------------------
  228.  
  229. sub_green:
  230.     ;.................................................................................................
  231.     ;  áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
  232.     ;.................................................................................................
  233.     push    eax
  234.     mov     eax,[pnext]
  235.   ;sub_green_0
  236.     cmp     al,0
  237.     jne     sub_green_1
  238.     sub     edx,0x4000
  239.     jmp     sub_green_e
  240.   sub_green_1:
  241.     cmp     al,1
  242.     jne     sub_green_e
  243.     sub     edx,0x2000
  244.     ;jmp     sub_green_e
  245.   sub_green_e:
  246.     pop     eax
  247.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  248. ;end_sub_green----------------------------------------------------------------------------------------
  249.  
  250.  
  251. sub_blue:
  252.     ;.................................................................................................
  253.     ;  áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
  254.     ;.................................................................................................
  255.     push    eax
  256.     mov     eax,[pnext]
  257.   ;sub_blue_0
  258.     cmp     al,0
  259.     jne     sub_blue_1
  260.     sub     edx,0x600000
  261.     jmp     sub_blue_e
  262.   sub_blue_1:
  263.     cmp     al,1
  264.     jne     sub_blue_e
  265.     sub     edx,0x400000
  266.     ;jmp     sub_blue_e
  267.   sub_blue_e:
  268.     pop     eax
  269.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  270. ;end_sub_blue-----------------------------------------------------------------------------------------