2,7 → 2,7 |
;****************************************************************************************************| |
; Program Palitra (c) Sergei Steshin (Akyltist) | |
;----------------------------------------------------------------------------------------------------| |
;; Charset:WIN-1251 Font:Courier New Size:9pt | |
;; Charset:DOS-866 Font:Courier New Size:9pt | |
;..................................................................................................... |
;; compiler: FASM 1.69.31 | |
;; version: 0.3.0 | |
10,20 → 10,24 |
;; e-mail: dr.steshin@gmail.com | |
;..................................................................................................... |
;; History: | |
;; 0.1.0 - Ïåðâàÿ âåðñèÿ ïðîãðàììû. | |
;; 0.2.0 - Èñïðàâëåíî ïîïàäàíèå â ñåòêó, áåðåòñÿ áëèæàéøèé ïî äèàãîíàëè ïèêñåëü. | |
;; - Äîáàâëåíû ïîëçóíêè, äëÿ ðåãóëèðîâàíèÿ rgb ñîñòàâëÿþùèõ öâåòà è âûâîä ýòèõ ñîñòàâëÿþùèõ. | |
;; - Óáðàí âûâîä öâåòà â áèíàðíîì âèäå (ïîêà çà íå íàäîáíîñòüþ è íå àêòóàëüíîñòüþ). | |
;; - Ìåëêàÿ êîñìåòèêà. | |
;; 0.3.0 - Äîáàâëåíî ïåðåêëþ÷åíèå âèäîâ öâåòîâûõ ñõåì (êíîïêà NEXT) | |
;; - Óëó÷øåíû ïîëçóíêè, ïðîèçâîäèòñÿ îáðàáîòêà íàæàòèÿ ðÿäîì ñ ïîëçóíêîì. | |
;; - ×èñëî ñåòîê â öâåòîâîé ñõåìå óìåíüøåíî ñ 6 äî 4 (êðàòíîñòü 256, èíà÷å äóáëèðîâàíèå öâåòà).| |
;; - Ìåëêàÿ êîñìåòèêà. | |
;; 0.4.0 - Äîáàâëåíî ïåðåêëþ÷åíèå ìåæäó äâóìÿ öâåòàìè | |
;; - Äîáàâëåí ïîëçóíîê ðåãóëèðîâàíèÿ ïðîçðà÷íîñòè (áåç âèçóàëèçàöèè). | |
;; - Äîáàâëåíî âûðàâíèâàíèå çíà÷åíèé rgba ïî öåíòðó, â çàâèñèìîñòè îò äëèííû. | |
;; - Êîñìåòè÷åñêèå ïðàâêè. | |
;; - Íåáîëüøàÿ îïòèìèçàöèÿ. | |
;; 0.1.0 - ¥à¢ ï ¢¥àá¨ï ¯à®£à ¬¬ë. | |
;; 0.2.0 - á¯à ¢«¥® ¯®¯ ¤ ¨¥ ¢ á¥âªã, ¡¥à¥âáï ¡«¨¦ ©è¨© ¯® ¤¨ £® «¨ ¯¨ªá¥«ì. | |
;; - ®¡ ¢«¥ë ¯®«§ãª¨, ¤«ï ॣ㫨஢ ¨ï rgb á®áâ ¢«ïîé¨å 梥⠨ ¢ë¢®¤ íâ¨å á®áâ ¢«ïîé¨å. | |
;; - ¡à ¢ë¢®¤ 梥⠢ ¡¨ ஬ ¢¨¤¥ (¯®ª § ¥ ¤®¡®áâìî ¨ ¥ ªâã «ì®áâìî). | |
;; - ¥«ª ï ª®á¬¥â¨ª . | |
;; 0.3.0 - ®¡ ¢«¥® ¯¥à¥ª«î票¥ ¢¨¤®¢ 梥⮢ëå á奬 (ª®¯ª NEXT) | |
;; - «ãçè¥ë ¯®«§ãª¨, ¯à®¨§¢®¤¨âáï ®¡à ¡®âª ¦ â¨ï à冷¬ á ¯®«§ãª®¬. | |
;; - ¨á«® á¥â®ª ¢ 梥⮢®© á奬¥ 㬥ì襮 á 6 ¤® 4 (ªà â®áâì 256, ¨ ç¥ ¤ã¡«¨à®¢ ¨¥ 梥â ).| |
;; - ¥«ª ï ª®á¬¥â¨ª . | |
;; 0.4.0 - ®¡ ¢«¥® ¯¥à¥ª«î票¥ ¬¥¦¤ã ¤¢ã¬ï 梥⠬¨ | |
;; - ®¡ ¢«¥ ¯®«§ã®ª ॣ㫨஢ ¨ï ¯à®§à ç®á⨠(¡¥§ ¢¨§ã «¨§ 樨). | |
;; - ®¡ ¢«¥® ¢ëà ¢¨¢ ¨¥ § 票© rgba ¯® æ¥âàã, ¢ § ¢¨á¨¬®á⨠®â ¤«¨ë. | |
;; - ®á¬¥â¨ç¥áª¨¥ ¯à ¢ª¨. | |
;; - ¥¡®«ìè ï ®¯â¨¬¨§ æ¨ï. | |
;; 0.5.0 - ®¡ ¢«¥ ª®¯ª ᬥë ä® à ¡®ç¥£® á⮫ (®â Leency). | |
;; - ®¡ ¢«¥® ¨§¬¥¥¨¥ ä® à ¡®ç¥£® á⮫ £à ¤¨¥â®© § «¨¢ª®©. | |
;; - ®á¬¥â¨ç¥áª¨¥ ¯à ¢ª¨. | |
;; - ¥¡®«ìè ï ¤¥®¯â¨¬¨§ æ¨ï. | |
;..................................................................................................... |
;; All rights reserved. | |
;; | |
51,7 → 55,7 |
|
;#___________________________________________________________________________________________________ |
;****************************************************************************************************| |
; ÇÀÃÎËÎÂÎÊ ÈÑÏÎËÍßÅÌÎÃÎ ÔÀÉËÀ ÏÐÈËÎÆÅÍÈß ÄËß ÊÎËÈÁÐÈ ÎÑ | |
;
| |
;----------------------------------------------------------------------------------------------------/ |
use32 |
org 0x0 |
60,65 → 64,68 |
dd 0x01 |
dd START |
dd I_END |
dd 0x100000 |
dd 0x1000 |
dd 0x1000 |
dd 0x0 |
dd 0x0 |
|
include '../../../macros.inc' |
WIN_W equ 271 ; øèðèíà îêíà |
WIN_H equ 192 ; âûñîòà îêíà |
WIN_X equ 250 ; êîîðäèíàòà õ îêíà |
WIN_Y equ 190 ; êîîðäèíàòà ó îêíà |
include '..\..\..\macros.inc' |
WIN_W equ 295 ; è¨à¨ ®ª |
WIN_H equ 195 ; ¢ëá®â ®ª |
WIN_X equ 250 ; ª®®à¤¨ â å ®ª |
WIN_Y equ 190 ; ª®®à¤¨ â ã ®ª |
|
START: |
;#___________________________________________________________________________________________________ |
;****************************************************************************************************| |
; ÎÑÍÎÂÍÎÉ ÖÈÊË ÏÐÎÃÐÀÌÌÛ - ÎÁÐÀÁÎÒÊÀ ÑÎÁÛÒÈÉ | |
; - | |
;----------------------------------------------------------------------------------------------------/ |
red: |
call draw_window ; âûçûâàåì ïåðåðèñîâêó îêíà ïðèëîæåíèÿ |
call draw_main ; ¢ë§ë¢ ¥¬ ¯¥à¥à¨á®¢ªã ®ª ¯à¨«®¦¥¨ï |
still: |
mcall 10 ; ôóíêöèÿ 10 - æäàòü ñîáûòèÿ |
cmp eax,1 ; ïåðåðèñîâàòü îêíî ? |
je red ; åñëè äà - íà ìåòêó red |
cmp eax,2 ; íàæàòà êëàâèøà ? |
je key ; åñëè äà - íà key |
cmp eax,3 ; íàæàòà êíîïêà ? |
je button ; åñëè äà - íà button |
jmp still ; åñëè äðóãîå ñîáûòèå - â íà÷àëî öèêëà |
mcall 10 ; äãªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï |
cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª® ? |
je red ; ¥á«¨ ¤ - ¬¥âªã red |
cmp eax,2 ; ¦ â ª« ¢¨è ? |
je key ; ¥á«¨ ¤ - key |
cmp eax,3 ; ¦ â ª®¯ª ? |
je button ; ¥á«¨ ¤ - button |
jmp still ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ç «® 横« |
;end_still |
|
|
key: ; íàæàòà êëàâèøà íà êëàâèàòóðå |
mcall 2 ; ôóíêöèÿ 2 - ñ÷èòàòü êîä ñèìâîëà (â ah) (òóò â ïðèíöèïå íå íóæíà) |
jmp still ; âåðíóòüñÿ ê íà÷àëó öèêëà |
key: ; ¦ â ª« ¢¨è ª« ¢¨ âãॠ|
mcall 2 ; äãªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®« (¢ ah) (âãâ ¢ ¯à¨æ¨¯¥ ¥ 㦠) |
jmp still ; ¢¥àãâìáï ª ç «ã 横« |
;end_key |
|
button: |
mcall 17 ; 17 - ïîëó÷èòü èäåíòèôèêàòîð íàæàòîé êíîïêè |
cmp ah, 1 ; åñëè íàæàòà êíîïêà ñ íîìåðîì 1, |
jz bexit ; âûõîäèì |
;îáðàáîòêà êíîïêè Next |
cmp ah, 12 ; åñëè íàæàòà êíîïêà NEXT |
jne set_bg ; âûõîäèì |
inc [pnext] ; óâåëè÷èâàåì ïðè íàæàòèè íîìåð ïàëèòðû |
mov eax,[pnext] ; çàíîñèì çíà÷åíèå â åàõ |
cmp al,6 ; ñðàâíèâàåì ñ çàÿâëåííûì êîëè÷åñòâîì ïàëèòð |
jne next_redraw ; åñëè íå áîëüøå ìàêñèìóìà òî íà âûçîâ îòðèñîâêè |
xor eax,eax ; èíà÷å çàíóëÿåì ïàëèòðó íà default |
mov [pnext],eax ; è çàïîìèíàåì ÷òî ñáðîñèëè ïàëèòðó íà default |
mcall 17 ; 17 - ¯®«ãç¨âì ¨¤¥â¨ä¨ª â®à ¦ ⮩ ª®¯ª¨ |
cmp ah, 1 ; ¥á«¨ ¦ â ª®¯ª á ®¬¥à®¬ 1, |
jz bexit ; ¢ë室¨¬ |
;®¡à ¡®âª ª®¯ª¨ Next |
cmp ah, 12 ; ¥á«¨ ¦ â ª®¯ª NEXT |
jne next_bg ; ¢ë室¨¬ |
inc [pnext] ; 㢥«¨ç¨¢ ¥¬ ¯à¨ ¦ ⨨ ®¬¥à ¯ «¨âàë |
mov [renmode],0 ; ¢ª«îç ¥¬ æ¢¥â®¢ë¥ á奬ë |
mov eax,[pnext] ; § ®á¨¬ § 票¥ ¢ ¥ å |
cmp al,6 ; áà ¢¨¢ ¥¬ á § ¥ë¬ ª®«¨ç¥á⢮¬ ¯ «¨âà |
jne next_redraw ; ¥á«¨ ¥ ¡®«ìè¥ ¬ ªá¨¬ã¬ â® ¢ë§®¢ ®âà¨á®¢ª¨ |
xor eax,eax ; ¨ ç¥ § ã«ï¥¬ ¯ «¨âàã default |
mov [pnext],eax ; ¨ § ¯®¬¨ ¥¬ çâ® á¡à®á¨«¨ ¯ «¨âàã default |
next_redraw: |
call draw_palitra ; ÐÈÑÓÅÌ ÏÀËÈÒÐÓ |
jmp still ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ |
set_bg: |
cmp ah, 14 ; åñëè íàæàòà êíîïêà BACKGROUND |
jne next_end ; âûõîäèì |
mcall 15,4,1 |
mcall 15,1,1,1 |
mcall 15,5,color,0,3*1*1 |
mcall 15,3 |
jmp still |
call draw_palitra ;
|
jmp still ; 室¨¬ ®¦¨¤ ¨¥ ¤à㣮£® ᮡëâ¨ï |
next_bg: |
cmp ah, 14 ; ®¯ª BACKGROUND |
jne circle_bg ; ¥á«¨ ¥ ¦ â â® ¢ë室¨¬ |
call set_background ; ¨ ç¥ ãáâ ¢«¨¢ ¥¬ ä® |
jmp still ; ¨ ®¦¨¤ ¨¥ ᮡëâ¨ï |
circle_bg: |
cmp ah, 15 ; ®¯ª à㣮¢ ï ¯ «¨âà |
jne next_end ; ¥á«¨ ¥ ¦ â â® ¢ë室¨¬ |
;mov [renmode],2 ; ¢ª«îç ¥¬ ®âà¨á®¢ªã ªà㣮¢®© ¯ «¨âàë |
call draw_palitra ;
|
jmp still ; ¨ ®¦¨¤ ¨¥ ᮡëâ¨ï |
next_end: |
cmp ah,13 ; COLOR SWAP |
jne color_swap_end |
127,156 → 134,200 |
pop [color2] |
pop [color] |
call draw_result |
jmp still ; ã室¨¬ ®¦¨¤ ¨¥ ¤à㣮£® ᮡëâ¨ï |
color_swap_end: |
cmp ah, 7 ; Ïðîâåðÿåì íàæàòà êíîïêà ñ ID=7 |
jne color_button ; Åñëè íå íàæàòà, òî èä¸ì äàëüøå |
call mouse_get ; Èíà÷å âêëþ÷àåì îáðàáîò÷èê ìûøè, ÷òîáû ñ÷èòàòü çíà÷åíèå öâåòà ñ ïàëèòðû |
jmp still ; È óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ |
color_button: ; ÐÀÑ×¨Ò êîîðäèíàò äëÿ ïîëçóíêîâ RGBA |
push eax ; çàïîìèíàåì åàõ |
call mouse_local ; ïîëó÷àåì ëîêàëüíûå êîîðäèíàòû |
mov ebx,137 ; íèæíÿÿ ãðàíèöà ïîëçóíêà ïî Ó |
mov ecx,[mouse_y] ; çàíèñèì â åñõ çíà÷åíèå êóðñîðà ïî Ó |
sub ebx,ecx ; íàõîäèì ðàçíîñòü (ò.å. êóäà ñìåùàåòñÿ ïîëçóíîê) |
mov ecx,3 ; çàíîñèì â åñõ öèôðó 3 (256/3=85, ãäå 85-âûñîòà ïîëçóíêîâ) |
imul ecx,ebx ; íàõîäèì èñòèííûé ïàðàìåòð öâåòà ñ ó÷¸òîì ìàñøòàáà ïîëçóíêà---+ |
pop eax ; âîññòàíàâëèâàåì åàõ : |
;red_button: ; Êðàñíûé Òðåêáàð : |
cmp ah, 7 ; ஢¥à塞 ¦ â ª®¯ª á ID=7 |
jne color_button ;
᫨ ¥ ¦ â , â® ¨¤ñ¬ ¤ «ìè¥ |
call mouse_get ; ç¥ ¢ª«îç ¥¬ ®¡à ¡®â稪 ¬ëè¨, ç⮡ë áç¨â âì § 票¥ 梥â á ¯ «¨âàë |
jmp still ; ã室¨¬ ®¦¨¤ ¨¥ ¤à㣮£® ᮡëâ¨ï |
color_button: ; 𠪮®à¤¨ â ¤«ï ¯®«§ãª®¢ RGBA |
push eax ; § ¯®¬¨ ¥¬ ¥ å |
call mouse_local ; ¯®«ãç ¥¬ «®ª «ìë¥ ª®®à¤¨ âë |
mov ebx,137 ; ¨¦ïï £à ¨æ ¯®«§ãª ¯® |
mov ecx,[mouse_y] ; § ¨á¨¬ ¢ ¥áå § 票¥ ªãàá®à ¯® |
sub ebx,ecx ; 室¨¬ à §®áâì (â.¥. ªã¤ á¬¥é ¥âáï ¯®«§ã®ª) |
mov ecx,3 ; § ®á¨¬ ¢ ¥áå æ¨äàã 3 (256/3=85, £¤¥ 85-¢ëá®â ¯®«§ãª®¢) |
imul ecx,ebx ; 室¨¬ ¨áâ¨ë© ¯ à ¬¥âà 梥â á ãçñ⮬ ¬ áèâ ¡ ¯®«§ãª ---+ |
pop eax ; ¢®ááâ ¢«¨¢ ¥¬ ¥ å : |
;red_button: ; à áë© à¥ª¡ à : |
cmp ah, 8 ; ID=8 : |
jne green_button ; åñëè íåò, òî ïðîâåðÿåì çåë¸íûé òðåêáàð : |
mov [cred],cl ; èíà÷å ïðèñâàèâàåì çíà÷åíèå, êðàñíîìó öâåòó ñïåêòðà <------+ |
call set_spectr ; óñòàíàâëèâàåì ñïåêòð |
jmp still ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ |
jne green_button ; ¥á«¨ ¥â, â® ¯à®¢¥à塞 §¥«ñë© â४¡ à : |
mov [cred],cl ; ¨ ç¥ ¯à¨á¢ ¨¢ ¥¬ § 票¥, ªà ᮬã 梥âã ᯥªâà <------+ |
call set_spectr ; ãáâ ¢«¨¢ ¥¬ ᯥªâà |
jmp still ; 室¨¬ ®¦¨¤ ¨¥ ¤à㣮£® ᮡëâ¨ï |
green_button: |
cmp ah, 9 |
jne blue_button |
mov [cgreen],cl |
call set_spectr |
jmp still ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ |
jmp still ; 室¨¬ ®¦¨¤ ¨¥ ¤à㣮£® ᮡëâ¨ï |
blue_button: |
cmp ah, 10 |
jne alpha_button |
mov [cblue],cl |
call set_spectr |
jmp still ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ |
jmp still ; 室¨¬ ®¦¨¤ ¨¥ ¤à㣮£® ᮡëâ¨ï |
alpha_button: |
cmp ah, 11 |
jne still |
mov [calpha],cl |
call set_spectr |
jmp still ; Óõîäèì íà îæèäàíèå äðóãîãî ñîáûòèÿ |
jmp still ; 室¨¬ ®¦¨¤ ¨¥ ¤à㣮£® ᮡëâ¨ï |
bexit: |
mcall -1 ; èíà÷å êîíåö ïðîãðàììû |
mcall -1 ; ¨ ç¥ ª®¥æ ¯à®£à ¬¬ë |
;end_button |
|
;#___________________________________________________________________________________________________ |
;****************************************************************************************************| |
; ÃËÀÂÍÛÉ ÌÎÄÓËÜ ÎÒÐÈÑÎÂÊÈ ÎÊÍÀ È ÝËÅÌÅÍÒÎÂ ÏÐÈËÎÆÅÍÈß | |
;
| |
;----------------------------------------------------------------------------------------------------/ |
draw_window: |
mov eax,12 ; ôóíêöèÿ 12: îçíà÷àåò, ÷òî áóäåò ðèñîâàòüñÿ îêíî |
mov ebx,1 ; 1,íà÷àëî ðèñîâàíèÿ |
int 0x40 ; Ïðåðûâàíèå |
draw_main: |
mov eax,12 ; äãªæ¨ï 12: ®§ ç ¥â, çâ® ¡ã¤¥â à¨á®¢ âìáï ®ª® |
mov ebx,1 ; 1, ç «® à¨á®¢ ¨ï |
int 0x40 ; à¥àë¢ ¨¥ |
|
mov eax,48 ; Ôóíêöèÿ 48 - ñòèëè îòîáðàæåíèÿ îêîí |
mov ebx,3 ; Ïîäôóíêöèÿ 3 - ïîëó÷èòü ñòàíäàðòíûå öâåòà îêîí. |
mov ecx,sc ; Óêàçàòåëü íà áóôåð ðàçìåðîì edx áàéò, ïîä ñòðóêòóðó |
mov edx,sizeof.system_colors ; Ðàçìåð òàáëèöû öâåòîâ (äîëæåí áûòü 40 áàéò) |
int 0x40 ; Ïðåðûâàíèå |
mov eax,48 ; ãªæ¨ï 48 - á⨫¨ ®â®¡à ¦¥¨ï ®ª® |
mov ebx,3 ; ®¤äãªæ¨ï 3 - ¯®«ãç¨âì áâ ¤ àâë¥ æ¢¥â ®ª®. |
mov ecx,sc ; ª § â¥«ì ¡ãä¥à à §¬¥à®¬ edx ¡ ©â, ¯®¤ áâàãªâãàã |
mov edx,sizeof.system_colors ; §¬¥à â ¡«¨æë 梥⮢ (¤®«¦¥ ¡ëâì 40 ¡ ©â) |
int 0x40 ; à¥àë¢ ¨¥ |
|
mov eax,48 ; Ôóíêöèÿ 48 - ñòèëè îòîáðàæåíèÿ îêîí. |
mov ebx,4 ; Ïîäôóíêöèÿ 4 - âîçâðàùàåò eax = âûñîòà ñêèíà. |
int 0x40 ; Ïðåðûâàíèå |
mov ecx,eax ; Çàïîìèíàåì âûñîòó ñêèíà |
mov eax,48 ; ãªæ¨ï 48 - á⨫¨ ®â®¡à ¦¥¨ï ®ª®. |
mov ebx,4 ; ®¤äãªæ¨ï 4 - ¢®§¢à é ¥â eax = ¢ëá®â ᪨ . |
int 0x40 ; à¥àë¢ ¨¥ |
mov ecx,eax ; ¯®¬¨ ¥¬ ¢ëá®âã ᪨ |
|
xor eax,eax ; Î÷èùàåì eax (mov eax,0) (Ôóíêöèÿ 0) |
mov ebx,WIN_X shl 16+WIN_W ; [êîîðäèíàòà ïî îñè x]*65536 + [ðàçìåð ïî îñè x] |
add ecx,WIN_Y shl 16+WIN_H ; Âûñîòà ñêèíà + [êîîðäèíàòà ïî y]*65536 + [ðàçìåð ïî y] (168 äëÿ âåðñèè 0.2) |
mov edx,[sc.work] ; Âèäèìî ñòèëü îêíà ïî äåôîëòó |
or edx,0x34000000 ; Èëè îêíî ñî ñêèíîì ôèêñèðîâàííûõ ðàçìåðîâ |
mov edi,title ; Çàãîëîâîê îêíà |
int 0x40 ; Ïðåðûâàíèå |
xor eax,eax ; ç¨é ¥¬ eax (mov eax,0) (ãªæ¨ï 0) |
mov ebx,WIN_X shl 16+WIN_W ; [ª®®à¤¨ â ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ x] |
add ecx,WIN_Y shl 16+WIN_H ; ëá®â ᪨ + [ª®®à¤¨ â ¯® y]*65536 + [à §¬¥à ¯® y] (168 ¤«ï ¢¥àᨨ 0.2) |
mov edx,[sc.work] ; ¨¤¨¬® áâ¨«ì ®ª ¯® ¤¥ä®«âã |
or edx,0x34000000 ; «¨ ®ª® ᮠ᪨®¬ 䨪á¨à®¢ ëå à §¬¥à®¢ |
mov edi,title ; £®«®¢®ª ®ª |
int 0x40 ; à¥àë¢ ¨¥ |
|
call draw_palitra ; ÐÈÑÓÅÌ ÏÀËÈÒÐÓ |
call draw_result ; ÐÈÑÓÅÌ ÐÅÇÓËÜÒÀÒ |
|
mov eax,8 ; Ôóíêöèÿ 8 - îïðåäåëèòü/óäàëèòü êíîïêó |
mov ebx,110 shl 16+147 ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð] |
mov ecx,9 shl 16+147 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
mov edx,0x60000007 ; Íà÷àëüíîå ID êíîïîê - 0xXYnnnnnn |
call draw_palitra ;
|
call draw_result ;
|
|
mov eax,8 ; ãªæ¨ï 8 - ®¯à¥¤¥«¨âì/㤠«¨âì ª®¯ªã |
mov ebx,110 shl 16+147 ; ç «ìë¥ ª®®à¤¨ âë ¯® å [ª-â x]*65536 + [à §¬¥à] |
mov ecx,9 shl 16+147 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
mov edx,0x60000007 ; ç «ì®¥ ID ª®¯®ª - 0xXYnnnnnn |
int 0x40 |
|
mov ebx,13 shl 16+12 ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð] |
mov ebx,13 shl 16+12 ; ç «ìë¥ ª®®à¤¨ âë ¯® å [ª-â x]*65536 + [à §¬¥à] |
mov edx,0x60000008 ; ID = 8 |
mov ecx,51 shl 16+85 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
int 0x40 ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì red |
add ebx,23 shl 16 ; Äîáàâëÿåì |
mov ecx,51 shl 16+85 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
int 0x40 ; ¨á㥬 ¥¢¨¤¨¬ãî ª®¯ªã ¯®¤ á« ©¤¥à®¬ red |
add ebx,23 shl 16 ; ®¡ ¢«ï¥¬ |
inc edx ; ID = 9 |
int 0x40 ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì green |
add ebx,23 shl 16 ; Äîáàâëÿåì |
int 0x40 ; ¨á㥬 ¥¢¨¤¨¬ãî ª®¯ªã ¯®¤ á« ©¤¥à®¬ green |
add ebx,23 shl 16 ; ®¡ ¢«ï¥¬ |
inc edx ; ID = 10 |
int 0x40 ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì blue |
add ebx,23 shl 16 ; Äîáàâëÿåì |
int 0x40 ; ¨á㥬 ¥¢¨¤¨¬ãî ª®¯ªã ¯®¤ á« ©¤¥à®¬ blue |
add ebx,23 shl 16 ; ®¡ ¢«ï¥¬ |
inc edx ; ID = 11 |
int 0x40 ; Ðèñóåì íåâèäèìóþ êíîïêó ïîä ñëàéäåðîì alpha |
int 0x40 ; ¨á㥬 ¥¢¨¤¨¬ãî ª®¯ªã ¯®¤ á« ©¤¥à®¬ alpha |
|
mov eax,8 ; Ôóíêöèÿ 8 - îïðåäåëèòü/óäàëèòü êíîïêó (ÑÌÅÍÀ ÖÂÅÒÀ) |
mov ebx,11 shl 16+20 ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð] |
mov ecx,12 shl 16+20 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
mov eax,8 ; ãªæ¨ï 8 - ®¯à¥¤¥«¨âì/㤠«¨âì ª®¯ªã (
) |
mov ebx,11 shl 16+20 ; ç «ìë¥ ª®®à¤¨ âë ¯® å [ª-â x]*65536 + [à §¬¥à] |
mov ecx,12 shl 16+20 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
mov edx,0x6000000D ; ID = 13 |
int 0x40 |
|
mov eax,12 ; ôóíêöèÿ 12: îçíà÷àåò, ÷òî áóäåò ðèñîâàòüñÿ îêíî |
mov ebx,2 ; 2 - êîíåö ðèñîâàíèÿ |
int 0x40 ; Ïðåðûâàíèå |
call draw_bottom_panel |
call draw_left_panel |
|
;................................................................................................. |
; Îòðèñîâêà íèæíåé ïàíåëè |
;................................................................................................. |
mov eax,8 ; Ôóíêöèÿ 8 - îïðåäåëèòü/óäàëèòü êíîïêó |
mov ebx,4 shl 16+64 ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð] |
mov ecx,169 shl 16+16 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
mov edx,12 ; ID = 12 |
mov esi,[sc.work_button] ; öâåò |
int 0x40 |
|
mov ebx,80 shl 16+102 ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð] |
mov edx,14 ; BACKGROUND button |
int 0x40 |
mov eax,12 ; äãªæ¨ï 12: ®§ ç ¥â, çâ® ¡ã¤¥â à¨á®¢ âìáï ®ª® |
mov ebx,2 ; 2 - ª®¥æ à¨á®¢ ¨ï |
int 0x40 ; à¥àë¢ ¨¥ |
ret |
|
;#___________________________________________________________________________________________________ |
;****************************************************************************************************| |
;
| |
;----------------------------------------------------------------------------------------------------/ |
|
mov eax,4 ; 4 - âûâåñòè ñòðîêó òåêñòà â îêíî |
mov ebx,25 shl 16+174 ; [êîîðäèíàòà ïî îñè x]*65536 + [êîîðäèíàòà ïî îñè y] |
mov ecx,[sc.work_button_text] ; 0xX0RRGGBB (RR, GG, BB çàäàþò öâåò òåêñòà) |
mov edx,bnext ; óêàçàòåëü íà íà÷àëî ñòðîêè |
;mov esi,1 ; âûâîäèòü esi ñèìâîëîâ |
int 0x40 |
|
;mov ebx,247 shl 16+64 ; Íà÷àëüíûå êîîðäèíàòû ïî õ [ê-òà x]*65536 + [ðàçìåð] |
;mov edx,12 ; ID = 12 |
;int 0x40 |
;------------------------------------------------------------------------------------------------+ |
draw_left_panel: ; âà¨á®¢ª ¡®ª®¢®© ¯ ¥«¨ |
;................................................................................................. |
mov eax,8 ; button_next_colorsheme |
mov ebx,266 shl 16+16 ; [x] + [size] |
mov ecx,9 shl 16+16 ; [y] + [size] |
mov edx,0x6000000C ; ID = 12 |
mov esi,[sc.work_button] ; RGB |
int 0x40 ; call |
mov eax,13 ; draw rect |
mov ebx,266 shl 16+16 ; [x] + [size] |
mov ecx,9 shl 16+16 ; [y] + [size] |
mov edx,0x666666 ; RGB |
push esi ; backup esi |
mov esi,8 ; counter=8 |
draw_lpanel: ; loop label |
int 0x40 ; call draw black rect |
add ecx,19 shl 16 ; move rect |
dec esi ; decrement counter |
cmp esi,0 ; if counter!=zero |
jne draw_lpanel ; then goto label |
mov esi,8 ; else counter=8 |
mov ebx,267 shl 16+14 ; [x] + [size] |
mov ecx,10 shl 16+14 ; [y] + [size] |
mov edx,0xF3F3F3 ; RGB |
draw_lpanel2: ; 2 loop label |
int 0x40 ; call draw white rect |
add ecx,19 shl 16 ; move rect |
dec esi ; decrement counter |
cmp esi,0 ; if counter!=0 |
jne draw_lpanel2 ; then goto label2 |
pop esi ; restore esi |
; draw_left_arrow for button_next_colorsheme |
mov eax,4 ; Write string |
mov ebx,272 shl 16+13 ; [x] + [y] |
mov ecx,0x0 ; RGB |
mov edx,larrow ; string pointer |
mov esi,1 ; count symbol |
int 0x40 ; call |
mov eax,38 ; draw line |
mov ebx,270 shl 16+272 ; [start x] + [end x] |
mov ecx,16 shl 16+16 ; [start y] + [end y] |
mov edx,0x0 ; RGB |
int 0x40 ; call |
ret ; return |
;................................................................................................. |
|
mov eax,38 ; Ôóíêöèÿ 38 - íàðèñîâàòü îòðåçîê. |
mov ebx,4 shl 16+257 ;[êîîðäèíàòà íà÷àëà ïî îñè x]*65536 + [êîîðäèíàòà êîíöà ïî îñè x] |
mov ecx,163 shl 16+163 ;[êîîðäèíàòà íà÷àëà ïî îñè y]*65536 + [êîîðäèíàòà êîíöà ïî îñè y] |
mov edx,0x00666666 ;0x00RRGGBB - öâåò |
int 0x40 |
|
ret ; Âîçâðàùàåì óïðàâëåíèå |
;------------------------------------------------------------------------------------------------+ |
draw_bottom_panel: ; âà¨á®¢ª ¨¦¥© ¯ ¥«¨ |
;................................................................................................. |
mov eax,8 ; draw button |
mov ebx,92 shl 16+100 ; [x] + [size] |
mov ecx,169 shl 16+16 ; [y] + [size] |
mov edx,14 ; ID = 14 |
mov esi,[sc.work_button] ; RGB |
int 0x40 ; call |
mov eax,4 ; Write string |
mov ebx,113 shl 16+174 ; [x] + [y] |
mov ecx,[sc.work_button_text] ; RGB |
mov edx,bground ; string pointer |
mov esi,10 ; count symbol |
int 0x40 ; call |
mov eax,38 ; draw line |
mov ebx,4 shl 16+282 ; [start x] + [end x] |
mov ecx,163 shl 16+163 ; [start y] + [end y] |
mov edx,0x00666666 ; RGB |
int 0x40 ; call |
ret ; return |
;................................................................................................. |
|
|
;#___________________________________________________________________________________________________ |
;****************************************************************************************************| |
; ÁËÎÊ ÂÑÏÎÌÎÃÀÒÅËÜÍÛÕ ÏÐÎÖÅÄÓÐ È ÔÓÍÊÖÈÉ ÏÐÈËÎÆÅÍÈß | |
;----------------------------------------------------------------------------------------------------/ |
|
mouse_global: |
;................................................................................................. |
; Ïîëó÷àåì êîîðäèíàòû ìûøè |
; ®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ |
;................................................................................................. |
mov eax,37 ; Ôóíêöèÿ 37 - ðàáîòà ñ ìûøüþ |
mov ebx,0 ; íàì íóæíû ãëîáàëüíûå êîîðäèíàòû |
int 0x40 ; eax = x*65536 + y, (x,y)=êîîðäèíàòû êóðñîðà ìûøè |
mov eax,37 ; ãªæ¨ï 37 - à ¡®â á ¬ëèìî |
mov ebx,0 ; ¬ ã¦ë £«®¡ «ìë¥ ª®®à¤¨ âë |
int 0x40 ; eax = x*65536 + y, (x,y)=ª®®à¤¨ âë ªãàá®à ¬ëè¨ |
mov ecx,eax ; |
shr ecx,16 ; ecx = x+1 |
movzx edx,ax ; edx = y+1 |
284,16 → 335,16 |
dec edx ; edx = y |
mov [mouse_x],ecx ; mouse_x = x |
mov [mouse_y],edx ; mouse_y = y |
ret ; Âîçâðàùàåì óïðàâëåíèå |
ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
;end_mouse_global |
|
mouse_local: |
;................................................................................................. |
; Ïîëó÷àåì êîîðäèíàòû ìûøè îòíîñèòåëüíî îêíà |
; ®«ãç ¥¬ ª®®à¤¨ âë ¬ëè¨ ®â®á¨â¥«ì® ®ª |
;................................................................................................. |
mov eax,37 ; Ôóíêöèÿ 37 - ðàáîòà ñ ìûøüþ |
mov ebx,1 ; íàì íóæíû ãëîáàëüíûå êîîðäèíàòû |
int 0x40 ; eax = x*65536 + y, (x,y)=êîîðäèíàòû êóðñîðà ìûøè |
mov eax,37 ; ãªæ¨ï 37 - à ¡®â á ¬ëèìî |
mov ebx,1 ; ¬ ã¦ë £«®¡ «ìë¥ ª®®à¤¨ âë |
int 0x40 ; eax = x*65536 + y, (x,y)=ª®®à¤¨ âë ªãàá®à ¬ëè¨ |
mov ecx,eax ; |
shr ecx,16 ; ecx = x+1 |
movzx edx,ax ; edx = y+1 |
301,128 → 352,206 |
dec edx ; edx = y |
mov [mouse_x],ecx ; mouse_x = x |
mov [mouse_y],edx ; mouse_y = y |
ret ; Âîçâðàùàåì óïðàâëåíèå |
ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
;end_mouse_local |
|
set_background: |
;................................................................................................. |
; áâ ¢«¨¢ ¥â ä® à ¡®ç¥£® á⮫ |
;................................................................................................. |
mov eax,15 ; ãªæ¨ï 15 - à ¡®â á ä®®¢®© £à 䨪®© |
mov ebx,4 ; ®¤äãªæ¨ï 4 - ãáâ ®¢¨âì ०¨¬ ®âà¨á®¢ª¨ ä® . |
mov ecx,2 ; ¥¦¨¬ ®âà¨á®¢ª¨ - § ¬®áâ¨âì (1) |
int 0x40 ; ë§ë¢ ¥¬ |
|
mov eax,15 ; ãªæ¨ï 15 - à ¡®â á ä®®¢®© £à 䨪®© |
mov ebx,1 ; ®¤äãªæ¨ï 1 - ãáâ ®¢¨âì à §¬¥à ä®®¢®£® ¨§®¡à ¦¥¨ï. |
mov ecx,2 ; ¨à¨ ¨§®¡à ¦¥¨ï |
mov edx,2 ; ëá®â ¨§®¡à ¦¥¨ï |
int 0x40 ; ë§ë¢ ¥¬ |
|
mov eax,[color] |
mov [cm+0],al |
mov [cm+9],al |
shr eax,8 |
mov [cm+1],al |
mov [cm+10],al |
shr eax,8 |
mov [cm+2],al |
mov [cm+11],al |
|
mov eax,[color2] |
mov [cm+3],al |
mov [cm+6],al |
shr eax,8 |
mov [cm+4],al |
mov [cm+7],al |
shr eax,8 |
mov [cm+5],al |
mov [cm+8],al |
|
mov eax,15 ; ãªæ¨ï 15 - à ¡®â á ä®®¢®© £à 䨪®© |
mov ebx,5 ; ®¤äãªæ¨ï 5 - ¯®¬¥áâ¨âì ¡«®ª ¯¨ªá¥«¥© ä®. |
mov ecx,cm ; ª § â¥«ì ¤ ë¥ ¢ ä®à¬ ⥠BBGGRRBBGGRR |
mov edx,0 ; C¬¥é¥¨¥ ¢ ¤ ëå ä®®¢®£® ¨§®¡à ¦¥¨ï |
mov esi,3*4 ; §¬¥à ¤ ëå ¢ ¡ ©â å = 3 * ç¨á«® ¯¨ªá¥«¥© |
int 0x40 ; ë§ë¢ ¥¬ |
|
mov eax,15 ; ãªæ¨ï 15 - à ¡®â á ä®®¢®© £à 䨪®© |
mov ebx,3 ; ®¤äãªæ¨ï 3 - ¯¥à¥à¨á®¢ âì ä®. |
int 0x40 ; ë§ë¢ ¥¬ |
|
ret |
;end_set_background |
|
desktop_get: |
;................................................................................................. |
; Îïðåäåëÿåì øèðèíó ýêðàíà |
; ¯à¥¤¥«ï¥¬ è¨à¨ã íªà |
;................................................................................................. |
mov eax,14 ; Îïðåäåëÿåì øèðèíó ýêðàíà (eax = [xsize]*65536 + [ysize]) |
int 0x40 ; xsize = ðàçìåð ïî ãîðèçîíòàëè - 1 |
mov eax,14 ; ¯à¥¤¥«ï¥¬ è¨à¨ã íªà (eax = [xsize]*65536 + [ysize]) |
int 0x40 ; xsize = à §¬¥à ¯® £®à¨§®â «¨ - 1 |
mov ebx,eax ; |
shr ebx,16 ; ebx = xsize-1 |
;movzx edx,ax ;; edx = ysize-1 (ëèøíèé êîä) |
;movzx edx,ax ;; edx = ysize-1 («¨è¨© ª®¤) |
inc ebx ; ebx = xsize |
;inc edx ;; edx = ysize (ëèøíèé êîä) |
;inc edx ;; edx = ysize («¨è¨© ª®¤) |
mov [desctop_w],ebx |
ret |
;end_desktop_get |
|
mouse_get: |
mov esi,2 ; ÊÎÑÒÛËÜ: ôëàã äëÿ èçáåæàíèÿ çàöèêëèâàíèÿ |
mov esi,2 ; : ä« £ ¤«ï ¨§¡¥¦ ¨ï § 横«¨¢ ¨ï |
call mouse_global |
call desktop_get |
re_mouse_loop: ; ÊÎÑÒÛËÜ: ìåòêà äëÿ âîçâðàòà åñëè ïîïàëè â ñåòêó |
re_mouse_loop: ; : ¬¥âª ¤«ï ¢®§¢à ⠥᫨ ¯®¯ «¨ ¢ á¥âªã |
mov ebx,[desctop_w] |
imul ebx,[mouse_y] ; ebx = y*xsize |
add ebx,[mouse_x] ; ebx = y*xsize+x |
|
;................................................................................................. |
; Áåðåì öâåò ñ ïàëèòðû â ïåðåìåííóþ |
; ¥à¥¬ 梥â á ¯ «¨âàë ¢ ¯¥à¥¬¥ãî |
;................................................................................................. |
mov eax,35 ; Ôóíêöèÿ âçÿòèÿ öâåòà |
;mov ebx,ecx ;; ebx = y*xsize+x (ëèøíèé êîä) |
int 0x40 ; Ïîëó÷àåì öâåò â eax |
cmp eax,[sc.work] ; Ñðàâíèâàåì ñ ôîíîì ïðèëîæåíèÿ |
je mouse_err ; Åñëè ýòî îí - òî íè÷åãî íå äåëàåì |
cmp eax,0x222222 ; Ñðàâíèâàåì ñ öâåòîì ñåòêè |
je mouse_err ; Åñëè ýòî îí - òî íè÷åãî íå äåëàåì |
jmp mouse_set ; ÊÎÑÒÛËÜ: ïðûãàåì ÷òîáû íå áðàòü öâåò ñåòêè |
mouse_err: ; ÊÎÑÒÛËÜ: åñëè ïîïàëè â ñåòêó èëè ôîí |
inc [mouse_y] ; ÊÎÑÒÛËÜ: ñìåùàåì ïî äèàãîíàëè ñíà÷àëà ïî õ |
inc [mouse_x] ; ÊÎÑÒÛËÜ: ñìåùàåì ïî äèàãîíàëè ïîòîì ïî ó |
dec esi ; ÊÎÑÒÛËÜ: Óìåíüøàåì ôëàã |
cmp esi,0 ; ÊÎÑÒÛËÜ: Ñðàâíèâàåì ñ íóëåì |
jz mouse_exit ; ÊÎÑÒÛËÜ: Åñëè íîëü òî ñäåëàëè âñ¸ ÷òî ìîãëè |
jmp re_mouse_loop ; ÊÎÑÒÛËÜ: Åñëè íå íîëü òî ïîïðîáóåì âçÿòü ñîñåëíèé ïèêñåëü |
mov eax,35 ; ãªæ¨ï ¢§ïâ¨ï 梥â |
;mov ebx,ecx ;; ebx = y*xsize+x («¨è¨© ª®¤) |
int 0x40 ; ®«ãç ¥¬ 梥⠢ eax |
cmp eax,[sc.work] ; à ¢¨¢ ¥¬ á ä®®¬ ¯à¨«®¦¥¨ï |
je mouse_err ;
᫨ íâ® ® - â® ¨ç¥£® ¥ ¤¥« ¥¬ |
cmp eax,0x222222 ; à ¢¨¢ ¥¬ á 梥⮬ á¥âª¨ |
je mouse_err ;
᫨ íâ® ® - â® ¨ç¥£® ¥ ¤¥« ¥¬ |
jmp mouse_set ; : ¯àë£ ¥¬ çâ®¡ë ¥ ¡à âì 梥â á¥âª¨ |
mouse_err: ; : ¥á«¨ ¯®¯ «¨ ¢ á¥âªã ¨«¨ ä® |
inc [mouse_y] ; : á¬¥é ¥¬ ¯® ¤¨ £® «¨ á ç « ¯® å |
inc [mouse_x] ; : á¬¥é ¥¬ ¯® ¤¨ £® «¨ ¯®â®¬ ¯® ã |
dec esi ; : ¬¥ìè ¥¬ ä« £ |
cmp esi,0 ; : à ¢¨¢ ¥¬ á ã«¥¬ |
jz mouse_exit ; :
᫨ ®«ì ⮠ᤥ« «¨ ¢áñ çâ® ¬®£«¨ |
jmp re_mouse_loop ; :
᫨ ¥ ®«ì â® ¯®¯à®¡ã¥¬ ¢§ïâì á®á¥«¨© ¯¨ªá¥«ì |
mouse_set: |
mov [color],eax ; Èíà÷å çàïîìèíàåì íîâûé öâåò |
call draw_result ; Âûâîäèì ðåçóëüòàò |
mov [color],eax ; ç¥ § ¯®¬¨ ¥¬ ®¢ë© 梥â |
call draw_result ; 뢮¤¨¬ १ã«ìâ â |
mouse_exit: |
ret ; Âîçâðàùàåì óïðàâëåíèå |
ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
;end_mouse_get---------------------------------------------------------------------------------------- |
|
draw_palitra: |
mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
mov ebx,110 shl 16+148 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
mov ecx,9 shl 16+148 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
mov edx,[sc.work] ; 梥â |
int 0x40 |
|
;cmp [renmode],2 |
;je cyrcle_draw |
;cmp [renmode],1 |
;je picker_draw |
cmp [renmode],0 |
je sheme_draw |
ret |
|
;................................................................................................. |
; Îòðèñîâêà ôîíà ïîä êíîïêè |
; âà¨á®¢ª ªà㣮¢®© ¤¨ £à ¬¬ë |
;................................................................................................. |
mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
mov edx,0x222222 ; öâåò |
mov ecx,9 shl 16+73 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
mov esi,2 ; Ñ÷åò÷èê ëèíèé ïîäëîæåê |
;cyrcle_draw: |
;mov eax,7 ; 7 - ®¬¥à äãªæ¨¨ |
;mov ebx,circle ; 㪠§ â¥«ì ¨§®¡à ¦¥¨¥ ¢ ä®à¬ ⥠BBGGRRBBGGRR... |
;mov ecx,148 shl 16 + 148 ; [à §¬¥à ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ y] |
;mov edx,110 shl 16 + 9 ; [ª®®à¤¨ â ¯® ®á¨ x]*65536 + [ª®®à¤¨ â ¯® ®á¨ y] |
;int 0x40 |
;ret |
|
;picker_draw: |
;ret |
|
;................................................................................................. |
; âà¨á®¢ª ä® ¯®¤ ª®¯ª¨ |
;................................................................................................. |
sheme_draw: |
mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
mov edx,0x222222 ; 梥â |
mov ecx,9 shl 16+73 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
mov esi,2 ; ç¥â稪 «¨¨© ¯®¤«®¦¥ª |
re_draw: |
mov ebx,110 shl 16+73 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
mov edi,2 ; Ñ÷åò÷èê êîëè÷åñòâà ïîäëîæåê |
mov ebx,110 shl 16+73 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
mov edi,2 ; ç¥â稪 ª®«¨ç¥á⢠¯®¤«®¦¥ª |
for_fon_loop: |
int 0x40 ; Ïðåðûâàíèå |
add ebx,75 shl 16 ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî õ |
dec edi ; Óìåíüøàåì ñ÷åò÷èê êíîïîê |
cmp edi,0 ; Ñðàâíèâàåì ñ íóëåì |
jnz for_fon_loop ; Åñëè íå íîëü òî â íà÷àëî öèêëà |
dec esi ; Óìåíüøàåì åãî |
cmp esi,0 ; Ñðàâíèâàåì ñ íóëåì |
mov ecx,84 shl 16+73 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
jnz re_draw ; Åñëè íå íîëü òî â íà÷àëî öèêëà |
int 0x40 ; à¥àë¢ ¨¥ |
add ebx,75 shl 16 ; ¬¥é ¥¬ ¯®«®¦¥¨¥ «¨¨¨ ¯® å |
dec edi ; ¬¥ìè ¥¬ áç¥â稪 ª®¯®ª |
cmp edi,0 ; à ¢¨¢ ¥¬ á ã«¥¬ |
jnz for_fon_loop ;
᫨ ¥ ®«ì â® ¢ ç «® 横« |
dec esi ; ¬¥ìè ¥¬ ¥£® |
cmp esi,0 ; à ¢¨¢ ¥¬ á ã«¥¬ |
mov ecx,84 shl 16+73 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
jnz re_draw ;
᫨ ¥ ®«ì â® ¢ ç «® 横« |
|
;................................................................................................. |
; Îòðèñîâêà êíîïîê ïî öèêëó |
; âà¨á®¢ª ª®¯®ª ¯® 横«ã |
;................................................................................................. |
mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
mov edx,0x0FFFFFFF ; öâåò |
mov esi,4 ; Ñ÷åò÷èê êîëè÷åñòâà àáçàöåâ (#4,8) |
mov ebx,99 shl 16+8 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
mov edx,0x0FFFFFFF ; 梥â |
mov esi,4 ; ç¥â稪 ª®«¨ç¥á⢠¡§ 楢 (#4,8) |
mov ebx,99 shl 16+8 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
for_abz: |
;;push esi ; Ñîõðàíÿåì çíà÷åíèå ñ÷åò÷èêà ëèíèé â ñòåê |
;;push esi ; ®åà 塞 § 票¥ áç¥â稪 «¨¨© ¢ á⥪ |
cmp esi,2 |
jne x2_line |
mov ebx,99 shl 16+8 |
x2_line: |
add ebx,3 shl 16 ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî x |
mov edi,8 ; Ñ÷åò÷èê êîëè÷åñòâà êíîïîê â ñòðîêå |
add ebx,3 shl 16 ; ¬¥é ¥¬ ¯®«®¦¥¨¥ «¨¨¨ ¯® x |
mov edi,8 ; ç¥â稪 ª®«¨ç¥á⢠ª®¯®ª ¢ áâப¥ |
for_stolbik: |
push edi ; Ñîõðàíÿåì çíà÷åíèå ñ÷åò÷èêà ëèíèé â ñòåê |
mov edi,8 ; Ñ÷åò÷èê êîëè÷åñòâà êíîïîê â ñòðîêå |
mov ecx, 1 shl 16+8 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
push edi ; ®åà 塞 § 票¥ áç¥â稪 «¨¨© ¢ á⥪ |
mov edi,8 ; ç¥â稪 ª®«¨ç¥á⢠ª®¯®ª ¢ áâப¥ |
mov ecx, 1 shl 16+8 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
cmp esi,2 |
jg y2_line ; Åñëè áîëüøå 4 òî èãíîðèì |
jg y2_line ;
᫨ ¡®«ìè¥ 4 â® ¨£®à¨¬ |
mov ecx,76 shl 16+8 |
y2_line: |
add ebx,9 shl 16 ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî x |
add ebx,9 shl 16 ; ¬¥é ¥¬ ¯®«®¦¥¨¥ «¨¨¨ ¯® x |
for_loop: |
add ecx,9 shl 16 ; Ñìåùàåì ïîëîæåíèå ëèíèè ïî y |
int 0x40 ; Ïðåðûâàíèå |
add ecx,9 shl 16 ; ¬¥é ¥¬ ¯®«®¦¥¨¥ «¨¨¨ ¯® y |
int 0x40 ; à¥àë¢ ¨¥ |
call sub_red |
dec edi ; Óìåíüøàåì ñ÷åò÷èê êíîïîê |
cmp edi,0 ; Ñðàâíèâàåì ñ íóëåì |
jnz for_loop ; Åñëè íå íîëü òî â íà÷àëî öèêëà |
dec edi ; ¬¥ìè ¥¬ áç¥â稪 ª®¯®ª |
cmp edi,0 ; à ¢¨¢ ¥¬ á ã«¥¬ |
jnz for_loop ;
᫨ ¥ ®«ì â® ¢ ç «® 横« |
call sub_green |
pop edi ; Èíà÷å âîññòàíàâëèâàåì ñ÷åò÷èê ëèíèé |
dec edi ; Óìåíüøàåì åãî |
cmp edi,0 ; Ñðàâíèâàåì ñ íóëåì |
jnz for_stolbik ; Åñëè íå íîëü òî â íà÷àëî öèêëà |
pop edi ; ç¥ ¢®ááâ ¢«¨¢ ¥¬ áç¥â稪 «¨¨© |
dec edi ; ¬¥ìè ¥¬ ¥£® |
cmp edi,0 ; à ¢¨¢ ¥¬ á ã«¥¬ |
jnz for_stolbik ;
᫨ ¥ ®«ì â® ¢ ç «® 横« |
call sub_blue |
;;pop esi ; Èíà÷å âîññòàíàâëèâàåì ñ÷åò÷èê ëèíèé |
dec esi ; Óìåíüøàåì åãî |
cmp esi,0 ; Ñðàâíèâàåì ñ íóëåì |
jnz for_abz ; Åñëè íå íîëü òî â íà÷àëî öèêëà |
ret ; Âîçâðàùàåì óïðàâëåíèå |
;;pop esi ; ç¥ ¢®ááâ ¢«¨¢ ¥¬ áç¥â稪 «¨¨© |
dec esi ; ¬¥ìè ¥¬ ¥£® |
cmp esi,0 ; à ¢¨¢ ¥¬ á ã«¥¬ |
jnz for_abz ;
᫨ ¥ ®«ì â® ¢ ç «® 横« |
ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
;end_draw_palitra------------------------------------------------------------------------------------- |
|
|
sub_red: |
;................................................................................................. |
; Ðàñ÷¸ò ñìåùåíèé êðàñíîãî öâåòà â ãåíåðàöèè öâåòà ïàëèòðû |
; áçñâ ᬥ饨© ªà ᮣ® 梥⠢ £¥¥à 樨 梥⠯ «¨âàë |
;................................................................................................. |
push eax |
mov eax,[pnext] |
429,12 → 558,12 |
;sub_red_0 ; palitra |
cmp al,0 |
jne sub_red_1 |
sub edx,0x20 |
sub edx,0x40 |
jmp sub_red_e |
sub_red_1: ; random |
cmp al,1 |
jne sub_red_2 |
sub edx,0x40 |
sub edx,0x20 |
jmp sub_red_e |
sub_red_2: ; gree |
cmp al,2 |
458,12 → 587,12 |
jmp sub_red_e |
sub_red_e: |
pop eax |
ret ; Âîçâðàùàåì óïðàâëåíèå |
ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
;end_sub_red------------------------------------------------------------------------------------------ |
|
sub_green: |
;................................................................................................. |
; Ðàñ÷¸ò ñìåùåíèé êðàñíîãî öâåòà â ãåíåðàöèè öâåòà ïàëèòðû |
; áçñâ ᬥ饨© ªà ᮣ® 梥⠢ £¥¥à 樨 梥⠯ «¨âàë |
;................................................................................................. |
push eax |
mov eax,[pnext] |
470,22 → 599,22 |
;sub_green_0 |
cmp al,0 |
jne sub_green_1 |
sub edx,0x2000 |
sub edx,0x4000 |
jmp sub_green_e |
sub_green_1: |
cmp al,1 |
jne sub_green_e |
sub edx,0x4000 |
sub edx,0x2000 |
;jmp sub_green_e |
sub_green_e: |
pop eax |
ret ; Âîçâðàùàåì óïðàâëåíèå |
ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
;end_sub_green---------------------------------------------------------------------------------------- |
|
|
sub_blue: |
;................................................................................................. |
; Ðàñ÷¸ò ñìåùåíèé êðàñíîãî öâåòà â ãåíåðàöèè öâåòà ïàëèòðû |
; áçñâ ᬥ饨© ªà ᮣ® 梥⠢ £¥¥à 樨 梥⠯ «¨âàë |
;................................................................................................. |
push eax |
mov eax,[pnext] |
492,198 → 621,198 |
;sub_blue_0 |
cmp al,0 |
jne sub_blue_1 |
sub edx,0x400000 |
sub edx,0x600000 |
jmp sub_blue_e |
sub_blue_1: |
cmp al,1 |
jne sub_blue_e |
sub edx,0x600000 |
sub edx,0x400000 |
;jmp sub_blue_e |
sub_blue_e: |
pop eax |
ret ; Âîçâðàùàåì óïðàâëåíèå |
ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
;end_sub_blue----------------------------------------------------------------------------------------- |
|
draw_result: |
;................................................................................................. |
; Áîëüøàÿ ðàìêà âûâîäà ðåçóëüòàòà |
; ®«ìè ï à ¬ª ¢ë¢®¤ १ã«ìâ â |
;................................................................................................. |
mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
mov edx,0x00666666 ; öâåò-îáâîäêè |
mov ebx,4 shl 16+98 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
mov ecx,9 shl 16+148 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
mov edx,0x00666666 ; 梥â-®¡¢®¤ª¨ |
mov ebx,4 shl 16+98 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
mov ecx,9 shl 16+148 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
int 0x40 |
mov edx,0x00F3F3F3 ; öâåò-ôîíà |
mov ebx,5 shl 16+96 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
mov ecx,10 shl 16+146 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
mov edx,0x00F3F3F3 ; 梥â-ä® |
mov ebx,5 shl 16+96 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
mov ecx,10 shl 16+146 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
int 0x40 |
|
;................................................................................................. |
; Îòðèñîâêà ðåçóëüòàòà öâåòà â hex color2 |
; âà¨á®¢ª १ã«ìâ â 梥⠢ hex color2 |
;................................................................................................. |
mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
; color 2 - draw fringle |
mov edx,0x222222 ; öâåò-îáâîäêè |
mov ebx,16 shl 16+15 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
mov ecx,16 shl 16+15 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
int 0x40 ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê) |
mov edx,0x222222 ; 梥â-®¡¢®¤ª¨ |
mov ebx,16 shl 16+15 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
mov ecx,16 shl 16+15 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
int 0x40 ; à¥àë¢ ¨¥ (®á à¨áã¥â ¯àאַ㣮«ì¨ª) |
; color 2 - draw color |
mov edx,[color2] ; öâåò |
mov ebx,17 shl 16+13 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
mov ecx,17 shl 16+13 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
int 0x40 ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê) |
mov edx,[color2] ; 梥â |
mov ebx,17 shl 16+13 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
mov ecx,17 shl 16+13 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
int 0x40 ; à¥àë¢ ¨¥ (®á à¨áã¥â ¯àאַ㣮«ì¨ª) |
; color 1 - draw fringle |
mov edx,0x222222 ; öâåò-îáâîäêè |
mov ebx,11 shl 16+15 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
mov ecx,12 shl 16+15 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
int 0x40 ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê) |
mov edx,0x222222 ; 梥â-®¡¢®¤ª¨ |
mov ebx,11 shl 16+15 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
mov ecx,12 shl 16+15 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
int 0x40 ; à¥àë¢ ¨¥ (®á à¨áã¥â ¯àאַ㣮«ì¨ª) |
; value - draw fringle |
mov ebx,34 shl 16+62 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
mov ecx,16 shl 16+15 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
int 0x40 ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê) |
mov ebx,34 shl 16+62 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
mov ecx,16 shl 16+15 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
int 0x40 ; à¥àë¢ ¨¥ (®á à¨áã¥â ¯àאַ㣮«ì¨ª) |
|
; color 2 - draw color |
mov edx,[color] ; öâåò |
mov ebx,12 shl 16+13 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
mov ecx,13 shl 16+13 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
int 0x40 ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê) |
mov edx,[color] ; 梥â |
mov ebx,12 shl 16+13 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
mov ecx,13 shl 16+13 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
int 0x40 ; à¥àë¢ ¨¥ (®á à¨áã¥â ¯àאַ㣮«ì¨ª) |
; value - draw background |
mov edx,0xFFFFFF ; öâåò-ôîíà |
mov ebx,35 shl 16+60 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
mov ecx,17 shl 16+13 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
int 0x40 ; Ïðåðûâàíèå (îñ ðèñóåò ïðÿìîóãîëüíèê) |
mov edx,0xFFFFFF ; 梥â-ä® |
mov ebx,35 shl 16+60 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
mov ecx,17 shl 16+13 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
int 0x40 ; à¥àë¢ ¨¥ (®á à¨áã¥â ¯àאַ㣮«ì¨ª) |
|
mov eax,47 ; Ôóíêöèÿ 47 - âûâîä ÷èñëà â îêíî |
mov ecx,[color] ; ÷èñëî (ïðè bl=0) èëè óêàçàòåëü (ïðè bl=1) |
mov eax,47 ; ãªæ¨ï 47 - ¢ë¢®¤ ç¨á« ¢ ®ª® |
mov ecx,[color] ; ç¨á«® (¯à¨ bl=0) ¨«¨ 㪠§ ⥫ì (¯à¨ bl=1) |
mov esi,0x0 ; 0xX0RRGGBB |
mov ebx,256+8 shl 16 ; ïàðàìåòðû ïðåîáðàçîâàíèÿ ÷èñëà â òåêñò (HEX) |
mov edx,45 shl 16+20 ; [êîîðäèíàòà ïî îñè x]*65536 + [êîîðäèíàòà ïî îñè y] |
int 0x40 ; Ïðåðûâàíèå - âûâîäèì ðåçóëüòàò â îêíî (HEX) |
mov ebx,256+8 shl 16 ; ¯ à ¬¥âàë ¯à¥®¡à §®¢ ¨ï ç¨á« ¢ ⥪áâ (HEX) |
mov edx,45 shl 16+20 ; [ª®®à¤¨ â ¯® ®á¨ x]*65536 + [ª®®à¤¨ â ¯® ®á¨ y] |
int 0x40 ; à¥àë¢ ¨¥ - ¢ë¢®¤¨¬ १ã«ìâ â ¢ ®ª® (HEX) |
|
mov eax,4 ; ôóíêöèÿ 4: íàïèñàòü òåêñò â îêíå |
mov ebx,38*65536+20 ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé] |
mov ecx,0x0 ; öâåò òåêñòà RRGGBB |
mov edx,hex ; ðèñóåì '#' |
mov esi,1 ; äëèíà òåêñòà â áàéòàõ |
mov eax,4 ; äãªæ¨ï 4: ¯¨á âì ⥪áâ ¢ ®ª¥ |
mov ebx,38*65536+20 ; [x ç «ìë©] *65536 + [y ç «ìë©] |
mov ecx,0x0 ; 梥â ⥪áâ RRGGBB |
mov edx,hex ; à¨á㥬 '#' |
mov esi,1 ; ¤«¨ ⥪áâ ¢ ¡ ©â å |
int 0x40 |
|
;................................................................................................. |
; Îòðèñîâêà r g b çíà÷åíèé |
; âà¨á®¢ª r g b § 票© |
;................................................................................................. |
call get_spectr |
|
movzx eax,[cred] ; êðàñíûé |
mov ebx,9*65536+142 ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé] |
call draw_value ; âûâîäèì ðåçóëüòàò |
movzx eax,[cred] ; ªà áë© |
mov ebx,9*65536+142 ; [x ç «ìë©] *65536 + [y ç «ìë©] |
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â |
|
movzx eax,[cgreen] ; çåëåíûé |
mov ebx,32*65536+142 ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé] |
call draw_value ; âûâîäèì ðåçóëüòàò |
movzx eax,[cgreen] ; §¥«¥ë© |
mov ebx,32*65536+142 ; [x ç «ìë©] *65536 + [y ç «ìë©] |
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â |
|
movzx eax,[cblue] ; ñèíèé |
mov ebx,55*65536+142 ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé] |
call draw_value ; âûâîäèì ðåçóëüòàò |
movzx eax,[cblue] ; ᨨ© |
mov ebx,55*65536+142 ; [x ç «ìë©] *65536 + [y ç «ìë©] |
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â |
|
movzx eax,[calpha] ; àëüôà |
mov ebx,78*65536+142 ; [x íà÷àëüíûé] *65536 + [y íà÷àëüíûé] |
call draw_value ; âûâîäèì ðåçóëüòàò |
movzx eax,[calpha] ; «ìä |
mov ebx,78*65536+142 ; [x ç «ìë©] *65536 + [y ç «ìë©] |
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â |
|
;................................................................................................. |
; Âûâîäèì áóêâû r g b a |
; 뢮¤¨¬ ¡ãª¢ë r g b a |
;................................................................................................. |
mov eax,4 ; 4 - âûâåñòè ñòðîêó òåêñòà â îêíî |
mov ebx,16 shl 16+40 ; [êîîðäèíàòà ïî îñè x]*65536 + [êîîðäèíàòà ïî îñè y] |
mov ecx,0x0 ; 0xX0RRGGBB (RR, GG, BB çàäàþò öâåò òåêñòà) |
mov edx,cname ; óêàçàòåëü íà íà÷àëî ñòðîêè |
mov esi,1 ; âûâîäèòü esi ñèìâîëîâ |
newline: ; öèêë |
int 0x40 ; Ïðåðûâàíèå |
add ebx,23 shl 16 ; Äîáàâëÿåì |
add edx,1 ; Äîáàâëÿåì |
cmp [edx],byte 'x' ; Ñðàâíåíèå ñ áàéòîì õ |
jne newline ; Åñëè íå íóëü èëè íå ðàâíî |
mov eax,4 ; 4 - ¢ë¢¥á⨠áâபã ⥪áâ ¢ ®ª® |
mov ebx,16 shl 16+40 ; [ª®®à¤¨ â ¯® ®á¨ x]*65536 + [ª®®à¤¨ â ¯® ®á¨ y] |
mov ecx,0x0 ; 0xX0RRGGBB (RR, GG, BB § ¤ îâ 梥â ⥪áâ ) |
mov edx,cname ; 㪠§ ⥫ì ç «® áâப¨ |
mov esi,1 ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢ |
newline: ; 横« |
int 0x40 ; à¥àë¢ ¨¥ |
add ebx,23 shl 16 ; ®¡ ¢«ï¥¬ |
add edx,1 ; ®¡ ¢«ï¥¬ |
cmp [edx],byte 'x' ; à ¢¥¨¥ á ¡ ©â®¬ å |
jne newline ;
᫨ ¥ ã«ì ¨«¨ ¥ à ¢® |
|
;................................................................................................. |
; Îòðèñîâêà ñëàéäåðîâ |
; âà¨á®¢ª á« ©¤¥à®¢ |
;................................................................................................. |
mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
mov edx,0x222222 ; öâåò-îáâîäêè |
mov ebx,16 shl 16+4 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
mov ecx,51 shl 16+86 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
mov edx,0x222222 ; 梥â-®¡¢®¤ª¨ |
mov ebx,16 shl 16+4 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
mov ecx,51 shl 16+86 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
int 0x40 |
add ebx,23 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
add ebx,23 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
int 0x40 |
add ebx,23 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
add ebx,23 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
int 0x40 |
add ebx,23 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
add ebx,23 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
int 0x40 |
|
mov edx,0xFA0919 ; öâåò-îáâîäêè |
mov ebx,17 shl 16+2 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
mov ecx,52 shl 16+84 ; Íà÷àëüíûå êîîðäèíàòû ïî y [ê-òà y]*65536 + [ðàçìåð] |
mov edx,0xFA0919 ; 梥â-®¡¢®¤ª¨ |
mov ebx,17 shl 16+2 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
mov ecx,52 shl 16+84 ; ç «ìë¥ ª®®à¤¨ âë ¯® y [ª-â y]*65536 + [à §¬¥à] |
int 0x40 |
mov edx,0x08CE19 ; öâåò-îáâîäêè |
add ebx,23 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
mov edx,0x08CE19 ; 梥â-®¡¢®¤ª¨ |
add ebx,23 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
int 0x40 |
mov edx,0x0909FF ; öâåò-îáâîäêè |
add ebx,23 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
mov edx,0x0909FF ; 梥â-®¡¢®¤ª¨ |
add ebx,23 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
int 0x40 |
mov edx,0xE4E4E4 ; öâåò-îáâîäêè |
add ebx,23 shl 16 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà y]*65536 + [ðàçìåð] |
mov edx,0xE4E4E4 ; 梥â-®¡¢®¤ª¨ |
add ebx,23 shl 16 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â y]*65536 + [à §¬¥à] |
int 0x40 |
|
;................................................................................................. |
; Îòðèñîâêà ïîëçóíêîâ |
; âà¨á®¢ª ¯®«§ãª®¢ |
;................................................................................................. |
mov edx,0x0 ; öâåò-ïîëçóíêîâ |
mov ebx,17 shl 16+11 ; Íà÷àëüíûå êîîðäèíàòû ïî x [ê-òà x]*65536 + [ðàçìåð] |
movzx eax,[cred] ; áåðåì çíà÷åíèå öâåòà |
mov edx,0x0 ; 梥â-¯®«§ãª®¢ |
mov ebx,17 shl 16+11 ; ç «ìë¥ ª®®à¤¨ âë ¯® x [ª-â x]*65536 + [à §¬¥à] |
movzx eax,[cred] ; ¡¥à¥¬ § 票¥ 梥â |
call draw_slider |
add ebx,23 shl 16 |
movzx eax,[cgreen] ; áåðåì çíà÷åíèå öâåòà |
movzx eax,[cgreen] ; ¡¥à¥¬ § 票¥ 梥â |
call draw_slider |
add ebx,23 shl 16 |
movzx eax,[cblue] ; áåðåì çíà÷åíèå öâåòà |
movzx eax,[cblue] ; ¡¥à¥¬ § 票¥ 梥â |
call draw_slider |
add ebx,23 shl 16 |
movzx eax,[calpha] ; áåðåì çíà÷åíèå öâåòà |
movzx eax,[calpha] ; ¡¥à¥¬ § 票¥ 梥â |
call draw_slider |
|
ret ; Âîçâðàùàåì óïðàâëåíèå |
ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
;end_draw_result |
|
draw_slider: |
xor ecx,ecx |
mov cl,0x3 ; áóäåì äåëèòü åãî íà 3 òàê êàê ïîëçóíêè äëèííîé 85 ïèêñåëåé |
div cl ; äåëèì - öåëîå â al îñòàòîê â ah |
mov cl,136 ; íèæíÿÿ òî÷êà ïîëçóíêà |
mov cl,0x3 ; ¡ã¤¥¬ ¤¥«¨âì ¥£® 3 â ª ª ª ¯®«§ãª¨ ¤«¨®© 85 ¯¨ªá¥«¥© |
div cl ; ¤¥«¨¬ - 楫®¥ ¢ al ®áâ ⮪ ¢ ah |
mov cl,136 ; ¨¦ïï â®çª ¯®«§ãª |
sub cl,al ; cl=cl-al |
shl ecx,16 |
add ecx,1 ; çàäàåì íà÷àëüíîå ïîëîæåíèå |
mov eax,13 ; Ôóíêöèÿ 13 - íàðèñîâàòü ïðÿìîóãîëüíèê |
add ecx,1 ; § ¤ ¥¬ ç «ì®¥ ¯®«®¦¥¨¥ |
mov eax,13 ; ãªæ¨ï 13 - à¨á®¢ âì ¯àאַ㣮«ì¨ª |
int 0x40 |
push ebx ; ñîõðàíÿåì äëÿ ñëåäóþùåãî ïîëçóíêà x+w |
sub ebx,8 ; òàê êàê øèðèíà ëèíèè 11 òî îòíèìàåì 8 ÷òîáû êóáèê ñòàë øèðèíîé 3 |
add ebx,8 shl 16 ; Êîîðäèíàòû ïî x äëÿ êâàäðàòà íà ïîëçóíêå ñìåùàåì íà 8 â ïðàâî |
inc ecx ; áûäëîêîäèì âûñîòó ïîëçóíêà äî 3-õ (1+1=2) |
inc ecx ; (2+1=3) íó âîò ó íàñ áóäåò êóáèê 3õ3 íà 8 â ïðàâî îò ëèíèè |
int 0x40 ; ðèñóåì |
pop ebx ; âîññòàíàâëèâàåì íîðìàëüíûå êîîðäèíàòû |
ret ; Âîçâðàùàåì óïðàâëåíèå |
push ebx ; á®åà 塞 ¤«ï á«¥¤ãî饣® ¯®«§ãª x+w |
sub ebx,8 ; â ª ª ª è¨à¨ «¨¨¨ 11 â® ®â¨¬ ¥¬ 8 çâ®¡ë ªã¡¨ª áâ « è¨à¨®© 3 |
add ebx,8 shl 16 ; ®®à¤¨ âë ¯® x ¤«ï ª¢ ¤à â ¯®«§ãª¥ á¬¥é ¥¬ 8 ¢ ¯à ¢® |
inc ecx ; ¡ë¤«®ª®¤¨¬ ¢ëá®âã ¯®«§ãª ¤® 3-å (1+1=2) |
inc ecx ; (2+1=3) ã ¢®â ã á ¡ã¤¥â ªã¡¨ª 3å3 8 ¢ ¯à ¢® ®â «¨¨¨ |
int 0x40 ; à¨á㥬 |
pop ebx ; ¢®ááâ ¢«¨¢ ¥¬ ®à¬ «ìë¥ ª®®à¤¨ âë |
ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
|
;end_slider |
|
draw_value: |
;................................................................................................. |
; Âûâîä ÷èñëà èç ñòðîêè â óêàçàííîé îáëàñòè |
; 뢮¤ ç¨á« ¨§ áâப¨ ¢ 㪠§ ®© ®¡« á⨠|
;................................................................................................. |
push ebx ; ñîõðàíÿåì ïðèñëàííûå êîîðäèíàòû |
mov ebx,10 ; óñòàíàâëèâàåì îñíîâàíèå ñèñòåìû ñ÷èñëåíèÿ |
mov edi,buff ; óêàçàòåëü íà ñòðîêó áóôåðà |
call int2ascii ; êîíâåðòèðóåì ÷èñëî è ëîæèì êàê ñòðîêó â áóôåð + esi äëèíà |
mov eax,4 ; ôóíêöèÿ 4: íàïèñàòü òåêñò â îêíå |
pop ebx ; äîñòàåì èç ñòåêà ïðèñëàííûå êîîðäèíàòû |
cmp esi,2 ; ÖÅÍÒÐÈÐÎÂÀÍÈÅ ÒÅÊÑÒÀ |
push ebx ; á®åà 塞 ¯à¨á« ë¥ ª®®à¤¨ âë |
mov ebx,10 ; ãáâ ¢«¨¢ ¥¬ ®á®¢ ¨¥ á¨á⥬ë áç¨á«¥¨ï |
mov edi,buff ; 㪠§ ⥫ì áâப㠡ãä¥à |
call int2ascii ; ª®¢¥àâ¨à㥬 ç¨á«® ¨ «®¦¨¬ ª ª áâப㠢 ¡ãä¥à + esi ¤«¨ |
mov eax,4 ; äãªæ¨ï 4: ¯¨á âì ⥪áâ ¢ ®ª¥ |
pop ebx ; ¤®áâ ¥¬ ¨§ á⥪ ¯à¨á« ë¥ ª®®à¤¨ âë |
cmp esi,2 ;
|
jne draw_value_1 |
add ebx,4 shl 16 |
jmp draw_value_e |
692,77 → 821,63 |
jne draw_value_e |
add ebx,7 shl 16 |
draw_value_e: |
mov ecx,0x0 ; öâåò òåêñòà RRGGBB |
mov edx,buff ; óêàçàòåëü íà íà÷àëî òåêñòà |
mov ecx,0x0 ; 梥â ⥪áâ RRGGBB |
mov edx,buff ; 㪠§ ⥫ì ç «® ⥪áâ |
int 0x40 |
ret ; Âîçâðàùàåì óïðàâëåíèå |
ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
;end_draw_value |
|
hex_digit: |
;................................................................................................. |
; Ïðåîáðàçîâàíèå â ASCII (âíå çàâèñèìîñòè îò ñèñòåìû ñ÷èñëåíèÿ) |
; ८¡à §®¢ ¨¥ ¢ ASCII (¢¥ § ¢¨á¨¬®á⨠®â á¨á⥬ë áç¨á«¥¨ï) |
;................................................................................................. |
cmp dl,10 ; â dl îæèäàåòñÿ ÷èñëî îò 0 äî 15 |
jb .less ; åñëè dl<10 òî ïåðåõîäèì |
cmp dl,10 ; ¢ dl ®¦¨¤ ¥âáï ç¨á«® ®â 0 ¤® 15 |
jb .less ; ¥á«¨ dl<10 â® ¯¥à¥å®¤¨¬ |
add dl,'A'-10 ; 10->A 11->B 12->C ... |
ret ; Âîçâðàùàåì óïðàâëåíèå |
ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
.less: |
or dl,'0' ; Åñëè ñèñòåìà ñ÷èñëåíèÿ 10-ÿ è ìåíåå |
ret ; Âîçâðàùàåì óïðàâëåíèå |
or dl,'0' ;
᫨ á¨á⥬ áç¨á«¥¨ï 10-ï ¨ ¬¥¥¥ |
ret ; ®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
;end_hex_digit |
|
int2ascii: |
;................................................................................................. |
; Ïðåîáðàçîâàíèå ÷èñëà â ñòðîêó |
; ८¡à §®¢ ¨¥ ç¨á« ¢ áâபã |
;................................................................................................. |
; eax - 32-õ çíà÷íîå ÷èñëî |
; ebx - îñíîâàíèå ñèñòåìû ñ÷èñëåíèÿ |
; edi - óêàçàòåëü íà ñòðîêó áóôåðà |
; Âîçâðàùàåò çàïîëíåííûé áóôåð è esi - äëèíà ñòðîêè |
; eax - 32-å § 箥 ç¨á«® |
; ebx - ®á®¢ ¨¥ á¨á⥬ë áç¨á«¥¨ï |
; edi - 㪠§ ⥫ì áâப㠡ãä¥à |
; ®§¢à é ¥â § ¯®«¥ë© ¡ãä¥à ¨ esi - ¤«¨ áâப¨ |
;pushad |
xor esi,esi ; çàíóëÿåì ñ÷åò÷èê ñèìâîëîâ |
xor esi,esi ; § ã«ï¥¬ áç¥â稪 ᨬ¢®«®¢ |
convert_loop: |
xor edx,edx ; çàíóëÿåì ðåãèñòð ïîä îñòàòîê |
div ebx ; eax/ebx - îñòàòîê â edx |
call hex_digit ; ïðåîáðàçóåì ñèìâîë |
push edx ; ëîæèì â ñòåê |
inc esi ; óâåëè÷èâàåì ñ÷åò÷èê |
test eax,eax ; åñëè åùå ìîæíî äåëèòü |
jnz convert_loop ; òî äåëèåì åùå |
cld ; ÎÁßÇÀÒÅËÜÍÎ ñáðàñûâàåì ôëàã íàïðàâëåíèÿ DF (çàïèñü âïåð¸ä) |
write_loop: ; èíà÷å |
pop eax ; äîñòàåì èç ñòåêà â åàõ |
stosb ; çàïèñûâàåì â áóôåð ïî àäðåñó ES:(E)DI |
dec esi ; óìåíüøàåì ñ÷åò÷èê |
test esi,esi ; åñëè åñòü ÷òî äîñòàâàòü èç ñòåêà |
jnz write_loop ; òî äîñòà¸ì |
mov byte [edi],0 ; èíà÷å äîïèñûûâàåì íóëåâîé áàéò |
;popad ; âîññòàíàâëèâàåì çíà÷åíèÿ ðåãèñòðîâ |
; êîä íèæå íå èìååò íè÷åãî îáùåãî ê ôóíêöèè, ïðîñòî âîçâðàùàåò åùå äëèííó ïîëó÷åííîé ñòðîêè |
mov edi,buff ; óêàçàòåëü íà íà÷àëî òåêñòà |
xor edx,edx ; § ã«ï¥¬ ॣ¨áâà ¯®¤ ®áâ ⮪ |
div ebx ; eax/ebx - ®áâ ⮪ ¢ edx |
call hex_digit ; ¯à¥®¡à §ã¥¬ ᨬ¢®« |
push edx ; «®¦¨¬ ¢ á⥪ |
inc esi ; 㢥«¨ç¨¢ ¥¬ áç¥â稪 |
test eax,eax ; ¥á«¨ ¥é¥ ¬®¦® ¤¥«¨âì |
jnz convert_loop ; â® ¤¥«¨¥¬ ¥é¥ |
cld ;
á¡à áë¢ ¥¬ ä« £ ¯à ¢«¥¨ï DF (§ ¯¨áì ¢¯¥àñ¤) |
write_loop: ; ¨ ç¥ |
pop eax ; ¤®áâ ¥¬ ¨§ á⥪ ¢ ¥ å |
stosb ; § ¯¨áë¢ ¥¬ ¢ ¡ãä¥à ¯® ¤à¥áã ES:(E)DI |
dec esi ; 㬥ìè ¥¬ áç¥â稪 |
test esi,esi ; ¥á«¨ ¥áâì çâ® ¤®áâ ¢ âì ¨§ á⥪ |
jnz write_loop ; â® ¤®áâ ñ¬ |
mov byte [edi],0 ; ¨ ç¥ ¤®¯¨áëë¢ ¥¬ ã«¥¢®© ¡ ©â |
;popad ; ¢®ááâ ¢«¨¢ ¥¬ § 票ï ॣ¨áâ஢ |
; ª®¤ ¨¦¥ ¥ ¨¬¥¥â ¨ç¥£® ®¡é¥£® ª äãªæ¨¨, ¯à®áâ® ¢®§¢à é ¥â ¥é¥ ¤«¨ã ¯®«ã祮© áâப¨ |
mov edi,buff ; 㪠§ ⥫ì ç «® ⥪áâ |
call str_len |
mov esi,eax |
ret ; è âîçâðàùàåì óïðàâëåíèå |
ret ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
;end_int2ascii |
|
get_spectr: |
;................................................................................................. |
; âîçâðàùàåò r,g,b ñîñòîâëÿþùèå öâåòà |
; ¢®§¢à é ¥â r,g,b á®á⮢«ïî騥 梥â |
;................................................................................................. |
;; get blue |
;mov ecx,[color] |
;movzx eax,cl |
;mov [cblue],al |
;; get red |
;mov eax,ecx |
;xor ax,ax ; à íàäî ëè???? |
;shr eax,16 |
;mov [cred],al |
;; get green |
;shl ecx,16 |
;shr ecx,24 |
;mov [cgreen],cl |
|
mov ecx,[color] |
mov [cblue],cl |
shr ecx,8 |
771,12 → 886,12 |
mov [cred],cl |
shr ecx,8 |
mov [calpha],cl |
ret ; è âîçâðàùàåì óïðàâëåíèå |
ret ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
;end_get_spectr |
|
set_spectr: |
;................................................................................................. |
; óñòàíàâëèâàåò èç r,g,b öâåò |
; ãáâ ¢«¨¢ ¥â ¨§ r,g,b 梥â |
;................................................................................................. |
movzx eax,[calpha] |
shl eax,8 |
786,13 → 901,13 |
shl eax,8 |
mov al,[cblue] |
mov [color],eax |
call draw_result ; Âûâîäèì ðåçóëüòàò |
ret ; è âîçâðàùàåì óïðàâëåíèå |
call draw_result ; 뢮¤¨¬ १ã«ìâ â |
ret ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥¨¥ |
;end_get_spectr |
|
str_len: |
;................................................................................................. |
; îïðåäåëÿåò äëèíó ñòðîêè (âõîä->EDI ZS offset ; âûõîä->EAX ZS length) |
; ®¯à¥¤¥«ï¥â ¤«¨ã áâப¨ (¢å®¤->EDI ZS offset ; ¢ë室->EAX ZS length) |
;................................................................................................. |
push ecx |
push esi |
815,27 → 930,44 |
;end_str_len |
;#___________________________________________________________________________________________________ |
;****************************************************************************************************| |
; ÁËÎÊ ÏÅÐÅÌÅÍÍÛÕ È ÊÎÍÑÒÀÍÒ | |
;
| |
;----------------------------------------------------------------------------------------------------/ |
|
color dd 00000000h ; õðàíèò çíà÷åíèå âûáðàííîãî öâåòà |
color2 dd 00FFFFFFh ; õðàíèò çíà÷åíèå âòîðîãî âûáðàííîãî öâåòà |
mouse_x dd 0 ; õðàíèò ãëîáàëüíóþ õ êîîðäèíàòó ìûøè |
mouse_y dd 0 ; õðàíèò ãëîáàëüíóþ ó êîîðäèíàòó ìûøè |
desctop_w dd 0 ; õðàíèò øèðèíó ýêðàíà |
sc system_colors ; õðàíèò ñòðóêòóðó ñèñòåìíûõ öâåòîâ ñêèíà |
title db 'Palitra v0.4',0 ; õðàíèò èìÿ ïðîãðàììû |
hex db '#',0 ; äëÿ âûâîäà ðåø¸òêè êàê òåêñòà |
cname db 'RGBAx' ; õðàíèò ðàçðÿäû öâåòîâ (red,green,blue) x-ìåòêà êîíöà |
cred db 0 ; õðàíèì êðàñíûé ñïåêðò |
cgreen db 0 ; õðàíèì çåëåíûé ñïåêòð |
cblue db 0 ; õðàíèì ñèíèé ñïåêòð |
calpha db 0 ; õðàíèì ïðîçðà÷íîñòü |
struct map_colors |
c1 db 0 |
c2 db 0 |
c3 db 0 |
c4 db 0 |
c5 db 0 |
c6 db 0 |
c7 db 0 |
c8 db 0 |
c9 db 0 |
c10 db 0 |
c11 db 0 |
c12 db 0 |
ends |
|
cm db 12 dup(0) |
color dd 00000000h ; åà ¨â § 票¥ ¢ë¡à ®£® 梥â |
color2 dd 00FFFFFFh ; åà ¨â § 票¥ ¢â®à®£® ¢ë¡à ®£® 梥â |
mouse_x dd 0 ; åà ¨â £«®¡ «ìãî å ª®®à¤¨ âã ¬ëè¨ |
mouse_y dd 0 ; åà ¨â £«®¡ «ìãî ã ª®®à¤¨ âã ¬ëè¨ |
mouse_f dd 0 ; åà ¨â ¤ ë¥ ® ⮬ ª ª ï ª®¯ª ¬ëè¨ ¡ë« ¦ â |
desctop_w dd 0 ; åà ¨â è¨à¨ã íªà |
sc system_colors ; åà ¨â áâàãªâãàã á¨á⥬ëå 梥⮢ ᪨ |
title db 'Palitra v0.5',0 ; åà ¨â ¨¬ï ¯à®£à ¬¬ë |
hex db '#',0 ; ¤«ï ¢ë¢®¤ à¥èñ⪨ ª ª ⥪áâ |
cname db 'RGBAx' ; åà ¨â à §àï¤ë 梥⮢ (red,green,blue) x-¬¥âª ª®æ |
cred db 0 ; åà ¨¬ ªà áë© á¯¥ªàâ |
cgreen db 0 ; åà ¨¬ §¥«¥ë© ᯥªâà |
cblue db 0 ; åà ¨¬ ᨨ© ᯥªâà |
calpha db 0 ; åà ¨¬ ¯à®§à ç®áâì |
larrow db 0x1A,0 |
buff db '000',0 |
bnext db 'NEXT BACKGROUND',0; èìÿ êíîïêè |
pnext dd 0 ; ñ÷åò÷èê ïåðåêëþ÷åíèÿ ïàëèòðû |
|
|
bground db 'BACKGROUND',0 ; ¨¬ï ª®¯ª¨ - 14 |
pnext dd 0 ; áç¥â稪 ¯¥à¥ª«îç¥¨ï ¯ «¨âàë |
renmode dd 0 ; ०¨¬ ®âà¨á®¢ª¨ (1-梥⮢ ï á奬 ,2-¯¨¯¥âª ,3-ªà㣮¢ ï) |
I_END: |
|
|