Subversion Repositories Kolibri OS

Rev

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

Rev 3043 Rev 3045
1
//CODED by Veliant, Leency 2008-2012. GNU GPL licence.
1
//CODED by Veliant, Leency 2008-2012. GNU GPL licence.
2
 
2
 
3
struct f70{
3
struct f70{
4
	dword	func;
4
	dword	func;
5
	dword	param1;
5
	dword	param1;
6
	dword	param2;
6
	dword	param2;
7
	dword	param3;
7
	dword	param3;
8
	dword	param4;
8
	dword	param4;
9
	char	rezerv;
9
	char	rezerv;
10
	dword	name;
10
	dword	name;
11
};
11
};
12
 
12
 
13
struct BDVK{
13
struct BDVK{
14
	dword	attr;
14
	dword	attr;
15
	byte	type_name;
15
	byte	type_name;
16
	byte	rez1, rez2, rez3;
16
	byte	rez1, rez2, rez3;
17
	dword	timecreate;
17
	dword	timecreate;
18
	dword	datecreate;
18
	dword	datecreate;
19
	dword	timelastaccess;
19
	dword	timelastaccess;
20
	dword	datelastaccess;
20
	dword	datelastaccess;
21
	dword	timelastedit;
21
	dword	timelastedit;
22
	dword	datelastedit;
22
	dword	datelastedit;
23
	dword	sizelo;
23
	dword	sizelo;
24
	dword	sizehi;
24
	dword	sizehi;
25
	char	name[518];
25
	char	name[518];
26
};
26
};
27
 
27
 
28
////////////////////////////
28
////////////////////////////
29
//     Ñîçäàòü ôàéë     //
29
//     Ñîçäàòü ôàéë     //
30
////////////////////////////
30
////////////////////////////
31
f70 create_file_70;
31
f70 create_file_70;
32
int CreateFile(dword file_size, read_buffer, file_path)
32
int CreateFile(dword file_size, read_buffer, file_path)
33
{    
33
{    
34
	create_file_70.func = 2;
34
	create_file_70.func = 2;
35
	create_file_70.param1 = 0;
35
	create_file_70.param1 = 0;
36
	create_file_70.param2 = 0;
36
	create_file_70.param2 = 0;
37
	create_file_70.param3 = file_size;
37
	create_file_70.param3 = file_size;
38
	create_file_70.param4 = read_buffer;
38
	create_file_70.param4 = read_buffer;
39
	create_file_70.rezerv = 0;
39
	create_file_70.rezerv = 0;
40
	create_file_70.name = file_path;
40
	create_file_70.name = file_path;
41
	$mov eax,70
41
	$mov eax,70
42
	$mov ebx,#create_file_70.func
42
	$mov ebx,#create_file_70.func
43
	$int 0x40
43
	$int 0x40
44
}
44
}
45
 
45
 
46
////////////////////////////
46
////////////////////////////
47
//     Ïðî÷èòàòü ôàéë     //
47
//     Ïðî÷èòàòü ôàéë     //
48
////////////////////////////
48
////////////////////////////
49
f70 read_file_70;
49
f70 read_file_70;
50
int ReadFile(dword pos, file_size, read_buffer, file_path)
50
int ReadFile(dword pos, file_size, read_buffer, file_path)
51
{    
51
{    
52
	read_file_70.func = 0;
52
	read_file_70.func = 0;
53
	read_file_70.param1 = pos;
53
	read_file_70.param1 = pos;
54
	read_file_70.param2 = 0;
54
	read_file_70.param2 = 0;
55
	read_file_70.param3 = file_size;
55
	read_file_70.param3 = file_size;
56
	read_file_70.param4 = read_buffer;
56
	read_file_70.param4 = read_buffer;
57
	read_file_70.rezerv = 0;
57
	read_file_70.rezerv = 0;
58
	read_file_70.name = file_path;
58
	read_file_70.name = file_path;
59
	$mov eax,70
59
	$mov eax,70
60
	$mov ebx,#read_file_70.func
60
	$mov ebx,#read_file_70.func
61
	$int 0x40
61
	$int 0x40
62
}    
62
}    
63
 
63
 
