|
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 - download
Length: 10240 (0x2800) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Carte_Es, seg_05abe5
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
--with Bit_Utilitaires; with Defined_Type; with System; with Vme; with Vsip; package body Carte_Es is package Vsip1 is new Vsip (Base_Address => 16#8000#, Vme_Position => Vme.Slot1, Scim_0 => Defined_Type.Mod101, Scim_1 => Defined_Type.No_Module, Scim_2 => Defined_Type.No_Module, Scim_3 => Defined_Type.No_Module); package Module is new Vsip1.Mod101 (Base_Address_Module => 16#600#); subtype Numero_Bit is Natural range 0 .. 7; type Sortie_Reelle is record Groupe : Module.Group; Bit : Numero_Bit; Broche : Module.Pin_No; end record; type Tableau_Sorties is array (Numero_Sortie) of Sortie_Reelle; --Donnee_Valide : Boolean := True; --Groupe_Courant : Module.Group; Correspondance : Tableau_Sorties; Les_Sorties : Image_Des_Sorties; --Donnee : Bit_Utilitaires.Octet; procedure Init_Sortie (Sortie : in Numero_Sortie; Groupe : in Module.Group; Bit : in Numero_Bit; Broche : in Module.Pin_No) is begin Correspondance (Sortie) := (Groupe => Groupe, Bit => Bit, Broche => Broche); end Init_Sortie; procedure Initialiser is I : Numero_Sortie; begin Vsip1.Setup; Module.Setup; Init_Sortie (Sortie => 1, Groupe => Module.Group0, Bit => 0, Broche => 3); Init_Sortie (Sortie => 2, Groupe => Module.Group0, Bit => 1, Broche => 4); Init_Sortie (Sortie => 3, Groupe => Module.Group0, Bit => 2, Broche => 5); Init_Sortie (Sortie => 4, Groupe => Module.Group0, Bit => 3, Broche => 6); Init_Sortie (Sortie => 5, Groupe => Module.Group0, Bit => 4, Broche => 7); Init_Sortie (Sortie => 6, Groupe => Module.Group0, Bit => 5, Broche => 8); Init_Sortie (Sortie => 7, Groupe => Module.Group1, Bit => 0, Broche => 13); Init_Sortie (Sortie => 8, Groupe => Module.Group1, Bit => 1, Broche => 14); Init_Sortie (Sortie => 9, Groupe => Module.Group1, Bit => 2, Broche => 15); Init_Sortie (Sortie => 10, Groupe => Module.Group1, Bit => 3, Broche => 16); Init_Sortie (Sortie => 11, Groupe => Module.Group1, Bit => 4, Broche => 17); Init_Sortie (Sortie => 12, Groupe => Module.Group1, Bit => 5, Broche => 18); Init_Sortie (Sortie => 13, Groupe => Module.Group2, Bit => 0, Broche => 23); Init_Sortie (Sortie => 14, Groupe => Module.Group3, Bit => 0, Broche => 33); Init_Sortie (Sortie => 15, Groupe => Module.Group2, Bit => 4, Broche => 27); Init_Sortie (Sortie => 16, Groupe => Module.Group2, Bit => 5, Broche => 28); Init_Sortie (Sortie => 17, Groupe => Module.Group2, Bit => 6, Broche => 29); Init_Sortie (Sortie => 18, Groupe => Module.Group3, Bit => 1, Broche => 34); Init_Sortie (Sortie => 19, Groupe => Module.Group3, Bit => 2, Broche => 35); Init_Sortie (Sortie => 20, Groupe => Module.Group3, Bit => 3, Broche => 36); Init_Sortie (Sortie => 21, Groupe => Module.Group3, Bit => 4, Broche => 37); Init_Sortie (Sortie => 22, Groupe => Module.Group3, Bit => 5, Broche => 38); Init_Sortie (Sortie => 23, Groupe => Module.Group3, Bit => 6, Broche => 39); Init_Sortie (Sortie => 24, Groupe => Module.Group3, Bit => 7, Broche => 40); Init_Sortie (Sortie => 25, Groupe => Module.Group4, Bit => 0, Broche => 12); Init_Sortie (Sortie => 26, Groupe => Module.Group4, Bit => 1, Broche => 22); Init_Sortie (Sortie => 27, Groupe => Module.Group4, Bit => 2, Broche => 32); Init_Sortie (Sortie => 28, Groupe => Module.Group4, Bit => 3, Broche => 42); Init_Sortie (Sortie => 29, Groupe => Module.Group4, Bit => 4, Broche => 43); Init_Sortie (Sortie => 30, Groupe => Module.Group2, Bit => 1, Broche => 24); for I in Numero_Sortie loop Module.Set_Output_Pin (Pin => Correspondance (I).Broche); end loop; for I in Numero_Sortie loop Module.Write_Pin (Pin => Correspondance (I).Broche, Status => False); Les_Sorties (I) := Module.Read_Pin (Pin => Correspondance (I).Broche); delay 0.2; end loop; end Initialiser; procedure Terminer is begin null; end Terminer; procedure Activer (Sortie_Numero : in Numero_Sortie) is --Le_Bit : Numero_Bit; --Valeur : Defined_Type.Octet; begin Module.Write_Pin (Pin => Correspondance (Sortie_Numero).Broche, Status => True); Les_Sorties (Sortie_Numero) := Module.Read_Pin (Pin => Correspondance (Sortie_Numero).Broche); --if Donnee_Valide then -- Donnee_Valide := False; -- Groupe_Courant := correspondance (Sortie_Numero).Groupe; -- Valeur := Module.Read_Group (Groupe_Courant); -- Donnee := Bit_Utilitaires.Nombre_Vers_Tableau (Valeur); --end if; --Le_Bit := correspondance (Sortie_Numero).Bit; --Bit_Utilitaires.Bit_A_1 (Un_Octet => Donnee, Bit => Le_Bit); end Activer; procedure Desactiver (Sortie_Numero : in Numero_Sortie) is --Le_Bit : Numero_Bit; --Valeur : Defined_Type.Octet; begin Module.Write_Pin (Pin => Correspondance (Sortie_Numero).Broche, Status => False); Les_Sorties (Sortie_Numero) := Module.Read_Pin (Pin => Correspondance (Sortie_Numero).Broche); --if Donnee_Valide then -- Donnee_Valide := False; -- Groupe_Courant := correspondance (Sortie_Numero).Groupe; -- Valeur := Module.Read_Group (Groupe_Courant); -- Donnee := Bit_Utilitaires.Nombre_Vers_Tableau (Valeur); --end if; --Le_Bit := correspondance (Sortie_Numero).Bit; --Bit_Utilitaires.Bit_A_0 (Un_Octet => Donnee, Bit => Le_Bit); end Desactiver; --procedure Valider is -- Valeur : Defined_Type.Octet; --begin -- Donnee_Valide := True; -- Valeur := Bit_Utilitaires.Tableau_Vers_Nombre (Donnee); -- Module.Write_Group (Groupe_Courant, Valeur); --end Valider; function Lire (Sortie_Numero : in Numero_Sortie) return Boolean is begin return Module.Read_Pin (Correspondance (Sortie_Numero).Broche); end Lire; function Lire_Les_Sorties return Image_Des_Sorties is begin return Les_Sorties; end Lire_Les_Sorties; end Carte_Es;
nblk1=9 nid=4 hdr6=10 [0x00] rec0=1c rec1=00 rec2=01 rec3=028 [0x01] rec0=1c rec1=00 rec2=05 rec3=074 [0x02] rec0=15 rec1=00 rec2=02 rec3=008 [0x03] rec0=14 rec1=00 rec2=06 rec3=026 [0x04] rec0=1a rec1=00 rec2=07 rec3=008 [0x05] rec0=0a rec1=00 rec2=09 rec3=004 [0x06] rec0=18 rec1=00 rec2=08 rec3=020 [0x07] rec0=1d rec1=00 rec2=03 rec3=000 [0x08] rec0=13 rec1=00 rec2=04 rec3=000 tail 0x2176a40ac893979a18406 0x42a00088462060003 Free Block Chain: 0x4: 0000 00 00 00 04 80 01 20 01 02 02 20 20 02 02 02 02 ┆ ┆