Przeglądaj źródła

added overlayfunctions.
changes to readargs and dosrename
added functions with array of const

nils 23 lat temu
rodzic
commit
0f1debb6be
1 zmienionych plików z 500 dodań i 6 usunięć
  1. 500 6
      packages/extra/amunits/units/amigados.pas

+ 500 - 6
packages/extra/amunits/units/amigados.pas

@@ -2,7 +2,7 @@
     This file is part of the Free Pascal run time library.
     This file is part of the Free Pascal run time library.
 
 
     A file in Amiga system run time library.
     A file in Amiga system run time library.
-    Copyright (c) 1998 by Nils Sjoholm
+    Copyright (c) 1998-2002 by Nils Sjoholm
     member of the Amiga RTL development team.
     member of the Amiga RTL development team.
 
 
     See the file COPYING.FPC, included in this distribution,
     See the file COPYING.FPC, included in this distribution,
@@ -13,6 +13,26 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{
+    History:
+    Added overlay functions for Pchar->Strings, functions
+    and procedures. Now you can mix PChar and Strings e.g
+    OpenLibrary('whatis.library',37). No need to cast to
+    a PChar.
+    14 Jul 2000.
+
+    Changed ReadArgs, removed the var for the second arg.
+    Changed DOSRename from longint to a boolean.
+    Aug 04 2000.
+
+    Added functions and procedures with array of const.
+    For use with fpc 1.0.7
+    
+    You have to use systemvartags. Check out that unit.
+    09 Nov 2002.
+
+    [email protected]
+}
 
 
 unit amigados;
 unit amigados;
 
 
@@ -1581,7 +1601,7 @@ FUNCTION DOSInput : LONGINT;
 FUNCTION DOSOpen(name : pCHAR; accessMode : LONGINT) : LONGINT;
 FUNCTION DOSOpen(name : pCHAR; accessMode : LONGINT) : LONGINT;
 FUNCTION DOSOutput : LONGINT;
 FUNCTION DOSOutput : LONGINT;
 FUNCTION DOSRead(file_ : LONGINT; buffer : POINTER; length : LONGINT) : LONGINT;
 FUNCTION DOSRead(file_ : LONGINT; buffer : POINTER; length : LONGINT) : LONGINT;
-FUNCTION DOSRename(oldName : pCHAR; newName : pCHAR) : LONGINT;
+FUNCTION DOSRename(oldName : pCHAR; newName : pCHAR) : Boolean;
 FUNCTION DOSSeek(file_ : LONGINT; position : LONGINT; offset : LONGINT) : LONGINT;
 FUNCTION DOSSeek(file_ : LONGINT; position : LONGINT; offset : LONGINT) : LONGINT;
 FUNCTION DOSWrite(file_ : LONGINT; buffer : POINTER; length : LONGINT) : LONGINT;
 FUNCTION DOSWrite(file_ : LONGINT; buffer : POINTER; length : LONGINT) : LONGINT;
 FUNCTION DupLock(lock : LONGINT) : LONGINT;
 FUNCTION DupLock(lock : LONGINT) : LONGINT;
@@ -1654,7 +1674,7 @@ FUNCTION ParsePatternNoCase(pat : pCHAR; buf : pCHAR; buflen : LONGINT) : LONGIN
 FUNCTION PathPart(path : pCHAR) : pCHAR;
 FUNCTION PathPart(path : pCHAR) : pCHAR;
 FUNCTION PrintFault(code : LONGINT; header : pCHAR) : BOOLEAN;
 FUNCTION PrintFault(code : LONGINT; header : pCHAR) : BOOLEAN;
 FUNCTION PutStr(str : pCHAR) : BOOLEAN;
 FUNCTION PutStr(str : pCHAR) : BOOLEAN;
