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 | } |