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

⟦124f841c2⟧ Ada Source

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

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 Text_Io;  
with Window_Io;

package body Moteur is

    procedure At_Work is
        Running : Boolean := False;
        Done : Boolean := False;

        task Envoi_Message is
            entry Debut;
            entry Stop;
            entry Pause;
            entry Jouer;
        end Envoi_Message;

        task Espion is
        end Espion;

        task body Espion is  
            Term : Window_Io.Raw.Stream_Type;
            Item : Window_Io.Raw.Key;
            Console : Window_Io.File_Type;

            The_Char : Character := ' ';

        begin
            Window_Io.Raw.Open (Term);
            while The_Char /= 's' loop
                Window_Io.Raw.Get (Term, Item);
                Window_Io.Bell (Console);
                The_Char := Character (Window_Io.Raw.Convert (Item));
                Text_Io.Put_Line (Character'Image (The_Char));
                case The_Char is
                    when 'd' =>
                        Envoi_Message.Debut;  
                    when 's' =>
                        Text_Io.Put_Line (" fin...");
                        Envoi_Message.Stop;
                    when 'j' =>
                        Envoi_Message.Jouer;
                    when 'p' =>
                        Envoi_Message.Pause;

                    when others =>
                        Text_Io.Put_Line ("Erreur de frappe");
                end case;
            end loop;
            Window_Io.Raw.Disconnect (Term);
        end Espion;


        task body Envoi_Message is  
        begin
            while not Done loop
                select
                    accept Debut do
                        Text_Io.Put_Line ("Le debut est annonce");
                        Running := False;
                    end Debut;
                or  
                    accept Jouer do  
                        Running := True;
                        Text_Io.Put_Line ("jouer...");
                    end Jouer;

                or  
                    accept Pause do  
                        Running := False;
                        Text_Io.Put_Line ("pause...");
                    end Pause;  
                or
                    accept Stop do
                        Done := True;  
                        Running := False;
                    end Stop;
                end select;
            end loop;
        end Envoi_Message;


    begin
        while not Done loop
            while Running loop
                Text_Io.Put_Line ("germain muller");
                delay 0.5;
            end loop;
        end loop;
    end At_Work;



end Moteur;

E3 Meta Data

    nblk1=4
    nid=2
    hdr6=6
        [0x00] rec0=25 rec1=00 rec2=01 rec3=016
        [0x01] rec0=1c rec1=00 rec2=04 rec3=05a
        [0x02] rec0=1e rec1=00 rec2=03 rec3=000
        [0x03] rec0=02 rec1=d5 rec2=05 rec3=242
    tail 0x215301a8c84df7fc5af50 0x42a00088462060003
Free Block Chain:
  0x2: 0000  00 00 00 b7 80 19 20 20 20 20 20 20 20 20 20 20  ┆                ┆