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

⟦e1261619d⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Robots_Briques_First_Bak, seg_011f15

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 Frame_Robots_Briques, Slot, Instance, Text_Io;
use Frame_Robots_Briques;

package body Robots_Briques_First_Bak is

------------------------------------------------------------------------------
    function Pack_It_Test
                (Br : Brique.Object; Ro : Robot.Object) return Boolean is
        use Frame_Robots_Briques.Robot_Features,
            Frame_Robots_Briques.Brique_Features, Slot.Operators,
            Frame_Robots_Briques.Robot_Features;
    begin
        return Brique.Value_Of (Br, Place) = In_The_Heap and then
                  not (Slot.Get (Robot.Value_Of (Ro, Is_Busy))) and then
                  State_Slot_Tasks.Get (Robot.Value_Of (Ro, T_Ask)) =
                     Get and then
                  -- Brique.Value_Of (Br, Size) =
                  --    Brique.Value_Of (Brique.Maximize (Size), Size);
                  not Brique.Exist (With_Conditions =>
                                       ((Attribute => Place,
                                         Operator  => Brique.Equal,
                                         Value     => In_The_Heap),
                                        (Attribute => Size,
                                         Operator => Brique.Greater,
                                         Value => Brique.Value_Of (Br, Size))));

    end Pack_It_Test;

------------------------------------------------------------------------------

    function Get_Test (Br : Brique.Object;
                       Ro : Frame_Robots_Briques.Robot.Object) return Boolean is
        use Frame_Robots_Briques.Robot_Features,
            Frame_Robots_Briques.Brique_Features, Slot.Operators;
    begin
        return State_Slot_Tasks.Get (Robot.Value_Of (Ro, T_Ask)) = Get and then
                  Slot.Get (Robot.Value_Of (Ro, Is_Busy)) and then
                  Brique.Value_Of (Br, Place) = In_The_Pince;
    end Get_Test;

------------------------------------------------------------------------------
    function Put_To_Case_Test
                (Br : Brique.Object; Ro : Frame_Robots_Briques.Robot.Object)
                return Boolean is
        use Frame_Robots_Briques.Robot_Features,
            Frame_Robots_Briques.Brique_Features, Slot.Operators;
    begin
        return  
           State_Slot_Tasks.Get (Robot.Value_Of (Ro, T_Ask)) = Put and then
              Brique.Value_Of (Br, Place) = In_The_Pince and then
              not Robot.Exist (With_Conditions =>
                                  ((Attribute => Old,
                                    Operator  => Robot.Less,
                                    Value     => Robot.Value_Of (Ro, Old)),
                                   (Attribute => T_Ask,
                                    Operator => Robot.Equal,
                                    Value => State_Slot_Tasks.Value (Put))));
    end Put_To_Case_Test;


------------------------------------------------------------------------------   function Stop_Test (Br : Brique.Object; Ro : Robot.Object) return Boolean is
        use Frame_Robots_Briques.Robot_Features,
            Frame_Robots_Briques.Brique_Features, Slot.Operators;
    begin
        return  
           State_Slot_Tasks.Get (Robot.Value_Of (Ro, T_Ask)) = Get and then
              not Slot.Get (Robot.Value_Of (Ro, Is_Busy)) and then
              -- not Brique.Exist (Attribute => Place,
              --                   Operator  => Brique.Equal,
              --                   Value     => In_The_Heap);
              Brique.Value_Of (Br, Place) /= In_The_Heap;
    end Stop_Test;


end Robots_Briques_First_Bak;

E3 Meta Data

    nblk1=6
    nid=3
    hdr6=a
        [0x00] rec0=16 rec1=00 rec2=01 rec3=026
        [0x01] rec0=00 rec1=00 rec2=02 rec3=008
        [0x02] rec0=14 rec1=00 rec2=05 rec3=092
        [0x03] rec0=15 rec1=00 rec2=04 rec3=002
        [0x04] rec0=0f rec1=00 rec2=06 rec3=000
        [0x05] rec0=04 rec1=00 rec2=05 rec3=000
    tail 0x2150d3aa48246730b1a39 0x42a00088462063c03
Free Block Chain:
  0x3: 0000  00 00 03 fc 80 11 5f 4f 66 5f 43 6f 6c 6c 65 63  ┆      _Of_Collec┆