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

⟦38dc89af7⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Tampon, seg_04fa7e

Derivation

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

E3 Source Code



package body Tampon is
    Tab_Tampon : array (1 .. Taille) of Element;
    Entree : Integer range 1 .. Taille;
    Sortie : Integer range 1 .. Taille;
    Nb_Elements : Integer range 0 .. Taille;
    procedure Creer_Tampon is
    begin
        Entree := 1;
        Sortie := 1;
        Nb_Elements := 0;
    end Creer_Tampon;


    procedure Entrer_Element (E : Element) is
    begin
        if Nb_Elements < Taille then
            Tab_Tampon (Entree) := E;
            Nb_Elements := Nb_Elements + 1;
            if Entree = Taille then
                Entree := 1;
            else
                Entree := Entree + 1;
            end if;
        else  
            raise Err_Pile_Pleine;
        end if;
    end Entrer_Element;


    function Sortir_Element return Element is
        E : Element;
    begin
        if Nb_Elements = 0 then
            raise Err_Pile_Vide;
        else
            Nb_Elements := Nb_Elements - 1;
            E := Tab_Tampon (Sortie);
            if Sortie = Taille then
                Sortie := 1;
            else
                Sortie := Sortie + 1;
            end if;
            return E;
        end if;
    end Sortir_Element;


    procedure Lister_Tampon is
        J, K : Integer;
        procedure Lister_Tableau (J, K : Integer) is
        begin
            for I in J .. K loop
                New_Line;
                Put ("Element ");
                Int_Io.Put (I);
                Put (Image (Tab_Tampon (I)));
            end loop;
        end Lister_Tableau;

    begin
        New_Line;
        Put ("Nombre d'elements : ");
        Int_Io.Put (Nb_Elements);

        New_Line;
        Put ("entree : ");
        Int_Io.Put (Entree);

        New_Line;
        Put ("sortie : ");
        Int_Io.Put (Sortie);


        if Nb_Elements > 0 then
            if Entree <= Sortie then
                if Entree = 1 then
                    K := Taille;
                    J := Sortie;
                    Lister_Tableau (J, K);
                else
                    J := Sortie;
                    K := Taille;
                    Lister_Tableau (J, K);
                    J := 1;
                    K := Entree - 1;
                    Lister_Tableau (J, K);

                end if;
            else
                J := Sortie;
                K := Entree - 1;
                Lister_Tableau (J, K);
            end if;
        end if;
    end Lister_Tampon;

    procedure Vider_Tampon is
    begin
        Entree := 1;
        Sortie := 1;
        Nb_Elements := 0;
    end Vider_Tampon;
end Tampon;

E3 Meta Data

    nblk1=4
    nid=4
    hdr6=6
        [0x00] rec0=26 rec1=00 rec2=01 rec3=00e
        [0x01] rec0=28 rec1=00 rec2=03 rec3=004
        [0x02] rec0=1b rec1=00 rec2=02 rec3=000
        [0x03] rec0=04 rec1=a5 rec2=9b rec3=142
    tail 0x2154aa53c87793993d4b4 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 00 00 04 80 01 3b 01 02 03 04 05 06 07 08 09  ┆      ;         ┆