/programs/media/animage/trunk/animage.asm |
---|
43,7 → 43,6 |
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
COLOR_ORDER equ MENUETOS |
include 'bmplib.inc' |
include 'dialog2.inc' |
include 'design.inc' |
50,7 → 49,7 |
include 'graphlib.inc' |
include 'cursors.inc' |
include 'memory.inc' |
include 'load_from_parameters.inc' |
START: |
159,7 → 158,6 |
include 'palette.inc' |
include 'files.inc' |
include 'time.inc' |
include 'memory.inc' |
;----------------------------------------------------------- |
;------------variables and data of program------------------ |
;----------------------------------------------------------- |
/programs/media/animage/trunk/dialog2.inc |
---|
15,28 → 15,28 |
call print_cursor |
opros: |
mov eax,10 |
mcall |
mcall SF_WAIT_EVENT |
cmp eax,1 |
cmp eax,1 ;redraw window |
je exit_cycle |
cmp eax,3 ;press button |
je exit_cycle |
cmp eax,2 |
cmp eax,2 ;press key |
jne opros |
mov eax,2 |
mcall |
mcall SF_GET_KEY |
shr eax,8 |
cmp eax,13 |
cmp al,13 |
je exit_cycle |
cmp eax,8 |
cmp al,8 |
je backspace |
cmp eax,176 |
cmp al,176 |
je left |
cmp eax,179 |
cmp al,179 |
je right |
cmp eax,32 |
cmp al,32 |
je probel |
inc [position] |
99,7 → 99,6 |
ret |
;--------------------------------------------------------------- |
print_line: |
mov eax,13 |
mov ebx,[string_x] |
mov ecx,[string_y] |
mov edx,[MaxSizeString] |
110,19 → 109,16 |
add ebx,2 |
add ecx,10 |
mov edx,0xffffff |
mcall |
mov eax,4 |
mcall SF_DRAW_RECT |
mov ebx,[string_x] |
shl ebx,16 |
add ebx,[string_y] |
mov ecx,0 |
mov edx,string_ |
mov esi,[MaxSizeString] |
mcall |
mcall SF_DRAW_TEXT,,0 |
ret |
print_cursor: |
mov eax,13 |
mov ebx,[position] |
mov ecx,[string_y] |
imul ebx,6 |
131,8 → 127,7 |
shl ecx,16 |
add ebx,2 |
add ecx,8 |
mov edx,0xff6c58 |
mcall |
mcall SF_DRAW_RECT,,,0xff6c58 |
ret |
;---------------------------------------------------------- |
MinMaxCorrect: |
/programs/media/animage/trunk/icons.inc |
---|
5,7 → 5,7 |
stdcall [img_decode], panel_picture, panel_picture.end-panel_picture, 0 |
mov ebx,eax |
mov edi,[ScreenPointer] |
add edi,(1200*1000*3)+8 |
add edi,mem_screen |
stdcall [img_to_rgb2], ebx,edi ;преобразуем изображение к формату rgb |
stdcall [img_destroy], ebx ;удаляем временный буфер с параметрами изображения |
ret |
20,10 → 20,9 |
shl edx,16 |
add edx,[Icon_Y] |
mov ebx,[ScreenPointer] |
add ebx,(1200*1000*3)+8 |
mov eax,7 |
add ebx,mem_screen |
mov ecx,417*65536+46 |
mcall |
mcall SF_PUT_IMAGE |
;main buttons of instrumnts |
/programs/media/animage/trunk/icons_instruments.inc |
---|
169,11 → 169,7 |
and ebx,0xffffff |
mov [Color],ebx |
mov eax,13 |
mov ebx,136*65536+20 |
mov ecx,65*65536+21 |
mov edx,[Color] |
mcall |
mcall SF_DRAW_RECT, 136*65536+20, 65*65536+21, [Color] |
jmp still |
no_pipetka: |
341,7 → 337,7 |
lea ecx,[ecx+ecx*2] |
shl ecx,1 |
cmp ecx,500000 |
cmp ecx,mem_flood_f |
ja normal_size_of_bufer |
mov ebx,[ReserveArray] |
480,7 → 476,6 |
mov edi,256 |
xor esi,esi |
next_rectangle: |
mov eax,13 |
mov ebx,[x] |
mov ecx,[y] |
mov edx,[palitra+esi] |
489,7 → 484,7 |
shl ecx,16 |
add ebx,13 |
add ecx,13 |
mcall |
mcall SF_DRAW_RECT |
add [x],15 |
cmp [x],20+15*32 |
jl no_new_line |
509,15 → 504,13 |
cmp eax,2 |
jne no_keys |
mov eax,2 |
mcall |
mcall SF_GET_KEY |
no_keys: |
cmp eax,3 |
jne no_buttons |
mov eax,17 |
mcall |
mcall SF_GET_BUTTON |
no_buttons: |
564,9 → 557,7 |
cmp [counter],257 |
jne next_rectangle_column |
mov eax,5 |
mov ebx,10 |
mcall |
mcall SF_SLEEP,10 |
call drawwin |
592,13 → 583,10 |
mov [OldX],eax |
mov [OldY],ebx |
mov [Activate_instrument],1 |
mov eax,[ReserveArray] |
mov ecx,60000 |
clear_array_line: |
mov [eax],dword 0 |
add eax,4 |
dec ecx |
jnz clear_array_line |
xor eax,eax |
mov ecx,mem_flood_f/4 |
mov edi,[ReserveArray] |
rep stosd |
jmp still |
no_new_line_xy: |
791,13 → 779,10 |
mov [OldX],eax |
mov [OldY],ebx |
mov [Activate_instrument],1 |
mov eax,[ReserveArray] |
mov ecx,60000 |
clear_array_rectangle: |
mov [eax],dword 0 |
add eax,4 |
dec ecx |
jnz clear_array_rectangle |
xor eax,eax |
mov ecx,mem_flood_f/4 |
mov edi,[ReserveArray] |
rep stosd |
jmp still |
no_new_rectangle_xy: |
988,13 → 973,10 |
mov [OldX],eax |
mov [OldY],ebx |
mov [Activate_instrument],1 |
mov eax,[ReserveArray] |
mov ecx,60000 |
clear_array_circle: |
mov [eax],dword 0 |
add eax,4 |
dec ecx |
jnz clear_array_circle |
xor eax,eax |
mov ecx,mem_flood_f/4 |
mov edi,[ReserveArray] |
rep stosd |
jmp still |
no_new_circle_xy: |
1348,13 → 1330,10 |
mov [instrument_used],1 |
and [crossing],0 |
and [finishing_crossing],0 |
mov eax,[ReserveArray] |
mov ecx,60000 |
clear_array_allocation: |
mov [eax],dword 0 |
add eax,4 |
dec ecx |
jnz clear_array_allocation |
xor eax,eax |
mov ecx,mem_flood_f/4 |
mov edi,[ReserveArray] |
rep stosd |
jmp still |
no_new_allocation_xy: |
instrument_not_finished_work: |
1931,13 → 1910,10 |
instrument_used_true: |
mov [Activate_instrument],1 |
mov eax,[ReserveArray] |
mov ecx,60000 |
clear_array_konture: |
mov [eax],dword 0 |
add eax,4 |
dec ecx |
jnz clear_array_line |
xor eax,eax |
mov ecx,mem_flood_f/4 |
mov edi,[ReserveArray] |
rep stosd |
no_new_konture_xy: |
2137,13 → 2113,10 |
mov [OldX],eax |
mov [OldY],ebx |
mov [Activate_instrument],1 |
mov eax,[ReserveArray] |
mov ecx,60000 |
clear_array_ellips: |
mov [eax],dword 0 |
add eax,4 |
dec ecx |
jnz clear_array_ellips |
xor eax,eax |
mov ecx,mem_flood_f/4 |
mov edi,[ReserveArray] |
rep stosd |
jmp still |
no_new_ellips_xy: |
/programs/media/animage/trunk/init_data.inc |
---|
13,20 → 13,11 |
mov [MaxWorkScreen_SizeY],100 |
and [PosX],0 |
and [PosY],0 |
mov [Picture_SizeX],640;400 |
mov [Picture_SizeY],400;280 |
mov [Picture_SizeX],640 |
mov [Picture_SizeY],400 |
mov [k],1 |
; mov [ScreenPointer],I_END ; S = 0, L = 3600000 + 60000 + 500000 = 4160000 = 3,97 Mb |
; mov [PointerToPicture], I_END+(1200*1000*3)+50*(20*20*3)+500000 ; S = 4160000, L = 768000 = 750 Kb |
; mov [PointerToCopyPicture], I_END+(1200*1000*3)+50*(20*20*3)+500000+(640*400*3) ; S = 4928000, L = 768000 = 750 Kb |
; mov [PointerToCopyPicture2],I_END+(1200*1000*3)+50*(20*20*3)+500000+(640*400*3)*2 ; S = 5696000, L = 768000 = 750 Kb |
; mov [PointerToEditBufer], I_END+(1200*1000*3)+50*(20*20*3)+500000+(640*400*3)*3 ; S = 6464000, L = 768000 = 750 Kb |
; mov [PointerToSpriteBufer], I_END+(1200*1000*3)+50*(20*20*3)+500000+(640*400*3)*4 ; S = 7232000, L = 768000 = 750 Kb |
; mov [PointerToPalette], I_END+(1200*100*3)+50*(20*20*3)+1 ; S = 420001 |
; mov [ReserveArray], I_END+(1200*1000)*3+50*(20*20*3)+8 ; S = 3660008 |
mcall 68,12,4096 |
mcall SF_SYS_MISC,SSF_MEM_ALLOC,4096 |
mov [ScreenPointer],eax |
and [save_flag],0 |
/programs/media/animage/trunk/load_from_parameters.inc |
---|
15,11 → 15,11 |
jnz .end_open |
mov ecx,dword[open_b+32] ;+32 qword: размер файла в байтах |
add ecx,(1200*1000)*3+50*(20*20*3)+500000+16000+0x4000 |
add ecx,mem_screen+mem_panel_b+mem_flood_f |
mcall SF_SYS_MISC,SSF_MEM_REALLOC,,[ScreenPointer] |
mov [ScreenPointer],eax |
add eax,0x10000 |
sub ecx,(1200*1000)*3+50*(20*20*3)+500000+16000+0x4000 |
add eax,mem_screen+mem_panel_b |
sub ecx,mem_screen+mem_panel_b+mem_flood_f |
mov [file_information.Function], SSF_READ_FILE |
mov [file_information.Position], 0 |
mov [file_information.Flags], 0 |
32,7 → 32,7 |
je .end_open |
;определяем вид изображения и пишем его параметры |
mov eax,[ScreenPointer] |
add eax,0x10000 |
add eax,mem_screen+mem_panel_b |
stdcall [img_decode], eax,ebx,0 |
push eax |
;определяем размер декодированного изображения |
42,7 → 42,7 |
mov dword[Picture_SizeY],eax |
imul ecx,eax |
imul ecx,15 |
add ecx,(1200*1000)*3+50*(20*20*3)+500000+16000+0x4000 |
add ecx,mem_screen+mem_panel_b+mem_flood_f |
mcall SF_SYS_MISC,SSF_MEM_REALLOC,,[ScreenPointer] |
mov [ScreenPointer],eax |
call prepare_data_pointers |
/programs/media/animage/trunk/memory.inc |
---|
1,3 → 1,8 |
mem_screen equ 1200*1000*3 ;à §¬¥à ¯ ¬ï⨠¤«ï ®¡« á⨠íªà |
mem_panel_b equ 50*(20*20*3) ;à §¬¥à ¯ ¬ï⨠¤«ï ¯ ¥«¨ ¨áâà㬥⮢ |
mem_flood_f equ 500000 ;à §¬¥à ¡ãä¥à ¤«ï § «¨¢ª¨, â ª¦¥ ¤«ï ¯ «¨âàë |
;---------------------------------------------------------- |
;--------change size of memory which use program----------- |
;---------------------------------------------------------- |
8,8 → 13,8 |
imul ecx,edx |
lea ecx,[ecx+ecx*2] |
lea ecx,[ecx+ecx*4] ;(Picture_SizeX*Picture_SizeY*3)*5 |
add ecx,(1200*1000)*3+50*(20*20*3)+500000+16000+0x4000 ; 4192384 |
mcall 68,20,,[ScreenPointer] |
add ecx,mem_screen+mem_panel_b+mem_flood_f |
mcall SF_SYS_MISC,SSF_MEM_REALLOC,,[ScreenPointer] |
test eax,eax |
jnz have_new_memory |
mov esi,sound_havent_memory |
30,7 → 35,7 |
imul eax,ebx |
lea eax,[eax+eax*2] |
mov ebx,[ScreenPointer] |
add ebx,(1200*1000*3)+50*(20*20*3)+500000 |
add ebx,mem_screen+mem_panel_b+mem_flood_f |
mov [PointerToPicture],ebx |
mov [PointerToCopyPicture],ebx |
51,11 → 56,8 |
add [PointerToSpriteBufer],eax |
mov eax,[ScreenPointer] |
add eax,(1200*1000*3)+50*(20*20*3)+1 |
add eax,mem_screen+mem_panel_b |
mov [PointerToPalette],eax |
mov eax,[ScreenPointer] |
add eax,(1200*1000*3)+50*(20*20*3)+8 |
mov [ReserveArray],eax |
ret |
;--------------------------------------------------------- |
/programs/media/animage/trunk/menu_instruments.inc |
---|
60,7 → 60,7 |
call print_text |
mov edx,1000000000000000000000000000000b+1000 |
mcall 8,<177,40>,<115,14>, |
mcall SF_DEFINE_BUTTON,<177,40>,<115,14>, |
mov edx,1000000000000000000000000000000b+1001 |
mcall ,,<139,14>, |
69,7 → 69,7 |
mcall ,<175,40>,<170,15> |
no_activate_space: |
mcall 10 |
mcall SF_WAIT_EVENT |
cmp eax,1 |
je exit_new |
77,7 → 77,7 |
cmp eax,3 |
jne no_activate_space |
mcall 17 |
mcall SF_GET_BUTTON |
shr eax,8 |
cmp eax,1000 |
130,7 → 130,7 |
exit_new: |
mov edx,11100000000000000000000000000000b+1002 |
mcall 8,<175,40>,<170,15> |
mcall SF_DEFINE_BUTTON,<175,40>,<170,15> |
mov edx,11100000000000000000000000000000b+1001 |
mcall ,<177,40>,<139,14> |
154,7 → 154,6 |
cmp [number_menu],2 |
jne no_open |
; opendialog drawwin,open_1,open_2,file_path |
;--------------------------------------------------------------------- |
mov [OpenDialog_data.type],0 ; open |
164,12 → 163,9 |
cmp [OpenDialog_data.status],1 |
jne still |
;--------------------------------------------------------------------- |
;open_1: |
mcall 40,0x80000027 ; 100111b |
mcall SF_SET_EVENTS_MASK,0x80000027 ;100111b |
call load_picture |
call load_icons |
call drawwin |
mov [Scroll1CoordinatX],9 |
226,7 → 222,7 |
;--------------------------------------------------------------------- |
save1: |
save_enter: |
mcall 40,0x80000027 ; 100111b |
mcall SF_SET_EVENTS_MASK,0x80000027 ;100111b |
call analizing_picture_to_palette |
/programs/media/animage/trunk/sprites.inc |
---|
20,13 → 20,8 |
mov ecx,[counter] |
next_pixel_sprite_save: |
mov eax,[esi] |
and eax,0xffffff |
mov [edi],ax |
shr eax,16 |
mov [edi+2],al |
add esi,3 |
add edi,3 |
movsw |
movsb |
dec ecx |
jnz next_pixel_sprite_save |
57,13 → 52,8 |
mov ecx,[counter] |
next_pixel_sprite_put: |
mov eax,[esi] |
and eax,0xffffff |
mov [edi],ax |
shr eax,16 |
mov [edi+2],al |
add esi,3 |
add edi,3 |
movsw |
movsb |
dec ecx |
jnz next_pixel_sprite_put |
94,13 → 84,8 |
mov ecx,[counter] |
next_pixel_sprite_draw: |
mov eax,[esi] |
and eax,0xffffff |
mov [edi],ax |
shr eax,16 |
mov [edi+2],al |
add esi,3 |
add edi,3 |
movsw |
movsb |
dec ecx |
jnz next_pixel_sprite_draw |