Advertisement
Guest User

kerrigen

a guest
Dec 28th, 2012
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // "Code Sequenzen" für Kerrigen :D
  2.  
  3. //--- Delphi Code inklusive Inline Assembler dient zum Feststellen der Cpu Geschwindigkeit ---
  4. function TCpuInfo.GetCPUSpeed : Double;
  5. const
  6.   IntDelayTime = 500;
  7. var
  8.   TimerHi, TimerLo: DWORD;
  9.   IntPriorityClass, IntPriority: Integer;
  10. begin
  11.   IntPriorityClass := GetPriorityClass(GetCurrentProcess);
  12.   IntPriority := GetThreadPriority(GetCurrentThread);
  13.  
  14.   SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
  15.   SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
  16.  
  17.   Sleep(10);
  18.   asm
  19.     dw 310Fh
  20.     mov TimerLo, eax
  21.     mov TimerHi, edx
  22.   end;
  23.   Sleep(IntDelayTime);
  24.   asm
  25.     dw 310Fh
  26.     sub eax, TimerLo
  27.     sbb edx, TimerHi
  28.     mov TimerLo, eax
  29.     mov TimerHi, edx
  30.   end;
  31.  
  32.   SetThreadPriority(GetCurrentThread, IntPriority);
  33.   SetPriorityClass(GetCurrentProcess, IntPriorityClass);
  34.  
  35.   Result := TimerLo / (1000.0 * IntDelayTime);
  36. end;
  37.  
  38. //--- C++ Code, Teil eines Burrows-Wheeler-Transformation Encoders ---
  39.  
  40. UInt32 CEncoder::ReadRleBlock(Byte *buffer)
  41. {
  42.   UInt32 i = 0;
  43.   Byte prevByte;
  44.   if (m_InStream.ReadByte(prevByte))
  45.   {
  46.     UInt32 blockSize = m_BlockSizeMult * kBlockSizeStep - 1;
  47.     int numReps = 1;
  48.     buffer[i++] = prevByte;
  49.     while (i < blockSize)
  50.     {
  51.       Byte b;
  52.       if (!m_InStream.ReadByte(b))
  53.         break;
  54.       if (b != prevByte)
  55.       {
  56.         if (numReps >= kRleModeRepSize)
  57.           buffer[i++] = (Byte)(numReps - kRleModeRepSize);
  58.         buffer[i++] = b;
  59.         numReps = 1;
  60.         prevByte = b;
  61.         continue;
  62.       }
  63.       numReps++;
  64.       if (numReps <= kRleModeRepSize)
  65.         buffer[i++] = b;
  66.       else if (numReps == kRleModeRepSize + 255)
  67.       {
  68.         buffer[i++] = (Byte)(numReps - kRleModeRepSize);
  69.         numReps = 0;
  70.       }
  71.     }
  72.     if (numReps >= kRleModeRepSize)
  73.       buffer[i++] = (Byte)(numReps - kRleModeRepSize);
  74.   }
  75.   return i;
  76. }
  77.  
  78. //--- C++ Code, Teil einer Dll Implemetierung ---
  79.  
  80. BOOL WINAPI GetArcWriteTimeEx(HARC _harc, FILETIME *_lpftLastWriteTime)
  81. {
  82.     COpenArchive* pOpenArchive = COpenArchive::FindObject(_harc);
  83.     if (pOpenArchive == NULL)
  84.         return FALSE;
  85.     return pOpenArchive->GetArcWriteTimeEx(_lpftLastWriteTime);
  86. }
  87.  
  88. BOOL WINAPI GetArcFileSizeEx(HARC _harc, ULHA_INT64 *_lpllSize)
  89. {
  90.     COpenArchive* pOpenArchive = COpenArchive::FindObject(_harc);
  91.     if (pOpenArchive == NULL)
  92.         return FALSE;
  93.     return pOpenArchive->GetArcFileSizeEx(_lpllSize);
  94. }
  95.  
  96. BOOL WINAPI GetArcOriginalSizeEx(HARC _harc, ULHA_INT64 *_lpllSize)
  97. {
  98.     COpenArchive* pOpenArchive = COpenArchive::FindObject(_harc);
  99.     if (pOpenArchive == NULL)
  100.         return FALSE;
  101.     return pOpenArchive->GetArcOriginalSizeEx(_lpllSize);
  102. }
  103.  
  104. BOOL WINAPI GetArcCompressedSizeEx(HARC _harc, ULHA_INT64 *_lpllSize)
  105. {
  106.     COpenArchive* pOpenArchive = COpenArchive::FindObject(_harc);
  107.     if (pOpenArchive == NULL)
  108.         return FALSE;
  109.     return pOpenArchive->GetArcCompressedSizeEx(_lpllSize);
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement