|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 7518 (0x1d5e) Types: TextFile Names: »B«
└─⟦85b835f43⟧ Bits:30000549 8mm tape, Rational 1000, Xlib rev 6.00 └─ ⟦0c20f784e⟧ »DATA« └─⟦1abbe589f⟧ └─⟦059497ac5⟧ └─⟦this⟧
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. ------------------------------------------------------------------------------ --\f ------------------------------------------------------------------------------ -- 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; --\f ------------------------------------------------------------------------------ -- 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; --\f ------------------------------------------------------------------------------ -- 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; --\f end Xlbt_Arithmetic;