Subversion Repositories Kolibri OS

Compare Revisions

Ignore whitespace Rev 4186 → Rev 4187

/data/common/settings/Wallpaper.dat
0,0 → 1,0
ßÎ}B<
/data/eng/settings/autorun.dat
1,21 → 1,21
# Syntaxis is: <Program_Name> <Parameter(s)> <Delay_Time>
# Use "parameter value" for parameters with spaces. Use "" if no parameter is required.
# Delay time means how much the system should wait, before running the next line. It is measured in 1/100 seconds.
# Delay time means how much the system should wait, before running the next line. It is measured in 1/100 seconds.
# If delay is negative, wait for termination of the spawned process. Otherwise, simply wait
#
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen
#/SYS/COMMOUSE "" 1 # COM mice detector
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board
#/SYS/refrscrn "" 1 # Refresh screen
/SYS/NETWORK/NETCFG A 1 #
/SYS/NETWORK/ZEROCONF "" 1 # Network configuration
/SYS/MEDIA/PALITRA "H 007DCEDF 003C427F" 1 #SET BG
/SYS/@PANEL "" 1 # Start panel
/SYS/@DOCKY "" 1 # Start docky
/SYS/SETUP BOOT 1 # Load device settings
/SYS/@ICON "" 1 # Multithread icon
#/SYS/@RB "" 1 # Desktop right-click menu
/SYS/@SS ASSM 1 # Screensaver
/SYS/TMPDISK A1 -1 # Add virtual RAM disk /tmp1/1
/SYS/SEARCHAP "" -1 # Search and mount additional system directory
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen
#/SYS/COMMOUSE "" 1 # COM mice detector
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board
#/SYS/refrscrn "" 1 # Refresh screen
/SYS/NETWORK/NETCFG A 1 #
/SYS/NETWORK/ZEROCONF "" 1 # Network configuration
/SYS/MEDIA/PALITRA "H" 1 # SET BG
/SYS/@PANEL "" 1 # Start panel
/SYS/@DOCKY "" 1 # Start docky
/SYS/SETUP BOOT 1 # Load device settings
/SYS/@ICON "" 1 # Multithread icon
#/SYS/@RB "" 1 # Desktop right-click menu
/SYS/@SS ASSM 1 # Screensaver
/SYS/TMPDISK A1 -1 # Add virtual RAM disk /tmp1/1
/SYS/SEARCHAP "" -1 # Search and mount additional system directory
### Hello, ASM World! ###
/data/et/settings/autorun.dat
1,21 → 1,21
# Syntaxis is: <Program_Name> <Parameter(s)> <Delay_Time>
# Use "parameter value" for parameters with spaces. Use "" if no parameter is required.
# Delay time means how much the system should wait, before running the next line. It is measured in 1/100 seconds.
# Delay time means how much the system should wait, before running the next line. It is measured in 1/100 seconds.
# If delay is negative, wait for termination of the spawned process. Otherwise, simply wait
#
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen
#/SYS/COMMOUSE "" 1 # COM mice detector
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board
#/SYS/refrscrn "" 1 # Refresh screen
/SYS/NETWORK/NETCFG A 1 #
/SYS/NETWORK/ZEROCONF "" 1 # Network configuration
/SYS/MEDIA/PALITRA "H 007DCEDF 003C427F" 1 #SET BG
/SYS/@PANEL "" 1 # Start panel
/SYS/@DOCKY "" 1 # Start docky
/SYS/SETUP BOOT 1 # Load device settings
/SYS/@ICON "" 1 # Multithread icon
#/SYS/@RB "" 1 # Desktop right-click menu
/SYS/@SS ASSM 1 # Screensaver
/SYS/TMPDISK A1 -1 # Add virtual RAM disk /tmp1/1
/SYS/SEARCHAP "" -1 # Search and mount additional system directory
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen
#/SYS/COMMOUSE "" 1 # COM mice detector
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board
#/SYS/refrscrn "" 1 # Refresh screen
/SYS/NETWORK/NETCFG A 1 #
/SYS/NETWORK/ZEROCONF "" 1 # Network configuration
/SYS/MEDIA/PALITRA "H" 1 # SET BG
/SYS/@PANEL "" 1 # Start panel
/SYS/@DOCKY "" 1 # Start docky
/SYS/SETUP BOOT 1 # Load device settings
/SYS/@ICON "" 1 # Multithread icon
#/SYS/@RB "" 1 # Desktop right-click menu
/SYS/@SS ASSM 1 # Screensaver
/SYS/TMPDISK A1 -1 # Add virtual RAM disk /tmp1/1
/SYS/SEARCHAP "" -1 # Search and mount additional system directory
### Hello, ASM World! ###
/data/it/settings/autorun.dat
1,21 → 1,21
# Syntaxis is: <Program_Name> <Parameter(s)> <Delay_Time>
# Use "parameter value" for parameters with spaces. Use "" if no parameter is required.
# Delay time means how much the system should wait, before running the next line. It is measured in 1/100 seconds.
# Delay time means how much the system should wait, before running the next line. It is measured in 1/100 seconds.
# If delay is negative, wait for termination of the spawned process. Otherwise, simply wait
#
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen
#/SYS/COMMOUSE "" 1 # COM mice detector
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board
#/SYS/refrscrn "" 1 # Refresh screen
/SYS/NETWORK/NETCFG A 1 #
/SYS/NETWORK/ZEROCONF "" 1 # Network configuration
/SYS/MEDIA/PALITRA "H 007DCEDF 003C427F" 1 #SET BG
/SYS/@PANEL "" 1 # Start panel
/SYS/@DOCKY "" 1 # Start docky
/SYS/SETUP BOOT 1 # Load device settings
/SYS/@ICON "" 1 # Multithread icon
#/SYS/@RB "" 1 # Desktop right-click menu
/SYS/@SS ASSM 1 # Screensaver
/SYS/TMPDISK A1 -1 # Add virtual RAM disk /tmp1/1
/SYS/SEARCHAP "" -1 # Search and mount additional system directory
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen
#/SYS/COMMOUSE "" 1 # COM mice detector
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board
#/SYS/refrscrn "" 1 # Refresh screen
/SYS/NETWORK/NETCFG A 1 #
/SYS/NETWORK/ZEROCONF "" 1 # Network configuration
/SYS/MEDIA/PALITRA "H" 1 # SET BG
/SYS/@PANEL "" 1 # Start panel
/SYS/@DOCKY "" 1 # Start docky
/SYS/SETUP BOOT 1 # Load device settings
/SYS/@ICON "" 1 # Multithread icon
#/SYS/@RB "" 1 # Desktop right-click menu
/SYS/@SS ASSM 1 # Screensaver
/SYS/TMPDISK A1 -1 # Add virtual RAM disk /tmp1/1
/SYS/SEARCHAP "" -1 # Search and mount additional system directory
### Hello, ASM World! ###
/data/rus/settings/autorun.dat
1,21 → 1,21
# Syntaxis is: <Program_Name> <Parameter(s)> <Delay_Time>
# Use "parameter value" for parameters with spaces. Use "" if no parameter is required.
# Delay time means how much the system should wait, before running the next line. It is measured in 1/100 seconds.
# Delay time means how much the system should wait, before running the next line. It is measured in 1/100 seconds.
# If delay is negative, wait for termination of the spawned process. Otherwise, simply wait
#
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen
#/SYS/COMMOUSE "" 1 # COM mice detector
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board
#/SYS/refrscrn "" 1 # Refresh screen
/SYS/NETWORK/NETCFG A 1 #
/SYS/NETWORK/ZEROCONF "" 1 # Network configuration
/SYS/MEDIA/PALITRA "H 007DCEDF 003C427F" 1 #SET BG
/SYS/@PANEL "" 1 # Start panel
/SYS/@DOCKY "" 1 # Start docky
/SYS/SETUP BOOT 1 # Load device settings
/SYS/@ICON "" 1 # Multithread icon
#/SYS/@RB "" 1 # Desktop right-click menu
/SYS/@SS ASSM 1 # Screensaver
/SYS/TMPDISK A1 -1 # Add virtual RAM disk /tmp1/1
/SYS/SEARCHAP "" -1 # Search and mount additional system directory
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen
#/SYS/COMMOUSE "" 1 # COM mice detector
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board
#/SYS/refrscrn "" 1 # Refresh screen
/SYS/NETWORK/NETCFG A 1 #
/SYS/NETWORK/ZEROCONF "" 1 # Network configuration
/SYS/MEDIA/PALITRA "H" 1 # SET BG
/SYS/@PANEL "" 1 # Start panel
/SYS/@DOCKY "" 1 # Start docky
/SYS/SETUP BOOT 1 # Load device settings
/SYS/@ICON "" 1 # Multithread icon
#/SYS/@RB "" 1 # Desktop right-click menu
/SYS/@SS ASSM 1 # Screensaver
/SYS/TMPDISK A1 -1 # Add virtual RAM disk /tmp1/1
/SYS/SEARCHAP "" -1 # Search and mount additional system directory
### Hello, ASM World! ###
/data/sp/settings/autorun.dat
1,21 → 1,21
# Syntaxis is: <Program_Name> <Parameter(s)> <Delay_Time>
# Use "parameter value" for parameters with spaces. Use "" if no parameter is required.
# Delay time means how much the system should wait, before running the next line. It is measured in 1/100 seconds.
# Delay time means how much the system should wait, before running the next line. It is measured in 1/100 seconds.
# If delay is negative, wait for termination of the spawned process. Otherwise, simply wait
#
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen
#/SYS/COMMOUSE "" 1 # COM mice detector
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board
#/SYS/refrscrn "" 1 # Refresh screen
/SYS/NETWORK/NETCFG A 1 #
/SYS/NETWORK/ZEROCONF "" 1 # Network configuration
/SYS/MEDIA/PALITRA "H 007DCEDF 003C427F" 1 #SET BG
/SYS/@PANEL "" 1 # Start panel
/SYS/@DOCKY "" 1 # Start docky
/SYS/SETUP BOOT 1 # Load device settings
/SYS/@ICON "" 1 # Multithread icon
#/SYS/@RB "" 1 # Desktop right-click menu
/SYS/@SS ASSM 1 # Screensaver
/SYS/TMPDISK A1 -1 # Add virtual RAM disk /tmp1/1
/SYS/SEARCHAP "" -1 # Search and mount additional system directory
#/SYS/CROPFLAT "XS800 YS480" 1 # set limits of screen
#/SYS/COMMOUSE "" 1 # COM mice detector
#/SYS/DEVELOP/BOARD "" 1 # Load DEBUG board
#/SYS/refrscrn "" 1 # Refresh screen
/SYS/NETWORK/NETCFG A 1 #
/SYS/NETWORK/ZEROCONF "" 1 # Network configuration
/SYS/MEDIA/PALITRA "H" 1 # SET BG
/SYS/@PANEL "" 1 # Start panel
/SYS/@DOCKY "" 1 # Start docky
/SYS/SETUP BOOT 1 # Load device settings
/SYS/@ICON "" 1 # Multithread icon
#/SYS/@RB "" 1 # Desktop right-click menu
/SYS/@SS ASSM 1 # Screensaver
/SYS/TMPDISK A1 -1 # Add virtual RAM disk /tmp1/1
/SYS/SEARCHAP "" -1 # Search and mount additional system directory
### Hello, ASM World! ###
/programs/media/palitra/trunk/palitra.asm
6,7 → 6,7
;.....................................................................................................
;; compiler: FASM 1.69.31 |
;; version: 0.3.0 |
;; last update: 08/11/2012 |
;; last update: 07/11/2013 |
;; e-mail: dr.steshin@gmail.com |
;.....................................................................................................
;; History: |
34,6 → 34,8
;; 0.7.0 - „®¡ ¢«¥­  ¯¨¯¥âª  - ¢ë¡®à ­  á।­îî ª­®¯ªã ¬ëè¨ |
;; 0.7.5 -  ¦ â¨¥ ¯à ¢®© ª« ¢¨è¥© ¬ëè¨ ­  ï祩ªã á 梥⮬ ãáâ ­ ¢«¨¢ ¥â ­¥ ®á­®¢®©,   ¤®¯®«­. 梥â |
;; - “¬¥­ì襭® ¬¥àæ ­¨¥ ¯à¨ à ¡®â¥ ¯¨¯¥âª¨ |
;; 0.7.6 - ¥à¥à ¡®â ­ ०¨¬ H (hidden): ⥯¥àì æ¢¥â  § £à㦠îâáï ¨§ wallpaper.dat (eAndrew) |
;; - à¨ ãáâ ­®¢ª¨ ä®­  ª­®¯ª®©, 梥â ä®­  á®åà ­ï¥âáï ¢ wallpaper.dat (eAndrew) |
;.....................................................................................................
;; All rights reserved. |
;; |
69,25 → 71,25
dd 0x01
dd START
dd I_END
dd I_END+4096
dd I_END+4096
dd I_RDATA+4096
dd I_RDATA+4096
dd params
dd 0x0
 
