DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦5739ff6ec⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Xlbt_Arithmetic, seg_004f99

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



with Text_Io;  
with Unchecked_Deallocation;

with Xlbmt_Numeric_Types;

package body Xlbt_Arithmetic is
------------------------------------------------------------------------------
-- X Library Arithmetic Types
--
-- Xlbt_Arithmetic - Differing sizes of arithmetic types and types constructed
--  from arithmetic types, e.g. arrays.
------------------------------------------------------------------------------
-- Copyright 1989 - 1991 by Rational, Santa Clara, California.
--
--                  All Rights Reserved.
--
-- Permission to use, copy, modify, and distribute this software and its
-- documentation for any purpose and without fee is hereby granted,
-- provided that the above copyright notice(s) appear in all copies and that
-- both that copyright notice(s) and this permission notice appear in
-- supporting documentation, and that the name of Rational not be used in
-- advertising or publicity pertaining to distribution of the software
-- without specific, written prior permission.
--
-- Rational disclaims all warranties with regard to this software, including
-- all implied warranties of merchantability and fitness, in no event shall
-- Rational be liable for any special, indirect or consequential damages or
-- any damages whatsoever resulting from loss of use, data or profits, whether
-- in an action of contract, negligence or other tortious action, arising out
-- of or in connection with the use or performance of this software.
------------------------------------------------------------------------------

--\x0c
    ------------------------------------------------------------------------------
-- Perform bit operations on S_Long values.
------------------------------------------------------------------------------

--/ if TeleGen2_Derive_Bug then
--//
--//     function And_32 (A : S_Long; B : S_Long)
--//                     return S_Long;
--//     pragma Interface (Assembly, And_32);
--//     pragma Linkname (And_32, "_Xlbmt_And_32");
--//
--//     function Or_32 (A : S_Long; B : S_Long)
--//                    return S_Long;
--//     pragma Interface (Assembly, Or_32);
--//     pragma Linkname (Or_32, "_Xlbmt_Or_32");
--//
--//     function Xor_32 (A : S_Long; B : S_Long)
--//                     return S_Long;
--//     pragma Interface (Assembly, Xor_32);
--//     pragma Linkname (Xor_32, "_Xlbmt_Xor_32");
--//
--//     function Not_32 (A : S_Long) return S_Long;
--//     pragma Interface (Assembly, Not_32);
--//     pragma Linkname (Not_32, "_Xlbmt_Not_32");
--//
--//     function Shift_32 (A : S_Long; B : Integer)
--//                       return S_Long;
--//     pragma Interface (Assembly, Shift_32);
--//     pragma Linkname (Shift_32, "_Xlbmt_Shift_32");
--//
--//     function "and" (A : S_Long;
--//                     B : S_Long) return S_Long is
--//     begin
--//         return And_32 (A, B);
--//     end "and";
--//
--//     function "or" (A : S_Long;
--//                    B : S_Long) return S_Long is
--//     begin
--//         return Or_32 (A, B);
--//     end "or";
--//
--//     function "xor" (A : S_Long;
--//                     B : S_Long) return S_Long is
--//     begin
--//         return Xor_32 (A, B);
--//     end "xor";
--//
--//     function "not" (A : S_Long) return S_Long is
--//     begin
--//         return Not_32 (A);
--//
--//     end "not";
--//
--//     function Shift (A : S_Long;
--//                     B : Integer) return S_Long is
--//     begin
--//         return Shift_32 (A, B);
--//     end Shift;
--//
--/ end if;

--\x0c
    ------------------------------------------------------------------------------
-- Perform bit operations on U_Short values.
------------------------------------------------------------------------------

