|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 5120 (0x1400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Feu_Tricolore, seg_058c5f
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Text_Io;
package body Feu_Tricolore is
task Affichage is
entry Affiche (N : in Natural; C : in Couleur_Du_Feu);
end Affichage;
task body Affichage is
begin
loop
select
accept Affiche (N : in Natural; C : in Couleur_Du_Feu) do
Text_Io.Put ("feu ");
Text_Io.Put (Natural'Image (N));
case C is
when Rouge =>
Text_Io.Put_Line (" rouge");
when Orange =>
Text_Io.Put_Line (" orange");
when Vert =>
Text_Io.Put_Line (" vert");
when Orange_Clignotant =>
Text_Io.Put_Line (" orange clignotant");
end case;
end Affiche;
or
terminate;
end select;
end loop;
end Affichage;
procedure Stop (O : in Object) is
begin
O.Arreter;
end Stop;
procedure Modifie_Mode (O : in Object; M : in Mode) is
begin
O.Changer_Mode (M);
end Modifie_Mode;
procedure Attribut_Numero (O : in Object; N : in Natural) is
begin
O.Changer_Numero (N);
end Attribut_Numero;
procedure Modifie_Delai
(O : in Object; C : in Couleur_Du_Feu; D : in Duration) is
begin
O.Changer_Delai (C, D);
end Modifie_Delai;
procedure Changer_Etat
(N : in Natural; E : in out Couleur_Du_Feu; M : in Mode) is
begin
if M = Jour then
case E is
when Rouge =>
E := Vert;
when Orange | Orange_Clignotant =>
E := Rouge;
when Vert =>
E := Orange;
end case;
else
E := Orange_Clignotant;
end if;
Affichage.Affiche (N, E);
end Changer_Etat;
task body Object is
Caract : Feu;
begin
while Caract.En_Marche = True loop
select
accept Arreter do
Caract.En_Marche := False;
end Arreter;
or
accept Changer_Numero (N : in Natural) do
Caract.Numero := N;
end Changer_Numero;
or
accept Changer_Mode (M : in Mode) do
Caract.De := M;
end Changer_Mode;
or
accept Changer_Delai (C : in Couleur_Du_Feu; D : in Duration) do
Caract.Les_Delais (C) := D;
end Changer_Delai;
else
if Caract.En_Marche = True then
delay Caract.Les_Delais (Caract.Etat);
Changer_Etat (Caract.Numero, Caract.Etat, Caract.De);
end if;
end select;
end loop;
end Object;
end Feu_Tricolore;
nblk1=4
nid=0
hdr6=8
[0x00] rec0=1e rec1=00 rec2=01 rec3=016
[0x01] rec0=1e rec1=00 rec2=02 rec3=036
[0x02] rec0=1e rec1=00 rec2=03 rec3=044
[0x03] rec0=0a rec1=00 rec2=04 rec3=000
tail 0x21766a4ae88d65ee3d4a9 0x42a00088462060003