use32org0x0db'MENUET01'; 8 byte id dd38; required os ddSTARTAPP; program start ddI_END; program image size dd0x1000000; required amount of memory dd0x1000000; stack heap dd0x0dd0x0include'../../../proc32.inc'include'../../../macros.inc'include'../../../dll.inc'PATH_MAX_CHARSequ255STARTAPP:; Initialize memory mcall68,11oreax,eaxjzclose_app;Import libraries stdcalldll.Load,importTabletesteax,eaxjnzclose_appinvokeini_get_int,aIni,aMain,aButton,0movecx,eaxmcall48,1invokeini_get_int,aIni,aMain,aBg,0cmpeax,1jnzset_bgset_program:invokeini_get_str,aIni,aMain,aProgram,sz_buffer,PATH_MAX_CHARS,0invokeini_get_str,aIni,aMain,aParam,sz_param,PATH_MAX_CHARS,0stdcallRunProgram,sz_buffer,sz_paramjmpset_skinset_bg:invokeini_get_str,aIni,aMain,aWallpaper,sz_param,PATH_MAX_CHARS,0movdword[sz_buffer],"\__S"xoredi,edi@@:movah,byte[sz_param+edi]movbyte[sz_buffer+edi+4],ahincedicmpbyte[sz_param+edi],0jne@bmovbyte[sz_buffer+edi+4],0stdcallRunProgram,sz_buffer,aKivset_skin:invokeini_get_str,aIni,aMain,aSkin,sz_param,PATH_MAX_CHARS,0mcall48,8,sz_paramclose_app:mcall-1procRunProgramstdcall,app_path:dword,app_param:dwordpusheaxm2mdword[InfoStructure+8],[app_param]; pointer to the parametrs m2mdword[InfoStructure+21],[app_path]; pointer to the file name mcall70,InfoStructurepopeaxretendpalign16importTable:library\libini,'libini.obj'importlibini,\ini_get_str,'ini_get_str',\ini_get_int,'ini_get_int'InfoStructure:dd7; subfunction number dd0; position in the file in bytes dd?; upper part of the position address dd0; number of bytes to read dd0; pointer to the buffer to write data db0dd?; pointer to the filename aInidb'/sys/settings/eskin.ini',0aKivdb'/sys/media/kiv',0aMaindb'main',0aBgdb'bg',0aButtondb'3d',0aSkindb'skin',0aWallpaperdb'wallpaper',0aProgramdb'program',0aParamdb'param',0sz_buffer:rbPATH_MAX_CHARSsz_param:rbPATH_MAX_CHARSI_END:; End of application code and data marker