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: ┃ T V

⟦da04d2cd0⟧ TextFile

    Length: 4237 (0x108d)
    Types: TextFile
    Names: »V«

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, 1989, 1990 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
--
--   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, 1989, 1990.  ALL RIGHTS RESERVED.
--
--

with Runtime_Ids;
with System;

package Target is
    Bytes_Are_Backwards : constant Boolean := False;
    -- When a small value is set in a word (as when a Boolean actual
    -- is in an expression), the small value may be in the least sig-
    -- nificant bytes, or in the most significant bytes.  Bytes_Are
    -- _Backwards is True when the small value is in the most signi-
    -- ficant bytes.

    Bits_Per_Byte    : constant := 8;
    Bits_Per_Address : constant := 32;
    pragma Assert (System.Address'Size = Bits_Per_Address);

    Min_Integer : constant := -2 ** (Bits_Per_Address - 1);
    Max_Integer : constant := 2 ** (Bits_Per_Address - 1) - 1;

    type Integer is range Min_Integer .. Max_Integer;
    pragma Assert (Integer'Size = Bits_Per_Address);
    Bits_Per_Integer : constant := Bits_Per_Address;
    -- The Integer's we refer to MUST be convertable to an Address and
    -- vice versa.

    subtype Natural  is Integer range 0 .. Max_Integer;
    subtype Positive is Integer range 1 .. Max_Integer;
    -- Natural's and Positive's are from Integer, and not from Standard.

    Bytes_Per_Enumeration : constant := 1;
    Bytes_Per_Address     : constant := Bits_Per_Address / Bits_Per_Byte;
    Bytes_Per_Integer     : constant := Bytes_Per_Address;
    -- Enumerated types (that we use) take 1 byte.  Address and Integers
    -- take the same number of bytes.

    Last_Bit_Of_Byte        : constant :=  
       Bits_Per_Byte - 1;
    Last_Bit_Of_Enumeration : constant :=
       Bytes_Per_Enumeration * Bits_Per_Byte - 1;
    Last_Bit_Of_Address     : constant :=  
       Bytes_Per_Address * Bits_Per_Byte - 1;
    Last_Bit_Of_Integer     : constant :=  
       Bytes_Per_Integer * Bits_Per_Byte - 1;
    -- These are used in defining ranges for representation specs

    type Subprogram_Variable is
        record
            Code        : System.Address := System.Address_Zero;
            Static_Link : System.Address := System.Address_Zero;
        end record;  
    Code_Offset                     : constant := 0;
    Static_Link_Offset              : constant :=  
       Code_Offset + Bytes_Per_Address;
    Bytes_Per_Subprogram_Variable   : constant :=
       Static_Link_Offset + Bytes_Per_Address;
    Last_Bit_Of_Subprogram_Variable : constant :=  
       Bytes_Per_Subprogram_Variable * Bits_Per_Byte - 1;
    for Subprogram_Variable use
        record at mod 4;
            Code at Code_Offset  
               range 0 .. Last_Bit_Of_Address;

            Static_Link at Static_Link_Offset  
               range 0 .. Last_Bit_Of_Address;
        end record;
    Nil_Code                : constant System.Address := System.Address_Zero;
    Nil_Static_Link         : constant System.Address := System.Address_Zero;
    Nil_Subprogram_Variable : constant Subprogram_Variable :=
       Subprogram_Variable'(Nil_Code, Nil_Static_Link);
    -- Subprogram variables have the above layout.

    Copy_Down : constant Boolean := True;
    -- Whether coder follows Copy Down semantics for functions that
    -- return unconstrained values.
    Supports_Segmented_Heaps : constant Boolean := False;
    -- Whether target supports segmented heap access types.
end Target;
pragma Runtime_Unit (Unit_Number         => Runtime_Ids.Runtime_Compunit,
                     Elab_Routine_Number => Runtime_Ids.Internal);