+ createheap/restoreheap procedures (only tp7 rm currently) and support

for tp7 dpmi
This commit is contained in:
peter 1998-08-11 21:38:24 +00:00
parent a5ce9c3c13
commit c0110b4ba2

View File

@ -67,6 +67,11 @@ interface
{$define USEEXCEPT}
{$endif}
{$ifdef TP}
{$ifdef DPMI}
{$undef USEEXCEPT}
{$endif}
{$endif}
uses
{$ifdef fpc}
@ -92,7 +97,10 @@ implementation
var
CompilerInited : boolean;
{$ifdef USEEXCEPT}
recoverpos : jmp_buf;
{$endif USEEXCEPT}
{$ifdef USEEXCEPT}
procedure RecoverStop;{$ifndef FPC}far;{$endif}
@ -102,6 +110,53 @@ end;
{$endif USEEXCEPT}
{****************************************************************************
Temp Heap Creation
****************************************************************************}
{$ifdef TP}
{$ifndef DPMI}
var
oldfreelist,
oldheapptr,
oldheaporg : pointer;
{$endif}
{$endif}
procedure CreateHeap;
begin
{$Ifdef TP}
{$ifndef DPMI}
{ Save old heap }
oldfreelist:=freelist;
oldheapptr:=heapptr;
oldheaporg:=heaporg;
{ Create a new heap }
heaporg:=oldheapptr;
heapptr:=heaporg;
freelist:=heaporg;
{$endif}
{$endif}
end;
procedure RestoreHeap;
begin
{$Ifdef TP}
{$ifndef DPMI}
{ Restore old heap }
freelist:=oldfreelist;
heapptr:=oldheapptr;
heaporg:=oldheaporg;
{$endif}
{$endIf TP}
end;
{****************************************************************************
Compiler
****************************************************************************}
procedure DoneCompiler;
begin
if not CompilerInited then
@ -146,29 +201,17 @@ var
{$ifdef USEEXCEPT}
olddo_stop : tstopprocedure;
{$endif}
{$ifdef TP}
oldfreelist,
oldheapptr,
oldheaporg : pointer;
{$endif}
{$IfDef Extdebug}
EntryMemAvail : longint;
{$EndIf}
begin
{$Ifdef TP}
{ Save old heap }
oldfreelist:=freelist;
oldheapptr:=heapptr;
oldheaporg:=heaporg;
{ Create a new heap }
heaporg:=oldheapptr;
heapptr:=heaporg;
freelist:=heaporg;
{$endif}
{$ifdef EXTDEBUG}
EntryMemAvail:=MemAvail;
{$endif}
{ Get a new heap }
CreateHeap;
{ Initialize the compiler }
InitCompiler(cmd);
@ -209,12 +252,10 @@ begin
{$ifdef EXTDEBUG}
Comment(V_Info,'Memory Lost = '+tostr(EntryMemAvail-MemAvail));
{$endif EXTDEBUG}
{$Ifdef TP}
{ Restore old heap }
freelist:=oldfreelist;
heapptr:=oldheapptr;
heaporg:=oldheaporg;
{$endIf TP}
{ Restore Heap }
RestoreHeap;
{ Set the return value if an error has occurred }
if status.errorcount=0 then
Compile:=0
@ -226,7 +267,11 @@ end;
end.
{
$Log$
Revision 1.4 1998-08-11 14:09:06 peter
Revision 1.5 1998-08-11 21:38:24 peter
+ createheap/restoreheap procedures (only tp7 rm currently) and support
for tp7 dpmi
Revision 1.4 1998/08/11 14:09:06 peter
* fixed some messages and smaller msgtxt.inc
Revision 1.3 1998/08/11 00:01:20 peter