DEFINITION MODULE DiskDirectory;
(*
        Interface to directory functions of the underlying OS


Derived from the Lilith Modula-2 system developed by the
group of Prof. N. Wirth at ETH Zurich, Switzerland.
*)


EXPORT QUALIFIED
    CurrentDrive, SelectDrive,
    CurrentDirectory, ChangeDirectory,
    MakeDir, RemoveDir,
    ResetDiskSys, ResetDrive;


PROCEDURE CurrentDrive (VAR drive: CHAR);
(*- Returns the current default drive.
out:    drive   the default drive, given in character format.
*)

PROCEDURE SelectDrive (drive: CHAR; VAR done: BOOLEAN);
(*- Set default drive.
in:     drive   name of drive to make default, specified in char format.
out:    done    TRUE if operation was successful.

The default drive will be used by all routines referring to DK: .
*)

PROCEDURE CurrentDirectory (drive: CHAR; VAR dir: ARRAY OF CHAR);
(*- Gets the current directory for the specified drive. 
in:     drive   0C for the current drive, 1C for drive "A", etc.
out:    dir     current directory for that drive.

Under DOS 1.1, dir[0] will be set to nul (0C).
*)

PROCEDURE ChangeDirectory (dir: ARRAY OF CHAR; VAR done: BOOLEAN);
(*- Set the current directory 
in:     dir     drive and directory path name.
out:    done    TRUE if successful; FALSE if the directory does not exist.

Under DOS 1.1, this function has no effect and 'done' is FALSE.
*)

PROCEDURE MakeDir (dir: ARRAY OF CHAR; VAR done: BOOLEAN);
(*- Create a sub-directory 
in:     dir     drive, optional pathname and name of sub-directory to create.
out:    done    TRUE if successful; FALSE if path or drive does not exist.

Under DOS 1.1, this function has no effect and 'done' is FALSE.
*)

PROCEDURE RemoveDir (dir: ARRAY OF CHAR; VAR done: BOOLEAN);
(*- Remove a directory
in:     dir     drive and name of the sub-directory to remove.
out:    done:   TRUE if successful; FALSE if directory does not exist.

The specified directory must be empty or the procedure returns FALSE.
Under DOS 1.1, this function has no effect and 'done' is FALSE.
*)

PROCEDURE ResetDiskSys;
(*- MS-DOS disk reset 
*)

PROCEDURE ResetDrive (d: CHAR): CARDINAL;
(* This function has no effect and always returns 255. It is part of this
   definition module for reasons of compatibility with other implementations.
*)

END DiskDirectory.

It is part of this
   definition module for reasons of compatibil