Subversion Repositories Kolibri OS

Rev

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

  1. ;#___________________________________________________________________________________________________
  2. ;****************************************************************************************************|
  3. ; Program Palitra (c) Sergei Steshin (Akyltist)                                                      |
  4. ;----------------------------------------------------------------------------------------------------|
  5. ;; Charset:DOS-866 Font:Courier New Size:9pt                                                         |
  6. ;.....................................................................................................
  7. ;; compiler:     FASM 1.69.31                                                                        |
  8. ;; version:      0.3.0                                                                               |
  9. ;; last update:  08/11/2012                                                                          |
  10. ;; e-mail:       dr.steshin@gmail.com                                                                |
  11. ;.....................................................................................................
  12. ;; History:                                                                                          |
  13. ;; 0.1.0 - ¥à¢ ï ¢¥àá¨ï ¯à®£à ¬¬ë.                                                                  |
  14. ;; 0.2.0 - ˆá¯à ¢«¥­® ¯®¯ ¤ ­¨¥ ¢ á¥âªã, ¡¥à¥âáï ¡«¨¦ ©è¨© ¯® ¤¨ £®­ «¨ ¯¨ªá¥«ì.                     |
  15. ;;       - „®¡ ¢«¥­ë ¯®«§ã­ª¨, ¤«ï ॣ㫨஢ ­¨ï rgb á®áâ ¢«ïîé¨å æ¢¥â  ¨ ¢ë¢®¤ íâ¨å á®áâ ¢«ïîé¨å.   |
  16. ;;       - “¡à ­ ¢ë¢®¤ æ¢¥â  ¢ ¡¨­ à­®¬ ¢¨¤¥ (¯®ª  §  ­¥ ­ ¤®¡­®áâìî ¨ ­¥  ªâã «ì­®áâìî).            |
  17. ;;       - Œ¥«ª ï ª®á¬¥â¨ª .                                                                         |
  18. ;; 0.3.0 - „®¡ ¢«¥­® ¯¥à¥ª«î祭¨¥ ¢¨¤®¢ 梥⮢ëå á奬 (ª­®¯ª  NEXT)                                  |
  19. ;;       - “«ãçè¥­ë ¯®«§ã­ª¨, ¯à®¨§¢®¤¨âáï ®¡à ¡®âª  ­ ¦ â¨ï à冷¬ á ¯®«§ã­ª®¬.                      |
  20. ;;       - —¨á«® á¥â®ª ¢ 梥⮢®© á奬¥ 㬥­ì襭® á 6 ¤® 4 (ªà â­®áâì 256, ¨­ ç¥ ¤ã¡«¨à®¢ ­¨¥ 梥â ).|
  21. ;;       - Œ¥«ª ï ª®á¬¥â¨ª .                                                                         |
  22. ;; 0.4.0 - „®¡ ¢«¥­® ¯¥à¥ª«î祭¨¥ ¬¥¦¤ã ¤¢ã¬ï 梥⠬¨                                                |
  23. ;;       - „®¡ ¢«¥­ ¯®«§ã­®ª ॣ㫨஢ ­¨ï ¯à®§à ç­®á⨠(¡¥§ ¢¨§ã «¨§ æ¨¨).                          |
  24. ;;       - „®¡ ¢«¥­® ¢ëà ¢­¨¢ ­¨¥ §­ ç¥­¨© rgba ¯® 業âàã, ¢ § ¢¨á¨¬®á⨠®â ¤«¨­­ë.                  |
  25. ;;       - Š®á¬¥â¨ç¥áª¨¥ ¯à ¢ª¨.                                                                     |
  26. ;;       - ¥¡®«ìè ï ®¯â¨¬¨§ æ¨ï.                                                                    |
  27. ;; 0.5.0 - „®¡ ¢«¥­  ª­®¯ª  ᬥ­ë ä®­  à ¡®ç¥£® á⮫  (®â Leency).                                   |
  28. ;;       - „®¡ ¢«¥­® ¨§¬¥­¥­¨¥ ä®­  à ¡®ç¥£® á⮫  £à ¤¨¥­â­®© § «¨¢ª®©.                             |
  29. ;;       - Š®á¬¥â¨ç¥áª¨¥ ¯à ¢ª¨.                                                                     |
  30. ;;       - ¥¡®«ìè ï ¤¥®¯â¨¬¨§ æ¨ï.                                                                  |
  31. ;.....................................................................................................
  32. ;; All rights reserved.                                                                              |
  33. ;;                                                                                                   |
  34. ;; Redistribution and use in source and binary forms, with or without modification, are permitted    |
  35. ;; provided that the following conditions are met:                                                   |
  36. ;;       * Redistributions of source code must retain the above copyright notice, this list of       |
  37. ;;         conditions and the following disclaimer.                                                  |
  38. ;;       * Redistributions in binary form must reproduce the above copyright notice, this list of    |
  39. ;;         conditions and the following disclaimer in the documentation and/or other materials       |
  40. ;;         provided with the distribution.                                                           |
  41. ;;       * Neither the name of the <organization> nor the names of its contributors may be used to   |
  42. ;;         endorse or promote products derived from this software without specific prior written     |
  43. ;;         permission.                                                                               |
  44. ;;                                                                                                   |
  45. ;; THIS SOFTWARE IS PROVIDED BY Sergei Steshin ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,      |
  46. ;; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A        |
  47. ;; PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY DIRECT, |
  48. ;; INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED    |
  49. ;; TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS       |
  50. ;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT          |
  51. ;; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS  |
  52. ;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                                      |
  53. ;....................................................................................................|
  54.  
  55.  
  56. ;#___________________________________________________________________________________________________
  57. ;****************************************************************************************************|
  58. ; ‡€ƒŽ‹Ž‚ŽŠ ˆ‘Ž‹Ÿ…ŒŽƒŽ ”€‰‹€ ˆ‹Ž†…ˆŸ „‹Ÿ ŠŽ‹ˆˆ Ž‘                                             |
  59. ;----------------------------------------------------------------------------------------------------/
  60.   use32
  61.   org    0x0
  62.  
  63.   db     'MENUET01'
  64.   dd     0x01
  65.   dd     START
  66.   dd     I_END
  67.   dd     0x100000
  68.   dd     0x1000
  69.   dd     0x0
  70.   dd     0x0
  71.  
  72.   include '..\..\..\macros.inc'
  73.   WIN_W      equ 295                      ; è¨à¨­  ®ª­ 
  74.   WIN_H      equ 195                      ; ¢ëá®â  ®ª­ 
  75.   WIN_X      equ 250                      ; ª®®à¤¨­ â  å ®ª­ 
  76.   WIN_Y      equ 190                      ; ª®®à¤¨­ â  ã ®ª­ 
  77.  
  78. START:
  79. ;#___________________________________________________________________________________________________
  80. ;****************************************************************************************************|
  81. ; Ž‘Ž‚Ž‰ –ˆŠ‹ Žƒ€ŒŒ› - Ž€Ž’Š€ ‘Ž›’ˆ‰                                                        |
  82. ;----------------------------------------------------------------------------------------------------/
  83. red:
  84.     call draw_main                        ; ¢ë§ë¢ ¥¬ ¯¥à¥à¨á®¢ªã ®ª­  ¯à¨«®¦¥­¨ï
  85. still:
  86.     mcall   10                            ; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï
  87.     cmp     eax,1                         ; ¯¥à¥à¨á®¢ âì ®ª­® ?
  88.     je      red                           ; ¥á«¨ ¤  - ­  ¬¥âªã red
  89.     cmp     eax,2                         ; ­ ¦ â  ª« ¢¨è  ?
  90.     je      key                           ; ¥á«¨ ¤  - ­  key
  91.     cmp     eax,3                         ; ­ ¦ â  ª­®¯ª  ?
  92.     je      button                        ; ¥á«¨ ¤  - ­  button
  93.     jmp     still                         ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横« 
  94. ;end_still
  95.  
  96. key:                                      ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
  97.     mcall   2                             ; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  (¢ ah) (âãâ ¢ ¯à¨­æ¨¯¥ ­¥ ­ã¦­ )
  98.     jmp     still                         ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
  99. ;end_key
  100.  
  101. button:
  102.     mcall   17                            ; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
  103.     cmp     ah, 1                         ; ¥á«¨ ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1,
  104.     jz      bexit                         ; ¢ë室¨¬
  105.   ;®¡à ¡®âª  ª­®¯ª¨ Next
  106.     cmp     ah, 12                        ; ¥á«¨ ­ ¦ â  ª­®¯ª  NEXT
  107.     jne     next_bg                       ; ¢ë室¨¬
  108.     inc     [pnext]                       ; 㢥«¨ç¨¢ ¥¬ ¯à¨ ­ ¦ â¨¨ ­®¬¥à ¯ «¨âàë
  109.     mov     [renmode],0                   ; ¢ª«îç ¥¬ æ¢¥â®¢ë¥ á奬ë
  110.     mov     eax,[pnext]                   ; § ­®á¨¬ §­ ç¥­¨¥ ¢ ¥ å
  111.     cmp     al,6                          ; áà ¢­¨¢ ¥¬ á § ï¢«¥­­ë¬ ª®«¨ç¥á⢮¬ ¯ «¨âà
  112.     jne     next_redraw                   ; ¥á«¨ ­¥ ¡®«ìè¥ ¬ ªá¨¬ã¬  â® ­  ¢ë§®¢ ®âà¨á®¢ª¨
  113.     xor     eax,eax                       ; ¨­ ç¥ § ­ã«ï¥¬ ¯ «¨âàã ­  default
  114.     mov     [pnext],eax                   ; ¨ § ¯®¬¨­ ¥¬ çâ® á¡à®á¨«¨ ¯ «¨âàã ­  default
  115.   next_redraw:
  116.     call    draw_palitra                  ; ˆ‘“…Œ €‹ˆ’“
  117.     jmp     still                         ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
  118.   next_bg:
  119.     cmp     ah, 14                        ; Š­®¯ª  BACKGROUND
  120.     jne     circle_bg                     ; ¥á«¨ ­¥ ­ ¦ â  â® ¢ë室¨¬
  121.     call    set_background                ; ¨­ ç¥ ãáâ ­ ¢«¨¢ ¥¬ ä®­
  122.     jmp     still                         ; ¨ ­  ®¦¨¤ ­¨¥ ᮡëâ¨ï
  123.   circle_bg:
  124.     cmp     ah, 15                        ; Š­®¯ª  Šà㣮¢ ï ¯ «¨âà 
  125.     jne     next_end                      ; ¥á«¨ ­¥ ­ ¦ â  â® ¢ë室¨¬
  126.     ;mov     [renmode],2                   ; ¢ª«îç ¥¬ ®âà¨á®¢ªã ªà㣮¢®© ¯ «¨âàë
  127.     call    draw_palitra                  ; ˆ‘“…Œ €‹ˆ’“
  128.     jmp     still                         ; ¨ ­  ®¦¨¤ ­¨¥ ᮡëâ¨ï
  129.   next_end:
  130.     cmp     ah,13                         ; COLOR SWAP
  131.     jne     color_swap_end
  132.     push    [color2]
  133.     push    [color]
  134.     pop     [color2]
  135.     pop     [color]
  136.     call    draw_result
  137.     jmp     still                         ; ˆ ã室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
  138.   color_swap_end:
  139.     cmp     ah, 7                         ; à®¢¥à塞 ­ ¦ â  ª­®¯ª  á ID=7
  140.     jne     color_button                  ; …᫨ ­¥ ­ ¦ â , â® ¨¤ñ¬ ¤ «ìè¥
  141.     call    mouse_get                     ; ˆ­ ç¥ ¢ª«îç ¥¬ ®¡à ¡®â稪 ¬ëè¨, ç⮡ë áç¨â âì §­ ç¥­¨¥ æ¢¥â  á ¯ «¨âàë
  142.     jmp     still                         ; ˆ ã室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
  143.   color_button:                           ; €‘—ð’ ª®®à¤¨­ â ¤«ï ¯®«§ã­ª®¢ RGBA
  144.     push    eax                           ; § ¯®¬¨­ ¥¬ ¥ å
  145.     call    mouse_local                   ; ¯®«ãç ¥¬ «®ª «ì­ë¥ ª®®à¤¨­ âë
  146.     mov     ebx,137                       ; ­¨¦­ïï £à ­¨æ  ¯®«§ã­ª  ¯® “
  147.     mov     ecx,[mouse_y]                 ; § ­¨á¨¬ ¢ ¥áå §­ ç¥­¨¥ ªãàá®à  ¯® “
  148.     sub     ebx,ecx                       ; ­ å®¤¨¬ à §­®áâì (â.¥. ªã¤  ᬥ頥âáï ¯®«§ã­®ª)
  149.     mov     ecx,3                         ; § ­®á¨¬ ¢ ¥áå æ¨äàã 3 (256/3=85, £¤¥ 85-¢ëá®â  ¯®«§ã­ª®¢)
  150.     imul    ecx,ebx                       ; ­ å®¤¨¬ ¨á⨭­ë© ¯ à ¬¥âà æ¢¥â  á ãçñ⮬ ¬ áèâ ¡  ¯®«§ã­ª ---+
  151.     pop     eax                           ; ¢®ááâ ­ ¢«¨¢ ¥¬ ¥ å                                          :
  152.   ;red_button:                            ; Šà á­ë© ’४¡ à                                              :
  153.     cmp     ah, 8                         ; ID=8                                                         :
  154.     jne     green_button                  ; ¥á«¨ ­¥â, â® ¯à®¢¥à塞 §¥«ñ­ë© â४¡ à                       :
  155.     mov     [cred],cl                     ; ¨­ ç¥ ¯à¨á¢ ¨¢ ¥¬ §­ ç¥­¨¥, ªà á­®¬ã 梥âã ᯥªâà     <------+
  156.     call    set_spectr                    ; ãáâ ­ ¢«¨¢ ¥¬ ᯥªâà
  157.     jmp     still                         ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
  158.   green_button:
  159.     cmp     ah, 9
  160.     jne     blue_button
  161.     mov     [cgreen],cl
  162.     call    set_spectr
  163.     jmp     still                         ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
  164.   blue_button:
  165.     cmp     ah, 10
  166.     jne     alpha_button
  167.     mov     [cblue],cl
  168.     call    set_spectr
  169.     jmp     still                         ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
  170.   alpha_button:
  171.     cmp     ah, 11
  172.     jne     still
  173.     mov     [calpha],cl
  174.     call    set_spectr
  175.     jmp     still                         ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
  176.   bexit:
  177.     mcall -1                              ; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
  178. ;end_button
  179.  
  180. ;#___________________________________________________________________________________________________
  181. ;****************************************************************************************************|
  182. ; ƒ‹€‚›‰ ŒŽ„“‹œ Ž’ˆ‘Ž‚Šˆ ŽŠ€ ˆ ‹…Œ…’Ž‚ ˆ‹Ž†…ˆŸ                                               |
  183. ;----------------------------------------------------------------------------------------------------/
  184. draw_main:
  185.     mov     eax,12                        ; äã­ªæ¨ï 12: ®§­ ç ¥â, çâ® ¡ã¤¥â à¨á®¢ âìáï ®ª­®
  186.     mov     ebx,1                         ; 1,­ ç «® à¨á®¢ ­¨ï
  187.     int     0x40                          ; à¥à뢠­¨¥
  188.  
  189.     mov     eax,48                        ; ”ã­ªæ¨ï 48 - á⨫¨ ®â®¡à ¦¥­¨ï ®ª®­
  190.     mov     ebx,3                         ; ®¤äã­ªæ¨ï 3 - ¯®«ãç¨âì áâ ­¤ àâ­ë¥ æ¢¥â  ®ª®­.
  191.     mov     ecx,sc                        ; “ª § â¥«ì ­  ¡ãä¥à à §¬¥à®¬ edx ¡ ©â, ¯®¤ áâàãªâãàã
  192.     mov     edx,sizeof.system_colors      ;  §¬¥à â ¡«¨æë 梥⮢ (¤®«¦¥­ ¡ëâì 40 ¡ ©â)
  193.     int     0x40                          ; à¥à뢠­¨¥
  194.  
  195.     mov     eax,48                        ; ”ã­ªæ¨ï 48 - á⨫¨ ®â®¡à ¦¥­¨ï ®ª®­.
  196.     mov     ebx,4                         ; ®¤äã­ªæ¨ï 4 - ¢®§¢à é ¥â eax = ¢ëá®â  ᪨­ .
  197.     int     0x40                          ; à¥à뢠­¨¥
  198.     mov     ecx,eax                       ; ‡ ¯®¬¨­ ¥¬ ¢ëá®âã ᪨­ 
  199.  
  200.     xor     eax,eax                       ; Žç¨é ¥¬ eax (mov eax,0) (”ã­ªæ¨ï 0)
  201.     mov     ebx,WIN_X shl 16+WIN_W        ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ x]
  202.     add     ecx,WIN_Y shl 16+WIN_H        ; ‚ëá®â  ᪨­  + [ª®®à¤¨­ â  ¯® y]*65536 + [à §¬¥à ¯® y] (168 ¤«ï ¢¥àᨨ 0.2)
  203.     mov     edx,[sc.work]                 ; ‚¨¤¨¬® áâ¨«ì ®ª­  ¯® ¤¥ä®«âã
  204.     or      edx,0x34000000                ; ˆ«¨ ®ª­® ᮠ᪨­®¬ 䨪á¨à®¢ ­­ëå à §¬¥à®¢
  205.     mov     edi,title                     ; ‡ £®«®¢®ª ®ª­ 
  206.     int     0x40                          ; à¥à뢠­¨¥
  207.  
  208.  
  209.     call    draw_palitra                  ; ˆ‘“…Œ €‹ˆ’“
  210.     call    draw_result                   ; ˆ‘“…Œ …‡“‹œ’€’
  211.  
  212.     mov     eax,8                         ; ”ã­ªæ¨ï 8 - ®¯à¥¤¥«¨âì/㤠«¨âì ª­®¯ªã
  213.     mov     ebx,110 shl 16+147            ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® å [ª-â  x]*65536 + [à §¬¥à]
  214.     mov     ecx,9 shl 16+147              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  215.     mov     edx,0x60000007                ;  ç «ì­®¥ ID ª­®¯®ª - 0xXYnnnnnn
  216.     int     0x40
  217.  
  218.     mov     ebx,13 shl 16+12              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® å [ª-â  x]*65536 + [à §¬¥à]
  219.     mov     edx,0x60000008                ; ID = 8
  220.     mov     ecx,51 shl 16+85              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  221.     int     0x40                          ; ¨á㥬 ­¥¢¨¤¨¬ãî ª­®¯ªã ¯®¤ á« ©¤¥à®¬ red
  222.     add     ebx,23 shl 16                 ; „®¡ ¢«ï¥¬
  223.     inc     edx                           ; ID = 9
  224.     int     0x40                          ; ¨á㥬 ­¥¢¨¤¨¬ãî ª­®¯ªã ¯®¤ á« ©¤¥à®¬ green
  225.     add     ebx,23 shl 16                 ; „®¡ ¢«ï¥¬
  226.     inc     edx                           ; ID = 10
  227.     int     0x40                          ; ¨á㥬 ­¥¢¨¤¨¬ãî ª­®¯ªã ¯®¤ á« ©¤¥à®¬ blue
  228.     add     ebx,23 shl 16                 ; „®¡ ¢«ï¥¬
  229.     inc     edx                           ; ID = 11
  230.     int     0x40                          ; ¨á㥬 ­¥¢¨¤¨¬ãî ª­®¯ªã ¯®¤ á« ©¤¥à®¬ alpha
  231.  
  232.     mov     eax,8                         ; ”ã­ªæ¨ï 8 - ®¯à¥¤¥«¨âì/㤠«¨âì ª­®¯ªã (‘Œ…€ –‚…’€)
  233.     mov     ebx,11 shl 16+20              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® å [ª-â  x]*65536 + [à §¬¥à]
  234.     mov     ecx,12 shl 16+20              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  235.     mov     edx,0x6000000D                ; ID = 13
  236.     int     0x40
  237.  
  238.     call    draw_bottom_panel
  239.     call    draw_left_panel
  240.  
  241.  
  242.     mov     eax,12                        ; äã­ªæ¨ï 12: ®§­ ç ¥â, çâ® ¡ã¤¥â à¨á®¢ âìáï ®ª­®
  243.     mov     ebx,2                         ; 2 - ª®­¥æ à¨á®¢ ­¨ï
  244.     int     0x40                          ; à¥à뢠­¨¥
  245.     ret
  246.  
  247. ;#___________________________________________________________________________________________________
  248. ;****************************************************************************************************|
  249. ; ‹ŽŠ ‚‘ŽŒŽƒ€’…‹œ›• Ž–…„“ ˆ ”“Š–ˆ‰ ˆ‹Ž†…ˆŸ                                                 |
  250. ;----------------------------------------------------------------------------------------------------/
  251.  
  252.  
  253.     ;------------------------------------------------------------------------------------------------+
  254.     draw_left_panel:                      ; Žâà¨á®¢ª  ¡®ª®¢®© ¯ ­¥«¨
  255.     ;.................................................................................................
  256.     mov     eax,8                         ; button_next_colorsheme
  257.     mov     ebx,266 shl 16+16             ; [x] + [size]
  258.     mov     ecx,9 shl 16+16               ; [y] + [size]
  259.     mov     edx,0x6000000C                ; ID = 12
  260.     mov     esi,[sc.work_button]          ; RGB
  261.     int     0x40                          ; call
  262.     mov     eax,13                        ; draw rect
  263.     mov     ebx,266 shl 16+16             ; [x] + [size]
  264.     mov     ecx,9 shl 16+16               ; [y] + [size]
  265.     mov     edx,0x666666                  ; RGB
  266.     push    esi                           ; backup esi
  267.     mov     esi,8                         ; counter=8
  268.     draw_lpanel:                          ; loop label
  269.       int     0x40                        ; call draw black rect
  270.       add     ecx,19 shl 16               ; move rect
  271.       dec     esi                         ; decrement counter
  272.       cmp     esi,0                       ; if counter!=zero
  273.       jne     draw_lpanel                 ; then goto label
  274.       mov     esi,8                       ; else counter=8
  275.       mov     ebx,267 shl 16+14           ; [x] + [size]
  276.       mov     ecx,10 shl 16+14            ; [y] + [size]
  277.       mov     edx,0xF3F3F3                ; RGB
  278.     draw_lpanel2:                         ; 2 loop label
  279.       int     0x40                        ; call draw white rect
  280.       add     ecx,19 shl 16               ; move rect
  281.       dec     esi                         ; decrement counter
  282.       cmp     esi,0                       ; if counter!=0
  283.       jne     draw_lpanel2                ; then goto label2
  284.     pop     esi                           ; restore esi
  285.     ; draw_left_arrow for button_next_colorsheme
  286.     mov     eax,4                         ; Write string
  287.     mov     ebx,272 shl 16+13             ; [x] + [y]
  288.     mov     ecx,0x0                       ; RGB
  289.     mov     edx,larrow                    ; string pointer
  290.     mov     esi,1                         ; count symbol
  291.     int     0x40                          ; call
  292.     mov     eax,38                        ; draw line
  293.     mov     ebx,270 shl 16+272            ; [start x] + [end x]
  294.     mov     ecx,16 shl 16+16              ; [start y] + [end y]
  295.     mov     edx,0x0                       ; RGB
  296.     int     0x40                          ; call
  297.     ret                                   ; return
  298.     ;.................................................................................................
  299.  
  300.  
  301.     ;------------------------------------------------------------------------------------------------+
  302.     draw_bottom_panel:                    ; Žâà¨á®¢ª  ­¨¦­¥© ¯ ­¥«¨
  303.     ;.................................................................................................
  304.     mov     eax,8                         ; draw button
  305.     mov     ebx,92 shl 16+100             ; [x] + [size]
  306.     mov     ecx,169 shl 16+16             ; [y] + [size]
  307.     mov     edx,14                        ; ID = 14
  308.     mov     esi,[sc.work_button]          ; RGB
  309.     int     0x40                          ; call
  310.     mov     eax,4                         ; Write string
  311.     mov     ebx,113 shl 16+174            ; [x] + [y]
  312.     mov     ecx,[sc.work_button_text]     ; RGB
  313.     mov     edx,bground                   ; string pointer
  314.     mov     esi,10                        ; count symbol
  315.     int     0x40                          ; call
  316.     mov     eax,38                        ; draw line
  317.     mov     ebx,4 shl 16+282              ; [start x] + [end x]
  318.     mov     ecx,163 shl 16+163            ; [start y] + [end y]
  319.     mov     edx,0x00666666                ; RGB
  320.     int     0x40                          ; call
  321.     ret                                   ; return
  322.     ;.................................................................................................
  323.  
  324. mouse_global:
  325.     ;.................................................................................................
  326.     ; ®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨
  327.     ;.................................................................................................
  328.     mov     eax,37                        ; ”ã­ªæ¨ï 37 - à ¡®â  á ¬ëèìî
  329.     mov     ebx,0                         ; ­ ¬ ­ã¦­ë £«®¡ «ì­ë¥ ª®®à¤¨­ âë
  330.     int     0x40                          ; eax = x*65536 + y, (x,y)=ª®®à¤¨­ âë ªãàá®à  ¬ëè¨
  331.     mov     ecx,eax                       ;
  332.     shr     ecx,16                        ; ecx = x+1
  333.     movzx   edx,ax                        ; edx = y+1
  334.     dec     ecx                           ; ecx = x
  335.     dec     edx                           ; edx = y
  336.     mov     [mouse_x],ecx                 ; mouse_x = x
  337.     mov     [mouse_y],edx                 ; mouse_y = y
  338.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  339. ;end_mouse_global
  340.  
  341. mouse_local:
  342.     ;.................................................................................................
  343.     ; ®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® ®ª­ 
  344.     ;.................................................................................................
  345.     mov     eax,37                        ; ”ã­ªæ¨ï 37 - à ¡®â  á ¬ëèìî
  346.     mov     ebx,1                         ; ­ ¬ ­ã¦­ë £«®¡ «ì­ë¥ ª®®à¤¨­ âë
  347.     int     0x40                          ; eax = x*65536 + y, (x,y)=ª®®à¤¨­ âë ªãàá®à  ¬ëè¨
  348.     mov     ecx,eax                       ;
  349.     shr     ecx,16                        ; ecx = x+1
  350.     movzx   edx,ax                        ; edx = y+1
  351.     dec     ecx                           ; ecx = x
  352.     dec     edx                           ; edx = y
  353.     mov     [mouse_x],ecx                 ; mouse_x = x
  354.     mov     [mouse_y],edx                 ; mouse_y = y
  355.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  356. ;end_mouse_local
  357.  
  358. set_background:
  359.     ;.................................................................................................
  360.     ; “áâ ­ ¢«¨¢ ¥â ä®­ à ¡®ç¥£® á⮫ 
  361.     ;.................................................................................................
  362.     mov     eax,15                        ; ”ã­ªæ¨ï 15 - à ¡®â  á ä®­®¢®© £à ä¨ª®©
  363.     mov     ebx,4                         ; ®¤äã­ªæ¨ï 4 - ãáâ ­®¢¨âì ०¨¬ ®âà¨á®¢ª¨ ä®­ .
  364.     mov     ecx,2                         ; ¥¦¨¬ ®âà¨á®¢ª¨ - § ¬®áâ¨âì (1)
  365.     int     0x40                          ; ‚ë§ë¢ ¥¬
  366.  
  367.     mov     eax,15                        ; ”ã­ªæ¨ï 15 - à ¡®â  á ä®­®¢®© £à ä¨ª®©
  368.     mov     ebx,1                         ; ®¤äã­ªæ¨ï 1 - ãáâ ­®¢¨âì à §¬¥à ä®­®¢®£® ¨§®¡à ¦¥­¨ï.
  369.     mov     ecx,2                         ; ˜¨à¨­  ¨§®¡à ¦¥­¨ï
  370.     mov     edx,2                         ; ‚ëá®â  ¨§®¡à ¦¥­¨ï
  371.     int     0x40                          ; ‚ë§ë¢ ¥¬
  372.  
  373.     mov     eax,[color]
  374.     mov     [cm+0],al
  375.     mov     [cm+9],al
  376.     shr     eax,8
  377.     mov     [cm+1],al
  378.     mov     [cm+10],al
  379.     shr     eax,8
  380.     mov     [cm+2],al
  381.     mov     [cm+11],al
  382.  
  383.     mov     eax,[color2]
  384.     mov     [cm+3],al
  385.     mov     [cm+6],al
  386.     shr     eax,8
  387.     mov     [cm+4],al
  388.     mov     [cm+7],al
  389.     shr     eax,8
  390.     mov     [cm+5],al
  391.     mov     [cm+8],al
  392.  
  393.     mov     eax,15                        ; ”ã­ªæ¨ï 15 - à ¡®â  á ä®­®¢®© £à ä¨ª®©
  394.     mov     ebx,5                         ; ®¤äã­ªæ¨ï 5 - ¯®¬¥áâ¨âì ¡«®ª ¯¨ªá¥«¥© ­  ä®­.
  395.     mov     ecx,cm                      ; “ª § â¥«ì ­  ¤ ­­ë¥ ¢ ä®à¬ â¥ BBGGRRBBGGRR
  396.     mov     edx,0                         ; C¬¥é¥­¨¥ ¢ ¤ ­­ëå ä®­®¢®£® ¨§®¡à ¦¥­¨ï
  397.     mov     esi,3*4                      ;  §¬¥à ¤ ­­ëå ¢ ¡ ©â å = 3 * ç¨á«® ¯¨ªá¥«¥©
  398.     int     0x40                          ; ‚ë§ë¢ ¥¬
  399.  
  400.     mov     eax,15                        ; ”ã­ªæ¨ï 15 - à ¡®â  á ä®­®¢®© £à ä¨ª®©
  401.     mov     ebx,3                         ; ®¤äã­ªæ¨ï 3 - ¯¥à¥à¨á®¢ âì ä®­.
  402.     int     0x40                          ; ‚ë§ë¢ ¥¬
  403.  
  404.     ret
  405. ;end_set_background
  406.  
  407. desktop_get:
  408.     ;.................................................................................................
  409.     ; Ž¯à¥¤¥«ï¥¬ è¨à¨­ã íªà ­ 
  410.     ;.................................................................................................
  411.     mov     eax,14                        ; Ž¯à¥¤¥«ï¥¬ è¨à¨­ã íªà ­  (eax = [xsize]*65536 + [ysize])
  412.     int     0x40                          ; xsize = à §¬¥à ¯® £®à¨§®­â «¨ - 1
  413.     mov     ebx,eax                       ;
  414.     shr     ebx,16                        ; ebx = xsize-1
  415.     ;movzx   edx,ax                       ;; edx = ysize-1 («¨è­¨© ª®¤)
  416.     inc     ebx                           ; ebx = xsize
  417.     ;inc     edx                          ;; edx = ysize («¨è­¨© ª®¤)
  418.     mov     [desctop_w],ebx
  419.     ret
  420. ;end_desktop_get
  421.  
  422. mouse_get:
  423.     mov     esi,2                         ; ŠŽ‘’›‹œ: ä« £ ¤«ï ¨§¡¥¦ ­¨ï § æ¨ª«¨¢ ­¨ï
  424.     call    mouse_global
  425.     call    desktop_get
  426.     re_mouse_loop:                        ; ŠŽ‘’›‹œ: ¬¥âª  ¤«ï ¢®§¢à â  ¥á«¨ ¯®¯ «¨ ¢ á¥âªã
  427.       mov     ebx,[desctop_w]
  428.       imul    ebx,[mouse_y]               ; ebx = y*xsize
  429.       add     ebx,[mouse_x]               ; ebx = y*xsize+x
  430.  
  431.       ;.................................................................................................
  432.       ; ¥à¥¬ 梥â á ¯ «¨âàë ¢ ¯¥à¥¬¥­­ãî
  433.       ;.................................................................................................
  434.       mov     eax,35                      ; ”ã­ªæ¨ï ¢§ïâ¨ï 梥â 
  435.       ;mov     ebx,ecx                    ;; ebx = y*xsize+x («¨è­¨© ª®¤)
  436.       int     0x40                        ; ®«ãç ¥¬ 梥⠢ eax
  437.       cmp     eax,[sc.work]               ; ‘à ¢­¨¢ ¥¬ á ä®­®¬ ¯à¨«®¦¥­¨ï
  438.       je      mouse_err                   ; …᫨ íâ® ®­ - â® ­¨ç¥£® ­¥ ¤¥« ¥¬
  439.       cmp     eax,0x222222                ; ‘à ¢­¨¢ ¥¬ á 梥⮬ á¥âª¨
  440.       je      mouse_err                   ; …᫨ íâ® ®­ - â® ­¨ç¥£® ­¥ ¤¥« ¥¬
  441.       jmp     mouse_set                   ; ŠŽ‘’›‹œ: ¯à룠¥¬ çâ®¡ë ­¥ ¡à âì 梥â á¥âª¨
  442.     mouse_err:                            ; ŠŽ‘’›‹œ: ¥á«¨ ¯®¯ «¨ ¢ á¥âªã ¨«¨ ä®­
  443.       inc     [mouse_y]                   ; ŠŽ‘’›‹œ: ᬥ頥¬ ¯® ¤¨ £®­ «¨ á­ ç «  ¯® å
  444.       inc     [mouse_x]                   ; ŠŽ‘’›‹œ: ᬥ頥¬ ¯® ¤¨ £®­ «¨ ¯®â®¬ ¯® ã
  445.       dec     esi                         ; ŠŽ‘’›‹œ: “¬¥­ìè ¥¬ ä« £
  446.       cmp     esi,0                       ; ŠŽ‘’›‹œ: ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
  447.     jz        mouse_exit                  ; ŠŽ‘’›‹œ: …᫨ ­®«ì ⮠ᤥ« «¨ ¢áñ çâ® ¬®£«¨
  448.     jmp    re_mouse_loop                  ; ŠŽ‘’›‹œ: …᫨ ­¥ ­®«ì â® ¯®¯à®¡ã¥¬ ¢§ïâì á®á¥«­¨© ¯¨ªá¥«ì
  449.     mouse_set:
  450.     mov     [color],eax                   ; ˆ­ ç¥ § ¯®¬¨­ ¥¬ ­®¢ë© 梥â
  451.     call    draw_result                   ; ‚뢮¤¨¬ १ã«ìâ â
  452.     mouse_exit:
  453.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  454. ;end_mouse_get----------------------------------------------------------------------------------------
  455.  
  456. draw_palitra:
  457.     mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
  458.     mov     ebx,110 shl 16+148            ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  459.     mov     ecx,9 shl 16+148              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  460.     mov     edx,[sc.work]                 ; 梥â
  461.     int     0x40
  462.  
  463.     ;cmp     [renmode],2
  464.     ;je      cyrcle_draw
  465.     ;cmp     [renmode],1
  466.     ;je      picker_draw
  467.     cmp     [renmode],0
  468.     je      sheme_draw
  469.     ret
  470.  
  471.     ;.................................................................................................
  472.     ; Žâà¨á®¢ª  ªà㣮¢®© ¤¨ £à ¬¬ë
  473.     ;.................................................................................................
  474.     ;cyrcle_draw:
  475.     ;mov     eax,7                         ; 7 - ­®¬¥à ä㭪樨
  476.     ;mov     ebx,circle                    ; 㪠§ â¥«ì ­  ¨§®¡à ¦¥­¨¥ ¢ ä®à¬ â¥ BBGGRRBBGGRR...
  477.     ;mov     ecx,148 shl 16 + 148          ; [à §¬¥à ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ y]
  478.     ;mov     edx,110 shl 16 + 9            ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
  479.     ;int     0x40
  480.     ;ret
  481.  
  482.     ;picker_draw:
  483.     ;ret
  484.  
  485.     ;.................................................................................................
  486.     ; Žâà¨á®¢ª  ä®­  ¯®¤ ª­®¯ª¨
  487.     ;.................................................................................................
  488.     sheme_draw:
  489.     mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
  490.     mov     edx,0x222222                  ; 梥â
  491.     mov     ecx,9 shl 16+73               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  492.     mov     esi,2                         ; ‘ç¥â稪 «¨­¨© ¯®¤«®¦¥ª
  493.     re_draw:
  494.     mov     ebx,110 shl 16+73             ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  495.     mov     edi,2                         ; ‘ç¥â稪 ª®«¨ç¥á⢠ ¯®¤«®¦¥ª
  496.     for_fon_loop:
  497.       int     0x40                        ; à¥à뢠­¨¥
  498.       add     ebx,75 shl 16               ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® å
  499.       dec     edi                         ; “¬¥­ìè ¥¬ áç¥â稪 ª­®¯®ª
  500.       cmp     edi,0                       ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
  501.     jnz     for_fon_loop                  ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
  502.     dec     esi                           ; “¬¥­ìè ¥¬ ¥£®
  503.     cmp     esi,0                         ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
  504.     mov     ecx,84 shl 16+73              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  505.     jnz     re_draw                       ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
  506.  
  507.     ;.................................................................................................
  508.     ; Žâà¨á®¢ª  ª­®¯®ª ¯® 横«ã
  509.     ;.................................................................................................
  510.     mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
  511.     mov     edx,0x0FFFFFFF                ; 梥â
  512.     mov     esi,4                         ; ‘ç¥â稪 ª®«¨ç¥á⢠  ¡§ æ¥¢ (#4,8)
  513.     mov     ebx,99 shl 16+8               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  514.     for_abz:
  515.       ;;push    esi                       ; ‘®å࠭塞 §­ ç¥­¨¥ áç¥â稪  «¨­¨© ¢ á⥪
  516.       cmp     esi,2
  517.       jne     x2_line
  518.       mov     ebx,99 shl 16+8
  519.       x2_line:
  520.       add     ebx,3 shl 16                ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® x
  521.       mov     edi,8                       ; ‘ç¥â稪 ª®«¨ç¥á⢠ ª­®¯®ª ¢ áâப¥
  522.       for_stolbik:
  523.         push    edi                       ; ‘®å࠭塞 §­ ç¥­¨¥ áç¥â稪  «¨­¨© ¢ á⥪
  524.         mov     edi,8                     ; ‘ç¥â稪 ª®«¨ç¥á⢠ ª­®¯®ª ¢ áâப¥
  525.         mov     ecx,  1 shl 16+8          ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]  
  526.         cmp     esi,2
  527.         jg      y2_line                   ; …᫨ ¡®«ìè¥ 4 â® ¨£­®à¨¬
  528.         mov     ecx,76 shl 16+8
  529.         y2_line:
  530.         add     ebx,9 shl 16              ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® x
  531.         for_loop:
  532.           add     ecx,9 shl 16            ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® y
  533.           int     0x40                    ; à¥à뢠­¨¥
  534.           call    sub_red
  535.           dec     edi                     ; “¬¥­ìè ¥¬ áç¥â稪 ª­®¯®ª
  536.           cmp     edi,0                   ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
  537.           jnz     for_loop                ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
  538.       call    sub_green
  539.       pop     edi                         ; ˆ­ ç¥ ¢®ááâ ­ ¢«¨¢ ¥¬ áç¥â稪 «¨­¨©
  540.       dec     edi                         ; “¬¥­ìè ¥¬ ¥£®
  541.       cmp     edi,0                       ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
  542.       jnz     for_stolbik                 ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
  543.     call    sub_blue
  544.     ;;pop     esi                         ; ˆ­ ç¥ ¢®ááâ ­ ¢«¨¢ ¥¬ áç¥â稪 «¨­¨©
  545.     dec     esi                           ; “¬¥­ìè ¥¬ ¥£®
  546.     cmp     esi,0                         ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
  547.     jnz     for_abz                       ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
  548.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  549. ;end_draw_palitra-------------------------------------------------------------------------------------
  550.  
  551.  
  552. sub_red:
  553.     ;.................................................................................................
  554.     ;  áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
  555.     ;.................................................................................................
  556.     push    eax
  557.     mov     eax,[pnext]
  558.   ;sub_red_0                              ; palitra
  559.     cmp     al,0
  560.     jne     sub_red_1
  561.     sub     edx,0x40
  562.     jmp     sub_red_e
  563.   sub_red_1:                              ; random
  564.     cmp     al,1
  565.     jne     sub_red_2
  566.     sub     edx,0x20
  567.     jmp     sub_red_e
  568.   sub_red_2:                              ; gree
  569.     cmp     al,2
  570.     jne     sub_red_3
  571.     sub     edx,0x010101
  572.     jmp     sub_red_e
  573.   sub_red_3:                              ; red
  574.     cmp     al,3
  575.     jne     sub_red_4
  576.     sub     edx,0x0101
  577.     jmp     sub_red_e
  578.   sub_red_4:                              ; green
  579.     cmp     al,4
  580.     jne     sub_red_5
  581.     sub     edx,0x010001
  582.     jmp     sub_red_e
  583.   sub_red_5:                              ; blue
  584.     cmp     al,5
  585.     jne     sub_red_e
  586.     sub     edx,0x010100
  587.     jmp     sub_red_e
  588.   sub_red_e:
  589.     pop     eax
  590.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  591. ;end_sub_red------------------------------------------------------------------------------------------
  592.  
  593. sub_green:
  594.     ;.................................................................................................
  595.     ;  áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
  596.     ;.................................................................................................
  597.     push    eax
  598.     mov     eax,[pnext]
  599.   ;sub_green_0
  600.     cmp     al,0
  601.     jne     sub_green_1
  602.     sub     edx,0x4000
  603.     jmp     sub_green_e
  604.   sub_green_1:
  605.     cmp     al,1
  606.     jne     sub_green_e
  607.     sub     edx,0x2000
  608.     ;jmp     sub_green_e
  609.   sub_green_e:
  610.     pop     eax
  611.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  612. ;end_sub_green----------------------------------------------------------------------------------------
  613.  
  614.  
  615. sub_blue:
  616.     ;.................................................................................................
  617.     ;  áçñâ ᬥ饭¨© ªà á­®£® æ¢¥â  ¢ £¥­¥à æ¨¨ æ¢¥â  ¯ «¨âàë
  618.     ;.................................................................................................
  619.     push    eax
  620.     mov     eax,[pnext]
  621.   ;sub_blue_0
  622.     cmp     al,0
  623.     jne     sub_blue_1
  624.     sub     edx,0x600000
  625.     jmp     sub_blue_e
  626.   sub_blue_1:
  627.     cmp     al,1
  628.     jne     sub_blue_e
  629.     sub     edx,0x400000
  630.     ;jmp     sub_blue_e
  631.   sub_blue_e:
  632.     pop     eax
  633.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  634. ;end_sub_blue-----------------------------------------------------------------------------------------
  635.  
  636. draw_result:
  637.     ;.................................................................................................
  638.     ; ®«ìè ï à ¬ª  ¢ë¢®¤  १ã«ìâ â 
  639.     ;.................................................................................................
  640.     mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
  641.     mov     edx,0x00666666                ; 梥â-®¡¢®¤ª¨
  642.     mov     ebx,4 shl 16+98               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  643.     mov     ecx,9 shl 16+148              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  644.     int     0x40
  645.     mov     edx,0x00F3F3F3                ; 梥â-ä®­ 
  646.     mov     ebx,5 shl 16+96               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  647.     mov     ecx,10 shl 16+146             ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  648.     int     0x40
  649.  
  650.     ;.................................................................................................
  651.     ; Žâà¨á®¢ª  १ã«ìâ â  æ¢¥â  ¢ hex color2
  652.     ;.................................................................................................
  653.     mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
  654.     ; color 2 - draw fringle
  655.     mov     edx,0x222222                  ; 梥â-®¡¢®¤ª¨
  656.     mov     ebx,16 shl 16+15              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  657.     mov     ecx,16 shl 16+15              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  658.     int     0x40                          ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
  659.     ; color 2 - draw color
  660.     mov     edx,[color2]                  ; 梥â
  661.     mov     ebx,17 shl 16+13              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  662.     mov     ecx,17 shl 16+13              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  663.     int     0x40                          ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
  664.     ; color 1 - draw fringle
  665.     mov     edx,0x222222                  ; 梥â-®¡¢®¤ª¨
  666.     mov     ebx,11 shl 16+15              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  667.     mov     ecx,12 shl 16+15              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  668.     int     0x40                          ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
  669.     ; value - draw fringle
  670.     mov     ebx,34 shl 16+62              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  671.     mov     ecx,16 shl 16+15              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  672.     int     0x40                          ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
  673.  
  674.     ; color 2 - draw color
  675.     mov     edx,[color]                   ; 梥â
  676.     mov     ebx,12 shl 16+13              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  677.     mov     ecx,13 shl 16+13              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  678.     int     0x40                          ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
  679.     ; value - draw background
  680.     mov     edx,0xFFFFFF                  ; 梥â-ä®­ 
  681.     mov     ebx,35 shl 16+60              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  682.     mov     ecx,17 shl 16+13              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  683.     int     0x40                          ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
  684.  
  685.     mov     eax,47                        ; ”ã­ªæ¨ï 47 - ¢ë¢®¤ ç¨á«  ¢ ®ª­®
  686.     mov     ecx,[color]                   ; ç¨á«® (¯à¨ bl=0) ¨«¨ 㪠§ â¥«ì (¯à¨ bl=1)
  687.     mov     esi,0x0                       ; 0xX0RRGGBB
  688.     mov     ebx,256+8 shl 16              ; ¯ à ¬¥âàë ¯à¥®¡à §®¢ ­¨ï ç¨á«  ¢ ⥪áâ (HEX)
  689.     mov     edx,45 shl 16+20              ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
  690.     int     0x40                          ; à¥à뢠­¨¥ - ¢ë¢®¤¨¬ १ã«ìâ â ¢ ®ª­® (HEX)
  691.  
  692.     mov     eax,4                         ; äã­ªæ¨ï 4: ­ ¯¨á âì ⥪áâ ¢ ®ª­¥
  693.     mov     ebx,38*65536+20               ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
  694.     mov     ecx,0x0                       ; 梥â ⥪áâ  RRGGBB
  695.     mov     edx,hex                       ; à¨á㥬 '#'
  696.     mov     esi,1                         ; ¤«¨­  ⥪áâ  ¢ ¡ ©â å
  697.     int     0x40
  698.  
  699.     ;.................................................................................................
  700.     ; Žâà¨á®¢ª  r g b §­ ç¥­¨©
  701.     ;.................................................................................................
  702.     call    get_spectr
  703.  
  704.     movzx   eax,[cred]                    ; ªà á­ë©
  705.     mov     ebx,9*65536+142               ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
  706.     call    draw_value                    ; ¢ë¢®¤¨¬ १ã«ìâ â
  707.  
  708.     movzx   eax,[cgreen]                  ; §¥«¥­ë©
  709.     mov     ebx,32*65536+142              ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
  710.     call    draw_value                    ; ¢ë¢®¤¨¬ १ã«ìâ â
  711.  
  712.     movzx   eax,[cblue]                   ; ᨭ¨©
  713.     mov     ebx,55*65536+142              ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
  714.     call    draw_value                    ; ¢ë¢®¤¨¬ १ã«ìâ â
  715.  
  716.     movzx   eax,[calpha]                  ;  «ìä 
  717.     mov     ebx,78*65536+142              ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
  718.     call    draw_value                    ; ¢ë¢®¤¨¬ १ã«ìâ â
  719.  
  720.     ;.................................................................................................
  721.     ; ‚뢮¤¨¬ ¡ãª¢ë r g b a
  722.     ;.................................................................................................
  723.     mov     eax,4                         ; 4 - ¢ë¢¥á⨠áâபã ⥪áâ  ¢ ®ª­®
  724.     mov     ebx,16 shl 16+40              ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
  725.     mov     ecx,0x0                       ; 0xX0RRGGBB (RR, GG, BB § ¤ îâ 梥â ⥪áâ )
  726.     mov     edx,cname                     ; 㪠§ â¥«ì ­  ­ ç «® áâப¨
  727.     mov     esi,1                         ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢
  728.     newline:                              ; 横«
  729.       int     0x40                        ; à¥à뢠­¨¥
  730.       add     ebx,23 shl 16               ; „®¡ ¢«ï¥¬
  731.       add     edx,1                       ; „®¡ ¢«ï¥¬
  732.       cmp     [edx],byte 'x'              ; ‘à ¢­¥­¨¥ á ¡ ©â®¬ å
  733.     jne    newline                        ; …᫨ ­¥ ­ã«ì ¨«¨ ­¥ à ¢­®
  734.  
  735.     ;.................................................................................................
  736.     ; Žâà¨á®¢ª  á« ©¤¥à®¢
  737.     ;.................................................................................................
  738.     mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
  739.     mov     edx,0x222222                  ; 梥â-®¡¢®¤ª¨
  740.     mov     ebx,16 shl 16+4               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  741.     mov     ecx,51 shl 16+86              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  742.     int     0x40
  743.     add     ebx,23 shl 16                 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
  744.     int     0x40
  745.     add     ebx,23 shl 16                 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
  746.     int     0x40
  747.     add     ebx,23 shl 16                 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
  748.     int     0x40
  749.  
  750.     mov     edx,0xFA0919                  ; 梥â-®¡¢®¤ª¨
  751.     mov     ebx,17 shl 16+2               ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  752.     mov     ecx,52 shl 16+84              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
  753.     int     0x40
  754.     mov     edx,0x08CE19                  ; 梥â-®¡¢®¤ª¨
  755.     add     ebx,23 shl 16                 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
  756.     int     0x40
  757.     mov     edx,0x0909FF                  ; 梥â-®¡¢®¤ª¨
  758.     add     ebx,23 shl 16                 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
  759.     int     0x40
  760.     mov     edx,0xE4E4E4                  ; 梥â-®¡¢®¤ª¨
  761.     add     ebx,23 shl 16                 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
  762.     int     0x40
  763.  
  764.     ;.................................................................................................
  765.     ; Žâà¨á®¢ª  ¯®«§ã­ª®¢
  766.     ;.................................................................................................
  767.     mov     edx,0x0                       ; 梥â-¯®«§ã­ª®¢
  768.     mov     ebx,17 shl 16+11              ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
  769.     movzx   eax,[cred]                    ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
  770.     call    draw_slider
  771.     add     ebx,23 shl 16
  772.     movzx   eax,[cgreen]                  ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
  773.     call    draw_slider
  774.     add     ebx,23 shl 16
  775.     movzx   eax,[cblue]                   ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
  776.     call    draw_slider
  777.     add     ebx,23 shl 16
  778.     movzx   eax,[calpha]                  ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
  779.     call    draw_slider
  780.  
  781.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  782. ;end_draw_result
  783.  
  784. draw_slider:
  785.     xor     ecx,ecx
  786.     mov     cl,0x3                        ; ¡ã¤¥¬ ¤¥«¨âì ¥£® ­  3 â ª ª ª ¯®«§ã­ª¨ ¤«¨­­®© 85 ¯¨ªá¥«¥©
  787.     div     cl                            ; ¤¥«¨¬ - 楫®¥ ¢ al ®áâ â®ª ¢ ah
  788.     mov     cl,136                        ; ­¨¦­ïï â®çª  ¯®«§ã­ª 
  789.     sub     cl,al                         ; cl=cl-al
  790.     shl     ecx,16
  791.     add     ecx,1                         ; § ¤ ¥¬ ­ ç «ì­®¥ ¯®«®¦¥­¨¥
  792.     mov     eax,13                        ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
  793.     int     0x40
  794.     push    ebx                           ; á®å࠭塞 ¤«ï á«¥¤ãî饣® ¯®«§ã­ª  x+w
  795.     sub     ebx,8                         ; â ª ª ª è¨à¨­  «¨­¨¨ 11 â® ®â­¨¬ ¥¬ 8 çâ®¡ë ªã¡¨ª áâ « è¨à¨­®© 3
  796.     add     ebx,8 shl 16                  ; Š®®à¤¨­ âë ¯® x ¤«ï ª¢ ¤à â  ­  ¯®«§ã­ª¥ ᬥ頥¬ ­  8 ¢ ¯à ¢®
  797.     inc     ecx                           ; ¡ë¤«®ª®¤¨¬ ¢ëá®âã ¯®«§ã­ª  ¤® 3-å (1+1=2)
  798.     inc     ecx                           ; (2+1=3) ­ã ¢®â ã ­ á ¡ã¤¥â ªã¡¨ª 3å3 ­  8 ¢ ¯à ¢® ®â «¨­¨¨
  799.     int     0x40                          ; à¨á㥬
  800.     pop     ebx                           ; ¢®ááâ ­ ¢«¨¢ ¥¬ ­®à¬ «ì­ë¥ ª®®à¤¨­ âë
  801.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  802.  
  803. ;end_slider
  804.  
  805. draw_value:
  806.     ;.................................................................................................
  807.     ; ‚뢮¤ ç¨á«  ¨§ áâப¨ ¢ 㪠§ ­­®© ®¡« áâ¨
  808.     ;.................................................................................................
  809.     push    ebx                           ; á®å࠭塞 ¯à¨á« ­­ë¥ ª®®à¤¨­ âë
  810.     mov     ebx,10                        ; ãáâ ­ ¢«¨¢ ¥¬ ®á­®¢ ­¨¥ á¨á⥬ë áç¨á«¥­¨ï
  811.     mov     edi,buff                      ; 㪠§ â¥«ì ­  áâப㠡ãä¥à 
  812.     call    int2ascii                     ; ª®­¢¥àâ¨à㥬 ç¨á«® ¨ «®¦¨¬ ª ª áâப㠢 ¡ãä¥à + esi ¤«¨­ 
  813.     mov     eax,4                         ; äã­ªæ¨ï 4: ­ ¯¨á âì ⥪áâ ¢ ®ª­¥
  814.     pop     ebx                           ; ¤®áâ ¥¬ ¨§ á⥪  ¯à¨á« ­­ë¥ ª®®à¤¨­ âë
  815.     cmp     esi,2                         ; –…’ˆŽ‚€ˆ… ’…Š‘’€
  816.     jne     draw_value_1
  817.     add     ebx,4 shl 16
  818.     jmp     draw_value_e
  819.   draw_value_1:
  820.     cmp     esi,1
  821.     jne     draw_value_e
  822.     add     ebx,7 shl 16
  823.   draw_value_e:
  824.     mov     ecx,0x0                       ; 梥â ⥪áâ  RRGGBB
  825.     mov     edx,buff                      ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
  826.     int     0x40
  827.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  828. ;end_draw_value
  829.  
  830. hex_digit:
  831.     ;.................................................................................................
  832.     ; à¥®¡à §®¢ ­¨¥ ¢ ASCII (¢­¥ § ¢¨á¨¬®á⨠®â á¨á⥬ë áç¨á«¥­¨ï)
  833.     ;.................................................................................................
  834.     cmp    dl,10                          ; ¢ dl ®¦¨¤ ¥âáï ç¨á«® ®â 0 ¤® 15
  835.     jb     .less                          ; ¥á«¨ dl<10 â® ¯¥à¥å®¤¨¬
  836.     add    dl,'A'-10                      ; 10->A 11->B 12->C ...
  837.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  838.     .less:
  839.     or     dl,'0'                         ; …᫨ á¨á⥬  áç¨á«¥­¨ï 10-ï ¨ ¬¥­¥¥
  840.     ret                                   ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  841. ;end_hex_digit
  842.  
  843. int2ascii:
  844.     ;.................................................................................................
  845.     ; à¥®¡à §®¢ ­¨¥ ç¨á«  ¢ áâபã
  846.     ;.................................................................................................
  847.     ; eax - 32-å §­ ç­®¥ ç¨á«®
  848.     ; ebx - ®á­®¢ ­¨¥ á¨á⥬ë áç¨á«¥­¨ï
  849.     ; edi - 㪠§ â¥«ì ­  áâப㠡ãä¥à 
  850.     ; ‚®§¢à é ¥â § ¯®«­¥­­ë© ¡ãä¥à ¨ esi - ¤«¨­  áâப¨
  851.     ;pushad
  852.     xor     esi,esi                       ; § ­ã«ï¥¬ áç¥â稪 ᨬ¢®«®¢
  853.     convert_loop:
  854.     xor     edx,edx                       ; § ­ã«ï¥¬ ॣ¨áâà ¯®¤ ®áâ â®ª
  855.     div     ebx                           ; eax/ebx - ®áâ â®ª ¢ edx
  856.     call    hex_digit                     ; ¯à¥®¡à §ã¥¬ ᨬ¢®«
  857.     push    edx                           ; «®¦¨¬ ¢ á⥪
  858.     inc     esi                           ; 㢥«¨ç¨¢ ¥¬ áç¥â稪
  859.     test    eax,eax                       ; ¥á«¨ ¥é¥ ¬®¦­® ¤¥«¨âì
  860.     jnz     convert_loop                  ; â® ¤¥«¨¥¬ ¥é¥
  861.     cld                                   ; ŽŸ‡€’…‹œŽ á¡à á뢠¥¬ ä« £ ­ ¯à ¢«¥­¨ï DF (§ ¯¨áì ¢¯¥àñ¤)
  862.     write_loop:                           ; ¨­ ç¥
  863.     pop     eax                           ; ¤®áâ ¥¬ ¨§ á⥪  ¢ ¥ å
  864.     stosb                                 ; § ¯¨á뢠¥¬ ¢ ¡ãä¥à ¯®  ¤à¥áã ES:(E)DI
  865.     dec     esi                           ; 㬥­ìè ¥¬ áç¥â稪
  866.     test    esi,esi                       ; ¥á«¨ ¥áâì çâ® ¤®áâ ¢ âì ¨§ á⥪ 
  867.     jnz     write_loop                    ; â® ¤®áâ ñ¬
  868.     mov     byte [edi],0                  ; ¨­ ç¥ ¤®¯¨áë뢠¥¬ ­ã«¥¢®© ¡ ©â
  869.     ;popad                                 ; ¢®ááâ ­ ¢«¨¢ ¥¬ §­ ç¥­¨ï ॣ¨áâ஢
  870.     ; ª®¤ ­¨¦¥ ­¥ ¨¬¥¥â ­¨ç¥£® ®¡é¥£® ª ä㭪樨, ¯à®áâ® ¢®§¢à é ¥â ¥é¥ ¤«¨­­ã ¯®«ã祭­®© áâப¨
  871.     mov     edi,buff                      ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
  872.     call    str_len
  873.     mov     esi,eax
  874.     ret                                   ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  875. ;end_int2ascii
  876.  
  877. get_spectr:
  878.     ;.................................................................................................
  879.     ; ¢®§¢à é ¥â r,g,b á®á⮢«ïî騥 梥â 
  880.     ;.................................................................................................
  881.     mov     ecx,[color]
  882.     mov     [cblue],cl
  883.     shr     ecx,8
  884.     mov     [cgreen],cl
  885.     shr     ecx,8
  886.     mov     [cred],cl
  887.     shr     ecx,8
  888.     mov     [calpha],cl
  889.     ret                                   ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  890. ;end_get_spectr
  891.  
  892. set_spectr:
  893.     ;.................................................................................................
  894.     ; ãáâ ­ ¢«¨¢ ¥â ¨§ r,g,b 梥â
  895.     ;.................................................................................................
  896.     movzx   eax,[calpha]
  897.     shl     eax,8
  898.     mov     al,[cred]
  899.     shl     eax,8
  900.     mov     al,[cgreen]
  901.     shl     eax,8
  902.     mov     al,[cblue]
  903.     mov     [color],eax
  904.     call    draw_result                   ; ‚뢮¤¨¬ १ã«ìâ â
  905.     ret                                   ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥­¨¥
  906. ;end_get_spectr
  907.  
  908. str_len:
  909.     ;.................................................................................................
  910.     ; ®¯à¥¤¥«ï¥â ¤«¨­ã áâப¨ (¢å®¤->EDI ZS offset ; ¢ë室->EAX ZS length)
  911.     ;.................................................................................................
  912.         push ecx
  913.         push esi
  914.         push edi
  915.  
  916.         cld
  917.         xor   al, al
  918.         mov ecx, 0FFFFFFFFh
  919.         mov esi, edi
  920.         repne scasb
  921.         sub edi, esi
  922.         mov eax, edi
  923.         dec eax
  924.  
  925.         pop edi
  926.         pop esi
  927.         pop ecx
  928.  
  929.         ret
  930. ;end_str_len
  931. ;#___________________________________________________________________________________________________
  932. ;****************************************************************************************************|
  933. ; ‹ŽŠ ……Œ…›• ˆ ŠŽ‘’€’                                                                         |
  934. ;----------------------------------------------------------------------------------------------------/
  935.  
  936. struct map_colors
  937.     c1         db 0
  938.     c2         db 0
  939.     c3         db 0
  940.     c4         db 0
  941.     c5         db 0
  942.     c6         db 0
  943.     c7         db 0
  944.     c8         db 0
  945.     c9         db 0
  946.     c10        db 0
  947.     c11        db 0
  948.     c12        db 0
  949. ends
  950.  
  951.     cm          db 12 dup(0)
  952.     color       dd 00000000h              ; åà ­¨â §­ ç¥­¨¥ ¢ë¡à ­­®£® 梥â 
  953.     color2      dd 00FFFFFFh              ; åà ­¨â §­ ç¥­¨¥ ¢â®à®£® ¢ë¡à ­­®£® 梥â 
  954.     mouse_x     dd 0                      ; åà ­¨â £«®¡ «ì­ãî å ª®®à¤¨­ âã ¬ëè¨
  955.     mouse_y     dd 0                      ; åà ­¨â £«®¡ «ì­ãî ã ª®®à¤¨­ âã ¬ëè¨
  956.     mouse_f     dd 0                      ; åà ­¨â ¤ ­­ë¥ ® ⮬ ª ª ï ª­®¯ª  ¬ëè¨ ¡ë«  ­ ¦ â 
  957.     desctop_w   dd 0                      ; åà ­¨â è¨à¨­ã íªà ­ 
  958.     sc          system_colors             ; åà ­¨â áâàãªâãàã á¨á⥬­ëå 梥⮢ ᪨­ 
  959.     title       db 'Palitra v0.5',0       ; åà ­¨â ¨¬ï ¯à®£à ¬¬ë
  960.     hex         db '#',0                  ; ¤«ï ¢ë¢®¤  à¥èñ⪨ ª ª ⥪áâ 
  961.     cname       db 'RGBAx'                ; åà ­¨â à §àï¤ë 梥⮢ (red,green,blue) x-¬¥âª  ª®­æ 
  962.     cred        db 0                      ; åà ­¨¬ ªà á­ë© ᯥªàâ
  963.     cgreen      db 0                      ; åà ­¨¬ §¥«¥­ë© ᯥªâà
  964.     cblue       db 0                      ; åà ­¨¬ ᨭ¨© ᯥªâà
  965.     calpha      db 0                      ; åà ­¨¬ ¯à®§à ç­®áâì
  966.     larrow      db 0x1A,0
  967.     buff        db '000',0
  968.     bground     db 'BACKGROUND',0         ; ¨¬ï ª­®¯ª¨ - 14
  969.     pnext       dd 0                      ; áç¥â稪 ¯¥à¥ª«î祭¨ï ¯ «¨âàë
  970.     renmode     dd 0                      ; ०¨¬ ®âà¨á®¢ª¨ (1-梥⮢ ï á奬 ,2-¯¨¯¥âª ,3-ªà㣮¢ ï)
  971. I_END:
  972.  
  973.  
  974.