1
0
kolibrios/programs/media/mv/trunk/mv.asm

1177 lines
21 KiB
NASM
Raw Normal View History

; Picture browser by lisovin@26.ru
; Modified by Ivan Poddubny - v.0.3
; Modified by Diamond - v.0.4
; Modified by Mario79:
; v.0.5 18.07.08 Dinamic Allocation Memory
; v.0.6 20.07.08
; 1) Use Editbox (Author <Lrz>)
; 2) Draw window without fill working area (C = 1)
; 3) Open file with parameter in patch:
; Size of parameter - 4 bytes. Parameter starts with the
; character "\", the unused characters are filled
; by a blank (ASCII 20h).
; '\T /hd0/1/1.bmp' - set background, mode: tile
; '\S /hd0/1/1.bmp' - set background, mode: stretch
; v.0.65 23.07.08
; 1) Use new version Editbox (Thanks <Lrz>)
; (mouse correctly works in secondary thread)
; 2) The memory used for storage of the file BMP
; after conversion in RAW comes back to OS.
; 3) Usage of keys 1,2,3,4 for call of buttons of the application
; without the mouse, before the key were defined incorrectly.
; 4) Deleting of the unnecessary procedure of clearing of
; a background of a picture at pressing the button "Open".
; Compile with FASM for Menuet
;******************************************************************************
use32
org 0x0
db 'MENUET01' ; 8 byte id
dd 0x01 ; header version
dd START ; start of code
dd IM_END ; size of image
dd I_END ; memory for app
dd I_END ; esp
dd temp_area , 0x0 ; I_Param , I_Icon
include 'lang.inc'
include '..\..\..\macros.inc'
include '..\..\..\develop\examples\editbox\trunk\editbox.inc'
;include 'macros.inc'
;include 'EDITBOX.INC'
use_edit_box
;******************************************************************************
START: ; start of execution
mcall 68, 11
mcall 66, 1,1
; check for parameters
cmp dword [temp_area],'BOOT'
jne .no_boot
.background:
call load_image
call convert
call background
.exit:
or eax,-1
mcall
.no_boot:
cmp byte [temp_area],0
jz .no_param
mov edi,string ; clear string
mov ecx,256/4 ; length of a string
xor eax,eax ; symbol <0>
rep stosd
mov edi,temp_area ; look for <0> in temp_area
cmp [edi],byte "\"
jne .continue
cmp [edi+1],byte "T"
jne @f
mov [bgrmode],dword 1
jmp .continue_1
@@:
cmp [edi+1],byte "S"
jne START.exit
mov [bgrmode],dword 2
.continue_1:
add edi,4
.continue:
mov esi,edi
mov ecx,257 ; strlen
repne scasb
lea ecx, [edi-temp_area]
mov edi,string
rep movsb ; copy string from temp_area to "string" (filename)
cmp [temp_area],byte "\"
je START.background
call load_image
call convert
.no_param:
or ecx,-1 ; get information about me
call getappinfo
mov edx,[process_info+30] ; ⥯<><E2A5AF><EFBFBD> <20> edx <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD>
mov ecx,eax
@@:
call getappinfo
cmp edx,[process_info+30]
je @f ; <20><20><><EFBFBD> PID ᮢ<><E1AEA2><EFBFBD> <20> PID <20><><EFBFBD><EFBFBD><EFBFBD><E0A8A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><>諨 ᥡ<>
dec ecx ; <20><><EFBFBD><EFBFBD><EFBFBD><>ਬ ᫥<><E1ABA5><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jne @b ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A0A5><EFBFBD>, <20><20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
@@:
; ⥯<><E2A5AF><EFBFBD> <20> ecx <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov [process],ecx
draw_still:
call draw_window
still:
mov eax,10 ; wait here for event
mcall
dec eax
jz red
dec eax
jnz button
key: ; key
mov al,2
mcall
mov al,ah
cmp al,130 ; 1
je kfile
cmp al,131 ; 2
je kopen
cmp al,132 ; 3
je kinfo
cmp al,133 ; 4
je kbgrd
jmp still
red:
test byte [status], 4
jz draw_still
mov al, 18
mov ebx, 3
mov ecx, [process]
mcall
and byte [status], not 4
jmp still
button: ; button
mov eax,17 ; get id
mcall
cmp ah,1 ; button id=1 ?
jne noclose
mov eax,-1 ; close this program
mcall
noclose:
cmp ah,2
jne nofile
kfile:
test byte [status], 1
jnz still
or byte [status], 1
mov eax,51
mov ebx,1
mov ecx,thread1
mov edx,thread ;0x29fff0
mcall
jmp still
nofile:
cmp ah,3
jne noopen
kopen:
mov ecx,-1
call getappinfo
call load_image
open1:
mov eax,[image_file]
cmp [eax],word 'BM'
jne still
call convert
jmp draw_still
noopen:
cmp ah,4
jne noinfo
kinfo:
test byte [status], 2
jnz still
or byte [status], 2
mov eax,51
mov ebx,1
mov ecx,thread2
mov edx,thread-512
mcall
jmp still
noinfo:
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
cmp ah,5
jne still
kbgrd:
test byte [status], 8
jnz still
or byte [status], 8
mov eax,51
mov ebx,1
mov ecx,thread3
mov edx,thread-512*2
mcall
jmp still
;call background
getappinfo:
mov eax,9
mov ebx,process_info
mcall
ret
load_image:
mov [fileinfo+0],dword 5
mov [fileinfo+12],dword 0
mov [fileinfo+16],dword process_info
cmp [image_file],0
je @f
mov ecx,[image_file]
mcall 68, 13,
@@:
mcall 70, fileinfo
mov [fileinfo+0],dword 0
mov [fileinfo+12],dword 512
mov [fileinfo+16],dword process_info+40
mcall 70, fileinfo
mov ecx,[process_info+32]
mov [fileinfo+12],ecx
mcall 68, 12
mov [fileinfo+16],eax
mov [image_file_1],eax
mov eax,[process_info+40+28]
cmp eax, 24
jz .convert24
cmp eax, 8
jz .convert8
cmp eax, 4
jz .convert4
shl ecx,2
.convert4:
shl ecx,1
.convert8:
lea ecx,[ecx*3]
.convert24:
;@@:
add ecx,512
mcall 68, 12
mov [image_file],eax
mcall 70, fileinfo
mov esi,[image_file_1]
mov edi,[image_file]
mov ecx,512/4
cld
rep movsd
mov eax,[image_file]
mov ebx,[eax+22]
mov eax,[eax+18]
test ebx, ebx
jns @f
neg ebx
@@:
add eax,9
cmp eax,210
jae @f
mov eax,210
@@:
add ebx,54
cmp ebx,56
jae @f
mov ebx,56
@@:
mov [wnd_width],eax
mov [wnd_height],ebx
test [bWasDraw],1
jz @f
mov esi,ebx
mov edx,eax
mcall 67,-1,-1
@@:
ret
drawimage:
mov eax,[image_file]
cmp [eax],word 'BM'
jne nodrawimage
mov ecx, dword [eax+18-2]
mov cx, [eax+22]
test cx, cx
jns @f
neg cx
@@:
mov edx,5*65536+50
mcall 7,[soi]
nodrawimage:
ret
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
background:
mov eax,[image_file]
cmp [eax],word 'BM'
jne @f
mov ecx,[eax+18] ; <20><><EFBFBD>
mov edx,[eax+22] ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mcall 15,1
mov esi, ecx
imul esi, edx
lea esi, [esi+esi*2]
mov ebx,5
mov ecx,[soi]
xor edx,edx
;;; mov esi, ;640*480*3
mcall
dec ebx ;tile/stretch
mov ecx,dword [bgrmode]
mcall
dec ebx
mcall
@@:
ret
convert:
call convert_1
mov ecx,[image_file_1]
mcall 68, 13,
ret
convert_1:
mov ecx, [image_file]
add ecx,512
mov [soi], ecx
mov eax,[image_file_1]
mov ebp, [eax+18]
lea ebp, [ebp*3] ; ebp = size of output scanline
mov eax, [eax+22]
dec eax
mul ebp
add eax, ecx
mov edi, eax ; edi points to last scanline
mov esi, [image_file_1]
add esi, [esi+10]
mov ebx,[image_file_1]
mov edx, [ebx+22]
add ebx,54
lea eax, [ebp*2]
mov [delta], eax
test edx, edx
jz .ret
jns @f
neg edx
and [delta], 0
mov edi, ecx
@@:
mov eax,[image_file_1]
movzx eax,word [eax+28]
cmp eax, 24
jz convert24
cmp eax, 8
jz convert8
cmp eax, 4
jz convert4
dec eax
jz convert1
.ret:
ret
convert24:
mov ecx, ebp
rep movsb
sub edi, [delta]
mov eax, ebp
neg eax
and eax, 3
add esi, eax
dec edx
jnz convert24
ret
convert8:
push edi
add [esp], ebp
.loopi:
xor eax, eax
lodsb
push eax
mov eax,[image_file_1]
cmp dword [eax+30],1
pop eax
jnz .nocompressed
.compressed:
mov ecx, eax
jecxz .special
lodsb
mov eax, [ebx+eax*4]
@@:
call putpixel
loop @b
jmp .loopi
.nocompressed:
mov eax, [ebx+eax*4]
call putpixel
.loopicont:
cmp edi, [esp]
jnz .loopi
.next:
pop edi
sub edi, [delta]
mov eax, ebp
and eax, 3
add esi, eax
dec edx
jnz convert8
ret
.special:
lodsb
test al, al
jz .next
cmp al, 2
jbe .end
mov ecx, eax
push ecx
@@:
xor eax, eax
lodsb
mov eax, [ebx+eax*4]
call putpixel
loop @b
pop ecx
and ecx, 1
add esi, ecx
jmp .loopi
.end:
pop edi
ret
convert4:
push edi
add [esp], ebp
.loopi:
xor eax, eax
lodsb
shr eax, 4
mov eax, [ebx+eax*4]
call putpixel
cmp edi, [esp]
jz .loopidone
mov al, [esi-1]
and eax, 0xF
mov eax, [ebx+eax*4]
stosd
dec edi
cmp edi, [esp]
jnz .loopi
.loopidone:
pop edi
sub edi, [delta]
call align_input
dec edx
jnz convert4
ret
convert1:
push edi
add [esp], ebp
.loopi:
lodsb
mov ecx, 8
.loopii:
add al, al
push eax
setc al
movzx eax, al
mov eax, [ebx+eax*4]
call putpixel
pop eax
cmp edi, [esp]
loopnz .loopii
jnz .loopi
pop edi
sub edi, [delta]
call align_input
dec edx
jnz convert1
ret
align_input:
push esi
push eax
mov eax,[image_file_1]
sub esi,eax
sub esi,[eax+10]
pop eax
neg esi
and esi, 3
add [esp], esi
pop esi
ret
putpixel:
push eax
stosw
shr eax, 16
stosb
pop eax
ret
;---------------------------------------------------------------------
get_window_param:
mcall 9, procinfo, -1
mov eax,[ebx+46]
mov [window_high],eax
mov eax,[ebx+42]
mov [window_width],eax
mcall 48,4
mov [skin_high],eax
ret
;---------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
draw_window:
or [bWasDraw],1
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
; mov ebx,350 ; [x start] *65536 + [x size]
; mov ecx,400 ; [y start] *65536 + [y size]
mov ebx,0*65536
mov ecx,0*65536
add ebx,[wnd_width]
add ecx,[wnd_height]
cmp cx,55
ja @f
mov cx,55
@@:
mov edx,0x43ffffff ; color of work area RRGGBB,8->color gl
mcall
call get_window_param
mov ebx,5
shl ebx,16
add ebx,[window_width]
sub ebx,9
push ebx
mov ecx,[skin_high]
shl ecx,16
add ecx,50
sub ecx,[skin_high]
mcall 13, , ,0xffffff
mov eax,[image_file]
mov ecx,[eax+22]
mov ebx,[eax+18]
push ecx
add ebx,5
mov ax,bx
shl ebx,16
add ebx,[window_width]
sub ebx,4
sub bx,ax
cmp bx,0
jbe @f
add ecx,50 shl 16
mcall 13, , ,0xffffff
@@:
pop ecx
pop ebx
add ecx,50
mov ax,cx
shl ecx,16
add ecx,[window_high]
sub cx,ax
sub ecx,4
cmp cx,0
jbe @f
mcall 13, , ,0xffffff
@@:
mov eax,8
mov ebx,10*65536+46
mov ecx,25*65536+20
mov edx,2
mov esi,0x780078
newbutton:
mcall
add ebx,48*65536
inc edx
cmp edx,6
jb newbutton
; WINDOW LABEL
mov eax,4 ; function 4 : write text to window
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB )
mov edx,labelt ; pointer to text beginning
mov esi,12 ; text length
mcall
mov ebx,14*65536+32
mov edx,buttext
mov esi,26
mcall
call drawimage
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
mcall
ret
; DATA AREA
labelt:
db 'MeView v.0.4'
lsz buttext,\
en, ' FILE OPEN INFO BGRD',\
ru, ' <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> ',\
de, 'DATEI OEFNEN INFO HGRD'
thread1: ; start of thread1
mcall 40, 0x27
or ecx,-1 ; get information about me
call getappinfo
mov esi,string
@@:
cld
lodsb
test al,al
jne @r
sub esi,string
mov eax,esi
dec eax
mov edi, edit1
mov ed_size, eax
mov ed_pos, eax
red1:
call draw_window1
still1:
mcall 10 ; wait here for event
cmp eax,1 ; redraw request ?
je red1
cmp eax,2 ; key in buffer ?
je key1
cmp eax,3 ; button in buffer ?
je button1
mouse_edit_box name_editboxes
jmp still1
key1: ; key
mcall 2
cmp ah,13
je close1
cmp ah,27
je close1
key_edit_box name_editboxes
jmp still1
button1: ; button
mov eax,17 ; get id
mcall
cmp ah,1 ; button id=1 ?
jne still1
close1:
bts dword [status],2
btr dword [status],0
mov eax,-1 ; close this program
mcall
jmp still1
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
draw_window1:
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+300 ; [x start] *65536 + [x size]
mov ecx,100*65536+80 ; [y start] *65536 + [y size]
mov edx,0x03780078 ; color of work area RRGGBB,8->color gl
mcall
; WINDOW LABEL
mov eax,4 ; function 4 : write text to window
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB )
mov edx,labelt1 ; pointer to text beginning
mov esi,labelt1.size ; text length
mcall
; call drawstring
draw_edit_box name_editboxes
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
mcall
ret
drawstring:
pusha
mov eax,8 ;invisible button
mov ebx,21*65536+258
mov ecx,40*65536+15
mov edx,0x60000002
mcall
mov eax,13 ;bar
mov edx,0xe0e0e0
mcall
push eax ;cursor
mov eax,6*65536
mul dword [pos]
add eax,21*65536+6
mov ebx,eax
pop eax
mov edx,0x6a73d0
mcall
mov eax,4 ;path
mov ebx,21*65536+44
xor ecx,ecx
mov edx,string
mov esi,43
mcall
popa
ret
; DATA AREA
lsz labelt1,\
en, 'File',\
ru, '<27><><EFBFBD><EFBFBD>',\
de, 'Datei'
thread2: ; start of info thread
call draw_window2
still2:
mov eax,10 ; wait here for event
mcall
cmp eax,1 ; redraw request ?
je thread2
cmp eax,2 ; key in buffer ?
je close2
cmp eax,3 ; button in buffer ?
je button2
jmp still2
button2: ; button
mov eax,17 ; get id
mcall
cmp ah,1 ; button id=1 ?
jne noclose2
close2:
btr dword [status],1
bts dword [status],2
mov eax,-1 ; close this program
mcall
noclose2:
jmp still2
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
draw_window2:
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+330 ; [x start] *65536 + [x size]
mov ecx,100*65536+90 ; [y start] *65536 + [y size]
mov edx,0x03780078 ; color of work area RRGGBB,8->color gl
mcall
; WINDOW LABEL
mov eax,4 ; function 4 : write text to window
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB )
mov edx,labelt2 ; pointer to text beginning
mov esi,labelt2.size ; text length
mcall
mov ebx,10*65536+30
mov edx,string
mov esi,43
mcall
mov edx,fitext
mov esi,14
add ebx,70*65536+10
followstring:
mcall
add ebx,10
add edx,esi
cmp ebx,80*65536+70
jbe followstring
mov eax,47
mov edx,200*65536+40
mov esi,ecx
mov ecx,[image_file]
push ecx
mov ecx, [ecx+2]
call digitcorrect
mcall
add edx,10
pop ecx
push ecx
mov ecx, [ecx+18]
call digitcorrect
mcall
add edx,10
pop ecx
push ecx
mov ecx, [ecx+22]
call digitcorrect
mcall
add edx,10
pop ecx
movzx ecx,word [ecx+28]
call digitcorrect
mcall
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
mcall
ret
digitcorrect:
xor ebx,ebx
mov bh,6
cmp ecx,99999
ja c_end
dec bh
cmp ecx,9999
ja c_end
dec bh
cmp ecx,999
ja c_end
dec bh
cmp ecx,99
ja c_end
dec bh
cmp ecx,9
ja c_end
dec bh
c_end:
bswap ebx
ret
; DATA AREA
lsz labelt2,\
en, 'File info',\
ru, '<27><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD> <20><><E4A0A9>',\
de, 'Dateiinfo'
lsz fitext,\
en, 'FILE SIZE ',\
en, 'X SIZE ',\
en, 'Y SIZE ',\
en, 'BITS PER PIXEL',\
\
ru, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> ',\
ru, '<27><><EFBFBD> ',\
ru, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ',\
ru, '<27><><EFBFBD> <20><> <20><><EFBFBD>ᥫ ',\
\
de, 'FATEIGROESSE ',\
de, 'X GROESSE ',\
de, 'Y GROESSE ',\
de, 'BITS PER PIXEL'
thread3: ; start of bgrd thread
call draw_window3
still3:
mov eax,10 ; wait here for event
mcall
cmp eax,1 ; redraw request ?
je thread3
cmp eax,2 ; key in buffer ?
je key3
cmp eax,3 ; button in buffer ?
je button3
jmp still3
key3:
mcall
cmp ah,27
je close3
cmp ah,13
je kok
cmp ah,178 ;up
jne nofup
cmp dword [bgrmode],1
je fdn
fup:
dec dword [bgrmode]
jmp flagcont
nofup:
cmp ah,177 ;down
jne still3
cmp dword [bgrmode],2
je fup
fdn:
inc dword [bgrmode]
jmp flagcont
button3: ; button
mov eax,17 ; get id
mcall
cmp ah,1 ; button id=1 ?
jne noclose3
close3:
btr dword [status],3
bts dword [status],2
mov eax,-1 ; close this program
mcall
noclose3:
cmp ah,4
jne nook
kok:
call background
jmp close3
nook:
cmp ah,2
jb still3
cmp ah,3
ja still3
dec ah
mov byte [bgrmode],ah
flagcont:
call drawflags
jmp still3
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
draw_window3:
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
mov ebx,100*65536+200 ; [x start] *65536 + [x size]
mov ecx,100*65536+100 ; [y start] *65536 + [y size]
mov edx,0x03780078 ; color of work area RRGGBB,8->color gl
mcall
mov eax,8
mov ebx,70*65536+40
mov ecx,70*65536+20
mov edx,4
mov esi,0xac0000
mcall
; WINDOW LABEL
mov eax,4 ; function 4 : write text to window
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
mov ecx,0x10ddeeff ; font 1 & color ( 0xF0RRGGBB )
mov edx,labelt3 ; pointer to text beginning
mov esi,labelt3.size ; text length
mcall
add ebx,38*65536+20
mov ecx,0xddeeff
mov edx, bgrdtext
mov esi, bgrdtext.size
mcall
add ebx,40*65536+15
mov edx, tiled
mov esi, tiled.size
mcall
add ebx,15
mov edx, stretch
mov esi, stretch.size ;7
mcall
add ebx,18
mov edx, ok_btn
mov esi, ok_btn.size ;2
mcall
call drawflags
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
mcall
ret
drawflags:
mov eax,8
mov ebx,70*65536+10
mov ecx,40*65536+10
mov edx,2
mov esi,0xe0e0e0
mcall
add ecx,15*65536
inc edx
mcall
mov eax,4
mov ebx,73*65536+42
xor ecx,ecx
mov edx,vflag
mov esi,1
cmp dword [bgrmode],1
je nodownflag
add ebx,15
nodownflag:
mcall
ret
; DATA AREA
status dd 0 ;bit0=1 if file thread is created
soi dd 0
delta dd 0
process dd 0
bWasDraw db 0
vflag: db 'x'
bgrmode: dd 1
wnd_width dd 210
wnd_height dd 53
lsz labelt3,\
en, 'Background set',\
ru, "<22><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><>",\
de, 'Hintergrund gesetzt'
lsz bgrdtext,\
en, 'SET AS BACKGROUND:',\
ru, '<27><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>:',\
de, 'ALS HINTERGRUND'
lsz tiled,\
en, 'TILED',\
ru, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
de, 'GEKACHELT'
lsz stretch,\
en, 'STRETCH',\
ru, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
de, 'GESTRECKT'
lsz ok_btn,\
en, 'Ok',\
ru, 'Ok',\
de, 'Ok'
image_file dd 0
image_file_1 dd 0
pos: dd 6
window_high dd 0
window_width dd 0
skin_high dd 0
;---------------------------------------------------------------------
; for EDITBOX
name_editboxes:
edit1 edit_box 200,10,30,0xffffff,0xbbddff,0,0,0,255,string,ed_focus+ed_always_focus,0
name_editboxes_end:
mouse_flag: dd 0x0
;---------------------------------------------------------------------
fileinfo:
dd 5
dd 0
dd 0
dd 0
dd process_info
string:
db '/sys/bgr.bmp',0
IM_END:
rb string+257-$
temp_area:
procinfo:
process_info:
rb 1024*4
rb 1024*2
thread:
rb 512
I_END: