Browse Source

* uniform makefile

peter 27 years ago
parent
commit
6452fa5095
6 changed files with 1715 additions and 1635 deletions
  1. 1045 1045
      rtl/os2/dos.pas
  2. 143 63
      rtl/os2/makefile
  3. 0 0
      rtl/os2/prt0.as
  4. 60 0
      rtl/os2/prt1.as
  5. 0 60
      rtl/os2/prt1.so2
  6. 467 467
      rtl/os2/sysos2.pas

File diff suppressed because it is too large
+ 1045 - 1045
rtl/os2/dos.pas


+ 143 - 63
rtl/os2/makefile

@@ -1,23 +1,29 @@
-# makes the SYSTEM-Unit for OS2
 #
 #
-# Copyright (c) 1996 by Michael Van Canneyt
+#   $Id$
+#   This file is part of the Free Pascal run time library.
+#   Copyright (c) 1996-98 by Michael van Canneyt
+#
+#   Makefile for the Free Pascal OS/2 Runtime Library
+#
+#   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.
+#
 
 
 #####################################################################
 #####################################################################
-# Start of configurable section. 
-# Please note that all these must be set in the main makefile, and 
+# Start of configurable section.
+# Please note that all these must be set in the main makefile, and
 # should be set there.
 # should be set there.
 # Don't remove the indef statements. They serve to avoid conflicts
 # Don't remove the indef statements. They serve to avoid conflicts
 # with the main makefile.
 # with the main makefile.
 #####################################################################
 #####################################################################
 
 
-# set the directory where to install the units.
-ifndef LIBINSTALLDIR
-LIBINSTALLDIR=c:/pp/bin
-endif 
-
-# What is the Operating System
-ifndef OS_SRC
-OS_SRC=os2
+# What is the Operating System ?
+ifndef OS_SOURCE
+OS_SOURCE=go32v2
 endif
 endif
 
 
 # What is the target operating system ?
 # What is the target operating system ?
@@ -25,9 +31,15 @@ ifndef OS_TARGET
 OS_TARGET=os2
 OS_TARGET=os2
 endif
 endif
 
 
+# What is the target processor :
+ifndef CPU
+CPU=i386
+#CPU=m68k
+endif
+
 # What compiler to use ?
 # What compiler to use ?
 ifndef PP
 ifndef PP
-PP=../../ppc386
+PP=ppc386
 endif
 endif
 
 
 # What options to pass to the compiler ?
 # What options to pass to the compiler ?
@@ -36,19 +48,38 @@ ifndef OPT
 OPT=
 OPT=
 endif
 endif
 
 
-ifndef CPU
-CPU=i386
-endif 
+# Where is the PPUMOVE program ?
+ifndef PPUMOVE
+PPUMOVE=ppumove
+endif
+
+# Set this to 'shared' or 'static'
+LIBTYPE=shared
+
+# AOUT should be defined in main makefile.
+# But you can set it here too.
+# AOUT = -DAOUT
+
+# Do you want to link to the C library ?
+# Standard it is NO. You can set it to YES to link in th C library.
+ifndef LINK_TO_C
+LINK_TO_C=NO
+endif
 
 
 #####################################################################
 #####################################################################
-# End of configurable section. 
+# End of configurable section.
 # Do not edit after this line.
 # Do not edit after this line.
 #####################################################################
 #####################################################################
 
 
-# Where are the include files
+#####################################################################
+# System independent
+#####################################################################
+
+# Where are the include files ?
 INC=../inc
 INC=../inc
 PROCINC=../$(CPU)
 PROCINC=../$(CPU)
 CFG=../cfg
 CFG=../cfg
+OBJPASDIR=../objpas
 
 
 # Get some defaults for Programs and OSes.
 # Get some defaults for Programs and OSes.
 # This will set the following variables :
 # This will set the following variables :
@@ -59,13 +90,13 @@ CFG=../cfg
 include $(CFG)/makefile.cfg
 include $(CFG)/makefile.cfg
 
 
 # Get the system independent include file names.
 # Get the system independent include file names.
-# This will set the following variables : 
+# This will set the following variables :
 # SYSINCNAMES
 # SYSINCNAMES
 include $(INC)/makefile.inc
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 
 
 # Get the processor dependent include file names.
 # Get the processor dependent include file names.
-# This will set the following variables : 
+# This will set the following variables :
 # CPUINCNAMES
 # CPUINCNAMES
 include $(PROCINC)/makefile.cpu
 include $(PROCINC)/makefile.cpu
 SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
@@ -77,69 +108,118 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 # System dependent
 # System dependent
 #####################################################################
 #####################################################################
 
 
+PPUEXT=.ppo
+ASMEXT=.so2
+OEXT=.o2
 
 
-PPUEXT = .ppu
+# Define Linux Units
+SYSTEMPPU=sysos2$(PPUEXT)
+OBJECTS=strings objpas \
+        dos crt
 
 
-OEXT = .obj
+LOADERS=prt0 prt1
 
 
+#####################################################################
+# System independent Makefile
+#####################################################################
 
 
-.PHONY: all clean install diffs diffclean
+# Add Prefix and Suffixes
+OBJLOADERS=$(addsuffix $(OEXT), $(LOADERS))
+PPUOBJECTS=$(addsuffix $(PPUEXT), $(OBJECTS))
 
 
-all : sysos2$(PPUEXT) prt0$(OEXT) prt1$(OEXT) dosinit$(OEXT) \
-        strings$(PPUEXT) dos$(PPUEXT) getopts$(PPUEXT)
+.PHONY : all install clean \
+	 libs libsclean \
+	 diffs diffclean \
 
 
+all : $(OBJLOADERS) $(PPUOBJECTS)
 
 
-getopts$(PPUEXT) : $(PROCINC)/getopts.pp sysos2$(PPUEXT)
-	$(COPY) $(PROCINC)/getopts.pp .
-	$(PP) $(OPT) getopts.pp $(REDIR)
-	$(DEL) getopts.pp
+install : all
+	$(MKDIR) $(UNITINSTALLDIR)
+	$(INSTALL) *$(PPUEXT) *$(OEXT) $(UNITINSTALLDIR)
 
 
-strings$(PPUEXT) : $(PROCINC)/strings.pp sysos2$(PPUEXT)
-	$(COPY) $(PROCINC)/strings.pp .
-	$(PP) $(OPT) strings.pp $(REDIR)
-	$(DEL) strings.pp
+clean :
+	-$(DEL) *$(OEXT) *$(ASMEXT) *$(PPUEXT) log
 
 
-dos$(PPUEXT) : dos.pas strings$(PPUEXT) sysos2$(PPUEXT)
-	$(PP) $(OPT) dos.pas $(REDIR)
+#####################################################################
+# Files
+#####################################################################
 
 
-sysos2$(PPUEXT) : sysos2.pas $(SYSDEPS)
-	$(PP) $(OPT) -Us sysos2.pas $(REDIR)
+#
+# Loaders
+#
 
 
-prt0$(OEXT) : prt0.so2
+prt0$(OEXT) : prt0.as
 	as -D -o prt0$(OEXT) prt0.as
 	as -D -o prt0$(OEXT) prt0.as
 
 
-prt1$(OEXT) : prt1.so2
+prt1$(OEXT) : prt1.as
 	as -D -o prt1$(OEXT) prt1.as
 	as -D -o prt1$(OEXT) prt1.as
 
 
-dosinit$(OEXT) : dosinit.as
-	as -D -o dosinit$(OEXT) dosinit.as
+#
+# Base Units (System, strings, os-dependent-base-unit)
+#
+
+$(SYSTEMPPU) : sysos2.pas $(SYSDEPS)
+	$(PP) $(OPT) -Us -Sg sysos2.pas $(REDIR)
+
+strings$(PPUEXT) : $(PROCINC)/strings.pp $(SYSTEMPPU)
+	$(COPY) $(PROCINC)/strings.pp .
+	$(PP) $(OPT) strings $(REDIR)
+	$(DEL) strings.pp
+
+#
+# Delphi Object Model
+#
+
+objpas$(PPUEXT) : $(OBJPASDIR)/objpas.pp $(SYSTEMPPU)
+	$(COPY) $(OBJPASDIR)/objpas.pp .
+	$(PP) $(OPT) objpas $(REDIR)
+	$(DEL) objpas.pp
+
+#
+# System Dependent Units
+#
+
+#
+# TP7 Compatible RTL Units
+#
+
+dos$(PPUEXT) : dos.pas $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) $(SYSTEMPPU)
+	$(PP) $(OPT) dos.pas $(REDIR)
+
+crt$(PPUEXT) : crt.pas dos$(PPUEXT)
+	$(PP) $(OPT) crt.pas $(REDIR)
+
+#objects$(PPUEXT) : $(INC)/objects.pp objinc.inc $(SYSTEMPPU)
+#	 $(COPY) $(INC)/objects.pp .
+#	 $(PP) $(OPT) objects $(REDIR)
+#	 $(DEL) objects.pp
 
 
-clean:
-	-$(DEL) *$(OEXT)
-	-$(DEL) *$(PPUEXT)
-	-$(DEL) *.dif
-	-$(DEL) *.s
-	-$(DEL) log
+#
+# Other RTL Units
+#
 
 
-diffclean:
-	-$(DEL) *.dif
+#####################################################################
+# Libs
+#####################################################################
 
 
-install: all
-	$(MKDIR) $(LIBINSTALLDIR)/os2units
-	$(INSTALL) *$(OEXT) *$(PPUEXT) $(LIBINSTALLDIR)/os2units
+libs	: all libfpc$(LIBEXT)
 
 
-%.dif : %.pas
-	-$(DIFF) $(DIFOPTS) $*.pas $(REFPATH)/os2/$*.pas > $*.dif
+libfpc.so:
+	$(PPUMOVE) -o fpc *.ppu
 
 
-%.dif : %.inc
-	-$(DIFF) $(DIFOPTS) $*.inc $(REFPATH)/os2/$*.inc > $*.dif
+libfpc.a:
+	$(PPUMOVE) -s -o fpc *.ppu
 
 
-%.dif : %.as
-	-$(DIFF) $(DIFOPTS) $*.as $(REFPATH)/os2/$*.as > $*.dif
+libinstall : libs
+	$(INSTALLEXE) libfpc$(LIBEXT) $(LIBINSTALLDIR)
+	$(INSTALL) *$(PPLEXT) $(UNITINSTALLDIR)
+	ldconfig
 
 
-makefile.dif : makefile
-	-$(DIFF) $(DIFFOPTS) makefile $(REFPATH)/os2/makefile > makefile.dif
-	
+libsclean : clean
+	-$(DEL) *.a *.so *$(PPLEXT)
+
+#####################################################################
+# Default targets
+#####################################################################
 
 
-diffs: sysos2.dif dos.dif doscalls.dif os.dif prt0.dif prt1.dif dosinit.dif \
-       makefile.dif
+include $(CFG)/makefile.def

+ 0 - 0
rtl/os2/prt0.so2 → rtl/os2/prt0.as


+ 60 - 0
rtl/os2/prt1.as

@@ -0,0 +1,60 @@
+/ prt1.s (emx+fpk) -- Made from crt2.s and dos.s,
+/                                         Copyright (c) 1990-1996 by Eberhard Mattes.
+/                     Changed for FPK-Pascal in 1997 Dani‰l Mantione.
+/                                         This code is _not_ under the Library GNU Public
+/                                         License, because the original is not. See copying.emx
+/                                         for details. You should have received it with this
+/                                         product, write the author if you haven't.
+
+                .globl  __entry1
+                .globl  _environ
+                .globl  _envc
+                .globl  _argv
+                .globl  _argc
+
+                .text
+
+__entry1:
+                popl    %esi
+                xorl    %ebp, %ebp
+                leal    (%esp), %edi
+                movl    %edi,_environ
+                call    L_ptr_tbl
+                mov             %ecx,_envc
+                mov             %edi,_argv
+                call    L_ptr_tbl
+                mov             %ecx,_argc
+                jmp     *%esi
+
+L_ptr_tbl:
+                xorl    %eax, %eax
+                movl    $-1, %ecx
+1:      incl    %ecx
+                scasl
+                jne     1b
+                ret
+
+/ In executables created with emxbind, the call to _dos_init will
+/ be fixed up at load time to _emx_init of emx.dll.  Under DOS,
+/ this dummy is called instead as there is no fixup.  This module
+/ must be linked statically to avoid having two fixups for the
+/ same location.
+
+                .globl  __dos_init
+                .globl  __dos_syscall
+
+__dos_init:
+                ret     $4
+
+                .align  2, 0x90
+
+__dos_syscall:
+                int     $0x21
+                ret
+
+                .data
+
+                .comm   _environ,       4
+                .comm   _envc,          4
+                .comm   _argv,          4
+                .comm   _argc,          4

+ 0 - 60
rtl/os2/prt1.so2

@@ -1,60 +0,0 @@
-/ prt1.s (emx+fpk) -- Made from crt2.s and dos.s,
-/					  Copyright (c) 1990-1996 by Eberhard Mattes.
-/                     Changed for FPK-Pascal in 1997 Dani‰l Mantione.
-/					  This code is _not_ under the Library GNU Public
-/					  License, because the original is not. See copying.emx
-/					  for details. You should have received it with this
-/					  product, write the author if you haven't.
-
-		.globl  __entry1
-		.globl  _environ
-		.globl	_envc
-		.globl	_argv
-		.globl	_argc
-
-		.text
-
-__entry1:
-		popl    %esi
-		xorl    %ebp, %ebp
-		leal    (%esp), %edi
-		movl    %edi,_environ
-		call    L_ptr_tbl
-		mov		%ecx,_envc
-		mov		%edi,_argv
-		call    L_ptr_tbl
-		mov		%ecx,_argc
-		jmp     *%esi
-
-L_ptr_tbl:
-		xorl    %eax, %eax
-		movl    $-1, %ecx
-1:      incl    %ecx
-		scasl
-		jne     1b
-		ret
-
-/ In executables created with emxbind, the call to _dos_init will
-/ be fixed up at load time to _emx_init of emx.dll.  Under DOS,
-/ this dummy is called instead as there is no fixup.  This module
-/ must be linked statically to avoid having two fixups for the
-/ same location.
-
-		.globl  __dos_init
-		.globl  __dos_syscall
-
-__dos_init:
-		ret     $4
-
-		.align  2, 0x90
-
-__dos_syscall:
-		int     $0x21
-		ret
-
-		.data
-
-		.comm   _environ,	4
-		.comm   _envc,		4
-		.comm   _argv,		4
-		.comm   _argc,		4

+ 467 - 467
rtl/os2/sysos2.pas

@@ -1,9 +1,9 @@
 {****************************************************************************
 {****************************************************************************
 
 
-					 FPK-Pascal -- OS/2 runtime library
+                     FPK-Pascal -- OS/2 runtime library
 
 
-				  Copyright (c) 1993,95 by Florian Kl„mpfl
-				   Copyright (c) 1997 by Dani‰l Mantione
+                  Copyright (c) 1993,95 by Florian Kl„mpfl
+                   Copyright (c) 1997 by Dani‰l Mantione
 
 
  FPK-Pascal is distributed under the GNU Public License v2. So is this unit.
  FPK-Pascal is distributed under the GNU Public License v2. So is this unit.
  The GNU Public License requires you to distribute the source code of this
  The GNU Public License requires you to distribute the source code of this
@@ -32,19 +32,19 @@ unit sysos2;
 
 
 {Changelog:
 {Changelog:
 
 
-	People:
+    People:
 
 
-		DM - Dani‰l Mantione
+        DM - Dani‰l Mantione
 
 
-	Date:			Description of change:				Changed by:
+    Date:           Description of change:              Changed by:
 
 
-	 -				First released version 0.1.			DM
+     -              First released version 0.1.         DM
 
 
 Coding style:
 Coding style:
 
 
-	My coding style is a bit unusual for Pascal. Nevertheless I friendly ask
-	you to try to make your changes not look all to different. In general,
-	set your IDE to use tab characters, optimal fill on and a tabsize of 4.}
+    My coding style is a bit unusual for Pascal. Nevertheless I friendly ask
+    you to try to make your changes not look all to different. In general,
+    set your IDE to use tab characters, optimal fill on and a tabsize of 4.}
 
 
 {$I os.inc}
 {$I os.inc}
 
 
@@ -53,67 +53,67 @@ interface
 {Link the startup code.}
 {Link the startup code.}
 {$l prt1.oo2}
 {$l prt1.oo2}
 
 
-{$I	SYSTEMH.INC}
-{$I	heaph.inc}
-
-type	Tos=(osDOS,osOS2,osDPMI);
-
-var		os_mode:Tos;
-		first_meg:pointer;
-
-type	Psysthreadib=^Tsysthreadib;
-		Pthreadinfoblock=^Tthreadinfoblock;
-		Pprocessinfoblock=^Tprocessinfoblock;
-
-		Tbytearray=array[0..$ffff] of byte;
-		Pbytearray=^Tbytearray;
-
-		Tsysthreadib=record
-			tid,
-			priority,
-			version:longint;
-			MCcount,
-			MCforceflag:word;
-		end;
-
-		Tthreadinfoblock=record
-			pexchain,
-			stack,
-			stacklimit:pointer;
-			tib2:Psysthreadib;
-			version,
-			ordinal:longint;
-		end;
-
-		Tprocessinfoblock=record
-			pid,
-			parentpid,
-			hmte:longint;
-			cmd,
-			env:Pbytearray;
-			flstatus,
-			ttype:longint;
-		end;
-
-const	UnusedHandle=$ffff;
-		StdInputHandle=0;
-		StdOutputHandle=1;
-		StdErrorHandle=2;
+{$I SYSTEMH.INC}
+{$I heaph.inc}
+
+type    Tos=(osDOS,osOS2,osDPMI);
+
+var     os_mode:Tos;
+        first_meg:pointer;
+
+type    Psysthreadib=^Tsysthreadib;
+        Pthreadinfoblock=^Tthreadinfoblock;
+        Pprocessinfoblock=^Tprocessinfoblock;
+
+        Tbytearray=array[0..$ffff] of byte;
+        Pbytearray=^Tbytearray;
+
+        Tsysthreadib=record
+            tid,
+            priority,
+            version:longint;
+            MCcount,
+            MCforceflag:word;
+        end;
+
+        Tthreadinfoblock=record
+            pexchain,
+            stack,
+            stacklimit:pointer;
+            tib2:Psysthreadib;
+            version,
+            ordinal:longint;
+        end;
+
+        Tprocessinfoblock=record
+            pid,
+            parentpid,
+            hmte:longint;
+            cmd,
+            env:Pbytearray;
+            flstatus,
+            ttype:longint;
+        end;
+
+const   UnusedHandle=$ffff;
+        StdInputHandle=0;
+        StdOutputHandle=1;
+        StdErrorHandle=2;
 
 
 implementation
 implementation
 
 
-{$I	SYSTEM.INC}
+{$I SYSTEM.INC}
 
 
 procedure dosgetinfoblocks(var Atib:Pthreadinfoblock;
 procedure dosgetinfoblocks(var Atib:Pthreadinfoblock;
-						   var Apib:Pprocessinfoblock);
-						   external 'DOSCALLS' index 312;
+                           var Apib:Pprocessinfoblock);
+                           external 'DOSCALLS' index 312;
 
 
 {This is the correct way to call external assembler procedures.}
 {This is the correct way to call external assembler procedures.}
 procedure syscall;external name '___SYSCALL';
 procedure syscall;external name '___SYSCALL';
 
 
 {***************************************************************************
 {***************************************************************************
 
 
-				Runtime error checking related routines.
+                Runtime error checking related routines.
 
 
 ***************************************************************************}
 ***************************************************************************}
 
 
@@ -121,106 +121,106 @@ procedure syscall;external name '___SYSCALL';
 procedure st1(stack_size:longint);[public,alias: 'STACKCHECK'];
 procedure st1(stack_size:longint);[public,alias: 'STACKCHECK'];
 
 
 begin
 begin
-	{ called when trying to get local stack }
-	{ if the compiler directive $S is set   }
-	asm
-		movl stack_size,%ebx
-		movl %esp,%eax
-		subl %ebx,%eax
+    { called when trying to get local stack }
+    { if the compiler directive $S is set   }
+    asm
+        movl stack_size,%ebx
+        movl %esp,%eax
+        subl %ebx,%eax
 {$ifdef SYSTEMDEBUG}
 {$ifdef SYSTEMDEBUG}
-		movl U_SYSOS2_LOWESTSTACK,%ebx
-		cmpl %eax,%ebx
-		jb   .Lis_not_lowest
-		movl %eax,U_SYSOS2_LOWESTSTACK
-	.Lis_not_lowest:
+        movl U_SYSOS2_LOWESTSTACK,%ebx
+        cmpl %eax,%ebx
+        jb   .Lis_not_lowest
+        movl %eax,U_SYSOS2_LOWESTSTACK
+    .Lis_not_lowest:
 {$endif SYSTEMDEBUG}
 {$endif SYSTEMDEBUG}
-		cmpb $2,U_SYSOS2_OS_MODE
-		jne .Lrunning_in_dos
-		movl U_SYSOS2_STACKBOTTOM,%ebx
-		jmp .Lrunning_in_os2
-	.Lrunning_in_dos:
-		movl __heap_brk,%ebx
-	.Lrunning_in_os2:
-		cmpl %eax,%ebx
-		jae  .Lshort_on_stack
-		leave
-		ret  $4
-	.Lshort_on_stack:
-	end ['EAX','EBX'];
-	{ this needs a local variable }
-	{ so the function called itself !! }
-	{ Writeln('low in stack ');}
-	RunError(202);
+        cmpb $2,U_SYSOS2_OS_MODE
+        jne .Lrunning_in_dos
+        movl U_SYSOS2_STACKBOTTOM,%ebx
+        jmp .Lrunning_in_os2
+    .Lrunning_in_dos:
+        movl __heap_brk,%ebx
+    .Lrunning_in_os2:
+        cmpl %eax,%ebx
+        jae  .Lshort_on_stack
+        leave
+        ret  $4
+    .Lshort_on_stack:
+    end ['EAX','EBX'];
+    { this needs a local variable }
+    { so the function called itself !! }
+    { Writeln('low in stack ');}
+    RunError(202);
 end;
 end;
 {no stack check in system }
 {no stack check in system }
 
 
 {****************************************************************************
 {****************************************************************************
 
 
-					Miscelleanious related routines.
+                    Miscelleanious related routines.
 
 
 ****************************************************************************}
 ****************************************************************************}
 
 
 procedure halt(errnum:byte);
 procedure halt(errnum:byte);
 
 
 begin
 begin
-	asm
-		movb $0x4c,%ah
-		movb errnum,%al
-		call syscall
-	end;
+    asm
+        movb $0x4c,%ah
+        movb errnum,%al
+        call syscall
+    end;
 end;
 end;
 
 
 function paramcount:longint;
 function paramcount:longint;
 
 
 begin
 begin
-	 asm
-		movl _argc,%eax
-		decl %eax
-		leave
-		ret
-	 end ['EAX'];
+     asm
+        movl _argc,%eax
+        decl %eax
+        leave
+        ret
+     end ['EAX'];
 end;
 end;
 
 
 function paramstr(l:longint):string;
 function paramstr(l:longint):string;
 
 
-	function args:pointer;
+    function args:pointer;
 
 
-	begin
-		asm
-			movl _argv,%eax
-			leave
-			ret
-		end ['EAX'];
-	end;
+    begin
+        asm
+            movl _argv,%eax
+            leave
+            ret
+        end ['EAX'];
+    end;
 
 
-var	p:^Pchar;
+var p:^Pchar;
 
 
 begin
 begin
-	 if	(l>=0) and (l<=paramcount) then
-		begin
-			p:=args;
-			paramstr:=strpas(p[l]);
-		end
-	 else paramstr:='';
+     if (l>=0) and (l<=paramcount) then
+        begin
+            p:=args;
+            paramstr:=strpas(p[l]);
+        end
+     else paramstr:='';
 end;
 end;
 
 
 procedure randomize;
 procedure randomize;
 
 
-var	hl:longint;
+var hl:longint;
 
 
 begin
 begin
-	asm
-		movb $0x2c,%ah
-		call syscall
-		movw %cx,-4(%ebp)
-		movw %dx,-2(%ebp)
-	end;
-	randseed:=hl;
+    asm
+        movb $0x2c,%ah
+        call syscall
+        movw %cx,-4(%ebp)
+        movw %dx,-2(%ebp)
+    end;
+    randseed:=hl;
 end;
 end;
 
 
 {****************************************************************************
 {****************************************************************************
 
 
-					Heap management releated routines.
+                    Heap management releated routines.
 
 
 ****************************************************************************}
 ****************************************************************************}
 
 
@@ -231,29 +231,29 @@ syscall $7f00 resizes the brk area}
 function sbrk(size:longint):longint;
 function sbrk(size:longint):longint;
 
 
 begin
 begin
-	asm
-		movl size,%edx
-		movw $0x7f00,%ax
-		call syscall
-		movl %eax,__RESULT
-	end;
+    asm
+        movl size,%edx
+        movw $0x7f00,%ax
+        call syscall
+        movl %eax,__RESULT
+    end;
 end;
 end;
 
 
 function getheapstart:pointer;
 function getheapstart:pointer;
 
 
 begin
 begin
-	asm
-		movl __heap_base,%eax
-		leave
-		ret
-	end ['EAX'];
+    asm
+        movl __heap_base,%eax
+        leave
+        ret
+    end ['EAX'];
 end;
 end;
 
 
-{$i	heap.inc}
+{$i heap.inc}
 
 
 {****************************************************************************
 {****************************************************************************
 
 
-						  Low Level File Routines
+                          Low Level File Routines
 
 
 ****************************************************************************}
 ****************************************************************************}
 
 
@@ -261,169 +261,169 @@ procedure allowslash(p:Pchar);
 
 
 {Allow slash as backslash.}
 {Allow slash as backslash.}
 
 
-var	i:longint;
+var i:longint;
 
 
 begin
 begin
-	for i:=0 to strlen(p) do
-		if p[i]='/' then p[i]:='\';
+    for i:=0 to strlen(p) do
+        if p[i]='/' then p[i]:='\';
 end;
 end;
 
 
 procedure do_close(h:longint);
 procedure do_close(h:longint);
 
 
 begin
 begin
-	 asm
-		movb $0x3e,%ah
-		mov	h,%ebx
-		call syscall
-	 end;
+     asm
+        movb $0x3e,%ah
+        mov h,%ebx
+        call syscall
+     end;
 end;
 end;
 
 
 procedure do_erase(p:Pchar);
 procedure do_erase(p:Pchar);
 
 
 begin
 begin
-	allowslash(p);
-	asm
-		movl 8(%ebp),%edx
-		movb $0x41,%ah
-		call syscall
-		jnc	.LERASE1
-		movw %ax,inoutres;
-	.LERASE1:
-	end;
+    allowslash(p);
+    asm
+        movl 8(%ebp),%edx
+        movb $0x41,%ah
+        call syscall
+        jnc .LERASE1
+        movw %ax,inoutres;
+    .LERASE1:
+    end;
 end;
 end;
 
 
 procedure do_rename(p1,p2:Pchar);
 procedure do_rename(p1,p2:Pchar);
 
 
 begin
 begin
-	allowslash(p1);
-	allowslash(p2);
-	asm
-		movl 8(%ebp),%edx
-		movl 12(%ebp),%edi
-		movb $0x56,%ah
-		call syscall
-		jnc	.LRENAME1
-		movw %ax,inoutres;
-	.LRENAME1:
-	end;
+    allowslash(p1);
+    allowslash(p2);
+    asm
+        movl 8(%ebp),%edx
+        movl 12(%ebp),%edi
+        movb $0x56,%ah
+        call syscall
+        jnc .LRENAME1
+        movw %ax,inoutres;
+    .LRENAME1:
+    end;
 end;
 end;
 
 
 function do_read(h,addr,len:longint):longint;
 function do_read(h,addr,len:longint):longint;
 
 
 begin
 begin
-	asm
-		movl 16(%ebp),%ecx
-		movl 12(%ebp),%edx
-		movl 8(%ebp),%ebx
-		movb $0x3f,%ah
-		call syscall
-		jnc	.LDOSREAD1
-		movw %ax,inoutres;
-		xorl %eax,%eax
-	.LDOSREAD1:
-		leave
-		ret	$12
-	end;
+    asm
+        movl 16(%ebp),%ecx
+        movl 12(%ebp),%edx
+        movl 8(%ebp),%ebx
+        movb $0x3f,%ah
+        call syscall
+        jnc .LDOSREAD1
+        movw %ax,inoutres;
+        xorl %eax,%eax
+    .LDOSREAD1:
+        leave
+        ret $12
+    end;
 end;
 end;
 
 
 function do_write(h,addr,len:longint) : longint;
 function do_write(h,addr,len:longint) : longint;
 
 
 begin
 begin
-	asm
-		movl 16(%ebp),%ecx
-		movl 12(%ebp),%edx
-		movl 8(%ebp),%ebx
-		movb $0x40,%ah
-		call syscall
-		jnc	.LDOSWRITE1
-		movw %ax,inoutres;
-	.LDOSWRITE1:
-	   movl %eax,-4(%ebp)
-	end;
+    asm
+        movl 16(%ebp),%ecx
+        movl 12(%ebp),%edx
+        movl 8(%ebp),%ebx
+        movb $0x40,%ah
+        call syscall
+        jnc .LDOSWRITE1
+        movw %ax,inoutres;
+    .LDOSWRITE1:
+       movl %eax,-4(%ebp)
+    end;
 end;
 end;
 
 
 function do_filepos(handle:longint):longint;
 function do_filepos(handle:longint):longint;
 
 
 begin
 begin
-	asm
-		movw $0x4201,%ax
-		movl 8(%ebp),%ebx
-		xorl %edx,%edx
-		call syscall
-		jnc	.LDOSFILEPOS
-		movw %ax,inoutres;
-		xorl %eax,%eax
-	.LDOSFILEPOS:
-		leave
-		ret	$4
-	 end;
+    asm
+        movw $0x4201,%ax
+        movl 8(%ebp),%ebx
+        xorl %edx,%edx
+        call syscall
+        jnc .LDOSFILEPOS
+        movw %ax,inoutres;
+        xorl %eax,%eax
+    .LDOSFILEPOS:
+        leave
+        ret $4
+     end;
 end;
 end;
 
 
 procedure do_seek(handle,pos:longint);
 procedure do_seek(handle,pos:longint);
 
 
 begin
 begin
-	asm
-		movw $0x4200,%ax
-		movl 8(%ebp),%ebx
-		movl 12(%ebp),%edx
-		call syscall
-		jnc .LDOSSEEK1
-		movw %ax,inoutres;
-	.LDOSSEEK1:
-		leave
-		ret $8
-	end;
+    asm
+        movw $0x4200,%ax
+        movl 8(%ebp),%ebx
+        movl 12(%ebp),%edx
+        call syscall
+        jnc .LDOSSEEK1
+        movw %ax,inoutres;
+    .LDOSSEEK1:
+        leave
+        ret $8
+    end;
 end;
 end;
 
 
 function do_seekend(handle:longint):longint;
 function do_seekend(handle:longint):longint;
 
 
 begin
 begin
-	asm
-		movw $0x4202,%ax
-		movl 8(%ebp),%ebx
-		xorl %edx,%edx
-		call syscall
-		jnc .Lset_at_end1
-		movw %ax,inoutres;
-		xorl %eax,%eax
-	.Lset_at_end1:
-		leave
-		ret $4
-	end;
+    asm
+        movw $0x4202,%ax
+        movl 8(%ebp),%ebx
+        xorl %edx,%edx
+        call syscall
+        jnc .Lset_at_end1
+        movw %ax,inoutres;
+        xorl %eax,%eax
+    .Lset_at_end1:
+        leave
+        ret $4
+    end;
 end;
 end;
 
 
 function do_filesize(handle:longint):longint;
 function do_filesize(handle:longint):longint;
 
 
-var	aktfilepos:longint;
+var aktfilepos:longint;
 
 
 begin
 begin
-	aktfilepos:=do_filepos(handle);
-	do_filesize:=do_seekend(handle);
-	do_seek(handle,aktfilepos);
+    aktfilepos:=do_filepos(handle);
+    do_filesize:=do_seekend(handle);
+    do_seek(handle,aktfilepos);
 end;
 end;
 
 
 procedure do_truncate(handle,pos:longint);
 procedure do_truncate(handle,pos:longint);
 
 
 begin
 begin
-	asm
-		movl $0x4200,%eax
-		movl 8(%ebp),%ebx
-		movl 12(%ebp),%edx
-		call syscall
-		jc .LTruncate1
-		movl 8(%ebp),%ebx
-		movl 12(%ebp),%edx
-		movl %ebp,%edx
-		xorl %ecx,%ecx
-		movb $0x40,%ah
-		call syscall
-		jnc .LTruncate2
-		.LTruncate1:
-		movw %ax,inoutres;
-		.LTruncate2:
-		leave
-		ret $8
-	end;
+    asm
+        movl $0x4200,%eax
+        movl 8(%ebp),%ebx
+        movl 12(%ebp),%edx
+        call syscall
+        jc .LTruncate1
+        movl 8(%ebp),%ebx
+        movl 12(%ebp),%edx
+        movl %ebp,%edx
+        xorl %ecx,%ecx
+        movb $0x40,%ah
+        call syscall
+        jnc .LTruncate2
+        .LTruncate1:
+        movw %ax,inoutres;
+        .LTruncate2:
+        leave
+        ret $8
+    end;
 end;
 end;
 
 
 procedure do_open(var f;p:pchar;flags:longint);
 procedure do_open(var f;p:pchar;flags:longint);
@@ -436,92 +436,92 @@ procedure do_open(var f;p:pchar;flags:longint);
   when (flags and $1000) there is no check for close (needed for textfiles)
   when (flags and $1000) there is no check for close (needed for textfiles)
 }
 }
 
 
-var	oflags:byte;
+var oflags:byte;
 
 
 begin
 begin
-	allowslash(p);
-	{ close first if opened }
-	if ((flags and $1000)=0) then
-		begin
-			case filerec(f).mode of
-				fminput,fmoutput,fminout : Do_Close(filerec(f).handle);
-				fmclosed:;
-			else
-				begin
-					inoutres:=102; {not assigned}
-					exit;
-				end;
-			end;
-	   end;
-	{ reset file handle }
-	filerec(f).handle:=high(word);
-	oflags:=2;
-	{ convert filemode to filerec modes }
-	case (flags and 3) of
-		0 : begin
-			filerec(f).mode:=fminput;
-			oflags:=0;
-		end;
-		1 : filerec(f).mode:=fmoutput;
-		2 : filerec(f).mode:=fminout;
-	end;
-	if (flags and $100)<>0 then
-		begin
-			filerec(f).mode:=fmoutput;
-			oflags:=2;
-		end
-	else
-		if (flags and $10)<>0 then
-			begin
-				filerec(f).mode:=fmoutput;
-				oflags:=2;
-			end;
-	{ empty name is special }
-	if p[0]=#0 then
-		begin
-			case filerec(f).mode of
-				fminput:filerec(f).handle:=StdInputHandle;
-				fmappend,fmoutput : begin
-					filerec(f).handle:=StdOutputHandle;
-					filerec(f).mode:=fmoutput; {fool fmappend}
-				end;
-			end;
-			exit;
-		end;
-	if (flags and $100)<>0 then
-		{Use create function.}
-		asm
-			movb $0x3c,%ah
-			movl p,%edx
-			xorw %cx,%cx
-			call syscall
-			jnc .LOPEN1
-			movw %ax,inoutres;
-			movw $0xffff,%ax
-		.LOPEN1:
-			movl f,%edx
-			movw %ax,(%edx)
-		end
-	else
-		{Use open function.}
-		asm
-			movb $0x3d,%ah
-			movb oflags,%al
-			movl p,%edx
-			call syscall
-			jnc .LOPEN2
-			movw %ax,inoutres;
-			movw $0xffff,%ax
-		.LOPEN2:
-			movl f,%edx
-			movw %ax,(%edx)
-		end;
-	if (flags and $10)<>0 then
-		do_seekend(filerec(f).handle);
+    allowslash(p);
+    { close first if opened }
+    if ((flags and $1000)=0) then
+        begin
+            case filerec(f).mode of
+                fminput,fmoutput,fminout : Do_Close(filerec(f).handle);
+                fmclosed:;
+            else
+                begin
+                    inoutres:=102; {not assigned}
+                    exit;
+                end;
+            end;
+       end;
+    { reset file handle }
+    filerec(f).handle:=high(word);
+    oflags:=2;
+    { convert filemode to filerec modes }
+    case (flags and 3) of
+        0 : begin
+            filerec(f).mode:=fminput;
+            oflags:=0;
+        end;
+        1 : filerec(f).mode:=fmoutput;
+        2 : filerec(f).mode:=fminout;
+    end;
+    if (flags and $100)<>0 then
+        begin
+            filerec(f).mode:=fmoutput;
+            oflags:=2;
+        end
+    else
+        if (flags and $10)<>0 then
+            begin
+                filerec(f).mode:=fmoutput;
+                oflags:=2;
+            end;
+    { empty name is special }
+    if p[0]=#0 then
+        begin
+            case filerec(f).mode of
+                fminput:filerec(f).handle:=StdInputHandle;
+                fmappend,fmoutput : begin
+                    filerec(f).handle:=StdOutputHandle;
+                    filerec(f).mode:=fmoutput; {fool fmappend}
+                end;
+            end;
+            exit;
+        end;
+    if (flags and $100)<>0 then
+        {Use create function.}
+        asm
+            movb $0x3c,%ah
+            movl p,%edx
+            xorw %cx,%cx
+            call syscall
+            jnc .LOPEN1
+            movw %ax,inoutres;
+            movw $0xffff,%ax
+        .LOPEN1:
+            movl f,%edx
+            movw %ax,(%edx)
+        end
+    else
+        {Use open function.}
+        asm
+            movb $0x3d,%ah
+            movb oflags,%al
+            movl p,%edx
+            call syscall
+            jnc .LOPEN2
+            movw %ax,inoutres;
+            movw $0xffff,%ax
+        .LOPEN2:
+            movl f,%edx
+            movw %ax,(%edx)
+        end;
+    if (flags and $10)<>0 then
+        do_seekend(filerec(f).handle);
 end;
 end;
 
 
 {*****************************************************************************
 {*****************************************************************************
-						   UnTyped File Handling
+                           UnTyped File Handling
 *****************************************************************************}
 *****************************************************************************}
 
 
 {$i file.inc}
 {$i file.inc}
