|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 7168 (0x1c00) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Com_Storage_Recep, seg_056adc
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Com_Fifo_Recep, Text_Manager, Com_Defs; package body Com_Storage_Recep is type Array_Unit is record Data : Com_Fifo_Recep.Queue; In_Use : Boolean := False; end record; task body Manager_Storage is Exit_Flag : Boolean := False; Max_Appli : Integer := 10; New_Counter : Com_Defs.Com_Number := 1; New_Status : Boolean := False; Storage_Array : array (0 .. Max_Appli) of Array_Unit; begin Text_Manager.Text.Put_Line ("Task Manager Array is Running"); loop select accept New_Appli (Appli_Number : out Com_Defs.Com_Number; Status : out Boolean) do New_Counter := 1; Appli_Number := 0; Status := False; New_Status := False; while New_Counter < Max_Appli and New_Status = False loop if Storage_Array (New_Counter).In_Use = False then New_Status := True; Appli_Number := New_Counter; Storage_Array (New_Counter).In_Use := True; Status := True; else New_Counter := New_Counter + 1; end if; end loop; end New_Appli; or accept Remove_Appli (Appli_Number : in Com_Defs.Com_Number) do Com_Fifo_Recep.Make_Empty (Storage_Array (Appli_Number).Data); Storage_Array (Appli_Number).In_Use := False; end Remove_Appli; or accept Read (Appli_Number : in Com_Defs.Com_Number; Data : out Com_Defs.V_String; Status : out Boolean) do if Com_Fifo_Recep.Is_Empty (Storage_Array (Appli_Number).Data) then Status := False; else Data := Com_Fifo_Recep.First (Storage_Array (Appli_Number).Data); -- Text_Manager.Text.Put_Line -- ("task manager storage is reading : "); Com_Fifo_Recep.Delete (Storage_Array (Appli_Number).Data); Status := True; end if; end Read; or accept Write (Appli_Number : in Com_Defs.Com_Number; Data : in Com_Defs.V_String) do -- Text_Manager.Text.Put_Line -- ("task manager storage is writing : " & -- Com_Defs.Image (Data)); Com_Fifo_Recep.Add (Storage_Array (Appli_Number).Data, Data); end Write; or accept Finish do Exit_Flag := True; end Finish; else null; end select; exit when Exit_Flag = True; end loop; Text_Manager.Text.Put_Line ("Task Manager Array is halted"); end Manager_Storage; end Com_Storage_Recep;
nblk1=6 nid=6 hdr6=a [0x00] rec0=1b rec1=00 rec2=01 rec3=016 [0x01] rec0=00 rec1=00 rec2=04 rec3=012 [0x02] rec0=15 rec1=00 rec2=02 rec3=020 [0x03] rec0=16 rec1=00 rec2=05 rec3=04c [0x04] rec0=0f rec1=00 rec2=03 rec3=000 [0x05] rec0=43 rec1=dc rec2=ac rec3=210 tail 0x21763141487c53e356e10 0x42a00088462060003 Free Block Chain: 0x6: 0000 00 00 00 23 80 20 69 66 20 53 74 6f 72 61 67 65 ┆ # if Storage┆