DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦22d8f0526⟧ TextFile

    Length: 2838 (0xb16)
    Types: TextFile
    Names: »B«

Derivation

└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
    └─ ⟦77aa8350c⟧ »DATA« 
        └─⟦f794ecd1d⟧ 
            └─⟦4c85d69e2⟧ 
                └─⟦this⟧ 

TextFile

--    The use of this system is subject to the software license terms and
--    conditions agreed upon between Rational and the Customer.
--
--                Copyright 1988 by Rational.
--
--                          RESTRICTED RIGHTS LEGEND
--
--    Use, duplication, or disclosure by the Government is subject to
--    restrictions as set forth in subdivision (b)(3)(ii) of the Rights in
--    Technical Data and Computer Software clause at 52.227-7013.
--
--
--                Rational
--                3320 Scott Boulevard
--                Santa Clara, California 95054-3197
--
--   PROPRIETARY AND CONFIDENTIAL INFORMATION OF RATIONAL;
--   USE OR COPYING WITHOUT EXPRESS WRITTEN AUTHORIZATION
--   IS STRICTLY PROHIBITED.  THIS MATERIAL IS PROTECTED AS
--   AN UNPUBLISHED WORK UNDER THE U.S. COPYRIGHT ACT OF
--   1976.  CREATED 1988.  ALL RIGHTS RESERVED.
--
--

separate (Os_Dependent_Io)

package body Unique_Temp_Name is

    Max_Length : constant := 28;

    procedure Generate_Values (Value_1 : out Natural;
                               Value_2 : out Natural;
                               Value_3 : out Natural;
                               Garbage : out Natural)
        renames Os2000_Io.Get_Time;

    function Get return String is
        Name : String (1 .. Max_Length);  
        Indx : Natural := 1;
        Val1 : Natural;
        Val2 : Natural;
        Val3 : Natural;
        Grbg : Natural;

        procedure Insert_Char (C : Character) is
        begin
            if Indx <= Max_Length then
                Name (Indx) := C;
                Indx        := Indx + 1;
            end if;
        end Insert_Char;

        procedure Insert_String (S : String) is
        begin
            for I in S'Range loop
                case S (I) is
                    when '0' .. '9' | 'A' .. 'Z' | 'a' .. 'z' | '.' =>
                        Insert_Char (S (I));

                    when others =>
                        null;
                end case;
            end loop;
        end Insert_String;

    begin
        -- Trace ("Odi.Unique_Temp_Name");
        Generate_Values (Val1, Val2, Val3, Grbg);
        -- Trace ("Odi.Unique_Temp_Name value 1 is " & Integer'Image (Val1));
        -- Trace ("Odi.Unique_Temp_Name value 2 is " & Integer'Image (Val2));
        -- Trace ("Odi.Unique_Temp_Name value 3 is " & Integer'Image (Val3));

        Insert_String ("Tmp.");
        Insert_String (Integer'Image (Val1 mod 2 ** 16));
        Insert_String (Integer'Image (Val2));
        Insert_String (Integer'Image (Val3));

        -- Trace ("returning name: " & Name (1 .. Indx - 1));

        return Name (1 .. Indx - 1);
        -- exception
        -- when others =>
        -- Trace ("Odi.Unique_Temp_Name got an exception",
        --        Absorb_Output => False);
    end Get;

end Unique_Temp_Name;