@@ -542,194 +542,194 @@ end;
 
 
 {****************************************************************************
 {****************************************************************************
 
 
-						  Directory related routines.
+                          Directory related routines.
 
 
 ****************************************************************************}
 ****************************************************************************}
 
 
 {*****************************************************************************
 {*****************************************************************************
-						   Directory Handling
+                           Directory Handling
 *****************************************************************************}
 *****************************************************************************}
 
 
 procedure dosdir(func:byte;const s:string);
 procedure dosdir(func:byte;const s:string);
 
 
-var	buffer:array[0..255] of char;
+var buffer:array[0..255] of char;
 
 
 begin
 begin
-	move(s[1],buffer,length(s));
-	buffer[length(s)]:=#0;
-	allowslash(Pchar(@buffer));
-	asm
-		leal buffer,%edx
-		movb 8(%ebp),%ah
-		call syscall
-		jnc  .LDOS_DIRS1
-		movw %ax,inoutres;
-	.LDOS_DIRS1:
-	end;
+    move(s[1],buffer,length(s));
+    buffer[length(s)]:=#0;
+    allowslash(Pchar(@buffer));
+    asm
+        leal buffer,%edx
+        movb 8(%ebp),%ah
+        call syscall
+        jnc  .LDOS_DIRS1
+        movw %ax,inoutres;
+    .LDOS_DIRS1:
+    end;
 end;
 end;
 
 
 
 
 procedure mkdir(const s : string);
 procedure mkdir(const s : string);
 
 
 begin
 begin
