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

⟦e403b48f2⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Feu_Tri2, seg_058c1a

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 Text_Io;
package body Feu_Tri2 is

    package Int_Io is new Text_Io.Integer_Io (Nombre);


    procedure Initialise_Num (Objet_Feu : in out Object;
                              Un_Numero : in Nombre;
                              Une_Couleur : in Couleurs) is  
    begin
        Objet_Feu.Feu.Init (Un_Numero, Une_Couleur);
    end Initialise_Num;


    procedure Envoie_Arreter (Objet_Feu : in Object) is
    begin  
        Objet_Feu.Feu.Arreter_Feu;
    end Envoie_Arreter;

    procedure Envoie_Change_Couleur (Objet_Feu : in Object) is
    begin
        Objet_Feu.Feu.Changer_Couleur;
    end Envoie_Change_Couleur;

    procedure Affiche (Numero : in Nombre; Couleur : in Couleurs) is
    begin
        Text_Io.Put ("feu numero ");
        Int_Io.Put (Numero);
        case Couleur is
            when Vert =>
                Text_Io.Put_Line ("  ->   je suis vert...");
            when Orange =>
                Text_Io.Put_Line ("  ->   je suis orange..");
                Text_Io.New_Line;
            when Rouge =>
                Text_Io.Put_Line ("  ->   je suis rouge...");
        end case;
    end Affiche;


    procedure Change_La_Couleur (Couleur : in out Couleurs) is
    begin
        if Couleur = Couleurs'Last then
            Couleur := Couleurs'First;
        else
            Couleur := Couleurs'Succ (Couleur);
        end if;
    end Change_La_Couleur;


    task body Type_Feu is
        Tourner : Boolean := True;
        Mon_Numero : Nombre;
        Ma_Couleur : Couleurs;
    begin
        accept Init (Son_Numero : in Nombre; Sa_Couleur : in Couleurs) do
            Mon_Numero := Son_Numero;  
            Ma_Couleur := Sa_Couleur;
        end Init;
        while (Tourner) loop
            select
                accept Arreter_Feu;
                Text_Io.Put ("J'arrete la tache feu numero");
                Int_Io.Put (Mon_Numero);
                Text_Io.New_Line;
                Tourner := False;
            or
                accept Changer_Couleur;
                Change_La_Couleur (Ma_Couleur);
                Affiche (Mon_Numero, Ma_Couleur);
            end select;
        end loop;  
    end Type_Feu;

end Feu_Tri2;

E3 Meta Data

    nblk1=4
    nid=4
    hdr6=6
        [0x00] rec0=22 rec1=00 rec2=01 rec3=04c
        [0x01] rec0=20 rec1=00 rec2=03 rec3=030
        [0x02] rec0=0b rec1=00 rec2=02 rec3=000
        [0x03] rec0=0a rec1=00 rec2=04 rec3=000
    tail 0x217669ad088d47d90f411 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 00 01 0b 80 0d 6e 65 72 20 3a 3d 20 46 61 6c  ┆      ner := Fal┆