home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2004 February
/
Chip_2004-02_cd1.bin
/
zkuste
/
konfig
/
download
/
msic
/
Help
/
Int
/
MSI_DMA.int
< prev
next >
Wrap
Text File
|
2003-08-26
|
3KB
|
69 lines
{*******************************************************}
{ }
{ MiTeC System Information Component }
{ Direct Memory Access }
{ version 8.3.1 for Delphi 5,6,7 }
{ }
{ Copyright ⌐ 1997,2003 Michal Mutl }
{ }
{*******************************************************}
{$INCLUDE MITEC_DEF.INC}
unit MSI_DMA;
interface
uses Windows, Classes, SysUtils, MSI_Common;
type
PMemoryBuffer = ^TMemoryBuffer;
TMemoryBuffer = array[0..65535] of Char;
TArrayBuffer = array[0..254] of Char;
TDMA = class(TPersistent)
private
FPS: DWORD;
FMemory: PChar;
FStartAddress: DWORD;
FSize: DWORD;
FMode: TExceptionMode;
function GetAddressByteValue(Address: DWORD): Byte;
function GetAddressDwordValue(Address: DWORD): Dword;
function GetAddressWordValue(Address: DWORD): Word;
function GetAddressArrayValue(Address: DWORD; Length: Byte): TArrayBuffer;
function GetAddressCharValue(Address: DWORD): Char;
public
constructor Create;
function MapMemory(StartAddress: DWORD; Size: DWORD): Boolean;
destructor Destroy; override;
procedure SaveToFile(FileName: string);
procedure SaveToStream(var S: TStream);
procedure LoadFromStream(S: TStream);
procedure LoadFromFile(FileName: string);
property CharValue[Address: DWORD]: Char read GetAddressCharValue;
property ByteValue[Address: DWORD]: Byte read GetAddressByteValue;
property WordValue[Address: DWORD]: Word read GetAddressWordValue;
property DWORDValue[Address: DWORD]: Dword read GetAddressDwordValue;
property ArrayValue[Address: DWORD; Length: Byte]: TArrayBuffer read GetAddressArrayValue;
function IsValidAddress(A: DWORD): Boolean;
function FindSequence(StartAddr: DWORD; Sequence: string): DWORD;
property Memory: PChar read FMemory;
property StartAddress: DWORD read FStartAddress;
property MemorySize: DWORD read FSize;
property ExceptionMode: TExceptionMode read FMode write FMode;
end;
resourcestring
rsCannotMap = 'Cannot map physical memory to process memory!';
rsNotAdmin = 'Cannot access physical memory!'#13#10+
'(You should be a member of local administrators)';
implementation