-FUNCTION ReadArgs(arg_template : pCHAR; VAR arra : LONGINT; args : pRDArgs) : pRDArgs;
+FUNCTION ReadArgs(arg_template : pCHAR; arra : pLONGINT; args : pRDArgs) : pRDArgs;
 FUNCTION ReadItem(name : pCHAR; maxchars : LONGINT; cSource : pCSource) : LONGINT;
 FUNCTION ReadItem(name : pCHAR; maxchars : LONGINT; cSource : pCSource) : LONGINT;
 FUNCTION ReadLink(port : pMsgPort; lock : LONGINT; path : pCHAR; buffer : pCHAR; size : ULONG) : BOOLEAN;
 FUNCTION ReadLink(port : pMsgPort; lock : LONGINT; path : pCHAR; buffer : pCHAR; size : ULONG) : BOOLEAN;
 FUNCTION Relabel(drive : pCHAR; newname : pCHAR) : BOOLEAN;
 FUNCTION Relabel(drive : pCHAR; newname : pCHAR) : BOOLEAN;
@@ -1706,8 +1726,92 @@ FUNCTION WriteChars(buf : pCHAR; buflen : ULONG) : LONGINT;
 FUNCTION BADDR(bval :BPTR): POINTER;
 FUNCTION BADDR(bval :BPTR): POINTER;
 FUNCTION MKBADDR(adr: Pointer): BPTR;
 FUNCTION MKBADDR(adr: Pointer): BPTR;
 
 
