Subversion Repositories Kolibri OS

Rev

Rev 7639 | Rev 7870 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5861 punk_joker 1
use32          
        org     0x0          
          
        db      'MENUET01'      ; 8 byte id          
        dd      38              ; required os          
        dd      STARTAPP        ; program start          
        dd      I_END           ; program image size          
        dd      0x1000000       ; required amount of memory          
        dd      0x1000000       ; stack heap          
        dd      0x0 
        dd      0x0          
                   
include '../../../proc32.inc'          
include '../../../macros.inc'          
include '../../../dll.inc'          

          
PATH_MAX equ 255          

STARTAPP:          
    ; Initialize memory          
    mcall   68, 11        
    ; Import libraries          
    stdcall dll.Load,importTable	
    
	; Set button style: flat or gradient (3D)
    invoke  ini_get_int, aIni, aSectionSkn, aButtonStyle, 0
    mov ecx, eax
    mcall 48, 1
	
	; Set bg or not?
    invoke  ini_get_int, aIni, aSectionBg, aBgActive, 0
    cmp eax, 1
    jne set_skin

set_bg:
    invoke  ini_get_str, aIni, aSectionBg, aBgProgram, sz_buffer, PATH_MAX, 0
    invoke  ini_get_str, aIni, aSectionBg, aBgParam, sz_param, PATH_MAX, 0
    m2m     dword [InfoStructure+8],  sz_param ; pointer to the parametrs          
    m2m     dword [InfoStructure+21], sz_buffer ; pointer to the file name          
    mcall   70, InfoStructure    
            
set_skin:                   
    invoke  ini_get_str, aIni, aSectionSkn, aSkinPath, sz_param, PATH_MAX, 0
    mcall   48, 8, sz_param          

    mcall   -1

proc RunProgram stdcall, app_path:dword, app_param:dword
    m2m     dword [InfoStructure+8],  [app_param] ; pointer to the parametrs          
    m2m     dword [InfoStructure+21], [app_path] ; pointer to the file name          
    mcall   70, InfoStructure          
    ret          
endp          

        
importTable:          
library                                                 \          
        libini, 'libini.obj'          
          
import  libini, \          
        ini_get_str  ,'ini_get_str', \          
        ini_get_int  ,'ini_get_int'       
          
InfoStructure:
        dd      7     ; subfunction number          
        dd      0     ; position in the file in bytes          
        dd      ?     ; upper part of the position address          
        dd      0     ; number of bytes to read          
        dd      0     ; pointer to the buffer to write data          
        db      0          
        dd      ?     ; pointer to the filename          
 
         
aIni          db  '/sys/settings/eskin.ini',0          

aSectionBg    db  'bg',0
aBgActive     db  'active',0
aBgProgram    db  'program',0
aBgParam      db  'param',0          

aSectionSkn   db  'skin',0
aButtonStyle  db  '3d',0          
aSkinPath     db  'file',0


sz_buffer:
    rb        PATH_MAX
sz_param:          
    rb        PATH_MAX
          
I_END:                ; End of application code and data marker
2