Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 531 → Rev 532

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