+{ overlay function and procedures}
+
+FUNCTION AddBuffers(name : string; number : LONGINT) : BOOLEAN;
+FUNCTION AddPart(dirname : string; filename : pCHAR; size : ULONG) : BOOLEAN;
+FUNCTION AddPart(dirname : pCHAR; filename : string; size : ULONG) : BOOLEAN;
+FUNCTION AddPart(dirname : string; filename : string; size : ULONG) : BOOLEAN;
+FUNCTION AssignAdd(name : string; lock : LONGINT) : BOOLEAN;
+FUNCTION AssignLate(name : string; path : pCHAR) : BOOLEAN;
+FUNCTION AssignLate(name : pChar; path : string) : BOOLEAN;
+FUNCTION AssignLate(name : string; path : string) : BOOLEAN;
+FUNCTION AssignLock(name : string; lock : LONGINT) : BOOLEAN;
+FUNCTION AssignPath(name : string; path : pCHAR) : BOOLEAN;
+FUNCTION AssignPath(name : pCHAR; path : string) : BOOLEAN;
+FUNCTION AssignPath(name : string; path : string) : BOOLEAN;
+FUNCTION CreateDir(name : string) : LONGINT;
+FUNCTION CreateProc(name : string; pri : LONGINT; segList : LONGINT; stackSize : LONGINT) : pMsgPort;
+FUNCTION DeleteFile(name : string) : BOOLEAN;
+FUNCTION DeleteVar(name : string; flags : ULONG) : BOOLEAN;
+FUNCTION DeviceProc(name : string) : pMsgPort;
+FUNCTION DOSOpen(name : string; accessMode : LONGINT) : LONGINT;
+FUNCTION DOSRename(oldName : string; newName : pChar) : boolean;
+FUNCTION DOSRename(oldName : pCHAR; newName : string) : Boolean;
+FUNCTION DOSRename(oldName : string; newName : string) : Boolean;
+FUNCTION Execute(string_ : string; file_ : LONGINT; file2 : LONGINT) : BOOLEAN;
+FUNCTION Fault(code : LONGINT; header : string; buffer : pCHAR; len : LONGINT) : BOOLEAN;
+FUNCTION FilePart(path : string) : pCHAR;
+FUNCTION FindArg(keyword : string; arg_template : pCHAR) : LONGINT;
+FUNCTION FindArg(keyword : pCHAR; arg_template : string) : LONGINT;
+FUNCTION FindArg(keyword : string; arg_template : string) : LONGINT;
+FUNCTION FindDosEntry(dlist : pDosList; name : string; flags : ULONG) : pDosList;
+FUNCTION FindSegment(name : string; seg : pSegment; system : LONGINT) : pSegment;
+FUNCTION FindVar(name : string; type_ : ULONG) : pLocalVar;
+FUNCTION Format(filesystem : string; volumename : pCHAR; dostype : ULONG) : BOOLEAN;
+FUNCTION Format(filesystem : pCHAR; volumename : string; dostype : ULONG) : BOOLEAN;
+FUNCTION Format(filesystem : string; volumename : string; dostype : ULONG) : BOOLEAN;
+FUNCTION FPuts(fh : LONGINT; str : string) : BOOLEAN;
+FUNCTION GetDeviceProc(name : string; dp : pDevProc) : pDevProc;
+FUNCTION GetVar(name : string; buffer : pCHAR; size : LONGINT; flags : LONGINT) : LONGINT;
+FUNCTION Inhibit(name : string; onoff : LONGINT) : BOOLEAN;
+FUNCTION IsFileSystem(name : string) : BOOLEAN;
+FUNCTION LoadSeg(name : string) : LONGINT;
+FUNCTION Lock(name : string; type_ : LONGINT) : LONGINT;
+FUNCTION MakeDosEntry(name : string; type_ : LONGINT) : pDosList;
+FUNCTION MakeLink(name : string; dest : LONGINT; soft : LONGINT) : BOOLEAN;
+FUNCTION MatchFirst(pat : string; anchor : pAnchorPath) : LONGINT;
+FUNCTION MatchPattern(pat : string; str : pCHAR) : BOOLEAN;
+FUNCTION MatchPattern(pat : pCHAR; str : string) : BOOLEAN;
+FUNCTION MatchPattern(pat : string; str : string) : BOOLEAN;
+FUNCTION MatchPatternNoCase(pat : string; str : pCHAR) : BOOLEAN;
+FUNCTION MatchPatternNoCase(pat : pCHAR; str : string) : BOOLEAN;
+FUNCTION MatchPatternNoCase(pat : string; str : string) : BOOLEAN;
+FUNCTION NewLoadSeg(file_ : string; tags : pTagItem) : LONGINT;
+FUNCTION NewLoadSegTagList(file_ : string; tags : pTagItem) : LONGINT;
+FUNCTION PathPart(path : string) : pCHAR;
+FUNCTION PrintFault(code : LONGINT; header : string) : BOOLEAN;
+FUNCTION PutStr(str : string) : BOOLEAN;
+FUNCTION ReadArgs(arg_template : string; arra : pLONGINT; args : pRDArgs) : pRDArgs;
+FUNCTION ReadItem(name : string; maxchars : LONGINT; cSource : pCSource) : LONGINT;
+FUNCTION ReadLink(port : pMsgPort; lock : LONGINT; path : string; buffer : pCHAR; size : ULONG) : BOOLEAN;
+FUNCTION Relabel(drive : string; newname : pCHAR) : BOOLEAN;
+FUNCTION Relabel(drive : pCHAR; newname : string) : BOOLEAN;
+FUNCTION Relabel(drive : string; newname : string) : BOOLEAN;
+FUNCTION RemAssignList(name : string; lock : LONGINT) : BOOLEAN;
+FUNCTION RunCommand(seg : LONGINT; stack : LONGINT; paramptr : string; paramlen : LONGINT) : LONGINT;
+FUNCTION SetArgStr(string_ : string) : BOOLEAN;
+FUNCTION SetComment(name : string; comment : pCHAR) : BOOLEAN;
+FUNCTION SetComment(name : pCHAR; comment : string) : BOOLEAN;
+FUNCTION SetComment(name : string; comment : string) : BOOLEAN;
+FUNCTION SetCurrentDirName(name : string) : BOOLEAN;
+FUNCTION SetFileDate(name : string; date : pDateStamp) : BOOLEAN;
+FUNCTION SetOwner(name : string; owner_info : LONGINT) : BOOLEAN;
+FUNCTION SetProgramName(name : string) : BOOLEAN;
+FUNCTION SetPrompt(name : string) : BOOLEAN;
+FUNCTION SetProtection(name : string; protect : LONGINT) : BOOLEAN;
+FUNCTION SetVar(name : string; buffer : pCHAR; size : LONGINT; flags : LONGINT) : BOOLEAN;
+FUNCTION SplitName(name : string; seperator : ULONG; buf : pCHAR; oldpos : LONGINT; size : LONGINT) : INTEGER;
+FUNCTION StrToLong(string_ : string; VAR value : LONGINT) : LONGINT;
+FUNCTION SystemTagList(command : string; tags : pTagItem) : LONGINT;
+FUNCTION DOSSystem(command : string; tags : pTagItem) : LONGINT;
+
 IMPLEMENTATION
 IMPLEMENTATION
 
 
