Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 532 → Rev 485

/programs/media/pic4/trunk/pic4.asm
13,7 → 13,6
 
include 'lang.inc'
include '..\..\..\macros.inc'
purge mov ; decrease kpack'ed size
 
START:
mov eax,48
22,9 → 21,7
mov edx,sizeof.system_colors
mcall
 
cmp dword [I_Param], 'BOOT'
jz OnBoot
 
call check_parameters
call draw_window
 
call load_texture
56,41 → 53,51
 
shr eax,8
 
cmp al,101 ; tiled
cmp eax,101 ; tiled
jne no101
mov ecx,1
setbgrmode:
mov eax,15
mov ebx,4
mov ecx,1
mcall
dec ebx
mov eax,15
mov ebx,3
mcall
jmp still
no101:
 
cmp eax,102 ; stretch
jne no102
mov eax,15
mov ebx,4
mov ecx, 2
cmp al, 102
jz setbgrmode
mcall
mov eax,15
mov ebx,3
mcall
jmp still
no102:
 
cmp al,1 ; end program
cmp eax,1 ; end program
jnz no_end
or eax,-1
mcall
no_end:
 
cmp al,11
cmp eax,11
jz bg
cmp al,12
cmp eax,12
jz bg
cmp al,13
cmp eax,13
jz bg
 
cmp al,121
cmp eax,121
jb no_bg_select
cmp al,133
ja no_bg_select
mov eax,[arrays + (eax-121)*4]
cmp eax,133
jg no_bg_select
sub eax,121
shl eax,2
add eax,arrays
mov eax,[eax]
mov [usearray],eax
call load_texture
call draw_image
97,14 → 104,19
jmp still
no_bg_select:
 
cmp al,14+20
cmp eax,14+20
jge bg4
 
jmp bg2
 
 
OnBoot:
check_parameters:
 
cmp [I_Param],dword 'BOOT'
je @f
ret
@@:
 
call load_texture
 
mov eax,15
113,6 → 125,7
mov edx,256
mcall
 
mov eax,15
mov ebx,5
mov ecx,0x40000 ; <<< 0x40000 for blue, 0x40000+1 for red,
; <<< 0x40000+2 for green background at boot
120,11 → 133,13
mov esi,256*3*256
mcall
 
dec ebx
mov eax,15
mov ebx,4
mov ecx,2
mcall
 
dec ebx
mov eax,15
mov ebx,3
mcall
 
mov eax,-1
163,13 → 178,13
 
mov edi,0x40000
 
cmp al,12
cmp eax,12
jnz bb1
inc edi
mov edi,0x40000+1
bb1:
cmp al,13
cmp eax,13
jnz bb2
inc edi
mov edi,0x40000+2
bb2:
 
mov eax,15
178,6 → 193,7
mov edx,256
mcall
 
mov eax,15
mov ebx,5
mov ecx,edi
mov edx,0
184,6 → 200,7
mov esi,256*256*3
mcall
 
mov eax,15
mov ebx,3
mcall
 
193,13 → 210,34
; colored background
 
bg2:
mov edi, eax
 
push eax
 
mcall 15,4,1
mcall ,1,,1
lea ecx, [(edi-14)*3+fill]
mcall ,5,,0,3*1*1
mcall ,3
 
mov eax,15
mov ebx,1
mov ecx,1
mov edx,1
mcall
 
pop eax
sub eax,14
imul eax,3
 
mov ecx,fill
add ecx,eax
 
mov eax,15
mov ebx,5
xor edx,edx
mov esi,3*1*1
mcall
 
mov eax,15
mov ebx,3
mcall
 
jmp still
 
 
207,8 → 245,9
 
bg4:
 
sub eax,14+20
shl eax,3
add eax,shape - (14+20)*8
add eax,shape
mov ecx,[eax+0]
mov edx,[eax+4]
 
216,6 → 255,7
mov ebx,1
mcall
 
mov eax,15
mov ebx,3
mcall
 
235,17 → 275,17
 
gentexture:
 
xor ecx,ecx ; ycounter
xor edi,edi ; pixel counter
mov ecx,0 ; ycounter
mov edi,0 ; pixel counter
 
mov ebp,[usearray]
 
ylup:
xor ebx,ebx
mov ebx,0
 
xlup:
push edi
xor edi, edi
mov edi, 0
mov esi, 512000000 ; abnormous initial value :)
 
pixlup: