/programs/demos/movback/trunk/movback.asm |
---|
37,8 → 37,11 |
add word [ver_counter],VC_DELTA |
add word [hor_counter],HC_DELTA |
call handle_animation |
xor ebp,ebp |
mcall 65,virtual_screen_8,<WND_SIZE_X,WND_SIZE_Y>,<0,0>,8,_palette |
mov eax,7 |
mov ebx,virtual_screen_32 |
mov ecx,(WND_SIZE_X shl 16)+WND_SIZE_Y |
xor edx,edx |
mcall |
jmp .event_loop |
.paint_window: |
47,16 → 50,21 |
mov ebx,1 |
mcall |
mcall 48,4 ; get skin height |
lea ecx,[eax + (100 shl 16) + WND_SIZE_Y+4] |
xor eax,eax |
mov ebx,(100 shl 16)+(WND_SIZE_X+9) |
mov ecx,(100 shl 16)+(WND_SIZE_Y+26) |
mov edx,0x74000000 |
mov edi,title |
mcall 0,<100,WND_SIZE_X+9>,,0x74000000 |
mcall |
test [proc_info.wnd_state], 0x04 |
jnz @f |
xor ebp,ebp |
mcall 65,virtual_screen_8,<WND_SIZE_X,WND_SIZE_Y>,<0,0>,8,_palette |
mov eax,7 |
mov ebx,virtual_screen_32 |
mov ecx,(WND_SIZE_X shl 16)+WND_SIZE_Y |
xor edx,edx |
mcall |
@@: |
mov eax,12 |
mov ebx,2 |
74,7 → 82,7 |
stosb |
stosb |
stosb |
stosb |
inc edi |
inc ah |
loop .next_pal |
ret |
128,7 → 136,7 |
add ebx,ebx |
mov ax,[sinetable+ebx] |
mov [esp+s_OFFX],ax |
mov edi,virtual_screen_8 |
mov edi,virtual_screen_32 |
mov edx,WND_SIZE_Y-1 |
.a_ver: |
mov ecx,WND_SIZE_X-1 |
140,7 → 148,12 |
mov ax,[esp+s_OFFX] |
add ax,cx |
and eax,255 |
mov al,[background+ebx+eax] |
lea esi,[background+ebx+eax] |
mov al,[esi] |
and eax,0xff |
mov eax,[_palette+eax*4] |
stosw |
shr eax,16 |
stosb |
dec ecx |
jge .a_hor |
161,8 → 174,8 |
_palette: rd 256 |
virtual_screen_8: |
rb WND_SIZE_X*WND_SIZE_Y |
virtual_screen_32: |
rb WND_SIZE_X*WND_SIZE_Y*3 |
background: |
rb 256*256 |
/programs/demos/plasma/trunk/plasma.asm |
---|
8,12 → 8,16 |
MEOS_APP_START |
CODE |
fninit |
mcall 40,101b |
mov al,40 |
mov bl,101b |
mcall |
call init_palette |
call init_texture |
jmp .paint_window |
.event_loop: |
mcall 23,1 |
mov al,23 |
mov ebx,1 |
mcall |
test eax,eax |
je .draw_screen |
dec eax |
23,23 → 27,38 |
mcall |
.draw_screen: |
xor ebp,ebp |
mcall 65,virtual_screen_8,<WND_SIZE_X,WND_SIZE_Y>,0,8,_palette |
call blit_8_to_32 |
mov al,7 |
mov ebx,virtual_screen_32 |
mov ecx,(WND_SIZE_X shl 16)+WND_SIZE_Y |
xor edx,edx |
mcall |
call rotate_pal |
jmp .event_loop |
.paint_window: |
mcall 12,1 |
mov al,12 |
push eax |
xor ebx,ebx |
inc ebx |
mcall |
mcall 48,4 ; get skin height |
lea ecx,[eax + (110 shl 16) + WND_SIZE_Y + 4] |
xor eax,eax |
mov ebx,(110 shl 16)+(WND_SIZE_X+9) |
mov ecx,(110 shl 16)+(WND_SIZE_Y+26) |
mov edx,0x74000000 |
mov edi,title |
mcall 0,<110,WND_SIZE_X+9>,,0x74000000 |
mcall |
xor ebp,ebp |
mcall 65,virtual_screen_8,<WND_SIZE_X,WND_SIZE_Y>,0,8,_palette |
mov al,7 |
mov ebx,virtual_screen_32 |
mov ecx,(WND_SIZE_X shl 16)+WND_SIZE_Y |
xor edx,edx |
mcall |
mcall 12,2 |
pop eax |
and ebx,2 ; bit 1 is set |
mcall |
jmp .event_loop |
54,7 → 73,7 |
xor al,al |
stosb |
stosb |
stosb |
inc edi |
loop .color1 |
mov ecx,64 |
push ecx |
66,8 → 85,8 |
stosb |
xor al,al |
stosb |
stosb |
inc ah |
inc edi |
loop .color2 |
pop ecx |
push ecx |
78,9 → 97,8 |
stosb |
mov al,ah |
stosb |
mov al,0 |
stosb |
inc ah |
inc edi |
loop .color3 |
pop ecx |
mov eax,0x003f3f3f |
138,6 → 156,8 |
mov [_palette+1020],ebx |
ret |
include "graph8.inc" |
DATA |
_multiplier dd 63.5 |
152,4 → 172,7 |
virtual_screen_8: |
rb WND_SIZE_X*WND_SIZE_Y |
virtual_screen_32: |
rb WND_SIZE_X*WND_SIZE_Y*3 |
MEOS_APP_END |
/programs/demos/plasma/trunk/graph8.inc |
---|
0,0 → 1,16 |
blit_8_to_32: |
mov esi,virtual_screen_8 ; ESI=src |
mov edi,virtual_screen_32 ; EDI=dst |
mov ecx,WND_SIZE_X*WND_SIZE_Y ; ECX=size |
.blit_next: |
xor eax,eax ; EAX=byte to blit |
mov al,[esi] |
shl eax,2 |
mov eax,[_palette+eax] |
mov [edi],ax |
shr eax,16 |
mov [edi+2],al |
inc esi |
add edi,3 |
loop .blit_next |
ret |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |