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: ┃ T V

⟦05461b4d0⟧ TextFile

    Length: 6862 (0x1ace)
    Types: TextFile
    Names: »V«

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;
with Device_Independent_Io;

package Os_Dependent_Io is


    type Os_Control_Block is private;

    subtype File_Type   is Device_Independent_Io.File_Type;
    subtype File_Mode   is Device_Independent_Io.File_Mode;
    subtype File_Kind   is Device_Independent_Io.File_Kind;
    subtype Client_Kind is Device_Independent_Io.Client_Kind;

    subtype Byte_String is System_Types.Byte_String;


    procedure Open (File : in out File_Type;
                    Ctrl : in out Os_Control_Block;
                    Mode : in File_Mode;
                    Kind : in File_Kind;
                    Name : in String;
                    Form : in String;
                    Recommended_Buffer_Size : in Natural;
                    Actual_Buffer_Size : out Natural;
                    Client : in Client_Kind := Device_Independent_Io.Unknown);

    procedure Create (File                    : in out File_Type;
                      Ctrl                    : in out Os_Control_Block;
                      Mode                    : in     File_Mode;
                      Kind                    : in     File_Kind;
                      Name                    : in     String;
                      Form                    : in     String;
                      Recommended_Buffer_Size : in     Natural;
                      Actual_Buffer_Size      : out    Natural);



    -- This routine will try to return data in units of one record or
    -- more (if there is buffer space); but is never forced to return
    -- more than one record even if the buffer space is available.
    -- If Line_Terminator_Detected is true then Line_Last_Data_Index
    -- will be the index in Item of the last data byte of the line read
    -- and Line_Terminator_Present will be true if the next character
    -- after that is a line terminator and false if the line terminator
    -- is not represented in Item.  This is the preferred way of reading
    -- a text file, as it may be possible on some operating systems to
    -- detect line terminators without scanning the line character by
    -- character.  The exact definition of the line terminator is
    -- operating system dependent.  Can raise Io_Exceptions.End_Error.
    -- Note that the Item is in-out (instead of out).  This is necessary
    -- because the procedure may find it necessary to look in the buffer.

    procedure Read (File                     : in     File_Type;
                    Ctrl                     : in     Os_Control_Block;
                    Item                     : in out Byte_String;
                    Count                    : out    Natural;
                    Line_Terminator_Detected : out    Boolean;
                    Line_Last_Data_Index     : out    Natural;
                    Line_Terminator_Present  : out    Boolean);



    -- Protocols should write in units of one record; for a text file
    -- a record is one line.  If Line_Terminator_Present is true
    -- then the last byte of the Item is a line terminator.  If
    -- Line_Terminator_Present is false then the line terminator is
    -- not represented in the data but is implicit after the last
    -- byte of the data.

    procedure Write (File                    : in File_Type;
                     Ctrl                    : in Os_Control_Block;
                     Item                    : in Byte_String;
                     Line_Terminator_Present : in Boolean);


    function End_Of_File (File : in File_Type;  
                          Ctrl : in Os_Control_Block) return Boolean;


    procedure Close (File : in out File_Type;  
                     Ctrl : in out Os_Control_Block);

    procedure Reset (File : in out File_Type;
                     Ctrl : in out Os_Control_Block;
                     Mode : in     File_Mode);

    procedure Save (File             : in File_Type;
                    Ctrl             : in Os_Control_Block;
                    Immediate_Effect : in Boolean := True);

    procedure Delete (File : in out File_Type;  
                      Ctrl : in out Os_Control_Block);

    function Name (File : in File_Type;  
                   Ctrl : in Os_Control_Block) return String;
    function Form (File : in File_Type;  
                   Ctrl : in Os_Control_Block) return String;

    function Is_Interactive (File : in File_Type;  
                             Ctrl : in Os_Control_Block) return Boolean;
    function Is_Empty       (File : in File_Type;  
                             Ctrl : in Os_Control_Block) return Boolean;

    function Identical_File (File1 : in File_Type;
                             Ctrl1 : in Os_Control_Block;
                             File2 : in File_Type;
                             Ctrl2 : in Os_Control_Block) return Boolean;


    -- To allow clients of Device_Independent_Io to obtain access to the
    -- OS dependent control block for use in non-device independent ops.

    function Address_For_Control
                (Ctrl : Os_Control_Block) return System.Address;

    function Control_From_Address
                (Addr : System.Address) return Os_Control_Block;


    procedure Read_Bytes (Ctrl       : in  Os_Control_Block;
                          Bytes_Addr :     System.Address;
                          Byte_Count :     Natural;
                          Bytes_Read : out Natural);


    procedure Write_Bytes (Ctrl       : Os_Control_Block;
                           Bytes_Addr : System.Address;
                           Byte_Count : Natural);


    type    Byte_Count is new Natural;
    subtype Byte_Index is Byte_Count;

    function Size (Ctrl : Os_Control_Block) return Byte_Count;

    function Index (Ctrl : Os_Control_Block) return Byte_Index;

    procedure Set_Index (Ctrl : Os_Control_Block; To : Byte_Index);

private

    type Control_Block (For_Kind : File_Kind := Device_Independent_Io.Normal);

    type Os_Control_Block is access Control_Block;

end Os_Dependent_Io;