Subversion Repositories Kolibri OS

Rev

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

Rev 2242 Rev 2266
1
//CODED by Veliant, Leency. GNU GPL licence.
1
//CODED by Veliant, Leency. GNU GPL licence.
2
 
2
 
3
#startaddress 0
3
#startaddress 0
4
#code32 TRUE
4
#code32 TRUE
5
 
5
 
6
byte   os_name[8]   = {'M','E','N','U','E','T','0','1'};
6
byte   os_name[8]   = {'M','E','N','U','E','T','0','1'};
7
dword  os_version   = 0x00000001;
7
dword  os_version   = 0x00000001;
8
dword  start_addr   = #main;
8
dword  start_addr   = #main;
9
dword  final_addr   = #stop+32;
9
dword  final_addr   = #stop+32;
10
dword  alloc_mem    = 0x00100000;
10
dword  alloc_mem    = 0x00100000;
11
dword  x86esp_reg   = 0x00100000;   // 0x0007fff0; 
11
dword  x86esp_reg   = 0x00100000;   // 0x0007fff0; 
12
dword  I_Param      = #param;
12
dword  I_Param      = #param;
13
dword  I_Path       = #program_path;
13
dword  I_Path       = #program_path;
-
 
14
 
14
char param[4096]="";
15
char param[4096]="";
15
char program_path[4096]="";
16
char program_path[4096]="";
16
 
17
 
17
 
18
 
18
//Events
19
//Events
19
#define evMouse		6
20
#define evMouse		6
20
#define evButton	3
21
#define evButton	3
21
#define evKey		2
22
#define evKey		2
22
#define evReDraw	1
23
#define evReDraw	1
23
 
24
 
24
//Button options
25
//Button options
25
#define BT_DEL		0x80000000
26
#define BT_DEL		0x80000000
26
#define BT_HIDE		0x40000000
27
#define BT_HIDE		0x40000000
27
#define BT_NOFRAME	0x20000000
28
#define BT_NOFRAME	0x20000000
28
 
29
 
29
#define OLD			-1
30
#define OLD			-1
30
#define true		1
31
#define true		1
31
#define false		0
32
#define false		0
32
 
33
 
33
 
34
 
34
 
35
 
35
struct mouse{
36
struct mouse{
36
	unsigned int x,y,lkm,pkm,hor,vert;
37
	unsigned int x,y,lkm,pkm,hor,vert;
37
	void get();
38
	void get();
38
};
39
};
39
 
40
 
40
int TestBit(EAX, CL)
41
inline fastcall int TestBit(EAX, CL)
41
{
42
{
42
	$shr eax,cl
43
	$shr eax,cl
43
	$and eax,1
44
	$and eax,1
44
}
45
}
45
 
46
 
46
void mouse::get()
47
void mouse::get()
47
{
48
{
48
	EAX = 37;
49
	EAX = 37;
49
	EBX = 1;
50
	EBX = 1;
50
	$int	0x40
51
	$int	0x40
51
	$mov	ebx, eax
52
	$mov	ebx, eax
52
	$shr	eax, 16
53
	$shr	eax, 16
53
	$and	ebx,0x0000FFFF
54
	$and	ebx,0x0000FFFF
54
	x = EAX;
55
	x = EAX;
55
	y = EBX;
56
	y = EBX;
56
	
57
	
57
	EAX = 37;
58
	EAX = 37;
58
	EBX = 2;
59
	EBX = 2;
59
	$int	0x40
60
	$int	0x40
60
	$mov	ebx, eax
61
	$mov	ebx, eax
61
	$and	eax, 0x00000001
62
	$and	eax, 0x00000001
62
	$shr	ebx, 1
63
	$shr	ebx, 1
63
	$and	ebx, 0x00000001
64
	$and	ebx, 0x00000001
64
	lkm = EAX;
65
	lkm = EAX;
65
	pkm = EBX;
66
	pkm = EBX;
66
	
67
	
67
	EAX = 37; //scroll
68
	EAX = 37; //scroll
68
	EBX = 7;
69
	EBX = 7;
69
	$int	0x40
70
	$int	0x40
70
	$mov	ebx, eax
71
	$mov	ebx, eax
71
	$shr	eax, 16
72
	$shr	eax, 16
72
	$and	ebx,0x0000FFFF
73
	$and	ebx,0x0000FFFF
73
	//hor = EAX;
74
	//hor = EAX;
74
	vert = EBX;
75
	vert = EBX;
75
}
76
}
76
 
