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

⟦2086efd18⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Umps_Defs, seg_02656d, seg_026d39

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 Umps_Defs is

    Special_Char : constant Character := Ascii.Nul;

    ---------------------------------------------------------------------------
    procedure Normalize (The_String :        Standard.String;
                         To         : in out Standard.String) is

    begin
        if The_String'Length >= To'Length then
            To := The_String (The_String'First ..
                                 The_String'First + To'Length - 1);
        else
            To := The_String &
                     (The_String'Last + 1 ..
                         To'Length - The_String'Length + The_String'Last =>
                         Special_Char);
        end if;  
    end Normalize;

    ---------------------------------------------------------------------------
    function Normalize (The_String : Standard.String) return String is

    begin
        if The_String'Length > String'Length then
            return String (The_String
                              (The_String'First ..
                                  The_String'First + String'Length - 1));
        else
            return String (The_String &
                           (The_String'Last + 1 ..
                               String'Length - The_String'Length +
                                  The_String'Last => Special_Char));
        end if;  
    end Normalize;

    ---------------------------------------------------------------------------
    function Normalize (The_Name : Standard.String) return Name is

    begin
        if The_Name'Length > Name'Length then
            return Name (The_Name (The_Name'First ..
                                      The_Name'First + Name'Length - 1));
        else
            return Name (The_Name &
                         (The_Name'Last + 1 ..
                             Name'Length - The_Name'Length + The_Name'Last =>
                             Special_Char));
        end if;  
    end Normalize;

    ---------------------------------------------------------------------------
    function Denormalize (The_String : String) return Standard.String is
        Index : Natural := The_String'First - 1;

    begin
        Search_End_Char:
            for I in The_String'Range loop
                exit Search_End_Char when The_String (I) = Special_Char;
                Index := I;
            end loop Search_End_Char;  
        return Standard.String (The_String (The_String'First .. Index));
    end Denormalize;

    ---------------------------------------------------------------------------
    function Denormalize (The_Name : Name) return Standard.String is
        Index : Natural := The_Name'First - 1;

    begin
        Search_End_Char:
            for I in The_Name'Range loop
                exit Search_End_Char when The_Name (I) = Special_Char;
                Index := I;
            end loop Search_End_Char;  
        return Standard.String (The_Name (The_Name'First .. Index));
    end Denormalize;

end Umps_Defs;
-------------------------------------------------------------------------------

E3 Meta Data

    nblk1=5
    nid=2
    hdr6=8
        [0x00] rec0=1b rec1=00 rec2=01 rec3=020
        [0x01] rec0=16 rec1=00 rec2=05 rec3=08e
        [0x02] rec0=1a rec1=00 rec2=04 rec3=01c
        [0x03] rec0=08 rec1=00 rec2=03 rec3=000
        [0x04] rec0=06 rec1=00 rec2=02 rec3=000
    tail 0x21520438c83aa67a18f29 0x42a00088462063c03
Free Block Chain:
  0x2: 0000  00 00 00 bd 80 37 6e 20 53 74 61 6e 64 61 72 64  ┆     7n Standard┆