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

⟦993786c4f⟧ TextFile

    Length: 3161 (0xc59)
    Types: TextFile
    Names: »B«

Derivation

└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
    └─ ⟦77aa8350c⟧ »DATA« 
        └─⟦f794ecd1d⟧ 
            └─⟦24d1ddd49⟧ 
                └─⟦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.
--
--

with Attribute_Definitions;
with Runtime_Ids;

procedure Integer_Image  
             (Value             :     Integer;
              String_Result     : out Attribute_Definitions.Short_String;
              String_Descriptor : out
                 Attribute_Definitions.String_Descriptor) is
    pragma Routine_Number (Runtime_Ids.Int_Image);

    -- Fills the String_Result and String_Descriptor with the image.  The
    -- area pointed to by String_Result must be large enough to hold the
    -- image of the largest integer size in Standard.  There is only one
    -- Integer_Image routine no matter how many integer types are
    -- available in Standard.

    pragma Suppress (Index_Check);
    pragma Suppress (Range_Check);
    pragma Suppress (Access_Check);
    pragma Suppress (Storage_Check);

    Max_Image_Length : constant := 21;  -- For up to 64-bits
    Local_Image      : String (1 .. Max_Image_Length);
    Image_Length     : Natural;
    Sign             : Character;
    V                : Integer  := Value;
    I                : Natural  := Max_Image_Length;
    K                : Natural  := 1;
    Zero             : constant := Character'Pos ('0');
begin
    -- First digit is different so as not to overflow if number is < 0.
    if V >= 0 then
        Sign            := ' ';
        Local_Image (I) := Character'Val ((V mod 10) + Zero);
    else
        Sign            := '-';
        Local_Image (I) := Character'Val (((V / 10) * 10 - V) + Zero);
    end if;

    V := abs (V / 10);
    I := I - 1;
    while V /= 0 loop
        Local_Image (I) := Character'Val ((V mod 10) + Zero);
        V               := V / 10;
        I               := I - 1;
    end loop;

    -- Now have digits in Local_Image(I + 1 .. Max_Image_Length)
    Local_Image (I) := Sign;

    Image_Length := Max_Image_Length - I + 1;

    for J in I .. Max_Image_Length loop
        String_Result (K) := Local_Image (J);
        K                 := K + 1;
    end loop;

    String_Descriptor := (Lower => 1, Upper | Size => Image_Length);
end Integer_Image;
pragma Export_Procedure (Internal => Integer_Image, External => "__INT_IMAGE");
pragma Runtime_Unit (Unit_Number         => Runtime_Ids.Runtime_Compunit,
                     Elab_Routine_Number => Runtime_Ids.Internal);