Subversion Repositories Kolibri OS

Rev

Rev 5482 | Rev 5659 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5482 Rev 5499
1
#define MEMSIZE 0xA0000
1
#define MEMSIZE 0xA0000
2
#include "..\lib\kolibri.h" 
2
#include "..\lib\kolibri.h" 
3
#include "..\lib\mem.h" 
3
#include "..\lib\mem.h" 
4
#include "..\lib\strings.h"
4
#include "..\lib\strings.h"
5
#include "..\lib\file_system.h"
5
#include "..\lib\file_system.h"
6
 
6
 
7
#include "..\lib\dll.h"
7
#include "..\lib\dll.h"
8
#include "..\lib\lib.obj\libio_lib.h"
8
#include "..\lib\obj\libio_lib.h"
9
#include "..\lib\lib.obj\libini.h"
9
#include "..\lib\obj\libini.h"
10
 
10
 
11
#ifndef AUTOBUILD
11
#ifndef AUTOBUILD
12
#include "lang.h--"
12
#include "lang.h--"
13
#endif
13
#endif
14
 
14
 
15
/////////////////////////////////////////////////////////////////////////////////////////
15
/////////////////////////////////////////////////////////////////////////////////////////
16
/////////////////////////              Program data                  ////////////////////
16
/////////////////////////              Program data                  ////////////////////
17
/////////////////////////////////////////////////////////////////////////////////////////
17
/////////////////////////////////////////////////////////////////////////////////////////
18
 
18
 
19
struct ioctl_struct
19
struct ioctl_struct
20
{
20
{
21
	dword	handle;
21
	dword	handle;
22
	dword	io_code;
22
	dword	io_code;
23
	dword	input;
23
	dword	input;
24
	dword	inp_size;
24
	dword	inp_size;
25
	dword	output;
25
	dword	output;
26
	dword	out_size;
26
	dword	out_size;
27
};
27
};
28
 
28
 
29
#define DEV_ADD_DISK 1	//input = structure add_disk_struc
29
#define DEV_ADD_DISK 1	//input = structure add_disk_struc
30
#define DEV_DEL_DISK 2	//input = structure del_disk_struc
30
#define DEV_DEL_DISK 2	//input = structure del_disk_struc
31
 
31
 
32
struct add_disk_struc
32
struct add_disk_struc
33
{
33
{
34
	dword DiskSize; // in sectors, 1 sector = 512 bytes. Include FAT service data
34
	dword DiskSize; // in sectors, 1 sector = 512 bytes. Include FAT service data
35
	unsigned char DiskId; // from 0 to 9
35
	unsigned char DiskId; // from 0 to 9
36
};
36
};
37
 
37
 
38
struct del_disk_struc
38
struct del_disk_struc
39
{
39
{
40
	unsigned char DiskId; //from 0 to 9
40
	unsigned char DiskId; //from 0 to 9
41
};
41
};
42
 
42
 
43
 
43
 
44
ioctl_struct ioctl;
44
ioctl_struct ioctl;
45
add_disk_struc add_disk;
45
add_disk_struc add_disk;
46
del_disk_struc del_disk;
46
del_disk_struc del_disk;
47
 
47
 
48
int driver_handle;
48
int driver_handle;
49
 
49
 
50
dword disk_sizes[10];
50
dword disk_sizes[10];
51
 
51
 
52
/////////////////////////////////////////////////////////////////////////////////////////
52
/////////////////////////////////////////////////////////////////////////////////////////
53
/////////////////////////                    Code                    ////////////////////
53
/////////////////////////                    Code                    ////////////////////
54
/////////////////////////////////////////////////////////////////////////////////////////
54
/////////////////////////////////////////////////////////////////////////////////////////
55
#include "t_console.c"
55
#include "t_console.c"
56
#include "t_gui.c"
56
#include "t_gui.c"
57
 
57
 
58
 
58
 
59
void main()
59
void main()
60
{   
60
{   
61
	driver_handle = LoadDriver("tmpdisk");
61
	driver_handle = LoadDriver("tmpdisk");
62
	if (driver_handle==0)
62
	if (driver_handle==0)
63
	{
63
	{
64
		notify("'TmpDisk\nError: /rd1/1/drivers/tmpdisk.obj driver loading failed\nvirtual disk wouldn't be added' -tE");
64
		notify("'TmpDisk\nError: /rd1/1/drivers/tmpdisk.obj driver loading failed\nvirtual disk wouldn't be added' -tE");
65
		ExitProcess();
65
		ExitProcess();
66
	}
66
	}
67
 
67
 
68
	GetDiskSizesFromIni();
68
	GetDiskSizesFromIni();
69
	
69
	
70
	if (param)
70
	if (param)
71
		Console_Work();
71
		Console_Work();
72
	else
72
	else
73
		Main_Window();
73
		Main_Window();
74
		
74
		
75
	SaveDiskSizesToIni();
75
	SaveDiskSizesToIni();
76
	ExitProcess();
76
	ExitProcess();
77
}
77
}
78
 
78
 
79
 
79
 
80
void GetDiskSizesFromIni()
80
void GetDiskSizesFromIni()
81
{
81
{
82
	char i, key[2];
82
	char i, key[2];
83
	if (load_dll2(libini, #lib_init,1)!=0) notify("Error: library doesn't exists - libini");
83
	if (load_dll2(libini, #lib_init,1)!=0) notify("Error: library doesn't exists - libini");
84
	for (i=0; i<=9; i++)
84
	for (i=0; i<=9; i++)
85
	{
85
	{
86
		key[0]=i+'0';
86
		key[0]=i+'0';
87
		ini_get_int stdcall ("/sys/settings/tmpdisk.ini", "DiskSizes", #key, 0); 
87
		ini_get_int stdcall ("/sys/settings/tmpdisk.ini", "DiskSizes", #key, 0); 
88
		disk_sizes[i] = EAX;
88
		disk_sizes[i] = EAX;
89
	}
89
	}
90
}
90
}
91
 
91
 
92
void SaveDiskSizesToIni()
92
void SaveDiskSizesToIni()
93
{
93
{
94
	char i, key[2];
94
	char i, key[2];
95
	for (i=0; i<=9; i++)
95
	for (i=0; i<=9; i++)
96
	{
96
	{
97
		key[0]=i+'0';
97
		key[0]=i+'0';
98
		ini_set_int stdcall ("/sys/settings/tmpdisk.ini", "DiskSizes", #key, disk_sizes[i]);
98
		ini_set_int stdcall ("/sys/settings/tmpdisk.ini", "DiskSizes", #key, disk_sizes[i]);
99
	}
99
	}
100
}
100
}
101
 
101
 
102
 
102
 
103
stop:
103
stop: