|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 3161 (0xc59)
Types: TextFile
Names: »B«
└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
└─⟦77aa8350c⟧ »DATA«
└─⟦f794ecd1d⟧
└─⟦24d1ddd49⟧
└─⟦this⟧
-- 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);