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

⟦b5e6c1f3c⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Arguments, seg_037e27, seg_038ab2

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 
└─⟦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 Object, Msg_Report;
package body Arguments is

    function Void_Arguments return List is  
        A_List : List;
    begin  
        A_List.Iterator := 1;
        A_List.Nb_Ref := 0;

        for I in A_List.Ref'Range loop
            A_List.Ref (I) := Object.Void_Reference;
        end loop;  
        return A_List;

    end Void_Arguments;

    procedure First (A_List : in out List) is
    begin
        A_List.Iterator := 1;
    end First;

    procedure Next (A_List : in out List) is
    begin  
        if A_List.Iterator < Max then
            A_List.Iterator := A_List.Iterator + 1;
        else
            raise Constraint_Error;
        end if;
    end Next;

    function How_Many (A_List : List) return Natural is
    begin
        return A_List.Nb_Ref;
    end How_Many;

    procedure Read (A_List : in out List; An_Argument : out Object.Reference) is  
    begin
        An_Argument := A_List.Ref (A_List.Iterator);
        Next (A_List);
    end Read;

    procedure Write (A_List : in out List; An_Argument : Object.Reference) is  
    begin  
        A_List.Nb_Ref := A_List.Nb_Ref + 1;  
        A_List.Ref (A_List.Iterator) := An_Argument;  
        Next (A_List);
    end Write;

    procedure Image (A_List : List) is  
        Nb : Natural;
    begin
        Nb := How_Many (A_List);  
        if Nb > 0 then
            Msg_Report.Information ("Content of the list");
            Msg_Report.Continue ("Nb element : " & Natural'Image (Nb));
            Msg_Report.Continue ("Iterator value : " &
                                 Natural'Image (A_List.Iterator));
        end if;
        for I in 1 .. Nb loop
            Msg_Report.Continue
               ("Element No " & Natural'Image (I) & " : " & "class " &
                Object.Class'Image (Object.The_Class (A_List.Ref (I))) &
                " value " &
                Natural'Image (Object.Identificator (A_List.Ref (I))));
        end loop;
    end Image;

end Arguments;



E3 Meta Data

    nblk1=4
    nid=3
    hdr6=6
        [0x00] rec0=27 rec1=00 rec2=01 rec3=066
        [0x01] rec0=1a rec1=00 rec2=04 rec3=074
        [0x02] rec0=08 rec1=00 rec2=02 rec3=000
        [0x03] rec0=02 rec1=00 rec2=03 rec3=000
    tail 0x2153135fa84e591a011c2 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00  ┆                ┆