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

⟦24216053c⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Com_Storage_Fifo, seg_056ac3

Derivation

└─⟦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 Com_Fifo, Text_Manager, Bounded_String, Com_Data, Com_Defs;
package body Com_Storage_Fifo is
    task body Fifo is
        Fifo : Com_Fifo.Queue;
        Data_Fifo : Com_Data.Data_Pack;
    begin
        Text_Manager.Text.Put_Line ("Task Fifo is Running");
        Com_Fifo.Initialize (Fifo);
        loop
            select
                accept Write (Data : in Com_Defs.V_String;
                              Adr : Transport_Defs.Host_Id;
                              Appli_Number : in Com_Defs.Com_Number;
                              Length : in Natural) do
                    --  Text_Manager.Text.Put_Line
                    --     ("task Fifo is writing : " & Com_Defs.Image (Data));
                    Data_Fifo.Data := Data;
                    Data_Fifo.Adr := Adr;
                    Data_Fifo.Appli_Number := Appli_Number;
                    Data_Fifo.Length := Length;
                    Com_Fifo.Add (Fifo, Data_Fifo);
                end Write;
            or
                accept Read (Data : in out Com_Defs.V_String;
                             Adr : in out Transport_Defs.Host_Id;
                             Appli_Number : in out Com_Defs.Com_Number;
                             Length : in out Natural;
                             Status : out Boolean) do

                    if Com_Fifo.Is_Empty (Fifo) then
                        Status := False;
                    else
                        --  Text_Manager.Text.Put_Line ("Task Fifo is reading : ");
                        Data_Fifo := Com_Fifo.First (Fifo);
                        Data := Data_Fifo.Data;
                        Adr := Data_Fifo.Adr;
                        Appli_Number := Data_Fifo.Appli_Number;
                        Length := Data_Fifo.Length;
                        --    Text_Manager.Text.Put_Line
                        --       ("Task Fifo read : " & Com_Defs.Image (Data));
                        Com_Fifo.Delete (Fifo);
                        Status := True;
                    end if;
                end Read;
            end select;
        end loop;
    end Fifo;
end Com_Storage_Fifo;

E3 Meta Data

    nblk1=4
    nid=2
    hdr6=6
        [0x00] rec0=17 rec1=00 rec2=01 rec3=02e
        [0x01] rec0=13 rec1=00 rec2=04 rec3=052
        [0x02] rec0=08 rec1=00 rec2=03 rec3=000
        [0x03] rec0=07 rec1=00 rec2=03 rec3=001
    tail 0x21763103087c53b2f4775 0x42a00088462060003
Free Block Chain:
  0x2: 0000  00 00 00 ba 80 24 20 20 20 20 20 20 20 20 20 20  ┆     $          ┆