     ----------------------------------------------------------------------
     -- Title       :  PortAKD
     -- 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 :  Port I/O
     ----------------------------------------------------------------------
     -- "Microprocessor and Peripheral Handbook", vols I & II, Intel, 1987.
     ----------------------------------------------------------------------

     with Port;
     with BitsAKD;  use BitsAKD;  -- for Byte_Type and Word_Type

     package PortAKD is
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     Port_8259_OCW2      : constant := 16#20#;
     Port_8259_OCW1      : constant := 16#21#;
     Port_Speaker_Freq   : constant := 16#42#; -- related to 8253
--   Port_Speaker_TMode  : constant := 16#43; --  ???
     Port_Speaker_Toggle : constant := 16#61#; -- 2 LSBs toggle speaker
     Port_Com1           : constant := 16#03F8#;
     Port_Com2           : constant := 16#02F8#;
     Port_Com3           : constant := 16#03F8#;
     Port_Com4           : constant := 16#02F8#;
     ----------------------------------------------------------------------
     package Port_Meridian renames Port;
     -- to resolve naming conflicts between Port number vs. the package
     ----------------------------------------------------------------------
     -- renamed from Port
     ----------------------------------------------------------------------
     function In_Word (
       Port : in     integer )
       return Word_Type
       renames Port_Meridian.In_Word;
     procedure Out_Word (
       Port : in     integer;
       Word : in     Word_Type )
       renames Port_Meridian.Out_Word;
     ----------------------------------------------------------------------
     -- constrains return type from integer to Byte_Type
     ----------------------------------------------------------------------
     function In_Byte (
       Port : in     integer )
       return Byte_Type;
     procedure Out_Byte (
       Port : in     integer;
       Byte : in     Byte_Type );
     ----------------------------------------------------------------------
     ----------------------------------------------------------------------
     end PortAKD;