64
///////////////////////////
64
///////////////////////////
65
//    Ïðî÷èòàòü ïàïêó    //
65
//    Ïðî÷èòàòü ïàïêó    //
66
///////////////////////////
66
///////////////////////////
67
f70 read_dir_70;
67
f70 read_dir_70;
68
int ReadDir(dword file_count, read_buffer, read_dir_path)
68
int ReadDir(dword file_count, read_buffer, read_dir_path)
69
{    
69
{    
70
	read_dir_70.func = 1;
70
	read_dir_70.func = 1;
71
	read_dir_70.param1 = 0;
71
	read_dir_70.param1 = 0;
72
	read_dir_70.param2 = 0;
72
	read_dir_70.param2 = 0;
73
	read_dir_70.param3 = file_count;
73
	read_dir_70.param3 = file_count;
74
	read_dir_70.param4 = read_buffer;
74
	read_dir_70.param4 = read_buffer;
75
	read_dir_70.rezerv = 0;
75
	read_dir_70.rezerv = 0;
76
	read_dir_70.name = read_dir_path;
76
	read_dir_70.name = read_dir_path;
77
	$mov eax,70
77
	$mov eax,70
78
	$mov ebx,#read_dir_70.func
78
	$mov ebx,#read_dir_70.func
79
	$int 0x40
79
	$int 0x40
80
}  
80
}  
81
 
81
 
82
///////////////////////////
82
///////////////////////////
83
//   Çàïóñê ïðîãðàììv    //
83
//   Çàïóñê ïðîãðàììv    //
84
///////////////////////////
84
///////////////////////////
85
f70 run_file_70;
85
f70 run_file_70;
86
int RunProgram(dword run_path, run_param)
86
int RunProgram(dword run_path, run_param)
87
{    
87
{    
88
    run_file_70.func = 7;
88
    run_file_70.func = 7;
89
    run_file_70.param1 = 
89
    run_file_70.param1 = 
90
    run_file_70.param3 = 
90
    run_file_70.param3 = 
91
    run_file_70.param4 = 
91
    run_file_70.param4 = 
92
    run_file_70.rezerv = 0;
92
    run_file_70.rezerv = 0;
93
    run_file_70.param2 = run_param;
93
    run_file_70.param2 = run_param;
94
    run_file_70.name = run_path;
94
    run_file_70.name = run_path;
95
    $mov eax,70
95
    $mov eax,70
96
    $mov ebx,#run_file_70.func
96
    $mov ebx,#run_file_70.func
97
    $int 0x40 
97
    $int 0x40 
98
}
98
}
99
 
99
 
100
///////////////////////////
100
///////////////////////////
101
//    Ñîçäàíèå ïàïêè     //
101
//    Ñîçäàíèå ïàïêè     //
102
///////////////////////////
102
///////////////////////////
103
f70 create_dir_70;
103
f70 create_dir_70;
104
int CreateFolder(dword new_folder_path)
104
int CreateFolder(dword new_folder_path)
105
{
105
{
106
	create_dir_70.func = 9;
106
	create_dir_70.func = 9;
107
	create_dir_70.param1 = 
107
	create_dir_70.param1 = 
108
	create_dir_70.param2 = 
108
	create_dir_70.param2 = 
109
	create_dir_70.param3 = 
109
	create_dir_70.param3 = 
110
	create_dir_70.param4 = 
110
	create_dir_70.param4 = 
111
	create_dir_70.rezerv = 0;
111
	create_dir_70.rezerv = 0;
112
	create_dir_70.name = new_folder_path;
112
	create_dir_70.name = new_folder_path;
113
	$mov eax,70
113
	$mov eax,70
114
	$mov ebx,#create_dir_70.func
114
	$mov ebx,#create_dir_70.func
115
	$int 0x40
115
	$int 0x40
116
}
116
}
117
 
117
 
