Subversion Repositories Kolibri OS

Rev

Rev 1632 | Rev 6342 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;----------------------------------------------------------
  2. ;--------change size of memory which use program-----------
  3. ;----------------------------------------------------------
  4. GetMemory:
  5.         pusha
  6.         mov     ecx,[Picture_SizeX]
  7.         mov     edx,[Picture_SizeY]
  8.         imul    ecx,edx
  9.         lea     ecx,[ecx+ecx*2]
  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
  12.         mcall   68,20,,[ScreenPointer]
  13.         test    eax,eax
  14.         jnz     have_new_memory
  15.         mov     esi,sound_havent_memory
  16.         call    sound
  17.         popa
  18.         add     esp,4
  19.         jmp     still
  20.  
  21. have_new_memory:
  22.         mov     [ScreenPointer],eax
  23.         call    prepare_data_pointers
  24.         popa
  25.         ret
  26. ;---------------------------------------------------------
  27. prepare_data_pointers:
  28.         mov     eax,[Picture_SizeX]
  29.         mov     ebx,[Picture_SizeY]
  30.         imul    eax,ebx
  31.         lea     eax,[eax+eax*2]
  32.         mov     ebx,[ScreenPointer]
  33.         add     ebx,(1200*1000*3)+50*(20*20*3)+500000
  34.  
  35.         mov     [PointerToPicture],ebx
  36.         mov     [PointerToCopyPicture],ebx
  37.         mov     [PointerToCopyPicture2],ebx
  38.         mov     [PointerToEditBufer],ebx
  39.         mov     [PointerToSpriteBufer],ebx
  40.  
  41.         add     [PointerToCopyPicture],eax
  42.  
  43.         add     [PointerToCopyPicture2],eax
  44.         add     [PointerToCopyPicture2],eax
  45.  
  46.         add     [PointerToEditBufer],eax
  47.         add     [PointerToEditBufer],eax
  48.         add     [PointerToEditBufer],eax
  49.  
  50.         add     [PointerToSpriteBufer],eax
  51.         add     [PointerToSpriteBufer],eax
  52.         add     [PointerToSpriteBufer],eax
  53.         add     [PointerToSpriteBufer],eax
  54.  
  55.         mov     eax,[ScreenPointer]
  56.         add     eax,(1200*100*3)+50*(20*20*3)+1
  57.         mov     [PointerToPalette],eax
  58.  
  59.         mov     eax,[ScreenPointer]
  60.         add     eax,(1200*1000)*3+50*(20*20*3)+8
  61.         mov     [ReserveArray],eax
  62.         ret
  63. ;---------------------------------------------------------