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

⟦dfbdb42df⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Standard_String, seg_037d6e, seg_039001, seg_039088, seg_0391ff

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



package body Standard_String is

    Vide : constant Natural := 0;


    procedure Add_Char (A_String : in out Object; A_Char : Character) is  
        New_Length : Natural;
    begin  
        New_Length := A_String.The_Length + 1;
        A_String.The_Length := New_Length;
        A_String.The_Contents (New_Length) := A_Char;
    end Add_Char;


    procedure Reset (A_String : in out Object) is
    begin
        A_String.The_Length := Vide;
    end Reset;


    function Empty_String return Object is
        Tempo_String : Object;
    begin
        Tempo_String.The_Length := Vide;
        return Tempo_String;
    end Empty_String;


    function Length (A_String : Object) return Natural is
    begin
        return Natural (A_String.The_Length);
    end Length;


    function Get_Contents (A_String : Object) return String is
    begin
        return String (A_String.The_Contents (1 .. A_String.The_Length));
    end Get_Contents;


    procedure Put_Contents (A_String : in out Object; S : String) is  
        The_Length : Integer;
    begin  
        The_Length := S'Length;
        if The_Length > Typic_Size then
            The_Length := Typic_Size;
        end if;
        A_String.The_Contents (1 .. The_Length) := S (1 .. The_Length);
        A_String.The_Length := The_Length;
    end Put_Contents;


    procedure Copy (From : in Object; To : out Object) is  
    begin
        To.The_Contents := From.The_Contents;
        To.The_Length := From.The_Length;
    end Copy;


    function Equal (Left, Right : Object) return Boolean is
    begin  
        return (Left.The_Length = Right.The_Length) and then
                  (Left.The_Contents (1 .. Left.The_Length) =
                   Right.The_Contents (1 .. Right.The_Length));
    end Equal;



end Standard_String;

E3 Meta Data

    nblk1=4
    nid=2
    hdr6=4
        [0x00] rec0=27 rec1=00 rec2=01 rec3=026
        [0x01] rec0=20 rec1=00 rec2=04 rec3=000
        [0x02] rec0=0c rec1=00 rec2=02 rec3=000
        [0x03] rec0=02 rec1=75 rec2=51 rec3=442
    tail 0x217356fb284e58455b930 0x42a00088462060003
Free Block Chain:
  0x2: 0000  00 03 01 1c 80 2b 3d 22 20 28 4c 65 66 74 2c 20  ┆     +=" (Left, ┆
  0x3: 0000  00 00 01 1f 80 2e 6e 20 22 3d 22 20 28 4c 65 66  ┆     .n "=" (Lef┆