     ----------------------------------------------------------------------
     -- Title       :  ScrnAKD
     -- 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 :
     --   Outputs text to screen.  By-passes standard i/o ( Text_IO ) to
     --   avoid holding up tasks with DOS calls ( non-reentrant ).
     ----------------------------------------------------------------------

     with MemoAKD;
     with TextAKD; -- for types
     with Tty;

     package ScrnAKD is
     ---------------------------------------------------------------------------
     ---------------------------------------------------------------------------
     type JustifyType is ( Left, Center, Right );
     Line_Length   : constant           := 80;
     Page_Length   : constant           := 25;
     ---------------------------------------------------------------------------
     procedure Beep ( NumTimes: positive := 1 );
     procedure Clear;
     procedure ClrL;
     procedure ClrScr;
     procedure Put ( Address : in MemoAKD.Address );
     procedure Put ( InChar  : in character );
     procedure Put (
		 Item   : in integer;
		 Width  : in TextAKD.Field     := integer'width;
		 Base   : in TextAKD.Number_Base := 10;
		 Signed : in boolean           := true;
		 Zeroed : in boolean           := false );
     procedure Put (
		 Item   : in long_integer;
		 Width  : in TextAKD.Field     := long_integer'width;
		 Base   : in TextAKD.Number_Base := 10;
		 Signed : in boolean           := true;
		 Zeroed : in boolean           := false );
     procedure Put ( InStr   : in string );
     procedure Put_Line ( Address: in MemoAKD.Address );
     procedure Put_Line ( InBool : in boolean );
     procedure Put_Line ( InChar : in character );
     procedure Put_Line (
		 Item   : in integer;
		 Width  : in TextAKD.Field     := integer'width;
		 Base   : in TextAKD.Number_Base := 10;
		 Signed : in boolean           := true;
		 Zeroed : in boolean           := false );
     procedure Put_Line (
		 Item   : in long_integer;
		 Width  : in TextAKD.Field     := long_integer'width;
		 Base   : in TextAKD.Number_Base := 10;
		 Signed : in boolean           := true;
		 Zeroed : in boolean           := false );
     procedure Put_Line (
		 InStr  : in string := "";
		 Justify: JustifyType := Left );
     Procedure Put_Text ( InStr: in string; Word_Wrap: in boolean := true );
     ---------------------------------------------------------------------------
     end ScrnAKD;