77
 
77
//---------------------------------------------------------------------------
78
//---------------------------------------------------------------------------
78
struct proc_info{
79
struct proc_info{
79
	dword	use_cpu;
80
	dword	use_cpu;
80
	word	pos_in_stack,num_slot,rezerv1;
81
	word	pos_in_stack,num_slot,rezerv1;
81
	char	name[11];
82
	char	name[11];
82
	char	rezerv2;
83
	char	rezerv2;
83
	dword	adress,use_memory,ID,left,top,width,height;
84
	dword	adress,use_memory,ID,left,top,width,height;
84
	word	status_slot,rezerv3;
85
	word	status_slot,rezerv3;
85
	dword	work_left,work_top,work_width,work_height;
86
	dword	work_left,work_top,work_width,work_height;
86
	char	status_window;
87
	char	status_window;
87
	void	GetInfo(dword ECX);
88
	void	GetInfo(dword ECX);
88
	byte    reserved[1024-71];
89
	byte    reserved[1024-71];
89
#define SelfInfo -1
90
#define SelfInfo -1
90
};
91
};
91
 
92
 
92
void proc_info::GetInfo(dword EBX, ECX)
93
void proc_info::GetInfo(dword EBX, ECX)
93
{
94
{
94
	EAX = 9;
95
	EAX = 9;
95
	$int  0x40
96
	$int  0x40
96
}
97
}
97
 
98
 
98
int GetSlot(dword ECX)
99
inline fastcall int GetSlot(dword ECX)
99
{
100
{
100
	EAX = 18;
101
	EAX = 18;
101
	EBX = 21;
102
	EBX = 21;
102
	$int 0x40
103
	$int 0x40
103
}
104
}
104
 
105
 
105
int ActiveProcess()
106
inline fastcall int ActiveProcess()
106
{
107
{
107
	EAX = 18;
108
	EAX = 18;
108
	EBX = 7;
109
	EBX = 7;
109
	$int 0x40
110
	$int 0x40
110
}
111
}
111
 
112
 
112
//-------------------------------------------------------------------------------
113
//-------------------------------------------------------------------------------
113
 
114
 
114
inline fastcall dword WaitEvent(){
115
inline fastcall dword WaitEvent(){
115
	EAX = 10;              // wait here for event
116
	EAX = 10;              // wait here for event
116
	$int 0x40
117
	$int 0x40
117
}
118
}
118
 
119
 
119
inline fastcall void SetEventMask(dword EBX)
120
inline fastcall void SetEventMask(dword EBX)
120
{
121
{
121
	EAX = 40;
122
	EAX = 40;
122
	$int 0x40
123
	$int 0x40
123
}
124
}
124
 
125
 
125
inline fastcall word GetKey(){ //Gluk fix
126
inline fastcall word GetKey(){ //Gluk fix
126
		$push edx
127
		$push edx
127
@getkey:
128
@getkey:
128
		$mov  eax,2
129
		$mov  eax,2
129
		$int  0x40
130
		$int  0x40
130
		$cmp eax,1
131
		$cmp eax,1
131
		$jne getkeyi
132
		$jne getkeyi
132
		$mov ah,dh
133
		$mov ah,dh
133
		$jmp getkeyii //jz?
134
		$jmp getkeyii //jz?
134
@getkeyi:
135
@getkeyi:
135
		$mov dh,ah
136
		$mov dh,ah
136
		$jmp getkey
137
		$jmp getkey
137
@getkeyii:
138
@getkeyii:
138
		$pop edx
139
		$pop edx
139
		EAX = EAX >> 8;		 
140
		EAX = EAX >> 8;		 
140
}
141
}
141
 
142
 
142
inline fastcall word GetButtonID(){
143
inline fastcall word GetButtonID(){
143
	EAX = 17;            // Get ID
144
	EAX = 17;            // Get ID
144
	$int  0x40
145
	$int  0x40
145
	EAX = EAX >> 8;
146
	EAX = EAX >> 8;
146
}
147
}
147
 
148
 
148
inline fastcall void ExitProcess(){
149
inline fastcall void ExitProcess(){
149
	EAX = -1;            // close this program
150
	EAX = -1;            // close this program
150
	$int 0x40
151
	$int 0x40
151
}
152
}
152
 