118
////////////////////////////
118
////////////////////////////
119
//  Óäàëåíèå ôàéëà/ïàïêè  //
119
//  Óäàëåíèå ôàéëà/ïàïêè  //
120
////////////////////////////
120
////////////////////////////
121
f70 del_file_70;	
121
f70 del_file_70;	
122
int DeleleFile(dword del_file_path)
122
int DeleleFile(dword del_file_path)
123
{    
123
{    
124
	del_file_70.func = 8;
124
	del_file_70.func = 8;
125
	del_file_70.param1 = 
125
	del_file_70.param1 = 
126
	del_file_70.param2 = 
126
	del_file_70.param2 = 
127
	del_file_70.param3 = 
127
	del_file_70.param3 = 
128
	del_file_70.param4 = 
128
	del_file_70.param4 = 
129
	del_file_70.rezerv = 0;
129
	del_file_70.rezerv = 0;
130
	del_file_70.name = del_file_path;
130
	del_file_70.name = del_file_path;
131
	$mov eax,70
131
	$mov eax,70
132
	$mov ebx,#del_file_70.func
132
	$mov ebx,#del_file_70.func
133
	$int 0x40
133
	$int 0x40
134
}  
134
}  
135
 
135
 
136
///////////////////////////
136
///////////////////////////
137
//   Ñêîïèðîâàòü ôàéë    //
137
//   Ñêîïèðîâàòü ôàéë    //
138
///////////////////////////
138
///////////////////////////
139
f70	CopyFile_f;
139
f70	CopyFile_f;
140
inline fastcall int CopyFile(dword EBX,ECX)
140
inline fastcall int CopyFile(dword EBX,ECX)
141
{
141
{
142
	BDVK CopyFile_atr;
142
	BDVK CopyFile_atr;
143
	dword s=EBX, d=ECX, cBufer=0;
143
	dword s=EBX, d=ECX, cBufer=0;
144
	CopyFile_f.func = 5;
144
	CopyFile_f.func = 5;
145
	CopyFile_f.param1 = 0;
145
	CopyFile_f.param1 = 0;
146
	CopyFile_f.param2 = 0;
146
	CopyFile_f.param2 = 0;
147
	CopyFile_f.param3 = 0;
147
	CopyFile_f.param3 = 0;
148
	CopyFile_f.param4 = #CopyFile_atr;
148
	CopyFile_f.param4 = #CopyFile_atr;
149
	CopyFile_f.rezerv = 0;
149
	CopyFile_f.rezerv = 0;
150
	CopyFile_f.name = s;
150
	CopyFile_f.name = s;
151
	$mov eax, 70
151
	$mov eax, 70
152
	$mov ebx, #CopyFile_f
152
	$mov ebx, #CopyFile_f
153
	$int 0x40
153
	$int 0x40
154
	
154
	
155
	if (!EAX)
155
	if (!EAX)
156
	{	
156
	{	
157
		cBufer = malloc(2*CopyFile_atr.sizelo);	
157
		cBufer = malloc(2*CopyFile_atr.sizelo);	
158
		ReadFile(dword 0, CopyFile_atr.sizelo, cBufer, s);
158
		ReadFile(dword 0, CopyFile_atr.sizelo, cBufer, s);
159
	
159
	
160
		IF (!EAX)
160
		IF (!EAX)
161
		{
161
		{
162
			CopyFile_f.func = 2;
162
			CopyFile_f.func = 2;
163
			CopyFile_f.param1 = 0;
163
			CopyFile_f.param1 = 0;
164
			CopyFile_f.param2 = 0;
164
			CopyFile_f.param2 = 0;
165
			CopyFile_f.param3 = CopyFile_atr.sizelo;
165
			CopyFile_f.param3 = CopyFile_atr.sizelo;
166
			CopyFile_f.param4 = cBufer;
166
			CopyFile_f.param4 = cBufer;
167
			CopyFile_f.rezerv = 0;
167
			CopyFile_f.rezerv = 0;
168
			CopyFile_f.name = d;
168
			CopyFile_f.name = d;
169
			$mov eax, 70
169
			$mov eax, 70
170
			$mov ebx, #CopyFile_f
170
			$mov ebx, #CopyFile_f
171
			$int 0x40
171
			$int 0x40
172
		}
172
		}
173
	}
173
	}
174
	return EAX;
174
	return EAX;
175
 
175
 
176
}
176
}
-
 
177
 
-
 
178
void notify(dword notify_param)
-
 
179
{
177
180
	RunProgram("@notify", notify_param);
178
181
}