    ----------------------------------------------------------------------
     -- Author      :  David Wallace Croft, CompuServe [76600,102]
     -- Compiler    :  Meridian OpenAda for DOS
     -- Description :  Disk file and directory access.
     ----------------------------------------------------------------------

     with ErroAKD; use ErroAKD;
     with File_IO;

     Package DiskAKD is
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     Copyright : constant string :=
       "DiskAKD v1.10 (C) 1994 David Wallace Croft.  All rights reserved.";
     ----------------------------------------------------------------------
     subtype Dir_Name_Type    is string;
     subtype File_Attributes  is File_IO.File_Attributes;
     subtype File_Data_Type   is File_IO.File_Data;
     subtype File_Handle_Type is File_IO.File_Handle;
     subtype File_Name_Type   is string ( 1..12 );
     subtype Transfer_Data    is File_IO.Transfer_Data;
     ----------------------------------------------------------------------
     Procedure Append_File(
		 Append_File: in string;
		 In_Str: in string;
		 Error: out Error_DOS_Type);
     Procedure Append_File(
		 Handle: in File_Handle_Type;
		 In_Str: in string;
		 Error: out Error_DOS_Type);
     Procedure Close_File(
		 Handle: in File_Handle_Type;
		 Error: out Error_DOS_Type);
     procedure Delete (
       File_Name : in out File_Name_Type;
       Error     :    out Error_DOS_Type;
       Path_Name : in     string := "" );
     procedure Delete (
       Path_File_Name : in     string;
       Error          :    out Error_DOS_Type );
     procedure DelSub (
       Error     :    out Error_DOS_Type;
       Dead_File : in     File_Name_Type;
       Dir_Name  : in     Dir_Name_Type := "" );
     procedure Demo;
     Procedure Dir(Template: in string; Count: out natural);
     function  Dir_Delete ( Dir_Name: in Dir_Name_Type ) return Error_DOS_Type;
     function  File_Exists ( File_Name : in string ) return boolean;
     Function  File_Picked(Template: in string) return string;
     procedure Find_First (
		 Template          : in     string;
		 Transfer_Area     : in out Transfer_Data;
		 File_Data         :    out File_Data_Type;
		 Error             :    out Error_DOS_Type;
		 Search_Attributes : in     File_Attributes
		   := ( others => false ) );
     procedure Find_Next (
		 Transfer_Area : in out Transfer_Data;
		 File_Data     :    out File_Data_Type;
		 Error         :    out Error_DOS_Type );
     Procedure Find_Nth (
		 Template: in string;
		 Nth: in positive;
		 File_Data: out File_Data_Type;
		 Error: out Error_DOS_Type;
		 Search_Attributes: in File_IO.File_Attributes
		   := ( others => false ) );
     function  Move ( From : in string; To : in string ) return Error_DOS_Type;
     Procedure Open_File (
		 File_Name : in     string;
		 Handle    :    out File_Handle_Type;
		 Error     :    out Error_DOS_Type;
		 Warn      : in     boolean := true );
     Procedure Open_New_File(
		 File_Name: in string;
		 Handle: out File_Handle_Type;
		 Error: out Error_DOS_Type);
     function  Prune ( Dir_Name: in Dir_Name_Type ) return Error_DOS_Type;
     Procedure ReadLn (
		 Handle: in          File_Handle_Type;
		 OutStr:         out string;
		 Is_End_of_File: out boolean;
		 Error:          out Error_DOS_Type);
     function  Rename ( From : in string; To : in string ) return Error_DOS_Type;
     Procedure Show_File (
		 File_Name    : in     string;
		 Error        :    out Error_DOS_Type;
		 Warn         : in     boolean := true;
		 Clear_Screen : in     boolean := true;
		 End_Pause    : in     boolean := true );
     Procedure Split_File_Name (
		 Original_Name : in      string;
		 First_8       :     out string;
		 Extension     :     out string);
     Procedure Write(
		 Handle: in File_Handle_Type;
		 InStr: in string;
		 Error: out Error_DOS_Type);
     Procedure WriteLn(
		 Handle: in File_Handle_Type;
		 InStr: in string;
		 Error: out Error_DOS_Type);
     Procedure Write_Both(
		 Handle: in File_Handle_Type;
		 InStr: in string;
		 Error: out Error_DOS_Type);
     Procedure WriteLn_Both(
		 Handle: in File_Handle_Type;
		 Error: out Error_DOS_Type);
     Procedure WriteLn_Both(
		 Handle: in File_Handle_Type;
		 InStr: in string;
		 Error: out Error_DOS_Type);
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     end DiskAKD;
