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

⟦873aa7aac⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Corp_Programme, seg_057328

Derivation

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

E3 Source Code



with Byte_Defs, Scheduler, Trame, Operations;
with Affichage, Trame;


package body Corp_Programme is

    Index_Courant : Positive;
    package One_Scheduler is new Scheduler;

    --************************************************************
    task Scrute_Tableau;
    -- Scrutation du tableau, recherche un index "Rempli"
    -- Le contenu du champ numero 4 ("Etat") du tableau indique:
    --          0 : L'index contient quelque-chose
    --          11: L'index est vide
    task body Scrute_Tableau is
        Index : Integer;
        Reponse : String (1 .. 10);
        Trame_Message : Byte_Defs.Byte_String (1 .. 1024);
        Taille : Positive;
        Resultat : Integer;
    begin
        One_Scheduler.Donne_Taille_Buffer_Reception (Taille);
        One_Scheduler.Definir_Communication_Pour_Objet;
        One_Scheduler.Accepte_Reception;
        loop  
            for Index_Courant in 1 .. Taille loop
                One_Scheduler.Donne_Champ_Type_Integer
                   (Index_Courant, 4, Resultat);
                -- Teste si un message existe dans le tableau
                if Resultat = 0 then  
                    One_Scheduler.Donne_Champ_Type_Integer
                       (Index_Courant, 1, Resultat);
                    -- Teste si message de type 1
                    if Resultat = 1 then  
                        One_Scheduler.Fabrique_Trame
                           (Index_Courant, Trame_Message);  
                        One_Scheduler.Place_Reponse
                           (Index_Courant,
                            Traitement (Trame.Extrait (Trame_Message, 5)));  
                        One_Scheduler.Fabrique_Trame
                           (Index_Courant, Trame_Message);  
                        One_Scheduler.Envoi_Trame (Trame_Message);  
                        One_Scheduler.Efface_Par_Index (Index_Courant);
                    end if;
                end if;
            end loop;
        end loop;
    end Scrute_Tableau;

    --************************************************************
    -- Demande d'enregistrement d'un objet a l'ORB (Registration)
    procedure Enregistrement (Message : in String) is
    begin
        One_Scheduler.Enregistre_Service (Message);
    end Enregistrement;

    --************************************************************
    -- Fin d'existence (Unregistration)
    procedure Desenregistrement (Message : in String) is
    begin
        One_Scheduler.Supprime_Service (Message);
    end Desenregistrement;

    --************************************************************
    -- Demande de service (Request)
    procedure Demande (Message : in String; Codage : out Positive) is
    begin
        One_Scheduler.Envoi_Demande (Message, Codage);
    end Demande;

    --************************************************************
    -- Demande de reponse du service demande
    function Reponse (Codage : in Positive; Rang : in Positive) return String is
    begin
        return One_Scheduler.Extrait_Reponse (Codage, Rang);
    end Reponse;

    --************************************************************
    --function Parametre (Num_Param : in Positive) return String is
    --begin
    --    return One_Scheduler.Extrait_Parametre (Num_Param);
    --end Parametre;

    --************************************************************
    -- Demande d'effacement de la reponse associe a un service
    procedure Efface (Num_Requete : in Positive) is
    begin
        One_Scheduler.Efface_Par_Requete (Num_Requete);
    end Efface;

end Corp_Programme;

E3 Meta Data

    nblk1=6
    nid=2
    hdr6=a
        [0x00] rec0=1d rec1=00 rec2=01 rec3=04c
        [0x01] rec0=00 rec1=00 rec2=05 rec3=008
        [0x02] rec0=13 rec1=00 rec2=03 rec3=022
        [0x03] rec0=1b rec1=00 rec2=06 rec3=02a
        [0x04] rec0=13 rec1=00 rec2=04 rec3=000
        [0x05] rec0=13 rec1=00 rec2=02 rec3=001
    tail 0x21764020e87c68395f794 0x42a00088462060003
Free Block Chain:
  0x2: 0000  00 00 01 b2 80 01 2a 01 00 41 20 20 20 20 66 75  ┆      *  A    fu┆