home *** CD-ROM | disk | FTP | other *** search
- {$M 16384,50000,600000}
- uses
- Crt,
- {Mon,}
- TaVram;
- const
- MaxBigArray = 255;
- MaxArraySize = 400;
- type
- BigRecPtr = ^BigRec;
- BigRec = Record
- A: Array[1..MaxArraySize] of byte;
- end;
- var
- BRArray : Array[1..MaxBigArray] of BigRecPtr;
- I,J : integer;
- Temp : LongInt;
-
- procedure AbortTest;
- begin
- writeln('Test failed.');
- Halt(1);
- end;
-
- begin
- {$P+}
- Write('Press ENTER to continue.');
- Readln;
- VRamOn;
- VRamMaxHeapToUse:=20000;
- { FreeMin:=(MaxBigArray * 4) * 2; absolute safest if not using
- VRamMaxHeapToUse. }
- ClrScr;
- writeln('START MemAvail=',MemAvail:6);
- Window(1,2,80,25);
- VRamPageOff;
- for i:=1 to MaxBigArray do begin
- New(BRArray[i]);
- FillChar(BRArray[i]^,MaxArraySize,i);
- write(^M'MemAvail=',MemAvail:6,' VRamHeapUsed=',VRamHeapUsed:6);
- if i>100 then {Watch VRamHeapUsed go way above VRamMaxHeapToUse.}
- VRamPageOn; {then watch it pop back down.}
- end;
- writeln;
- while not KeyPressed do begin
- i:=Random(MaxBigArray)+1;
- write('Testing ',i:4,'....');
- for j:=1 to MaxArraySize do
- if BRArray[i]^.A[j]<>i then
- AbortTest;
- writeln('Tested OK!');
- end;
- for i:=50 to 55 do begin
- Dispose(BRArray[i]);
- write(^M'MemAvail=',MemAvail:6,' VRamHeapUsed=',VRamHeapUsed:6);
- end;
- for i:=1 to 49 do begin
- Dispose(BRArray[i]);
- write(^M'MemAvail=',MemAvail:6,' VRamHeapUsed=',VRamHeapUsed:6);
- end;
- for i:=56 to MaxBigArray do begin
- Dispose(BRArray[i]);
- write(^M'MemAvail=',MemAvail:6,' VRamHeapUsed=',VRamHeapUsed:6);
- end;
- writeln(^M'END MemAvail=',MemAvail:6,' VRamHeapUsed=',VRamHeapUsed:6);
- readln;
- {$P-}
- end.