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

⟦3dcb15a61⟧ TextFile

    Length: 4433 (0x1151)
    Types: TextFile
    Names: »B«

Derivation

└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
    └─ ⟦77aa8350c⟧ »DATA« 
        └─⟦f794ecd1d⟧ 
            └─⟦4c85d69e2⟧ 
                └─⟦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 System;
with System_Types;

package body Machine_Primitive_Operations is

    package Implementation is

        procedure Move_Bytes (From   : System.Address;
                              To     : System.Address;
                              Length : Natural);
        pragma Suppress (Elaboration_Check, Move_Bytes);
        pragma Interface (Asm, Move_Bytes);
        pragma Import_Procedure (Move_Bytes, "__MOVE_BYTES",
                                 Mechanism => (Value, Value, Value));

        procedure Fill_Bytes
                     (Target : System.Address; Length : Natural; Value : Byte);
        pragma Suppress (Elaboration_Check, Fill_Bytes);
        pragma Interface (Asm, Fill_Bytes);
        pragma Import_Procedure (Fill_Bytes, "__FILL_BYTES",
                                 Mechanism => (Value, Value, Value));

        procedure Fill_Chars (Target : System.Address;
                              Length : Natural;
                              Value  : Character);
        pragma Suppress (Elaboration_Check, Fill_Chars);
        pragma Interface (Asm, Fill_Chars);
        pragma Import_Procedure (Fill_Chars, "__FILL_BYTES",
                                 Mechanism => (Value, Value, Value));

    end Implementation;


    procedure Move_Bytes (From   : in  String;  
                          To     : out String;
                          Length : in  Natural) is
    begin
        -- To (To'First .. To'First + Length - 1) :=
        --    From (From'First .. From'First + Length - 1);
        Implementation.Move_Bytes (From'Address, To'Address, Length);
    end Move_Bytes;

    procedure Move_Bytes (From   : in  String;
                          To     : out Byte_String;
                          Length : in  Natural) is
    begin
        -- for I in 0 .. Length - 1 loop
        --     To (To'First + I) := System_Types.To_Byte (From (From'First + I));
        -- end loop;
        Implementation.Move_Bytes (From'Address, To'Address, Length);
    end Move_Bytes;

    procedure Move_Bytes (From   : in  Byte_String;  
                          To     : out String;
                          Length : in  Natural) is
    begin
        -- for I in 0 .. Length - 1 loop
        --     To (To'First + I) := System_Types.To_Character
        --                             (From (From'First + I));
        -- end loop;
        Implementation.Move_Bytes (From'Address, To'Address, Length);
    end Move_Bytes;

    procedure Move_Bytes (From   : in  Byte_String;
                          To     : out Byte_String;
                          Length : in  Natural) is
    begin
        -- To (To'First .. To'First + Length - 1) :=
        --    From (From'First .. From'First + Length - 1);
        Implementation.Move_Bytes (From'Address, To'Address, Length);
    end Move_Bytes;

    procedure Fill_Bytes (Fill   : out String;  
                          Length : in  Natural;
                          Value  : in  Character) is
    begin
        -- Fill (Fill'First .. Fill'First + Length - 1) :=
        --    String'(1 .. Length => Value);
        Implementation.Fill_Chars (Fill'Address, Length, Value);
    end Fill_Bytes;

    procedure Fill_Bytes (Fill   : out Byte_String;
                          Length : in  Natural;
                          Value  : in  Byte) is
    begin
        -- Fill (Fill'First .. Fill'First + Length - 1) :=
        --    Byte_String'(1 .. Length => Value);
        Implementation.Fill_Bytes (Fill'Address, Length, Value);
    end Fill_Bytes;

end Machine_Primitive_Operations;