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

⟦6c0b76e35⟧ Ada Source

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

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;  
with Asteroide;
--with Imprimeur;

package body Serveur is

    C : Character := 'C';
    Num_T : Natural := 0;
    Q : Natural range 0 .. 2 := 0;
    --Tab_Aste : array (1 .. 2) of Asteroide.Objet;

    Tab_Ptr : array (1 .. 5) of Asteroide.D_Asteroide;


    task body Tserveur is

    begin
        accept Go;

        for I in 1 .. 4 loop
            Tab_Ptr (I) := new Asteroide.Objet;
            accept Ok;
            --Text_Io.Put_Line (" Tache aster cree dynamiquement nun : " &
            --Integer'Image (I);
        end loop;



        Text_Io.Put_Line (" Tache serveur en route ...");

        loop
            --Text_Io.Put_Line (" Tache serveur en attente de accept ...");
            select
                accept Envoyer_Evenement (C : in Character; No : in Integer) do
                    Q := 2;
                    --Text_Io.Put_Line
                    --(" Serveur doit envoyer un message  a un vaisseau ");
                    -- regarder si collision
                    -- sinon
                    -- if C = Direction then Bouge:V
                    --sinon Creer Tir
                end Envoyer_Evenement;
            or
                accept Accepter_Evenement (Position : in Definitions.Position;
                                           Num : in Natural) do
                    Q := 1;
                    --Text_Io.Put_Line (" serveur sert asteroide " &
                    --                Integer'Image (Num) & " coord(L,C) : " &
                    --                Integer'Image (Position.Colonne) & " , " &
                    --                Integer'Image (Position.Ligne));

                    --Text_Io.Put_Line (" Num_t : " & Integer'Image (Num_T) &
                    --                " et Num : " & Integer'Image (Num));
                    Num_T := Num;

                    --  C := 'T';
                    --else
                    C := 'B';
                    --Text_Io.Put_Line ("B");
                    --end if;
                end Accepter_Evenement;


            else
                delay 0.01;
            end select;
            case Q is
                when 0 =>
                    null;
                when 1 =>
                    Text_Io.Put_Line (" cas 1 aster ");
                    Asteroide.Msg (Tab_Ptr (Num_T).all, C);
                when 2 =>
                    Text_Io.Put_Line (" cas 2 vaisseau ");
            end case;
            Q := 0;
        end loop;
    end Tserveur;




    -- terms : array (1..n) of terminal.handle;
    -- Terms (1) := Mon_Terminal.Creer (No => 1);
    -- Mon_Terminal.Ecrire (Terminal => Terms (1),  -- handle
    --                     C => C, -- caractere a ecrire
    --                     X => X,
    --                     Y => Y,
    --                     Blink => Blink);


    -- procedure Traiter_Caractere (C : in Character; No : in Integer) is
    --  begin
    --  Text_Io.Put_Line ("Le terminal " & Integer'Image (No) &
    --                   " a frappe le caractere " & C);
    -- Serveur.rendez-vous(No, C);
    --   end Traiter_Caractere;
end Serveur;

E3 Meta Data

    nblk1=6
    nid=5
    hdr6=a
        [0x00] rec0=26 rec1=00 rec2=01 rec3=08a
        [0x01] rec0=00 rec1=00 rec2=02 rec3=004
        [0x02] rec0=15 rec1=00 rec2=03 rec3=03a
        [0x03] rec0=22 rec1=00 rec2=06 rec3=060
        [0x04] rec0=07 rec1=00 rec2=04 rec3=000
        [0x05] rec0=03 rec1=00 rec2=02 rec3=000
    tail 0x21768be04891071a3d82c 0x42a00088462060003
Free Block Chain:
  0x5: 0000  00 00 00 a6 80 22 20 20 20 20 20 20 20 20 20 20  ┆     "          ┆