153
 
153
inline fastcall void Pause(dword EBX){				
154
inline fastcall void Pause(dword EBX){				
154
	$mov eax, 5       // ã§ , ¢ á®âëå ¤®«ïå ᥪ㭤ë
155
	$mov eax, 5       // ã§ , ¢ á®âëå ¤®«ïå ᥪ㭤ë
155
	$int 0x40
156
	$int 0x40
156
}
157
}
157
 
158
 
158
//------------------------------------------------------------------------------
159
//------------------------------------------------------------------------------
159
void DefineAndDrawWindow(dword x,y,sizeX,sizeY,
160
void DefineAndDrawWindow(dword x,y,sizeX,sizeY,byte mainAreaType,
160
byte mainAreaType, dword mainAreaColor,byte headerType,dword headerColor,EDI)
161
dword mainAreaColour,byte headerType,dword headerColour,EDI)
161
{
162
{
162
	EAX = 12;
163
	EAX = 12;              // function 12:tell os about windowdraw
163
	EBX = 1;
164
	EBX = 1;
164
	$int 0x40
165
	$int 0x40
165
	
166
	
166
	EBX = x << 16 + sizeX;
167
	EBX = x << 16 + sizeX;
167
	ECX = y << 16 + sizeY;
168
	ECX = y << 16 + sizeY;
168
	EDX = mainAreaType << 24 | mainAreaColor;
169
	EDX = mainAreaType << 24 | mainAreaColour;
169
	ESI = headerType << 24 | headerColor;
170
	ESI = headerType << 24 | headerColour;
170
	$xor eax,eax
171
	$xor eax,eax
171
	$int 0x40
172
	$int 0x40
172
	
173
 
173
	EAX = 12;
174
	EAX = 12;              // function 12:tell os about windowdraw
174
	EBX = 2;
175
	EBX = 2;
175
	$int 0x40
176
	$int 0x40
176
}
177
}
177
 
178
 
178
inline fastcall void CreateThread(dword ECX,EDX)
179
inline fastcall void CreateThread(dword ECX,EDX)
179
{
180
{
180
	EAX = 51;
181
	EAX = 51;
181
	EBX = 1;
182
	EBX = 1;
182
	$int 0x40
183
	$int 0x40
183
}
184
}
184
 
185
 
185
inline fastcall void DrawTitle(dword ECX){
186
inline fastcall void DrawTitle(dword ECX){
186
	EAX = 71;
187
	EAX = 71;
187
	EBX = 1;
188
	EBX = 1;
188
	$int 0x40;
189
	$int 0x40;
189
}
190
}
190
 
191
 
191
inline fastcall dword GetSkinWidth(){
192
inline fastcall dword GetSkinWidth(){
192
	EAX = 48;
193
	EAX = 48;
193
	EBX = 4;
194
	EBX = 4;
194
	$int 0x40
195
	$int 0x40
195
}
196
}
196
 
197
 
197
inline fastcall void MoveSize(dword EBX,ECX,EDX,ESI){
198
inline fastcall void MoveSize(dword EBX,ECX,EDX,ESI){
198
	EAX = 67;
199
	EAX = 67;
199
	$int 0x40
200
	$int 0x40
200
}
201
}
201
 
202
 
202
//------------------------------------------------------------------------------
203
//------------------------------------------------------------------------------
203
 
204
 
204
inline fastcall dword strlen(EDI){
205
inline fastcall dword strlen(EDI){
205
	asm {
206
	asm {
206
	  xor ecx, ecx
207
	  xor ecx, ecx
207
	  xor eax, eax
208
	  xor eax, eax
208
	  dec ecx
209
	  dec ecx
209
	  repne scasb
210
	  repne scasb
210
	  sub eax, 2
211
	  sub eax, 2
211
	  sub eax, ecx
212
	  sub eax, ecx
212
	}
213
	}
213
}
214
}
214
 
215
 
215
 
216
 
216
inline fastcall copystr(dword ESI,EDI)
217
inline fastcall copystr(dword ESI,EDI)
217
{
218
{
218
	$cld
219
	$cld
219
l1:
220
l1:
220
	$lodsb
221
	$lodsb
221
	$stosb
222
	$stosb
222
	$test al,al
223
	$test al,al
223
	$jnz l1
224
	$jnz l1
224
}
225
}
225
 
