kolibrios-fun/programs/media/palitra/trunk/palitra.asm

1138 lines
57 KiB
NASM
Raw Normal View History

;#___________________________________________________________________________________________________
;****************************************************************************************************|
; 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 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>. |
;; 0.2.0 - <20><><EFBFBD><EFBFBD><E0A0A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. |
;; - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> ॣ㫨஢<E3ABA8><E0AEA2><EFBFBD><EFBFBD> rgb <20><><EFBFBD><EFBFBD><E2A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E6A2A5> <20> <20><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. |
;; - <20><><20><EFBFBD><><E6A2A5> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD>㠫쭮<E3A0AB><ECADAE><EFBFBD><EFBFBD>). |
;; - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ᬥ⨪<E1ACA5>. |
;; 0.3.0 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5AA><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD> 梥⮢<E6A2A5><E2AEA2> <20>奬 (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NEXT) |
;; - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA>. |
;; - <20><><20><><20> 梥⮢<E6A2A5><E2AEA2> <20><EFBFBD><><E3ACA5><EFBFBD> <20> 6 <20><> 4 (<28><><EFBFBD><EFBFBD><E2ADAE><EFBFBD> 256, <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD><><E6A2A5>).|
;; - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ᬥ⨪<E1ACA5>. |
;; 0.4.0 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5AA><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 梥⠬<E6A2A5> |
;; - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ॣ㫨஢<E3ABA8><E0AEA2><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA7><EFBFBD><E7ADAE><EFBFBD> (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><E3A0AB><EFBFBD>樨). |
;; - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> rgba <20><><><E6A5AD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><E1A8AC><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. |
;; - <20><><EFBFBD><E1ACA5><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A0A2>. |
;; - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A8AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. |
;; 0.5.0 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1ACA5><><><EFBFBD> <20><EFBFBD> (<28><> Leency). |
;; - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><><EFBFBD> <20><EFBFBD> <20><EFBFBD><E0A0A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. |
;; - <20><><EFBFBD><E1ACA5><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A0A2>. |
;; - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E2A8AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. |
;; 0.6.0 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20> <20><><EFBFBD><E0A0AC><EFBFBD> |
;; - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E0A5A6> H (hidden) <20><EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><><EFBFBD> <20><EFBFBD> <20><EFBFBD><E0A0A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. |
;; - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E2A8AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. |
;.....................................................................................................
;; 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. |
;....................................................................................................|
;#___________________________________________________________________________________________________
;****************************************************************************************************|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> |
;----------------------------------------------------------------------------------------------------/
use32
org 0x0
db 'MENUET01'
dd 0x01
dd START
dd I_END
dd 0x100000
dd 0x1000
dd params
dd 0x0
include '..\..\..\macros.inc'
WIN_W equ 295 ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
WIN_H equ 195 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
WIN_X equ 250 ; <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
WIN_Y equ 190 ; <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
START:
; <20><><EFBFBD><20><><EFBFBD><E0A0AC><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
mov edi,params ; 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD>
call str_len ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
cmp eax,0 ; <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
je red ; <20><20><><EFBFBD><E0A0AC><20><><EFBFBD> <20><> <20><EFBFBD><E5AEA4>
call _read_params ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E0A0AC><EFBFBD><EFBFBD><><E6A2A5> (<28><EFBFBD> <20><EFBFBD>)
xor eax,eax ; <20><><EFBFBD><EFBFBD><EFBFBD>塞 ॣ<><E0A5A3><EFBFBD><EFBFBD>
mov al,byte [params] ; <20><><EFBFBD> <20><><EFBFBD><E0A0AC><EFBFBD> <20><><EFBFBD><EFBFBD>
cmp al,'N' ; <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> normal mode
jne _no_normalmode ; <20><20><><EFBFBD> <20><> <20><EFBFBD><E5AEA4> <20><> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov [runmode],1 ; <20><20><> <20><> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
jmp red ; <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2>
_no_normalmode: ; <20><20><> normal mode <20><>
cmp al,'H' ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> hidden mode
jne _no_hiddenmode ; <20><20><> <20><> <20><> <20><EFBFBD><E5AEA4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov [runmode],2 ; <20><20><> <20><> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><> (<28><><EFBFBD>?)
call set_background ; <20><><EFBFBD>塞 䮭
jmp bexit ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20><EFBFBD>
_no_hiddenmode: ; <20><20><> hidden mode
cmp al,'D' ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> color dialog mode
jne _no_dialogmode ; <20><20><><EFBFBD><> <20><> <20><> <20><> <20><EFBFBD><E5AEA4>
mov [runmode],3 ; <20><><EFBFBD><EFBFBD><EFBFBD><><EFBFBD><EBA2A0> <20><><EFBFBD> <20><><EFBFBD><> <20><>
jmp red ; <20> <20><EFBFBD><E5AEA4> <20><> <20><EFBFBD><EBAFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_no_dialogmode: ; <20><20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFA2AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mov [runmode],1 ; <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20><> <20><><EFBFBD>
jmp red ; <20> <20><><EFBFBD>
;#___________________________________________________________________________________________________
;****************************************************************************************************|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
;----------------------------------------------------------------------------------------------------/
red:
call draw_main ; <20><><EFBFBD><EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
still:
mcall 10 ; <20><EFBFBD><E3ADAA><EFBFBD> 10 - <20><><EFBFBD><EFBFBD><EFBFBD><><E1AEA1><EFBFBD><EFBFBD>
cmp eax,1 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><><EFBFBD><EFBFBD> ?
je red ; <20><20><> - <20><> <20><><EFBFBD><EFBFBD><EFBFBD> red
cmp eax,2 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
je key ; <20><20><> - <20><> key
cmp eax,3 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
je button ; <20><20><> - <20><> button
jmp still ; <20><20><><EFBFBD><>⨥ - <20> <20><><EFBFBD><><E6A8AA>
;end_still
key: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mcall 2 ; <20><EFBFBD><E3ADAA><EFBFBD> 2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> (<28> ah) (<28><><EFBFBD> <20> <20>ਭ樯<E0A8AD> <20><> <20><EFBFBD>)
jmp still ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><><E6A8AA>
;end_key
button:
mcall 17 ; 17 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cmp ah, 1 ; <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>஬ 1,
jz bexit ; <20><><EFBFBD><E5AEA4>
;<3B><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Next
cmp ah, 12 ; <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NEXT
jne next_bg ; <20><><EFBFBD><E5AEA4>
inc [pnext] ; 㢥<><E3A2A5><EFBFBD><E7A8A2><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov [renmode],0 ; <20><><EFBFBD><EFBFBD><EFBFBD> 梥⮢<E6A2A5><E2AEA2> <20><EFBFBD>
mov eax,[pnext] ; <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><E7A5AD> <20> <20><><EFBFBD>
cmp al,6 ; <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFA2AB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jne next_redraw ; <20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ᨬ㬠 <20><> <20><> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2>
xor eax,eax ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> default
mov [pnext],eax ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> default
next_redraw:
call draw_palitra ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jmp still ; <20><EFBFBD><E5AEA4> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E3A3AE><><E1AEA1><EFBFBD><EFBFBD>
next_bg:
cmp ah, 14 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BACKGROUND
jne circle_bg ; <20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E5AEA4>
call set_background ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jmp still ; <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1AEA1><EFBFBD><EFBFBD>
circle_bg:
cmp ah, 15 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E3A3AE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jne next_end ; <20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E5AEA4>
;mov [renmode],2 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20><><EFBFBD><E3A3AE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call draw_palitra ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jmp still ; <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1AEA1><EFBFBD><EFBFBD>
next_end:
cmp ah,13 ; COLOR SWAP
jne color_swap_end
push [color2]
push [color]
pop [color2]
pop [color]
call draw_result
jmp still ; <20> <20><EFBFBD><E5AEA4> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E3A3AE><><E1AEA1><EFBFBD><EFBFBD>
color_swap_end:
cmp ah, 7 ; <20><EFBFBD><E0AEA2><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ID=7
jne color_button ; <20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call mouse_get ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A1><20><><EFBFBD><EFBFBD>, <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD><><E6A2A5> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jmp still ; <20> <20><EFBFBD><E5AEA4> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E3A3AE><><E1AEA1><EFBFBD><EFBFBD>
color_button: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA> RGBA
push eax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
call mouse_local ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD>
mov ebx,137 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20>
mov ecx,[mouse_y] ; <20><><EFBFBD><EFBFBD><20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>
sub ebx,ecx ; <20><><EFBFBD><E5AEA4><><E0A0A7><EFBFBD><EFBFBD><EFBFBD> (<28>.<2E>. <20>㤠 ᬥ頥<E1ACA5><E9A0A5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>)
mov ecx,3 ; <20><><EFBFBD><EFBFBD><20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 3 (256/3=85, <20><><EFBFBD> 85-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA>)
imul ecx,ebx ; <20><><EFBFBD><E5AEA4> <20><><EFBFBD><E2A8AD><EFBFBD> <20><><EFBFBD><E0A0AC><EFBFBD><><E6A2A5> <20> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>---+
pop eax ; <20><><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> :
;red_button: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A5AA><EFBFBD> :
cmp ah, 8 ; ID=8 :
jne green_button ; <20><20><><EFBFBD>, <20><> <20><EFBFBD><E0AEA2><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0A5AA><EFBFBD> :
mov [cred],cl ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1A2A0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD>, <20><><EFBFBD><EFBFBD><E1ADAE><><E6A2A5><><E1AFA5><EFBFBD><EFBFBD> <------+
call set_spectr ; <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1AFA5><EFBFBD>
jmp still ; <20><EFBFBD><E5AEA4> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E3A3AE><><E1AEA1><EFBFBD><EFBFBD>
green_button:
cmp ah, 9
jne blue_button
mov [cgreen],cl
call set_spectr
jmp still ; <20><EFBFBD><E5AEA4> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E3A3AE><><E1AEA1><EFBFBD><EFBFBD>
blue_button:
cmp ah, 10
jne alpha_button
mov [cblue],cl
call set_spectr
jmp still ; <20><EFBFBD><E5AEA4> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E3A3AE><><E1AEA1><EFBFBD><EFBFBD>
alpha_button:
cmp ah, 11
jne still
mov [calpha],cl
call set_spectr
jmp still ; <20><EFBFBD><E5AEA4> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E3A3AE><><E1AEA1><EFBFBD><EFBFBD>
bexit:
mcall -1 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
;end_button
;#___________________________________________________________________________________________________
;****************************************************************************************************|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
;----------------------------------------------------------------------------------------------------/
draw_main:
mov eax,12 ; <20><EFBFBD><E3ADAA><EFBFBD> 12: <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mov ebx,1 ; 1,<2C><><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD>
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD>
mov eax,48 ; <20><EFBFBD><E3ADAA><EFBFBD> 48 - <20><EFBFBD> <20>⮡ࠦ<E2AEA1><E0A0A6><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mov ebx,3 ; <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 3 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E6A2A5> <20><><EFBFBD><EFBFBD>.
mov ecx,sc ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><><E0A0A7>஬ edx <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov edx,sizeof.system_colors ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A0A1><EFBFBD><EFBFBD> 梥⮢ (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 40 <20><><EFBFBD><EFBFBD>)
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD>
mov eax,48 ; <20><EFBFBD><E3ADAA><EFBFBD> 48 - <20><EFBFBD> <20>⮡ࠦ<E2AEA1><E0A0A6><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
mov ebx,4 ; <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 4 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> eax = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1AAA8>.
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD>
mov ecx,eax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1AAA8>
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 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
set_title:
xor eax,eax ; <20><><EFBFBD><EFBFBD> eax (mov eax,0) (<28><EFBFBD><E3ADAA><EFBFBD> 0)
mov ebx,WIN_X shl 16+WIN_W ; [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> x]*65536 + [ࠧ<><E0A0A7><EFBFBD> <20><> <20><><EFBFBD> x]
add ecx,WIN_Y shl 16+WIN_H ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1AAA8> + [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD> <20><> y] (168 <20><><EFBFBD> <20><><EFBFBD>ᨨ 0.2)
mov edx,[sc.work] ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E4AEAB>
or edx,0x34000000 ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><><E1AAA8><EFBFBD><><E4A8AA><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD><><E0A0A7>
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD>
call draw_palitra ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call draw_result ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov eax,8 ; <20><EFBFBD><E3ADAA><EFBFBD> 8 - <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD>/㤠<><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebx,110 shl 16+147 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20> [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov ecx,9 shl 16+147 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov edx,0x60000007 ; <20><>砫쭮<E7A0AB> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - 0xXYnnnnnn
int 0x40
mov ebx,13 shl 16+12 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20> [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov edx,0x60000008 ; ID = 8
mov ecx,51 shl 16+85 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40 ; <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E1ABA0><EFBFBD>஬ red
add ebx,23 shl 16 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
inc edx ; ID = 9
int 0x40 ; <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E1ABA0><EFBFBD>஬ green
add ebx,23 shl 16 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
inc edx ; ID = 10
int 0x40 ; <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E1ABA0><EFBFBD>஬ blue
add ebx,23 shl 16 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
inc edx ; ID = 11
int 0x40 ; <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E1ABA0><EFBFBD>஬ alpha
mov eax,8 ; <20><EFBFBD><E3ADAA><EFBFBD> 8 - <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD>/㤠<><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>)
mov ebx,11 shl 16+20 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20> [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov ecx,12 shl 16+20 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov edx,0x6000000D ; ID = 13
int 0x40
call draw_bottom_panel
call draw_left_panel
mov eax,12 ; <20><EFBFBD><E3ADAA><EFBFBD> 12: <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mov ebx,2 ; 2 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD>
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD>
ret
;#___________________________________________________________________________________________________
;****************************************************************************************************|
; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
;----------------------------------------------------------------------------------------------------/
;------------------------------------------------------------------------------------------------+
draw_left_panel: ; <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;.................................................................................................
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
;.................................................................................................
;------------------------------------------------------------------------------------------------+
draw_bottom_panel: ; <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;.................................................................................................
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:
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
;.................................................................................................
mov eax,37 ; <20><EFBFBD><E3ADAA><EFBFBD> 37 - ࠡ<><E0A0A1><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
mov ebx,0 ; <20><><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD>
int 0x40 ; eax = x*65536 + y, (x,y)=<3D><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
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 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;end_mouse_global
mouse_local:
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><E2ADAE>⥫쭮 <20><><EFBFBD><EFBFBD>
;.................................................................................................
mov eax,37 ; <20><EFBFBD><E3ADAA><EFBFBD> 37 - ࠡ<><E0A0A1><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
mov ebx,1 ; <20><><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD>
int 0x40 ; eax = x*65536 + y, (x,y)=<3D><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
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 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;end_mouse_local
set_background:
;.................................................................................................
; <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䮭 ࠡ<><EFBFBD> <20><EFBFBD>
;.................................................................................................
mov eax,15 ; <20><EFBFBD><E3ADAA><EFBFBD> 15 - ࠡ<><E0A0A1><EFBFBD> <20><><E4AEAD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E4A8AA>
mov ebx,4 ; <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 4 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <><E0A5A6> <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><>.
mov ecx,2 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (1)
int 0x40 ; <20><><EFBFBD><EFBFBD><EBA2A0>
mov eax,15 ; <20><EFBFBD><E3ADAA><EFBFBD> 15 - ࠡ<><E0A0A1><EFBFBD> <20><><E4AEAD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E4A8AA>
mov ebx,1 ; <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 1 - <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7><EFBFBD><><E4AEAD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>.
mov ecx,2 ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
mov edx,2 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
int 0x40 ; <20><><EFBFBD><EFBFBD><EBA2A0>
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 ; <20><EFBFBD><E3ADAA><EFBFBD> 15 - ࠡ<><E0A0A1><EFBFBD> <20><><E4AEAD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E4A8AA>
mov ebx,5 ; <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 5 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1A5AB> <20><> 䮭.
mov ecx,cm ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0ACA0> BBGGRRBBGGRR
mov edx,0 ; C<><43><EFBFBD><E9A5AD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4AEAD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
mov esi,3*4 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = 3 * <20><><20><><EFBFBD><EFBFBD><E1A5AB>
int 0x40 ; <20><><EFBFBD><EFBFBD><EBA2A0>
mov eax,15 ; <20><EFBFBD><E3ADAA><EFBFBD> 15 - ࠡ<><E0A0A1><EFBFBD> <20><><E4AEAD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E4A8AA>
mov ebx,3 ; <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA><EFBFBD> 3 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> 䮭.
int 0x40 ; <20><><EFBFBD><EFBFBD><EBA2A0>
ret
;end_set_background
desktop_get:
;.................................................................................................
; <20><><EFBFBD><E0A5A4><20><><EFBFBD> <20><><EFBFBD>
;.................................................................................................
mov eax,14 ; <20><><EFBFBD><E0A5A4><20><><EFBFBD> <20><><EFBFBD> (eax = [xsize]*65536 + [ysize])
int 0x40 ; xsize = ࠧ<><E0A0A7><EFBFBD> <20><> <20><><EFBFBD><E0A8A7><EFBFBD> - 1
mov ebx,eax ;
shr ebx,16 ; ebx = xsize-1
;movzx edx,ax ;; edx = ysize-1 (<28><><EFBFBD> <20><><EFBFBD>)
inc ebx ; ebx = xsize
;inc edx ;; edx = ysize (<28><><EFBFBD> <20><><EFBFBD>)
mov [desctop_w],ebx
ret
;end_desktop_get
mouse_get:
mov esi,2 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 䫠<> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E6A8AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call mouse_global
call desktop_get
re_mouse_loop: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
mov ebx,[desctop_w]
imul ebx,[mouse_y] ; ebx = y*xsize
add ebx,[mouse_x] ; ebx = y*xsize+x
;.................................................................................................
; <20><>६ 梥<> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
;.................................................................................................
mov eax,35 ; <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E6A2A5>
;mov ebx,ecx ;; ebx = y*xsize+x (<28><><EFBFBD> <20><><EFBFBD>)
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><> <20> eax
cmp eax,[sc.work] ; <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E4AEAD> <20><EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
je mouse_err ; <20><20><><EFBFBD> <20><> - <20><> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cmp eax,0x222222 ; <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 梥⮬ <20><>
je mouse_err ; <20><20><><EFBFBD> <20><> - <20><> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jmp mouse_set ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EBA3A0> <20><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><> <20><>
mouse_err: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
inc [mouse_y] ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ᬥ頥<E1ACA5> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᭠砫<E1ADA0> <20><> <20>
inc [mouse_x] ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ᬥ頥<E1ACA5> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20><> <20>
dec esi ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>
cmp esi,0 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD>
jz mouse_exit ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><20><><EFBFBD><EFBFBD> <20><><><E1A4A5><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
jmp re_mouse_loop ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><20><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>஡㥬 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1A5AB><EFBFBD> <20><><EFBFBD><EFBFBD>
mouse_set:
mov [color],eax ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><>
call draw_result ; <20><EFBFBD><EBA2AE><EFBFBD><><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mouse_exit:
ret ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;end_mouse_get----------------------------------------------------------------------------------------
draw_palitra:
mov eax,13 ; <20><EFBFBD><E3ADAA><EFBFBD> 13 - <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>
mov ebx,110 shl 16+148 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov ecx,9 shl 16+148 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
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
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20><><EFBFBD><E3A3AE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0AC>
;.................................................................................................
;cyrcle_draw:
;mov eax,7 ; 7 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
;mov ebx,circle ; 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0ACA0> BBGGRRBBGGRR...
;mov ecx,148 shl 16 + 148 ; [ࠧ<><E0A0A7><EFBFBD> <20><> <20><><EFBFBD> x]*65536 + [ࠧ<><E0A0A7><EFBFBD> <20><> <20><><EFBFBD> y]
;mov edx,110 shl 16 + 9 ; [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> x]*65536 + [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> y]
;int 0x40
;ret
;picker_draw:
;ret
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;.................................................................................................
sheme_draw:
mov eax,13 ; <20><EFBFBD><E3ADAA><EFBFBD> 13 - <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>
mov edx,0x222222 ; 梥<>
mov ecx,9 shl 16+73 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov esi,2 ; <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
re_draw:
mov ebx,110 shl 16+73 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov edi,2 ; <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for_fon_loop:
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD>
add ebx,75 shl 16 ; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20>
dec edi ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cmp edi,0 ; <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD>
jnz for_fon_loop ; <20><20><> <20><><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><><E6A8AA>
dec esi ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
cmp esi,0 ; <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD>
mov ecx,84 shl 16+73 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
jnz re_draw ; <20><20><> <20><><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><><E6A8AA>
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><><E6A8AA>
;.................................................................................................
mov eax,13 ; <20><EFBFBD><E3ADAA><EFBFBD> 13 - <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>
mov edx,0x0FFFFFFF ; 梥<>
mov esi,4 ; <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD>楢 (#4,8)
mov ebx,99 shl 16+8 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
for_abz:
;;push esi ; <20><><EFBFBD>࠭塞 <20><><EFBFBD><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>
cmp esi,2
jne x2_line
mov ebx,99 shl 16+8
x2_line:
add ebx,3 shl 16 ; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> x
mov edi,8 ; <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
for_stolbik:
push edi ; <20><><EFBFBD>࠭塞 <20><><EFBFBD><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>
mov edi,8 ; <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
mov ecx, 1 shl 16+8 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
cmp esi,2
jg y2_line ; <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20><> <20><><EFBFBD><EFBFBD>
mov ecx,76 shl 16+8
y2_line:
add ebx,9 shl 16 ; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> x
for_loop:
add ecx,9 shl 16 ; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> y
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD>
call sub_red
dec edi ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cmp edi,0 ; <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD>
jnz for_loop ; <20><20><> <20><><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><><E6A8AA>
call sub_green
pop edi ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>
dec edi ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
cmp edi,0 ; <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD>
jnz for_stolbik ; <20><20><> <20><><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><><E6A8AA>
call sub_blue
;;pop esi ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>
dec esi ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
cmp esi,0 ; <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><EFBFBD>
jnz for_abz ; <20><20><> <20><><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><><E6A8AA>
ret ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;end_draw_palitra-------------------------------------------------------------------------------------
sub_red:
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᬥ饭<E1ACA5><E9A5AD> <20><><EFBFBD><EFBFBD><E1ADAE><><E6A2A5> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 梥<><E6A2A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;.................................................................................................
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 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;end_sub_red------------------------------------------------------------------------------------------
sub_green:
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᬥ饭<E1ACA5><E9A5AD> <20><><EFBFBD><EFBFBD><E1ADAE><><E6A2A5> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 梥<><E6A2A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;.................................................................................................
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 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;end_sub_green----------------------------------------------------------------------------------------
sub_blue:
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᬥ饭<E1ACA5><E9A5AD> <20><><EFBFBD><EFBFBD><E1ADAE><><E6A2A5> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 梥<><E6A2A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;.................................................................................................
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 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;end_sub_blue-----------------------------------------------------------------------------------------
draw_result:
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0AC> <20><EFBFBD><EBA2AE><><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;.................................................................................................
mov eax,13 ; <20><EFBFBD><E3ADAA><EFBFBD> 13 - <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>
mov edx,0x00666666 ; 梥<>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebx,4 shl 16+98 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov ecx,9 shl 16+148 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40
mov edx,0x00F3F3F3 ; 梥<>-䮭<>
mov ebx,5 shl 16+96 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov ecx,10 shl 16+146 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E6A2A5> <20> hex color2
;.................................................................................................
mov eax,13 ; <20><EFBFBD><E3ADAA><EFBFBD> 13 - <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>
; color 2 - draw fringle
mov edx,0x222222 ; 梥<>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebx,16 shl 16+15 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov ecx,16 shl 16+15 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>)
; color 2 - draw color
mov edx,[color2] ; 梥<>
mov ebx,17 shl 16+13 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov ecx,17 shl 16+13 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>)
; color 1 - draw fringle
mov edx,0x222222 ; 梥<>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebx,11 shl 16+15 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov ecx,12 shl 16+15 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>)
; value - draw fringle
mov ebx,34 shl 16+62 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov ecx,16 shl 16+15 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>)
; color 2 - draw color
mov edx,[color] ; 梥<>
mov ebx,12 shl 16+13 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov ecx,13 shl 16+13 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>)
; value - draw background
mov edx,0xFFFFFF ; 梥<>-䮭<>
mov ebx,35 shl 16+60 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov ecx,17 shl 16+13 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>)
mov eax,47 ; <20><EFBFBD><E3ADAA><EFBFBD> 47 - <20><EFBFBD> <20><><20> <20><><EFBFBD><EFBFBD>
mov ecx,[color] ; <20><>᫮ (<28><><EFBFBD> bl=0) <20><><EFBFBD><><E3AAA0><EFBFBD> (<28><><EFBFBD> bl=1)
mov esi,0x0 ; 0xX0RRGGBB
mov ebx,256+8 shl 16 ; <20><><EFBFBD><E0A0AC><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20><><E2A5AA> (HEX)
mov edx,45 shl 16+20 ; [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> x]*65536 + [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> y]
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> - <20><EFBFBD><EBA2AE><EFBFBD><><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (HEX)
mov eax,4 ; <20><EFBFBD><E3ADAA><EFBFBD> 4: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A5AA> <20> <20><><EFBFBD><EFBFBD>
mov ebx,38*65536+20 ; [x <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD>] *65536 + [y <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD>]
mov ecx,0x0 ; 梥<><><E2A5AA><EFBFBD> RRGGBB
mov edx,hex ; <20><><EFBFBD>㥬 '#'
mov esi,1 ; <20><><EFBFBD><EFBFBD><EFBFBD><><E2A5AA><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int 0x40
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2> r g b <20><><EFBFBD><EFBFBD><E7A5AD>
;.................................................................................................
call get_spectr
movzx eax,[cred] ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebx,9*65536+142 ; [x <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD>] *65536 + [y <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD>]
call draw_value ; <20><EFBFBD><EBA2AE><EFBFBD><><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
movzx eax,[cgreen] ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebx,32*65536+142 ; [x <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD>] *65536 + [y <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD>]
call draw_value ; <20><EFBFBD><EBA2AE><EFBFBD><><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
movzx eax,[cblue] ; ᨭ<><E1A8AD>
mov ebx,55*65536+142 ; [x <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD>] *65536 + [y <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD>]
call draw_value ; <20><EFBFBD><EBA2AE><EFBFBD><><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
movzx eax,[calpha] ; <20><><EFBFBD><EFBFBD><EFBFBD>
mov ebx,78*65536+142 ; [x <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD>] *65536 + [y <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD>]
call draw_value ; <20><EFBFBD><EBA2AE><EFBFBD><><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;.................................................................................................
; <20><EFBFBD><EBA2AE><EFBFBD> <20><EFBFBD> r g b a
;.................................................................................................
mov eax,4 ; 4 - <20><EFBFBD><EBA2A5><EFBFBD> <20><><EFBFBD><><E2A5AA><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
mov ebx,16 shl 16+40 ; [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> x]*65536 + [<5B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> y]
mov ecx,0x0 ; 0xX0RRGGBB (RR, GG, BB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><><E2A5AA><EFBFBD>)
mov edx,cname ; 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD>
mov esi,1 ; <20><EFBFBD><EBA2AE><EFBFBD><EFBFBD> esi ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD>
newline: ; 横<>
int 0x40 ; <20><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD>
add ebx,23 shl 16 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add edx,1 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cmp [edx],byte 'x' ; <20><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><20>
jne newline ; <20><20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><><E0A0A2>
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><><E1ABA0><EFBFBD>
;.................................................................................................
mov eax,13 ; <20><EFBFBD><E3ADAA><EFBFBD> 13 - <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>
mov edx,0x222222 ; 梥<>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebx,16 shl 16+4 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov ecx,51 shl 16+86 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40
add ebx,23 shl 16 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40
add ebx,23 shl 16 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40
add ebx,23 shl 16 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40
mov edx,0xFA0919 ; 梥<>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebx,17 shl 16+2 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
mov ecx,52 shl 16+84 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> y [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40
mov edx,0x08CE19 ; 梥<>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add ebx,23 shl 16 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40
mov edx,0x0909FF ; 梥<>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add ebx,23 shl 16 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40
mov edx,0xE4E4E4 ; 梥<>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add ebx,23 shl 16 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> y]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
int 0x40
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><E3ADAA>
;.................................................................................................
mov edx,0x0 ; 梥<>-<2D><><EFBFBD><EFBFBD><EFBFBD><E3ADAA>
mov ebx,17 shl 16+11 ; <20><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x [<5B>-<2D><> x]*65536 + [ࠧ<><E0A0A7><EFBFBD>]
movzx eax,[cred] ; <20><><20><><EFBFBD><EFBFBD><E7A5AD><><E6A2A5>
call draw_slider
add ebx,23 shl 16
movzx eax,[cgreen] ; <20><><20><><EFBFBD><EFBFBD><E7A5AD><><E6A2A5>
call draw_slider
add ebx,23 shl 16
movzx eax,[cblue] ; <20><><20><><EFBFBD><EFBFBD><E7A5AD><><E6A2A5>
call draw_slider
add ebx,23 shl 16
movzx eax,[calpha] ; <20><><20><><EFBFBD><EFBFBD><E7A5AD><><E6A2A5>
call draw_slider
ret ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;end_draw_result
draw_slider:
xor ecx,ecx
mov cl,0x3 ; <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> 3 ⠪ <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 85 <20><><EFBFBD><EFBFBD><E1A5AB>
div cl ; <20><><EFBFBD><EFBFBD><EFBFBD> - 楫<><E6A5AB> <20> al <20><><EFBFBD><EFBFBD><20> ah
mov cl,136 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20><><EFBFBD><EFBFBD><EFBFBD>
sub cl,al ; cl=cl-al
shl ecx,16
add ecx,1 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>砫쭮<E7A0AB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov eax,13 ; <20><EFBFBD><E3ADAA><EFBFBD> 13 - <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><>אַ㣮<EFACAE><EFBFBD>
int 0x40
push ebx ; <20><><EFBFBD>࠭塞 <20><><EFBFBD><><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> x+w
sub ebx,8 ; ⠪ <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 11 <20><> <20><EFBFBD><E2ADA8><EFBFBD><EFBFBD> 8 <20><EFBFBD> <20><EFBFBD> <20><20><><EFBFBD><E0A8AD> 3
add ebx,8 shl 16 ; <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> x <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> ᬥ頥<E1ACA5> <20><> 8 <20> <20><EFBFBD>
inc ecx ; <20><EFBFBD><EBA4AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> 3-<2D> (1+1=2)
inc ecx ; (2+1=3) <20><> <20><><EFBFBD> <20> <20><><EFBFBD> <20><EFBFBD> <20><EFBFBD> 3<>3 <20><> 8 <20> <20><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
int 0x40 ; <20><><EFBFBD>
pop ebx ; <20><><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0ACA0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD>
ret ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;end_slider
draw_value:
;.................................................................................................
; <20><EFBFBD> <20><><20><> <20><><EFBFBD> <20><><E3AAA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;.................................................................................................
push ebx ; <20><><EFBFBD>࠭塞 <20><><EFBFBD><EFBFBD><E1ABA0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD>
mov ebx,10 ; <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E1ADAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1ABA5><EFBFBD>
mov edi,buff ; 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
call int2ascii ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> + esi <20><><EFBFBD><EFBFBD><EFBFBD>
mov eax,4 ; <20><EFBFBD><E3ADAA><EFBFBD> 4: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A5AA> <20> <20><><EFBFBD><EFBFBD>
pop ebx ; <20><><EFBFBD><EFBFBD> <20><> <20><EFBFBD> <20><><EFBFBD><EFBFBD><E1ABA0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD>
cmp esi,2 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 ; 梥<><><E2A5AA><EFBFBD> RRGGBB
mov edx,buff ; 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><><E2A5AA><EFBFBD>
int 0x40
ret ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;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:
;.................................................................................................
; <20><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ASCII (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E1A8AC><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1ABA5><EFBFBD>)
;.................................................................................................
cmp dl,10 ; <20> dl <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20><> 0 <20><> 15
jb .less ; <20>᫨ dl<10 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><E5AEA4>
add dl,'A'-10 ; 10->A 11->B 12->C ...
ret ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
.less:
or dl,'0' ; <20><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1ABA5><EFBFBD> 10-<2D> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
ret ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;end_hex_digit
int2ascii:
;.................................................................................................
; <20><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20> <20><><EFBFBD>
;.................................................................................................
; eax - 32-<2D> <20><><EFBFBD><EFBFBD> <20><>
; ebx - <20><EFBFBD><E1ADAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1ABA5><EFBFBD>
; edi - 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> esi - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
;pushad
xor esi,esi ; <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD>稪 ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD>
convert_loop:
xor edx,edx ; <20><><EFBFBD><EFBFBD><EFBFBD>塞 ॣ<><E0A5A3><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
div ebx ; eax/ebx - <20><><EFBFBD><EFBFBD><20> edx
call hex_digit ; <20><EFBFBD>ࠧ㥬 ᨬ<><E1A8AC><EFBFBD>
push edx ; <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>
inc esi ; 㢥<><E3A2A5><EFBFBD><E7A8A2><EFBFBD> <20><><EFBFBD><EFBFBD>
test eax,eax ; <20><20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jnz convert_loop ; <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
cld ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA2A0><> <20><><EFBFBD><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> DF (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
write_loop: ; <20><><EFBFBD><EFBFBD><EFBFBD>
pop eax ; <20><><EFBFBD><EFBFBD> <20><> <20><EFBFBD> <20> <20><><EFBFBD>
stosb ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ES:(E)DI
dec esi ; 㬥<><E3ACA5><EFBFBD> <20><><EFBFBD><EFBFBD>
test esi,esi ; <20><20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E2A0A2><EFBFBD> <20><> <20><EFBFBD>
jnz write_loop ; <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov byte [edi],0 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA2A0> <20><EFBFBD><E3ABA5><EFBFBD> <20><><EFBFBD><EFBFBD>
;popad ; <20><><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD><><E0A5A3><EFBFBD>
; <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20> <20>㭪樨, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E7A5AD><EFBFBD> <20><><EFBFBD>
mov edi,buff ; 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><><E2A5AA><EFBFBD>
call str_len
mov esi,eax
ret ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;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:
;.................................................................................................
; <20><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><>
;.................................................................................................
; esi - 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0ACA8><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
; ecx - <20><EFBFBD><E1ADAE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E1ABA5><EFBFBD>
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> eax - <20><>
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:
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> r,g,b <20><><EFBFBD><EFBFBD><E2AEA2><EFBFBD>騥 梥<><E6A2A5>
;.................................................................................................
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 ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;end_get_spectr
set_spectr:
;.................................................................................................
; <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 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 ; <20><EFBFBD><EBA2AE><EFBFBD><><E0A5A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ret ; <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>
;end_get_spectr
str_len:
;.................................................................................................
; <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> (<28>室->EDI ZS offset ; <20><>室->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
;.................................................................................................
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E3AAA0><EFBFBD> <20><> <20><><EFBFBD> <20><EFBFBD><E5AEA6><EFBFBD><EFBFBD><EFBFBD> Chr <20>L (<28>室->EDI string ; <20><>室->EAX offset)
;.................................................................................................
;strscan:
; push ecx ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
; push ebx ; 㪠<><E3AAA0><EFBFBD> <20><><><E1A8AC><EFBFBD> (bl)
; push esi ; <20><EFBFBD><E0A8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; push edi ; 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD>
; mov esi, edi
; mov al,bl
; repne scasb
; sub edi, esi
; mov eax, edi
; dec eax
; pop edi
; pop esi
; pop ebx
; pop ecx
; ret
;end;
;#___________________________________________________________________________________________________
;****************************************************************************************************|
; <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
;----------------------------------------------------------------------------------------------------/
cm db 12 dup(0)
color dd 00000000h ; <20><EFBFBD><E0A0AD> <20><><EFBFBD><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><EFBFBD><><E6A2A5>
color2 dd 00FFFFFFh ; <20><EFBFBD><E0A0AD> <20><><EFBFBD><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><EFBFBD><><E6A2A5>
mouse_x dd 0 ; <20><EFBFBD><E0A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mouse_y dd 0 ; <20><EFBFBD><E0A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mouse_f dd 0 ; <20><EFBFBD><E0A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
desctop_w dd 0 ; <20><EFBFBD><E0A0AD> <20><><EFBFBD> <20><><EFBFBD>
sc system_colors ; <20><EFBFBD><E0A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> 梥⮢ ᪨<><E1AAA8>
title db 'Palitra v0.6',0 ; <20><EFBFBD><E0A0AD> <20><><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
hidden db 'Hidden',0
hex db '#',0 ; <20><><EFBFBD> <20><EFBFBD><EBA2AE> <20><><EFBFBD><EFBFBD><20><><EFBFBD><><E2A5AA><EFBFBD>
cname db 'RGBAx' ; <20><EFBFBD><E0A0AD><><E0A0A7><EFBFBD><EFBFBD> 梥⮢ (red,green,blue) x-<2D><><20><><EFBFBD><EFBFBD><EFBFBD>
cred db 0 ; <20><EFBFBD><E0A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1AFA5><EFBFBD>
cgreen db 0 ; <20><EFBFBD><E0A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1AFA5><EFBFBD>
cblue db 0 ; <20><EFBFBD><E0A0AD><><E1A8AD><><E1AFA5><EFBFBD>
calpha db 0 ; <20><EFBFBD><E0A0AD> <20><EFBFBD><E0AEA7><EFBFBD><E7ADAE><EFBFBD>
larrow db 0x1A,0
buff db '000',0
bground db 'BACKGROUND',0 ; <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - 14
pnext dd 0 ; <20><><EFBFBD><EFBFBD><20><><EFBFBD><E0A5AA><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
renmode dd 0 ; <><E0A5A6> <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2> (1-梥⮢<E6A2A5><E2AEA2> <20><EFBFBD>,2-<2D><><EFBFBD><EFBFBD>⪠,3-<2D><><EFBFBD><E3A3AE><EFBFBD>)
runmode dd 1 ; <><E0A5A6> <20><><EFBFBD><EFBFBD>᪠ (1-normal, 2-hidden, 3-colordialog)
params db 20 dup(0) ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AC>
params_c db 9 dup(0) ; <20><><EFBFBD>񬭨<EFBFBD> <20><><EFBFBD><><E6A2A5>
I_END: