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

⟦76a433efe⟧ TextFile

    Length: 2836 (0xb14)
    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;
with System_Definitions;
with Unchecked_Conversion;

procedure Enum_Image (Table : Attribute_Definitions.Enum_Image_Table;
                      Value : Integer;
                      String_Result : out Attribute_Definitions.Short_String;
                      String_Descriptor : out
                         Attribute_Definitions.String_Descriptor) is

    pragma Routine_Number (Runtime_Ids.Enum_Image);

    -- Will raise Constraint_Error if Value is not in the range of the
    -- Table, but this should never happen unless there are uninitialized
    -- values or (mis)uses of Unchecked_Conversion.  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 longest
    -- enumeration literal in the table.

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

    use System_Definitions.Operators;

    function Convert is new Unchecked_Conversion
                               (System_Definitions.Address,
                                Attribute_Definitions.Ref_String);

    Image  : Attribute_Definitions.Ref_String;
    Length : Natural;
begin
    if Value < 0 or else Value >= Table.Count then
        raise Constraint_Error;
    end if;

    Image  := Convert (Plus_Ai (Table'Address, Table.Offsets (Value)));
    Length := Table.Offsets (Value + 1) - Table.Offsets (Value);

    for I in 1 .. Length loop
        String_Result (I) := Image (I);
    end loop;
    String_Descriptor.Lower := 1;
    String_Descriptor.Upper := Length;
    String_Descriptor.Size  := Length;
end Enum_Image;
pragma Export_Procedure (Internal => Enum_Image, External => "__ENUM_IMAGE");
pragma Runtime_Unit (Unit_Number         => Runtime_Ids.Runtime_Compunit,
                     Elab_Routine_Number => Runtime_Ids.Internal);