Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming > #1814

AWE was updated to version 1.2 ....

From "aminer" <aminer@videotron.ca>
Newsgroups comp.programming
Subject AWE was updated to version 1.2 ....
Date 2012-06-18 18:45 -0500
Organization A noiseless patient Spider
Message-ID <jrob16$1f5$1@dont-email.me> (permalink)

Show all headers | View raw


Hello,


AWE version 1.2 is here, what have changed in version 1.2 ?
now there is no getmem() and freemem() in AWEStream, you have just
to pass the size of the stream to be allocated to the constructor, like 
this:
awe1:=TAWEStream.create(getavailmem*1000);

and you can test after that if your memory was allocated like this:

if awe1.allocated

then writeln('Memory was allocated...')

else writeln('Memory was not allocated...');


I have also added another class called AWEMem , how to use
AWEMem ? when you  want to do a getmem() just call the
constructor by passing the size of the memory to be allocated like this:
awemem:=TAWEMem.create(getavailmem*1000);

and when you want to do a freemem() just call the destructor

like this:

awemem.free



Description:


Why the 2 GB limitation on the Win 32bits systems ?

My AWE object pascal module is here, it allows your application to use up to 
64GB of RAM.
And here is the public interfaces of TAWEMem and TAWEStream classes, i have 
implemented the following methods:

TAWEStream = class(TStream)

public

Memory:pointer;
allocated:boolean;
Size:longword;
position:longword;
PageSize:integer;

constructor Create();
destructor Destroy(); override;

function GetMem(ulBytes: ulong): bool;
function FreeMem(): bool;
function HowManyPagesAllocated(): ulong;
function CopyFrom(in_stream:TStream;count:longint):longint;
function CopyTo(out_stream:TStream;count:longint):longint;
function Read(var Buffer;count:longint):longint;
function Write(const Buffer;count:longint):longint;
procedure LoadFromStream(in_stream: TStream);
procedure LoadFromFile(const FileName: string);
function ToString:string;

published
property TotalMem:int64 read gettotalmem;
property AvailMem:int64 read getavailmem;
property MemLoad:int64 read getmemload;

end;

TAWEMem = class

public

memory:pointer;
allocated:boolean;
Size:longword;
PageSize:integer;

constructor Create(ulBytes: ULONG);
destructor Destroy(); override;
function HowManyPagesAllocated(): ULONG;

end;

Note: To be able to use AWE you have to set the user rights correctly, so, 
go to:

Control Panel -> Administrative tools -> Local Security Policy -> User 
Rights Assignment
and give 'Lock pages in memory' right to the user that wants to use AWE and 
reboot the system..

Every TAWEStream and TAWEMem objects can go up to 4GB , and you can go up to 
64GB of memory !


You can download AWE from:

http://pages.videotron.com/aminer/

And please look at the test examples 'test.pas' and 'test1.pas' inside the 
zipfile - compile and execute them... -

Language: FPC Pascal v2.2.0+ / Delphi 7+: http://www.freepascal.org/

Operating Systems: Windows 2000 and up (x86).

Required FPC switches: -O3 -Sd -dFPC -dWin32 -dFreePascal
-Sd for delphi mode....

Required Delphi switches: -DMSWINDOWS -$H+

For Delphi 5,6,7 use -DDelphi

For Delphi 2005,2006,2007,2009,2010+ use the switch -DDELPHI2005+


Thank you,
Amine Moulay Ramdane.




Back to comp.programming | Previous | NextNext in thread | Find similar


Thread

AWE was updated to version 1.2 .... "aminer" <aminer@videotron.ca> - 2012-06-18 18:45 -0500
  Re: AWE was updated to version 1.2 .... "aminer" <aminer@videotron.ca> - 2012-06-18 18:54 -0500
  Re: AWE was updated to version 1.2 .... "aminer" <aminer@videotron.ca> - 2012-06-18 19:51 -0500
  Re: AWE was updated to version 1.2 .... "aminer" <aminer@videotron.ca> - 2012-06-18 19:57 -0500
  Re: AWE was updated to version 1.2 .... "aminer" <aminer@videotron.ca> - 2012-06-18 22:18 -0500

csiph-web