mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 00:59:08 +02:00
+ new stack checking implemented
+ IOCheck for chdir , getdir , mkdir and rmdir
This commit is contained in:
parent
c2e34ea424
commit
f7f3dfabaf
@ -44,22 +44,19 @@ const
|
|||||||
plongint = ^longint;
|
plongint = ^longint;
|
||||||
|
|
||||||
{$S-}
|
{$S-}
|
||||||
procedure st1(stack_size : longint);[public,alias: 'STACKCHECK'];
|
procedure Stack_Check; assembler;
|
||||||
|
{ Check for local variable allocation }
|
||||||
begin
|
{ On Entry -> d0 : size of local stack we are trying to allocate }
|
||||||
{ called when trying to get local stack }
|
|
||||||
{ if the compiler directive $S is set }
|
|
||||||
{ it must preserve all registers !! }
|
|
||||||
asm
|
asm
|
||||||
move.l sp,d0
|
XDEF STACKCHECK
|
||||||
sub.l stack_size,d0
|
move.l sp,d1 { get value of stack pointer }
|
||||||
cmp.l __BREAK,d0
|
sub.l d0,d1 { sp - stack_size }
|
||||||
|
cmp.l __BREAK,d1
|
||||||
bgt @st1nosweat
|
bgt @st1nosweat
|
||||||
move.l #202,d0
|
move.l #202,d0
|
||||||
jsr HALT_ERROR
|
jsr HALT_ERROR
|
||||||
@st1nosweat:
|
@st1nosweat:
|
||||||
end;
|
end;
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure halt(errnum : byte);
|
procedure halt(errnum : byte);
|
||||||
@ -455,25 +452,25 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure mkdir(const s : string);
|
procedure mkdir(const s : string);[IOCheck];
|
||||||
begin
|
begin
|
||||||
DosDir($39,s);
|
DosDir($39,s);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure rmdir(const s : string);
|
procedure rmdir(const s : string);[IOCheck];
|
||||||
begin
|
begin
|
||||||
DosDir($3a,s);
|
DosDir($3a,s);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure chdir(const s : string);
|
procedure chdir(const s : string);[IOCheck];
|
||||||
begin
|
begin
|
||||||
DosDir($3b,s);
|
DosDir($3b,s);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure getdir(drivenr : byte;var dir : string);
|
procedure getdir(drivenr : byte;var dir : string);[IOCheck];
|
||||||
var
|
var
|
||||||
temp : array[0..255] of char;
|
temp : array[0..255] of char;
|
||||||
sof : pchar;
|
sof : pchar;
|
||||||
@ -567,8 +564,9 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.2 1998-05-25 12:13:51 carl
|
Revision 1.3 1998-07-01 14:40:20 carl
|
||||||
* bugfix of all routines with pea
|
+ new stack checking implemented
|
||||||
|
+ IOCheck for chdir , getdir , mkdir and rmdir
|
||||||
|
|
||||||
Revision 1.1.1.1 1998/03/25 11:18:47 root
|
Revision 1.1.1.1 1998/03/25 11:18:47 root
|
||||||
* Restored version
|
* Restored version
|
||||||
|
Loading…
Reference in New Issue
Block a user