+ new stack checking implemented

+ IOCheck for chdir , getdir , mkdir and rmdir
This commit is contained in:
carl 1998-07-01 14:40:20 +00:00
parent c2e34ea424
commit f7f3dfabaf

View File

@ -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