+uses pastoc;
+
+
+
 FUNCTION BADDR(bval : BPTR): POINTER;
 FUNCTION BADDR(bval : BPTR): POINTER;
 BEGIN
 BEGIN
     BADDR := POINTER( bval shl 2);
     BADDR := POINTER( bval shl 2);
@@ -2296,7 +2400,7 @@ BEGIN
   END;
   END;
 END;
 END;
 
 
-FUNCTION DOSRename(oldName : pCHAR; newName : pCHAR) : LONGINT;
+FUNCTION DOSRename(oldName : pCHAR; newName : pCHAR) : Boolean;
 BEGIN
 BEGIN
   ASM
   ASM
     MOVE.L  A6,-(A7)
     MOVE.L  A6,-(A7)
@@ -2305,7 +2409,10 @@ BEGIN
     MOVEA.L _DOSBase,A6
     MOVEA.L _DOSBase,A6
     JSR -078(A6)
     JSR -078(A6)
     MOVEA.L (A7)+,A6
     MOVEA.L (A7)+,A6
-    MOVE.L  D0,@RESULT
+    TST.L   D0
+    BEQ.B   @end
+    MOVEQ   #1,D0
+    @end: MOVE.B  D0,@RESULT
   END;
   END;
 END;
 END;
 
 
@@ -3317,7 +3424,7 @@ BEGIN
   END;
   END;
 END;
 END;
 
 
-FUNCTION ReadArgs(arg_template : pCHAR; VAR arra : LONGINT; args : pRDArgs) : pRDArgs;
+FUNCTION ReadArgs(arg_template : pCHAR; arra : pLONGINT; args : pRDArgs) : pRDArgs;
 BEGIN
 BEGIN
   ASM
   ASM
     MOVE.L  A6,-(A7)
     MOVE.L  A6,-(A7)
@@ -4004,5 +4111,392 @@ BEGIN
   END;
   END;
 END;
 END;
 
 
