diff --git a/rtl/dos/go32v2/sargs.inc b/rtl/dos/go32v2/sargs.inc deleted file mode 100644 index a4fef602a9..0000000000 --- a/rtl/dos/go32v2/sargs.inc +++ /dev/null @@ -1,240 +0,0 @@ -{ - $Id$ - This file is part of the Free Pascal run time library. - Copyright (c) 1993,97 by Pierre Muller, - member of the Free Pascal development team. - - 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. - - **********************************************************************} - -var argc : longint; - doscmd : string; - args : ^pchar; - -function far_strlen(selector : word;linear_address : longint) : longint; -begin -asm - movl linear_address,%edx - movl %edx,%ecx - movw selector,%gs -Larg19: - movb %gs:(%edx),%al - testb %al,%al - je Larg20 - incl %edx - jmp Larg19 -Larg20: - movl %edx,%eax - subl %ecx,%eax - movl %eax,__RESULT -end; -end; - -function atohex(s : pchar) : longint; -var rv : longint; - v : byte; -begin -rv := 0; -while (s^ <>#0) do - begin - v := ord(s^) - ord('0'); - if (v > 9) then v := v - 7; - v := v and 15; { in case it's lower case } - rv := rv*16 + v; - inc(longint(s)); - end; -atohex := rv; -end; - -procedure setup_arguments; -type arrayword = array [0..0] of word; -var psp : word; - i,j : byte; - quote : char; - proxy_s : string[7]; - al,proxy_argc,proxy_seg,proxy_ofs,lin : longint; - largs : array[0..127] of pchar; - rm_argv : ^arrayword; -begin -for i := 1 to 127 do - largs[i] := nil; -psp:=stub_info^.psp_selector; -largs[0]:=dos_argv0; -argc := 1; -sysseg_move(psp, 128, get_ds, longint(@doscmd), 128); -{$IfDef SYSTEMDEBUG} -Writeln('Dos command line is #',doscmd,'# size = ',length(doscmd)); -{$EndIf SYSTEMDEBUG} -j := 1; -quote := #0; -for i:=1 to length(doscmd) do - Begin - if doscmd[i] = quote then - begin - quote := #0; - doscmd[i] := #0; - largs[argc]:=@doscmd[j]; - inc(argc); - j := i+1; - end else - if (quote = #0) and ((doscmd[i] = '''') or (doscmd[i]='"')) then - begin - quote := doscmd[i]; - j := i + 1; - end else - if (quote = #0) and ((doscmd[i] = ' ') - or (doscmd[i] = #9) or (doscmd[i] = #10) or - (doscmd[i] = #12) or (doscmd[i] = #9)) then - begin - doscmd[i]:=#0; - if j 1) and (far_strlen(get_ds,longint(largs[1])) = 6) then - begin - move(largs[1]^,proxy_s[1],6); - proxy_s[0] := #6; - if (proxy_s = '!proxy') then - begin -{$IfDef SYSTEMDEBUG} - Writeln('proxy command line '); -{$EndIf SYSTEMDEBUG} - proxy_argc := atohex(largs[2]); - proxy_seg := atohex(largs[3]); - proxy_ofs := atohex(largs[4]); - getmem(rm_argv,proxy_argc*sizeof(word)); - sysseg_move(dos_selector,proxy_seg*16+proxy_ofs, get_ds,longint(rm_argv),proxy_argc*sizeof(word)); - for i:=0 to proxy_argc - 1 do - begin - lin := proxy_seg*16 + rm_argv^[i]; - al :=far_strlen(dos_selector, lin); - getmem(largs[i],al+1); - sysseg_move(dos_selector, lin, get_ds,longint(largs[i]), al+1); -{$IfDef SYSTEMDEBUG} - Writeln('arg ',i,' #',largs[i],'#'); -{$EndIf SYSTEMDEBUG} - end; - argc := proxy_argc; - end; - end; -getmem(args,argc*SizeOf(pchar)); -for i := 0 to argc-1 do - args[i] := largs[i]; -end; - -function strcopy(dest,source : pchar) : pchar; - - begin - asm - cld - movl 12(%ebp),%edi - movl $0xffffffff,%ecx - xorb %al,%al - repne - scasb - not %ecx - movl 8(%ebp),%edi - movl 12(%ebp),%esi - movl %ecx,%eax - shrl $2,%ecx - rep - movsl - movl %eax,%ecx - andl $3,%ecx - rep - movsb - movl 8(%ebp),%eax - leave - ret $8 - end; - end; - - -procedure setup_environment; -var env_selector : word; - env_count : longint; - dos_env,cp : pchar; - stubaddr : p_stub_info; -begin - asm - movl __stubinfo,%eax - movl %eax,stubaddr - end; - stub_info:=stubaddr; - getmem(dos_env,stub_info^.env_size); - env_count:=0; - sysseg_move(stub_info^.psp_selector,$2c, get_ds, longint(@env_selector), 2); - sysseg_move(env_selector, 0, get_ds, longint(dos_env), stub_info^.env_size); - cp:=dos_env; - while cp ^ <> #0 do - begin - inc(env_count); - while (cp^ <> #0) do inc(longint(cp)); { skip to NUL } - inc(longint(cp)); { skip to next character } - end; - getmem(environ,(env_count+1) * sizeof(pchar)); - if (environ = nil) then exit; - cp:=dos_env; - env_count:=0; - while cp^ <> #0 do - begin - getmem(environ[env_count],strlen(cp)+1); - strcopy(environ[env_count], cp); -{$IfDef SYSTEMDEBUG} - Writeln('env ',env_count,' = "',environ[env_count],'"'); -{$EndIf SYSTEMDEBUG} - inc(env_count); - while (cp^ <> #0) do inc(longint(cp)); { skip to NUL } - inc(longint(cp)); { skip to next character } - end; - environ[env_count]:=nil; - inc(longint(cp),3); - getmem(dos_argv0,strlen(cp)+1); - if (dos_argv0 = nil) then halt; - strcopy(dos_argv0, cp); -end; - -{ - $Log$ - Revision 1.1 1998-03-25 11:18:42 root - Initial revision - - Revision 1.3 1998/01/26 11:57:15 michael - + Added log at the end - - - - Working file: rtl/dos/go32v2/sargs.inc - description: - ---------------------------- - revision 1.2 - date: 1997/12/01 15:35:01; author: michael; state: Exp; lines: +14 -0 - + Added copyright reference in header. - ---------------------------- - revision 1.1 - date: 1997/11/27 08:33:52; author: michael; state: Exp; - Initial revision - ---------------------------- - revision 1.1.1.1 - date: 1997/11/27 08:33:52; author: michael; state: Exp; lines: +0 -0 - FPC RTL CVS start - ============================================================================= -} diff --git a/rtl/dos/makefile b/rtl/dos/makefile deleted file mode 100644 index 73f0f5cd85..0000000000 --- a/rtl/dos/makefile +++ /dev/null @@ -1,134 +0,0 @@ -#**************************************************************************** -# -# Copyright (c) 1993,96 by Florian Klaempfl -# -#**************************************************************************** -# -# makefile for FPK Pascal DOS directory -# -##################################################################### -# Start of configurable section -##################################################################### - -# set here the type of the ppc386 you use: -# Choose from: dos go32v2 linux or os2 -OS_SRC=dos - -# Set REFPATH if you want to generate diffs to a standard RTL -ifndef REFPATH -REFPATH=/usr/local/fpk/work/new/rtl -endif -ifndef DIFF -DIFF=diff -endif -ifndef DIFFOPTS -DIFFOPTS=-b -c -endif - -####################################################################### -# End of configurable section. -# Do not edit after this line. -####################################################################### - -# Check operating system. -ifeq ($(OS_SRC),linux) -DOS=NO -else -DOS=YES -endif - -# Check copy delete commands. -# You need cp and rm from GNU to handle / as directory separator -ifeq ($(DOS),YES) -COPY=cp -DEL=rm -else -COPY=cp -DEL=rm -endif - -# To install programs -ifndef INSTALL -ifeq ($(DOS),YES) -INSTALL=copy -else -INSTALL=install -m 644 -endif -endif - -# To make a directory. -ifndef MKDIR -ifeq ($(DOS),YES) -MKDIR=mkdir -else -MKDIR=install -m 755 -d -endif -endif - -PPI=ppi - -PPFILES = crt.pp \ - dos.pp \ - fmouse.pp \ - go32.pp \ - graph.pp \ - mouse.pp \ - objects.pp \ - printer.pp \ - watch.pp - -PPIFILES = arc.ppi \ - colors.ppi \ - dpmi2raw.ppi \ - ellipse.ppi \ - fill.ppi \ - font.ppi \ - global.ppi \ - ibm.ppi \ - image.ppi \ - line.ppi \ - modes.ppi \ - move.ppi \ - palette.ppi \ - pixel.ppi \ - stdcolor.ppi \ - text.ppi \ - triangle.ppi \ - vesadeb.ppi - - -# Here we have a conflict between modes.inc and modes.ppi -# that generate the same modes.dif !! -# so we use modes.dii for modes.inc - -INCFILES = modes.inc - -DIFFFILES = $(patsubst %.pp,%.dif,$(PPFILES)) \ - $(patsubst %.ppi,$(PPI)/%.dif,$(PPIFILES)) \ - $(patsubst %.inc,%.dii,$(INCFILES)) makefile.dif - -.PHONY: clean diff diffclean - -clean: - -$(DEL) *.dif - -$(DEL) *.dii - -diffclean: - -$(DEL) *.dif - -$(DEL) *.dii - -$(DEL) $(PPI)/*.dif - - -%.dii : %.inc - -$(DIFF) $(DIFFOPTS) $*.inc $(REFPATH)/dos/$*.inc > $*.dii - -%.dif : %.pp - -$(DIFF) $(DIFFOPTS) $*.pp $(REFPATH)/dos/$*.pp > $*.dif - -%.dif : %.ppi - -$(DIFF) $(DIFFOPTS) $*.ppi $(REFPATH)/dos/$*.ppi > $*.dif - -makefile.dif : makefile - -$(DIFF) $(DIFFOPTS) makefile $(REFPATH)/dos/makefile > makefile.dif - -diffs : $(DIFFFILES)