Rev 1643 | Rev 6342 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1643 | Rev 6327 | ||
---|---|---|---|
1 | ;---------------------------------------------------------- |
1 | ;---------------------------------------------------------- |
2 | ;--------change size of memory which use program----------- |
2 | ;--------change size of memory which use program----------- |
3 | ;---------------------------------------------------------- |
3 | ;---------------------------------------------------------- |
4 | GetMemory: |
4 | GetMemory: |
5 | pusha |
5 | pusha |
6 | mov ecx,[Picture_SizeX] |
6 | mov ecx,[Picture_SizeX] |
7 | mov edx,[Picture_SizeY] |
7 | mov edx,[Picture_SizeY] |
8 | imul ecx,edx |
8 | imul ecx,edx |
9 | lea ecx,[ecx+ecx*2] |
9 | lea ecx,[ecx+ecx*2] |
10 | lea ecx,[ecx+ecx*4] ;(Picture_SizeX*Picture_SizeY*3)*5 |
10 | lea ecx,[ecx+ecx*4] ;(Picture_SizeX*Picture_SizeY*3)*5 |
11 | add ecx,(1200*1000)*3+50*(20*20*3)+500000+16000+0x4000 ; 4192384 |
11 | add ecx,(1200*1000)*3+50*(20*20*3)+500000+16000+0x4000 ; 4192384 |
12 | mcall 68,20,,[ScreenPointer] |
12 | mcall 68,20,,[ScreenPointer] |
13 | test eax,eax |
13 | test eax,eax |
14 | jnz have_new_memory |
14 | jnz have_new_memory |
15 | mov esi,sound_havent_memory |
15 | mov esi,sound_havent_memory |
16 | call sound |
16 | call sound |
17 | popa |
17 | popa |
18 | add esp,4 |
18 | add esp,4 |
19 | jmp still |
19 | jmp still |
20 | 20 | ||
21 | have_new_memory: |
21 | have_new_memory: |
22 | mov [ScreenPointer],eax |
22 | mov [ScreenPointer],eax |
23 | call prepare_data_pointers |
23 | call prepare_data_pointers |
24 | popa |
24 | popa |
25 | ret |
25 | ret |
26 | ;--------------------------------------------------------- |
26 | ;--------------------------------------------------------- |
27 | prepare_data_pointers: |
27 | prepare_data_pointers: |
28 | mov eax,[Picture_SizeX] |
28 | mov eax,[Picture_SizeX] |
29 | mov ebx,[Picture_SizeY] |
29 | mov ebx,[Picture_SizeY] |
30 | imul eax,ebx |
30 | imul eax,ebx |
31 | lea eax,[eax+eax*2] |
31 | lea eax,[eax+eax*2] |
32 | mov ebx,[ScreenPointer] |
32 | mov ebx,[ScreenPointer] |
33 | add ebx,(1200*1000*3)+50*(20*20*3)+500000 |
33 | add ebx,(1200*1000*3)+50*(20*20*3)+500000 |
34 | 34 | ||
35 | mov [PointerToPicture],ebx |
35 | mov [PointerToPicture],ebx |
36 | mov [PointerToCopyPicture],ebx |
36 | mov [PointerToCopyPicture],ebx |
37 | mov [PointerToCopyPicture2],ebx |
37 | mov [PointerToCopyPicture2],ebx |
38 | mov [PointerToEditBufer],ebx |
38 | mov [PointerToEditBufer],ebx |
39 | mov [PointerToSpriteBufer],ebx |
39 | mov [PointerToSpriteBufer],ebx |
40 | 40 | ||
41 | add [PointerToCopyPicture],eax |
41 | add [PointerToCopyPicture],eax |
42 | 42 | ||
43 | add [PointerToCopyPicture2],eax |
43 | add [PointerToCopyPicture2],eax |
44 | add [PointerToCopyPicture2],eax |
44 | add [PointerToCopyPicture2],eax |
45 | 45 | ||
46 | add [PointerToEditBufer],eax |
46 | add [PointerToEditBufer],eax |
47 | add [PointerToEditBufer],eax |
47 | add [PointerToEditBufer],eax |
48 | add [PointerToEditBufer],eax |
48 | add [PointerToEditBufer],eax |
49 | - | ||
50 | add [PointerToSpriteBufer],eax |
- | |
51 | add [PointerToSpriteBufer],eax |
49 | |
52 | add [PointerToSpriteBufer],eax |
50 | shl eax,2 |
53 | add [PointerToSpriteBufer],eax |
51 | add [PointerToSpriteBufer],eax |
54 | 52 | ||
55 | mov eax,[ScreenPointer] |
53 | mov eax,[ScreenPointer] |
56 | add eax,(1200*100*3)+50*(20*20*3)+1 |
54 | add eax,(1200*1000*3)+50*(20*20*3)+1 |
57 | mov [PointerToPalette],eax |
55 | mov [PointerToPalette],eax |
58 | 56 | ||
59 | mov eax,[ScreenPointer] |
57 | mov eax,[ScreenPointer] |
60 | add eax,(1200*1000)*3+50*(20*20*3)+8 |
58 | add eax,(1200*1000*3)+50*(20*20*3)+8 |
61 | mov [ReserveArray],eax |
59 | mov [ReserveArray],eax |
62 | ret |
60 | ret |
63 | ;--------------------------------------------------------- |
61 | ;--------------------------------------------------------- |