     ----------------------------------------------------------------------
     -- Title       :  InteAKD
     -- Version     :  1.0
     -- Copyright   :  (C) 1994 David Wallace Croft.  All rights reserved.
     -- Author      :  David Wallace Croft, CompuServe [76600,102]
     -- Compiler    :  Ada
     -- Description :  Direct console text I/O for integer types.
     --                Complements/instantiates TextAKD.
     ----------------------------------------------------------------------

     with TextAKD;  use TextAKD;

     package InteAKD is
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     Default_Base  : Number_Base := 10;
     ----------------------------------------------------------------------
     -- natural
     ----------------------------------------------------------------------
     function Ask_Nat (
       Prompt  : in     string  := "";
       Default : in     natural := natural'first;
       Minimum : in     natural := natural'first;
       Maximum : in     natural := natural'last;
       Width   : in     Field   := natural'width )
       return natural;
     ----------------------------------------------------------------------
     -- positive
     ----------------------------------------------------------------------
     function Ask_Pos (
       Prompt  : in     string  := "";
       Default : in     positive := positive'first;
       Minimum : in     positive := positive'first;
       Maximum : in     positive := positive'last;
       Width   : in     Field   := positive'width )
       return positive;
     ----------------------------------------------------------------------
     -- integer
     -- Instantiation of Text_AKD.Integer_IO_AKD is avoided to prevent
     -- "out of memory" errors.
     ----------------------------------------------------------------------
     function Ask_Int (
       Prompt  : in     string  := "";
       Default : in     integer := integer'first;
       Minimum : in     integer := integer'first;
       Maximum : in     integer := integer'last;
       Width   : in     Field   := integer'width )
       return integer;
     procedure Put (
       File  : in     File_Type;
       Item  : in     integer;
       Width : in     Field       := integer'width;
       Base  : in     Number_Base := Default_Base );
     procedure Put (
       Item  : in     integer;
       Width : in     Field       := integer'width;
       Base  : in     Number_Base := Default_Base );
     procedure Get (
       From  : in     string;
       Item  :    out integer;
       Last  :    out positive );
     procedure Put (
       To    :    out string;
       Item  : in     integer;
       Base  : in     Number_Base := Default_Base );
     procedure Put_Line (
       File  : in     File_Type;
       Item  : in     integer;
       Width : in     Field       := integer'width;
       Base  : in     Number_Base := Default_Base );
     procedure Put_Line (
       Item  : in     integer;
       Width : in     Field       := integer'width;
       Base  : in     Number_Base := Default_Base );
     ----------------------------------------------------------------------
     -- long_integer
     ----------------------------------------------------------------------
     function Ask_Long (
       Prompt  : in     string  := "";
       Default : in     long_integer := long_integer'first;
       Minimum : in     long_integer := long_integer'first;
       Maximum : in     long_integer := long_integer'last;
       Width   : in     Field   := long_integer'width )
       return long_integer;
     procedure Put_Line (
       File  : in     File_Type;
       Item  : in     long_integer;
       Width : in     Field       := long_integer'width;
       Base  : in     Number_Base := Default_Base );
     procedure Put_Line (
       Item  : in     long_integer;
       Width : in     Field       := long_integer'width;
       Base  : in     Number_Base := Default_Base );
     ----------------------------------------------------------------------
     -- byte_integer
     ----------------------------------------------------------------------
     function Ask_Byte (
       Prompt  : in     string  := "";
       Default : in     byte_integer := byte_integer'first;
       Minimum : in     byte_integer := byte_integer'first;
       Maximum : in     byte_integer := byte_integer'last;
       Width   : in     Field   := byte_integer'width )
       return byte_integer;
     procedure Put_Line (
       File  : in     File_Type;
       Item  : in     byte_integer;
       Width : in     Field       := byte_integer'width;
       Base  : in     Number_Base := Default_Base );
     procedure Put_Line (
       Item  : in     byte_integer;
       Width : in     Field       := byte_integer'width;
       Base  : in     Number_Base := Default_Base );
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     end InteAKD;