226
 
226
char buffer[11]="";
227
char buffer[11]="";
227
inline fastcall dword IntToStr(dword ESI)
228
inline fastcall dword IntToStr(dword ESI)
228
{
229
{
229
     $mov     edi, #buffer
230
     $mov     edi, #buffer
230
     $mov     ecx, 10
231
     $mov     ecx, 10
231
     $test     esi, esi
232
     $test     esi, esi
232
     $jns     f1
233
     $jns     f1
233
     $mov     al, '-'
234
     $mov     al, '-'
234
     $stosb
235
     $stosb
235
     $neg     esi
236
     $neg     esi
236
f1:
237
f1:
237
     $mov     eax, esi
238
     $mov     eax, esi
238
     $push     -'0'
239
     $push     -'0'
239
f2:
240
f2:
240
     $xor     edx, edx
241
     $xor     edx, edx
241
     $div     ecx
242
     $div     ecx
242
     $push     edx
243
     $push     edx
243
     $test     eax, eax
244
     $test     eax, eax
244
     $jnz     f2
245
     $jnz     f2
245
f3:
246
f3:
246
     $pop     eax
247
     $pop     eax
247
     $add     al, '0'
248
     $add     al, '0'
248
     $stosb
249
     $stosb
249
     $jnz     f3
250
     $jnz     f3
250
     $mov     eax, #buffer
251
     $mov     eax, #buffer
251
     $ret
252
     $ret
252
}
253
}
253
 
254
 
