slight rtl update for i8086-msdos

git-svn-id: branches/i8086@23777 -
This commit is contained in:
nickysn 2013-03-10 16:57:15 +00:00
parent 7d883e7d52
commit 3768914a3d
9 changed files with 149 additions and 0 deletions

5
.gitattributes vendored
View File

@ -7783,6 +7783,9 @@ rtl/i386/setjumph.inc svneol=native#text/plain
rtl/i386/strings.inc svneol=native#text/plain rtl/i386/strings.inc svneol=native#text/plain
rtl/i386/stringss.inc svneol=native#text/plain rtl/i386/stringss.inc svneol=native#text/plain
rtl/i386/strpas.inc svneol=native#text/plain rtl/i386/strpas.inc svneol=native#text/plain
rtl/i8086/i8086.inc svneol=native#text/plain
rtl/i8086/setjump.inc svneol=native#text/plain
rtl/i8086/setjumph.inc svneol=native#text/plain
rtl/inc/aliases.inc svneol=native#text/plain rtl/inc/aliases.inc svneol=native#text/plain
rtl/inc/astrings.inc svneol=native#text/plain rtl/inc/astrings.inc svneol=native#text/plain
rtl/inc/cgeneric.inc svneol=native#text/plain rtl/inc/cgeneric.inc svneol=native#text/plain
@ -8191,6 +8194,8 @@ rtl/morphos/varutils.pp svneol=native#text/plain
rtl/morphos/video.pp svneol=native#text/plain rtl/morphos/video.pp svneol=native#text/plain
rtl/morphos/videodata.inc svneol=native#text/plain rtl/morphos/videodata.inc svneol=native#text/plain
rtl/msdos/prt0.asm svneol=native#text/plain rtl/msdos/prt0.asm svneol=native#text/plain
rtl/msdos/sysos.inc svneol=native#text/plain
rtl/msdos/sysosh.inc svneol=native#text/plain
rtl/msdos/system.pp svneol=native#text/plain rtl/msdos/system.pp svneol=native#text/plain
rtl/nativent/Makefile svneol=native#text/plain rtl/nativent/Makefile svneol=native#text/plain
rtl/nativent/Makefile.fpc svneol=native#text/plain rtl/nativent/Makefile.fpc svneol=native#text/plain

15
rtl/i8086/i8086.inc Normal file
View File

@ -0,0 +1,15 @@
{
This file is part of the Free Pascal run time library.
Copyright (c) 2013 by the Free Pascal development team.
Processor dependent implementation for the system unit for
intel i8086+
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}

23
rtl/i8086/setjump.inc Normal file
View File

@ -0,0 +1,23 @@
{
This file is part of the Free Pascal run time library.
Copyright (c) 2013 by the Free Pascal development team
SetJmp and LongJmp implementation for exception handling
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
Function fpc_SetJmp (Var S : Jmp_buf) : longint;assembler;nostackframe;[Public, alias : 'FPC_SETJMP']; compilerproc;
asm
end;
Procedure fpc_longJmp (Var S : Jmp_buf; value : longint); assembler;nostackframe;[Public, alias : 'FPC_LONGJMP']; compilerproc;
asm
end;

22
rtl/i8086/setjumph.inc Normal file
View File

@ -0,0 +1,22 @@
{
This file is part of the Free Pascal run time library.
Copyright (c) 2013 the Free Pascal development team
SetJmp/Longjmp declarations
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
Type
jmp_buf = packed record
end;
PJmp_buf = ^jmp_buf;
Function Setjmp (Var S : Jmp_buf) : longint; [external name 'FPC_SETJMP'];
Procedure longjmp (Var S : Jmp_buf; value : longint); [external name 'FPC_LONGJMP'];

View File

@ -157,6 +157,14 @@ function do_isdevice(handle:thandle):boolean;forward;
{$define SYSPROCDEFINED} {$define SYSPROCDEFINED}
{$endif cpui386} {$endif cpui386}
{$ifdef cpui8086}
{$ifdef SYSPROCDEFINED}
{$Error Can't determine processor type !}
{$endif}
{$i i8086.inc} { Case dependent, don't change }
{$define SYSPROCDEFINED}
{$endif cpui8086}
{$ifdef cpum68k} {$ifdef cpum68k}
{$ifdef SYSPROCDEFINED} {$ifdef SYSPROCDEFINED}
{$Error Can't determine processor type !} {$Error Can't determine processor type !}

View File

@ -114,6 +114,21 @@ Type
{$endif} {$endif}
{$endif CPUI386} {$endif CPUI386}
{$ifdef CPUI8086}
{$define CPU16}
{$define DEFAULT_EXTENDED}
{$define SUPPORT_SINGLE}
{$define SUPPORT_DOUBLE}
{$define SUPPORT_EXTENDED}
{$define SUPPORT_COMP}
{$ifndef FPUNONE}
ValReal = Extended;
{$endif}
{$endif CPUI8086}
{$ifdef CPUX86_64} {$ifdef CPUX86_64}
{$ifdef FPC_HAS_TYPE_EXTENDED} {$ifdef FPC_HAS_TYPE_EXTENDED}
{ win64 doesn't support the legacy fpu } { win64 doesn't support the legacy fpu }

16
rtl/msdos/sysos.inc Normal file
View File

@ -0,0 +1,16 @@
{
This file is part of the Free Pascal run time library.
Copyright (c) 2013 by Free Pascal development team
This file implements all the base types and limits required
for a minimal POSIX compliant subset required to port the compiler
to a new OS.
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}

26
rtl/msdos/sysosh.inc Normal file
View File

@ -0,0 +1,26 @@
{
This file is part of the Free Pascal run time library.
Copyright (c) 2013 by Free Pascal development team
This file implements all the base types and limits required
for a minimal POSIX compliant subset required to port the compiler
to a new OS.
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
{Platform specific information}
type
THandle = Longint;
TThreadID = THandle;
PRTLCriticalSection = ^TRTLCriticalSection;
TRTLCriticalSection = record
Locked: boolean
end;

View File

@ -4,14 +4,32 @@ unit system;
interface interface
{$ifdef FULL_RTL}
{$I systemh.inc}
{$endif FULL_RTL}
const
maxExitCode = 255;
{$ifndef FULL_RTL}
type type
DWord = LongWord;
Cardinal = LongWord;
Integer = SmallInt;
UInt64 = QWord;
HRESULT = LongInt; HRESULT = LongInt;
{$endif FULL_RTL}
procedure DebugWrite(const S: string); procedure DebugWrite(const S: string);
procedure DebugWriteLn(const S: string); procedure DebugWriteLn(const S: string);
implementation implementation
{$ifdef FULL_RTL}
{$I system.inc}
{$endif FULL_RTL}
procedure fpc_Initialize_Units;[public,alias:'FPC_INITIALIZEUNITS']; compilerproc; procedure fpc_Initialize_Units;[public,alias:'FPC_INITIALIZEUNITS']; compilerproc;
begin begin
end; end;
@ -32,6 +50,7 @@ begin
mov cl, al mov cl, al
xor ch, ch xor ch, ch
mov ah, 2 mov ah, 2
@@1: @@1:
lodsb lodsb
mov dl, al mov dl, al