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

⟦4ac0aa67f⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body File, seg_0380bf, seg_0380e7, seg_038a9d

Derivation

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

E3 Source Code



with Text_Io;

package body File is

    F : Text_Io.File_Type;

    Current_Char : Character;
    Unget_Request : Boolean;


    -- creation du fichier
    -- ===================
    procedure Create (File_Name : String) is
    begin
        Text_Io.Create (File => F, Name => File_Name);
        Unget_Request := False;
    end Create;


    -- ouverture du fichier
    -- ====================
    procedure Open (File_Name : String) is
    begin
        Text_Io.Open (F, Text_Io.In_File, File_Name);
        Unget_Request := False;
    end Open;


    -- fermeture du fichier
    -- ====================

    procedure Close is
    begin
        Text_Io.Close (F);
    end Close;


    -- renvoi VRAI si fin de fichier atteinte
    -- ======================================

    function Is_At_End_File return Boolean is
    begin
        if Unget_Request then
            return False;
        elsif Text_Io.End_Of_File (F) then
            return True;
        else
            return False;
        end if;
    end Is_At_End_File;


    -- renvoi VRAI si fin de ligne du fichier atteinte
    -- ===============================================

    function Is_At_End_Line return Boolean is
    begin
        if Unget_Request then
            return False;
        elsif Text_Io.End_Of_Line (F) then
            return True;
        else
            return False;
        end if;
    end Is_At_End_Line;


    -- avance dans le fichier avec lecture du caractere
    -- ================================================

    procedure Next is
    begin
        if Unget_Request then
            Unget_Request := False;
        else
            Text_Io.Get (F, Current_Char);
        end if;
    end Next;


    -- retourne le caractere courant du fichier
    -- ========================================

    function Value return Character is
    begin
        return Current_Char;
    end Value;


    -- avance d'un caractere dans le fichier et retourne le caractere courant
    -- ======================================================================

    function Get return Character is
    begin
        Next;
        return Value;
    end Get;


    -- recule d'un caractere dans le fichier
    -- =====================================

    procedure Unget is
    begin
        Unget_Request := True;
    end Unget;


    -- avance d'une position dans le fichier et retourne le caractere CR
    -- =================================================================

    function Get_Cr return Character is
    begin
        Text_Io.Skip_Line (F);
        Current_Char := Ascii.Cr;
        return Current_Char;
    end Get_Cr;


    -- ecriture d'une chaine de caracteres dans le fichier
    -- ===================================================

    procedure Write (Item : String) is
    begin
        Text_Io.Put (F, Item);
    end Write;


    -- passage a la ligne suivante dans le fichier
    -- ===========================================

    procedure New_Line is
    begin
        Text_Io.New_Line (F);
    end New_Line;

end File;

E3 Meta Data

    nblk1=6
    nid=3
    hdr6=a
        [0x00] rec0=2e rec1=00 rec2=01 rec3=048
        [0x01] rec0=09 rec1=00 rec2=04 rec3=056
        [0x02] rec0=27 rec1=00 rec2=05 rec3=022
        [0x03] rec0=29 rec1=00 rec2=02 rec3=024
        [0x04] rec0=05 rec1=00 rec2=06 rec3=000
        [0x05] rec0=42 rec1=61 rec2=ad rec3=3e3
    tail 0x21531557c84e673120f81 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 00 00 06 80 03 2a 2a 2a 03 5f 43 72 20 72 65  ┆      *** _Cr re┆