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

⟦61840b367⟧ TextFile

    Length: 4559 (0x11cf)
    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 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 Runtime_Ids;
with System;
with Unchecked_Conversion;

package System_Definitions is

    subtype Address is System.Address;

    type Address_Ref is access Address;
    for Address_Ref'Storage_Size use 0;


    Unit_Size    : constant := 8;
    Byte_Size    : constant := 8 / Unit_Size;
    Boolean_Size : constant := 1 * Byte_Size;
    Address_Size : constant := 4 * Byte_Size;
    Pointer_Size : constant := 4 * Byte_Size;
    Integer_Size : constant := 4 * Byte_Size;

    Word        : constant := 4 * Byte_Size;
    Word_Length : constant := Word * Unit_Size;

    subtype Duration is Standard.Duration;
    Duration_Size : constant := 4 * Byte_Size;

    subtype Priority is System.Priority;
    Priority_Size : constant := 1 * Byte_Size;

    Minimum_Block_Size : constant := 2048;


    package Operators is

        function Plus_Ai  (Left : Address; Right : Integer) return Address;
        function Plus_Ia  (Left : Integer; Right : Address) return Address;
        function Minus_Aa (Left : Address; Right : Address) return Integer;
        function Minus_Ai (Left : Address; Right : Integer) return Address;

        function "=" (Left, Right : Address) return Boolean renames System."=";
        function Lt  (Left, Right : Address) return Boolean;
        function Le  (Left, Right : Address) return Boolean;
        function Gt  (Left, Right : Address) return Boolean;
        function Ge  (Left, Right : Address) return Boolean;

        function To_Address is new Unchecked_Conversion (Integer, Address);
        function To_Integer is new Unchecked_Conversion (Address, Integer);

        function "=" (L, R : Address_Ref) return Boolean
            renames System_Definitions."=";

        function "="  (X, Y : Priority) return Boolean renames Standard."=";
        function "<"  (X, Y : Priority) return Boolean renames Standard."<";
        function "<=" (X, Y : Priority) return Boolean renames Standard."<=";
        function ">"  (X, Y : Priority) return Boolean renames Standard.">";
        function ">=" (X, Y : Priority) return Boolean renames Standard.">=";

    private
        pragma Interface (Asm, Plus_Ai);
        pragma Import_Function (Plus_Ai, "__SYSTEM.UNSIGNED_ADD",
                                Mechanism => (Value, Value));

        pragma Interface (Asm, Plus_Ia);
        pragma Import_Function (Plus_Ia, "__SYSTEM.UNSIGNED_ADD",
                                Mechanism => (Value, Value));

        pragma Interface (Asm, Minus_Aa);
        pragma Import_Function (Minus_Aa, "__SYSTEM.UNSIGNED_SUBTRACT",
                                Mechanism => (Value, Value));

        pragma Interface (Asm, Minus_Ai);
        pragma Import_Function (Minus_Ai, "__SYSTEM.UNSIGNED_SUBTRACT",
                                Mechanism => (Value, Value));

        pragma Interface (Asm, Lt);
        pragma Import_Function (Lt, "__SYSTEM.UNSIGNED_LT",
                                Mechanism => (Value, Value));

        pragma Interface (Asm, Le);
        pragma Import_Function (Le, "__SYSTEM.UNSIGNED_LE",
                                Mechanism => (Value, Value));

        pragma Interface (Asm, Gt);
        pragma Import_Function (Gt, "__SYSTEM.UNSIGNED_GT",
                                Mechanism => (Value, Value));

        pragma Interface (Asm, Ge);
        pragma Import_Function (Ge, "__SYSTEM.UNSIGNED_GE",
                                Mechanism => (Value, Value));
    end Operators;

end System_Definitions;
pragma Export_Elaboration_Procedure ("__SYSTEM_DEFS_SPEC_ELAB");
pragma Runtime_Unit (Unit_Number         => Runtime_Ids.Runtime_Compunit,
                     Elab_Routine_Number => Runtime_Ids.Internal);