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

⟦58143c3f3⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Order, seg_0482b9

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 Text_Io, Moving_String;  
package body Order is
    use Moving_String;

    procedure Put_Place (Item : in out Object; Place : in String) is
    begin
        Item.The_Order (1) := Moving_String.From_String (Place);
    end Put_Place;

    procedure Put_First_Complement
                 (Item : in out Object; Complement : in String) is

    begin
        Item.The_Order (2) := Moving_String.From_String (Complement);
    end Put_First_Complement;

    procedure Put_Second_Complement
                 (Item : in out Object; Complement : in String) is
    begin
        Item.The_Order (3) := Moving_String.From_String (Complement);
    end Put_Second_Complement;

    procedure Put_Third_Complement
                 (Item : in out Object; Complement : in String) is

    begin
        Item.The_Order (4) := Moving_String.From_String (Complement);
    end Put_Third_Complement;

    procedure Put_Fourth_Complement
                 (Item : in out Object; Complement : in String) is

    begin
        Item.The_Order (5) := Moving_String.From_String (Complement);
    end Put_Fourth_Complement;

    procedure Put_Redirection (Item : in out Object;
                               Redirection : in Index_Array) is

    begin
        Item.Redirection := Redirection;
    end Put_Redirection;


    procedure Free (Item : in out Object) is

    begin
        for I in Index'First .. Index'Last loop
            Moving_String.Free (Item.The_Order (I));
        end loop;
    end Free;

    procedure Show (Item : in Object) is

    begin
        Text_Io.Put ("Order : " & Image (Item));
        for I in Index'First .. Index'Last loop
            Text_Io.Put (" " & Index'Image (Item.Redirection (I)));
        end loop;
        Text_Io.New_Line;
    end Show;

    procedure Make_Redirection (Item : in out Object;
                                Complement : in String;
                                Position : in Index) is

    begin
        if Contains_Complement (Item, Complement) then
            Item.Redirection (Position) :=
               Complement_Position (Item, Complement);
        end if;
    end Make_Redirection;

    function Image (Item : in Object) return String is

        Ms : Moving_String.Object;
    begin
        Ms := Ms & Item.The_Order (1) & " " & Item.The_Order (2) &
                 "  " & Item.The_Order (3) & " " &
                 Item.The_Order (4) & " " & Item.The_Order (5);
        return Moving_String.Image (Ms);

    end Image;

    function Complement_Position
                (Item : in Object; Complement : in String) return Natural is

        An_Index : Natural := 0;

    begin
        for I in Index'First .. Index'Last loop
            if Moving_String.Image (Item.The_Order (I)) = Complement then
                An_Index := I;
            end if;
        end loop;
        return An_Index;
    end Complement_Position;

    function Contains_Complement
                (Item : in Object; Complement : in String) return Boolean is

    begin
        return Complement_Position (Item, Complement) /= 0;
    end Contains_Complement;

    function Complement (Item : in Object; Position : in Index) return String is

    begin
        return Moving_String.Image (Item.The_Order (Position));
    end Complement;

    function Redirected_Complement
                (Item : in Object; Position : in Index) return String is

    begin
        return Moving_String.Image (Item.The_Order
                                       (Item.Redirection (Position)));
    end Redirected_Complement;


    function Redirection (Item : in Object) return Index_Array is

    begin
        return Item.Redirection;
    end Redirection;

end Order;

E3 Meta Data

    nblk1=7
    nid=4
    hdr6=a
        [0x00] rec0=1d rec1=00 rec2=01 rec3=028
        [0x01] rec0=24 rec1=00 rec2=03 rec3=004
        [0x02] rec0=01 rec1=00 rec2=06 rec3=01c
        [0x03] rec0=1f rec1=00 rec2=02 rec3=026
        [0x04] rec0=20 rec1=00 rec2=05 rec3=000
        [0x05] rec0=20 rec1=00 rec2=05 rec3=000
        [0x06] rec0=51 rec1=2c rec2=00 rec3=031
    tail 0x2174bf0ea86579b238196 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 07 00 4c 80 32 64 65 72 20 28 34 29 20 3a 3d  ┆   L 2der (4) :=┆
  0x7: 0000  00 00 00 a8 80 0f 78 74 5f 49 6f 2e 4e 65 77 5f  ┆      xt_Io.New_┆