* setne operand size fixed

This commit is contained in:
Tomas Hajny 2001-04-20 19:05:11 +00:00
parent a01b4a31ee
commit e24d5ca616

View File

@ -86,10 +86,10 @@ type Tos=(osDOS,osOS2,osDPMI);
var os_mode:Tos;
first_meg:pointer;
type PSysThreadIB=^TSysThreadIB;
PThreadInfoBlock=^Tthreadinfoblock;
type Psysthreadib=^Tsysthreadib;
Pthreadinfoblock=^Tthreadinfoblock;
PPThreadInfoBlock=^PThreadInfoBlock;
PProcessInfoBlock=^TProcessInfoBlock;
Pprocessinfoblock=^Tprocessinfoblock;
PPProcessInfoBlock=^PProcessInfoBlock;
Tbytearray=array[0..$ffff] of byte;
@ -170,6 +170,8 @@ procedure syscall; external name '___SYSCALL';
{$S-}
procedure st1(stack_size:longint); assembler; [public,alias: 'FPC_STACKCHECK'];
{ called when trying to get local stack }
{ if the compiler directive $S is set }
asm
movl stack_size,%ebx
@ -691,8 +693,8 @@ end;
procedure MkDir (const S: string);
begin
If (s='') or (InOutRes <> 0) then
exit;
If (s='') or (InOutRes <> 0) then
exit;
DosDir ($39, S);
end;
@ -700,8 +702,8 @@ end;
procedure rmdir(const s : string);
begin
If (s='') or (InOutRes <> 0) then
exit;
If (s='') or (InOutRes <> 0) then
exit;
DosDir ($3A, S);
end;
@ -713,8 +715,8 @@ var RC: longint;
Buffer: array [0..255] of char;
begin
If (s='') or (InOutRes <> 0) then
exit;
If (s='') or (InOutRes <> 0) then
exit;
(* According to EMX documentation, EMX has only one current directory
for all processes, so we'll use native calls under OS/2. *)
if os_Mode = osOS2 then
@ -868,41 +870,41 @@ var tib:Pthreadinfoblock;
begin
{Determine the operating system we are running on.}
{$ASMMODE INTEL}
asm
movl $0,os_mode
movw $0x7f0a,%ax
mov os_mode, 0
mov ax, 7F0Ah
call syscall
testw $512,%bx {Bit 9 is OS/2 flag.}
setnzb os_mode
testw $4096,%bx
jz .LnoRSX
movl $2,os_mode
.LnoRSX:
{ end;}
test bx, 512 {Bit 9 is OS/2 flag.}
setne byte ptr os_mode
test bx, 4096
jz @noRSX
mov os_mode, 2
@noRSX:
{Enable the brk area by initializing it with the initial heap size.}
{ asm}
movw $0x7f01,%ax
movl HeapSize,%edx
addl heap_base,%edx
mov ax, 7F01h
mov edx, HeapSize
add edx, heap_base
call syscall
cmpl $-1,%eax
jnz .Lheapok
pushl $204
cmp eax, -1
jnz @heapok
push dword 204
call HandleError
.Lheapok:
@heapok:
end;
{Now request, if we are running under DOS,
read-access to the first meg. of memory.}
if os_mode in [osDOS,osDPMI] then
asm
movw $0x7f13,%ax
xorl %ebx,%ebx
movl $0xfff,%ecx
xorl %edx,%edx
mov ax, 7F13h
xor ebx, ebx
mov ecx, 0FFFh
xor edx, edx
call syscall
movl %eax,first_meg
mov first_meg, eax
end
else
begin
@ -956,7 +958,10 @@ begin
end.
{
$Log$
Revision 1.11 2001-03-21 23:29:40 florian
Revision 1.12 2001-04-20 19:05:11 hajny
* setne operand size fixed
Revision 1.11 2001/03/21 23:29:40 florian
+ sLineBreak and misc. stuff for Kylix compatiblity
Revision 1.10 2001/03/21 21:08:20 hajny