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

⟦32b68fac7⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Put, seg_0290db

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



with Byte_Defs;
with Text_Io;
with Transport;
with Transport_Defs;
with Utils;
procedure Put is
    package T renames Transport;
    package T_Defs renames Transport_Defs;

    C : T.Connection_Id;
    S : T_Defs.Status_Code;
    N : constant T_Defs.Network_Name := "TCP/IP";
    Sid : constant Transport_Defs.Socket_Id := Transport_Defs.Null_Socket_Id;
    Rsid : constant Transport_Defs.Socket_Id := (10, 45);
    Rh : constant Transport_Defs.Host_Id := (192, 5, 60, 20);
    Cnt : Natural;
    Message : constant String := "Hello PAM";

    function "=" (L, R : Transport_Defs.Status_Code) return Boolean
        renames Transport_Defs."=";

begin
    T.Open (Connection => C, Status => S, Network => N, Local_Socket => Sid);

    if S /= Transport_Defs.Ok then
        Text_Io.Put_Line ("*** Client Socket Open Failed. Error Code: " &
                          Transport_Defs.Image (S));
        return;
    else
        Text_Io.Put_Line ("+++ Client Socket Open");
    end if;


    T.Connect (Connection => C,
               Status => S,
               Remote_Host => Rh,
               Remote_Socket => Rsid,
               Max_Wait => Duration'Last);

    if S /= Transport_Defs.Ok then
        Text_Io.Put_Line ("*** Client Connect Failed. Error Code: " &
                          Transport_Defs.Image (S));
        return;

    else
        Text_Io.Put_Line ("+++ Client Connected");
    end if;

    Text_Io.Put_Line ("Put: avant Transmit");
    T.Transmit (Connection => C,
                Status => S,
                Data => Utils.String_To_Byte_String (Message),
                Count => Cnt,
                Max_Wait => Duration'Last,
                More => False);

    if S /= Transport_Defs.Ok then

        Text_Io.Put_Line ("*** Client Transmission Failed. Error Code: " &
                          Transport_Defs.Image (S));

    elsif Cnt /= Message'Length then
        Text_Io.Put_Line ("--* Client Transmission Incomplete.");
    else
        Text_Io.Put_Line ("+++ Client Tranmission Completed.");
    end if;

    T.Close (Connection => C);
    Text_Io.Put_Line ("Put: connection closed");
end Put;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=1f rec1=00 rec2=01 rec3=04e
        [0x01] rec0=06 rec1=00 rec2=02 rec3=016
        [0x02] rec0=1d rec1=00 rec2=03 rec3=068
        [0x03] rec0=06 rec1=00 rec2=04 rec3=000
    tail 0x215215bae83c8740f4093 0x42a00088462060003