diff --git a/programs/demos/unvwater/trunk/unvwater.asm b/programs/demos/unvwater/trunk/unvwater.asm index 8fc08625ef..4a90e8fac8 100644 --- a/programs/demos/unvwater/trunk/unvwater.asm +++ b/programs/demos/unvwater/trunk/unvwater.asm @@ -6,14 +6,50 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; use32 - org 0x0 + org 0x0 - db 'MENUET00' ; 8 byte id - dd 38 ; required os - dd STARTAPP ; program start - dd I_END ; program image size - dd 0x100000 ; required amount of memory - dd 0x00000000 ; reserved=no extended header + ;db 'MENUET00' ; 8 byte id + ;dd 38 ; required os + ;dd STARTAPP ; program start + ;dd I_END ; program image size + ;dd 0x100000 ; required amount of memory + ;dd 0x00000000 ; reserved=no extended header + + db 'MENUET01' + dd 1 + dd STARTAPP + dd I_END + dd MEM + dd STACKTOP + dd 0 + dd 0 + +;macro start_draw_window x,y,xsize,ysize,areacolor,caption;,capsize +;{ +; mov eax, 12 ; function 12:tell os about windowdraw +; mov ebx, 1 ; 1, start of draw +; int 0x40 +; ; DRAW WINDOW +; mov eax, 48 ; function 48.4 : get skin height +; mov ebx, 4 +; int 0x40 +; push eax +; lea ecx, [y*65536+ysize+eax]; [y start] *65536 + [y size] + [skin_height] +; xor eax, eax ; function 0 : define and draw window +; mov ebx, x*65536+xsize ; [x start] *65536 + [x size] +; mov edx, areacolor ; color of work area RRGGBB +; ;mov esi, 0x00334455 ; color of grab bar RRGGBB +; mov edi, caption;0x00ddeeff ; color of frames RRGGBB +; int 0x40 +; pop eax +;} +; +;macro end_draw_window +;{ +; mov eax, 12 ; end of redraw +; mov ebx, 2 +; int 0x40 +;} include "aspapi.inc" SCREEN_WIDTH equ 100h @@ -22,7 +58,7 @@ SCREEN_HEIGHT equ 100h STARTAPP: - mov eax, 18 ;Get CPU speed + mov eax, 18 ;Get CPU speed mov ebx, 5 int 0x40 shr eax, 28 @@ -72,88 +108,91 @@ l2: inc si jnz l11 - call copy_buffer_to_video + call copy_buffer_to_video still: - mov eax, 11 ; Test if there is an event in the queue. - int 0x40 + mov eax, 11 ; Test if there is an event in the queue. + int 0x40 - cmp al,1 ; redraw request ? - jz red - cmp al,2 ; key in buffer ? - jz key - cmp al,3 ; button in buffer ? - jz button + cmp al,1 ; redraw request ? + jz red + cmp al,2 ; key in buffer ? + jz key + cmp al,3 ; button in buffer ? + jz button - jmp MAIN + jmp MAIN red: - call draw_window - jmp MAIN + call draw_window + jmp MAIN key: - mov eax, 2 - int 0x40 - cmp ah, 27 ; Test Esc in ASCII - je close_app - jmp MAIN + mov eax, 2 + int 0x40 + cmp ah, 27 ; Test Esc in ASCII + je close_app + jmp MAIN button: - mov eax, 17 ; Get pressed button code - int 0x40 - cmp ah, 1 ; Test x button - je close_app - jmp MAIN + mov eax, 17 ; Get pressed button code + int 0x40 + cmp ah, 1 ; Test x button + je close_app + jmp MAIN draw_window: - start_draw_window 100,70,SCREEN_WIDTH+9,SCREEN_HEIGHT+4,0x54224466,labelt;, 14;labellen-labelt - mov dword [skin_h], eax - end_draw_window + start_draw_window 100,70,SCREEN_WIDTH+9,SCREEN_HEIGHT+4,0x54224466,labelt;, 14;labellen-labelt + mov dword [skin_h], eax + end_draw_window ret fail: - ; Type something here. + ; Type something here. close_app: - mov eax, -1 ; close this program - int 0x40 + mov eax, -1 ; close this program + int 0x40 copy_buffer_to_video: - pusha + pusha ; mov eax, 18 ;@WAITVSYNC(); ; mov ebx, 14 ; int 0x40 - mov eax, 5 ;delay - mov ebx, dword [delay] - int 0x40 + mov eax, 5 ;delay + mov ebx, dword [delay] + int 0x40 - mov eax, dword [skin_h] - lea edx, [5*65536+eax] + mov eax, dword [skin_h] + lea edx, [5*65536+eax] - mov eax, 65 - mov ebx, img - mov ecx, SCREEN_WIDTH*65536+SCREEN_HEIGHT ;ecx = w*65536+h + mov eax, 65 + mov ebx, img + mov ecx, SCREEN_WIDTH*65536+SCREEN_HEIGHT ;ecx = w*65536+h ; mov edx, 5*65536+25 ;edx = x*65536+y - mov esi, 8 - mov edi, Paleta - xor ebp, ebp - int 0x40 - popa + mov esi, 8 + mov edi, Paleta + xor ebp, ebp + int 0x40 + popa ret ; DATA AREA ; Application Title -labelt db 'UnvWater demo',0 -delay dd 0 -skin_h dd 25 ; Skin height. +labelt db 'UnvWater demo',0 +delay dd 0 +skin_h dd 25 ; Skin height. I_END: -Paleta rb 1024 -img db 1 - rb 10000h +Paleta rb 1024 +img db 1 + rb 10000h + rb 256 +STACKTOP: +MEM: