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

⟦3ff817856⟧ Ada Source

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

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



package body Bgrb2_Frames is


    procedure Put (The_Fact : Fact_Name; Where : Output_Stream.Object) is



        -- ......................................................
        function Places_Image (Value : Object) return String is
            use Places_Facilities;
        begin  
            if Have_Same_Type (Value, On_Heap) then
                return Places'Image (Get (Value));
            else
                return " BOX " & Integer'Image (Get (Value));  
            end if;
        end Places_Image;

        function Actions_Image (Value : Object) return String is
            use Actions_Facilities;
        begin
            return Actions'Image (Get (Value));
        end Actions_Image;

        function Booleans_Image (Value : Object) return String is
            use Booleans_Facilities;
        begin
            return Booleans'Image (Get (Value));
        end Booleans_Image;

        function States_Image (Value : Object) rturn String is
            use States_Facilities;
        begin
            return States'Image (Get (Value));
        end States_Image;
        -- ......................................................
        function Brick_Frames_Image
                    (For_Slot : Brick_Slots; Value : Object) return String is
        begin  
            case For_Slot is  
                when Size =>
                    return Integer'Image (Get (Value));
                when Place =>
                    return Places_Image (Value);
            end case;
        end Brick_Frames_Image;

        function Robot_Frames_Image
                    (For_Slot : Robot_Slots; Value : Object) return String is
        begin
            case For_Slot is
                when Action =>
                    return Actions_Image (Value);
                when Working =>
                    return Booleans_Image (Value);
                when Identifier =>
                    return Get (Value);
            end case;
        end Robot_Frames_Image;

        function Box_Frames_Image
                    (For_Slot : Box_Slots; Value : Object) return String is
        begin
            case For_Slot is
                when Number =>  
                    return Integer'Image (Get (Value));
                when State =>
                    return States_Image (Value);
            end case;
        end Box_Frames_Image;

        -- ......................................................
        procedure Put_Brick is new Bricks.Generic_Put
                                      (Image => Brick_Frames_Image);  
        procedure Put_Robot is new Robots.Generic_Put
                                      (Image => Robot_Frames_Image);
        procedure Put_Box is new Boxes.Generic_Put (Image => Box_Frames_Image);
        -- ......................................................


    begin

        case Fact_Base.Class.Class_Name_Of (The_Fact) is
            when Brick =>
                Put_Brick (The_Fact, Where);
            when Robot =>
                Put_Robot (The_Fact, Where);  
            when Box =>
                Put_Box (The_Fact, Where);
            when Nothing =>
                null;
        end case;
    end Put;

end Bgrb2_Frames;

E3 Meta Data

    nblk1=6
    nid=6
    hdr6=a
        [0x00] rec0=20 rec1=00 rec2=01 rec3=060
        [0x01] rec0=00 rec1=00 rec2=04 rec3=002
        [0x02] rec0=1a rec1=00 rec2=02 rec3=034
        [0x03] rec0=1a rec1=00 rec2=03 rec3=062
        [0x04] rec0=0d rec1=00 rec2=05 rec3=000
        [0x05] rec0=43 rec1=37 rec2=3a rec3=017
    tail 0x2174fde7a867b70de3a1c 0x42a00088462063c03
Free Block Chain:
  0x6: 0000  00 00 00 ad 80 03 61 67 65 03 00 3c 20 20 20 20  ┆      age  <    ┆