-	DosDir($39,s);
+    DosDir($39,s);
 end;
 end;
 
 
 
 
 procedure rmdir(const s : string);
 procedure rmdir(const s : string);
 
 
 begin
 begin
-	DosDir($3a,s);
+    DosDir($3a,s);
 end;
 end;
 
 
 procedure chdir(const s : string);
 procedure chdir(const s : string);
 
 
 begin
 begin
-	DosDir($3b,s);
+    DosDir($3b,s);
 end;
 end;
 
 
 procedure getdir(drivenr : byte;var dir : string);
 procedure getdir(drivenr : byte;var dir : string);
 
 
 {Written by Michael Van Canneyt.}
 {Written by Michael Van Canneyt.}
 
 
-var	temp:array[0..255] of char;
-	sof:Pchar;
-	i:byte;
+var temp:array[0..255] of char;
+    sof:Pchar;
+    i:byte;
 
 
 begin
 begin
-	sof:=pchar(@dir[4]);
-	{ dir[1..3] will contain '[drivenr]:\', but is not }
-	{ supplied by DOS, so we let dos string start at   }
-	{ dir[4]                                           }
-	{ Get dir from drivenr : 0=default, 1=A etc... }
-	asm
-		movb drivenr,%dl
-		movl sof,%esi
-		mov  $0x47,%ah
-		call syscall
-	end;
-	{ Now Dir should be filled with directory in ASCIIZ, }
-	{ starting from dir[4]                               }
-	dir[0]:=#3;
-	dir[2]:=':';
-	dir[3]:='\';
-	i:=4;
-	{Conversion to Pascal string }
-	while (dir[i]<>#0) do
-		begin
-			{ convert path name to DOS }
-			if dir[i]='/' then
-			dir[i]:='\';
-			dir[0]:=char(i);
-			inc(i);
-		end;
-	{ upcase the string (FPKPascal function) }
-	dir:=upcase(dir);
-	if drivenr<>0 then   { Drive was supplied. We know it }
-		dir[1]:=char(65+drivenr-1)
-	else
-		begin
-			{ We need to get the current drive from DOS function 19H  }
-			{ because the drive was the default, which can be unknown }
-			asm
-				movb $0x19,%ah
-				call syscall
-				addb $65,%al
-				movb %al,i
-			end;
-			dir[1]:=char(i);
-		end;
+    sof:=pchar(@dir[4]);
+    { dir[1..3] will contain '[drivenr]:\', but is not }
+    { supplied by DOS, so we let dos string start at   }
+    { dir[4]                                           }
+    { Get dir from drivenr : 0=default, 1=A etc... }
+    asm
+        movb drivenr,%dl
+        movl sof,%esi
+        mov  $0x47,%ah
+        call syscall
+    end;
+    { Now Dir should be filled with directory in ASCIIZ, }
+    { starting from dir[4]                               }
+    dir[0]:=#3;
+    dir[2]:=':';
+    dir[3]:='\';
+    i:=4;
+    {Conversion to Pascal string }
+    while (dir[i]<>#0) do
+        begin
+            { convert path name to DOS }
+            if dir[i]='/' then
+            dir[i]:='\';
+            dir[0]:=char(i);
+            inc(i);
+        end;
+    { upcase the string (FPKPascal function) }
+    dir:=upcase(dir);
+    if drivenr<>0 then   { Drive was supplied. We know it }
+        dir[1]:=char(65+drivenr-1)
+    else
+        begin
+            { We need to get the current drive from DOS function 19H  }
+            { because the drive was the default, which can be unknown }
+            asm
+                movb $0x19,%ah
+                call syscall
+                addb $65,%al
+                movb %al,i
+            end;
+            dir[1]:=char(i);
+        end;
 end;
 end;
 
 
 
 
 
 
 {****************************************************************************
 {****************************************************************************
 
 
-						System unit initialization.
+                        System unit initialization.
 
 
 ****************************************************************************}
 ****************************************************************************}
 
 
 procedure OpenStdIO(var f:text;mode:word;hdl:longint);
 procedure OpenStdIO(var f:text;mode:word;hdl:longint);
 
 
 begin
 begin
-	Assign(f,'');
-	TextRec(f).Handle:=hdl;
-	TextRec(f).Mode:=mode;
-	TextRec(f).InOutFunc:=@FileInOutFunc;
-	TextRec(f).FlushFunc:=@FileInOutFunc;
-	TextRec(f).Closefunc:=@fileclosefunc;
+    Assign(f,'');
+    TextRec(f).Handle:=hdl;
+    TextRec(f).Mode:=mode;
+    TextRec(f).InOutFunc:=@FileInOutFunc;
+    TextRec(f).FlushFunc:=@FileInOutFunc;
+    TextRec(f).Closefunc:=@fileclosefunc;
 end;
 end;
 
 
-var	pib:Pprocessinfoblock;
-	tib:Pthreadinfoblock;
+var pib:Pprocessinfoblock;
+    tib:Pthreadinfoblock;
 
 
 begin
 begin
-	{Determine the operating system	we are running on.}
-	asm
-		movw $0x7f0a,%ax
-		call syscall
-		testw $512,%bx		   {Bit 9 is OS/2 flag.}
-		setnzl os_mode
-		testw $4096,%bx
-		jz .LnoRSX
-		movl $2,os_mode
-	.LnoRSX:
-	end;
-
-	{$ASMMODE DIRECT}
-	{Enable the brk area by initializing it with the initial heap size.}
-	asm
-		movw $0x7f01,%ax
-		movl HEAPSIZE,%edx
-		addl __heap_base,%edx
-		call ___SYSCALL
-		cmpl $-1,%eax
-		jnz Lheapok
-		pushl $204
-		{call RUNERROR$$WORD}
-	Lheapok:
-	end;
-	{$ASMMODE ATT}
-
-	{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
-			call syscall
-			movl %eax,first_meg
-		end
-	else
-		first_meg:=nil;
-	{At 0.9.2, case for enumeration does not work.}
-	case os_mode of
-		osDOS:
-			stackbottom:=0;		{In DOS mode, heap_brk is also the
-								 stack bottom.}
-		osOS2:
-			begin
-				dosgetinfoblocks(tib,pib);
-				stackbottom:=longint(tib^.stack);
-			end;
-		osDPMI:
-			stackbottom:=0;		{Not sure how to get it, but seems to be
-								 always zero.}
-	end;
-	exitproc:=nil;
-
-	{Initialize the heap.}
-	initheap;
-
-	{ to test stack depth }
-	loweststack:=maxlongint;
-
-	OpenStdIO(Input,fmInput,StdInputHandle);
-	OpenStdIO(Output,fmOutput,StdOutputHandle);
-	OpenStdIO(StdErr,fmOutput,StdErrorHandle);
-
-	{ kein Ein-	Ausgabefehler }
-	inoutres:=0;
+    {Determine the operating system we are running on.}
+    asm
+        movw $0x7f0a,%ax
+        call syscall
+        testw $512,%bx         {Bit 9 is OS/2 flag.}
+        setnzl os_mode
+        testw $4096,%bx
+        jz .LnoRSX
+        movl $2,os_mode
+    .LnoRSX:
+    end;
+
+    {$ASMMODE DIRECT}
+    {Enable the brk area by initializing it with the initial heap size.}
+    asm
+        movw $0x7f01,%ax
+        movl HEAPSIZE,%edx
+        addl __heap_base,%edx
+        call ___SYSCALL
+        cmpl $-1,%eax
+        jnz Lheapok
+        pushl $204
+        {call RUNERROR$$WORD}
+    Lheapok:
+    end;
+    {$ASMMODE ATT}
+
+    {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
+            call syscall
+            movl %eax,first_meg
+        end
+    else
+        first_meg:=nil;
+    {At 0.9.2, case for enumeration does not work.}
+    case os_mode of
+        osDOS:
+            stackbottom:=0;     {In DOS mode, heap_brk is also the
+                                 stack bottom.}
+        osOS2:
+            begin
+                dosgetinfoblocks(tib,pib);
+                stackbottom:=longint(tib^.stack);
+            end;
+        osDPMI:
+            stackbottom:=0;     {Not sure how to get it, but seems to be
+                                 always zero.}
+    end;
+    exitproc:=nil;
+
+    {Initialize the heap.}
+    initheap;
+
+    { to test stack depth }
+    loweststack:=maxlongint;
+
+    OpenStdIO(Input,fmInput,StdInputHandle);
+    OpenStdIO(Output,fmOutput,StdOutputHandle);
+    OpenStdIO(StdErr,fmOutput,StdErrorHandle);
+
+    { kein Ein- Ausgabefehler }
+    inoutres:=0;
 end.
 end.

Some files were not shown because too many files changed in this diff