254
inline fastcall int strcmp(ESI, EDI)
255
inline fastcall int strcmp(ESI, EDI)
255
{
256
{
256
	loop()
257
	loop()
257
	{
258
	{
258
		IF (DSBYTE[ESI]
259
		IF (DSBYTE[ESI]
259
		IF (DSBYTE[ESI]>DSBYTE[EDI]) RETURN 1;
260
		IF (DSBYTE[ESI]>DSBYTE[EDI]) RETURN 1;
260
		IF (DSBYTE[ESI]=='\0') RETURN 0;
261
		IF (DSBYTE[ESI]=='\0') RETURN 0;
261
		ESI++;
262
		ESI++;
262
		EDI++;
263
		EDI++;
263
	}
264
	}
264
}
265
}
265
 
266
 
266
 
267
 
267
inline fastcall unsigned int find_symbol(ESI,BL)
268
inline fastcall unsigned int find_symbol(ESI,BL)
268
{
269
{
269
	int jj=0, last=-1;
270
	int jj=0, last=-1;
270
	do{
271
	do{
271
		jj++;
272
		jj++;
272
		$lodsb
273
		$lodsb
273
		IF(AL==BL) last=jj;
274
		IF(AL==BL) last=jj;
274
	} while(AL!=0);
275
	} while(AL!=0);
275
	return last;
276
	return last;
276
}
277
}
277
 
278
 
278
 
279
 
279
inline fastcall ChangeCase(dword EDX)
280
inline fastcall ChangeCase(dword EDX)
280
{
281
{
281
	AL=DSBYTE[EDX];
282
	AL=DSBYTE[EDX];
282
	IF(AL>='a')&&(AL<='z')DSBYTE[EDX]=AL&0x5f;
283
	IF(AL>='a')&&(AL<='z')DSBYTE[EDX]=AL&0x5f;
283
	IF (AL>=160) && (AL<=175) DSBYTE[EDX] = AL - 32;	//à-ï
284
	IF (AL>=160) && (AL<=175) DSBYTE[EDX] = AL - 32;	//à-ï
284
	IF (AL>=224) && (AL<=239) DSBYTE[EDX] = AL - 80;	//à-ï
285
	IF (AL>=224) && (AL<=239) DSBYTE[EDX] = AL - 80;	//à-ï
285
	do{
286
	do{
286
		EDX++;
287
		EDX++;
287
		AL=DSBYTE[EDX];
288
		AL=DSBYTE[EDX];
288
		IF(AL>='A')&&(AL<='Z'){DSBYTE[EDX]=AL|0x20; CONTINUE;}
289
		IF(AL>='A')&&(AL<='Z'){DSBYTE[EDX]=AL|0x20; CONTINUE;}
289
		IF(AL>='€')&&(AL<='')DSBYTE[EDX]=AL|0x20; // -¯
290
		IF(AL>='€')&&(AL<='')DSBYTE[EDX]=AL|0x20; // -¯
290
		IF (AL>=144) && (AL<=159) DSBYTE[EDX] = AL + 80;	//à-ï
291
		IF (AL>=144) && (AL<=159) DSBYTE[EDX] = AL + 80;	//à-ï
291
	}while(AL!=0);
292
	}while(AL!=0);
292
}
293
}
293
 
294
 
294
 
295
 
295
//------------------------------------------------------------------------------
296
//------------------------------------------------------------------------------
296
inline fastcall void PutPixel(dword EBX,ECX,EDX){
297
inline fastcall void PutPixel(dword EBX,ECX,EDX){
297
  EAX=1;
298
  EAX=1;
298
  $int 0x40
299
  $int 0x40
299
}
300
}
300
 
301
 
301
void DefineButton(dword x,y,w,h,EDX,ESI){
302
void DefineButton(dword x,y,w,h,EDX,ESI){
302
	EAX = 8;
303
	EAX = 8;
303
	EBX = x<<16+w;
304
	EBX = x<<16+w;
304
	ECX = y<<16+h;
305
	ECX = y<<16+h;
305
	$int 0x40
306
	$int 0x40
306
}
307
}
307
 
308
 
308
inline fastcall void DeleteButton(dword EDX)
309
inline fastcall void DeleteButton(dword EDX)
309
{
310
{
310
	EAX = 8;
311
	EAX = 8;
311
	EDX += BT_DEL;
312
	EDX += BT_DEL;
312
	$int 0x40;
313
	$int 0x40;
313
}
314
}
314
 
315
 
315
void WriteText(dword x,y,byte fontType, dword color, EDX, ESI)
316
void WriteText(dword x,y,byte fontType, dword color, EDX, ESI)
316
{
317
{
317
	EAX = 4;
318
	EAX = 4;
318
	EBX = x<<16+y;
319
	EBX = x<<16+y;
319
	ECX = fontType<<24+color;
320
	ECX = fontType<<24+color;
320
	$int 0x40;
321
	$int 0x40;
321
}
322
}
322
 
323
 
323
void DrawBar(dword x,y,w,h,EDX)
324
void DrawBar(dword x,y,w,h,EDX)
324
{
325
{
325
	#speed
326
	#speed
326
	EAX = 13;
327
	EAX = 13;
327
	EBX = x<<16+w;
328
	EBX = x<<16+w;
328
	ECX = y<<16+h;
329
	ECX = y<<16+h;
329
 	$int 0x40
330
 	$int 0x40
330
	#codesize
331
	#codesize
331
}
332
}
332
 
333
 
333
void DrawRegion_3D(dword x,y,width,height,color1,color2)
334
void DrawRegion_3D(dword x,y,width,height,color1,color2)
334
{
335
{
335
	DrawBar(x,y,width+1,1,color1); //¯®«®á  £®à ᢥàåã
336
	DrawBar(x,y,width+1,1,color1); //¯®«®á  £®à ᢥàåã
336
	DrawBar(x,y+1,1,height-1,color1); //¯®«®á  á«¥¢ 
337
	DrawBar(x,y+1,1,height-1,color1); //¯®«®á  á«¥¢ 
337
	DrawBar(x+width,y+1,1,height,color2); //¯®«®á  á¯à ¢ 
338
	DrawBar(x+width,y+1,1,height,color2); //¯®«®á  á¯à ¢ 
338
	DrawBar(x,y+height,width,1,color2); //¯®«®á  £®à á­¨§ã
339
	DrawBar(x,y+height,width,1,color2); //¯®«®á  £®à á­¨§ã
339
}
340
}
340
 
341
 
341
void DrawFlatButton(dword x,y,width,height,id,color,text)
342
void DrawFlatButton(dword x,y,width,height,id,color,text)
342
{
343
{
343
	DrawRegion_3D(x,y,width,height,0x94AECE,0x94AECE);
344
	DrawRegion_3D(x,y,width,height,0x94AECE,0x94AECE);
344
	DrawRegion_3D(x+1,y+1,width-2,height-2,0xFFFFFF,0xC7C7C7);
345
	DrawRegion_3D(x+1,y+1,width-2,height-2,0xFFFFFF,0xC7C7C7);
345
	DrawBar(x+2,y+2,width-3,height-3,color); //§ «¨¢ª 
346
	DrawBar(x+2,y+2,width-3,height-3,color); //§ «¨¢ª 
346
	IF (id<>0)	DefineButton(x+1,y+1,width-2,height-2,id+BT_HIDE,0xEFEBEF); //ª­®¯ª 
347
	IF (id<>0)	DefineButton(x+1,y+1,width-2,height-2,id+BT_HIDE,0xEFEBEF); //ª­®¯ª 
347
	WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,0,text,0);
348
	WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,0,text,0);
348
}
349
}
349
 
