     ----------------------------------------------------------------------
     -- Title       :  IntrAKD
     -- 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 :  Interrupt and Programmable Interrupt Controller
     --                (PIC) manipulation.
     ----------------------------------------------------------------------

     with
       BitsAKD,
       System;

     package IntrAKD is
     ---------------------------------------------------------------------------
     ---------------------------------------------------------------------------
     subtype Int_Type is System.Address range 16#00#..16#FF#;
     Int_Print_Screen : constant Int_Type := 16#05#;
     Int_Keyboard     : constant Int_Type := 16#09#;
     Int_Com2         : constant Int_Type := 16#0B#;
     Int_Com1         : constant Int_Type := 16#0C#;
     Int_User_Tick    : constant Int_Type := 16#1C#;
     Int_Control_C    : constant Int_Type := 16#23#;
     ---------------------------------------------------------------------------
     type PIC_Level_Type is range 0..15;
     PIC_Clock_Soft  : constant PIC_Level_Type := 0;
     PIC_Keyboard    : constant PIC_Level_Type := 1;
     PIC_Com2        : constant PIC_Level_Type := 3;
     PIC_Com4        : constant PIC_Level_Type := 3;
     PIC_Com1        : constant PIC_Level_Type := 4;
     PIC_Com3        : constant PIC_Level_Type := 4;
     PIC_Disk_Hard_1 : constant PIC_Level_Type := 5;
     PIC_Disk_Floppy : constant PIC_Level_Type := 6;
     PIC_Printer     : constant PIC_Level_Type := 7;
     PIC_Clock_Hard  : constant PIC_Level_Type := 8;
     PIC_Master_8259 : constant PIC_Level_Type := 9;
     PIC_Math_Coproc : constant PIC_Level_Type := 13;
     PIC_Disk_Hard_2 : constant PIC_Level_Type := 14;

     ---------------------------------------------------------------------------
     procedure PIC_8259 ( PIC_Level: in PIC_Level_Type; On: in boolean );
     procedure PIC_8259_EOI;
     procedure PIC_8259_EOI ( PIC_Level: in PIC_Level_Type );
     function  PIC_8259_OCW2 return BitsAKD.Byte_Type;
     procedure PIC_8259_OCW2 ( Mode: in BitsAKD.Byte_Type );
     procedure PIC_8259_Show;
     procedure Vector_Show ( Int: in Int_Type );
     ---------------------------------------------------------------------------
     end IntrAKD;