--/ if TeleGen2_Derive_Bug then
--//
--//     function And_16 (A : U_Short; B : U_Short)
--//                     return U_Short;
--//     pragma Interface (Assembly, And_16);
--//     pragma Linkname (And_16, "_Xlbmt_And_16");
--//
--//     function Or_16 (A : U_Short; B : U_Short)
--//                    return U_Short;
--//     pragma Interface (Assembly, Or_16);
--//     pragma Linkname (Or_16, "_Xlbmt_Or_16");
--//
--//     function Xor_16 (A : U_Short; B : U_Short)
--//                     return U_Short;
--//     pragma Interface (Assembly, Xor_16);
--//     pragma Linkname (Xor_16, "_Xlbmt_Xor_16");
--//
--//     function Not_16 (A : U_Short) return U_Short;
--//     pragma Interface (Assembly, Not_16);
--//     pragma Linkname (Not_16, "_Xlbmt_Not_16");
--//
--//     function Shift_16 (A : U_Short; B : Integer)
--//                       return U_Short;
--//     pragma Interface (Assembly, Shift_16);
--//     pragma Linkname (Shift_16, "_Xlbmt_Shift_16");
--//
--//     function "and" (A : U_Short;
--//                     B : U_Short) return U_Short is
--//     begin
--//         return And_16 (A, B);
--//     end "and";
--//
--//     function "or" (A : U_Short;
--//                    B : U_Short) return U_Short is
--//     begin
--//         return Or_16 (A, B);
--//     end "or";
--//
--//     function "xor" (A : U_Short;
--//                     B : U_Short) return U_Short is
--//     begin
--//         return Xor_16 (A, B);
--//     end "xor";
--//
--//     function "not" (A : U_Short) return U_Short is
--//     begin
--//         return Not_16 (A);
--//
--//     end "not";
--//
--//     function Shift (A : U_Short;
--//                     B : Integer) return U_Short is
--//     begin
--//         return Shift_16 (A, B);
--//     end Shift;
--//
--/ end if;

--\x0c
    ------------------------------------------------------------------------------
-- Perform bit operations on U_Char values.
------------------------------------------------------------------------------

--/ if TeleGen2_Derive_Bug then
--//
--//     function And_8 (A : U_Char; B : U_Char)
--//                    return U_Char;
--//     pragma Interface (Assembly, And_8);
--//     pragma Linkname (And_8, "_Xlbmt_And_8");
--//
--//     function Or_8 (A : U_Char; B : U_Char)
--//                   return U_Char;
--//     pragma Interface (Assembly, Or_8);
--//     pragma Linkname (Or_8, "_Xlbmt_Or_8");
--//
--//     function Xor_8 (A : U_Char; B : U_Char)
--//                    return U_Char;
--//     pragma Interface (Assembly, Xor_8);
--//     pragma Linkname (Xor_8, "_Xlbmt_Xor_8");
--//
--//     function Not_8 (A : U_Char) return U_Char;
--//     pragma Interface (Assembly, Not_8);
--//     pragma Linkname (Not_8, "_Xlbmt_Not_8");
--//
--//     function Shift_8 (A : U_Char; B : Integer)
--//                      return U_Char;
--//     pragma Interface (Assembly, Shift_8);
--//     pragma Linkname (Shift_8, "_Xlbmt_Shift_8");
--//
--//     function "and" (A : U_Char;
--//                     B : U_Char) return U_Char is
--//     begin
--//         return And_8 (A, B);
--//     end "and";
--//
--//     function "or" (A : U_Char;
--//                    B : U_Char) return U_Char is
--//     begin
--//         return Or_8 (A, B);
--//     end "or";
--//
--//     function "xor" (A : U_Char;
--//                     B : U_Char) return U_Char is
--//     begin
--//         return Xor_8 (A, B);
--//     end "xor";
--//
--//     function "not" (A : U_Char) return U_Char is
--//     begin
--//         return Not_8 (A);
--//
--//     end "not";
--//
--//     function Shift (A : U_Char;
--//                     B : Integer) return U_Char is
--//     begin
--//         return Shift_8 (A, B);
--//     end Shift;
--//
--/ end if;

--\x0c
end Xlbt_Arithmetic;  

E3 Meta Data

    nblk1=8
    nid=0
    hdr6=10
        [0x00] rec0=18 rec1=00 rec2=01 rec3=018
        [0x01] rec0=14 rec1=00 rec2=02 rec3=028
        [0x02] rec0=1b rec1=00 rec2=03 rec3=026
        [0x03] rec0=22 rec1=00 rec2=04 rec3=034
        [0x04] rec0=19 rec1=00 rec2=05 rec3=008
        [0x05] rec0=23 rec1=00 rec2=06 rec3=01c
        [0x06] rec0=1a rec1=00 rec2=07 rec3=040
        [0x07] rec0=22 rec1=00 rec2=08 rec3=001
    tail 0x2170070c0819783be3a10 0x42a00088462063203