|
|
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: 16384 (0x4000)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Cl35, seg_04cc78, seg_04cd64
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Cl35_Message;
with Rapport_Cartes_Valides;
with Rapport_Cartes_Invalides;
package body Cl35 is
package Cartes_Ok renames Rapport_Cartes_Valides;
package Cartes_Nok renames Rapport_Cartes_Invalides;
package Complx_Msg is new Cl35_Message (Type_Of_Msg => Mt.With_Response);
package Receive_Msg is new Cl35_Message (Type_Of_Msg => Mt.Response);
package Simple_Msg is new Cl35_Message (Type_Of_Msg => Mt.With_Ack);
Cmd_Beep : constant := 16#2C#;
Cmd_Rapport_Horloge : constant := 16#24#;
Cmd_Mise_A_L_Heure : constant := 16#23#;
Cmd_En_Veille : constant := 16#2A#;
Cmd_Hors_Veille : constant := 16#2B#;
Cmd_Code_Site : constant := 16#27#;
Cmd_Rapport_Site : constant := 16#28#;
Cmd_Rapport_Cartes_Invalides : constant := 16#29#;
Cmd_Rapport_Cartes_Valides : constant := 16#1F#;
Cmd_Valide_Carte : constant := 16#10#;
Cmd_Valide_Groupe_Cartes : constant := 16#11#;
Cmd_Invalide_Carte : constant := 16#12#;
Cmd_Invalide_Groupe_Cartes : constant := 16#13#;
Cmd_Reglage_Parametres : constant := 16#22#;
Cmd_Rapport_Parametres : constant := 16#1E#;
Cmd_Rapport_Evenements : constant := 16#1D#;
Cmd_Transmission_Plage : constant := 16#25#;
Cmd_Rapport_Plage : constant := 16#26#;
procedure Check_Cmd (Msg_Send : in Complx_Msg.Object;
Msg_Received : in Receive_Msg.Object) is
begin
if Complx_Msg.Msg_Cmd (Msg_Send) /=
Receive_Msg.Msg_Cmd (Msg_Received) then
raise Bad_Cmd;
end if;
end Check_Cmd;
function Image (Le_Lecteur : in Object) return String is
begin
return ("Lecteur Cl35 d'adresse" &
Addr'Image (Le_Lecteur.Addr_Lecteur) & " ");
end Image;
function Address (Address : in Addr) return Object is
begin
return Object'(Addr_Lecteur => Address);
end Address;
function Address (Le_Lecteur : in Object) return Addr is
begin
return Le_Lecteur.Addr_Lecteur;
end Address;
procedure Valide_Carte (Le_Lecteur : Object;
La_Carte : in Carte.Object;
Pour_La_Plage : in Natural) is
Send_Message : Simple_Msg.Object;
begin
Simple_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Valide_Carte,
Data => Carte.Image (La_Carte => La_Carte,
La_Plage => Pour_La_Plage));
Simple_Msg.Write_Msg (Message => Send_Message);
end Valide_Carte;
procedure Valide_Carte (Le_Lecteur : Object;
De_La_Carte : in Carte.Object;
A_La_Carte : in Carte.Object;
Pour_La_Plage : in Natural) is
Send_Message : Simple_Msg.Object;
begin
Simple_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Valide_Groupe_Cartes,
Data => Carte.Image (De_La_Carte => De_La_Carte,
A_La_Carte => A_La_Carte,
La_Plage => Pour_La_Plage));
Simple_Msg.Write_Msg (Message => Send_Message);
end Valide_Carte;
procedure Invalide_Carte (Le_Lecteur : Object;
La_Carte : in Carte.Object) is
Send_Message : Simple_Msg.Object;
begin
Simple_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Invalide_Carte,
Data => Carte.Image (La_Carte => La_Carte));
Simple_Msg.Write_Msg (Message => Send_Message);
end Invalide_Carte;
procedure Invalide_Carte (Le_Lecteur : Object;
De_La_Carte : in Carte.Object;
A_La_Carte : in Carte.Object) is
Send_Message : Simple_Msg.Object;
begin
Simple_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Invalide_Groupe_Cartes,
Data => Carte.Image (De_La_Carte => De_La_Carte,
A_La_Carte => A_La_Carte));
Simple_Msg.Write_Msg (Message => Send_Message);
end Invalide_Carte;
procedure Cartes_Valides (Le_Lecteur : Object;
De_La_Carte : Carte.Object;
A_La_Carte : Carte.Object;
Le_Rapport : in out Liste_Ok.List) is
Send_Message : Complx_Msg.Object;
Rec_Message : Receive_Msg.Object;
begin
Complx_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Rapport_Cartes_Valides,
Data => Carte.Image (De_La_Carte => De_La_Carte,
A_La_Carte => A_La_Carte));
Complx_Msg.Write_Msg (Message => Send_Message);
Receive_Msg.Split_Size (Message => Rec_Message, Size => 238);
Receive_Msg.Read_Msg (Message => Rec_Message);
Check_Cmd (Msg_Send => Send_Message, Msg_Received => Rec_Message);
Le_Rapport := Cartes_Ok.Value
(The_Byte_String => Receive_Msg.Msg_Data
(Message => Rec_Message));
Complx_Msg.Free (Send_Message);
Receive_Msg.Free (Rec_Message);
end Cartes_Valides;
procedure Cartes_Invalides (Le_Lecteur : Object;
De_La_Carte : Carte.Object;
A_La_Carte : Carte.Object;
Le_Rapport : in out Liste_Nok.List) is
Send_Message : Complx_Msg.Object;
Rec_Message : Receive_Msg.Object;
begin
Complx_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Rapport_Cartes_Invalides,
Data => Carte.Image (De_La_Carte => De_La_Carte,
A_La_Carte => A_La_Carte));
Complx_Msg.Write_Msg (Message => Send_Message);
Receive_Msg.Split_Size (Message => Rec_Message, Size => 238);
Receive_Msg.Read_Msg (Message => Rec_Message);
Check_Cmd (Msg_Send => Send_Message, Msg_Received => Rec_Message);
Le_Rapport := Cartes_Nok.Value
(The_Byte_String => Receive_Msg.Msg_Data
(Message => Rec_Message));
Complx_Msg.Free (Send_Message);
Receive_Msg.Free (Rec_Message);
end Cartes_Invalides;
procedure Rapport_Evenements (Le_Lecteur : Object;
Le_Rapport : in out File_Evt.Queue) is
Send_Message : Complx_Msg.Object;
Rec_Message : Receive_Msg.Object;
begin
Complx_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Rapport_Evenements,
Data => Mt.Null_String);
Complx_Msg.Write_Msg (Message => Send_Message);
Receive_Msg.Split_Size (Message => Rec_Message, Size => 238);
Receive_Msg.Read_Msg (Message => Rec_Message);
Check_Cmd (Msg_Send => Send_Message, Msg_Received => Rec_Message);
Le_Rapport := Evenements.Value
(The_Byte_String => Receive_Msg.Msg_Data
(Message => Rec_Message));
Complx_Msg.Free (Send_Message);
Receive_Msg.Free (Rec_Message);
end Rapport_Evenements;
procedure Reglage_Parametres (Le_Lecteur : Object;
Params_Lecteur : in Parametres.Object) is
Send_Message : Simple_Msg.Object;
begin
Simple_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Reglage_Parametres,
Data => Parametres.Image (Params_Lecteur));
Simple_Msg.Write_Msg (Message => Send_Message);
end Reglage_Parametres;
procedure Rapport_Parametres (Le_Lecteur : Object;
Params_Lecteur : out Parametres.Object) is
Send_Message : Complx_Msg.Object;
Rec_Message : Receive_Msg.Object;
begin Complx_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Rapport_Parametres);
Complx_Msg.Write_Msg (Message => Send_Message);
Receive_Msg.Read_Msg (Message => Rec_Message);
Check_Cmd (Msg_Send => Send_Message, Msg_Received => Rec_Message);
Params_Lecteur :=
Parametres.Value
(The_Byte_String =>
Receive_Msg.Msg_Data (Message => Rec_Message).all);
Complx_Msg.Free (Send_Message);
Receive_Msg.Free (Rec_Message);
end Rapport_Parametres;
procedure Mise_A_L_Heure (Le_Lecteur : Object;
Date_Lecteur : in Date.Object) is
Send_Message : Simple_Msg.Object;
begin
Simple_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Mise_A_L_Heure,
Data => Date.Image (Date_Lecteur));
Simple_Msg.Write_Msg (Message => Send_Message);
end Mise_A_L_Heure;
procedure Rapport_Horloge (Le_Lecteur : Object;
Date_Lecteur : out Date.Object) is
Send_Message : Complx_Msg.Object;
Rec_Message : Receive_Msg.Object;
begin
Complx_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Rapport_Horloge);
Complx_Msg.Write_Msg (Message => Send_Message);
Receive_Msg.Read_Msg (Message => Rec_Message);
Check_Cmd (Msg_Send => Send_Message, Msg_Received => Rec_Message);
Date_Lecteur :=
Date.Value (The_Byte_String =>
Receive_Msg.Msg_Data (Message => Rec_Message).all);
Complx_Msg.Free (Send_Message);
Receive_Msg.Free (Rec_Message);
end Rapport_Horloge;
procedure Transmission_Plage (Le_Lecteur : in Object;
La_Plage : in Plage.Object) is
Send_Message : Simple_Msg.Object;
begin
Simple_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Transmission_Plage,
Data => Plage.Image (La_Plage));
Simple_Msg.Write_Msg (Message => Send_Message);
end Transmission_Plage;
procedure Rapport_Plage (Le_Lecteur : in Object;
Numero_De_Plage : in Plage.Num_Plage;
La_Plage : out Plage.Object) is
Send_Message : Complx_Msg.Object;
Rec_Message : Receive_Msg.Object;
begin
Complx_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Rapport_Plage,
Data => Plage.Image (Numero_De_Plage));
Complx_Msg.Write_Msg (Message => Send_Message);
Receive_Msg.Read_Msg (Message => Rec_Message);
Check_Cmd (Msg_Send => Send_Message, Msg_Received => Rec_Message);
La_Plage := Plage.Value
(Receive_Msg.Msg_Data (Message => Rec_Message).all);
Complx_Msg.Free (Send_Message);
Receive_Msg.Free (Rec_Message);
end Rapport_Plage;
procedure Get_Site (Le_Lecteur : Object; Le_Code : out Site.Object) is
Send_Message : Complx_Msg.Object;
Rec_Message : Receive_Msg.Object;
begin
Complx_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Rapport_Site);
Complx_Msg.Write_Msg (Message => Send_Message);
Receive_Msg.Read_Msg (Message => Rec_Message);
Check_Cmd (Msg_Send => Send_Message, Msg_Received => Rec_Message);
Le_Code := Site.Value
(The_Byte_String => Receive_Msg.Msg_Data
(Message => Rec_Message).all);
Complx_Msg.Free (Send_Message);
Receive_Msg.Free (Rec_Message);
end Get_Site;
procedure Set_Site (Le_Lecteur : Object; Le_Code : in Site.Object) is
Send_Message : Simple_Msg.Object;
begin
Simple_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Code_Site,
Data => Site.Image (Le_Code));
Simple_Msg.Write_Msg (Message => Send_Message);
end Set_Site;
procedure Beep (Le_Lecteur : Object) is
Send_Message : Simple_Msg.Object;
begin
Simple_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Beep);
Simple_Msg.Write_Msg (Message => Send_Message);
end Beep;
procedure Mise_Hors_Veille (Le_Lecteur : Object) is
Send_Message : Simple_Msg.Object;
begin
Simple_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_Hors_Veille);
Simple_Msg.Write_Msg (Message => Send_Message);
end Mise_Hors_Veille;
procedure Mise_En_Veille (Le_Lecteur : Object) is
Send_Message : Simple_Msg.Object;
begin
Simple_Msg.Make (Message => Send_Message,
Addr_Lecteur => Address (Le_Lecteur => Le_Lecteur),
Cmd => Cmd_En_Veille);
Simple_Msg.Write_Msg (Message => Send_Message);
end Mise_En_Veille;
procedure Init is
begin
Simple_Msg.Flush;
end Init;
end Cl35;
nblk1=f
nid=0
hdr6=1e
[0x00] rec0=19 rec1=00 rec2=01 rec3=044
[0x01] rec0=1e rec1=00 rec2=02 rec3=03c
[0x02] rec0=19 rec1=00 rec2=03 rec3=032
[0x03] rec0=16 rec1=00 rec2=04 rec3=05a
[0x04] rec0=1a rec1=00 rec2=05 rec3=00a
[0x05] rec0=14 rec1=00 rec2=06 rec3=068
[0x06] rec0=13 rec1=00 rec2=07 rec3=07e
[0x07] rec0=16 rec1=00 rec2=08 rec3=048
[0x08] rec0=1a rec1=00 rec2=09 rec3=002
[0x09] rec0=16 rec1=00 rec2=0a rec3=052
[0x0a] rec0=18 rec1=00 rec2=0b rec3=014
[0x0b] rec0=19 rec1=00 rec2=0c rec3=058
[0x0c] rec0=17 rec1=00 rec2=0d rec3=050
[0x0d] rec0=1c rec1=00 rec2=0e rec3=096
[0x0e] rec0=24 rec1=00 rec2=0f rec3=000
tail 0x217540c7e874f6e24d634 0x42a00088462060003