1. Index: MainUnit.pas
  2. ===================================================================
  3. --- MainUnit.pas (wersja 1481)
  4. +++ MainUnit.pas (kopia robocza)
  5. @@ -3666,6 +3668,7 @@
  6. Add('alloc(TypeName,256)');
  7. Add('alloc(ByteSize,4)');
  8. Add('alloc(UsesFloat,1)');
  9. + Add('//alloc(UsesDouble,1)');
  10. Add('');
  11. Add('TypeName:');
  12. Add('db ''' + n + ''',0');
  13. @@ -3696,11 +3699,17 @@
  14. Add('//parameters: (32-bit)'); //[esp]=return [esp+4]=input
  15. Add('push ebp'); //[esp]=ebp , [esp+4]=return [esp+8]=input
  16. Add('mov ebp,esp'); //[ebp]=ebp , [esp+4]=return [esp+8]=input
  17. + Add('xor edx,edx');
  18. Add('//[ebp+8]=input');
  19. + Add('//eax=output use eax and edx when UsesDouble is set to 1');
  20. Add('//example:');
  21. Add('mov eax,[ebp+8] //place the address that contains the bytes into eax');
  22. Add('mov eax,[eax] //place the bytes into eax so it''s handled as a normal 4 byte value');
  23. Add('');
  24. + Add('//if you are using UsesDouble:');
  25. + Add('//eax is less significant DWord inside double');
  26. + Add('//edx is most significant DWord inside double');
  27. + Add('');
  28. Add('pop ebp');
  29. Add('ret 4');
  30. add('[/32-bit]');
  31. @@ -3726,19 +3735,19 @@
  32. Add('push ebp'); //[esp]=ebp , [esp+4]=return [esp+8]=input
  33. Add('mov ebp,esp'); //[ebp]=ebp , [esp+4]=return [esp+8]=input
  34. Add('//[ebp+8]=input');
  35. - Add('//[ebp+c]=address of output');
  36. + Add('//[ebp+10]=address of output');
  37. Add('//example:');
  38. Add('push eax');
  39. Add('push ebx');
  40. Add('mov eax,[ebp+8] //load the value into eax');
  41. - Add('mov ebx,[ebp+c] //load the address into ebx');
  42. + Add('mov ebx,[ebp+10] //load the address into ebx');
  43. Add('mov [ebx],eax //write the value into the address');
  44. Add('pop ebx');
  45. Add('pop eax');
  46. Add('');
  47. Add('pop ebp');
  48. - Add('ret 8');
  49. + Add('ret c');
  50. add('[/32-bit]');
  51. Add('');
  52. end;

mgr.inz.Player