|
|
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: 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 ┆ ┆