View difference between Paste ID: BkXBq008 and J20Nwz9q
SHOW: | | - or go back to the newest paste.
1-
"Code Sequenzen" für Kerrigen :D
1+
// "Code Sequenzen" für Kerrigen :D
2
3-
--- Delphi Code inklusive Inline Assembler dient zum Feststellen der Cpu Geschwindigkeit ---
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 ---
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 ---
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
}