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: |