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 >
Text File  |  2003-08-26  |  3KB  |  69 lines

  1. {*******************************************************}
  2. {                                                       }
  3. {       MiTeC System Information Component              }
  4. {             Direct Memory Access                      }
  5. {           version 8.3.1 for Delphi 5,6,7                }
  6. {                                                       }
  7. {       Copyright ⌐ 1997,2003 Michal Mutl               }
  8. {                                                       }
  9. {*******************************************************}
  10.  
  11. {$INCLUDE MITEC_DEF.INC}
  12.  
  13. unit MSI_DMA;
  14.  
  15. interface
  16.  
  17. uses Windows, Classes, SysUtils, MSI_Common;
  18.  
  19.  
  20. type
  21.   PMemoryBuffer = ^TMemoryBuffer;
  22.   TMemoryBuffer = array[0..65535] of Char;
  23.   TArrayBuffer = array[0..254] of Char;
  24.  
  25.   TDMA = class(TPersistent)
  26.   private
  27.     FPS: DWORD;
  28.     FMemory: PChar;
  29.     FStartAddress: DWORD;
  30.     FSize: DWORD;
  31.     FMode: TExceptionMode;
  32.     function GetAddressByteValue(Address: DWORD): Byte;
  33.     function GetAddressDwordValue(Address: DWORD): Dword;
  34.     function GetAddressWordValue(Address: DWORD): Word;
  35.     function GetAddressArrayValue(Address: DWORD; Length: Byte): TArrayBuffer;
  36.     function GetAddressCharValue(Address: DWORD): Char;
  37.   public
  38.     constructor Create;
  39.     function MapMemory(StartAddress: DWORD; Size: DWORD): Boolean;
  40.     destructor Destroy; override;
  41.     procedure SaveToFile(FileName: string);
  42.     procedure SaveToStream(var S: TStream);
  43.  
  44.     procedure LoadFromStream(S: TStream);
  45.     procedure LoadFromFile(FileName: string);
  46.  
  47.     property CharValue[Address: DWORD]: Char read GetAddressCharValue;
  48.     property ByteValue[Address: DWORD]: Byte read GetAddressByteValue;
  49.     property WordValue[Address: DWORD]: Word read GetAddressWordValue;
  50.     property DWORDValue[Address: DWORD]: Dword read GetAddressDwordValue;
  51.     property ArrayValue[Address: DWORD; Length: Byte]: TArrayBuffer read GetAddressArrayValue;
  52.  
  53.     function IsValidAddress(A: DWORD): Boolean;
  54.     function FindSequence(StartAddr: DWORD; Sequence: string): DWORD;
  55.  
  56.     property Memory: PChar read FMemory;
  57.     property StartAddress: DWORD read FStartAddress;
  58.     property MemorySize: DWORD read FSize;
  59.     property ExceptionMode: TExceptionMode read FMode write FMode;
  60.   end;
  61.  
  62. resourcestring
  63.   rsCannotMap = 'Cannot map physical memory to process memory!';
  64.   rsNotAdmin = 'Cannot access physical memory!'#13#10+
  65.               '(You should be a member of local administrators)';
  66.  
  67. implementation
  68.  
  69.