Subversion Repositories Kolibri OS

Rev

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