DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦a5a16f91d⟧ Ada Source

    Length: 15360 (0x3c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Xlbt_Key3, seg_004fce

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with Unchecked_Deallocation;

with Xlbt_Arithmetic;  
use Xlbt_Arithmetic;  
with Xlbt_String;  
use Xlbt_String;

package Xlbt_Key3 is
------------------------------------------------------------------------------
-- X Library Key Codes, Symbols, and Translations - Full Interface
--
-- Xlbt_Key3 - Types and structures used to describe and keep track of keys
-- on the keyboard.
------------------------------------------------------------------------------
-- Copyright 1989 - 1991 by Rational, Santa Clara, California.
-- Copyright 1985 - 1989 by the Massachusetts Institute of Technology
--
--                  All Rights Reserved.
--
-- Permission to use, copy, modify, and distribute this software and its
-- documentation for any purpose and without fee is hereby granted,
-- provided that the above copyright notice(s) appear in all copies and that
-- both that copyright notice(s) and this permission notice appear in
-- supporting documentation, and that the names of MIT or Rational not be
-- used in advertising or publicity pertaining to distribution of the software
-- without specific, written prior permission.
--
-- MIT and Rational disclaim all warranties with regard to this software,
-- including all implied warranties of merchantability and fitness, in no
-- event shall MIT or Rational be liable for any special, indirect or
-- consequential damages or any damages whatsoever resulting from loss of use,
-- data or profits, whether in an action of contract, negligence or other
-- tortious action, arising out of or in connection with the use or performance
-- of this software.
------------------------------------------------------------------------------

--\x0c
    ------------------------------------------------------------------------------
-- X_Compose_Status - Compose sequence status structure, used w/X_Lookup_String.
------------------------------------------------------------------------------

    type X_Compose_Status is  
        record  
            Compose_Ptr   : X_String_Pointer; -- state table pointer
            Chars_Matched : S_Long;            -- match state
        end record;

    None_X_Compose_Status : constant X_Compose_Status :=  
       (None_X_String_Pointer, 0);

------------------------------------------------------------------------------
-- X_Key_Button_Mask
------------------------------------------------------------------------------

--/ if Bit0_Sign_Bit then

    type X_Key_Button_Mask_Index is  
       (Any_Modifier,  
        Xkbmi14,            -- Unused
        Xkbmi13,            -- Unused
        Button_5_Mask,  
        Button_4_Mask,  
        Button_3_Mask,  
        Button_2_Mask,  
        Button_1_Mask,  
        Mod_5_Mask,  
        Mod_4_Mask,  
        Mod_3_Mask,  
        Mod_2_Mask,  
        Mod_1_Mask,  
        Control_Mask,  
        Lock_Mask,  
        Shift_Mask);

--/ else -- not Bit0_Sign_Bit
--//
--//     type X_Key_Button_Mask_Index is
--//        (Shift_Mask,
--//         Lock_Mask,
--//         Control_Mask,
--//         Mod_1_Mask,
--//         Mod_2_Mask,
--//         Mod_3_Mask,
--//         Mod_4_Mask,
--//         Mod_5_Mask,
--//         Button_1_Mask,
--//         Button_2_Mask,
--//         Button_3_Mask,
--//         Button_4_Mask,
--//         Button_5_Mask,
--//         Xkbmi13,             -- Unused
--//         Xkbmi14,             -- Unused
--//         Any_Modifier);
--//
--/ end if;

    type X_Key_Button_Mask is array (X_Key_Button_Mask_Index) of Boolean;

--/ if Length_Clauses then
    for X_Key_Button_Mask'Size use 16;
--/ elsif Pack then
--//     pragma Pack (X_Key_Button_Mask);
--/ end if;

    None_X_Key_Button_Mask : constant X_Key_Button_Mask := (others => False);

------------------------------------------------------------------------------
-- X_Key_Code - simple "numeric" index of 8 bits
--
--  Any_Key - Special X_Key_Code passed to Grab_Key
------------------------------------------------------------------------------

    type X_Key_Code is new U_Char;

--/ if Length_Clauses then
    for X_Key_Code'Size use 8;
--/ end if;

    type X_Key_Code_Array is array (S_Natural range <>) of X_Key_Code;  
    type X_Key_Code_List  is access X_Key_Code_Array;

--/ if Pack then
--//     pragma Pack (X_Key_Code_Array);
--/ end if;
--/ if Enable_Deallocation then
    pragma Enable_Deallocation (X_Key_Code_List);
--/ end if;

    None_X_Key_Code      : constant X_Key_Code      := 0;  
    None_X_Key_Code_List : constant X_Key_Code_List := null;  
    Any_Key              : constant X_Key_Code      := 0;

    procedure Free_X_Key_Code_List is  
       new Unchecked_Deallocation (X_Key_Code_Array,  
                                   X_Key_Code_List);

------------------------------------------------------------------------------
-- X_Key_Modifier names.  Used to build a X_Set_Modifier_Mapping request or
-- to read a X_Get_Modifier_Mapping request.  These correspond to the
-- masks defined above.
------------------------------------------------------------------------------

    type X_Key_Modifier is (Shift_Map_Index,  
                            Lock_Map_Index,  
                            Control_Map_Index,  
                            Mod_1_Map_Index,  
                            Mod_2_Map_Index,  
                            Mod_3_Map_Index,  
                            Mod_4_Map_Index,  
                            Mod_5_Map_Index);

------------------------------------------------------------------------------
-- X_Key_Sym
------------------------------------------------------------------------------

    type X_Key_Sym is new S_Long;

--/ if Length_Clauses then
    for X_Key_Sym'Size use 32;
--/ end if;

    None_X_Key_Sym : constant X_Key_Sym := 0;

    No_Symbol : constant X_Key_Sym := 0;
    ----Special key symbol meaning "this key does nothing"

------------------------------------------------------------------------------
-- X_Key_Sym_List
------------------------------------------------------------------------------

    type X_Key_Sym_Array is array (S_Natural range <>) of X_Key_Sym;  
    type X_Key_Sym_List  is access X_Key_Sym_Array;

--/ if Pack then
--//     pragma Pack (X_Key_Sym_Array);
--/ end if;
--/ if Enable_Deallocation then
    pragma Enable_Deallocation (X_Key_Sym_List);
--/ end if;

    None_X_Key_Sym_List : constant X_Key_Sym_List := null;

    procedure Free_X_Key_Sym_List is  
       new Unchecked_Deallocation (X_Key_Sym_Array,  
                                   X_Key_Sym_List);

------------------------------------------------------------------------------
-- X_Key_Sym_List_2d
------------------------------------------------------------------------------

--/ if not TeleGen2_2d_Bug then
    type X_Key_Sym_Array_2d is array (X_Ky_Code range <>,  
                                      U_Char range <>) of X_Key_Sym;

--/ else
--//     type X_Key_Sym_Array_2d is array (Telegen2_2d_Bug range <>,
--//                                       U_Char range <>) of X_Key_Sym;
--//
--/ end if;
    type X_Key_Sym_List_2d is access X_Key_Sym_Array_2d;

--/ if Pack then
--//     pragma Pack (X_Key_Sym_Array_2d);
--/ end if;
--/ if Enable_Deallocation then
    pragma Enable_Deallocation (X_Key_Sym_List_2d);
--/ end if;

    None_X_Key_Sym_List_2d : constant X_Key_Sym_List_2d := null;

    procedure Free_X_Key_Sym_List_2d is  
       new Unchecked_Deallocation (X_Key_Sym_Array_2d,  
                                   X_Key_Sym_List_2d);

---------------------------------------------------------------------------------
-- X_Key_Trans
------------------------------------------------------------------------------

    type X_Key_Trans_Rec;  
    type X_Key_Trans is access X_Key_Trans_Rec;
--/ if Enable_Deallocation then
    pragma Enable_Deallocation (X_Key_Trans);
--/ end if;

    type X_Key_Trans_Rec is  
        record  
            Next :                       -- next on list
               X_Key_Trans := null;  
            Str :                        -- string to return when the time comes
               X_String_Pointer := null;  
            Key :                        -- key symbol rebound
               X_Key_Sym := None_X_Key_Sym;  
            State :                      -- modifier state
               X_Key_Button_Mask := None_X_Key_Button_Mask;  
            Modifiers :                  -- modifier key symbols you want
               X_Key_Sym_List := null;  
        end record;

    None_X_Key_Trans : constant X_Key_Trans := null;

    procedure Free_X_Key_Trans (Kt : in out X_Key_Trans);

    procedure Free_X_Key_Trans_List (Kt : in out X_Key_Trans);

------------------------------------------------------------------------------
-- X_Modifier_Key_Code_List
------------------------------------------------------------------------------

    type X_Modifier_Key_Code_Sub_Array is array (X_Key_Modifier) of X_Key_Code;

--/ if Pack then
--//     pragma Pack (X_Modifier_Key_Code_Sub_Array);
--/ end if;

    type X_Modifier_Key_Code_Array is  
       array (S_Natural range <>) of X_Modifier_Key_Code_Sub_Array;

--/ if Pack then
--//     pragma Pack (X_Modifier_Key_Code_Array);
--/ end if;

    type X_Modifier_Key_Code_List is access X_Modifier_Key_Code_Array;

--/ if Enable_Deallocation then
    pragma Enable_Deallocation (X_Modifier_Key_Code_List);
--/ end if;

    procedure Free_X_Modifier_Key_Code_List is  
       new Unchecked_Deallocation (X_Modifier_Key_Code_Array,  
                                   X_Modifier_Key_Code_List);

------------------------------------------------------------------------------
-- X_Modifier_Keymap
------------------------------------------------------------------------------

    type X_Modifier_Keymap_Rec is  
        record
            -- A record indicating:
            --  a) the maximum number of keys per modifier for the display
            --  b) a 2-dimensional (max_keypermod X modifiers) array indicating
            --     keys modified.
            Max_Keypermod : U_Char                   := 0;  
            Modifiermap   : X_Modifier_Key_Code_List := null;  
        end record;

    type X_Modifier_Keymap is access X_Modifier_Keymap_Rec;

