;#___________________________________________________________________________________________________ ;****************************************************************************************************| ; Program Palitra (c) Sergei Steshin (Akyltist) | ;----------------------------------------------------------------------------------------------------| ;; Charset:DOS-866 Font:Courier New Size:9pt | ;..................................................................................................... ;; compiler: FASM 1.69.31 | ;; version: 0.3.0 | ;; last update: 08/11/2012 | ;; 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.5.0 - ��������� ������ ᬥ�� 䮭� ࠡ�祣� �⮫� (�� Leency). | ;; - ��������� ��������� 䮭� ࠡ�祣� �⮫� �ࠤ���⭮� ��������. | ;; - ��ᬥ��᪨� �ࠢ��. | ;; - �������� ����⨬�����. | ;; 0.6.0 - ��������� ����������� ����᪠ � ��ࠬ��ࠬ� | ;; - �������� ०�� H (hidden) �ந������ ������ 䮭� ࠡ�祣� �⮫� �ࠤ���⭮� ��������. | ;; - ������ ����⨬�����. | ;; 0.7.0 - ��������� ����⪠ - �롮� �� �।��� ������ ��� | ;; 0.7.5 - ����⨥ �ࠢ�� �����襩 ��� �� �祩�� � 梥⮬ ��⠭�������� �� �᭮���, � ������. 梥� | ;; - �����襭� ���栭�� �� ࠡ�� ����⪨ | ;; 0.7.6 - �������� ०�� B, ����� �ந������ ������ 䮭� ࠡ�祣� �⮫� �㬭�� �������� (e-andrew)| ;..................................................................................................... ;; All rights reserved. | ;; | ;; Redistribution and use in source and binary forms, with or without modification, are permitted | ;; provided that the following conditions are met: | ;; * Redistributions of source code must retain the above copyright notice, this list of | ;; conditions and the following disclaimer. | ;; * Redistributions in binary form must reproduce the above copyright notice, this list of | ;; conditions and the following disclaimer in the documentation and/or other materials | ;; provided with the distribution. | ;; * Neither the name of the <organization> nor the names of its contributors may be used to | ;; endorse or promote products derived from this software without specific prior written | ;; permission. | ;; | ;; THIS SOFTWARE IS PROVIDED BY Sergei Steshin ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, | ;; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A | ;; PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY DIRECT, | ;; INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED | ;; TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ;; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ;....................................................................................................| ;#___________________________________________________________________________________________________ ;****************************************************************************************************| ; ��������� ������������ ����� ���������� ��� ������� �� | ;----------------------------------------------------------------------------------------------------/ use32 org 0x0 db 'MENUET01' dd 0x01 dd START dd I_END dd I_MEM dd I_MEM dd params dd 0x0 include '../../../macros.inc' include '../../../proc32.inc' WIN_W equ 295 ; �ਭ� ���� WIN_H equ 195 ; ���� ���� WIN_X equ 250 ; ���न��� � ���� WIN_Y equ 190 ; ���न��� � ���� panel: file "panel.raw" START: mcall 68,11 ; ���樠������ ��� mcall 40,0x27 ; ��⠭�������� ���� ᮡ�⨩ include 'params_init.inc' ; ��ࠡ�⪠ ��ࠬ�� ��������� ��ப� ;#___________________________________________________________________________________________________ ;****************************************************************************************************| ; �������� ���� ��������� - ��������� ������� | ;----------------------------------------------------------------------------------------------------/ red: 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 cmp eax,6 ; ᮡ�⨥ �� ��� ��� ���� je mouse ; � �� - �� button jmp still ; � ��㣮� ᮡ�⨥ - � ��砫� 横�� ;end_still key: ; ����� ������ �� ��������� mcall 2 ; �㭪�� 2 - ����� ��� ᨬ���� (� ah) (��� � �ਭ樯� �� �㦭�) jmp still ; �������� � ��砫� 横�� ;end_key mouse: cmp [renmode],2 jne left call cyrcle_draw jmp center left: mcall 37,2 cmp al,1b jne right mov [mouse_f],1 jmp still right: cmp al,10b jne still mov [mouse_f],2 jmp still center: mcall 37,2 cmp al,100b jne still mov [mouse_f],3 mov [color],edx call draw_result jmp still ; �������� � ��砫� 横�� ;end_mouse button: 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 ; �室�� �� �������� ��㣮�� ᮡ��� next_bg: cmp ah, 14 ; ������ BACKGROUND jne next_bg2 ; � �� ����� � ��室�� call set_background ; ���� ��⠭�������� 䮭 jmp still ; � �� �������� ᮡ��� next_bg2: cmp ah, 16 ; ������ BACKGROUND jne circle_bg ; � �� ����� � ��室�� call set_background2 ; ���� ��⠭�������� 䮭 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 push [color2] push [color] 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, 8 ; ID=8 : 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 ; �室�� �� �������� ��㣮�� ᮡ��� blue_button: cmp ah, 10 jne alpha_button mov [cblue],cl call set_spectr jmp still ; �室�� �� �������� ��㣮�� ᮡ��� alpha_button: cmp ah, 11 jne still mov [calpha],cl call set_spectr jmp still ; �室�� �� �������� ��㣮�� ᮡ��� bexit: mcall -1 ; ���� ����� �ணࠬ�� ;end_button ;#___________________________________________________________________________________________________ ;****************************************************************************************************| ; ������� ������ ��������� ���� � ��������� ���������� | ;----------------------------------------------------------------------------------------------------/ 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,4 ; ����㭪�� 4 - �����頥� eax = ���� ᪨��. int 0x40 ; ���뢠��� mov ecx,eax ; ���������� ����� ᪨�� mov edi,[runmode] cmp edi,2 jne no_hiddenmode mov edi,hidden jmp set_title no_hiddenmode: cmp edi,3 jne no_dialogmode mov edi,hidden jmp set_title no_dialogmode: mov edi,title ; ��������� ���� set_title: 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 ; ��� ���� � ᪨��� 䨪������ ࠧ�� 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 int 0x40 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 ; ������塞 inc edx ; ID = 9 int 0x40 ; ���㥬 ��������� ������ ��� ��� green add ebx,23 shl 16 ; ������塞 inc edx ; ID = 10 int 0x40 ; ���㥬 ��������� ������ ��� ��� blue add ebx,23 shl 16 ; ������塞 inc edx ; ID = 11 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 edx,0x6000000D ; ID = 13 int 0x40 call draw_bottom_panel call draw_left_panel mov eax,12 ; �㭪�� 12: ����砥�, �� �㤥� �ᮢ����� ���� mov ebx,2 ; 2 - ����� �ᮢ���� int 0x40 ; ���뢠��� ret ;#___________________________________________________________________________________________________ ;****************************************************************************************************| ; ���� ��������������� �������� � ������� ���������� | ;----------------------------------------------------------------------------------------------------/ ;------------------------------------------------------------------------------------------------+ 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 ; circle diagram add ecx,19 shl 16 ; move rect mov edx,0x6000000F ; ID = 15 int 0x40 ; call mov eax,7 ; 7 - ����� �㭪樨 mov ebx,panel ; 㪠��⥫� �� ����ࠦ���� � �ଠ� BBGGRRBBGGRR... mov ecx, 16 shl 16 + 149 ; [ࠧ��� �� �� x]*65536 + [ࠧ��� �� �� y] mov edx,266 shl 16 + 9 ; [���न��� �� �� x]*65536 + [���न��� �� �� y] int 0x40 ;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 ;................................................................................................. ;------------------------------------------------------------------------------------------------+ draw_bottom_panel: ; ���ᮢ�� ������ ������ ;................................................................................................. mov eax,8 ; draw button mov ebx,(92) shl 16+90 ; [x] + [size] mov ecx,169 shl 16+16 ; [y] + [size] mov edx,14 ; ID = 14 mov esi,[sc.work_button] ; RGB int 0x40 ; call add ebx, 100 shl 16 add edx, 2 int 0x40 mov eax,4 ; Write string mov ebx,(113 - 104) shl 16+174 ; [x] + [y] mov ecx,[sc.work_text] ; RGB or ecx, 1 shl 31 mov edx,bground ; string pointer int 0x40 ; call mov ecx, [sc.work_button_text] or ecx, 1 shl 31 add ebx, 106 shl 16 mov edx, bground1 int 0x40 add ebx, 107 shl 16 mov edx, bground2 int 0x40 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 ecx,eax ; shr ecx,16 ; ecx = x+1 movzx edx,ax ; edx = y+1 dec ecx ; ecx = x dec edx ; edx = y mov [mouse_x],ecx ; mouse_x = x mov [mouse_y],edx ; mouse_y = y ret ; �����頥� �ࠢ����� ;end_mouse_global mouse_local: ;................................................................................................. ; ����砥� ���न���� ��� �⭮�⥫쭮 ���� ;................................................................................................. 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 dec ecx ; ecx = x dec edx ; edx = y mov [mouse_x],ecx ; mouse_x = x mov [mouse_y],edx ; mouse_y = y 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 ebx,eax ; shr ebx,16 ; ebx = xsize-1 movzx edx,ax ; edx = ysize-1 (��譨� ���) inc ebx ; ebx = xsize inc edx ; edx = ysize (��譨� ���) mov [desctop_w],ebx mov [desctop_h],edx ret ;end_desktop_get mouse_get: mov esi,2 ; �������: 䫠� ��� ��������� ��横������� call mouse_global call desktop_get 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 ; �������: � �� ���� � ���㥬 ����� �ᥫ��� ���ᥫ� mouse_set: ; ���� ���������� ���� 梥� cmp [mouse_f],1 jne was_right mov [color],eax call draw_result jmp mouse_exit was_right: cmp [mouse_f],2 jne mouse_exit mov [color2],eax call draw_result ; �뢮��� १���� mouse_exit: 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 ;................................................................................................. ; ���ᮢ�� ��㣮��� ����ࠬ�� ;................................................................................................. cyrcle_draw: ;mov eax,13 ;mov edx,0x666666 ;mov ebx,108*65536+152 ;mov ecx,125*65536+33 ;mcall ;mov edx,0xF3F3F3 ;mov ebx,109*65536+150 ;mov ecx,126*65536+31 ;mcall ;mov eax,4 ; 4 - �뢥�� ��ப� ⥪�� � ���� ;mov ebx,115 shl 16+131 ; [���न��� �� �� x]*65536 + [���न��� �� �� y] ;mov ecx,0x666666 ; 0xX0RRGGBB (RR, GG, BB ������ 梥� ⥪��) ;mov edx,hint ; 㪠��⥫� �� ��砫� ��ப� ;mov esi,24 ; �뢮���� esi ᨬ����� ;mcall ;mov ebx,125 shl 16+144 ; [���न��� �� �� x]*65536 + [���न��� �� �� y] ;mov edx,hint2 ; 㪠��⥫� �� ��砫� ��ப� ;mov esi,21 ; �뢮���� esi ᨬ����� ;mcall ;mov edx,[color] ;mov ebx,109*65536+150 ;mov ecx, 10*65536+150 ;mcall call mouse_local ; ����砥� ���न���� ��� �⭮�⥫쭮 ���� mov ecx, [mouse_x] ; ����ᨬ � ॣ���� mov edx, [mouse_y] ; ����ᨬ � ॣ���� cmp ecx, WIN_W-10 jg cyrcle_draw_2 cmp edx, WIN_H jle end_cyrcle_draw cyrcle_draw_2: mcall 5,10 call desktop_get call mouse_global mov ebx,112*65536+11 mov esi,0 ; counter=8 circle_loop: mov ecx, 10*65536+11 mov edi,0 circle_loop2: mov eax,13 call circle_pixel_read mcall add ecx,11 shl 16 inc edi cmp edi,13 jne circle_loop2 add ebx,11 shl 16 inc esi cmp esi,13 jne circle_loop mov eax,13 mov edx,0x0 mov ebx,177*65536+13 mov ecx, 76*65536+13 mcall mov ecx, [mouse_x] mov edx, [mouse_y] inc ecx inc edx mov ebx, edx imul ebx, [desctop_w] add ebx, ecx mov eax, 35 mcall mov edx,eax mov eax,13 mov ebx,178*65536+11 mov ecx, 77*65536+11 mcall ret end_cyrcle_draw: mov eax,13 mov edx,0x666666 mov ebx,111*65536+145 mov ecx, 9*65536+145 mcall ret circle_pixel_read: push ecx push ebx push eax mov ecx, [mouse_x] mov edx, [mouse_y] inc ecx add ecx, esi cmp ecx, 6 jl _cpr_exit sub ecx, 6 inc edx add edx, edi cmp edx, 6 jl _cpr_exit sub edx, 6 mov ebx, edx imul ebx, [desctop_w] add ebx, ecx mov eax, 35 mcall mov edx,eax pop eax pop ebx pop ecx ret _cpr_exit: mov edx,0x00000000 pop eax pop ebx pop ecx 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 ; ���稪 ������⢠ �������� 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 ; � �� ���� � � ��砫� 横�� ;................................................................................................. ; ���ᮢ�� ������ �� 横�� ;................................................................................................. 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 ; ���࠭塞 ���祭�� ���稪� ����� � �⥪ cmp esi,2 jne x2_line mov ebx,99 shl 16+8 x2_line: 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 + [ࠧ���] cmp esi,2 jg y2_line ; � ����� 4 � ����ਬ mov ecx,76 shl 16+8 y2_line: add ebx,9 shl 16 ; ���頥� ��������� ����� �� x for_loop: add ecx,9 shl 16 ; ���頥� ��������� ����� �� y int 0x40 ; ���뢠��� call sub_red dec edi ; �����蠥� ���稪 ������ cmp edi,0 ; �ࠢ������ � �㫥� jnz for_loop ; � �� ���� � � ��砫� 横�� call sub_green pop edi ; ���� ����⠭�������� ���稪 ����� dec edi ; �����蠥� ��� cmp edi,0 ; �ࠢ������ � �㫥� jnz for_stolbik ; � �� ���� � � ��砫� 横�� call sub_blue ;;pop esi ; ���� ����⠭�������� ���稪 ����� dec esi ; �����蠥� ��� cmp esi,0 ; �ࠢ������ � �㫥� jnz for_abz ; � �� ���� � � ��砫� 横�� ret ; �����頥� �ࠢ����� ;end_draw_palitra------------------------------------------------------------------------------------- sub_red: ;................................................................................................. ; ������ ᬥ饭�� ��᭮�� 梥� � �����樨 梥� ������� ;................................................................................................. push eax mov eax,[pnext] ;sub_red_0 ; palitra cmp al,0 jne sub_red_1 sub edx,0x40 jmp sub_red_e sub_red_1: ; random cmp al,1 jne sub_red_2 sub edx,0x20 jmp sub_red_e sub_red_2: ; gree cmp al,2 jne sub_red_3 sub edx,0x010101 jmp sub_red_e sub_red_3: ; red cmp al,3 jne sub_red_4 sub edx,0x0101 jmp sub_red_e sub_red_4: ; green cmp al,4 jne sub_red_5 sub edx,0x010001 jmp sub_red_e sub_red_5: ; blue cmp al,5 jne sub_red_e sub edx,0x010100 jmp sub_red_e sub_red_e: pop eax ret ; �����頥� �ࠢ����� ;end_sub_red------------------------------------------------------------------------------------------ sub_green: ;................................................................................................. ; ������ ᬥ饭�� ��᭮�� 梥� � �����樨 梥� ������� ;................................................................................................. push eax mov eax,[pnext] ;sub_green_0 cmp al,0 jne sub_green_1 sub edx,0x4000 jmp sub_green_e sub_green_1: cmp al,1 jne sub_green_e sub edx,0x2000 ;jmp sub_green_e sub_green_e: pop eax ret ; �����頥� �ࠢ����� ;end_sub_green---------------------------------------------------------------------------------------- sub_blue: ;................................................................................................. ; ������ ᬥ饭�� ��᭮�� 梥� � �����樨 梥� ������� ;................................................................................................. push eax mov eax,[pnext] ;sub_blue_0 cmp al,0 jne sub_blue_1 sub edx,0x600000 jmp sub_blue_e sub_blue_1: cmp al,1 jne sub_blue_e sub edx,0x400000 ;jmp sub_blue_e sub_blue_e: pop eax 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 + [ࠧ���] int 0x40 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 ;................................................................................................. 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 ; ���뢠��� (�� ���� ��אַ㣮�쭨�) ; 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 ; ���뢠��� (�� ���� ��אַ㣮�쭨�) ; 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 ; ���뢠��� (�� ���� ��אַ㣮�쭨�) ; value - draw fringle 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 ; ���뢠��� (�� ���� ��אַ㣮�쭨�) ; 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 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 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 ���祭�� ;................................................................................................. call get_spectr 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,[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 ; �뢮��� १���� ;................................................................................................. ; �뢮��� �㪢� 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,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 + [ࠧ���] int 0x40 add ebx,23 shl 16 ; ��砫�� ���न���� �� x [�-� y]*65536 + [ࠧ���] int 0x40 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 + [ࠧ���] int 0x40 mov edx,0x08CE19 ; 梥�-������� add ebx,23 shl 16 ; ��砫�� ���न���� �� x [�-� y]*65536 + [ࠧ���] int 0x40 mov edx,0x0909FF ; 梥�-������� add ebx,23 shl 16 ; ��砫�� ���न���� �� x [�-� y]*65536 + [ࠧ���] int 0x40 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] ; ��६ ���祭�� 梥� call draw_slider add ebx,23 shl 16 movzx eax,[cgreen] ; ��६ ���祭�� 梥� call draw_slider add ebx,23 shl 16 movzx eax,[cblue] ; ��६ ���祭�� 梥� call draw_slider add ebx,23 shl 16 movzx eax,[calpha] ; ��६ ���祭�� 梥� call draw_slider ret ; �����頥� �ࠢ����� ;end_draw_result draw_slider: xor ecx,ecx 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 - ���ᮢ��� ��אַ㣮�쭨� 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 ; �����頥� �ࠢ����� ;end_slider draw_value: ;................................................................................................. ; �뢮� � �� ��ப� � 㪠������ ������ ;................................................................................................. 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 draw_value_1: cmp esi,1 jne draw_value_e add ebx,7 shl 16 draw_value_e: mov ecx,0x0 ; 梥� ⥪�� RRGGBB mov edx,buff ; 㪠��⥫� �� ��砫� ⥪�� int 0x40 ret ; �����頥� �ࠢ����� ;end_draw_value _read_params: mov al,[params+2] mov [params_c+0],al mov al,[params+3] mov [params_c+1],al mov al,[params+4] mov [params_c+2],al mov al,[params+5] mov [params_c+3],al mov al,[params+6] mov [params_c+4],al mov al,[params+7] mov [params_c+5],al mov al,[params+8] mov [params_c+6],al mov al,[params+9] mov [params_c+7],al mov esi,params_c mov ecx,16 call ascii2int mov [color],eax mov al,[params+11] mov [params_c+0],al mov al,[params+12] mov [params_c+1],al mov al,[params+13] mov [params_c+2],al mov al,[params+14] mov [params_c+3],al mov al,[params+15] mov [params_c+4],al mov al,[params+16] mov [params_c+5],al mov al,[params+17] mov [params_c+6],al mov al,[params+18] mov [params_c+7],al mov esi,params_c mov ecx,16 call ascii2int mov [color2],eax ret hex_digit: ;................................................................................................. ; �८�ࠧ������ � ASCII (��� ����ᨬ��� �� ��⥬� �����) ;................................................................................................. cmp dl,10 ; � dl ��������� � �� 0 �� 15 jb .less ; � dl<10 � ���室�� add dl,'A'-10 ; 10->A 11->B 12->C ... ret ; �����頥� �ࠢ����� .less: or dl,'0' ; � ��⥬� ����� 10-� � ����� ret ; �����頥� �ࠢ����� ;end_hex_digit int2ascii: ;................................................................................................. ; �८�ࠧ������ � � ��ப� ;................................................................................................. ; eax - 32-� ���筮� � ; ebx - �᭮����� ��⥬� ����� ; edi - 㪠��⥫� �� ��ப� ���� ; �����頥� ���������� ���� � esi - ����� ��ப� ;pushad 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 ; 㪠��⥫� �� ��砫� ⥪�� call str_len mov esi,eax ret ; � �����頥� �ࠢ����� ;end_int2ascii char2byte: sub al,'0' cmp al,10 jb done add al,'0' and al,0x5f sub al,'A'-10 and al,0x0f done: ret ;end_char2byte ascii2int: ;................................................................................................. ; �८�ࠧ������ ��ப� � � ;................................................................................................. ; esi - 㪠��⥫� �� ����ନ������� ��ப� ; ecx - �᭮����� ��⥬� ����� ; �����頥� eax - � push esi xor eax,eax xor ebx,ebx cmp byte [esi],'-' jnz .next inc esi .next: lodsb or al,al jz .done call char2byte imul ebx,ecx add ebx,eax jmp .next .done: xchg ebx,eax pop esi cmp byte [esi],'-' jz .negate ret .negate: neg eax ret ;end_ascii2int get_spectr: ;................................................................................................. ; �����頥� r,g,b ��⮢���騥 梥� ;................................................................................................. mov ecx,[color] mov [cblue],cl shr ecx,8 mov [cgreen],cl shr ecx,8 mov [cred],cl shr ecx,8 mov [calpha],cl ret ; � �����頥� �ࠢ����� ;end_get_spectr set_spectr: ;................................................................................................. ; ��⠭�������� �� r,g,b 梥� ;................................................................................................. movzx eax,[calpha] shl eax,8 mov al,[cred] shl eax,8 mov al,[cgreen] shl eax,8 mov al,[cblue] mov [color],eax call draw_result ; �뢮��� १���� ret ; � �����頥� �ࠢ����� ;end_get_spectr str_len: ;................................................................................................. ; ��।���� ����� ��ப� (�室->EDI ZS offset ; ��室->EAX ZS length) ;................................................................................................. push ecx push esi push edi cld xor al, al mov ecx, 0FFFFFFFFh mov esi, edi repne scasb sub edi, esi mov eax, edi dec eax pop edi pop esi pop ecx ret ;end_str_len ;------------------------------- proc random uses ebx ecx edx, max_value mov ebx, 0 mov eax, ebx or eax, eax jnz @f rdtsc xor eax, edx mov ebx, eax @@: xor edx, edx mov ecx, 127773 div ecx mov ecx, eax mov eax, 16807 mul edx mov edx, ecx mov ecx, eax mov eax, 2836 mul edx sub ecx, eax xor edx, edx mov eax, ecx mov ebx, ecx mov ecx, 100000 div ecx mov eax, edx xor edx, edx mov ebx, [max_value] div ebx mov eax, edx ret endp set_background2: mcall 68, 11 mcall 68, 12, 256 * 256 * 3 mov [image], eax mov edx, eax mov ecx, 256 * 256 @@: stdcall random, 15 + 1 sub al, 15 / 2 mov bh, byte [color + 0] add bh, al mov [edx + 0], bh mov bh, byte [color + 1] add bh, al mov [edx + 1], bh mov bh, byte [color + 2] add bh, al mov [edx + 2], bh add edx, 3 loop @b mcall 15, 1, 256, 256 mcall 15, 4, 1 mcall 15, 5, [image], 0, 256 * 256 * 3 mcall 15, 3 mcall 68, 13, [image] ret ;#___________________________________________________________________________________________________ ;****************************************************************************************************| ; ���� ���������� � �������� | ;----------------------------------------------------------------------------------------------------/ circle: title db 'Palitra v0.76',0 ; �࠭�� ��� �ணࠬ�� hidden db 'Hidden',0 hex db '#',0 ; ��� �뢮�� ���⪨ ��� ⥪�� cname db 'RGBAx' ; �࠭�� ࠧ��� 梥⮢ (red,green,blue) x-��⪠ ���� larrow db 0x1A,0 buff db '000',0 bground db 'BACKGROUND',0 ; ��� ������ - 14 bground1 db 'Gradient',0 ; ��� ������ - 14 bground2 db 'Noisy',0 ; ��� ������ - 14 runmode dd 1 ; ०�� ����᪠ (1-normal, 2-hidden, 3-colordialog) color2 dd 00FFFFFFh ; �࠭�� ���祭�� ��ண� ��࠭���� 梥� I_END: cm rb 12 color rd 1 ; �࠭�� ���祭�� ��࠭���� 梥� mouse_x rd 1 ; �࠭�� ��������� � ���न���� ��� mouse_y rd 1 ; �࠭�� ��������� � ���न���� ��� mouse_f rd 1 ; �࠭�� ����� � ⮬ ����� ������ ��� �뫠 ����� desctop_w rd 1 ; �࠭�� �ਭ� ��࠭� desctop_h rd 1 ; �࠭�� ����� ��࠭� sc system_colors ; �࠭�� �������� ��⥬��� 梥⮢ ᪨�� cred rb 1 ; �࠭�� ���� ᯥ��� cgreen rb 1 ; �࠭�� ������ ᯥ��� cblue rb 1 ; �࠭�� ᨭ�� ᯥ��� calpha rb 1 ; �࠭�� ��筮��� pnext rd 1 ; ���稪 ��४��祭�� ������� renmode rd 1 ; ०�� ���ᮢ�� (1-梥⮢�� �奬�,2-����⪠,3-��㣮���) params rb 20 ; ��� ��ࠬ�� params_c rb 9 ; ��� ��� 梥� image rd 1 rd 1024 I_MEM: