Subversion Repositories Kolibri OS

Rev

Rev 3453 | Rev 4187 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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