DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦cd6602ef8⟧ TextFile

    Length: 3582 (0xdfe)
    Types: TextFile
    Names: »B«

Derivation

└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
    └─ ⟦6f12a12be⟧ »DATA« 
        └─⟦this⟧ 

TextFile

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;