    ----------------------------------------------------------------------
    -- Title       :  ErroAKD
    -- Version     :  1.0
    -- Copyright   :  (C) 1994 David Wallace Croft.  All rights reserved.
    -- Author      :  David Wallace Croft, CompuServe [76600,102]
    -- Compiler    :  Ada
    -- Description :  Errors and error handling
    ----------------------------------------------------------------------

     with Errors;

     package ErroAKD is
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     type Status_Type is (
       Status_OK,
       Status_Error,
       Status_Error_Constraint,
       Status_Error_File_Close,
       Status_Error_File_Get_Line,
       Status_Error_File_Open,
       Status_Error_Unknown_Command );

     ----------------------------------------------------------------------
     subtype Error_DOS_Type is Errors.Extended_Errors;

     OK                      : constant Error_DOS_Type
			     := Errors.OK;
     Invalid_Function        : constant Error_DOS_Type
			     := Errors.Invalid_Function;
     File_Not_Found          : constant Error_DOS_Type
			     := Errors.File_Not_Found;
     Path_Not_Found          : constant Error_DOS_Type
			     := Errors.Path_Not_Found;
     No_Handle_Available     : constant Error_DOS_Type
			     := Errors.No_Handle_Available;
     Access_Denied           : constant Error_DOS_Type
			     := Errors.Access_Denied;
     Invalid_Handle          : constant Error_DOS_Type
			     := Errors.Invalid_Handle;
     Memory_Blocks_Destroyed : constant Error_DOS_Type
			     := Errors.Memory_Blocks_Destroyed;
     Insufficient_Memory     : constant Error_DOS_Type
			     := Errors.Insufficient_Memory;
     Invalid_Memory_Block    : constant Error_DOS_Type
			     := Errors.Invalid_Memory_Block;
     Invalid_Environment     : constant Error_DOS_Type
			     := Errors.Invalid_Environment;
     Invalid_Format          : constant Error_DOS_Type
			     := Errors.Invalid_Format;
     Invalid_File_Access     : constant Error_DOS_Type
			     := Errors.Invalid_File_Access;
     Invalid_Data            : constant Error_DOS_Type
			     := Errors.Invalid_Data;
     Reserved14              : constant Error_DOS_Type
			     := Errors.Reserved14;
     Invalid_Drive           : constant Error_DOS_Type
			     := Errors.Invalid_Drive;
     Remove_Current_Directory: constant Error_DOS_Type
			     := Errors.Remove_Current_Directory;
     Not_Same_Device         : constant Error_DOS_Type
			     := Errors.Not_Same_Device;
     No_More_Files           : constant Error_DOS_Type
			     := Errors.No_More_Files;
     Disk_Write_Protected    : constant Error_DOS_Type
			     := Errors.Disk_Write_Protected;
     Unknown_Unit            : constant Error_DOS_Type
			     := Errors.Unknown_Unit;
     Drive_Not_Ready         : constant Error_DOS_Type
			     := Errors.Drive_Not_Ready;
     Command_Not_Defined     : constant Error_DOS_Type
			     := Errors.Command_Not_Defined;
     Disk_Data_Error         : constant Error_DOS_Type
			     := Errors.Disk_Data_Error;
     Bad_Structure_Length    : constant Error_DOS_Type
			     := Errors.Bad_Structure_Length;
     Seek_Error              : constant Error_DOS_Type
			     := Errors.Seek_Error;
     Unknown_Media_Type      : constant Error_DOS_Type
			     := Errors.Unknown_Media_Type;
     Sector_Not_Found        : constant Error_DOS_Type
			     := Errors.Sector_Not_Found;
     Printer_OutOf_Paper     : constant Error_DOS_Type
			     := Errors.Printer_OutOf_Paper;
     Write_Error             : constant Error_DOS_Type
			     := Errors.Write_Error;
     Read_Error              : constant Error_DOS_Type
			     := Errors.Read_Error;
     General_Failure         : constant Error_DOS_Type
			     := Errors.General_Failure;
     File_Sharing_Violation  : constant Error_DOS_Type
			     := Errors.File_Sharing_Violation;
     File_Locking_Violation  : constant Error_DOS_Type
			     := Errors.File_Locking_Violation;
     Invalid_Disk_Change     : constant Error_DOS_Type
			     := Errors.Invalid_Disk_Change;
     No_FCB_Available        : constant Error_DOS_Type
			     := Errors.No_FCB_Available;
     File_Already_Exists     : constant Error_DOS_Type
			     := Errors.File_Already_Exists;
     Reserved81              : constant Error_DOS_Type
			     := Errors.Reserved81;
     Cannot_Make             : constant Error_DOS_Type
			     := Errors.Cannot_Make;
     Interrupt_Failure       : constant Error_DOS_Type
			     := Errors.Interrupt_Failure;
     Unknown_Error           : constant Error_DOS_Type
			     := Errors.Unknown_Error;
     function "=" (
       Error_DOS_1 : Error_DOS_Type;
       Error_DOS_2 : Error_DOS_Type )
       return boolean
       renames Errors."=";
     ----------------------------------------------------------------------
     procedure Report (
       Status : in Status_Type );
     procedure Notify (
       ErrorLocation: in string;
       ErrorName: in string := "Unknown" );
     procedure Warn (
       ErrorStr: in string );
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     end ErroAKD;
