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

⟦b4a568c00⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Transport_Defs, seg_0520f9

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



package body Transport_Defs is
    type Character_Map is array (Character) of Character;

    Upperfy : Character_Map;

    function Initialize_Upperfy return Character_Map is
        Answer : Character_Map;
        Shift : constant := Character'Pos ('A') - Character'Pos ('a');
    begin
        for I in Answer'Range loop
            Answer (I) := I;
        end loop;
        for I in 'a' .. 'z' loop
            Answer (I) := Character'Val (Character'Pos (I) + Shift);
        end loop;
        return Answer;
    end Initialize_Upperfy;

    function Normalize (S : String) return String is
        Answer : String (S'Range);
        First : Positive := S'First;
        Last : Natural := S'Last;
    begin
        while First <= Last and then S (First) = ' ' loop
            First := First + 1;
        end loop;
        while First <= Last and then S (Last) = ' ' loop
            Last := Last - 1;
        end loop;
        for I in First .. Last loop
            Answer (I) := Upperfy (S (I));
        end loop;
        return Answer (First .. Last);
    end Normalize;

    function Hash (S : String) return Natural is
        Answer : Natural := 0;
    begin
        for I in S'Range loop
            Answer := (Answer mod (Natural'Last - 128)) + Character'Pos (S (I));
        end loop;
        return Answer;
    end Hash;

    function Normalize (S : Byte_Defs.Byte_String)
                       return Byte_Defs.Byte_String is
        First : Integer := S'First;
        Last : Integer := S'Last;
    begin
        while First <= Last and then Byte_Defs."=" (S (First), 0) loop
            First := First + 1;
        end loop;
        return S (First .. Last);
    end Normalize;

    function Hash (S : Byte_Defs.Byte_String) return Natural is
        Answer : Natural := 0;
    begin
        for I in S'Range loop
            Answer := (Answer mod (Natural'Last - 256)) + Natural (S (I));
        end loop;
        return Answer;
    end Hash;

    function Normalize (Value : Network_Name) return Network_Name is
    begin
        return Network_Name (Normalize (String (Value)));
    end Normalize;

    function Hash (Value : Network_Name) return Natural is
    begin
        return Hash (String (Value));
    end Hash;

    function Normalize (Value : Host_Id) return Host_Id is
    begin
        return Host_Id (Normalize (Byte_Defs.Byte_String (Value)));
    end Normalize;

    function Hash (Value : Host_Id) return Natural is
    begin
        return Hash (Byte_Defs.Byte_String (Value));
    end Hash;

    function Normalize (Value : Socket_Id) return Socket_Id is
    begin
        return Socket_Id (Normalize (Byte_Defs.Byte_String (Value)));
    end Normalize;

    function Hash (Value : Socket_Id) return Natural is
    begin
        return Hash (Byte_Defs.Byte_String (Value));
    end Hash;

    function Image (Status : Status_Code) return String is
    begin
        case Status is
            when Ok =>
                return "OK";
            when No_Local_Resources =>
                return "NO_LOCAL_RESOURCES";
            when No_Free_Sockets =>
                return "NO_FREE_SOCKETS";
            when No_Free_Memory =>
                return "NO_FREE_MEMORY";
            when Not_Open =>
                return "NOT_OPEN";
            when Not_Connected =>
                return "NOT_CONNECTED";
            when Too_Many_Clients =>
                return "TOO_MANY_CLIENTS";
            when Timed_Out =>
                return "TIMED_OUT";
            when No_Such_Host =>
                return "NO_SUCH_HOST";
            when Connection_Refused =>
                return "CONNECTION_REFUSED";
            when Disconnected =>
                return "DISCONNECTED";
            when Connection_Broken =>
                return "CONNECTION_BROKEN";
            when No_Hardware =>
                return "NO_HARDWARE";
            when No_Such_Network =>
                return "NO_SUCH_NETWORK";
            when Not_Initialized =>
                return "NOT_INITIALIZED";
            when Not_Downloaded =>
                return "NOT_DOWNLOADED";
            when Socket_In_Use =>
                return "SOCKET_IN_USE";
            when Access_Denied =>
                return "ACCESS_DENIED";
            when No_Free_Connections =>
                return "NO_FREE_CONNECTIONS";
            when Not_Registered =>
                return "NOT_REGISTERED";
            when Network_Unreachable =>
                return "NETWORK_UNREACHABLE";
            when Host_Unreachable =>
                return "HOST_UNREACHABLE";
            when Protocol_Not_Supported =>
                return "PROTOCOL_NOT_SUPPORTED";
            when No_Such_Socket =>
                return "NO_SUCH_SOCKET";
            when others =>
                return ("Transport.Status_Code" & Status_Code'Image (Status));
        end case;
    end Image;

begin
    Upperfy := Initialize_Upperfy;
end Transport_Defs;

E3 Meta Data

    nblk1=6
    nid=0
    hdr6=c
        [0x00] rec0=1f rec1=00 rec2=01 rec3=03e
        [0x01] rec0=1f rec1=00 rec2=02 rec3=004
        [0x02] rec0=22 rec1=00 rec2=03 rec3=03c
        [0x03] rec0=1b rec1=00 rec2=04 rec3=022
        [0x04] rec0=19 rec1=00 rec2=05 rec3=016
        [0x05] rec0=07 rec1=00 rec2=06 rec3=000
    tail 0x2154ba68287a05cbcfae7 0x42a00088462060003