350
 
350
void PutPaletteImage(dword EBX,w,h,x,y, EDI)
351
void PutPaletteImage(dword EBX,w,h,x,y, EDI)
351
{
352
{
352
	EAX = 65;
353
	EAX = 65;
353
	ECX = w<<16+h;
354
	ECX = w<<16+h;
354
	EDX = x<<16+y;
355
	EDX = x<<16+y;
355
	ESI = 8;
356
	ESI = 8;
356
	EBP = 0;
357
	EBP = 0;
357
	$int 0x40
358
	$int 0x40
358
} 
359
} 
359
 
360
 
360
void PutImage(dword EBX,w,h,x,y)
361
void PutImage(dword EBX,w,h,x,y)
361
{
362
{
362
	EAX = 7;
363
	EAX = 7;
363
	ECX = w<<16+h;
364
	ECX = w<<16+h;
364
	EDX = x<<16+y;
365
	EDX = x<<16+y;
365
	$int 0x40
366
	$int 0x40
366
}
367
}
367
 
368
 
368
//------------------------------------------------------------------------------
369
//------------------------------------------------------------------------------
369
/*void WriteDebug(dword EDX)
370
inline fastcall void WriteDebug(dword EDX)
370
{
371
{
371
	$mov eax, 63
372
	$mov eax, 63
372
	$mov ebx, 1
373
	$mov ebx, 1
373
next_char:
374
next_char:
374
	$mov ecx, DSDWORD[edx]
375
	$mov ecx, DSDWORD[edx]
375
	$or	 cl, cl
376
	$or	 cl, cl
376
	$jz  done
377
	$jz  done
377
	$int 0x40
378
	$int 0x40
378
	$inc edx
379
	$inc edx
379
	$jmp next_char
380
	$jmp next_char
380
done:
381
done:
381
	$mov cl, 13
382
	$mov cl, 13
382
	$int 0x40
383
	$int 0x40
383
	$mov cl, 10
384
	$mov cl, 10
384
	$int 0x40
385
	$int 0x40
385
}
386
}
386
 
387
 
387
inline fastcall void WriteFullDebug(dword ESI)
388
inline fastcall void WriteFullDebug(dword ESI)
388
{
389
{
389
	WriteDebug("");
390
	WriteDebug("");
390
	WriteDebug(ESI);
391
	WriteDebug(ESI);
391
	
392
	
392
	WriteDebug("Number of files:");
393
	WriteDebug("Number of files:");
393
	WriteDebug(IntToStr(count)); 
394
	WriteDebug(IntToStr(count)); 
394
	
395
	
395
	WriteDebug("but_num:");
396
	WriteDebug("but_num:");
396
	WriteDebug(IntToStr(but_num));
397
	WriteDebug(IntToStr(but_num));
397
	
398
	
398
	WriteDebug("curbtn");
399
	WriteDebug("curbtn");
399
	WriteDebug(IntToStr(curbtn));
400
	WriteDebug(IntToStr(curbtn));
400
	
401
	
401
	WriteDebug("ra_kadrom:");
402
	WriteDebug("ra_kadrom:");
402
	WriteDebug(IntToStr(za_kadrom));
403
	WriteDebug(IntToStr(za_kadrom));
403
	
404
	
404
	Pause(200);
405
	Pause(200);
405
}*/
-
 
406
>
406
}
-
 
407
>
407
>
408
>
408
>
409
>
409
>
410
>
410
>
411
>
411
>
412
>
412
>
413
>
413
>
414
>
414
>
415
>
415
>
416
>
416
>
417
>
417
>
418
>
418
>
419
>
419
>
420
>
420
>
421
>
421
>
422
>
422
>
423
>
423
>
424
>
424
>
425
>
425
>
426
>
426
>
427
>