DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦b7e17c5b9⟧ Ada Source

    Length: 11264 (0x2c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Carte_Es, seg_05b6c0

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



with Module_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 => Module_Type.Mod101,
                               Scim_1 => Module_Type.No_Module,
                               Scim_2 => Module_Type.No_Module,
                               Scim_3 => Module_Type.No_Module);
    package Module is new Vsip1.Mod101 (Base_Address_Module => 16#600#);

    type Numero_Bit is new Natural range 0 .. 7;
    type Sortie_Reelle is
        record
            Broche : Module.Pin_No;
        end record;
    type Tableau_Sorties is array (Numero_Sortie) of Sortie_Reelle;

    Les_Sorties : Image_Des_Sorties;
    Initialisee : Boolean := False;
    Correspondance : Tableau_Sorties := (1 => (Broche => 3),
                                         2 => (Broche => 4),
                                         3 => (Broche => 5),
                                         4 => (Broche => 6),
                                         5 => (Broche => 7),
                                         6 => (Broche => 8),
                                         7 => (Broche => 13),
                                         8 => (Broche => 14),
                                         9 => (Broche => 15),
                                         10 => (Broche => 16),
                                         11 => (Broche => 17),
                                         12 => (Broche => 18),
                                         13 => (Broche => 23),
                                         14 => (Broche => 33),
                                         15 => (Broche => 27),
                                         16 => (Broche => 28),
                                         17 => (Broche => 29),
                                         18 => (Broche => 34),
                                         19 => (Broche => 35),
                                         20 => (Broche => 36),
                                         21 => (Broche => 37),
                                         22 => (Broche => 38),
                                         23 => (Broche => 39),
                                         24 => (Broche => 40),
                                         25 => (Broche => 12),
                                         26 => (Broche => 22),
                                         27 => (Broche => 32),
                                         28 => (Broche => 42),
                                         29 => (Broche => 43),
                                         30 => (Broche => 24),
                                         31 => (Broche => 9),
                                         32 => (Broche => 10),
                                         33 => (Broche => 19),
                                         34 => (Broche => 20));

    procedure Initialiser is
    begin
        Vsip1.Setup;
        Module.Setup;
        for No in Numero_Sortie loop
            Module.Set_Output_Pin (Pin => Correspondance (No).Broche);
        end loop;
        for No in Numero_Sortie loop
            Module.Write_Pin (Pin => Correspondance (No).Broche,
                              Status => False);
            Les_Sorties (No) := Module.Read_Pin
                                   (Pin => Correspondance (No).Broche);
        end loop;
        Initialisee := True;
    end Initialiser;


    procedure Terminer is   begin
        null;
    end Terminer;


    procedure Activer (Sortie_Numero : in Numero_Sortie) is
    begin
        if Initialisee then
            Module.Write_Pin
               (Pin => Correspondance (Sortie_Numero).Broche, Status => True);
            Les_Sorties (Sortie_Numero) :=
               Module.Read_Pin (Pin => Correspondance (Sortie_Numero).Broche);
        else
            raise Non_Initialisee;
        end if;
    end Activer;


    procedure Desactiver (Sortie_Numero : in Numero_Sortie) is
    begin
        if Initialisee then
            Module.Write_Pin (Pin => Correspondance (Sortie_Numero).Broche,
                              Status => False);
            Les_Sorties (Sortie_Numero) :=
               Module.Read_Pin (Pin => Correspondance (Sortie_Numero).Broche);
        else
            raise Non_Initialisee;
        end if;
    end Desactiver;


    function Lire (Sortie_Numero : in Numero_Sortie) return Boolean is
    begin
        if Initialisee then
            return Module.Read_Pin (Correspondance (Sortie_Numero).Broche);
        else
            raise Non_Initialisee;
        end if;
    end Lire;


    function Lire_Les_Sorties return Image_Des_Sorties is
    begin
        if Initialisee then
            return Les_Sorties;
        else
            raise Non_Initialisee;
        end if;
    end Lire_Les_Sorties;
end Carte_Es;

E3 Meta Data

    nblk1=a
    nid=6
    hdr6=c
        [0x00] rec0=1a rec1=00 rec2=01 rec3=048
        [0x01] rec0=10 rec1=00 rec2=04 rec3=030
        [0x02] rec0=10 rec1=00 rec2=05 rec3=000
        [0x03] rec0=13 rec1=00 rec2=08 rec3=002
        [0x04] rec0=1f rec1=00 rec2=09 rec3=088
        [0x05] rec0=13 rec1=00 rec2=0a rec3=000
        [0x06] rec0=0d rec1=00 rec2=06 rec3=002
        [0x07] rec0=1f rec1=00 rec2=09 rec3=088
        [0x08] rec0=13 rec1=00 rec2=0a rec3=000
        [0x09] rec0=30 rec1=00 rec2=20 rec3=000
    tail 0x2176aeb8a8947418ff364 0x42a00088462060003
Free Block Chain:
  0x6: 0000  00 07 01 b1 80 12 61 6e 63 65 20 28 4e 6f 29 2e  ┆      ance (No).┆
  0x7: 0000  00 02 03 fc 80 28 6e 69 74 5f 53 6f 72 74 69 65  ┆     (nit_Sortie┆
  0x2: 0000  00 03 03 fc 00 09 20 20 20 20 62 65 67 69 6e 09  ┆          begin ┆
  0x3: 0000  00 00 01 73 80 0b 74 2c 20 56 61 6c 65 75 72 29  ┆   s  t, Valeur)┆