[Back to DATATYPE SWAG index] [Back to Main SWAG index] [Original]
{
>Do you know if the 64k Array limit still holds True when compiling
>under protected mode in BP7?
>...The answer is yes, however the limit is 64K (or 65,521 Bytes
>to be more exact ie: < 65,535 Bytes) per data element. (ie: You
>can create an Array of 1..N of 64K elements, using an Array of
>Pointers.)
>But you can do *that* in Real mode.
...Yes, but try building something like this:
}
Uses
Crt;
Type
ar_64K = Array[1..65521] of Byte;
po_ar64K = ^ar_64K;
ar_Po64K = Array[1..200] of po_ar64K;
Var
by_Index : Byte;
Buffer : ar_Po64K;
begin
ClrScr;
by_Index := 0;
While (MaxAvail > SizeOf(ar_64K)) do
begin
Inc(by_Index);
New(Buffer[by_Index]);
GotoXY(1,1);
ClrEol;
Write('Maximum Memory Available: ', MaxAvail);
Delay(300);
end;
end.
{
...Using the DPMI HEAP (and calling the correct DPMI Function
to use your hard disk as virtual memory, unless you do have
16Mb in your PC) you can allocate all 200 64K chunks of memory.
With the "Real mode" HEAP, you'd be lucky to be able to allocate
9 of these 64K chunks.
...It also means that you can use this DPMI HEAP to run HUGE .EXE's,
as it can be used For either CODE or DATA. So you can forget about
overlays, as you won't need them anymore.
}
[Back to DATATYPE SWAG index] [Back to Main SWAG index] [Original]