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

⟦a7355e6e4⟧ Ada Source

    Length: 23552 (0x5c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Interface_Structure, seg_049998, seg_049e46

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 Modify_Structure;
with Consult_Structure;  
with Afficher_Structure;
with Structure_Des_Variables;
with Display;

package body Interface_Structure is

    -- compare la position de deux variables
    -- asterix position gourde position
    ---------------------------------------------------------------
    function Compare_Position (Var1 : Char; Var2 : Char) return Boolean is
    begin
        --return (Nos_Chaines.Equal (Consult_Structure.Consult_Position (Var1),
        --             Consult_Structure.Consult_Position (Var2)));
        return Consult_Structure.Compare_Attribut
                  (Var1, Var2, Structure_Des_Variables.Position,
                   Structure_Des_Variables.Pas_De_Sens);
    end Compare_Position;


    -- compare les etats de deux variables
    -- asterix etat obelix etat
    ---------------------------------------------------------------
    function Compare_Etat (Var1 : Char; Var2 : Char) return Boolean is
    begin
        return Consult_Structure.Compare_Attribut
                  (Var1, Var2, Structure_Des_Variables.Etat,
                   Structure_Des_Variables.Pas_De_Sens);
    end Compare_Etat;

    function Compare_Etat_Sens1 (Var1 : Char; Var2 : Char) return Boolean is
    begin
        return Consult_Structure.Compare_Attribut
                  (Var1, Var2, Structure_Des_Variables.Etat,
                   Structure_Des_Variables.Sens1);
    end Compare_Etat_Sens1;

    function Compare_Etat_Sens2 (Var1 : Char; Var2 : Char) return Boolean is
    begin
        return Consult_Structure.Compare_Attribut
                  (Var1, Var2, Structure_Des_Variables.Etat,
                   Structure_Des_Variables.Sens2);
    end Compare_Etat_Sens2;


    -- compare les possessions  de deux variables
    -- asterix possession obelix possession
    ---------------------------------------------------------------
    function Compare_Possession (Var1 : Char; Var2 : Char) return Boolean is
    begin
        return Consult_Structure.Compare_Attribut
                  (Var1, Var2, Structure_Des_Variables.Possession,
                   Structure_Des_Variables.Pas_De_Sens);
    end Compare_Possession;

    function Compare_Contenu (Var1 : Char; Var2 : Char) return Boolean is
    begin
        return Consult_Structure.Compare_Attribut
                  (Var1, Var2, Structure_Des_Variables.Contenu,
                   Structure_Des_Variables.Pas_De_Sens);
    end Compare_Contenu;

    -- teste l'existence d'une variable
    -- fee
    ---------------------------------------------------------------
    function Search_For_Variable (Var : Char) return Boolean is
    begin
        return (Consult_Structure.Consult_Existence (Var));
    end Search_For_Variable;

    -- verifie la validite d'un champ d'une variable
    -- "asterix etat malade"
    ---------------------------------------------------------------
    function Search_For
                (Var : Char; Field : Char; Value : Char) return Boolean is
        Resultat : Boolean;
    begin
        Resultat := False;
        if (Nos_Chaines.Infinite_String.Image (Field) = "etat") then
            Resultat := Consult_Structure.Etat_Belong_To
                           (Var, Value, Structure_Des_Variables.Pas_De_Sens);
        elsif (Nos_Chaines.Infinite_String.Image (Field) = "contenu") then
            Resultat := Consult_Structure.Contenu_Belong_To (Var, Value);
        elsif (Nos_Chaines.Infinite_String.Image (Field) = "possession") then
            Resultat := Consult_Structure.Possession_Belong_To (Var, Value);
        end if;
        return Resultat;
    end Search_For;

    -- verifie la validite d'un champ d'une variable
    -- "asterix etat malade"
    ---------------------------------------------------------------
    function Search_For (Var : Char; Field : Char; Sens : Integer; Value : Char)
                        return Boolean is  
        Resultat : Boolean;
    begin
        Resultat := False;
        if (Nos_Chaines.Infinite_String.Image (Field) = "etat") then
            case Sens is
                when 1 =>
                    Resultat := Consult_Structure.Etat_Belong_To
                                   (Var, Value, Structure_Des_Variables.Sens1);
                when 2 =>
                    Resultat := Consult_Structure.Etat_Belong_To
                                   (Var, Value, Structure_Des_Variables.Sens2);
                when others =>
                    Resultat := Consult_Structure.Etat_Belong_To  
                                   (Var, Value, Structure_Des_Variables.
                                                   Pas_De_Sens);
            end case;  
        end if;
        return Resultat;
    end Search_For;


    -- verifie si une communication appartient a un lieu et asssocie a sortie le l
    -- "porte_bleue est dans cuisine"
    ---------------------------------------------------------------
    procedure Search_Communication (Place : Char;
                                    Communication : Char;
                                    Sortie : in out Char;
                                    Sens : in out Integer;
                                    Is_Found : out Boolean) is
    begin
        Consult_Structure.Communication_Belong_To_Lieu
           (Place, Communication, Sortie, Sens, Is_Found);
    end Search_Communication;

    -- verifie si  un lieu a une communication dans une direction et asssocie a so
    -- "cuisine sortie vers direction"
    ---------------------------------------------------------------
    procedure Search_Exit_To_Direction (Place : Char;
                                        Direction : Char;
                                        Sortie : in out Char;
                                        Sens : in out Integer;
                                        Is_Found : out Boolean) is
    begin
        Consult_Structure.Direction_Belong_To_Lieu
           (Place, Direction, Sortie, Sens, Is_Found);
    end Search_Exit_To_Direction;

    -- verifie si un lieu a une communication vers un autre lieu et asssocie a sor
    -- "lieu sortie vers cuisine "
    ---------------------------------------------------------------
    procedure Search_Exit_To_Place (Place : Char;
                                    Destination : in out Char;
                                    Sortie : in out Char;
                                    Sens : in out Integer;
                                    Is_Found : out Boolean) is
        Resultat : Boolean;
    begin
        Consult_Structure.Destination_Belong_To_Lieu
           (Place, Destination, Sens, Resultat);
        if Resultat then
            Nos_Chaines.Copy (Sortie, Destination);
        else
            Nos_Chaines.Copy (Sortie, "");
        end if;
        Is_Found := Resultat;
    end Search_Exit_To_Place;

    -- "lieu relie a position courante"
    ---------------------------------------------------------------
    procedure Search_Link_To_Place (Destination : in out Char;
                                    Place : Char;
                                    Sortie : in out Char;
                                    Sens : in out Integer;
                                    Is_Found : out Boolean) is
        Resultat : Boolean;
    begin
        Consult_Structure.Destination_Belong_To_Lieu
           (Place, Destination, Sens, Resultat);
        if Resultat then
            Nos_Chaines.Copy (Sortie, Destination);
        else
            Nos_Chaines.Copy (Sortie, "");
        end if;
        Is_Found := Resultat;  
    end Search_Link_To_Place;

    -- renvoie la valeur d'un compteur
    ---------------------------------------------------------------
    function Get_Value_Of_Counter (Counter : Char) return Integer is   begin
        return Consult_Structure.Consult_Valeur (Counter);
    end Get_Value_Of_Counter;

    -- renvoie la position d'une variable
    -- asterix => hutte
    ---------------------------------------------------------------
    function Get_Position (Var : Char) return Char is
    begin
        return (Consult_Structure.Consult_Position (Var));
    end Get_Position;

    ---------------------------------------------------------------
    function Get_Type (Var : Char) return Type_Of_Var is
    begin
        return Consult_Structure.Consult_Type (Var);
    end Get_Type;

    ---------------------------------------------------------------
    function Get_Signification (Var : Char) return Char is
    begin  
        return Consult_Structure.Consult_Signification (Var);
    end Get_Signification;

    ---------------------------------------------------------------
    function Is_In_Table (Var : Char) return Boolean is
    begin  
        return Consult_Structure.Is_In_Structure (Var);
    end Is_In_Table;

    ---------------------------------------------------------------
    function Is_A_Variable (Var : Char) return Boolean is
        Resultat : Boolean;
    begin  
        if Consult_Structure.Is_In_Structure (Var) then
            case Get_Type (Var) is
                when Structure_Des_Variables.Verbe |
                     Structure_Des_Variables.Preposition =>
                    Resultat := False;
                when others =>
                    Resultat := True;
            end case;
        else
            Resultat := False;
        end if;
        return Resultat;
    end Is_A_Variable;

    ---------------------------------------------------------------
    procedure Associate_Description_Sens1 (La_Description : Char) is
    begin
        Create_Structure.Associate_Description
           (La_Description, Structure_Des_Variables.Sens1);
    end Associate_Description_Sens1;

    ---------------------------------------------------------------
    procedure Associate_Description_Sens2 (La_Description : Char) is
    begin
        Create_Structure.Associate_Description
           (La_Description, Structure_Des_Variables.Sens2);
    end Associate_Description_Sens2;

    ---------------------------------------------------------------
    procedure Associate_Description (La_Description : Char) is
    begin
        Create_Structure.Associate_Description
           (La_Description, Structure_Des_Variables.Pas_De_Sens);
    end Associate_Description;

    ---------------------------------------------------------------
    procedure Associate_Etat_Sens1 (Le_Etat : Char) is
    begin
        Create_Structure.Associate_Etat
           (Le_Etat, Structure_Des_Variables.Sens1);  
    end Associate_Etat_Sens1;

    ---------------------------------------------------------------
    procedure Associate_Etat_Sens2 (Le_Etat : Char) is
    begin
        Create_Structure.Associate_Etat
           (Le_Etat, Structure_Des_Variables.Sens2);
    end Associate_Etat_Sens2;

    ---------------------------------------------------------------
    procedure Associate_Etat (Le_Etat : Char) is
    begin
        Create_Structure.Associate_Etat (Le_Etat,
                                         Structure_Des_Variables.Pas_De_Sens);
    end Associate_Etat;

    ---------------------------------------------------------------
    procedure Associate_Source_Sens1 (La_Source : Char) is
    begin
        Create_Structure.Associate_Source
           (La_Source, Structure_Des_Variables.Sens1);
    end Associate_Source_Sens1;

    ---------------------------------------------------------------
    procedure Associate_Source_Sens2 (La_Source : Char) is
    begin
        Create_Structure.Associate_Source
           (La_Source, Structure_Des_Variables.Sens2);
    end Associate_Source_Sens2;

    ---------------------------------------------------------------
    procedure Associate_Source (La_Source : Char) is
    begin
        Create_Structure.Associate_Source (La_Source,
                                           Structure_Des_Variables.Pas_De_Sens);
    end Associate_Source;

    ---------------------------------------------------------------
    procedure Associate_Destination_Sens1 (La_Destination : Char) is
    begin
        Create_Structure.Associate_Destination
           (La_Destination, Structure_Des_Variables.Sens1);
    end Associate_Destination_Sens1;

    ---------------------------------------------------------------
    procedure Associate_Destination_Sens2 (La_Destination : Char) is
    begin
        Create_Structure.Associate_Destination
           (La_Destination, Structure_Des_Variables.Sens2);
    end Associate_Destination_Sens2;

    ---------------------------------------------------------------
    procedure Associate_Destination (La_Destination : Char) is
    begin
        Create_Structure.Associate_Destination
           (La_Destination, Structure_Des_Variables.Pas_De_Sens);
    end Associate_Destination;

    -- modifie la valeur d'un compteur
    ---------------------------------------------------------------
    procedure Put_Value_In_Counter (Counter : Char; Value : Integer) is
    begin
        Modify_Structure.Modifier_Valeur (Counter, Value);
    end Put_Value_In_Counter;

    ---------------------------------------------------------------
    procedure Add_Etat (Var : Char; Etat : Char) is
    begin
        Modify_Structure.Ajouter_Etat (Var, Etat,
                                       Structure_Des_Variables.Pas_De_Sens);
    end Add_Etat;

    ---------------------------------------------------------------
    procedure Add_Etat_Sens1 (Var : Char; Etat : Char) is
    begin
        Modify_Structure.Ajouter_Etat (Var, Etat,
                                       Structure_Des_Variables.Sens1);
    end Add_Etat_Sens1;

    ---------------------------------------------------------------
    procedure Add_Etat_Sens2 (Var : Char; Etat : Char) is
    begin
        Modify_Structure.Ajouter_Etat (Var, Etat,
                                       Structure_Des_Variables.Sens2);
    end Add_Etat_Sens2;

    ---------------------------------------------------------------
    procedure Delete_Etat (Var : Char; Etat : Char) is
    begin
        Modify_Structure.Supprimer_Etat (Var, Etat,
                                         Structure_Des_Variables.Pas_De_Sens);
    end Delete_Etat;

    ---------------------------------------------------------------
    procedure Delete_Etat_Sens1 (Var : Char; Etat : Char) is
    begin
        Modify_Structure.Supprimer_Etat
           (Var, Etat, Structure_Des_Variables.Sens1);
    end Delete_Etat_Sens1;

    ---------------------------------------------------------------
    procedure Delete_Etat_Sens2 (Var : Char; Etat : Char) is
    begin
        Modify_Structure.Supprimer_Etat
           (Var, Etat, Structure_Des_Variables.Sens2);
    end Delete_Etat_Sens2;

    ---------------------------------------------------------------
    procedure Add_Possession (Var : Char; Possession : Char) is
    begin
        Modify_Structure.Ajouter_Contenu_Possession (Var, Possession);
    end Add_Possession;

    ---------------------------------------------------------------
    procedure Delete_Possession (Var : Char; Possession : Char) is
    begin
        Modify_Structure.Supprimer_Contenu_Possession (Var, Possession);
    end Delete_Possession;

    ---------------------------------------------------------------
    procedure Add_Contenu (Var : Char; Contenu : Char) is
    begin
        Modify_Structure.Ajouter_Contenu_Possession (Var, Contenu);
    end Add_Contenu;

    ---------------------------------------------------------------
    procedure Delete_Contenu (Var : Char; Contenu : Char) is
    begin
        Modify_Structure.Ajouter_Contenu_Possession (Var, Contenu);
    end Delete_Contenu;

    ---------------------------------------------------------------
    procedure Modify_Description (Var : Char; Description : Char) is
    begin
        Modify_Structure.Modifier_Description
           (Var, Description, Structure_Des_Variables.Pas_De_Sens);
    end Modify_Description;

    ---------------------------------------------------------------
    procedure Modify_Description_Sens1 (Var : Char; Description : Char) is
    begin
        Modify_Structure.Modifier_Description
           (Var, Description, Structure_Des_Variables.Sens1);
    end Modify_Description_Sens1;

    ---------------------------------------------------------------
    procedure Modify_Description_Sens2 (Var : Char; Description : Char) is
    begin
        Modify_Structure.Modifier_Description
           (Var, Description, Structure_Des_Variables.Sens2);
    end Modify_Description_Sens2;

    ---------------------------------------------------------------
    procedure Kill_Var (Var : Char) is
    begin
        Modify_Structure.Modifier_Existence (Var, False);
    end Kill_Var;

    ---------------------------------------------------------------
    procedure Create_Var (Var : Char) is
    begin
        Modify_Structure.Modifier_Existence (Var, True);
    end Create_Var;

    ---------------------------------------------------------------
    procedure Move_To (Var : Char; To : Char) is
    begin
        Modify_Structure.Modifier_Position (Var, To);
    end Move_To;

    ---------------------------------------------------------------
    procedure Print_Possession (Var : Char) is
    begin
        Afficher_Structure.Listing_Possession_Contenu (Var);
    end Print_Possession;

    ---------------------------------------------------------------
    procedure Print_Contenu (Var : Char) is
    begin
        Afficher_Structure.Listing_Possession_Contenu (Var);
    end Print_Contenu;

    ---------------------------------------------------------------
    procedure Print_Description (Var : Char) is
    begin
        Display.Write_On_World (Consult_Structure.Consult_Description
                                   (Var, Structure_Des_Variables.Pas_De_Sens));
    end Print_Description;

    ---------------------------------------------------------------
    procedure Print_Description_Sens1 (Var : Char) is
    begin
        Display.Write_On_World (Consult_Structure.Consult_Description
                                   (Var, Structure_Des_Variables.Sens1));
    end Print_Description_Sens1;

    ---------------------------------------------------------------
    procedure Print_Description_Sens2 (Var : Char) is
    begin
        Display.Write_On_World (Consult_Structure.Consult_Description
                                   (Var, Structure_Des_Variables.Sens2));
    end Print_Description_Sens2;

    ---------------------------------------------------------------
    procedure Print_Etat (Var : Char) is
    begin
        Afficher_Structure.Listing_Etat (Var,
                                         Structure_Des_Variables.Pas_De_Sens);
    end Print_Etat;

    ---------------------------------------------------------------
    procedure Print_Etat_Sens1 (Var : Char) is
    begin
        Afficher_Structure.Listing_Etat (Var, Structure_Des_Variables.Sens1);
    end Print_Etat_Sens1;

    ---------------------------------------------------------------
    procedure Print_Etat_Sens2 (Var : Char) is
    begin
        Afficher_Structure.Listing_Etat (Var, Structure_Des_Variables.Sens2);
    end Print_Etat_Sens2;


end Interface_Structure;

E3 Meta Data

    nblk1=16
    nid=14
    hdr6=2a
        [0x00] rec0=1a rec1=00 rec2=01 rec3=082
        [0x01] rec0=19 rec1=00 rec2=07 rec3=052
        [0x02] rec0=19 rec1=00 rec2=05 rec3=008
        [0x03] rec0=14 rec1=00 rec2=0b rec3=020
        [0x04] rec0=17 rec1=00 rec2=06 rec3=048
        [0x05] rec0=13 rec1=00 rec2=04 rec3=04e
        [0x06] rec0=17 rec1=00 rec2=0c rec3=030
        [0x07] rec0=19 rec1=00 rec2=03 rec3=002
        [0x08] rec0=12 rec1=00 rec2=15 rec3=086
        [0x09] rec0=1c rec1=00 rec2=11 rec3=006
        [0x0a] rec0=18 rec1=00 rec2=0a rec3=014
        [0x0b] rec0=19 rec1=00 rec2=16 rec3=01c
        [0x0c] rec0=18 rec1=00 rec2=09 rec3=03c
        [0x0d] rec0=18 rec1=00 rec2=0d rec3=03c
        [0x0e] rec0=0b rec1=00 rec2=02 rec3=054
        [0x0f] rec0=19 rec1=00 rec2=08 rec3=01a
        [0x10] rec0=1a rec1=00 rec2=10 rec3=010
        [0x11] rec0=16 rec1=00 rec2=0e rec3=03e
        [0x12] rec0=1d rec1=00 rec2=0f rec3=060
        [0x13] rec0=16 rec1=00 rec2=12 rec3=03a
        [0x14] rec0=14 rec1=00 rec2=13 rec3=000
        [0x15] rec0=00 rec1=00 rec2=00 rec3=000
    tail 0x215470b12865f701acce1 0x42a00088462060003
Free Block Chain:
  0x14: 0000  00 00 00 20 80 05 61 6e 20 69 73 05 00 09 20 20  ┆      an is     ┆