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

⟦68aca9264⟧ Ada Source

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

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, Io;
package body Feu_Tricolor is
    procedure Demarrer (F : in out Object) is
    begin
        F.Feu.Demarre;
    end Demarrer;


    procedure Arreter (F : in out Object) is
    begin
        F.Feu.Arret;
    end Arreter;


    procedure Change_Ta_Couleur (F : in out Object; C : Couleur) is
    begin
        F.Feu.Change_Color (C);
    end Change_Ta_Couleur;


    procedure Change_Ta_Duree (F : in out Object; D : Duration) is
    begin
        F.Feu.Change_Duree (D);
    end Change_Ta_Duree;

    procedure Ton_Nom (F : in out Object; N : String) is
    begin
        F.Feu.Entree_Nom (N);
    end Ton_Nom;


    -- procedure Clignote (F : in out Object) is
    -- begin
    --     [statement]
    -- end Clignote;
    --
    --
    -- function Couleur_De (F : Object) return Couleur is
    -- begin
    --     [statement]
    -- end Couleur_De;

    task body Type_Feu is
        Marche : Boolean := False;
        Duree : Duration := 5.0;
        Color : Couleur := Rouge;
        Nom_Feu : String (0 .. 10);

    begin  
        while not Marche loop
            accept Entree_Nom (Nom : String) do
                Nom_Feu := Nom;
            end Entree_Nom;
            accept Demarre do
                Marche := True;
                Text_Io.Put ("Demarrage du feu ");
                Io.Put_Line (Nom_Feu);
            end Demarre;
        end loop;

        while Marche loop  
            Text_Io.Put ("je suis");
            Io.Put_Line (Color);  
            delay Duree;

            select
                accept Change_Duree (T : Duration) do
                    Duree := T;
                end Change_Duree;  
            else
                select
                    accept Change_Color (C : Couleur) do
                        Color := C;
                    end Change_Color;
                else
                    accept Arret do
                        Marche := False;
                        Text_Io.Put_Line ("STOP");
                    end Arret;

                end select;
            end select;

        end loop;
    end Type_Feu;
end Feu_Tricolor;

E3 Meta Data

    nblk1=4
    nid=3
    hdr6=6
        [0x00] rec0=2d rec1=00 rec2=01 rec3=042
        [0x01] rec0=21 rec1=00 rec2=02 rec3=008
        [0x02] rec0=0a rec1=00 rec2=04 rec3=000
        [0x03] rec0=0a rec1=00 rec2=04 rec3=000
    tail 0x21766b85088dd7b38d046 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 00 00 04 80 01 65 01 02 03 04 05 06 07 20 20  ┆      e         ┆