Browse Source

+ Implementation of functions by Gertjan Schouten

michael 27 years ago
parent
commit
5433dea58d
1 changed files with 36 additions and 6 deletions
  1. 36 6
      rtl/dos/go32v2/disk.inc

+ 36 - 6
rtl/dos/go32v2/disk.inc

@@ -4,7 +4,7 @@
     Copyright (c) 1998 by the Free Pascal development team
 
     Disk functions from Delphi's sysutils.pas
-        
+
     See the file COPYING.FPC, included in this distribution,
     for details about the copyright.
 
@@ -15,45 +15,75 @@
  **********************************************************************}
 
 Function DiskFree (Drive : Byte) : Longint;
-
+var Regs: Registers;
 begin
+Regs.Dl := Drive;
+Regs.Ah := $36;
+intr($21, Regs);
+if Regs.Ax <> $FFFF then
+   result := Regs.Ax * Regs.Bx * Regs.Cx
+else
+   result := -1;
 end;
 
 
 Function DiskSize (Drive : Byte) : Longint;
-
+var Regs: Registers;
 begin
+Regs.Dl := Drive;
+Regs.Ah := $36;
+Intr($21, Regs);
+if Regs.Ax <> $FFFF then
+   result := Regs.Ax * Regs.Cx * Regs.Dx
+else
+   result := -1;
 end;
 
 
 Function GetCurrentDir : String;
 
 begin
+GetDir(0, result);
 end;
 
 
-Function SetCurrentDir (Const NewDir : String) : Boolean;
+Function SetCurrentDir(Const NewDir : String) : Boolean;
 
 begin
+{$I-}
+ChDir(NewDir);
+result := (IOResult = 0);
+{$I+}
 end;
 
 
 Function CreateDir (Const NewDir : String) : Boolean;
 
 begin
+{$I-}
+MkDir(NewDir);
+result := (IOResult = 0);
+{$I+}
 end;
 
 
 Function RemoveDir (Const Dir : String) : Boolean;
 
 begin
+{$I-}
+RmDir(Dir);
+result := (IOResult = 0);
+{$I+}
 end;
 
 
 
 {
  $Log$
- Revision 1.1  1998-10-11 13:42:55  michael
+ Revision 1.2  1998-10-30 14:13:13  michael
+ + Implementation of functions by Gertjan Schouten
+
+ Revision 1.1  1998/10/11 13:42:55  michael
  Added disk functions
 
-}
+}