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

⟦6ddf03c2e⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Fruit_Working_Memory_4, seg_04beb5

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 Slot;
with Output_Stream;

use Slot;


package body Fruit_Working_Memory_4 is
    use Kbs;
    use Fruit_Frames_4;


    procedure Default_Put is  
        use Output_Stream;
        use Fact_Base;
    begin
        Working_Memory.Default_Put (Standard_Output);
    end Default_Put;


    procedure Load_Initial is  
        use Slot.Operators;

        procedure Load_Blocks is
        begin  
            Visual_Blocks.Add ((Label      => Value ('Z'),
                                Position_X => Min_X + Value (1),
                                Position_Y => Min_Y));
            Visual_Blocks.Add ((Label      => Value ('U'),
                                Position_X => Min_X + Value (3),
                                Position_Y => Min_Y));
            Visual_Blocks.Add ((Label      => Value ('T'),
                                Position_X => Min_X + Value (2),
                                Position_Y => Min_Y));
            Visual_Blocks.Add ((Label      => Value ('A'),
                                Position_X => Min_X + Value (2),
                                Position_Y => Min_Y + Value (1)));
            Visual_Blocks.Add ((Label      => Value ('P'),
                                Position_X => Min_X + Value (2),
                                Position_Y => Min_Y + Value (2)));
            Visual_Blocks.Add ((Label      => Value ('O'),
                                Position_X => Min_X + Value (6),
                                Position_Y => Min_Y));
        end Load_Blocks;


        procedure Load_Columns is  
            use Slot;
        begin  
            for I in Integer'(Get (Min_X)) .. Integer'(Get (Max_X)) loop
                Visual_Columns.Add ((Position_X => Value (I)));
            end loop;
        end Load_Columns;


        procedure Load_Model is
        begin  
            Visual_Blocks.Add ((Label      => Value ('Z'),
                                Position_X => Max_X,
                                Position_Y => Min_Y + Value (2)));
            Visual_Blocks.Add ((Label      => Value ('U'),
                                Position_X => Max_X,
                                Position_Y => Min_Y + Value (1)));
            Visual_Blocks.Add ((Label      => Value ('T'),
                                Position_X => Max_X,
                                Position_Y => Min_Y));  
        end Load_Model;

        procedure Load_Visual_Markers is
        begin
            Visual_Markers.Add ((Marker_Name => Model_Marker_Name,
                                 Position_X  => Min_X,
                                 Position_Y  => Max_Y));
            Visual_Markers.Add ((Marker_Name =>
                                    New_Top_Copied_Model_Marker_Name,
                                 Position_X  => Min_X,
                                 Position_Y  => Max_Y));
            Visual_Markers.Add ((Marker_Name => On_Table_Marker_Name,
                                 Position_X  => Min_X,
                                 Position_Y  => Max_Y));
            Visual_Markers.Add ((Marker_Name => Selected_Block_Marker_Name,
                                 Position_X  => Min_X,
                                 Position_Y  => Max_Y));
            Visual_Markers.Add ((Marker_Name => Top_Block_Marker_Name,
                                 Position_X  => Min_X,
                                 Position_Y  => Max_Y));
            Visual_Markers.Add ((Marker_Name => Top_Copied_Model_Marker_Name,
                                 Position_X  => Min_X,
                                 Position_Y  => Max_Y));
            Visual_Markers.Add ((Marker_Name => Search_Top_Block_Marker_Name,
                                 Position_X  => Min_X,
                                 Position_Y  => Max_Y));
        end Load_Visual_Markers;

        procedure Put_Model_Marker_On_Bottom_Right is
        begin  
            Requests.Add ((Request_Name => Move_Request_Name,
                           Marker_Name  => Model_Marker_Name,
                           Argument1    => Down_Direction,
                           Argument2    => Max_Y));
            Requests.Add ((Request_Name => Move_Request_Name,
                           Marker_Name  => Model_Marker_Name,
                           Argument1    => Right_Direction,
                           Argument2    => Max_X));  
            Markers.Add ((Marker_Name => Model_Marker_Name));
        end Put_Model_Marker_On_Bottom_Right;

        procedure Put_New_Copied_Model_Marker_On_Bottom_Right is
        begin  
            Requests.Add ((Request_Name => Move_Request_Name,
                           Marker_Name  => New_Top_Copied_Model_Marker_Name,
                           Argument1    => Down_Direction,
                           Argument2    => Max_Y));
            Requests.Add ((Request_Name => Move_Request_Name,
                           Marker_Name  => New_Top_Copied_Model_Marker_Name,
                           Argument1    => Left_Direction,
                           Argument2    => Max_X));
            Markers.Add ((Marker_Name => New_Top_Copied_Model_Marker_Name));
        end Put_New_Copied_Model_Marker_On_Bottom_Right;
    begin  
        Load_Columns;
        Load_Blocks;
        Load_Model;  
        Load_Visual_Markers;
        Put_Model_Marker_On_Bottom_Right;
        Put_New_Copied_Model_Marker_On_Bottom_Right;
    end Load_Initial;


end Fruit_Working_Memory_4;

E3 Meta Data

    nblk1=8
    nid=0
    hdr6=10
        [0x00] rec0=23 rec1=00 rec2=01 rec3=016
        [0x01] rec0=18 rec1=00 rec2=06 rec3=030
        [0x02] rec0=05 rec1=00 rec2=08 rec3=03c
        [0x03] rec0=13 rec1=00 rec2=05 rec3=04c
        [0x04] rec0=01 rec1=00 rec2=07 rec3=004
        [0x05] rec0=12 rec1=00 rec2=02 rec3=026
        [0x06] rec0=12 rec1=00 rec2=04 rec3=000
        [0x07] rec0=0c rec1=00 rec2=03 rec3=000
    tail 0x217517fd68691584f25a4 0x42a00088462063c03