Skip to content

Instantly share code, notes, and snippets.

View HoShiMin's full-sized avatar

Александр HoShiMin

  • OOO "SearchInform"
  • Нижний Новгород, Россия
View GitHub Profile
@HoShiMin
HoShiMin / SpliceProtection.pas
Last active December 16, 2015 15:08
Простой модуль для статической защиты от сплайсинга
unit SpliceProtection;
interface
implementation
uses
Windows, HookAPI;
type
@HoShiMin
HoShiMin / CPUIDInfo.pas
Created November 21, 2015 17:47
Модуль для получения характеристик процессора
unit CPUIDInfo;
interface
type
TSSESupport = record
SSE1 : Boolean;
SSE2 : Boolean;
SSE3 : Boolean;
SSSE3 : Boolean;
@HoShiMin
HoShiMin / FilesNotifier.pas
Last active November 13, 2015 22:15
Модуль для отслеживания изменений файлов в папках
unit FilesNotifier;
interface
uses
Windows, SysUtils, Classes, ShlwAPI;
const
FULL_NOTIFY_FILTER = FILE_NOTIFY_CHANGE_FILE_NAME or
FILE_NOTIFY_CHANGE_DIR_NAME or
@HoShiMin
HoShiMin / BeeWave.pas
Created September 2, 2015 20:44
Проигрыватель WAV-файлов на системной пищалке
unit BeeWave;
interface
uses
Windows, Classes, WAVParser, BeeperWrapper, TimeManagement;
type
TBeeWavePlayer = class
private
@HoShiMin
HoShiMin / WAVParser.pas
Created September 2, 2015 20:43
Модуль для разбора WAV-заголовка
unit WAVParser;
interface
uses
Classes;
type
TWAVHeader = packed record
ChunkId : LongWord; // "RIFF" в ASCII
@HoShiMin
HoShiMin / IndependentSynthesizer.pas
Last active September 23, 2015 09:57
Асинхронный многоканальный синтезатор для работы с системной пищалкой
unit IndependentSynthesizer;
interface
uses
SysUtils, Math, Generics.Collections,
NotesInfo, NotesSerializer, BeeperWrapper, TimeManagement;
//HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
// Плеер с независимыми каналами
@HoShiMin
HoShiMin / PowerUP.pas
Last active November 8, 2015 14:51
Экспериментальный модуль для вывода процессора из энергосберегающего режима и определения рабочей частоты
unit PowerUP;
interface
uses
Windows, Classes;
function SetPowerValue(MinPowerValue, MaxPowerValue: Byte; out OldMinThrottle, OldMaxThrottle: Byte): Boolean;
function SetPowerPercentage(PowerPercentage: Byte): Boolean;
function SetMaximumPower: Boolean;
@HoShiMin
HoShiMin / TimeManagement.pas
Last active November 11, 2015 22:14
Модуль для точного измерения времени и реализации задержек с микро- и наносекундным разрешением
unit TimeManagement;
interface
uses
Windows;
function NtQueryPerformanceCounter(Counter, Frequency: PInt64): LongWord; stdcall; external 'ntdll.dll';
function NtDelayExecution(Alertable: Boolean; Delay: PInt64): LongWord; stdcall; external 'ntdll.dll';
@HoShiMin
HoShiMin / DosSynth.asm
Last active August 29, 2015 14:26
Проверка BeeSynth в реальном режиме (DOS)
use16
org 100h
; Успешно загрузились:
mov ax, SuccessfulStartup
call WriteLn
; Настраиваем пищалку:
call SetBeeperRegime
call StartBeeper
@HoShiMin
HoShiMin / FastestMove.pas
Last active August 29, 2015 14:23
Самое быстрое копирование в памяти: реализация на MMX
unit FastestMove;
interface
procedure MoveMMX(Src, Dest: Pointer; {$IFDEF CPUX64}Size: UInt64{$ELSE}Size: LongWord{$ENDIF}); stdcall;
implementation