include '..\..\..\macros.inc'
include '../../../macros.inc'
 
WIN_W equ 295 ; è¨à¨­  ®ª­ 
WIN_H equ 195 ; ¢ëá®â  ®ª­ 
WIN_X equ 250 ; ª®®à¤¨­ â  å ®ª­ 
WIN_Y equ 190 ; ª®®à¤¨­ â  ã ®ª­ 
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' ; ®¡à ¡®âª  ¯ à ¬¥â஢ ª®¬ ­¤­®© áâப¨
mcall 68,11 ; ¨­¨æ¨ «¨§ æ¨ï ªãç¨
mcall 40,0x27 ; ãáâ ­ ¢«¨¢ ¥¬ ¬ áªã ᮡë⨩
include 'params_init.inc' ; ®¡à ¡®âª  ¯ à ¬¥â஢ ª®¬ ­¤­®© áâப¨
 
;#___________________________________________________________________________________________________
;****************************************************************************************************|
94,23 → 96,23
; Ž‘Ž‚Ž‰ –ˆŠ‹ Žƒ€ŒŒ› - Ž€Ž’Š€ ‘Ž›’ˆ‰ |
;----------------------------------------------------------------------------------------------------/
red:
call draw_main ; ¢ë§ë¢ ¥¬ ¯¥à¥à¨á®¢ªã ®ª­  ¯à¨«®¦¥­¨ï
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 ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横« 
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 ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
key: ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
mcall 2 ; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  (¢ ah) (âãâ ¢ ¯à¨­æ¨¯¥ ­¥ ­ã¦­ )
jmp still ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
;end_key
 
mouse:
140,35 → 142,35
;end_mouse
 