+
+FUNCTION AddBuffers(name : string; number : LONGINT) : BOOLEAN;
+begin
+     AddBuffers := AddBuffers(pas2c(name), number);
+end;
+
+FUNCTION AddPart(dirname : string; filename : pCHAR; size : ULONG) : BOOLEAN;
+begin
+     AddPart := AddPart(pas2c(dirname),filename,size);
+end;
+
+FUNCTION AddPart(dirname : pCHAR; filename : string; size : ULONG) : BOOLEAN;
+begin
+     AddPart := AddPart(dirname,pas2c(filename),size);
+end;
+
+FUNCTION AddPart(dirname : string; filename : string; size : ULONG) : BOOLEAN;
+begin
+     AddPart := AddPart(pas2c(dirname),pas2c(filename),size);
+end;
+
+FUNCTION AssignAdd(name : string; lock : LONGINT) : BOOLEAN;
+begin
+     AssignAdd := AssignAdd(pas2c(name),lock);
+end;
+
+FUNCTION AssignLate(name : string; path : pCHAR) : BOOLEAN;
+begin
+     AssignLate := AssignLate(pas2c(name),path);
+end;
+
+FUNCTION AssignLate(name : pChar; path : string) : BOOLEAN;
+begin
+     AssignLate := AssignLate(name,pas2c(path));
+end;
+
+FUNCTION AssignLate(name : string; path : string) : BOOLEAN;
+begin
+     AssignLate := AssignLate(pas2c(name),pas2c(path));
+end;
+
+FUNCTION AssignLock(name : string; lock : LONGINT) : BOOLEAN;
+begin
+     AssignLock := AssignLock(pas2c(name),lock);
+end;
+
+FUNCTION AssignPath(name : string; path : pCHAR) : BOOLEAN;
+begin
+     AssignPath := AssignPath(pas2c(name),path);
+end;
+
+FUNCTION AssignPath(name : pCHAR; path : string) : BOOLEAN;
+begin
+     AssignPath := AssignPath(name,pas2c(path));
+end;
+
+FUNCTION AssignPath(name : string; path : string) : BOOLEAN;
+begin
+     AssignPath := AssignPath(pas2c(name),pas2c(path));
+end;
+
+FUNCTION CreateDir(name : string) : LONGINT;
+begin
+     CreateDir := CreateDir(pas2c(name));
+end;
+
+FUNCTION CreateProc(name : string; pri : LONGINT; segList : LONGINT; stackSize : LONGINT) : pMsgPort;
+begin
+     CreateProc := CreateProc(pas2c(name),pri,segList,stackSize);
+end;
+
+FUNCTION DeleteFile(name : string) : BOOLEAN;
+begin
+     DeleteFile := DeleteFile(pas2c(name));
+end;
+
+FUNCTION DeleteVar(name : string; flags : ULONG) : BOOLEAN;
+begin
+     DeleteVar := DeleteVar(pas2c(name),flags);
+end;
+
+FUNCTION DeviceProc(name : string) : pMsgPort;
+begin
+     Deviceproc := DeviceProc(pas2c(name));
+end;
+
+FUNCTION DOSOpen(name : string; accessMode : LONGINT) : LONGINT;
+begin
+     DOSOpen := DOSOpen(pas2c(name),accessMode);
+end;
+
+FUNCTION DOSRename(oldName : string; newName : pCHAR) : Boolean;
+begin
+     DOSRename := DOSRename(pas2c(oldName),newName);
+end;
+
+FUNCTION DOSRename(oldName : pCHAR; newName : string) : Boolean;
+begin
+     DOSRename := DOSRename(oldName,pas2c(newName));
+end;
+
+FUNCTION DOSRename(oldName : string; newName : string) : Boolean;
+begin
+     DOSRename := DOSRename(pas2c(oldName),pas2c(newName));
+end;
+
+FUNCTION Execute(string_ : string; file_ : LONGINT; file2 : LONGINT) : BOOLEAN;
+begin
+     Execute := Execute(pas2c(string_),file_ ,file2);
+end;
+
+FUNCTION Fault(code : LONGINT; header : string; buffer : pCHAR; len : LONGINT) : BOOLEAN;
+begin
+    Fault := Fault(code,pas2c(header),buffer,len);
+end;
+
+FUNCTION FilePart(path : string) : pCHAR;
+begin
+    FilePart := FilePart(pas2c(path));
+end;
+
+FUNCTION FindArg(keyword : string; arg_template : pCHAR) : LONGINT;
+begin
+    FindArg := FindArg(pas2c(keyword),arg_template);
+end;
+
+FUNCTION FindArg(keyword : pCHAR; arg_template : string) : LONGINT;
+begin
+    FindArg := FindArg(keyword,pas2c(arg_template));
+end;
+
+FUNCTION FindArg(keyword : string; arg_template : string) : LONGINT;
+begin
+    FindArg := FindArg(pas2c(keyword),pas2c(arg_template));
+end;
+
+FUNCTION FindDosEntry(dlist : pDosList; name : string; flags : ULONG) : pDosList;
+begin
+    FindDosEntry := FindDosEntry(dlist,pas2c(name),flags);
+end;
+
+FUNCTION FindSegment(name : string; seg : pSegment; system : LONGINT) : pSegment;
+begin
+    FindSegment := FindSegment(pas2c(name),seg,system);
+end;
+
+FUNCTION FindVar(name : string; type_ : ULONG) : pLocalVar;
+begin
+    FindVar := FindVar(pas2c(name),type_);
+end;
+
+FUNCTION Format(filesystem : string; volumename : pCHAR; dostype : ULONG) : BOOLEAN;
+begin
+    Format := Format(pas2c(filesystem),volumename,dostype);
+end;
+
+FUNCTION Format(filesystem : pCHAR; volumename : string; dostype : ULONG) : BOOLEAN;
+begin
+    Format := Format(filesystem,pas2c(volumename),dostype);
+end;
+
+FUNCTION Format(filesystem : string; volumename : string; dostype : ULONG) : BOOLEAN;
+begin
+    Format := Format(pas2c(filesystem),pas2c(volumename),dostype);
+end;
+
+FUNCTION FPuts(fh : LONGINT; str : string) : BOOLEAN;
+begin
+    FPuts := FPuts(fh,pas2c(str));
+end;
+
+FUNCTION GetDeviceProc(name : string; dp : pDevProc) : pDevProc;
+begin
+    GetDeviceProc := GetDeviceProc(pas2c(name),dp);
+end;
+
+FUNCTION GetVar(name : string; buffer : pCHAR; size : LONGINT; flags : LONGINT) : LONGINT;
+begin
+    GetVar := GetVar(pas2c(name),buffer,size,flags);
+end;
+
+FUNCTION Inhibit(name : string; onoff : LONGINT) : BOOLEAN;
+begin
+    Inhibit := Inhibit(pas2c(name),onoff);
+end;
+
+FUNCTION IsFileSystem(name : string) : BOOLEAN;
+begin
+    IsFileSystem := IsFileSystem(pas2c(name));
+end;
+
+FUNCTION LoadSeg(name : string) : LONGINT;
+begin
+    LoadSeg := LoadSeg(pas2c(name));
+end;
+
+FUNCTION Lock(name : string; type_ : LONGINT) : LONGINT;
+begin
+    Lock := Lock(pas2c(name),type_);
+end;
+
+FUNCTION MakeDosEntry(name : string; type_ : LONGINT) : pDosList;
+begin
+    MakeDosEntry := MakeDosEntry(pas2c(name),type_);
+end;
+
+FUNCTION MakeLink(name : string; dest : LONGINT; soft : LONGINT) : BOOLEAN;
+begin
+    MakeLink := MakeLink(pas2c(name),dest,soft);
+end;
+
+FUNCTION MatchFirst(pat : string; anchor : pAnchorPath) : LONGINT;
+begin
+    MatchFirst := MatchFirst(pas2c(pat),anchor);
+end;
+
+FUNCTION MatchPattern(pat : string; str : pCHAR) : BOOLEAN;
+begin
+    MatchPattern := MatchPattern(pas2c(pat),str);
+end;
+
+FUNCTION MatchPattern(pat : pCHAR; str : string) : BOOLEAN;
+begin
+    MatchPattern := MatchPattern(pat,pas2c(str));
+end;
+
+FUNCTION MatchPattern(pat : string; str : string) : BOOLEAN;
+begin
+    MatchPattern := MatchPattern(pas2c(pat),pas2c(str));
+end;
+
+FUNCTION MatchPatternNoCase(pat : string; str : pCHAR) : BOOLEAN;
+begin
+    MatchPatternNoCase := MatchPatternNoCase(pas2c(pat),str);
+end;
+
+FUNCTION MatchPatternNoCase(pat : pCHAR; str : string) : BOOLEAN;
+begin
+    MatchPatternNoCase := MatchPatternNoCase(pat,pas2c(str));
+end;
+
+FUNCTION MatchPatternNoCase(pat : string; str : string) : BOOLEAN;
+begin
+    MatchPatternNoCase := MatchPatternNoCase(pas2c(pat),pas2c(str));
+end;
+
+FUNCTION NewLoadSeg(file_ : string; tags : pTagItem) : LONGINT;
+begin
+    NewLoadSeg := NewLoadSeg(pas2c(file_),tags);
+end;
+
+FUNCTION NewLoadSegTagList(file_ : string; tags : pTagItem) : LONGINT;
+begin
+    NewLoadSegTagList := NewLoadSegTagList(pas2c(file_),tags);
+end;
+
+FUNCTION PathPart(path : string) : pCHAR;
+begin
+    PathPart := PathPart(pas2c(path));
+end;
+
+FUNCTION PrintFault(code : LONGINT; header : string) : BOOLEAN;
+begin
+    PrintFault := PrintFault(code,pas2c(header));
+end;
+
+FUNCTION PutStr(str : string) : BOOLEAN;
+begin
+    PutStr := PutStr(pas2c(str));
+end;
+
+FUNCTION ReadArgs(arg_template : string; arra : pLONGINT; args : pRDArgs) : pRDArgs;
+begin
+    ReadArgs := ReadArgs(pas2c(arg_template),arra,args);
+end;
+
+FUNCTION ReadItem(name : string; maxchars : LONGINT; cSource : pCSource) : LONGINT;
+begin
+    ReadItem := ReadItem(pas2c(name),maxchars,cSource);
+end;
+
+FUNCTION ReadLink(port : pMsgPort; lock : LONGINT; path : string; buffer : pCHAR; size : ULONG) : BOOLEAN;
+begin
+    ReadLink := ReadLink(port,lock,pas2c(path),buffer,size);
+end;
+
+FUNCTION Relabel(drive : string; newname : pCHAR) : BOOLEAN;
+begin
+    Relabel := Relabel(pas2c(drive),newname);
+end;
+
+FUNCTION Relabel(drive : pCHAR; newname : string) : BOOLEAN;
+begin
+    Relabel := Relabel(drive,pas2c(newname));
+end;
+
+FUNCTION Relabel(drive : string; newname : string) : BOOLEAN;
+begin
+    Relabel := Relabel(pas2c(drive),pas2c(newname));
+end;
+
+FUNCTION RemAssignList(name : string; lock : LONGINT) : BOOLEAN;
+begin
+    RemAssignList := RemAssignList(pas2c(name),lock);
+end;
+
+FUNCTION RunCommand(seg : LONGINT; stack : LONGINT; paramptr : string; paramlen : LONGINT) : LONGINT;
+begin
+    RunCommand := RunCommand(seg,stack,pas2c(paramptr),paramlen);
+end;
+
+FUNCTION SetArgStr(string_ : string) : BOOLEAN;
+begin
+    SetArgStr := SetArgStr(pas2c(string_));
+end;
+
+FUNCTION SetComment(name : string; comment : pCHAR) : BOOLEAN;
+begin
+    SetComment := SetComment(pas2c(name),comment);
+end;
+
+FUNCTION SetComment(name : pCHAR; comment : string) : BOOLEAN;
+begin
+    SetComment := SetComment(name,pas2c(comment));
+end;
+
+FUNCTION SetComment(name : string; comment : string) : BOOLEAN;
+begin
+    SetComment := SetComment(pas2c(name),pas2c(comment));
+end;
+
+FUNCTION SetCurrentDirName(name : string) : BOOLEAN;
+begin
+     SetCurrentDirName := SetCurrentDirName(pas2c(name));
+end;
+
+FUNCTION SetFileDate(name : string; date : pDateStamp) : BOOLEAN;
+begin
+     SetFileDate := SetFileDate(pas2c(name),date);
+end;
+
+FUNCTION SetOwner(name : string; owner_info : LONGINT) : BOOLEAN;
+begin
+     SetOwner := SetOwner(pas2c(name),owner_info);
+end;
+
+FUNCTION SetProgramName(name : string) : BOOLEAN;
+begin
+     SetProgramName := SetProgramName(pas2c(name));
+end;
+
+FUNCTION SetPrompt(name : string) : BOOLEAN;
+begin
+     SetPrompt := SetPrompt(pas2c(name));
+end;
+
+FUNCTION SetProtection(name : string; protect : LONGINT) : BOOLEAN;
+begin
+     SetProtection := SetProtection(pas2c(name),protect);
+end;
+
+FUNCTION SetVar(name : string; buffer : pCHAR; size : LONGINT; flags : LONGINT) : BOOLEAN;
+begin
+     SetVar := SetVar(pas2c(name),buffer,size,flags);
+end;
+
+FUNCTION SplitName(name : string; seperator : ULONG; buf : pCHAR; oldpos : LONGINT; size : LONGINT) : INTEGER;
+begin
+     SplitName := SplitName(pas2c(name), seperator,buf,oldpos,size);
+end;
+
+FUNCTION StrToLong(string_ : string; VAR value : LONGINT) : LONGINT;
+begin
+     StrToLong := StrToLong(pas2c(string_),value);
+end;
+
+FUNCTION SystemTagList(command : string; tags : pTagItem) : LONGINT;
+begin
+     SystemTagList := SystemTagList(pas2c(command),tags);
+end;
+
+FUNCTION DOSSystem(command : string; tags : pTagItem) : LONGINT;
+begin
+     DOSSystem := DOSSystem(pas2c(command),tags);
+end;
+
+
 END. (* UNIT DOS *)
 END. (* UNIT DOS *)