#define MEMSIZE 0xA0000 #include "..\lib\kolibri.h" #include "..\lib\mem.h" #include "..\lib\strings.h" #include "..\lib\file_system.h" #include "..\lib\dll.h" #include "..\lib\obj\libio_lib.h" #include "..\lib\obj\libini.h" #ifndef AUTOBUILD #include "lang.h--" #endif ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////// Program data //////////////////// ///////////////////////////////////////////////////////////////////////////////////////// struct ioctl_struct { dword handle; dword io_code; dword input; dword inp_size; dword output; dword out_size; }; #define DEV_ADD_DISK 1 //input = structure add_disk_struc #define DEV_DEL_DISK 2 //input = structure del_disk_struc struct add_disk_struc { dword DiskSize; // in sectors, 1 sector = 512 bytes. Include FAT service data unsigned char DiskId; // from 0 to 9 }; struct del_disk_struc { unsigned char DiskId; //from 0 to 9 }; ioctl_struct ioctl; add_disk_struc add_disk; del_disk_struc del_disk; int driver_handle; dword disk_sizes[10]; ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////// Code //////////////////// ///////////////////////////////////////////////////////////////////////////////////////// #include "t_console.c" #include "t_gui.c" void main() { driver_handle = LoadDriver("tmpdisk"); if (driver_handle==0) { notify("'TmpDisk\nError: /rd1/1/drivers/tmpdisk.obj driver loading failed\nvirtual disk wouldn't be added' -tE"); ExitProcess(); } GetDiskSizesFromIni(); if (param) Console_Work(); else Main_Window(); SaveDiskSizesToIni(); ExitProcess(); } void GetDiskSizesFromIni() { char i, key[2]; if (load_dll2(libini, #lib_init,1)!=0) notify("Error: library doesn't exists - libini"); key[1]=0; for (i=0; i<=9; i++) { key[0]=i+'0'; ini_get_int stdcall ("/sys/settings/tmpdisk.ini", "DiskSizes", #key, 0); disk_sizes[i] = EAX; } } void SaveDiskSizesToIni() { char i, key[2]; key[1]=0; for (i=0; i<=9; i++) { key[0]=i+'0'; ini_set_int stdcall ("/sys/settings/tmpdisk.ini", "DiskSizes", #key, disk_sizes[i]); } } stop: