|
|
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: T V
Length: 7339 (0x1cab)
Types: TextFile
Names: »V«
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
└─⟦fc9b38f02⟧ »DATA«
└─⟦9b46a407a⟧
└─⟦12c68c704⟧
└─⟦this⟧
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS
└─⟦91c658230⟧ »DATA«
└─⟦458657fb6⟧
└─⟦220843204⟧
└─⟦this⟧
with Device_Independent_Io;
package Tape_Tools is
pragma Subsystem (Input_Output);
pragma Module_Name (4, 3974);
type Logical_Device is private;
subtype Vol_Id_String is String; -- (1 .. 6);
subtype Vol_Name_String is String; -- (1 .. 76);
subtype Owner_String is String; -- (1 .. 13);
subtype File_Id_String is String; -- (1 .. 17);
subtype File_Name_String is String; -- (1 .. 532);
subtype User_Label_Number is Natural range 0 .. 255;
subtype Byte is Device_Independent_Io.Byte;
subtype Bytes is Device_Independent_Io.Byte_String;
procedure Initialize (Tape : out Logical_Device;
Format : String := "R1000");
function Initialize (Format : String := "R1000") return Logical_Device;
procedure Connect_For_Input (Tape : in out Logical_Device;
Vol_Id : Vol_Id_String;
Vol_Name : Vol_Name_String := "";
To_Operator : String := "Thank You");
-- Request tape with given Vol_Id/Vol_Name be mounted on a drive for
-- the purpose of reading.
procedure Connect_For_Output (Tape : in out Logical_Device;
Vol_Id : Vol_Id_String;
Vol_Name : Vol_Name_String := "";
Owner : String := "";
To_Operator : String := "Thank You");
-- request a tape be mounted on a drive for writing; Assign the
-- Vol_Id/Vol_Name/Owner per given parameters;
function Vol_Id (Tape : Logical_Device) return String;
-- Volume Id of mounted tape.
function Vol_Name (Tape : Logical_Device) return String;
-- Volume name of mounted tape (format dependent)
function Owner (Tape : Logical_Device) return String;
-- Owner of mounted tape (format dependent)
procedure Label (Tape : Logical_Device;
Number : User_Label_Number;
Label : String);
-- Define a User Label for the next Create.
-- Up to 256 labels may be defined for one file
type Record_Format is (Fixed_Length, Variable_Length, Spanned, Undefined);
Default_Record_Format : constant Record_Format := Variable_Length;
Default_Record_Length : constant Natural := 512;
Default_Block_Length : constant Natural := 2048;
procedure Format (Tape : Logical_Device;
Kind : Record_Format := Default_Record_Format;
Record_Length : Natural := Default_Record_Length;
Block_Length : Natural := Default_Block_Length);
-- Define the record format for the next Create. When the
-- Logical_Device is initialized the record format is set to the above
-- defaults. An changes made by this procedure remain in effect until
-- the next call of this procedure or the tape is disconnected.
procedure Create (Tape : in out Logical_Device;
Id : File_Id_String;
Name : File_Name_String := "");
-- Start a new output file with the given Id (and Name) and any user
-- labels defined before this call.
procedure Open (Tape : in out Logical_Device);
-- Open the next file on the tape;
function File_Id (Tape : Logical_Device) return String;
-- File Id of currently open tape file.
function File_Name (Tape : Logical_Device) return String;
-- File name of file opened/created on tape; (Format dependent);
function Labels (Tape : Logical_Device) return Natural;
-- number of user labels associated with the currently open file
function Label (Tape : Logical_Device; Index : Natural) return String;
function Label (Tape : Logical_Device; Index : Natural) return Natural;
-- Index-th user label text or number associated with currently open file.
-- Index must be less than the value returned by Labels
function Format (Tape : Logical_Device) return Record_Format;
-- The record format of the currently open file
function Block_Length (Tape : Logical_Device) return Natural;
-- The block length of the currently open file
function Record_Length (Tape : Logical_Device) return Natural;
-- The Record Length of the currently open file
procedure Skip (Tape : Logical_Device; Number : Integer := 1);
procedure Put_Line (Tape : Logical_Device; Line : String);
function Get_Line (Tape : Logical_Device) return String;
procedure Get_Line (Tape : Logical_Device;
Line : out String;
Length : out Natural);
procedure Get_Line (Tape : Logical_Device;
Line : out String;
Length : out Natural;
Eof : out Boolean);
procedure Put (Tape : Logical_Device; Data : Bytes);
function Get (Tape : Logical_Device) return Bytes;
procedure Get (Tape : Logical_Device;
Data : out Bytes;
Length : out Natural);
procedure Get (Tape : Logical_Device;
Data : out Bytes;
Length : out Natural;
Eof : out Boolean);
function End_Of_File (Tape : Logical_Device) return Boolean;
function End_Of_Tape (Tape : Logical_Device) return Boolean;
procedure Close (Tape : Logical_Device);
procedure Disconnect (Tape : Logical_Device);
procedure Abandon (Tape : Logical_Device);
type Condition is (No_Errors, Vol_Already_Open_Or_Created,
Vol_Not_Open_Or_Created, Not_Initialized,
Not_Original_Client, Read_While_Writing,
Write_While_Reading, Position_While_Writing,
Previous_Fatal_Error, File_Still_Being_Written,
File_Still_Being_Read, File_Not_Created,
File_Not_Open, Retry_Count_Exhausted, Vol_Set_Error,
Unexpected_Tape_Error, No_Drive_Available,
Desired_Drive_Unavailable, Desired_Volume_Not_Found,
Vol_Access_Denied, File_Access_Denied,
File_Expired, End_Of_Vol_Set_Encountered,
Incorrect_File_Seq_No, Incorrect_File_Sect_No,
Need_Vol_Completion, Not_At_Eof, Not_At_Eov, Not_At_Eovs,
Incorrect_Buffer_Size, Block_Length_Too_Short,
Block_Length_Too_Long, File_Not_In_Vol_Set,
Record_Not_In_File, Format_Violation,
Unimplemented_Format, Attempt_To_Read_While_Writing,
Attempt_To_Write_While_Reading, Other_Error);
function Status (Tape : Logical_Device) return Condition;
function Status (Tape : Logical_Device) return String;
function Is_Fatal (Error : Condition) return Boolean;
function Is_Fatal (Tape : Logical_Device) return Boolean;
private
type Logical_Device_Record;
type Logical_Device is access Logical_Device_Record;
pragma Segmented_Heap (Logical_Device);
end Tape_Tools;