Subversion Repositories Kolibri OS

Rev

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

Rev 7219 Rev 7291
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\fs.h"
5
#include "..\lib\fs.h"
6
 
6
 
7
#include "..\lib\dll.h"
7
#include "..\lib\dll.h"
8
#include "..\lib\obj\libio.h"
8
#include "..\lib\obj\libio.h"
9
#include "..\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
_ini ini = { "/sys/settings/tmpdisk.ini", "DiskSizes" };
52
_ini ini = { "/sys/settings/tmpdisk.ini", "DiskSizes" };
53
 
53
 
54
/////////////////////////////////////////////////////////////////////////////////////////
54
/////////////////////////////////////////////////////////////////////////////////////////
55
/////////////////////////                    Code                    ////////////////////
55
/////////////////////////                    Code                    ////////////////////
56
/////////////////////////////////////////////////////////////////////////////////////////
56
/////////////////////////////////////////////////////////////////////////////////////////
57
#include "t_console.c"
57
#include "t_console.c"
58
#include "t_gui.c"
58
#include "t_gui.c"
59
 
59
 
60
 
60
 
61
void main()
61
void main()
62
{   
62
{   
63
	driver_handle = LoadDriver("tmpdisk");
63
	driver_handle = LoadDriver("tmpdisk");
64
	if (driver_handle==0)
64
	if (driver_handle==0)
65
	{
65
	{
66
		notify("'TmpDisk\nError: /rd1/1/drivers/tmpdisk.obj driver loading failed\nvirtual disk wouldn't be added' -tE");
66
		notify("'TmpDisk\nError: /rd1/1/drivers/tmpdisk.obj driver loading failed\nvirtual disk wouldn't be added' -tE");
67
		ExitProcess();
67
		ExitProcess();
68
	}
68
	}
69
 
69
 
70
	GetDiskSizesFromIni();
70
	GetDiskSizesFromIni();
71
	
71
	
72
	if (param)
72
	if (param)
73
		Console_Work();
73
		Console_Work();
74
	else
74
	else
75
		Main_Window();
75
		Main_Window();
76
		
76
		
77
	SaveDiskSizesToIni();
77
	SaveDiskSizesToIni();
78
	ExitProcess();
78
	ExitProcess();
79
}
79
}
80
 
80
 
81
 
81
 
82
void GetDiskSizesFromIni()
82
void GetDiskSizesFromIni()
83
{
83
{
84
	char i, key[2];
84
	char i, key[2];
85
	if (load_dll2(libini, #lib_init,1)!=0) notify("Error: library doesn't exists - libini");
85
	load_dll(libini, #lib_init, 1);
86
	key[1]=0;
86
	key[1]=0;
87
	for (i=0; i<=9; i++)
87
	for (i=0; i<=9; i++)
88
	{
88
	{
89
		key[0]=i+'0';
89
		key[0]=i+'0';
90
		disk_sizes[i] = ini.GetInt(#key, 0);
90
		disk_sizes[i] = ini.GetInt(#key, 0);
91
	}
91
	}
92
}
92
}
93
 
93
 
94
void SaveDiskSizesToIni()
94
void SaveDiskSizesToIni()
95
{
95
{
96
	char i, key[2];
96
	char i, key[2];
97
	key[1]=0;
97
	key[1]=0;
98
	for (i=0; i<=9; i++)
98
	for (i=0; i<=9; i++)
99
	{
99
	{
100
		key[0]=i+'0';
100
		key[0]=i+'0';
101
		ini.SetInt(#key, disk_sizes[i]);
101
		ini.SetInt(#key, disk_sizes[i]);
102
	}
102
	}
103
}
103
}
104
 
104
 
105
 
105
 
106
stop:
106
stop: