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

⟦1c232cda2⟧ Ada Source

    Length: 3072 (0xc00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure New_Test, seg_03f66f

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;
use Text_Io;
procedure New_Test is

    subtype Raisonnable is Natural range 0 .. 50;

    type Nstring (Length : Raisonnable := 0) is
        record
            Inner : String (1 .. Length);
        end record;
    type Pstring is access String;

    type Pstring_Array is array (Raisonnable range <>) of Pstring;
    type Npstring (Length : Raisonnable := 0) is
        record
            Inner : Pstring_Array (1 .. Length);
        end record;

    Nps : Npstring;

    Nps1 : Npstring;
    Ns1 : Nstring;
    Ns2 : Nstring := (2, ("kk"));
    Ps, Ps1, Ps2 : Pstring;
    Pa1 : Pstring_Array (1 .. 1);  
    Pa2 : Pstring_Array (1 .. 2);
    Pa3 : Pstring_Array (1 .. 3);
    Hello : constant String := "hello !";

begin  
    if Ps = null then
        Put_Line ("null");
    end if;
    Ps := new String'(Hello);
    Put_Line (Ps.all);

    Put_Line (Ns1.Inner);
    Ns1 := (2, ('j' & 'f'));
    Put (Ns1.Inner (2));
    New_Line;

    Put_Line (Ns2.Inner);
    Ns2 := (3, ('l' & Ns2.Inner));
    Put_Line (Ns2.Inner);
    Ns2 := (4, (Ns2.Inner (1 .. 2) & 'h' & Ns2.Inner (3 .. 3)));
    Put_Line (Ns2.Inner);

    Ps1 := new String'(" ps1 ");
    Ps2 := new String'(" ps2 ");

    Put_Line ("-- pa --");

    Pa1 (1) := Ps1;
    Put_Line (Pa1 (1).all);
    Pa2 (1 .. 2) := Ps2 & Ps1;
    Put_Line (Pa2 (2).all);
    Pa3 := Pa2 (2 .. 2) & Pa1 (1 .. 1) & Pa2 (1 .. 1);
    Put_Line (Pa3 (2).all);
    Put_Line ("-- nps --");

    Nps := (1, (others => Ps1));
    Put_Line (Nps.Inner (1).all);
    Nps := (2, (Nps.Inner (1 .. 1) & Ps2));
    Put_Line (Nps.Inner (2).all);
    Pa2 := Pstring_Array'(Pstring'(Ps2) & Pstring'(Nps.Inner (1)));
    Nps := (2, Pa2);
    Put_Line (Nps.Inner (1).all);
end New_Test;

E3 Meta Data

    nblk1=2
    nid=0
    hdr6=4
        [0x00] rec0=28 rec1=00 rec2=01 rec3=030
        [0x01] rec0=1e rec1=00 rec2=02 rec3=001
    tail 0x2173f35e8860a80e14b83 0x42a00088462060003