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_MAXequ255STARTAPP:; Initialize memory mcall68,11; Import libraries stdcalldll.Load,importTable; Set button style: flat or gradient (3D)invokeini_get_int,aIni,aSection,aButtonStyle,0movecx,eaxmcall48,1get_bg:invokeini_get_str,aIni,aSection,aBgProgram,sz_app,PATH_MAX,0invokeini_get_str,aIni,aSection,aBgParam,sz_param,PATH_MAX,0cmpbyte[sz_param],'\'jneset_bg; This is fix for KIV images located at /kolibrios and /usbhd drives; It checks is the file exists for 5 times with perioud 1 secondmovedi,0@@:mcall70,KivFileReadcmpeax,0jeset_bgmcall5,100incedicmpedi,5jle@b; if not found then lets try to set bg anywayset_bg:mcall70,RunAppset_skin:invokeini_get_str,aIni,aSection,aSkinPath,sz_param,PATH_MAX,0cmpbyte[sz_param],0;no need to set skin it was not specifiedje@fmcall48,8,sz_param@@:mcall-1importTable:library\libini,'libini.obj'importlibini,\ini_get_str,'ini_get_str',\ini_get_int,'ini_get_int'RunApp:dd7; subfunction number dd0; position in the file in bytes ddsz_param; upper part of the position address dd0; number of bytes to read dd0; pointer to the buffer to write data db0ddsz_app; pointer to the filenameKivFileRead:dd0; subfunction number dd0; position in the file in bytes dd0; upper part of the position address dd4; number of bytes to read ddbuf; pointer to the buffer to write data db0ddsz_param+4; pointer to the filenamebufrb4aInidb'/sys/settings/system.ini',0aSectiondb'style',0aBgProgramdb'bg_program',0aBgParamdb'bg_param',0aButtonStyledb'buttons_gradient',0aSkinPathdb'skin',0sz_app:rbPATH_MAXsz_param:rbPATH_MAXI_END:; End of application code and data marker