--/ if Enable_Deallocation then
    pragma Enable_Deallocation (X_Modifier_Keymap);
--/ end if;

    None_X_Modifier_Keymap : constant X_Modifier_Keymap := null;

    procedure Free_X_Modifier_Keymap (Map : in out X_Modifier_Keymap);

end Xlbt_Key3;  

E3 Meta Data

    nblk1=e
    nid=0
    hdr6=1c
        [0x00] rec0=19 rec1=00 rec2=01 rec3=050
        [0x01] rec0=12 rec1=00 rec2=02 rec3=024
        [0x02] rec0=21 rec1=00 rec2=03 rec3=036
        [0x03] rec0=00 rec1=00 rec2=0e rec3=004
        [0x04] rec0=23 rec1=00 rec2=04 rec3=004
        [0x05] rec0=1c rec1=00 rec2=05 rec3=02a
        [0x06] rec0=00 rec1=00 rec2=0d rec3=03a
        [0x07] rec0=1b rec1=00 rec2=06 rec3=028
        [0x08] rec0=1b rec1=00 rec2=07 rec3=052
        [0x09] rec0=00 rec1=00 rec2=0c rec3=002
        [0x0a] rec0=1d rec1=00 rec2=08 rec3=000
        [0x0b] rec0=19 rec1=00 rec2=09 rec3=08a
        [0x0c] rec0=1d rec1=00 rec2=0a rec3=046
        [0x0d] rec0=17 rec1=00 rec2=0b rec3=000
    tail 0x2150096d0819784725d80 0x42a00088462063203