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

⟦c909043d0⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Temporary, seg_027f88

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



-------------------------------------------------------------------------------
with Umps_Defs;
with Text_Io;

package body Temporary is

    Max_Index : constant Natural := 100;

    subtype Private_String is String (1 .. 200);
    type    Private_Range  is range 1 .. Max_Index;
    type    A_Table        is array (Private_Range range <>) of Private_String;

    The_Table : A_Table (Private_Range);

    Current_Index : Private_Range := Private_Range'First;
    Adding_Index  : Private_Range := Private_Range'First;

    ---------------------------------------------------------------------------
    procedure Add_Table (The_String : String) is

    begin
        if (Adding_Index in Private_Range) then
            Umps_Defs.Normalize (The_String, The_Table (Adding_Index));
            Adding_Index := Private_Range'Succ (Adding_Index);
        end if;
    end Add_Table;

    ---------------------------------------------------------------------------
    procedure Init is
    begin
        Current_Index := Private_Range'First;
        Add_Table ("Request,Register, 0, 1, 0,Date, 1,The_Date, String,");
        Add_Table ("Request,Register, 0, 1, 0,Time, 1,The_Time, Integer,");

        Add_Table
           ("Request,Register, 0, 2, 0,Open, 2,File, String,aga,Rights, string,");
        Add_Table
           ("Request,Register, 0, 2, 0,Open_File, 1,File, String,toto.c");
        Add_Table
           ("Request,Register, 0, 2, 0,Open_File, 1,File, String,toto.c");
        Add_Table ("Request,Register, 0, 2, 0,Open_@, 1,File, String,toto.c");

        Add_Table
           ("Request,Register, 0, 3, 0,Display, 1,The_Number, Integer,12");
        Add_Table
           ("Request,Register, 0, 3, 0,Open_Display, 1,Terminal, String,asperule:0");

        Add_Table ("Request,Observed, 0, 1, 0,Open_File, 1,File, String,");

        Add_Table ("Request,Query, 0, 1, 0,@, 0,");
        Add_Table ("Request,Query, 0, 1, 0,Open@, 0,");

        Add_Table ("Notice,Observed, 0, 1, 0,File,Open@, 0,");
        Add_Table ("Notice,Observed, 0, 1, 0,File,Close, 0,");

        --
        Add_Table ("Request,Send, 0, 2, 0,Date,1,The_Date, String,");
        Add_Table ("Request,Done, 0, 1, 2,Date,1,The_Date, String,16 avril 93");

        Add_Table
           ("Request,Send, 0, 1, 0,Open,2,File, String,toto.c,Rights, String,rw");
        Add_Table
           ("Request,Done, 0, 2, 1,Open,2,File, String,toto.c,Rights, String,rw");

        Add_Table ("Notice,Send, 0, 2, 3,File,Close,1,File, String,toto.c");

        Add_Table
           ("Request,Send, 0, 1, 3,Print,1,The_Date, String,16 avril 93");

        Add_Table ("Request,Send, 0, 2, 0,Date,1,The_Date, String,");
        Add_Table ("Request,Send, 0, 2, 0,Date,1,The_Date, String,");
        Add_Table ("Request,Done, 0, 1, 2,Date,1,The_Date, String,16 avril 93");

        Add_Table ("Request,Send, 0, 2, 0,Date,1,The_Date, String,");
        Add_Table ("Request,Done, 0, 1, 2,Date,1,The_Date, String,16 avril 93");



    end Init;


    ---------------------------------------------------------------------------
    procedure Put (The_Message : String; Message_Sended : out Boolean) is

    begin
        Message_Sended := True;
        Text_Io.Put_Line (The_Message);
    end Put;

    ---------------------------------------------------------------------------
    procedure Get (A_Message         : in out String;
                   Message_Size      : out    Natural;
                   A_Message_Receive : out    Boolean) is
        Index : Natural;

    begin  
        if (Current_Index < Adding_Index) then
            A_Message_Receive := True;  
            Index             := 0;
            Search_End_Char:
                for I in The_Table (Current_Index)'Range loop
                    exit Search_End_Char when
                       The_Table (Current_Index) (I) = Ascii.Nul;
                    Index := I;
                end loop Search_End_Char;
            Message_Size := Index;
            Umps_Defs.Normalize
               (The_Table (Current_Index) (1 .. Index), A_Message);
            Current_Index := Private_Range'Succ (Current_Index);
        else
            A_Message_Receive := False;
            Message_Size      := 0;
        end if;
    end Get;

end Temporary;
-------------------------------------------------------------------------------


E3 Meta Data

    nblk1=7
    nid=2
    hdr6=a
        [0x00] rec0=1d rec1=00 rec2=01 rec3=09e
        [0x01] rec0=17 rec1=00 rec2=03 rec3=060
        [0x02] rec0=18 rec1=00 rec2=05 rec3=006
        [0x03] rec0=1c rec1=00 rec2=04 rec3=082
        [0x04] rec0=10 rec1=00 rec2=06 rec3=000
        [0x05] rec0=0f rec1=00 rec2=02 rec3=000
        [0x06] rec0=02 rec1=00 rec2=04 rec3=001
    tail 0x21520d4ca83ad7f8e07d5 0x42a00088462063c03
Free Block Chain:
  0x2: 0000  00 07 02 05 80 1a 20 20 20 20 20 20 20 20 20 20  ┆                ┆
  0x7: 0000  00 00 01 60 80 1f 54 68 65 5f 44 61 74 65 2c 20  ┆   `  The_Date, ┆