|
|
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 - metrics - downloadIndex: B T
Length: 4004 (0xfa4)
Types: TextFile
Names: »B«
└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
└─⟦77aa8350c⟧ »DATA«
└─⟦f794ecd1d⟧
└─⟦4c85d69e2⟧
└─⟦this⟧
-- 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_Types;
with Long_Float_Io;
with Short_Float_Io;
separate (Text_Io)
package body Fixed_Io is
Have_Short_Float : constant Boolean :=
Num'Size <= System_Types.Float_S'Machine_Mantissa;
-- procedure Pput (S : in String) renames Primitive_Io.Put_Line;
procedure Get (File : File_Type; Item : out Num; Width : Field := 0) is
begin
if Have_Short_Float then
Short_Float_Io.Get_From_File
(Cio_File_Type (File), Float (Item), Width);
else
Long_Float_Io.Get_From_File
(Cio_File_Type (File), Long_Float (Item), Width);
end if;
exception
when Numeric_Error | Constraint_Error =>
raise Data_Error;
end Get;
procedure Get (Item : out Num; Width : Field := 0) is
begin
if Have_Short_Float then
Short_Float_Io.Get_From_File
(Cio.Current_Input, Float (Item), Width);
else
Long_Float_Io.Get_From_File
(Cio.Current_Input, Long_Float (Item), Width);
end if;
exception
when Numeric_Error | Constraint_Error =>
raise Data_Error;
end Get;
procedure Put (File : File_Type;
Item : Num;
Fore : Field := Default_Fore;
Aft : Field := Default_Aft;
Exp : Field := Default_Exp) is
begin
if Have_Short_Float then
Short_Float_Io.Put_To_File (Cio_File_Type (File),
Float (Item), Fore, Aft, Exp);
else
Long_Float_Io.Put_To_File (Cio_File_Type (File),
Long_Float (Item), Fore, Aft, Exp);
end if;
end Put;
procedure Put (Item : Num;
Fore : Field := Default_Fore;
Aft : Field := Default_Aft;
Exp : Field := Default_Exp) is
begin
if Have_Short_Float then
Short_Float_Io.Put_To_File (Cio.Current_Output,
Float (Item), Fore, Aft, Exp);
else
Long_Float_Io.Put_To_File (Cio.Current_Output,
Long_Float (Item), Fore, Aft, Exp);
end if;
end Put;
procedure Get (From : String; Item : out Num; Last : out Positive) is
begin
if Have_Short_Float then
Short_Float_Io.Get_From_String (From, Float (Item), Last);
else
Long_Float_Io.Get_From_String (From, Long_Float (Item), Last);
end if;
exception
when Numeric_Error | Constraint_Error =>
raise Data_Error;
end Get;
procedure Put (To : out String;
Item : Num;
Aft : Field := Default_Aft;
Exp : Field := Default_Exp) is
begin
if Have_Short_Float then
Short_Float_Io.Put_To_String (To, Float (Item), Aft, Exp);
else
Long_Float_Io.Put_To_String (To, Long_Float (Item), Aft, Exp);
end if;
end Put;
end Fixed_Io;