button:
mcall 17 ; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
cmp ah, 1 ; ¥á«¨ ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1,
jz bexit ; ¢ë室¨¬
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
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 ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
call draw_palitra ; ˆ‘“…Œ €‹ˆ’“
jmp still ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
next_bg:
cmp ah, 14 ; Š­®¯ª  BACKGROUND
jne circle_bg ; ¥á«¨ ­¥ ­ ¦ â  â® ¢ë室¨¬
call set_background ; ¨­ ç¥ ãáâ ­ ¢«¨¢ ¥¬ ä®­
jmp still ; ¨ ­  ®¦¨¤ ­¨¥ ᮡëâ¨ï
cmp ah, 14 ; Š­®¯ª  BACKGROUND
jne circle_bg ; ¥á«¨ ­¥ ­ ¦ â  â® ¢ë室¨¬
call set_background ; ¨­ ç¥ ãáâ ­ ¢«¨¢ ¥¬ ä®­
jmp still ; ¨ ­  ®¦¨¤ ­¨¥ ᮡëâ¨ï
circle_bg:
cmp ah, 15 ; Š­®¯ª  Šà㣮¢ ï ¯ «¨âà 
jne next_end ; ¥á«¨ ­¥ ­ ¦ â  â® ¢ë室¨¬
mov [renmode],2 ; ¢ª«îç ¥¬ ®âà¨á®¢ªã ªà㣮¢®© ¯ «¨âàë
call draw_palitra ; ˆ‘“…Œ €‹ˆ’“
jmp still ; ¨ ­  ®¦¨¤ ­¨¥ ᮡëâ¨ï
cmp ah, 15 ; Š­®¯ª  Šà㣮¢ ï ¯ «¨âà 
jne next_end ; ¥á«¨ ­¥ ­ ¦ â  â® ¢ë室¨¬
mov [renmode],2 ; ¢ª«îç ¥¬ ®âà¨á®¢ªã ªà㣮¢®© ¯ «¨âàë
call draw_palitra ; ˆ‘“…Œ €‹ˆ’“
jmp still ; ¨ ­  ®¦¨¤ ­¨¥ ᮡëâ¨ï
next_end:
cmp ah,13 ; COLOR SWAP
cmp ah,13 ; COLOR SWAP
jne color_swap_end
push [color2]
push [color]
175,47 → 177,47
pop [color2]
pop [color]
call draw_result
jmp still ; ˆ ã室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
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 ; ¢®ááâ ­ ¢«¨¢ ¥¬ ¥ å :
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 ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
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 ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
jmp still ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
blue_button:
cmp ah, 10
jne alpha_button
mov [cblue],cl
call set_spectr
jmp still ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
jmp still ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
alpha_button:
cmp ah, 11
jne still
mov [calpha],cl
call set_spectr
jmp still ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
jmp still ; “室¨¬ ­  ®¦¨¤ ­¨¥ ¤à㣮£® ᮡëâ¨ï
bexit:
mcall -1 ; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
mcall -1 ; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
;end_button
 
;#___________________________________________________________________________________________________
223,20 → 225,20
; ƒ‹€‚›‰ ŒŽ„“‹œ Ž’ˆ‘Ž‚Šˆ ŽŠ€ ˆ ‹…Œ…’Ž‚ ˆ‹Ž†…ˆŸ |
;----------------------------------------------------------------------------------------------------/
draw_main:
mov eax,12 ; äã­ªæ¨ï 12: ®§­ ç ¥â, çâ® ¡ã¤¥â à¨á®¢ âìáï ®ª­®
mov ebx,1 ; 1,­ ç «® à¨á®¢ ­¨ï
int 0x40 ; à¥à뢠­¨¥
mov eax,12 ; äã­ªæ¨ï 12: ®§­ ç ¥â, çâ® ¡ã¤¥â à¨á®¢ âìáï ®ª­®
mov ebx,1 ; 1,­ ç «® à¨á®¢ ­¨ï
int 0x40 ; à¥à뢠­¨¥
 
mov eax,48 ; ”ã­ªæ¨ï 48 - á⨫¨ ®â®¡à ¦¥­¨ï ®ª®­
mov ebx,3 ; ®¤äã­ªæ¨ï 3 - ¯®«ãç¨âì áâ ­¤ àâ­ë¥ æ¢¥â  ®ª®­.
mov ecx,sc ; “ª § â¥«ì ­  ¡ãä¥à à §¬¥à®¬ edx ¡ ©â, ¯®¤ áâàãªâãàã
mov edx,sizeof.system_colors ;  §¬¥à â ¡«¨æë 梥⮢ (¤®«¦¥­ ¡ëâì 40 ¡ ©â)
int 0x40 ; à¥à뢠­¨¥
mov eax,48 ; ”ã­ªæ¨ï 48 - á⨫¨ ®â®¡à ¦¥­¨ï ®ª®­
mov ebx,3 ; ®¤äã­ªæ¨ï 3 - ¯®«ãç¨âì áâ ­¤ àâ­ë¥ æ¢¥â  ®ª®­.
mov ecx,sc ; “ª § â¥«ì ­  ¡ãä¥à à §¬¥à®¬ edx ¡ ©â, ¯®¤ áâàãªâãàã
mov edx,sizeof.system_colors ;  §¬¥à â ¡«¨æë 梥⮢ (¤®«¦¥­ ¡ëâì 40 ¡ ©â)
int 0x40 ; à¥à뢠­¨¥
 
mov eax,48 ; ”ã­ªæ¨ï 48 - á⨫¨ ®â®¡à ¦¥­¨ï ®ª®­.
mov ebx,4 ; ®¤äã­ªæ¨ï 4 - ¢®§¢à é ¥â eax = ¢ëá®â  ᪨­ .
int 0x40 ; à¥à뢠­¨¥
mov ecx,eax ; ‡ ¯®¬¨­ ¥¬ ¢ëá®âã ᪨­ 
mov eax,48 ; ”ã­ªæ¨ï 48 - á⨫¨ ®â®¡à ¦¥­¨ï ®ª®­.
mov ebx,4 ; ®¤äã­ªæ¨ï 4 - ¢®§¢à é ¥â eax = ¢ëá®â  ᪨­ .
int 0x40 ; à¥à뢠­¨¥
mov ecx,eax ; ‡ ¯®¬¨­ ¥¬ ¢ëá®âã ᪨­ 
 
mov edi,[runmode]
cmp edi,2
249,53 → 251,53
mov edi,hidden
jmp set_title
no_dialogmode:
mov edi,title ; ‡ £®«®¢®ª ®ª­ 
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 ; à¥à뢠­¨¥
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
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 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
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 ; à¥à뢠­¨¥
mov eax,12 ; äã­ªæ¨ï 12: ®§­ ç ¥â, çâ® ¡ã¤¥â à¨á®¢ âìáï ®ª­®
mov ebx,2 ; 2 - ª®­¥æ à¨á®¢ ­¨ï
int 0x40 ; à¥à뢠­¨¥
ret
 
;#___________________________________________________________________________________________________
305,23 → 307,23
 
 
;------------------------------------------------------------------------------------------------+
draw_left_panel: ; Žâà¨á®¢ª  ¡®ª®¢®© ¯ ­¥«¨
draw_left_panel: ; Žâà¨á®¢ª  ¡®ª®¢®© ¯ ­¥«¨
;.................................................................................................
mov eax,8 ; button_next_colorsheme
mov ebx,266 shl 16+16 ; [x] + [size]
mov ecx,9 shl 16+16 ; [y] + [size]
mov edx,0x6000000C ; ID = 12
mov esi,[sc.work_button] ; RGB
int 0x40 ; call
mov eax,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
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]
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
355,35 → 357,35
;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 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
ret ; return
;.................................................................................................
 
 
;------------------------------------------------------------------------------------------------+
draw_bottom_panel: ; Žâà¨á®¢ª  ­¨¦­¥© ¯ ­¥«¨
draw_bottom_panel: ; Žâà¨á®¢ª  ­¨¦­¥© ¯ ­¥«¨
;.................................................................................................
mov eax,8 ; draw button
mov ebx,92 shl 16+100 ; [x] + [size]
mov ecx,169 shl 16+16 ; [y] + [size]
mov edx,14 ; ID = 14
mov esi,[sc.work_button] ; RGB
int 0x40 ; call
mov eax,4 ; Write string
mov ebx,113 shl 16+174 ; [x] + [y]
mov ecx,[sc.work_button_text] ; RGB
mov edx,bground ; string pointer
mov esi,10 ; count symbol
int 0x40 ; call
mov eax,38 ; draw line
mov ebx,4 shl 16+282 ; [start x] + [end x]
mov ecx,163 shl 16+163 ; [start y] + [end y]
mov edx,0x00666666 ; RGB
int 0x40 ; call
ret ; return
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:
390,17 → 392,17
;.................................................................................................
; ®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨
;.................................................................................................
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 ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
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:
407,17 → 409,17
;.................................................................................................
; ®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® ®ª­ 
;.................................................................................................
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 ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
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:
424,16 → 426,16
;.................................................................................................
; “áâ ­ ¢«¨¢ ¥â ä®­ à ¡®ç¥£® á⮫ 
;.................................................................................................
mov eax,15 ; ”ã­ªæ¨ï 15 - à ¡®â  á ä®­®¢®© £à ä¨ª®©
mov ebx,4 ; ®¤äã­ªæ¨ï 4 - ãáâ ­®¢¨âì ०¨¬ ®âà¨á®¢ª¨ ä®­ .
mov ecx,2 ; ¥¦¨¬ ®âà¨á®¢ª¨ - § ¬®áâ¨âì (1)
int 0x40 ; ‚ë§ë¢ ¥¬
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,15 ; ”ã­ªæ¨ï 15 - à ¡®â  á ä®­®¢®© £à ä¨ª®©
mov ebx,1 ; ®¤äã­ªæ¨ï 1 - ãáâ ­®¢¨âì à §¬¥à ä®­®¢®£® ¨§®¡à ¦¥­¨ï.
mov ecx,2 ; ˜¨à¨­  ¨§®¡à ¦¥­¨ï
mov edx,2 ; ‚ëá®â  ¨§®¡à ¦¥­¨ï
int 0x40 ; ‚ë§ë¢ ¥¬
 
