DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦93681cccc⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Tape, pragma Module_Name 4 3927, pragma Subsystem Input_Output, seg_01284a

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



package Tape is

    procedure Rewind (Drive : Natural := 0);
    procedure Unload (Drive : Natural := 0);

    procedure Read_Mt (Drive : Natural := 0);
    procedure Write_Mt (File : String := "<SELECTION>";
                        Indirect : Boolean := True;
                        Drive : Natural := 0);

    procedure Read (Volume : String;
                    Directory : String := "$";
                    Options : String := "R1000 Add_New_Line";
                    To_Operator : String := "Thank You";
                    Response : String := "<PROFILE>");

    -- The specified volume is mounted and all files are read into the
    -- given directory.

    -- Options are:

    --  FORMAT = R1000 | MV | VAX/VMS

    --  ADD_NEW_LINE
    --      Add a line terminator following each record read from tape.
    --      Without this option, bytes are copied from tape without
    --      interpretation or modification.


    -- Notes on mapping of tape names to R1000 file names
    --
    -- The file name from the tape is processed by replacing strings
    -- of non-alpha-numeric characters with a single '_'.  Then,
    -- if the name ends with an '_', the character 'B' is appended
    -- to the name.  If the name contains no alpha-numeric
    -- characters, a name derived from the user name and time is generated.

    procedure Write (Files : String := "$@";
                     Volume : String := "";
                     Options : String := "R1000 Text_Files";
                     To_Operator : String := "Thank You";
                     Response : String := "<PROFILE>");

    -- The specified Volume is mounted and the specified files are
    -- written to the volume.

    -- The To_Operator string is displayed to the operator when the
    -- request to mount the tape is made.

    -- Options are:

    --    Text_Files          If Text_Files is specified, the file is assumed
    --                        to contain only characters, line_terminators,
    --                        page_terminators, etc.  Each line of the file
    --                        is written to a record on the tape. Lines are
    --                        read according to the same rules as
    --                        Text_Io.Get_Line.

    --    Label               an optional part of the label written
    --                        to the volume header.
    --    Format              Target system (no abbreviations):
    --                           R1000, MV, or VAX/VMS
    --                           [Default: R1000]
    --    Record_Format       Ansi record format:
    --                           FIXED_LENGTH, VARIABLE_LENGTH or SPANNED
    --                           [Default: VARIABLE_LENGTH]
    --    Record_Length       A positive integer. [Default: 512]
    --    Block_Length        A positive integer. [Default: 2048]

    -- The file name that goes on the tape is generated as follows:
    --
    -- First, if the object is an Ada Unit, then "V_" or "B_" are prepended
    -- to the name if the unit is an Ada spec or body, respectively.
    -- Then, '_' characters in the name are removed.  One exception
    -- to this is that if the name ends in "_xyz", that underscore is
    -- replaced with '.', yielding a filename that will end in ".xyz".
    -- VAX/VMS bound file names are shortened to 9 characters;  others
    -- are shortened to 17 characters.  If, after removing '_' characters,
    -- the name is too long, vowels are removed starting at the right end
    -- of the name (excluding the suffix).  Then, if the name
    -- is still too long, it is truncated (again, excluding the ".xyz"
    -- suffix, if any).
    --
    -- Finally, to produce a unique name (with respect to others going on to
    -- the tape), 'A' characters are inserted in front of the suffix, if any,
    -- (preserving the ".xyz" suffix) and then these characters are
    -- incremented alphabetically until the name is unique.

    -- Thus, "An_Interesting_Name_Txt" becomes (if not VAX/VMS bound),
    --       "AnInterstngNm.Txt"

    Error : exception;

    procedure Examine_Labels (Vol_Id : String := "";
                              Vol_Set_Name : String := "";
                              To_Operator : String := "Thank you";
                              Volume_Labels_Only : Boolean := True);

    procedure Format_Tape (Drive : Natural := 0; Vol_Id : String := "");

    procedure Display_Tape (Drive : Natural := 0;
                            Marks_To_Skip : Integer := 0;
                            Records_To_Skip : Integer := 0;
                            Blocks_To_Display : Natural := 10);


    pragma Subsystem (Input_Output);
    pragma Module_Name (4, 3927);

end Tape;

E3 Meta Data

    nblk1=5
    nid=0
    hdr6=a
        [0x00] rec0=1f rec1=00 rec2=01 rec3=030
        [0x01] rec0=17 rec1=00 rec2=02 rec3=028
        [0x02] rec0=11 rec1=00 rec2=03 rec3=06e
        [0x03] rec0=11 rec1=00 rec2=04 rec3=004
        [0x04] rec0=18 rec1=00 rec2=05 rec3=000
    tail 0x2150d8b9082b0816157d0 0x42a00088462060003