7,10 → 7,20 |
; 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.jpg' - set background, mode: tile |
; '\S /hd0/1/1.jpg' - set background, mode: stretch |
; 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 |
|
;****************************************************************************** |
20,19 → 30,21 |
dd 0x01 ; header version |
dd START ; start of code |
dd IM_END ; size of image |
dd I_END ;0x300000 ; memory for app |
dd I_END ;0x300000 ; esp |
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 procinfo |
;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 |
120,13 → 132,13 |
mov al,2 |
mcall |
mov al,ah |
cmp al,6 |
cmp al,130 ; 1 |
je kfile |
cmp al,15 |
cmp al,131 ; 2 |
je kopen |
cmp al,9 |
cmp al,132 ; 3 |
je kinfo |
cmp al,2 |
cmp al,133 ; 4 |
je kbgrd |
jmp still |
|
169,14 → 181,6 |
kopen: |
mov ecx,-1 |
call getappinfo |
mov eax,[image_file] |
mov ebx,dword [eax+42] |
mov ecx,dword [eax+46] |
add ebx,10*65536-15 |
add ecx,50*65536-55 |
mov edx,0xffffff |
mov eax,13 |
mcall |
|
call load_image |
|
185,8 → 189,7 |
cmp [eax],word 'BM' |
jne still |
call convert |
call drawimage |
jmp still |
jmp draw_still |
noopen: |
|
cmp ah,4 |
198,7 → 201,7 |
mov eax,51 |
mov ebx,1 |
mov ecx,thread2 |
mov edx,thread-512 ;0x2afff0 |
mov edx,thread-512 |
mcall |
jmp still |
noinfo: |
213,7 → 216,7 |
mov eax,51 |
mov ebx,1 |
mov ecx,thread3 |
mov edx,thread-512*2 ;0x2bfff0 |
mov edx,thread-512*2 |
mcall |
jmp still |
;call background |
248,6 → 251,12 |
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 |
262,17 → 271,22 |
.convert8: |
lea ecx,[ecx*3] |
.convert24: |
shl ecx,1 |
@@: |
|
;@@: |
|
add ecx,512 |
mcall 68, 12 |
|
|
mov [fileinfo+16],eax |
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] |
280,12 → 294,12 |
jns @f |
neg ebx |
@@: |
add eax,9 ;20 |
add eax,9 |
cmp eax,210 |
jae @f |
mov eax,210 |
@@: |
add ebx,54 ;58 |
add ebx,54 |
cmp ebx,56 |
jae @f |
mov ebx,56 |
344,10 → 358,15 |
ret |
|
convert: |
mov ecx, [image_file] ;I_END |
add ecx, [ecx+2] |
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] |
mov eax,[image_file_1] |
mov ebp, [eax+18] |
lea ebp, [ebp*3] ; ebp = size of output scanline |
mov eax, [eax+22] |
355,10 → 374,9 |
mul ebp |
add eax, ecx |
mov edi, eax ; edi points to last scanline |
mov esi, [image_file] ;I_END |
mov esi, [image_file_1] |
add esi, [esi+10] |
; mov ebx, I_END+54 |
mov ebx,[image_file] |
mov ebx,[image_file_1] |
mov edx, [ebx+22] |
add ebx,54 |
lea eax, [ebp*2] |
370,8 → 388,7 |
and [delta], 0 |
mov edi, ecx |
@@: |
; movzx eax, word [I_END+28] |
mov eax,[image_file] |
mov eax,[image_file_1] |
movzx eax,word [eax+28] |
cmp eax, 24 |
jz convert24 |
400,9 → 417,8 |
.loopi: |
xor eax, eax |
lodsb |
; cmp dword [I_END+30], 1 |
push eax |
mov eax,[image_file] |
mov eax,[image_file_1] |
cmp dword [eax+30],1 |
pop eax |
jnz .nocompressed |
503,8 → 519,8 |
align_input: |
push esi |
push eax |
mov eax,[image_file] |
sub esi,eax ;I_END |
mov eax,[image_file_1] |
sub esi,eax |
sub esi,[eax+10] |
pop eax |
neg esi |
528,8 → 544,6 |
mov [window_high],eax |
mov eax,[ebx+42] |
mov [window_width],eax |
; mov eax,[ebx+70] |
; mov [window_status],eax |
mcall 48,4 |
mov [skin_high],eax |
ret |
555,6 → 569,10 |
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 |
|
581,7 → 599,7 |
sub ebx,4 |
sub bx,ax |
cmp bx,0 |
jb @f |
jbe @f |
add ecx,50 shl 16 |
mcall 13, , ,0xffffff |
@@: |
593,8 → 611,8 |
add ecx,[window_high] |
sub cx,ax |
sub ecx,4 |
cmp bx,0 |
jb @f |
cmp cx,0 |
jbe @f |
mcall 13, , ,0xffffff |
@@: |
mov eax,8 |
645,6 → 663,9 |
|
mcall 40, 0x27 |
|
or ecx,-1 ; get information about me |
call getappinfo |
|
mov esi,string |
@@: |
cld |
662,8 → 683,7 |
|
still1: |
|
mov eax,10 ; wait here for event |
mcall |
mcall 10 ; wait here for event |
|
cmp eax,1 ; redraw request ? |
je red1 |
671,6 → 691,7 |
je key1 |
cmp eax,3 ; button in buffer ? |
je button1 |
|
mouse_edit_box name_editboxes |
jmp still1 |
|
680,6 → 701,7 |
je close1 |
cmp ah,27 |
je close1 |
|
key_edit_box name_editboxes |
jmp still1 |
|
1117,7 → 1139,7 |
de, 'Ok' |
|
image_file dd 0 |
;image_file_size dd 0 |
image_file_1 dd 0 |
|
pos: dd 6 |
|
1136,8 → 1158,8 |
dd 5 |
dd 0 |
dd 0 |
dd 0 ;x290000-I_END |
dd process_info ;I_END |
dd 0 |
dd process_info |
string: |
db '/sys/bgr.bmp',0 |
|
1149,7 → 1171,6 |
process_info: |
rb 1024*4 |
rb 1024*2 |
;rb 0x10000 |
thread: |
rb 512 |
I_END: |