mov eax,[color]
mov [cm+0],al
455,17 → 457,40
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,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 ; ‚ë§ë¢ ¥¬
mov eax,15 ; ”ã­ªæ¨ï 15 - à ¡®â  á ä®­®¢®© £à ä¨ª®©
mov ebx,3 ; ®¤äã­ªæ¨ï 3 - ¯¥à¥à¨á®¢ âì ä®­.
int 0x40 ; ‚ë§ë¢ ¥¬
 
mov eax, [color]
mov [fi.file+0], al
shr eax, 8
mov [fi.file+1], al
shr eax, 8
mov [fi.file+2], al
 
mov eax, [color2]
mov [fi.file+3], al
shr eax, 8
mov [fi.file+4], al
shr eax, 8
mov [fi.file+5], al
 
mov [fi.p00], dword 2
mov [fi.p04], dword 0
mov [fi.p08], dword 0
mov [fi.p12], dword 6
mov [fi.p16], dword fi.file
mov [fi.p20], dword 0
mov [fi.p21], dword dat_file
mcall 70, fi
 
ret
;end_set_background
 
473,13 → 498,13
;.................................................................................................
; Ž¯à¥¤¥«ï¥¬ è¨à¨­ã íªà ­ 
;.................................................................................................
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 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
486,33 → 511,33
;end_desktop_get
 
mouse_get:
mov esi,2 ; ŠŽ‘’›‹œ: ä« £ ¤«ï ¨§¡¥¦ ­¨ï § æ¨ª«¨¢ ­¨ï
mov esi,2 ; ŠŽ‘’›‹œ: ä« £ ¤«ï ¨§¡¥¦ ­¨ï § æ¨ª«¨¢ ­¨ï
call mouse_global
call desktop_get
re_mouse_loop: ; ŠŽ‘’›‹œ: ¬¥âª  ¤«ï ¢®§¢à â  ¥á«¨ ¯®¯ «¨ ¢ á¥âªã
re_mouse_loop: ; ŠŽ‘’›‹œ: ¬¥âª  ¤«ï ¢®§¢à â  ¥á«¨ ¯®¯ «¨ ¢ á¥âªã
mov ebx,[desctop_w]
imul ebx,[mouse_y] ; ebx = y*xsize
add ebx,[mouse_x] ; ebx = y*xsize+x
imul ebx,[mouse_y] ; ebx = y*xsize
add ebx,[mouse_x] ; ebx = y*xsize+x
 
;.................................................................................................
; ¥à¥¬ 梥â á ¯ «¨âàë ¢ ¯¥à¥¬¥­­ãî
;.................................................................................................
mov eax,35 ; ”ã­ªæ¨ï ¢§ïâ¨ï 梥â 
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: ; ˆ­ ç¥ § ¯®¬¨­ ¥¬ ­®¢ë© 梥â
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
522,24 → 547,24
cmp [mouse_f],2
jne mouse_exit
mov [color2],eax
call draw_result ; ‚뢮¤¨¬ १ã«ìâ â
call draw_result ; ‚뢮¤¨¬ १ã«ìâ â
mouse_exit:
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_mouse_get----------------------------------------------------------------------------------------
 
draw_palitra:
mov eax,13 ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov ebx,110 shl 16+148 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,9 shl 16+148 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
mov edx,[sc.work] ; 梥â
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
je cyrcle_draw
;cmp [renmode],1
;je picker_draw
cmp [renmode],0
je sheme_draw
je sheme_draw
ret
 
;.................................................................................................
571,39 → 596,39
;mov ebx,109*65536+150
;mov ecx, 10*65536+150
;mcall
call mouse_local ; ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® ®ª­ 
mov ecx, [mouse_x] ; § ­®á¨¬ ¢ ॣ¨áâà
mov edx, [mouse_y] ; § ­®á¨¬ ¢ ॣ¨áâà
call mouse_local ; ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® ®ª­ 
mov ecx, [mouse_x] ; § ­®á¨¬ ¢ ॣ¨áâà
mov edx, [mouse_y] ; § ­®á¨¬ ¢ ॣ¨áâà
cmp ecx, WIN_W-10
jg cyrcle_draw_2
jg cyrcle_draw_2
cmp edx, WIN_H
jle end_cyrcle_draw
 
cyrcle_draw_2:
mcall 5,10
mcall 5,10
call desktop_get
call mouse_global
 
mov ebx,112*65536+11
mov esi,0 ; counter=8
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
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
641,12 → 666,12
inc ecx
add ecx, esi
cmp ecx, 6
jl _cpr_exit
jl _cpr_exit
sub ecx, 6
inc edx
add edx, edi
cmp edx, 6
jl _cpr_exit
jl _cpr_exit
sub edx, 6
 
mov ebx, edx
674,31 → 699,31
; Žâà¨á®¢ª  ä®­  ¯®¤ ª­®¯ª¨
;.................................................................................................
sheme_draw:
mov eax,13 ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov edx,0x222222 ; 梥â
mov ecx,9 shl 16+73 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
mov esi,2 ; ‘ç¥â稪 «¨­¨© ¯®¤«®¦¥ª
mov eax,13 ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov edx,0x222222 ; 梥â
mov ecx,9 shl 16+73 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
mov esi,2 ; ‘ç¥â稪 «¨­¨© ¯®¤«®¦¥ª
re_draw:
mov ebx,110 shl 16+73 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov edi,2 ; ‘ç¥â稪 ª®«¨ç¥á⢠ ¯®¤«®¦¥ª
mov ebx,110 shl 16+73 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov edi,2 ; ‘ç¥â稪 ª®«¨ç¥á⢠ ¯®¤«®¦¥ª
for_fon_loop:
int 0x40 ; à¥à뢠­¨¥
add ebx,75 shl 16 ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® å
dec edi ; “¬¥­ìè ¥¬ áç¥â稪 ª­®¯®ª
cmp edi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
jnz for_fon_loop ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
dec esi ; “¬¥­ìè ¥¬ ¥£®
cmp esi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
mov ecx,84 shl 16+73 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
jnz re_draw ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
int 0x40 ; à¥à뢠­¨¥
add ebx,75 shl 16 ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® å
dec edi ; “¬¥­ìè ¥¬ áç¥â稪 ª­®¯®ª
cmp edi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
jnz for_fon_loop ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
dec esi ; “¬¥­ìè ¥¬ ¥£®
cmp esi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
mov ecx,84 shl 16+73 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
jnz re_draw ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
 
;.................................................................................................
; Žâà¨á®¢ª  ª­®¯®ª ¯® 横«ã
;.................................................................................................
mov eax,13 ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov edx,0x0FFFFFFF ; 梥â
mov esi,4 ; ‘ç¥â稪 ª®«¨ç¥á⢠  ¡§ æ¥¢ (#4,8)
mov ebx,99 shl 16+8 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov eax,13 ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov edx,0x0FFFFFFF ; 梥â
mov esi,4 ; ‘ç¥â稪 ª®«¨ç¥á⢠  ¡§ æ¥¢ (#4,8)
mov ebx,99 shl 16+8 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
for_abz:
;;push esi ; ‘®å࠭塞 §­ ç¥­¨¥ áç¥â稪  «¨­¨© ¢ á⥪
cmp esi,2
705,35 → 730,35
jne x2_line
mov ebx,99 shl 16+8
x2_line:
add ebx,3 shl 16 ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® x
mov edi,8 ; ‘ç¥â稪 ª®«¨ç¥á⢠ ª­®¯®ª ¢ áâப¥
add ebx,3 shl 16 ; ‘¬¥é ¥¬ ¯®«®¦¥­¨¥ «¨­¨¨ ¯® x
mov edi,8 ; ‘ç¥â稪 ª®«¨ç¥á⢠ ª­®¯®ª ¢ áâப¥
for_stolbik:
push edi ; ‘®å࠭塞 §­ ç¥­¨¥ áç¥â稪  «¨­¨© ¢ á⥪
mov edi,8 ; ‘ç¥â稪 ª®«¨ç¥á⢠ ª­®¯®ª ¢ áâப¥
mov ecx, 1 shl 16+8 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
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 ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
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 ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
pop edi ; ˆ­ ç¥ ¢®ááâ ­ ¢«¨¢ ¥¬ áç¥â稪 «¨­¨©
dec edi ; “¬¥­ìè ¥¬ ¥£®
cmp edi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
jnz for_stolbik ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
call sub_blue
;;pop esi ; ˆ­ ç¥ ¢®ááâ ­ ¢«¨¢ ¥¬ áç¥â稪 «¨­¨©
dec esi ; “¬¥­ìè ¥¬ ¥£®
cmp esi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
jnz for_abz ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
dec esi ; “¬¥­ìè ¥¬ ¥£®
cmp esi,0 ; ‘à ¢­¨¢ ¥¬ á ­ã«¥¬
jnz for_abz ; …᫨ ­¥ ­®«ì â® ¢ ­ ç «® 横« 
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_draw_palitra-------------------------------------------------------------------------------------
 
 
748,27 → 773,27
jne sub_red_1
sub edx,0x40
jmp sub_red_e
sub_red_1: ; random
sub_red_1: ; random
cmp al,1
jne sub_red_2
sub edx,0x20
jmp sub_red_e
sub_red_2: ; gree
sub_red_2: ; gree
cmp al,2
jne sub_red_3
sub edx,0x010101
jmp sub_red_e
sub_red_3: ; red
sub_red_3: ; red
cmp al,3
jne sub_red_4
sub edx,0x0101
jmp sub_red_e
sub_red_4: ; green
sub_red_4: ; green
cmp al,4
jne sub_red_5
sub edx,0x010001
jmp sub_red_e
sub_red_5: ; blue
sub_red_5: ; blue
cmp al,5
jne sub_red_e
sub edx,0x010100
775,7 → 800,7
jmp sub_red_e
sub_red_e:
pop eax
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_sub_red------------------------------------------------------------------------------------------
 
sub_green:
796,7 → 821,7
;jmp sub_green_e
sub_green_e:
pop eax
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_sub_green----------------------------------------------------------------------------------------
 
 
818,7 → 843,7
;jmp sub_blue_e
sub_blue_e:
pop eax
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_sub_blue-----------------------------------------------------------------------------------------
 
draw_result:
825,64 → 850,64
;.................................................................................................
; ®«ìè ï à ¬ª  ¢ë¢®¤  १ã«ìâ â 
;.................................................................................................
mov eax,13 ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov edx,0x00666666 ; 梥â-®¡¢®¤ª¨
mov ebx,4 shl 16+98 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,9 shl 16+148 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
mov eax,13 ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov edx,0x00666666 ; 梥â-®¡¢®¤ª¨
mov ebx,4 shl 16+98 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,9 shl 16+148 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40
mov edx,0x00F3F3F3 ; 梥â-ä®­ 
mov ebx,5 shl 16+96 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,10 shl 16+146 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
mov edx,0x00F3F3F3 ; 梥â-ä®­ 
mov ebx,5 shl 16+96 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,10 shl 16+146 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40
 
;.................................................................................................
; Žâà¨á®¢ª  १ã«ìâ â  æ¢¥â  ¢ hex color2
;.................................................................................................
mov eax,13 ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov eax,13 ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
; color 2 - draw fringle
mov edx,0x222222 ; 梥â-®¡¢®¤ª¨
mov ebx,16 shl 16+15 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,16 shl 16+15 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40 ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
mov edx,0x222222 ; 梥â-®¡¢®¤ª¨
mov ebx,16 shl 16+15 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,16 shl 16+15 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40 ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
; color 2 - draw color
mov edx,[color2] ; 梥â
mov ebx,17 shl 16+13 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,17 shl 16+13 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40 ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
mov edx,[color2] ; 梥â
mov ebx,17 shl 16+13 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,17 shl 16+13 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40 ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
; color 1 - draw fringle
mov edx,0x222222 ; 梥â-®¡¢®¤ª¨
mov ebx,11 shl 16+15 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,12 shl 16+15 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40 ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
mov edx,0x222222 ; 梥â-®¡¢®¤ª¨
mov ebx,11 shl 16+15 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,12 shl 16+15 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40 ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
; value - draw fringle
mov ebx,34 shl 16+62 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,16 shl 16+15 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40 ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
mov ebx,34 shl 16+62 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,16 shl 16+15 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40 ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
 
; color 2 - draw color
mov edx,[color] ; 梥â
mov ebx,12 shl 16+13 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,13 shl 16+13 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40 ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
mov edx,[color] ; 梥â
mov ebx,12 shl 16+13 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,13 shl 16+13 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40 ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
; value - draw background
mov edx,0xFFFFFF ; 梥â-ä®­ 
mov ebx,35 shl 16+60 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,17 shl 16+13 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40 ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
mov edx,0xFFFFFF ; 梥â-ä®­ 
mov ebx,35 shl 16+60 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,17 shl 16+13 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40 ; à¥à뢠­¨¥ (®á à¨áã¥â ¯àאַ㣮«ì­¨ª)
 
mov eax,47 ; ”ã­ªæ¨ï 47 - ¢ë¢®¤ ç¨á«  ¢ ®ª­®
mov ecx,[color] ; ç¨á«® (¯à¨ bl=0) ¨«¨ 㪠§ â¥«ì (¯à¨ bl=1)
mov esi,0x0 ; 0xX0RRGGBB
mov ebx,256+8 shl 16 ; ¯ à ¬¥âàë ¯à¥®¡à §®¢ ­¨ï ç¨á«  ¢ ⥪áâ (HEX)
mov edx,45 shl 16+20 ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
int 0x40 ; à¥à뢠­¨¥ - ¢ë¢®¤¨¬ १ã«ìâ â ¢ ®ª­® (HEX)
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
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 §­ ç¥­¨©
889,104 → 914,104
;.................................................................................................
call get_spectr
 
movzx eax,[cred] ; ªà á­ë©
mov ebx,9*65536+142 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
movzx eax,[cred] ; ªà á­ë©
mov ebx,9*65536+142 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
 
movzx eax,[cgreen] ; §¥«¥­ë©
mov ebx,32*65536+142 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
movzx eax,[cgreen] ; §¥«¥­ë©
mov ebx,32*65536+142 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
 
movzx eax,[cblue] ; ᨭ¨©
mov ebx,55*65536+142 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
movzx eax,[cblue] ; ᨭ¨©
mov ebx,55*65536+142 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
 
movzx eax,[calpha] ;  «ìä 
mov ebx,78*65536+142 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
movzx eax,[calpha] ;  «ìä 
mov ebx,78*65536+142 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
call draw_value ; ¢ë¢®¤¨¬ १ã«ìâ â
 
;.................................................................................................
; ‚뢮¤¨¬ ¡ãª¢ë r g b a
;.................................................................................................
mov eax,4 ; 4 - ¢ë¢¥á⨠áâபã ⥪áâ  ¢ ®ª­®
mov ebx,16 shl 16+40 ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
mov ecx,0x0 ; 0xX0RRGGBB (RR, GG, BB § ¤ îâ 梥â ⥪áâ )
mov edx,cname ; 㪠§ â¥«ì ­  ­ ç «® áâப¨
mov esi,1 ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢
newline: ; 横«
int 0x40 ; à¥à뢠­¨¥
add ebx,23 shl 16 ; „®¡ ¢«ï¥¬
add edx,1 ; „®¡ ¢«ï¥¬
cmp [edx],byte 'x' ; ‘à ¢­¥­¨¥ á ¡ ©â®¬ å
jne newline ; …᫨ ­¥ ­ã«ì ¨«¨ ­¥ à ¢­®
mov eax,4 ; 4 - ¢ë¢¥á⨠áâபã ⥪áâ  ¢ ®ª­®
mov ebx,16 shl 16+40 ; [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
mov ecx,0x0 ; 0xX0RRGGBB (RR, GG, BB § ¤ îâ 梥â ⥪áâ )
mov edx,cname ; 㪠§ â¥«ì ­  ­ ç «® áâப¨
mov esi,1 ; ¢ë¢®¤¨âì esi ᨬ¢®«®¢
newline_s: ; 横«
int 0x40 ; à¥à뢠­¨¥
add ebx,23 shl 16 ; „®¡ ¢«ï¥¬
add edx,1 ; „®¡ ¢«ï¥¬
cmp [edx],byte 'x' ; ‘à ¢­¥­¨¥ á ¡ ©â®¬ å
jne newline_s ; …᫨ ­¥ ­ã«ì ¨«¨ ­¥ à ¢­®
 
;.................................................................................................
; Žâà¨á®¢ª  á« ©¤¥à®¢
;.................................................................................................
mov eax,13 ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov edx,0x222222 ; 梥â-®¡¢®¤ª¨
mov ebx,16 shl 16+4 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,51 shl 16+86 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
mov eax,13 ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
mov edx,0x222222 ; 梥â-®¡¢®¤ª¨
mov ebx,16 shl 16+4 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,51 shl 16+86 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40
add ebx,23 shl 16 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
add ebx,23 shl 16 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
int 0x40
add ebx,23 shl 16 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
add ebx,23 shl 16 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
int 0x40
add ebx,23 shl 16 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
add ebx,23 shl 16 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
int 0x40
 
mov edx,0xFA0919 ; 梥â-®¡¢®¤ª¨
mov ebx,17 shl 16+2 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,52 shl 16+84 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
mov edx,0xFA0919 ; 梥â-®¡¢®¤ª¨
mov ebx,17 shl 16+2 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
mov ecx,52 shl 16+84 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® y [ª-â  y]*65536 + [à §¬¥à]
int 0x40
mov edx,0x08CE19 ; 梥â-®¡¢®¤ª¨
add ebx,23 shl 16 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
mov edx,0x08CE19 ; 梥â-®¡¢®¤ª¨
add ebx,23 shl 16 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
int 0x40
mov edx,0x0909FF ; 梥â-®¡¢®¤ª¨
add ebx,23 shl 16 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
mov edx,0x0909FF ; 梥â-®¡¢®¤ª¨
add ebx,23 shl 16 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
int 0x40
mov edx,0xE4E4E4 ; 梥â-®¡¢®¤ª¨
add ebx,23 shl 16 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
mov edx,0xE4E4E4 ; 梥â-®¡¢®¤ª¨
add ebx,23 shl 16 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  y]*65536 + [à §¬¥à]
int 0x40
 
;.................................................................................................
; Žâà¨á®¢ª  ¯®«§ã­ª®¢
;.................................................................................................
mov edx,0x0 ; 梥â-¯®«§ã­ª®¢
mov ebx,17 shl 16+11 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
movzx eax,[cred] ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
mov edx,0x0 ; 梥â-¯®«§ã­ª®¢
mov ebx,17 shl 16+11 ;  ç «ì­ë¥ ª®®à¤¨­ âë ¯® x [ª-â  x]*65536 + [à §¬¥à]
movzx eax,[cred] ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
call draw_slider
add ebx,23 shl 16
movzx eax,[cgreen] ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
movzx eax,[cgreen] ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
call draw_slider
add ebx,23 shl 16
movzx eax,[cblue] ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
movzx eax,[cblue] ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
call draw_slider
add ebx,23 shl 16
movzx eax,[calpha] ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
movzx eax,[calpha] ; ¡¥à¥¬ §­ ç¥­¨¥ 梥â 
call draw_slider
 
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_draw_result
 
draw_slider:
xor ecx,ecx
mov cl,0x3 ; ¡ã¤¥¬ ¤¥«¨âì ¥£® ­  3 â ª ª ª ¯®«§ã­ª¨ ¤«¨­­®© 85 ¯¨ªá¥«¥©
div cl ; ¤¥«¨¬ - 楫®¥ ¢ al ®áâ â®ª ¢ ah
mov cl,136 ; ­¨¦­ïï â®çª  ¯®«§ã­ª 
sub cl,al ; cl=cl-al
mov cl,0x3 ; ¡ã¤¥¬ ¤¥«¨âì ¥£® ­  3 â ª ª ª ¯®«§ã­ª¨ ¤«¨­­®© 85 ¯¨ªá¥«¥©
div cl ; ¤¥«¨¬ - 楫®¥ ¢ al ®áâ â®ª ¢ ah
mov cl,136 ; ­¨¦­ïï â®çª  ¯®«§ã­ª 
sub cl,al ; cl=cl-al
shl ecx,16
add ecx,1 ; § ¤ ¥¬ ­ ç «ì­®¥ ¯®«®¦¥­¨¥
mov eax,13 ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
add ecx,1 ; § ¤ ¥¬ ­ ç «ì­®¥ ¯®«®¦¥­¨¥
mov eax,13 ; ”ã­ªæ¨ï 13 - ­ à¨á®¢ âì ¯àאַ㣮«ì­¨ª
int 0x40
push ebx ; á®å࠭塞 ¤«ï á«¥¤ãî饣® ¯®«§ã­ª  x+w
sub ebx,8 ; â ª ª ª è¨à¨­  «¨­¨¨ 11 â® ®â­¨¬ ¥¬ 8 çâ®¡ë ªã¡¨ª áâ « è¨à¨­®© 3
add ebx,8 shl 16 ; Š®®à¤¨­ âë ¯® x ¤«ï ª¢ ¤à â  ­  ¯®«§ã­ª¥ ᬥ頥¬ ­  8 ¢ ¯à ¢®
inc ecx ; ¡ë¤«®ª®¤¨¬ ¢ëá®âã ¯®«§ã­ª  ¤® 3-å (1+1=2)
inc ecx ; (2+1=3) ­ã ¢®â ã ­ á ¡ã¤¥â ªã¡¨ª 3å3 ­  8 ¢ ¯à ¢® ®â «¨­¨¨
int 0x40 ; à¨á㥬
pop ebx ; ¢®ááâ ­ ¢«¨¢ ¥¬ ­®à¬ «ì­ë¥ ª®®à¤¨­ âë
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
push ebx ; á®å࠭塞 ¤«ï á«¥¤ãî饣® ¯®«§ã­ª  x+w
sub ebx,8 ; â ª ª ª è¨à¨­  «¨­¨¨ 11 â® ®â­¨¬ ¥¬ 8 çâ®¡ë ªã¡¨ª áâ « è¨à¨­®© 3
add ebx,8 shl 16 ; Š®®à¤¨­ âë ¯® x ¤«ï ª¢ ¤à â  ­  ¯®«§ã­ª¥ ᬥ頥¬ ­  8 ¢ ¯à ¢®
inc ecx ; ¡ë¤«®ª®¤¨¬ ¢ëá®âã ¯®«§ã­ª  ¤® 3-å (1+1=2)
inc ecx ; (2+1=3) ­ã ¢®â ã ­ á ¡ã¤¥â ªã¡¨ª 3å3 ­  8 ¢ ¯à ¢® ®â «¨­¨¨
int 0x40 ; à¨á㥬
pop ebx ; ¢®ááâ ­ ¢«¨¢ ¥¬ ­®à¬ «ì­ë¥ ª®®à¤¨­ âë
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
 
;end_slider
 
994,13 → 1019,13
;.................................................................................................
; ‚뢮¤ ç¨á«  ¨§ áâப¨ ¢ 㪠§ ­­®© ®¡« áâ¨
;.................................................................................................
push ebx ; á®å࠭塞 ¯à¨á« ­­ë¥ ª®®à¤¨­ âë
mov ebx,10 ; ãáâ ­ ¢«¨¢ ¥¬ ®á­®¢ ­¨¥ á¨á⥬ë áç¨á«¥­¨ï
mov edi,buff ; 㪠§ â¥«ì ­  áâப㠡ãä¥à 
call int2ascii ; ª®­¢¥àâ¨à㥬 ç¨á«® ¨ «®¦¨¬ ª ª áâப㠢 ¡ãä¥à + esi ¤«¨­ 
mov eax,4 ; äã­ªæ¨ï 4: ­ ¯¨á âì ⥪áâ ¢ ®ª­¥
pop ebx ; ¤®áâ ¥¬ ¨§ á⥪  ¯à¨á« ­­ë¥ ª®®à¤¨­ âë
cmp esi,2 ; –…’ˆŽ‚€ˆ… ’…Š‘’€
push ebx ; á®å࠭塞 ¯à¨á« ­­ë¥ ª®®à¤¨­ âë
mov ebx,10 ; ãáâ ­ ¢«¨¢ ¥¬ ®á­®¢ ­¨¥ á¨á⥬ë áç¨á«¥­¨ï
mov edi,buff ; 㪠§ â¥«ì ­  áâப㠡ãä¥à 
call int2ascii ; ª®­¢¥àâ¨à㥬 ç¨á«® ¨ «®¦¨¬ ª ª áâப㠢 ¡ãä¥à + esi ¤«¨­ 
mov eax,4 ; äã­ªæ¨ï 4: ­ ¯¨á âì ⥪áâ ¢ ®ª­¥
pop ebx ; ¤®áâ ¥¬ ¨§ á⥪  ¯à¨á« ­­ë¥ ª®®à¤¨­ âë
cmp esi,2 ; –…’ˆŽ‚€ˆ… ’…Š‘’€
jne draw_value_1
add ebx,4 shl 16
jmp draw_value_e
1009,72 → 1034,96
jne draw_value_e
add ebx,7 shl 16
draw_value_e:
mov ecx,0x0 ; 梥â ⥪áâ  RRGGBB
mov edx,buff ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
mov ecx,0x0 ; 梥â ⥪áâ  RRGGBB
mov edx,buff ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
int 0x40
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_draw_value
 
_read_params:
mov [fi.p00], dword 0
mov [fi.p04], dword 0
mov [fi.p08], dword 0
mov [fi.p12], dword 6
mov [fi.p16], dword fi.file
mov [fi.p20], dword 0
mov [fi.p21], dword dat_file
mcall 70, fi
 
mov al,[params+2]
mov [params_c+0],al
xor eax, eax
mov al, [fi.file+2]
shl eax, 8
mov al, [fi.file+1]
shl eax, 8
mov al, [fi.file+0]
mov [color], eax
 
mov al,[params+3]
mov [params_c+1],al
xor eax, eax
mov al, [fi.file+5]
shl eax, 8
mov al, [fi.file+4]
shl eax, 8
mov al, [fi.file+3]
mov [color2], eax
 
mov al,[params+4]
mov [params_c+2],al
; 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
 
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:
1081,13 → 1130,13
;.................................................................................................
; à¥®¡à §®¢ ­¨¥ ¢ ASCII (¢­¥ § ¢¨á¨¬®á⨠®â á¨á⥬ë áç¨á«¥­¨ï)
;.................................................................................................
cmp dl,10 ; ¢ dl ®¦¨¤ ¥âáï ç¨á«® ®â 0 ¤® 15
jb .less ; ¥á«¨ dl<10 â® ¯¥à¥å®¤¨¬
add dl,'A'-10 ; 10->A 11->B 12->C ...
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
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 ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
or dl,'0' ; …᫨ á¨á⥬  áç¨á«¥­¨ï 10-ï ¨ ¬¥­¥¥
ret ; ‚®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_hex_digit
 
int2ascii:
1099,35 → 1148,35
; edi - 㪠§ â¥«ì ­  áâப㠡ãä¥à 
; ‚®§¢à é ¥â § ¯®«­¥­­ë© ¡ãä¥à ¨ esi - ¤«¨­  áâப¨
;pushad
xor esi,esi ; § ­ã«ï¥¬ áç¥â稪 ᨬ¢®«®¢
xor esi,esi ; § ­ã«ï¥¬ áç¥â稪 ᨬ¢®«®¢
convert_loop:
xor edx,edx ; § ­ã«ï¥¬ ॣ¨áâà ¯®¤ ®áâ â®ª
div ebx ; eax/ebx - ®áâ â®ª ¢ edx
call hex_digit ; ¯à¥®¡à §ã¥¬ ᨬ¢®«
push edx ; «®¦¨¬ ¢ á⥪
inc esi ; 㢥«¨ç¨¢ ¥¬ áç¥â稪
test eax,eax ; ¥á«¨ ¥é¥ ¬®¦­® ¤¥«¨âì
jnz convert_loop ; â® ¤¥«¨¥¬ ¥é¥
cld ; ŽŸ‡€’…‹œŽ á¡à á뢠¥¬ ä« £ ­ ¯à ¢«¥­¨ï DF (§ ¯¨áì ¢¯¥àñ¤)
write_loop: ; ¨­ ç¥
pop eax ; ¤®áâ ¥¬ ¨§ á⥪  ¢ ¥ å
stosb ; § ¯¨á뢠¥¬ ¢ ¡ãä¥à ¯®  ¤à¥áã ES:(E)DI
dec esi ; 㬥­ìè ¥¬ áç¥â稪
test esi,esi ; ¥á«¨ ¥áâì çâ® ¤®áâ ¢ âì ¨§ á⥪ 
jnz write_loop ; â® ¤®áâ ñ¬
mov byte [edi],0 ; ¨­ ç¥ ¤®¯¨áë뢠¥¬ ­ã«¥¢®© ¡ ©â
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 ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
mov edi,buff ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
call str_len
mov esi,eax
ret ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥­¨¥
ret ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_int2ascii
 
char2byte:
sub al,'0'
cmp al,10
jb done
jb done
add al,'0'
and al,0x5f
sub al,'A'-10
1180,7 → 1229,7
mov [cred],cl
shr ecx,8
mov [calpha],cl
ret ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥­¨¥
ret ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_get_spectr
 
set_spectr:
1195,8 → 1244,8
shl eax,8
mov al,[cblue]
mov [color],eax
call draw_result ; ‚뢮¤¨¬ १ã«ìâ â
ret ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥­¨¥
call draw_result ; ‚뢮¤¨¬ १ã«ìâ â
ret ; ¨ ¢®§¢à é ¥¬ ã¯à ¢«¥­¨¥
;end_get_spectr
 
str_len:
1230,34 → 1279,52
; ‹ŽŠ ……Œ…›• ˆ ŠŽ‘’€’ |
;----------------------------------------------------------------------------------------------------/
circle:
cm db 12 dup(0)
color dd 00000000h ; åà ­¨â §­ ç¥­¨¥ ¢ë¡à ­­®£® 梥â 
color2 dd 00FFFFFFh ; åà ­¨â §­ ç¥­¨¥ ¢â®à®£® ¢ë¡à ­­®£® 梥â 
mouse_x dd 0 ; åà ­¨â £«®¡ «ì­ãî å ª®®à¤¨­ âã ¬ëè¨
mouse_y dd 0 ; åà ­¨â £«®¡ «ì­ãî ã ª®®à¤¨­ âã ¬ëè¨
mouse_f dd 0 ; åà ­¨â ¤ ­­ë¥ ® ⮬ ª ª ï ª­®¯ª  ¬ëè¨ ¡ë«  ­ ¦ â 
desctop_w dd 0 ; åà ­¨â è¨à¨­ã íªà ­ 
desctop_h dd 0 ; åà ­¨â ¢ëá®âã íªà ­ 
sc system_colors ; åà ­¨â áâàãªâãàã á¨á⥬­ëå 梥⮢ ᪨­ 
title db 'Palitra v0.75',0 ; åà ­¨â ¨¬ï ¯à®£à ¬¬ë
hidden db 'Hidden',0
hex db '#',0 ; ¤«ï ¢ë¢®¤  à¥èñ⪨ ª ª ⥪áâ 
cname db 'RGBAx' ; åà ­¨â à §àï¤ë 梥⮢ (red,green,blue) x-¬¥âª  ª®­æ 
cred db 0 ; åà ­¨¬ ªà á­ë© ᯥªàâ
cgreen db 0 ; åà ­¨¬ §¥«¥­ë© ᯥªâà
cblue db 0 ; åà ­¨¬ ᨭ¨© ᯥªâà
calpha db 0 ; åà ­¨¬ ¯à®§à ç­®áâì
larrow db 0x1A,0
buff db '000',0
bground db 'BACKGROUND',0 ; ¨¬ï ª­®¯ª¨ - 14
pnext dd 0 ; áç¥â稪 ¯¥à¥ª«î祭¨ï ¯ «¨âàë
renmode dd 0 ; ०¨¬ ®âà¨á®¢ª¨ (1-梥⮢ ï á奬 ,2-¯¨¯¥âª ,3-ªà㣮¢ ï)
runmode dd 1 ; ०¨¬ § ¯ã᪠ (1-normal, 2-hidden, 3-colordialog)
params db 20 dup(0) ; ¯à¨ñ¬ ¯ à ¬¥â஢
params_c db 9 dup(0) ; ¯à¨ñ¬­¨ª ¤«ï 梥â 
dat_file db '/sys/settings/wallpaper.dat', 0
 
cm db 12 dup(0)
color dd 00000000h ; åà ­¨â §­ ç¥­¨¥ ¢ë¡à ­­®£® 梥â 
color2 dd 00FFFFFFh ; åà ­¨â §­ ç¥­¨¥ ¢â®à®£® ¢ë¡à ­­®£® 梥â 
mouse_x dd 0 ; åà ­¨â £«®¡ «ì­ãî å ª®®à¤¨­ âã ¬ëè¨
mouse_y dd 0 ; åà ­¨â £«®¡ «ì­ãî ã ª®®à¤¨­ âã ¬ëè¨
mouse_f dd 0 ; åà ­¨â ¤ ­­ë¥ ® ⮬ ª ª ï ª­®¯ª  ¬ëè¨ ¡ë«  ­ ¦ â 
desctop_w dd 0 ; åà ­¨â è¨à¨­ã íªà ­ 
desctop_h dd 0 ; åà ­¨â ¢ëá®âã íªà ­ 
sc system_colors ; åà ­¨â áâàãªâãàã á¨á⥬­ëå 梥⮢ ᪨­ 
title db 'Palitra v0.75',0 ; åà ­¨â ¨¬ï ¯à®£à ¬¬ë
hidden db 'Hidden',0
hex db '#',0 ; ¤«ï ¢ë¢®¤  à¥èñ⪨ ª ª ⥪áâ 
cname db 'RGBAx' ; åà ­¨â à §àï¤ë 梥⮢ (red,green,blue) x-¬¥âª  ª®­æ 
cred db 0 ; åà ­¨¬ ªà á­ë© ᯥªàâ
cgreen db 0 ; åà ­¨¬ §¥«¥­ë© ᯥªâà
cblue db 0 ; åà ­¨¬ ᨭ¨© ᯥªâà
calpha db 0 ; åà ­¨¬ ¯à®§à ç­®áâì
larrow db 0x1A,0
buff db '000',0
bground db 'BACKGROUND',0 ; ¨¬ï ª­®¯ª¨ - 14
pnext dd 0 ; áç¥â稪 ¯¥à¥ª«î祭¨ï ¯ «¨âàë
renmode dd 0 ; ०¨¬ ®âà¨á®¢ª¨ (1-梥⮢ ï á奬 ,2-¯¨¯¥âª ,3-ªà㣮¢ ï)
runmode dd 1 ; ०¨¬ § ¯ã᪠ (1-normal, 2-hidden, 3-colordialog)
params db 20 dup(0) ; ¯à¨ñ¬ ¯ à ¬¥â஢
; params_c db 9 dup(0) ; ¯à¨ñ¬­¨ª ¤«ï 梥â 
I_END:
 
 
I_END:
fi:
.p00:
rd 1
.p04:
rd 1
.p08:
rd 1
.p12:
rd 1
.p16:
rd 1
.p20:
rb 1
.p21:
rd 1
.file:
rb 32
 
 
I_RDATA:
/programs/media/palitra/trunk/readme.txt
21,11 → 21,7
 
$ § ¯ãáª á ¯ à ¬¥â஬ H
------------------------------------------------------------------------------+
à®£à ¬¬  § ¯ã᪠¥âáï ¢ hidden mode ¡¥§ ®âà¨á®¢ª¨ ®ª­  ¯à¨«®¦¥­¨ï ¨ ¢ ª ç¥á⢥
¯¥à¥¤ ¢ ¥¬ëå ¯ à ¬¥â஢ âॡã¥â ¯¥à¥¤ çã ¤¢ãå 梥⮢ ¢ ¢¨¤¥ HEX áâப¨. ®á«¥
祣®, ¯®«ã祭­ë¥ æ¢¥â  ¡ã¤ã⠨ᯮ«ì§®¢ ­ë ¤«ï § «¨¢ª¨ ä®­  à ¡®ç¥£® á⮫  £à -
¤¨¥­â®¬ ¨§ 㪠§ ­­ëå 梥⮢.  ¯à¨¬¥à ¢®§¬®¦­ë ¢ à¨ ­âë § ¯ã᪠:
 
/rd/1/media/palitra H 00FF00FF 00FF0000
/rd/1/media/palitra H 00F724A3 00736698
à®£à ¬¬  § ¯ã᪠¥âáï ¢ hidden mode ¡¥§ ®âà¨á®¢ª¨ ®ª­  ¯à¨«®¦¥­¨ï ¨ § £à㦠¥â
¤¢  æ¢¥â  ¨§ /settings/wallpaper.dat. ®á«¥ 祣®, ¯®«ã祭­ë¥ æ¢¥â  ¡ã¤ãâ
¨á¯®«ì§®¢ ­ë ¤«ï § «¨¢ª¨ ä®­  à ¡®ç¥£® á⮫  £à ¤¨¥­â®¬ ¨§ 㪠§ ­­ëå 梥⮢.
..............................................................................+