|
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