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

⟦a6876c65b⟧ TextFile

    Length: 3972 (0xf84)
    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 Long_Float_Io;
with Short_Float_Io;

separate (Text_Io)
package body Float_Io is

    Have_Short_Float : constant Boolean :=
       Num'Size <= System_Types.Float_S'Size;

    -- 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 Float_Io;