Rev 3004 | Rev 3088 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3004 | Rev 3026 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ;#___________________________________________________________________________________________________ |
1 | ;#___________________________________________________________________________________________________ |
2 | ;****************************************************************************************************| |
2 | ;****************************************************************************************************| |
3 | ; Program Palitra (c) Sergei Steshin (Akyltist) | |
3 | ; Program Palitra (c) Sergei Steshin (Akyltist) | |
4 | ;----------------------------------------------------------------------------------------------------| |
4 | ;----------------------------------------------------------------------------------------------------| |
5 | ;; compiler: FASM 1.69.31 | |
5 | ;; compiler: FASM 1.69.31 | |
6 | ;; version: 0.2.0 | |
6 | ;; version: 0.3.0 | |
7 | ;; last update: 15/09/2012 | |
7 | ;; last update: 08/11/2012 | |
8 | ;; e-mail: dr.steshin@gmail.com | |
8 | ;; e-mail: dr.steshin@gmail.com | |
9 | ;..................................................................................................... |
9 | ;..................................................................................................... |
10 | ;; History: | |
10 | ;; History: | |
11 | ;; 0.1.0 - ¥à¢ ï ¢¥àá¨ï ¯à®£à ¬¬ë | |
11 | ;; 0.1.0 - Ïåðâàÿ âåðñèÿ ïðîãðàììû. | |
12 | ;; 0.2.0 - á¯à ¢«¥® ¯®¯ ¤ ¨¥ ¢ á¥âªã, ¡¥à¥âáï ¡«¨¦ ©è¨© ¯® ¤¨ £® «¨ ¯¨ªá¥«ì. | |
12 | ;; 0.2.0 - Èñïðàâëåíî ïîïàäàíèå â ñåòêó, áåðåòñÿ áëèæàéøèé ïî äèàãîíàëè ïèêñåëü. | |
13 | ;; - ®¡ ¢«¥ë ¯®«§ãª¨, ¤«ï ॣ㫨஢ ¨ï rgb á®áâ ¢«ïîé¨å 梥⠨ ¢ë¢®¤ íâ¨å á®áâ ¢«ïîé¨å. | |
13 | ;; - Äîáàâëåíû ïîëçóíêè, äëÿ ðåãóëèðîâàíèÿ rgb ñîñòàâëÿþùèõ öâåòà è âûâîä ýòèõ ñîñòàâëÿþùèõ. | |
14 | ;; - ¡à ¢ë¢®¤ 梥⠢ ¡¨ ஬ ¢¨¤¥ (¯®ª § ¥ ¤®¡®áâìî ¨ ¥ ªâã «ì®áâìî). | |
14 | ;; - Óáðàí âûâîä öâåòà â áèíàðíîì âèäå (ïîêà çà íå íàäîáíîñòüþ è íå àêòóàëüíîñòüþ). | |
- | 15 | ;; - Ìåëêàÿ êîñìåòèêà. | |
|
- | 16 | ;; 0.3.0 - Äîáàâëåíî ïåðåêëþ÷åíèå âèäîâ öâåòîâûõ ñõåì (êíîïêà NEXT) | |
|
- | 17 | ;; - Óëó÷øåíû ïîëçóíêè, ïðîèçâîäèòñÿ îáðàáîòêà íàæàòèÿ ðÿäîì ñ ïîëçóíêîì. | |
|
- | 18 | ;; - ×èñëî ñåòîê â öâåòîâîé ñõåìå óìåíüøåíî ñ 6 äî 4 (êðàòíîñòü 256, èíà÷å äóáëèðîâàíèå öâåòà).| |
|
15 | ;; - ¥«ª ï ª®á¬¥â¨ª . | |
19 | ;; - Ìåëêàÿ êîñìåòèêà. | |
16 | ;..................................................................................................... |
20 | ;..................................................................................................... |
17 | ;; All rights reserved. | |
21 | ;; All rights reserved. | |
18 | ;; | |
22 | ;; | |
19 | ;; Redistribution and use in source and binary forms, with or without modification, are permitted | |
23 | ;; Redistribution and use in source and binary forms, with or without modification, are permitted | |
20 | ;; provided that the following conditions are met: | |
24 | ;; provided that the following conditions are met: | |
Line 38... | Line 42... | ||
38 | ;....................................................................................................| |
42 | ;....................................................................................................| |
Line 39... | Line 43... | ||
39 | 43 | ||
40 | 44 | ||
41 | ;#___________________________________________________________________________________________________ |
45 | ;#___________________________________________________________________________________________________ |
42 | ;****************************************************************************************************| |
46 | ;****************************************************************************************************| |
43 | ; | |
47 | ; ÇÀÃÎËÎÂÎÊ ÈÑÏÎËÍßÅÌÎÃÎ ÔÀÉËÀ ÏÐÈËÎÆÅÍÈß ÄËß ÊÎËÈÁÐÈ ÎÑ | |
44 | ;----------------------------------------------------------------------------------------------------/ |
48 | ;----------------------------------------------------------------------------------------------------/ |
Line 45... | Line 49... | ||
45 | use32 |
49 | use32 |
Line 52... | Line 56... | ||
52 | dd 0x1000 |
56 | dd 0x1000 |
53 | dd 0x1000 |
57 | dd 0x1000 |
54 | dd 0x0 |
58 | dd 0x0 |
55 | dd 0x0 |
59 | dd 0x0 |
Line 56... | Line 60... | ||
56 | 60 | ||
- | 61 | include '../../../macros.inc' |
|
Line 57... | Line 62... | ||
57 | include 'macros.inc' |
62 | |
58 | 63 | ||
59 | START: |
64 | START: |
60 | ;#___________________________________________________________________________________________________ |
65 | ;#___________________________________________________________________________________________________ |
61 | ;****************************************************************************************************| |
66 | ;****************************************************************************************************| |
62 | ; - | |
67 | ; ÎÑÍÎÂÍÎÉ ÖÈÊË ÏÐÎÃÐÀÌÌÛ - ÎÁÐÀÁÎÒÊÀ ÑÎÁÛÒÈÉ | |
63 | ;----------------------------------------------------------------------------------------------------/ |
68 | ;----------------------------------------------------------------------------------------------------/ |
64 | red: |
69 | red: |
65 | call draw_window ; ¢ë§ë¢ ¥¬ ¯¥à¥à¨á®¢ªã ®ª ¯à¨«®¦¥¨ï |
70 | call draw_window ; âûçûâàåì ïåðåðèñîâêó îêíà ïðèëîæåíèÿ |
66 | still: |
71 | still: |
67 | mcall 10 ; äãªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï |
72 | mcall 10 ; ôóíêöèÿ 10 - æäàòü ñîáûòèÿ |
68 | cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª® ? |
73 | cmp eax,1 ; ïåðåðèñîâàòü îêíî ? |
69 | je red ; ¥á«¨ ¤ - ¬¥âªã red |
74 | je red ; åñëè äà - íà ìåòêó red |
70 | cmp eax,2 ; ¦ â ª« ¢¨è ? |
75 | cmp eax,2 ; íàæàòà êëàâèøà ? |
71 | je key ; ¥á«¨ ¤ - key |
76 | je key ; åñëè äà - íà key |
72 | cmp eax,3 ; ¦ â ª®¯ª ? |
77 | cmp eax,3 ; íàæàòà êíîïêà ? |
73 | je button ; ¥á«¨ ¤ - button |
78 | je button ; åñëè äà - íà button |
Line 74... | Line 79... | ||
74 | jmp still ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ç «® 横« |
79 | jmp still ; åñëè äðóãîå ñîáûòèå - â íà÷àëî öèêëà |
75 | ;end_still |
80 | ;end_still |
76 | 81 | ||
77 | 82 | ||
Line 78... | Line 83... | ||
78 | key: ; ¦ â ª« ¢¨è ª« ¢¨ âãॠ|
83 | key: ; íàæàòà êëàâèøà íà êëàâèàòóðå |
79 | mcall 2 ; äãªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®« (¢ ah) (âãâ ¢ ¯à¨æ¨¯¥ ¥ 㦠) |
84 | mcall 2 ; ôóíêöèÿ 2 - ñ÷èòàòü êîä ñèìâîëà (â ah) (òóò â ïðèíöèïå íå íóæíà) |
80 | jmp still ; ¢¥àãâìáï ª ç «ã 横« |
85 | jmp still ; âåðíóòüñÿ ê íà÷àëó öèêëà |
81 | ;end_key |
86 | ;end_key |
- | 87 | ||
- | 88 | button: |
|
- | 89 | mcall 17 ; 17 - ïîëó÷èòü èäåíòèôèêàòîð íàæàòîé êíîïêè |
|
- | 90 | cmp ah, 1 ; åñëè íàæàòà êíîïêà ñ íîìåðîì 1, |
|
- | 91 | jz bexit ; âûõîäèì |
|
- | 92 | ;îáðàáîòêà êíîïêè Next |
|
- | 93 | cmp ah, 11 ; åñëè íàæàòà êíîïêà NEXT |
|
- | 94 | jne next_bg ; âûõîäèì |
|
- | 95 | inc [pnext] ; óâåëè÷èâàåì ïðè íàæàòèè íîìåð ïàëèòðû |
|
- | 96 | mov eax,[pnext] |
|
- | 97 | cmp al,6 |
|
- | 98 | jne next_redraw |
|
- | 99 | xor eax,eax |
|
- | 100 | mov [pnext],eax |
|
- | 101 | next_redraw: |
|
- | 102 | call draw_palitra ; ÐÈÑÓÅÌ ÏÀËÈÒÐÓ |
|
- | 103 | ;call draw_result ; ÐÈÑÓÅÌ ÐÅÇÓËÜÒÀÒ |
|
- | 104 | jmp still |
|
- | 105 | ||
- | 106 | next_bg: |
|
- | 107 | cmp ah, 12 ; åñëè íàæàòà êíîïêà BACKGROUND |
|
- | 108 | jne next_end ; âûõîäèì |
|
- | 109 | mcall 15,4,1 |
|
82 | 110 | mcall 15,1,1,1 |
|
83 | button: |
111 | mcall 15,5,color,0,3*1*1 |
84 | mcall 17 ; 17 - ¯®«ãç¨âì ¨¤¥â¨ä¨ª â®à ¦ ⮩ ª®¯ª¨ |
112 | mcall 15,3 |
85 | cmp ah, 1 ; ¥á«¨ ¦ â ª®¯ª á ®¬¥à®¬ 1, |
113 | jne next_redraw |
86 | jz bexit ; ¢ë室¨¬ |
114 | next_end: |
87 | cmp ah, 7 |
115 | cmp ah, 7 |
88 | jne color_button |
116 | jne color_button |
89 | call mouse_get |
117 | call mouse_get |
90 | jmp still |
118 | jmp still |
91 | color_button: |
119 | color_button: |
92 | push eax |
120 | push eax |
93 | call mouse_local ; ¯®«ã稫 «®ª «ìë¥ ª®®à¤¨ âë |
121 | call mouse_local ; ïîëó÷èë ëîêàëüíûå êîîðäèíàòû |
Line 118... | Line 146... | ||
118 | jne still |
146 | jne still |
119 | mov [cblue],cl |
147 | mov [cblue],cl |
120 | call set_spectr |
148 | call set_spectr |
121 | jmp still |
149 | jmp still |
122 | bexit: |
150 | bexit: |
123 | mcall -1 ; ¨ ç¥ ª®¥æ ¯à®£à ¬¬ë |
151 | mcall -1 ; èíà÷å êîíåö ïðîãðàììû |
124 | ;end_button |
152 | ;end_button |
Line 125... | Line 153... | ||
125 | 153 | ||
126 | ;#___________________________________________________________________________________________________ |
154 | ;#___________________________________________________________________________________________________ |
127 | ;****************************************************************************************************| |
155 | ;****************************************************************************************************| |
128 | ; | |
156 | ; ÃËÀÂÍÛÉ ÌÎÄÓËÜ ÎÒÐÈÑÎÂÊÈ ÎÊÍÀ È ÝËÅÌÅÍÒÎÂ ÏÐÈËÎÆÅÍÈß | |
129 | ;----------------------------------------------------------------------------------------------------/ |
157 | ;----------------------------------------------------------------------------------------------------/ |
130 | draw_window: |
158 | draw_window: |
131 | mov eax,12 ; äãªæ¨ï 12: ®§ ç ¥â, çâ® ¡ã¤¥â à¨á®¢ âìáï ®ª® |
159 | mov eax,12 ; ôóíêöèÿ 12: îçíà÷àåò, ÷òî áóäåò ðèñîâàòüñÿ îêíî |
132 | mov ebx,1 ; 1, ç «® à¨á®¢ ¨ï |
160 | mov ebx,1 ; 1,íà÷àëî ðèñîâàíèÿ |
133 | int 0x40 ; à¥àë¢ ¨¥ |
161 | int 0x40 ; Ïðåðûâàíèå |
134 | 162 | ||
135 | mov eax,48 ; ãªæ¨ï 48 - á⨫¨ ®â®¡à ¦¥¨ï ®ª® |
163 | mov eax,48 ; Ôóíêöèÿ 48 - ñòèëè îòîáðàæåíèÿ îêîí |
136 | mov ebx,3 ; ®¤äãªæ¨ï 3 - ¯®«ãç¨âì áâ ¤ àâë¥ æ¢¥â ®ª®. |
164 | mov ebx,3 ; Ïîäôóíêöèÿ 3 - ïîëó÷èòü ñòàíäàðòíûå öâåòà îêîí. |
137 | mov ecx,sc ; ª § â¥«ì ¡ãä¥à à §¬¥à®¬ edx ¡ ©â, ¯®¤ áâàãªâãàã |
165 | mov ecx,sc ; Óêàçàòåëü íà áóôåð ðàçìåðîì edx áàéò, ïîä ñòðóêòóðó |
138 | mov edx,sizeof.system_colors ; §¬¥à â ¡«¨æë 梥⮢ (¤®«¦¥ ¡ëâì 40 ¡ ©â) |
166 | mov edx,sizeof.system_colors ; Ðàçìåð òàáëèöû öâåòîâ (äîëæåí áûòü 40 áàéò) |
139 | int 0x40 ; à¥àë¢ ¨¥ |
167 | int 0x40 ; Ïðåðûâàíèå |
140 | 168 | ||
141 | mov eax,48 ; ãªæ¨ï 48 - á⨫¨ ®â®¡à ¦¥¨ï ®ª®. |
169 | mov eax,48 ; Ôóíêöèÿ 48 - ñòèëè îòîáðàæåíèÿ îêîí. |
142 | mov ebx,4 ; ®¤äãªæ¨ï 4 - ¢®§¢à é ¥â eax = ¢ëá®â ᪨ . |
170 | mov ebx,4 ; Ïîäôóíêöèÿ 4 - âîçâðàùàåò eax = âûñîòà ñêèíà. |
143 | int 0x40 ; à¥àë¢ ¨¥ |
171 | int 0x40 ; Ïðåðûâàíèå |
144 | mov ecx,eax ; ¯®¬¨ ¥¬ ¢ëá®âã ᪨ |
172 | mov ecx,eax ; Çàïîìèíàåì âûñîòó ñêèíà |
145 | 173 | ||
146 | xor eax,eax ; ç¨é ¥¬ eax (mov eax,0) (ãªæ¨ï 0) |
174 | xor eax,eax ; Î÷èùàåì eax (mov eax,0) (Ôóíêöèÿ 0) |
147 | mov ebx,200 shl 16+325 ; [ª®®à¤¨ â ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ x] |
175 | mov ebx,200 shl 16+250 ; [êîîðäèíàòà ïî îñè x]*65536 + [ðàçìåð ïî îñè x] |
148 | add ecx,200 shl 16+168 ; ëá®â ᪨ + [ª®®à¤¨ â ¯® y]*65536 + [à §¬¥à ¯® y] |
176 | add ecx,200 shl 16+195 ; Âûñîòà ñêèíà + [êîîðäèíàòà ïî y]*65536 + [ðàçìåð ïî y] (168 äëÿ âåðñèè 0.2) |
149 | mov edx,[sc.work] ; ¨¤¨¬® áâ¨«ì ®ª ¯® ¤¥ä®«âã |
177 | mov edx,[sc.work] ; Âèäèìî ñòèëü îêíà ïî äåôîëòó |
150 | or edx,0x34000000 ; «¨ ®ª® ᮠ᪨®¬ 䨪á¨à®¢ ëå à §¬¥à®¢ |
178 | or edx,0x34000000 ; Èëè îêíî ñî ñêèíîì ôèêñèðîâàííûõ ðàçìåðîâ |
151 | mov edi,title ; £®«®¢®ª ®ª |
179 | mov edi,title ; Çàãîëîâîê îêíà |
152 | int 0x40 ; à¥àë¢ ¨¥ |
180 | int 0x40 ; Ïðåðûâàíèå |
153 | 181 | ||
154 | call draw_palitra ; |
182 | call draw_palitra ; ÐÈÑÓÅÌ ÏÀËÈÒÐÓ |
155 | call draw_result ; |
183 | call draw_result ; ÐÈÑÓÅÌ ÐÅÇÓËÜÒÀÒ |
156 | 184 | ||
157 | mov eax,8 ; ãªæ¨ï 8 - ®¯à¥¤¥«¨âì/㤠«¨âì ª®¯ªã |
185 | mov eax,8 ; Ôóíêöèÿ 8 - îïðåäåëèòü/óäàëèòü êíîïêó |
158 | mov ebx,89 shl 16+222 ; ç «ìë¥ ª®®à¤¨ âë ¯® å [ª-â x]*65536 + [à §¬¥à] |
186 | mov ebx,89 shl 16+147 ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð] |
159 | mov ecx,9 shl 16+147 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
187 | mov ecx,9 shl 16+147 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
160 | mov edx,0x60000007 ; ç «ì®¥ ID ª®¯®ª - 0xXYnnnnnn |
188 | mov edx,0x60000007 ; Íà÷àëüíîå ID êíîïîê - 0xXYnnnnnn |
Line 161... | Line 189... | ||
161 | int 0x40 |
189 | int 0x40 |
162 | 190 | ||
163 | mov ebx,10 shl 16+8 ; ç «ìë¥ ª®®à¤¨ âë ¯® å [ª-â x]*65536 + [à §¬¥à] |
191 | mov ebx,9 shl 16+12 ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð] |
164 | mov edx,0x60000008 ; ID = 8 |
192 | mov edx,0x60000008 ; ID = 8 |
165 | mov ecx,45 shl 16+85 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
193 | mov ecx,45 shl 16+85 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
166 | int 0x40 ; ¨á㥬 ¥¢¨¤¨¬ãî ª®¯ªã ¯®¤ á« ©¤¥à®¬ red |
194 | int 0x40 ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì red |
167 | add ebx,29 shl 16 ; ®¡ ¢«ï¥¬ |
195 | add ebx,26 shl 16 ; Äîáàâëÿåì |
168 | inc edx ; ID = 9 |
196 | inc edx ; ID = 9 |
169 | int 0x40 ; ¨á㥬 ¥¢¨¤¨¬ãî ª®¯ªã ¯®¤ á« ©¤¥à®¬ green |
197 | int 0x40 ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì green |
170 | add ebx,29 shl 16 ; ®¡ ¢«ï¥¬ |
198 | add ebx,26 shl 16 ; Äîáàâëÿåì |
Line 171... | Line 199... | ||
171 | inc edx ; ID = 10 |
199 | inc edx ; ID = 10 |
172 | int 0x40 ; ¨á㥬 ¥¢¨¤¨¬ãî ª®¯ªã ¯®¤ á« ©¤¥à®¬ blue |
200 | int 0x40 ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì blue |
173 | 201 | ||
Line -... | Line 202... | ||
- | 202 | mov eax,12 ; ôóíêöèÿ 12: îçíà÷àåò, ÷òî áóäåò ðèñîâàòüñÿ îêíî |
|
- | 203 | mov ebx,2 ; 2 - êîíåö ðèñîâàíèÿ |
|
- | 204 | int 0x40 ; Ïðåðûâàíèå |
|
- | 205 | ||
- | 206 | ;................................................................................................. |
|
- | 207 | ; Îòðèñîâêà íèæíåé ïàíåëè |
|
- | 208 | ;................................................................................................. |
|
- | 209 | mov eax,8 ; Ôóíêöèÿ 8 - îïðåäåëèòü/óäàëèòü êíîïêó |
|
- | 210 | mov ebx,4 shl 16+64 ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð] |
|
- | 211 | mov ecx,169 shl 16+16 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
|
- | 212 | mov edx,11 ; ID = 11 |
|
- | 213 | mov esi,[sc.work_button] ; öâåò |
|
- | 214 | int 0x40 |
|
- | 215 | ||
- | 216 | mov ebx,80 shl 16+102 ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð] |
|
- | 217 | mov edx,12 ; ID = 11 |
|
- | 218 | int 0x40 |
|
- | 219 | ||
- | 220 | ||
- | 221 | mov eax,4 ; 4 - âûâåñòè ñòðîêó òåêñòà â îêíî |
|
- | 222 | mov ebx,25 shl 16+174 ; [êîîðäèíàòà ïî îñè x]*65536 + [êîîðäèíàòà ïî îñè y] |
|
- | 223 | mov ecx,[sc.work_button_text] ; 0xX0RRGGBB (RR, GG, BB çàäàþò öâåò òåêñòà) |
|
- | 224 | mov edx,bnext ; óêàçàòåëü íà íà÷àëî ñòðîêè |
|
- | 225 | ;mov esi,1 ; âûâîäèòü esi ñèìâîëîâ |
|
- | 226 | int 0x40 |
|
- | 227 | ||
- | 228 | ;mov ebx,247 shl 16+64 ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð] |
|
- | 229 | ;mov edx,12 ; ID = 12 |
|
- | 230 | ;int 0x40 |
|
- | 231 | ||
- | 232 | mov eax,38 ; Ôóíêöèÿ 38 - íàðèñîâàòü îòðåçîê. |
|
- | 233 | mov ebx,4 shl 16+236 ;[êîîðäèíàòà íà÷àëà ïî îñè x]*65536 + [êîîðäèíàòà êîíöà ïî îñè x] |
|
174 | mov eax,12 ; äãªæ¨ï 12: ®§ ç ¥â, çâ® ¡ã¤¥â à¨á®¢ âìáï ®ª® |
234 | mov ecx,163 shl 16+163 ;[êîîðäèíàòà íà÷àëà ïî îñè y]*65536 + [êîîðäèíàòà êîíöà ïî îñè y] |
Line 175... | Line 235... | ||
175 | mov ebx,2 ; 1, ç «® à¨á®¢ ¨ï |
235 | mov edx,0x00666666 ;0x00RRGGBB - öâåò |
176 | int 0x40 ; à¥àë¢ ¨¥ |
236 | int 0x40 |
177 | 237 | ||
178 | ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
238 | ret ; Âîçâðàùàåì óïðàâëåíèå |
Line 179... | Line 239... | ||
179 | 239 | ||
180 | 240 | ||
181 | ;#___________________________________________________________________________________________________ |
241 | ;#___________________________________________________________________________________________________ |
182 | ;****************************************************************************************************| |
242 | ;****************************************************************************************************| |
183 | ; | |
243 | ; ÁËÎÊ ÂÑÏÎÌÎÃÀÒÅËÜÍÛÕ ÏÐÎÖÅÄÓÐ È ÔÓÍÊÖÈÉ ÏÐÈËÎÆÅÍÈß | |
184 | ;----------------------------------------------------------------------------------------------------/ |
244 | ;----------------------------------------------------------------------------------------------------/ |
185 | 245 | ||
186 | mouse_global: |
246 | mouse_global: |
187 | ;................................................................................................. |
247 | ;................................................................................................. |
188 | ; ®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ |
248 | ; Ïîëó÷àåì êîîðäèíàòû ìûøè |
189 | ;................................................................................................. |
249 | ;................................................................................................. |
190 | mov eax,37 ; ãªæ¨ï 37 - à ¡®â á ¬ëèìî |
250 | mov eax,37 ; Ôóíêöèÿ 37 - ðàáîòà ñ ìûøüþ |
191 | mov ebx,0 ; ¬ ã¦ë £«®¡ «ìë¥ ª®®à¤¨ âë |
251 | mov ebx,0 ; íàì íóæíû ãëîáàëüíûå êîîðäèíàòû |
192 | int 0x40 ; eax = x*65536 + y, (x,y)=ª®®à¤¨ âë ªãàá®à ¬ëè¨ |
252 | int 0x40 ; eax = x*65536 + y, (x,y)=êîîðäèíàòû êóðñîðà ìûøè |
193 | mov ecx,eax ; |
253 | mov ecx,eax ; |
194 | shr ecx,16 ; ecx = x+1 |
254 | shr ecx,16 ; ecx = x+1 |
Line 195... | Line 255... | ||
195 | movzx edx,ax ; edx = y+1 |
255 | movzx edx,ax ; edx = y+1 |
196 | dec ecx ; ecx = x |
256 | dec ecx ; ecx = x |
197 | dec edx ; edx = y |
257 | dec edx ; edx = y |
198 | mov [mouse_x],ecx ; mouse_x = x |
258 | mov [mouse_x],ecx ; mouse_x = x |
199 | mov [mouse_y],edx ; mouse_y = y |
259 | mov [mouse_y],edx ; mouse_y = y |
200 | ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
260 | ret ; Âîçâðàùàåì óïðàâëåíèå |
201 | ;end_mouse_global |
261 | ;end_mouse_global |
202 | 262 | ||
203 | mouse_local: |
263 | mouse_local: |
204 | ;................................................................................................. |
264 | ;................................................................................................. |
205 | ; ®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ ®â®á¨â¥«ì® ®ª |
265 | ; Ïîëó÷àåì êîîðäèíàòû ìûøè îòíîñèòåëüíî îêíà |
206 | ;................................................................................................. |
266 | ;................................................................................................. |
207 | mov eax,37 ; ãªæ¨ï 37 - à ¡®â á ¬ëèìî |
267 | mov eax,37 ; Ôóíêöèÿ 37 - ðàáîòà ñ ìûøüþ |
208 | mov ebx,1 ; ¬ ã¦ë £«®¡ «ìë¥ ª®®à¤¨ âë |
268 | mov ebx,1 ; íàì íóæíû ãëîáàëüíûå êîîðäèíàòû |
209 | int 0x40 ; eax = x*65536 + y, (x,y)=ª®®à¤¨ âë ªãàá®à ¬ëè¨ |
269 | int 0x40 ; eax = x*65536 + y, (x,y)=êîîðäèíàòû êóðñîðà ìûøè |
210 | mov ecx,eax ; |
270 | mov ecx,eax ; |
Line 211... | Line 271... | ||
211 | shr ecx,16 ; ecx = x+1 |
271 | shr ecx,16 ; ecx = x+1 |
212 | movzx edx,ax ; edx = y+1 |
272 | movzx edx,ax ; edx = y+1 |
213 | dec ecx ; ecx = x |
273 | dec ecx ; ecx = x |
214 | dec edx ; edx = y |
274 | dec edx ; edx = y |
215 | mov [mouse_x],ecx ; mouse_x = x |
275 | mov [mouse_x],ecx ; mouse_x = x |
216 | mov [mouse_y],edx ; mouse_y = y |
276 | mov [mouse_y],edx ; mouse_y = y |
217 | ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
277 | ret ; Âîçâðàùàåì óïðàâëåíèå |
218 | ;end_mouse_local |
278 | ;end_mouse_local |
219 | 279 | ||
220 | desktop_get: |
280 | desktop_get: |
221 | ;................................................................................................. |
281 | ;................................................................................................. |
222 | ; ¯à¥¤¥«ï¥¬ è¨à¨ã íªà |
282 | ; Îïðåäåëÿåì øèðèíó ýêðàíà |
223 | ;................................................................................................. |
283 | ;................................................................................................. |
224 | mov eax,14 ; ¯à¥¤¥«ï¥¬ è¨à¨ã íªà (eax = [xsize]*65536 + [ysize]) |
284 | mov eax,14 ; Îïðåäåëÿåì øèðèíó ýêðàíà (eax = [xsize]*65536 + [ysize]) |
Line 225... | Line 285... | ||
225 | int 0x40 ; xsize = à §¬¥à ¯® £®à¨§®â «¨ - 1 |
285 | int 0x40 ; xsize = ðàçìåð ïî ãîðèçîíòàëè - 1 |
226 | mov ebx,eax ; |
286 | mov ebx,eax ; |
227 | shr ebx,16 ; ebx = xsize-1 |
287 | shr ebx,16 ; ebx = xsize-1 |
228 | ;movzx edx,ax ;; edx = ysize-1 («¨è¨© ª®¤) |
288 | ;movzx edx,ax ;; edx = ysize-1 (ëèøíèé êîä) |
229 | inc ebx ; ebx = xsize |
289 | inc ebx ; ebx = xsize |
230 | ;inc edx ;; edx = ysize («¨è¨© ª®¤) |
290 | ;inc edx ;; edx = ysize (ëèøíèé êîä) |
231 | mov [desctop_w],ebx |
291 | mov [desctop_w],ebx |
232 | ret |
292 | ret |
Line 233... | Line 293... | ||
233 | ;end_desktop_get |
293 | ;end_desktop_get |
234 | 294 | ||
235 | mouse_get: |
295 | mouse_get: |
236 | mov esi,2 ; : ä« £ ¤«ï ¨§¡¥¦ ¨ï § 横«¨¢ ¨ï |
296 | mov esi,2 ; ÊÎÑÒÛËÜ: ôëàã äëÿ èçáåæàíèÿ çàöèêëèâàíèÿ |
237 | call mouse_global |
297 | call mouse_global |
238 | call desktop_get |
298 | call desktop_get |
239 | re_mouse_loop: ; : ¬¥âª ¤«ï ¢®§¢à ⠥᫨ ¯®¯ «¨ ¢ á¥âªã |
299 | re_mouse_loop: ; ÊÎÑÒÛËÜ: ìåòêà äëÿ âîçâðàòà åñëè ïîïàëè â ñåòêó |
240 | mov ebx,[desctop_w] |
300 | mov ebx,[desctop_w] |
241 | imul ebx,[mouse_y] ; ebx = y*xsize |
301 | imul ebx,[mouse_y] ; ebx = y*xsize |
242 | add ebx,[mouse_x] ; ebx = y*xsize+x |
302 | add ebx,[mouse_x] ; ebx = y*xsize+x |
243 | 303 | ||
244 | ;................................................................................................. |
304 | ;................................................................................................. |
245 | ; ¥à¥¬ 梥â á ¯ «¨âàë ¢ ¯¥à¥¬¥ãî |
305 | ; Áåðåì öâåò ñ ïàëèòðû â ïåðåìåííóþ |
246 | ;................................................................................................. |
306 | ;................................................................................................. |
247 | mov eax,35 ; ãªæ¨ï ¢§ïâ¨ï 梥â |
307 | mov eax,35 ; Ôóíêöèÿ âçÿòèÿ öâåòà |
248 | ;mov ebx,ecx ;; ebx = y*xsize+x («¨è¨© ª®¤) |
308 | ;mov ebx,ecx ;; ebx = y*xsize+x (ëèøíèé êîä) |
249 | int 0x40 ; ®«ãç ¥¬ 梥⠢ eax |
309 | int 0x40 ; Ïîëó÷àåì öâåò â eax |
250 | cmp eax,[sc.work] ; à ¢¨¢ ¥¬ á ä®®¬ ¯à¨«®¦¥¨ï |
310 | cmp eax,[sc.work] ; Ñðàâíèâàåì ñ ôîíîì ïðèëîæåíèÿ |
251 | je mouse_err ; ᫨ íâ® ® - â® ¨ç¥£® ¥ ¤¥« ¥¬ |
311 | je mouse_err ; Åñëè ýòî îí - òî íè÷åãî íå äåëàåì |
252 | cmp eax,0x222222 ; à ¢¨¢ ¥¬ á 梥⮬ á¥âª¨ |
312 | cmp eax,0x222222 ; Ñðàâíèâàåì ñ öâåòîì ñåòêè |
253 | je mouse_err ; ᫨ íâ® ® - â® ¨ç¥£® ¥ ¤¥« ¥¬ |
313 | je mouse_err ; Åñëè ýòî îí - òî íè÷åãî íå äåëàåì |
254 | jmp mouse_set ; : ¯àë£ ¥¬ çâ®¡ë ¥ ¡à âì 梥â á¥âª¨ |
314 | jmp mouse_set ; ÊÎÑÒÛËÜ: ïðûãàåì ÷òîáû íå áðàòü öâåò ñåòêè |
255 | mouse_err: ; : ¥á«¨ ¯®¯ «¨ ¢ á¥âªã ¨«¨ ä® |
315 | mouse_err: ; ÊÎÑÒÛËÜ: åñëè ïîïàëè â ñåòêó èëè ôîí |
256 | inc [mouse_y] ; : á¬¥é ¥¬ ¯® ¤¨ £® «¨ á ç « ¯® å |
316 | inc [mouse_y] ; ÊÎÑÒÛËÜ: ñìåùàåì ïî äèàãîíàëè ñíà÷àëà ïî õ |
Line 257... | Line 317... | ||
257 | inc [mouse_x] ; : á¬¥é ¥¬ ¯® ¤¨ £® «¨ ¯®â®¬ ¯® ã |
317 | inc [mouse_x] ; ÊÎÑÒÛËÜ: ñìåùàåì ïî äèàãîíàëè ïîòîì ïî ó |
258 | dec esi ; : ¬¥ìè ¥¬ ä« £ |
318 | dec esi ; ÊÎÑÒÛËÜ: Óìåíüøàåì ôëàã |
259 | cmp esi,0 ; : à ¢¨¢ ¥¬ á ã«¥¬ |
319 | cmp esi,0 ; ÊÎÑÒÛËÜ: Ñðàâíèâàåì ñ íóëåì |
260 | jz mouse_exit ; : ᫨ ®«ì ⮠ᤥ« «¨ ¢áñ çâ® ¬®£«¨ |
320 | jz mouse_exit ; ÊÎÑÒÛËÜ: Åñëè íîëü òî ñäåëàëè âñ¸ ÷òî ìîãëè |
261 | jmp re_mouse_loop ; : ᫨ ¥ ®«ì â® ¯®¯à®¡ã¥¬ ¢§ïâì á®á¥«¨© ¯¨ªá¥«ì |
321 | jmp re_mouse_loop ; ÊÎÑÒÛËÜ: Åñëè íå íîëü òî ïîïðîáóåì âçÿòü ñîñåëíèé ïèêñåëü |
262 | mouse_set: |
322 | mouse_set: |
263 | mov [color],eax ; ç¥ § ¯®¬¨ ¥¬ ®¢ë© 梥â |
323 | mov [color],eax ; Èíà÷å çàïîìèíàåì íîâûé öâåò |
264 | call draw_result ; 뢮¤¨¬ १ã«ìâ â |
324 | call draw_result ; Âûâîäèì ðåçóëüòàò |
265 | mouse_exit: |
325 | mouse_exit: |
266 | ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
326 | ret ; Âîçâðàùàåì óïðàâëåíèå |
267 | ;end_mouse_get---------------------------------------------------------------------------------------- |
327 | ;end_mouse_get---------------------------------------------------------------------------------------- |
268 | 328 | ||
269 | draw_palitra: |
329 | draw_palitra: |
270 | ;................................................................................................. |
330 | ;................................................................................................. |
271 | ; âà¨á®¢ª ä® ¯®¤ ª®¯ª¨ |
331 | ; Îòðèñîâêà ôîíà ïîä êíîïêè |
272 | ;................................................................................................. |
332 | ;................................................................................................. |
273 | mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
333 | mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
274 | mov edx,0x222222 ; 梥â |
334 | mov edx,0x222222 ; öâåò |
275 | mov ecx,9 shl 16+73 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
335 | mov ecx,9 shl 16+73 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
276 | mov esi,2 ; ç¥â稪 «¨¨© ¯®¤«®¦¥ª |
336 | mov esi,2 ; Ñ÷åò÷èê ëèíèé ïîäëîæåê |
277 | re_draw: |
337 | re_draw: |
278 | mov ebx,89 shl 16+73 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
338 | mov ebx,89 shl 16+73 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
279 | mov edi,3 ; ç¥â稪 ª®«¨ç¥á⢠¯®¤«®¦¥ª |
339 | mov edi,2 ; Ñ÷åò÷èê êîëè÷åñòâà ïîäëîæåê |
280 | for_fon_loop: |
340 | for_fon_loop: |
281 | int 0x40 ; à¥àë¢ ¨¥ |
341 | int 0x40 ; Ïðåðûâàíèå |
282 | add ebx,75 shl 16 ; ¬¥é ¥¬ ¯®«®¦¥¨¥ «¨¨¨ ¯® å |
342 | add ebx,75 shl 16 ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî õ |
283 | dec edi ; ¬¥ìè ¥¬ áç¥â稪 ª®¯®ª |
343 | dec edi ; Óìåíüøàåì ñ÷åò÷èê êíîïîê |
284 | cmp edi,0 ; à ¢¨¢ ¥¬ á ã«¥¬ |
344 | cmp edi,0 ; Ñðàâíèâàåì ñ íóëåì |
285 | jnz for_fon_loop ; ᫨ ¥ ®«ì â® ¢ ç «® 横« |
345 | jnz for_fon_loop ; Åñëè íå íîëü òî â íà÷àëî öèêëà |
286 | dec esi ; ¬¥ìè ¥¬ ¥£® |
346 | dec esi ; Óìåíüøàåì åãî |
287 | cmp esi,0 ; à ¢¨¢ ¥¬ á ã«¥¬ |
347 | cmp esi,0 ; Ñðàâíèâàåì ñ íóëåì |
288 | mov ecx,84 shl 16+73 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
348 | mov ecx,84 shl 16+73 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
289 | jnz re_draw ; ᫨ ¥ ®«ì â® ¢ ç «® 横« |
349 | jnz re_draw ; Åñëè íå íîëü òî â íà÷àëî öèêëà |
290 | 350 | ||
291 | ;................................................................................................. |
351 | ;................................................................................................. |
292 | ; âà¨á®¢ª ª®¯®ª ¯® 横«ã |
352 | ; Îòðèñîâêà êíîïîê ïî öèêëó |
293 | ;................................................................................................. |
353 | ;................................................................................................. |
294 | mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
354 | mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
295 | mov edx,0x0FFFFFFF ; 梥â |
355 | mov edx,0x0FFFFFFF ; öâåò |
296 | mov esi,6 ; ç¥â稪 ª®«¨ç¥á⢠¡§ 楢 (#4,8) |
356 | mov esi,4 ; Ñ÷åò÷èê êîëè÷åñòâà àáçàöåâ (#4,8) |
297 | mov ebx,78 shl 16+8 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
357 | mov ebx,78 shl 16+8 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
298 | for_abz: |
358 | for_abz: |
299 | ;;push esi ; ®åà 塞 § 票¥ áç¥â稪 «¨¨© ¢ á⥪ |
359 | ;;push esi ; Ñîõðàíÿåì çíà÷åíèå ñ÷åò÷èêà ëèíèé â ñòåê |
300 | cmp esi,3 |
360 | cmp esi,2 |
301 | jne x2_line |
361 | jne x2_line |
302 | mov ebx,78 shl 16+8 |
362 | mov ebx,78 shl 16+8 |
303 | x2_line: |
363 | x2_line: |
304 | add ebx,3 shl 16 ; ¬¥é ¥¬ ¯®«®¦¥¨¥ «¨¨¨ ¯® x |
364 | add ebx,3 shl 16 ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî x |
305 | mov edi,8 ; ç¥â稪 ª®«¨ç¥á⢠ª®¯®ª ¢ áâப¥ |
365 | mov edi,8 ; Ñ÷åò÷èê êîëè÷åñòâà êíîïîê â ñòðîêå |
306 | for_stolbik: |
366 | for_stolbik: |
307 | push edi ; ®åà 塞 § 票¥ áç¥â稪 «¨¨© ¢ á⥪ |
367 | push edi ; Ñîõðàíÿåì çíà÷åíèå ñ÷åò÷èêà ëèíèé â ñòåê |
308 | mov edi,8 ; ç¥â稪 ª®«¨ç¥á⢠ª®¯®ª ¢ áâப¥ |
368 | mov edi,8 ; Ñ÷åò÷èê êîëè÷åñòâà êíîïîê â ñòðîêå |
309 | mov ecx, 1 shl 16+8 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
369 | mov ecx, 1 shl 16+8 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
310 | cmp esi,3 |
370 | cmp esi,2 |
311 | jg y2_line ; ᫨ ¡®«ìè¥ 4 â® ¨£®à¨¬ |
371 | jg y2_line ; Åñëè áîëüøå 4 òî èãíîðèì |
312 | mov ecx,76 shl 16+8 |
372 | mov ecx,76 shl 16+8 |
313 | y2_line: |
373 | y2_line: |
314 | add ebx,9 shl 16 ; ¬¥é ¥¬ ¯®«®¦¥¨¥ «¨¨¨ ¯® x |
374 | add ebx,9 shl 16 ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî x |
315 | for_loop: |
375 | for_loop: |
316 | add ecx,9 shl 16 ; ¬¥é ¥¬ ¯®«®¦¥¨¥ «¨¨¨ ¯® y |
376 | add ecx,9 shl 16 ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî y |
317 | int 0x40 ; à¥àë¢ ¨¥ |
377 | int 0x40 ; Ïðåðûâàíèå |
318 | sub edx,32 shl 16 |
378 | call sub_red |
319 | dec edi ; ¬¥ìè ¥¬ áç¥â稪 ª®¯®ª |
379 | dec edi ; Óìåíüøàåì ñ÷åò÷èê êíîïîê |
320 | cmp edi,0 ; à ¢¨¢ ¥¬ á ã«¥¬ |
380 | cmp edi,0 ; Ñðàâíèâàåì ñ íóëåì |
321 | jnz for_loop ; ᫨ ¥ ®«ì â® ¢ ç «® 横« |
381 | jnz for_loop ; Åñëè íå íîëü òî â íà÷àëî öèêëà |
Line -... | Line 382... | ||
- | 382 | call sub_green |
|
- | 383 | pop edi ; Èíà÷å âîññòàíàâëèâàåì ñ÷åò÷èê ëèíèé |
|
- | 384 | dec edi ; Óìåíüøàåì åãî |
|
- | 385 | cmp edi,0 ; Ñðàâíèâàåì ñ íóëåì |
|
- | 386 | jnz for_stolbik ; Åñëè íå íîëü òî â íà÷àëî öèêëà |
|
- | 387 | call sub_blue |
|
- | 388 | ;;pop esi ; Èíà÷å âîññòàíàâëèâàåì ñ÷åò÷èê ëèíèé |
|
- | 389 | dec esi ; Óìåíüøàåì åãî |
|
- | 390 | cmp esi,0 ; Ñðàâíèâàåì ñ íóëåì |
|
- | 391 | jnz for_abz ; Åñëè íå íîëü òî â íà÷àëî öèêëà |
|
- | 392 | ret ; Âîçâðàùàåì óïðàâëåíèå |
|
- | 393 | ;end_draw_palitra------------------------------------------------------------------------------------- |
|
- | 394 | ||
- | 395 | ||
- | 396 | sub_red: |
|
- | 397 | ;................................................................................................. |
|
- | 398 | ; Ðàñ÷¸ò ñìåùåíèé êðàñíîãî öâåòà â ãåíåðàöèè öâåòà ïàëèòðû |
|
- | 399 | ;................................................................................................. |
|
- | 400 | push eax |
|
- | 401 | mov eax,[pnext] |
|
- | 402 | ;sub_red_0 ; palitra |
|
- | 403 | cmp al,0 |
|
- | 404 | jne sub_red_1 |
|
- | 405 | sub edx,0x20 |
|
- | 406 | jmp sub_red_e |
|
- | 407 | sub_red_1: ; random |
|
- | 408 | cmp al,1 |
|
- | 409 | jne sub_red_2 |
|
- | 410 | sub edx,0x40 |
|
- | 411 | jmp sub_red_e |
|
- | 412 | sub_red_2: ; gree |
|
- | 413 | cmp al,2 |
|
- | 414 | jne sub_red_3 |
|
- | 415 | sub edx,0x010101 |
|
- | 416 | jmp sub_red_e |
|
- | 417 | sub_red_3: ; red |
|
- | 418 | cmp al,3 |
|
- | 419 | jne sub_red_4 |
|
- | 420 | sub edx,0x0101 |
|
- | 421 | jmp sub_red_e |
|
- | 422 | sub_red_4: ; green |
|
- | 423 | cmp al,4 |
|
- | 424 | jne sub_red_5 |
|
- | 425 | sub edx,0x010001 |
|
- | 426 | jmp sub_red_e |
|
- | 427 | sub_red_5: ; blue |
|
- | 428 | cmp al,5 |
|
- | 429 | jne sub_red_e |
|
- | 430 | sub edx,0x010100 |
|
- | 431 | jmp sub_red_e |
|
- | 432 | sub_red_e: |
|
- | 433 | pop eax |
|
- | 434 | ret ; Âîçâðàùàåì óïðàâëåíèå |
|
- | 435 | ;end_sub_red------------------------------------------------------------------------------------------ |
|
- | 436 | ||
- | 437 | sub_green: |
|
- | 438 | ;................................................................................................. |
|
- | 439 | ; Ðàñ÷¸ò ñìåùåíèé êðàñíîãî öâåòà â ãåíåðàöèè öâåòà ïàëèòðû |
|
- | 440 | ;................................................................................................. |
|
- | 441 | push eax |
|
- | 442 | mov eax,[pnext] |
|
- | 443 | ;sub_green_0 |
|
- | 444 | cmp al,0 |
|
- | 445 | jne sub_green_1 |
|
- | 446 | sub edx,0x2000 |
|
- | 447 | jmp sub_green_e |
|
- | 448 | sub_green_1: |
|
- | 449 | cmp al,1 |
|
- | 450 | jne sub_green_e |
|
- | 451 | sub edx,0x4000 |
|
- | 452 | ;jmp sub_green_e |
|
- | 453 | sub_green_e: |
|
- | 454 | pop eax |
|
- | 455 | ret ; Âîçâðàùàåì óïðàâëåíèå |
|
- | 456 | ;end_sub_green---------------------------------------------------------------------------------------- |
|
- | 457 | ||
- | 458 | ||
- | 459 | sub_blue: |
|
- | 460 | ;................................................................................................. |
|
- | 461 | ; Ðàñ÷¸ò ñìåùåíèé êðàñíîãî öâåòà â ãåíåðàöèè öâåòà ïàëèòðû |
|
- | 462 | ;................................................................................................. |
|
- | 463 | push eax |
|
- | 464 | mov eax,[pnext] |
|
- | 465 | ;sub_blue_0 |
|
- | 466 | cmp al,0 |
|
322 | sub edx,32 shl 8 |
467 | jne sub_blue_1 |
323 | pop edi ; ç¥ ¢®ááâ ¢«¨¢ ¥¬ áç¥â稪 «¨¨© |
468 | sub edx,0x400000 |
324 | dec edi ; ¬¥ìè ¥¬ ¥£® |
469 | jmp sub_blue_e |
325 | cmp edi,0 ; à ¢¨¢ ¥¬ á ã«¥¬ |
470 | sub_blue_1: |
326 | jnz for_stolbik ; ᫨ ¥ ®«ì â® ¢ ç «® 横« |
471 | cmp al,1 |
327 | sub edx,48 ; (#64,32) |
472 | jne sub_blue_e |
328 | ;;pop esi ; ç¥ ¢®ááâ ¢«¨¢ ¥¬ áç¥â稪 «¨¨© |
473 | sub edx,0x600000 |
329 | dec esi ; ¬¥ìè ¥¬ ¥£® |
474 | ;jmp sub_blue_e |
330 | cmp esi,0 ; à ¢¨¢ ¥¬ á ã«¥¬ |
475 | sub_blue_e: |
331 | jnz for_abz ; ᫨ ¥ ®«ì â® ¢ ç «® 横« |
476 | pop eax |
332 | ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
477 | ret ; Âîçâðàùàåì óïðàâëåíèå |
333 | ;end_draw_palitra------------------------------------------------------------------------------------- |
478 | ;end_sub_blue----------------------------------------------------------------------------------------- |
334 | 479 | ||
335 | draw_result: |
480 | draw_result: |
336 | ;................................................................................................. |
481 | ;................................................................................................. |
337 | ; âà¨á®¢ª १ã«ìâ â 梥⠢ hex |
482 | ; Îòðèñîâêà ðåçóëüòàòà öâåòà â hex |
338 | ;................................................................................................. |
483 | ;................................................................................................. |
339 | mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
484 | mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
340 | mov edx,0x222222 ; 梥â-®¡¢®¤ª¨ |
485 | mov edx,0x222222 ; öâåò-îáâîäêè |
Line 341... | Line 486... | ||
341 | mov ebx,4 shl 16+15 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
486 | mov ebx,4 shl 16+15 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
342 | mov ecx,9 shl 16+15 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
487 | mov ecx,9 shl 16+15 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
343 | int 0x40 ; à¥àë¢ ¨¥ (®á à¨áã¥â ¯àאַ㣮«ì¨ª) |
488 | int 0x40 ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê) |
344 | mov ebx,23 shl 16+62 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
489 | mov ebx,23 shl 16+62 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
345 | int 0x40 ; à¥àë¢ ¨¥ (®á à¨áã¥â ¯àאַ㣮«ì¨ª) |
490 | int 0x40 ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê) |
346 | 491 | ||
Line 347... | Line 492... | ||
347 | mov edx,[color] ; 梥â |
492 | mov edx,[color] ; öâåò |
348 | mov ebx,5 shl 16+13 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
493 | mov ebx,5 shl 16+13 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
349 | mov ecx,10 shl 16+13 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
494 | mov ecx,10 shl 16+13 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
350 | int 0x40 ; à¥àë¢ ¨¥ (®á à¨áã¥â ¯àאַ㣮«ì¨ª) |
495 | int 0x40 ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê) |
351 | mov edx,0xFFFFFF ; 梥â-ä® |
496 | mov edx,0xFFFFFF ; öâåò-ôîíà |
352 | mov ebx,24 shl 16+60 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
497 | mov ebx,24 shl 16+60 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
Line 353... | Line 498... | ||
353 | int 0x40 ; à¥àë¢ ¨¥ (®á à¨áã¥â ¯àאַ㣮«ì¨ª) |
498 | int 0x40 ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê) |
354 | 499 | ||
355 | mov eax,47 ; ãªæ¨ï 47 - ¢ë¢®¤ ç¨á« ¢ ®ª® |
500 | mov eax,47 ; Ôóíêöèÿ 47 - âûâîä ÷èñëà â îêíî |
356 | mov ecx,[color] ; ç¨á«® (¯à¨ bl=0) ¨«¨ 㪠§ ⥫ì (¯à¨ bl=1) |
501 | mov ecx,[color] ; ÷èñëî (ïðè bl=0) èëè óêàçàòåëü (ïðè bl=1) |
357 | mov esi,0x0 ; 0xX0RRGGBB |
502 | mov esi,0x0 ; 0xX0RRGGBB |
358 | mov ebx,256+8 shl 16 ; ¯ à ¬¥âàë ¯à¥®¡à §®¢ ¨ï ç¨á« ¢ ⥪áâ (HEX) |
503 | mov ebx,256+8 shl 16 ; ïàðàìåòðû ïðåîáðàçîâàíèÿ ÷èñëà â òåêñò (HEX) |
359 | mov edx,34 shl 16+13 ; [ª®®à¤¨ â ¯® ®á¨ x]*65536 + [ª®®à¤¨ â ¯® ®á¨ y] |
504 | mov edx,34 shl 16+13 ; [êîîðäèíàòà ïî îñè x]*65536 + [êîîðäèíàòà ïî îñè y] |
360 | int 0x40 ; à¥àë¢ ¨¥ - ¢ë¢®¤¨¬ १ã«ìâ â ¢ ®ª® (HEX) |
505 | int 0x40 ; Ïðåðûâàíèå - âûâîäèì ðåçóëüòàò â îêíî (HEX) |
361 | 506 | ||
362 | mov eax,4 ; äãªæ¨ï 4: ¯¨á âì ⥪áâ ¢ ®ª¥ |
507 | mov eax,4 ; ôóíêöèÿ 4: íàïèñàòü òåêñò â îêíå |
363 | mov ebx,27*65536+13 ; [x ç «ìë©] *65536 + [y ç «ìë©] |
508 | mov ebx,27*65536+13 ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé] |
364 | mov ecx,0x0 ; 梥â ⥪áâ RRGGBB |
509 | mov ecx,0x0 ; öâåò òåêñòà RRGGBB |
365 | mov edx,hex ; à¨á㥬 '#' |
510 | mov edx,hex ; ðèñóåì '#' |
366 | mov esi,1 ; ¤«¨ ⥪áâ ¢ ¡ ©â å |
511 | mov esi,1 ; äëèíà òåêñòà â áàéòàõ |
367 | int 0x40 |
512 | int 0x40 |
368 | 513 | ||
369 | ;................................................................................................. |
514 | ;................................................................................................. |
370 | ; âà¨á®¢ª ¯®«¥© ¤«ï r g b § 票© |
515 | ; Îòðèñîâêà ïîëåé äëÿ r g b çíà÷åíèé |
371 | ;................................................................................................. |
516 | ;................................................................................................. |
372 | call get_spectr |
517 | call get_spectr |
373 | mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
518 | mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê Leency{ |
Line 374... | Line 519... | ||
374 | mov edx,0x222222 ; 梥â-®¡¢®¤ª¨ |
519 | mov edx,0x222222 ; öâåò-îáâîäêè |
375 | mov ebx,4 shl 16+23 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
520 | mov ebx,4 shl 16+24 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
376 | mov ecx,142 shl 16+15 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
521 | mov ecx,142 shl 16+15 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
377 | int 0x40 |
522 | int 0x40 |
378 | mov ebx,33 shl 16+23 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
523 | mov ebx,33 shl 16+24 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
379 | int 0x40 |
524 | int 0x40 |
Line 380... | Line 525... | ||
380 | mov ebx,62 shl 16+23 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
525 | mov ebx,62 shl 16+24 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
381 | int 0x40 |
526 | int 0x40 |
382 | mov edx,0xFFFFFF ; 梥â-®¡¢®¤ª¨ |
527 | mov edx,0xFFFFFF ; öâåò-îáâîäêè |
Line 383... | Line 528... | ||
383 | mov ebx,5 shl 16+21 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
528 | mov ebx,5 shl 16+22 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
384 | mov ecx,143 shl 16+13 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
529 | mov ecx,143 shl 16+13 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
385 | int 0x40 |
530 | int 0x40 |
Line 386... | Line 531... | ||
386 | mov ebx,34 shl 16+21 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
531 | mov ebx,34 shl 16+22 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
387 | int 0x40 |
532 | int 0x40 |
388 | mov ebx,63 shl 16+21 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
533 | mov ebx,63 shl 16+22 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
389 | int 0x40 |
534 | int 0x40 |
390 | 535 | ||
391 | ;................................................................................................. |
536 | ;................................................................................................. |
392 | ; âà¨á®¢ª r g b § 票© |
537 | ; Îòðèñîâêà r g b çíà÷åíèé |
393 | ;................................................................................................. |
538 | ;................................................................................................. |
Line 394... | Line 539... | ||
394 | movzx eax,[cred] ; ªà áë© |
539 | movzx eax,[cred] ; êðàñíûé |
395 | mov ebx,7*65536+146 ; [x ç «ìë©] *65536 + [y ç «ìë©] |
540 | mov ebx,7*65536+146 ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé] |
396 | call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â |
541 | call draw_value ; âûâîäèì ðåçóëüòàò |
397 | 542 | ||
398 | movzx eax,[cgreen] ; §¥«¥ë© |
543 | movzx eax,[cgreen] ; çåëåíûé |
399 | mov ebx,36*65536+146 ; [x ç «ìë©] *65536 + [y ç «ìë©] |
544 | mov ebx,36*65536+146 ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé] |
400 | call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â |
545 | call draw_value ; âûâîäèì ðåçóëüòàò |
401 | 546 | ||
402 | movzx eax,[cblue] ; ᨨ© |
547 | movzx eax,[cblue] ; ñèíèé |
Line 403... | Line 548... | ||
403 | mov ebx,65*65536+146 ; [x ç «ìë©] *65536 + [y ç «ìë©] |
548 | mov ebx,65*65536+146 ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé] |
404 | call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â |
549 | call draw_value ; âûâîäèì ðåçóëüòàò |
405 | 550 | ||
406 | ;................................................................................................. |
551 | ;................................................................................................. |
407 | ; ¡ã«ï¥¬ ä® |
552 | ; Îáíóëÿåì ôîí |
408 | ;................................................................................................. |
553 | ;................................................................................................. |
409 | mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
554 | mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
410 | mov edx,[sc.work] ; 梥â-®¡¢®¤ª¨ |
555 | mov edx,[sc.work] ; öâåò-îáâîäêè |
411 | mov ebx,8 shl 16+66 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
556 | mov ebx,8 shl 16+66 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
Line 412... | Line 557... | ||
412 | mov ecx,40 shl 16+87 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
557 | mov ecx,40 shl 16+87 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
413 | int 0x40 |
558 | int 0x40 |
414 | 559 | ||
415 | ;mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
560 | ; mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
416 | ;mov edx,0x222222 ; 梥â-®¡¢®¤ª¨ |
561 | ; mov edx,0x222222 ; öâåò-îáâîäêè |
417 | ;mov ebx,4 shl 16+23 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
562 | ; mov ebx,4 shl 16+24 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
418 | ;mov ecx,30 shl 16+105 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
563 | ; mov ecx,30 shl 16+105 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
419 | ;int 0x40 |
564 | ; int 0x40 |
420 | ;add ebx,29 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
565 | ; add ebx,29 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
421 | ;int 0x40 |
566 | ; int 0x40 |
422 | ;add ebx,29 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
567 | ; add ebx,29 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
423 | ;int 0x40 |
568 | ; int 0x40 |
424 | 569 | ||
425 | mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
570 | mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
Line 426... | Line 571... | ||
426 | mov edx,[sc.work] ; 梥â-®¡¢®¤ª¨ |
571 | mov edx,[sc.work] ; öâåò-îáâîäêè |
427 | mov ebx,5 shl 16+21 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
572 | mov ebx,5 shl 16+22 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
428 | mov ecx,31 shl 16+103 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
573 | mov ecx,31 shl 16+103 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
429 | int 0x40 |
574 | int 0x40 |
430 | add ebx,29 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
575 | add ebx,29 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
431 | int 0x40 |
576 | int 0x40 |
432 | add ebx,29 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
577 | add ebx,29 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
433 | int 0x40 |
578 | int 0x40 |
434 | 579 | ||
435 | ;................................................................................................. |
580 | ;................................................................................................. |
436 | ; 뢮¤¨¬ ¡ãª¢ë r g b |
581 | ; Âûâîäèì áóêâû r g b |
437 | ;................................................................................................. |
582 | ;................................................................................................. |
Line 438... | Line 583... | ||
438 | mov eax,4 ; 4 - ¢ë¢¥á⨠áâபã ⥪áâ ¢ ®ª® |
583 | mov eax,4 ; 4 - âûâåñòè ñòðîêó òåêñòà â îêíî |
439 | mov ebx,12 shl 16+34 ; [ª®®à¤¨ â ¯® ®á¨ x]*65536 + [ª®®à¤¨ â ¯® ®á¨ y] |
584 | mov ebx,12 shl 16+34 ; [êîîðäèíàòà ïî îñè x]*65536 + [êîîðäèíàòà ïî îñè y] |
440 | mov ecx,0x0 ; 0xX0RRGGBB (RR, GG, BB § ¤ îâ 梥â ⥪áâ ) |
585 | mov ecx,0x0 ; 0xX0RRGGBB (RR, GG, BB çàäàþò öâåò òåêñòà) |
441 | mov edx,cname ; 㪠§ ⥫ì ç «® áâப¨ |
586 | mov edx,cname ; óêàçàòåëü íà íà÷àëî ñòðîêè |
442 | mov esi,2 ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢ |
587 | mov esi,1 ; âûâîäèòü esi ñèìâîëîâ |
443 | newline: ; 横« |
588 | newline: ; öèêë |
444 | int 0x40 ; à¥àë¢ ¨¥ |
589 | int 0x40 ; Ïðåðûâàíèå |
445 | add ebx,29 shl 16 ; ®¡ ¢«ï¥¬ |
590 | add ebx,29 shl 16 ; Äîáàâëÿåì |
446 | add edx,2 ; ®¡ ¢«ï¥¬ |
591 | add edx,1 ; Äîáàâëÿåì |
447 | cmp [edx],byte 'x' ; à ¢¥¨¥ á ¡ ©â®¬ å |
592 | cmp [edx],byte 'x' ; Ñðàâíåíèå ñ áàéòîì õ |
Line 448... | Line 593... | ||
448 | jne newline ; ᫨ ¥ ã«ì ¨«¨ ¥ à ¢® |
593 | jne newline ; Åñëè íå íóëü èëè íå ðàâíî |
449 | 594 | ||
450 | ;................................................................................................. |
595 | ;................................................................................................. |
451 | ; âà¨á®¢ª á« ©¤¥à®¢ |
596 | ; Îòðèñîâêà ñëàéäåðîâ |
452 | ;................................................................................................. |
597 | ;................................................................................................. |
453 | mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
598 | mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
454 | mov edx,0x222222 ; 梥â-®¡¢®¤ª¨ |
599 | mov edx,0x222222 ; öâåò-îáâîäêè |
455 | mov ebx,12 shl 16+4 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
600 | mov ebx,12 shl 16+4 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
456 | mov ecx,45 shl 16+85 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
601 | mov ecx,45 shl 16+85 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
457 | int 0x40 |
602 | int 0x40 |
458 | add ebx,29 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
603 | add ebx,29 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
459 | int 0x40 |
604 | int 0x40 |
460 | add ebx,29 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
605 | add ebx,29 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
Line 461... | Line 606... | ||
461 | int 0x40 |
606 | int 0x40 |
462 | 607 | ||
Line 463... | Line 608... | ||
463 | mov edx,0xFA0919 ; 梥â-®¡¢®¤ª¨ |
608 | mov edx,0xFA0919 ; öâåò-îáâîäêè |
464 | mov ebx,13 shl 16+2 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
609 | mov ebx,13 shl 16+2 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
465 | mov ecx,46 shl 16+83 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
610 | mov ecx,46 shl 16+83 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
466 | int 0x40 |
611 | int 0x40 |
467 | mov edx,0x08CE19 ; 梥â-®¡¢®¤ª¨ |
612 | mov edx,0x08CE19 ; öâåò-îáâîäêè |
468 | add ebx,29 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
613 | add ebx,29 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
469 | int 0x40 |
614 | int 0x40 |
470 | mov edx,0x0909FF ; 梥â-®¡¢®¤ª¨ |
615 | mov edx,0x0909FF ; öâåò-îáâîäêè |
471 | add ebx,29 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
616 | add ebx,29 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
472 | int 0x40 |
617 | int 0x40 |
473 | 618 | ||
Line 474... | Line 619... | ||
474 | ;................................................................................................. |
619 | ;................................................................................................. |
Line 475... | Line 620... | ||
475 | ; âà¨á®¢ª ¯®«§ãª®¢ |
620 | ; Îòðèñîâêà ïîëçóíêîâ |
476 | ;................................................................................................. |
621 | ;................................................................................................. |
477 | mov edx,0x0 ; 梥â-¯®«§ãª®¢ |
622 | mov edx,0x0 ; öâåò-ïîëçóíêîâ |
478 | mov ebx,10 shl 16+8 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
623 | mov ebx,10 shl 16+8 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
479 | movzx eax,[cred] ; ¡¥à¥¬ § 票¥ 梥â |
624 | movzx eax,[cred] ; áåðåì çíà÷åíèå öâåòà |
480 | call draw_slider |
625 | call draw_slider |
481 | add ebx,29 shl 16 |
626 | add ebx,29 shl 16 |
482 | movzx eax,[cgreen] ; ¡¥à¥¬ § 票¥ 梥â |
627 | movzx eax,[cgreen] ; áåðåì çíà÷åíèå öâåòà |
483 | call draw_slider |
628 | call draw_slider |
484 | add ebx,29 shl 16 |
629 | add ebx,29 shl 16 |
485 | movzx eax,[cblue] ; ¡¥à¥¬ § 票¥ 梥â |
630 | movzx eax,[cblue] ; áåðåì çíà÷åíèå öâåòà |
486 | call draw_slider |
631 | call draw_slider |
487 | 632 | ||
488 | ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
633 | ret ; Âîçâðàùàåì óïðàâëåíèå |
489 | ;end_draw_result |
634 | ;end_draw_result |
Line 490... | Line 635... | ||
490 | 635 | ||
491 | draw_slider: |
636 | draw_slider: |
492 | xor ecx,ecx |
637 | xor ecx,ecx |
493 | mov cl,0x3 ; ¡ã¤¥¬ ¤¥«¨âì ¥£® 3 â ª ª ª ¯®«§ãª¨ ¤«¨®© 85 ¯¨ªá¥«¥© |
638 | mov cl,0x3 ; áóäåì äåëèòü åãî íà 3 òàê êàê ïîëçóíêè äëèííîé 85 ïèêñåëåé |
494 | div cl ; ¤¥«¨¬ - 楫®¥ ¢ al ®áâ ⮪ ¢ ah |
639 | div cl ; äåëèì - öåëîå â al îñòàòîê â ah |
495 | mov cl,128 ; ¨¦ïï â®çª ¯®«§ãª |
640 | mov cl,128 ; íèæíÿÿ òî÷êà ïîëçóíêà |
496 | sub cl,al ; cl=cl-al |
641 | sub cl,al ; cl=cl-al |
497 | shl ecx,16 |
642 | shl ecx,16 |
498 | add ecx,4 ; § ¤ ¥¬ ç «ì®¥ ¯®«®¦¥¨¥ |
643 | add ecx,4 ; çàäàåì íà÷àëüíîå ïîëîæåíèå |
499 | mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
644 | mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
500 | int 0x40 |
645 | int 0x40 |
501 | ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
646 | ret ; Âîçâðàùàåì óïðàâëåíèå |
Line 502... | Line 647... | ||
502 | 647 | ||
503 | ;end_slider |
648 | ;end_slider |
504 | 649 | ||
505 | draw_value: |
650 | draw_value: |
506 | ;................................................................................................. |
651 | ;................................................................................................. |
507 | ; 뢮¤ ç¨á« ¨§ áâப¨ ¢ 㪠§ ®© ®¡« á⨠|
652 | ; Âûâîä ÷èñëà èç ñòðîêè â óêàçàííîé îáëàñòè |
508 | ;................................................................................................. |
653 | ;................................................................................................. |
509 | push ebx ; á®åà 塞 ¯à¨á« ë¥ ª®®à¤¨ âë |
654 | push ebx ; ñîõðàíÿåì ïðèñëàííûå êîîðäèíàòû |
510 | mov ebx,10 ; ãáâ ¢«¨¢ ¥¬ ®á®¢ ¨¥ á¨á⥬ë áç¨á«¥¨ï |
655 | mov ebx,10 ; óñòàíàâëèâàåì îñíîâàíèå ñèñòåìû ñ÷èñëåíèÿ |
511 | mov edi,buff ; 㪠§ ⥫ì áâப㠡ãä¥à |
656 | mov edi,buff ; óêàçàòåëü íà ñòðîêó áóôåðà |
512 | call int2ascii ; ª®¢¥àâ¨à㥬 ç¨á«® ¨ «®¦¨¬ ª ª áâப㠢 ¡ãä¥à + esi ¤«¨ |
657 | call int2ascii ; êîíâåðòèðóåì ÷èñëî è ëîæèì êàê ñòðîêó â áóôåð + esi äëèíà |
513 | mov eax,4 ; äãªæ¨ï 4: ¯¨á âì ⥪áâ ¢ ®ª¥ |
658 | mov eax,4 ; ôóíêöèÿ 4: íàïèñàòü òåêñò â îêíå |
514 | pop ebx ; ¤®áâ ¥¬ ¨§ á⥪ ¯à¨á« ë¥ ª®®à¤¨ âë |
659 | pop ebx ; äîñòàåì èç ñòåêà ïðèñëàííûå êîîðäèíàòû |
515 | mov ecx,0x0 ; 梥â ⥪áâ RRGGBB |
660 | mov ecx,0x0 ; öâåò òåêñòà RRGGBB |
516 | mov edx,buff ; 㪠§ ⥫ì ç «® ⥪áâ |
661 | mov edx,buff ; óêàçàòåëü íà íà÷àëî òåêñòà |
517 | int 0x40 |
662 | int 0x40 |
518 | ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
663 | ret ; Âîçâðàùàåì óïðàâëåíèå |
519 | ;end_draw_value |
664 | ;end_draw_value |
520 | 665 | ||
521 | hex_digit: |
666 | hex_digit: |
522 | ;................................................................................................. |
667 | ;................................................................................................. |
523 | ; ८¡à §®¢ ¨¥ ¢ ASCII (¢¥ § ¢¨á¨¬®á⨠®â á¨á⥬ë áç¨á«¥¨ï) |
668 | ; Ïðåîáðàçîâàíèå â ASCII (âíå çàâèñèìîñòè îò ñèñòåìû ñ÷èñëåíèÿ) |
524 | ;................................................................................................. |
669 | ;................................................................................................. |
525 | cmp dl,10 ; ¢ dl ®¦¨¤ ¥âáï ç¨á«® ®â 0 ¤® 15 |
670 | cmp dl,10 ; â dl îæèäàåòñÿ ÷èñëî îò 0 äî 15 |
526 | jb .less ; ¥á«¨ dl<10 â® ¯¥à¥å®¤¨¬ |
671 | jb .less ; åñëè dl<10 òî ïåðåõîäèì |
527 | add dl,'A'-10 ; 10->A 11->B 12->C ... |
672 | add dl,'A'-10 ; 10->A 11->B 12->C ... |
528 | ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
673 | ret ; Âîçâðàùàåì óïðàâëåíèå |
529 | .less: |
674 | .less: |
530 | or dl,'0' ; ᫨ á¨á⥬ áç¨á«¥¨ï 10-ï ¨ ¬¥¥¥ |
675 | or dl,'0' ; Åñëè ñèñòåìà ñ÷èñëåíèÿ 10-ÿ è ìåíåå |
531 | ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
676 | ret ; Âîçâðàùàåì óïðàâëåíèå |
532 | ;end_hex_digit |
677 | ;end_hex_digit |
533 | 678 | ||
534 | int2ascii: |
679 | int2ascii: |
Line 535... | Line 680... | ||
535 | ;................................................................................................. |
680 | ;................................................................................................. |
536 | ; ८¡à §®¢ ¨¥ ç¨á« ¢ áâபã |
681 | ; Ïðåîáðàçîâàíèå ÷èñëà â ñòðîêó |
537 | ;................................................................................................. |
682 | ;................................................................................................. |
538 | ; eax - 32-å § 箥 ç¨á«® |
683 | ; eax - 32-õ çíà÷íîå ÷èñëî |
539 | ; ebx - ®á®¢ ¨¥ á¨á⥬ë áç¨á«¥¨ï |
684 | ; ebx - îñíîâàíèå ñèñòåìû ñ÷èñëåíèÿ |
540 | ; edi - 㪠§ ⥫ì áâப㠡ãä¥à |
685 | ; edi - óêàçàòåëü íà ñòðîêó áóôåðà |
541 | ; ®§¢à é ¥â § ¯®«¥ë© ¡ãä¥à ¨ esi - ¤«¨ áâப¨ |
686 | ; Âîçâðàùàåò çàïîëíåííûé áóôåð è esi - äëèíà ñòðîêè |
542 | ;pushad |
687 | ;pushad |
Line 580... | Line 725... | ||
580 | mov [cred],al |
725 | mov [cred],al |
581 | ; get green |
726 | ; get green |
582 | shl ecx,16 |
727 | shl ecx,16 |
583 | shr ecx,24 |
728 | shr ecx,24 |
584 | mov [cgreen],cl |
729 | mov [cgreen],cl |
585 | ret ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
730 | ret ; è âîçâðàùàåì óïðàâëåíèå |
586 | ;end_get_spectr |
731 | ;end_get_spectr |
Line 587... | Line 732... | ||
587 | 732 | ||
588 | set_spectr: |
733 | set_spectr: |
589 | ;................................................................................................. |
734 | ;................................................................................................. |
590 | ; ãáâ ¢«¨¢ ¥â ¨§ r,g,b 梥â |
735 | ; óñòàíàâëèâàåò èç r,g,b öâåò |
591 | ;................................................................................................. |
736 | ;................................................................................................. |
592 | ; get blue |
737 | ; get blue |
593 | movzx eax,[cred] |
738 | movzx eax,[cred] |
594 | shl eax,8 |
739 | shl eax,8 |
595 | mov al,[cgreen] |
740 | mov al,[cgreen] |
596 | shl eax,8 |
741 | shl eax,8 |
597 | mov al,[cblue] |
742 | mov al,[cblue] |
598 | mov [color],eax |
743 | mov [color],eax |
599 | call draw_result ; 뢮¤¨¬ १ã«ìâ â |
744 | call draw_result ; Âûâîäèì ðåçóëüòàò |
600 | ret ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
745 | ret ; è âîçâðàùàåì óïðàâëåíèå |
Line 601... | Line 746... | ||
601 | ;end_get_spectr |
746 | ;end_get_spectr |
602 | 747 | ||
603 | str_len: |
748 | str_len: |
604 | ;................................................................................................. |
749 | ;................................................................................................. |
605 | ; ®¯à¥¤¥«ï¥â ¤«¨ã áâப¨ (¢å®¤->EDI ZS offset ; ¢ë室->EAX ZS length) |
750 | ; îïðåäåëÿåò äëèíó ñòðîêè (âõîä->EDI ZS offset ; âûõîä->EAX ZS length) |
606 | ;................................................................................................. |
751 | ;................................................................................................. |
607 | push ecx |
752 | push ecx |
Line 623... | Line 768... | ||
623 | 768 | ||
624 | ret |
769 | ret |
625 | ;end_str_len |
770 | ;end_str_len |
626 | ;#___________________________________________________________________________________________________ |
771 | ;#___________________________________________________________________________________________________ |
627 | ;****************************************************************************************************| |
772 | ;****************************************************************************************************| |
628 | ; | |
773 | ; ÁËÎÊ ÏÅÐÅÌÅÍÍÛÕ È ÊÎÍÑÒÀÍÒ | |
Line 629... | Line 774... | ||
629 | ;----------------------------------------------------------------------------------------------------/ |
774 | ;----------------------------------------------------------------------------------------------------/ |
630 | 775 | ||
631 | color dd 00000000h ; åà ¨â § 票¥ ¢ë¡à ®£® 梥â |
776 | color dd 00000000h ; õðàíèò çíà÷åíèå âûáðàííîãî öâåòà |
632 | mouse_x dd 0 ; åà ¨â £«®¡ «ìãî å ª®®à¤¨ âã ¬ëè¨ |
777 | mouse_x dd 0 ; õðàíèò ãëîáàëüíóþ õ êîîðäèíàòó ìûøè |
633 | mouse_y dd 0 ; åà ¨â £«®¡ «ìãî ã ª®®à¤¨ âã ¬ëè¨ |
778 | mouse_y dd 0 ; õðàíèò ãëîáàëüíóþ ó êîîðäèíàòó ìûøè |
634 | desctop_w dd 0 ; åà ¨â è¨à¨ã íªà |
779 | desctop_w dd 0 ; õðàíèò øèðèíó ýêðàíà |
635 | sc system_colors ; åà ¨â áâàãªâãàã á¨á⥬ëå 梥⮢ ᪨ |
780 | sc system_colors ; õðàíèò ñòðóêòóðó ñèñòåìíûõ öâåòîâ ñêèíà |
636 | title db 'Palitra v0.2',0 ; åà ¨â ¨¬ï ¯à®£à ¬¬ë |
781 | title db 'Palitra v0.3',0 ; õðàíèò èìÿ ïðîãðàììû |
637 | hex db '#',0 ; ¤«ï ¢ë¢®¤ à¥èñ⪨ ª ª ⥪áâ |
782 | hex db '#',0 ; äëÿ âûâîäà ðåø¸òêè êàê òåêñòà |
638 | cname db 'R G B x' ; åà ¨â à §àï¤ë 梥⮢ (red,green,blue) x-¬¥âª ª®æ |
783 | cname db 'RGBx' ; õðàíèò ðàçðÿäû öâåòîâ (red,green,blue) x-ìåòêà êîíöà |
639 | cred db 0 ; åà ¨¬ ªà áë© á¯¥ªàâ |
784 | cred db 0 ; õðàíèì êðàñíûé ñïåêðò |
640 | cgreen db 0 ; åà ¨¬ §¥«¥ë© ᯥªâà |
785 | cgreen db 0 ; õðàíèì çåëåíûé ñïåêòð |
- | 786 | cblue db 0 ; õðàíèì ñèíèé ñïåêòð |
|
- | 787 | buff db '000',0 |
|
641 | cblue db 0 ; åà ¨¬ ᨨ© ᯥªâà |
788 | bnext db 'NEXT BACKGROUND',0; èìÿ êíîïêè |