Rev 2818 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2818 | Rev 2825 | ||
---|---|---|---|
Line 139... | Line 139... | ||
139 | { |
139 | { |
140 | $mov eax, 5 |
140 | $mov eax, 5 |
141 | $int 0x40 |
141 | $int 0x40 |
142 | } |
142 | } |
Line 143... | Line -... | ||
143 | - | ||
144 | //------------------------------------------------------------------------------ |
- | |
145 | 143 | ||
146 | inline fastcall word GetButtonID() |
144 | inline fastcall word GetButtonID() |
147 | { |
145 | { |
148 | $mov eax,17 |
146 | $mov eax,17 |
149 | $int 0x40 |
147 | $int 0x40 |
Line 169... | Line 167... | ||
169 | { |
167 | { |
170 | $mov eax,9; |
168 | $mov eax,9; |
171 | $int 0x40 |
169 | $int 0x40 |
172 | } |
170 | } |
Line 173... | Line 171... | ||
173 | 171 | ||
174 | int GetProcessSlot( ECX) //ECX = process ID |
172 | inline fastcall int GetProcessSlot( ECX) |
175 | { |
173 | { |
176 | EAX = 18; |
174 | EAX = 18; |
177 | EBX = 21; |
175 | EBX = 21; |
178 | $int 0x40; |
176 | $int 0x40 |
Line 179... | Line 177... | ||
179 | } |
177 | } |
180 | 178 | ||
181 | inline fastcall int ActiveProcess() |
179 | inline fastcall int GetActiveProcess() |
182 | { |
180 | { |
183 | EAX = 18; |
181 | EAX = 18; |
184 | EBX = 7; |
182 | EBX = 7; |
Line 207... | Line 205... | ||
207 | EAX = 26; |
205 | EAX = 26; |
208 | EBX = 5; |
206 | EBX = 5; |
209 | $int 0x40 |
207 | $int 0x40 |
210 | } |
208 | } |
Line 211... | Line -... | ||
211 | - | ||
212 | inline fastcall void DrawTitle( ECX) |
- | |
213 | { |
- | |
214 | EAX = 71; |
- | |
215 | EBX = 1; |
- | |
216 | $int 0x40; |
- | |
217 | } |
- | |
218 | 209 | ||
219 | inline fastcall dword GetSkinWidth() |
210 | inline fastcall dword GetSkinWidth() |
220 | { |
211 | { |
221 | $push ebx |
212 | $push ebx |
222 | $mov eax,48 |
213 | $mov eax,48 |
223 | $mov ebx,4 |
214 | $mov ebx,4 |
224 | $int 0x40 |
215 | $int 0x40 |
225 | $pop ebx |
216 | $pop ebx |
Line 226... | Line 217... | ||
226 | } |
217 | } |
- | 218 | ||
227 | 219 | inline fastcall void SetSystemSkin( ECX) |
|
228 | inline fastcall void SetSystemSkin(ECX){ |
220 | { |
229 | EAX = 48; |
221 | EAX = 48; |
230 | EBX = 8; |
222 | EBX = 8; |
Line 238... | Line 230... | ||
238 | $int 0x40 |
230 | $int 0x40 |
239 | $shr eax, 16 |
231 | $shr eax, 16 |
240 | $and eax,0x0000FFFF |
232 | $and eax,0x0000FFFF |
241 | } |
233 | } |
Line 242... | Line -... | ||
242 | - | ||
243 | inline fastcall MoveSize( EBX,ECX,EDX,ESI) |
- | |
244 | { |
- | |
245 | EAX = 67; |
- | |
246 | $int 0x40 |
- | |
247 | } |
- | |
248 | 234 | ||
249 | inline fastcall dword LoadLibrary( ECX) |
235 | inline fastcall dword LoadLibrary( ECX) |
250 | { |
236 | { |
251 | $mov eax, 68 |
237 | $mov eax, 68 |
252 | $mov ebx, 19 |
238 | $mov ebx, 19 |
253 | $int 0x40 |
239 | $int 0x40 |
Line 254... | Line -... | ||
254 | } |
- | |
255 | - | ||
256 | //------------------------------------------------------------------------------ |
- | |
257 | inline fastcall dword strlen( EDI) |
- | |
258 | { |
- | |
259 | EAX=0; |
- | |
260 | ECX=-1; |
- | |
261 | $REPNE $SCASB |
- | |
262 | EAX-=2+ECX; |
- | |
263 | } |
- | |
264 | - | ||
265 | - | ||
266 | inline fastcall strcpy( EDI, ESI) |
- | |
267 | { |
- | |
268 | $cld |
- | |
269 | l2: |
- | |
270 | $lodsb |
- | |
271 | $stosb |
- | |
272 | $test al,al |
- | |
273 | $jnz l2 |
- | |
274 | } |
- | |
275 | - | ||
276 | inline fastcall strcat( EDI, ESI) |
- | |
277 | { |
- | |
278 | asm { |
- | |
279 | MOV EBX, EDI |
- | |
280 | XOR ECX, ECX |
- | |
281 | XOR EAX, EAX |
- | |
282 | DEC ECX |
- | |
283 | REPNE SCASB |
- | |
284 | DEC EDI |
- | |
285 | MOV EDX, EDI |
- | |
286 | MOV EDI, ESI |
- | |
287 | XOR ECX, ECX |
- | |
288 | XOR EAX, EAX |
- | |
289 | DEC ECX |
- | |
290 | REPNE SCASB |
- | |
291 | XOR ECX, 0FFFFFFFFH |
- | |
292 | MOV EDI, EDX |
- | |
293 | MOV EDX, ECX |
- | |
294 | MOV EAX, EDI |
- | |
295 | SHR ECX, 2 |
- | |
296 | REP MOVSD |
- | |
297 | MOV ECX, EDX |
- | |
298 | AND ECX, 3 |
- | |
299 | REP MOVSB |
- | |
300 | MOV EAX, EBX |
- | |
301 | } |
- | |
302 | } |
- | |
303 | - | ||
304 | char buffer[11]=""; |
- | |
305 | inline fastcall dword IntToStr( ESI) |
- | |
306 | { |
- | |
307 | $mov edi, #buffer |
- | |
308 | $mov ecx, 10 |
- | |
309 | $test esi, esi |
- | |
310 | $jns f1 |
- | |
311 | $mov al, '-' |
- | |
312 | $stosb |
- | |
313 | $neg esi |
- | |
314 | f1: |
- | |
315 | $mov eax, esi |
- | |
316 | $push -'0' |
- | |
317 | f2: |
- | |
318 | $xor edx, edx |
- | |
319 | $div ecx |
- | |
320 | $push edx |
- | |
321 | $test eax, eax |
- | |
322 | $jnz f2 |
- | |
323 | f3: |
- | |
324 | $pop eax |
- | |
325 | $add al, '0' |
- | |
326 | $stosb |
- | |
327 | $jnz f3 |
- | |
328 | $mov eax, #buffer |
- | |
329 | $ret |
- | |
330 | } |
- | |
331 | - | ||
332 | - | ||
333 | inline fastcall dword StrToInt() |
- | |
334 | { |
- | |
335 | ESI=EDI=EAX; |
- | |
336 | IF(DSBYTE[ESI]=='-')ESI++; |
- | |
337 | EAX=0; |
- | |
338 | BH=AL; |
- | |
339 | do{ |
- | |
340 | BL=DSBYTE[ESI]-'0'; |
- | |
341 | EAX=EAX*10+EBX; |
- | |
342 | ESI++; |
- | |
343 | }while(DSBYTE[ESI]>0); |
- | |
344 | IF(DSBYTE[EDI]=='-') -EAX; |
- | |
345 | } |
- | |
346 | - | ||
347 | - | ||
348 | inline fastcall int strcmp( ESI, EDI) |
- | |
349 | { |
- | |
350 | loop() |
- | |
351 | { |
- | |
352 | IF (DSBYTE[ESI] |
- | |
353 | IF (DSBYTE[ESI]>DSBYTE[EDI]) RETURN 1; |
- | |
354 | IF (DSBYTE[ESI]=='\0') RETURN 0; |
- | |
355 | ESI++; |
- | |
356 | EDI++; |
- | |
357 | } |
- | |
358 | } |
- | |
359 | - | ||
360 | inline fastcall unsigned int find_symbol( ESI,BL) |
- | |
361 | { |
- | |
362 | int jj=0, last=-1; |
- | |
363 | do{ |
- | |
364 | jj++; |
- | |
365 | $lodsb |
- | |
366 | IF(AL==BL) last=jj; |
- | |
367 | } while(AL!=0); |
- | |
368 | return last; |
- | |
369 | } |
- | |
370 | - | ||
371 | - | ||
372 | inline fastcall dword upcase( ESI) |
- | |
373 | { |
- | |
374 | do{ |
- | |
375 | AL=DSBYTE[ESI]; |
- | |
376 | IF(AL>='a')IF(AL<='z')DSBYTE[ESI]=AL&0x5f; |
- | |
377 | ESI++; |
- | |
378 | }while(AL!=0); |
- | |
379 | } |
- | |
380 | - | ||
381 | inline fastcall lowcase( ESI) |
- | |
382 | { |
- | |
383 | do{ |
- | |
384 | $LODSB |
- | |
385 | IF(AL>='A')&&(AL<='Z'){ |
- | |
386 | AL+=0x20; |
- | |
387 | DSBYTE[ESI-1]=AL; |
- | |
388 | CONTINUE; |
- | |
389 | } |
- | |
390 | }while(AL!=0); |
- | |
391 | } |
240 | } |
392 | 241 | ||
393 | byte fastcall TestBit( EAX, CL) |
242 | byte fastcall TestBit( EAX, CL) |
394 | { |
243 | { |
395 | $shr eax,cl |
244 | $shr eax,cl |
Line 396... | Line -... | ||
396 | $and eax,1 |
- | |
397 | } |
- | |
Line -... | Line 245... | ||
- | 245 | $and eax,1 |
|
Line 398... | Line 246... | ||
398 | 246 | } |
|
399 | //------------------------------------------------------------------------------ |
247 | |
400 | 248 | ||
401 | 249 | //------------------------------------------------------------------------------ |
|
Line 416... | Line 264... | ||
416 | EAX = 12; // function 12:tell os about windowdraw |
264 | EAX = 12; // function 12:tell os about windowdraw |
417 | EBX = 2; |
265 | EBX = 2; |
418 | $int 0x40 |
266 | $int 0x40 |
419 | } |
267 | } |
Line 420... | Line -... | ||
420 | - | ||
421 | 268 | ||
422 | inline fastcall int CreateThread( ECX,EDX) |
269 | inline fastcall MoveSize( EBX,ECX,EDX,ESI) |
423 | { |
270 | { |
424 | EAX = 51; |
- | |
425 | EBX = 1; |
271 | EAX = 67; |
426 | $int 0x40 |
272 | $int 0x40 |
Line 427... | Line 273... | ||
427 | } |
273 | } |
428 | 274 | ||
429 | inline fastcall int GetSlot( ECX) |
275 | inline fastcall void DrawTitle( ECX) |
430 | { |
276 | { |
431 | EAX = 18; |
277 | EAX = 71; |
432 | EBX = 21; |
278 | EBX = 1; |
Line 433... | Line 279... | ||
433 | $int 0x40 |
279 | $int 0x40; |
434 | } |
280 | } |
435 | 281 | ||
436 | inline fastcall int GetActiveProcess() |
282 | inline fastcall int CreateThread( ECX,EDX) |
437 | { |
283 | { |
438 | EAX = 18; |
284 | EAX = 51; |
Line 439... | Line -... | ||
439 | EBX = 7; |
- | |
440 | $int 0x40 |
285 | EBX = 1; |
441 | } |
286 | $int 0x40 |
442 | 287 | } |
|
443 | 288 | ||
444 | void WriteText(dword x,y,byte fontType, dword color, EDX, ESI) |
289 | void WriteText(dword x,y,byte fontType, dword color, EDX, ESI) |
Line 501... | Line 346... | ||
501 | EAX = 8; |
346 | EAX = 8; |
502 | EDX += BT_DEL; |
347 | EDX += BT_DEL; |
503 | $int 0x40; |
348 | $int 0x40; |
504 | } |
349 | } |
Line -... | Line 350... | ||
- | 350 | ||
- | 351 | ||
- | 352 | //------------------------------------------------------------------------------ |
|
505 | 353 | ||
506 | :void DrawRegion(dword x,y,width,height,color1) |
354 | void DrawRegion(dword x,y,width,height,color1) |
507 | { |
355 | { |
508 | DrawBar(x,y,width,1,color1); //¯®«®á £®à ᢥàåã |
356 | DrawBar(x,y,width,1,color1); //¯®«®á £®à ᢥàåã |
509 | DrawBar(x,y+height,width,1,color1); //¯®«®á £®à ᨧã |
357 | DrawBar(x,y+height,width,1,color1); //¯®«®á £®à ᨧã |
510 | DrawBar(x,y,1,height,color1); //¯®«®á ¢¥àåã á«¥¢ |
358 | DrawBar(x,y,1,height,color1); //¯®«®á ¢¥àåã á«¥¢ |
511 | DrawBar(x+width,y,1,height+1,color1); //¯®«®á ¢¥àåã á¯à ¢ |
359 | DrawBar(x+width,y,1,height+1,color1); //¯®«®á ¢¥àåã á¯à ¢ |
Line 512... | Line 360... | ||
512 | } |
360 | } |
513 | 361 | ||
514 | :void DrawRegion_3D(dword x,y,width,height,color1,color2) |
362 | void DrawRegion_3D(dword x,y,width,height,color1,color2) |
515 | { |
363 | { |
516 | DrawBar(x,y,width+1,1,color1); //¯®«®á £®à ᢥàåã |
364 | DrawBar(x,y,width+1,1,color1); //¯®«®á £®à ᢥàåã |
517 | DrawBar(x,y+1,1,height-1,color1); //¯®«®á á«¥¢ |
365 | DrawBar(x,y+1,1,height-1,color1); //¯®«®á á«¥¢ |
Line 523... | Line 371... | ||
523 | { |
371 | { |
524 | DrawRegion_3D(x,y,width,height,0x94AECE,0x94AECE); |
372 | DrawRegion_3D(x,y,width,height,0x94AECE,0x94AECE); |
525 | DrawRegion_3D(x+1,y+1,width-2,height-2,0xFFFFFF,0xC7C7C7); |
373 | DrawRegion_3D(x+1,y+1,width-2,height-2,0xFFFFFF,0xC7C7C7); |
526 | DrawBar(x+2,y+2,width-3,height-3,color); //§ «¨¢ª |
374 | DrawBar(x+2,y+2,width-3,height-3,color); //§ «¨¢ª |
527 | IF (id<>0) DefineButton(x,y,width,height,id+BT_HIDE,0xEFEBEF); //ª®¯ª |
375 | IF (id<>0) DefineButton(x,y,width,height,id+BT_HIDE,0xEFEBEF); //ª®¯ª |
528 | WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,0,text,0); |
376 | //WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,0,text,0); |
- | 377 | WriteText(width/2+x+1,height/2-3+y,0x80,0,text,0); |
|
529 | } |
378 | } |
Line 530... | Line 379... | ||
530 | 379 | ||
531 | :void DrawCircle(int x, y, r) |
380 | void DrawCircle(int x, y, r) |
- | 381 | { |
|
532 | { |
382 | int i; |
533 | int i; float px=0, py=r, ii = r * 3.1415926 * 2; |
383 | float px=0, py=r, ii = r * 3.1415926 * 2; |
534 | FOR (i = 0; i < ii; i++) |
384 | FOR (i = 0; i < ii; i++) |
535 | { |
385 | { |
536 | PutPixel(px + x, y - py, 0); |
386 | PutPixel(px + x, y - py, 0); |
537 | px = py / r + px; |
387 | px = py / r + px; |