     ----------------------------------------------------------------------
     -- Title       :  TypeAKD
     -- Version     :  1.0
     -- Copyright   :  (C) 1994 David Wallace Croft.  All rights reserved.
     -- Author      :  David Wallace Croft, CompuServe [76600,102]
     -- Compiler    :  Meridian OpenAda for DOS
     -- Description :  Basic data types.
     ----------------------------------------------------------------------

     package TypeAKD is
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     subtype Word is integer;
       --> range -32_768..32_767 ==> 16#FFFF#..16#7FFF#;
     subtype Byte is Word range 16#00#..16#FF#;
     ----------------------------------------------------------------------
     subtype Int32 is long_integer range ( -2 ** 31 )..( +2 ** 31 ) - 1;
     ----------------------------------------------------------------------
     type Array_Boolean is array ( integer range <> ) of boolean;
     type Array_Byte    is array ( integer range <> ) of Byte;
     type Array_Float   is array ( integer range <> ) of float;
     type Array_Integer is array ( integer range <> ) of integer;
     type Array_Boolean_2 is array ( integer range <>, integer range <> )
       of boolean;
     type Array_Float_2   is array ( integer range <>, integer range <> )
       of float;
     ----------------------------------------------------------------------
     function  "+" ( A, B : in Array_Float ) return Array_Float;
     function  "*" ( A : in float; B : in Array_Float   ) return Array_Float;
     function  "*" ( A : in float; B : in Array_Float_2 ) return Array_Float_2;
     function  "*" ( A : in Array_Float_2;
		     B : in Array_Float ) return Array_Float;
     procedure Array_Boolean_Show ( Item : in Array_Boolean );
     function  Array_Boolean_To_Integer ( Item : in Array_Boolean )
		 return integer;
     procedure Array_Float_Show   ( Item : in Array_Float );
     procedure Array_Float_2_Show ( Item : in Array_Float_2 );
     procedure Boolean_Average (
		 Totals  : in out Array_Integer;
		 Current : in     Array_Boolean;
		 Count   : in     integer;
		 Average :    out Array_Boolean );
     function  Int32_Stretch
		 ( IntXX    : in Int32;
		   Num_Bits : in positive
		 ) return Int32;
     function  Uns32_To_Float ( Unsigned_Int32 : in Int32 ) return float;
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     end TypeAKD;
