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

⟦b4f6b0605⟧ TextFile

    Length: 5552 (0x15b0)
    Types: TextFile
    Names: »B«

Derivation

└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 

TextFile

with Easy_X;
with Bounded_String;
with Msg_Report;
with Turtle_Class;
with Object;
with Message;
with Arguments;
with Scanner;
with Symbol_Table;

use Object;

procedure Test_Turtle (Display : String) is

    Identifier : Scanner.B_String;
    Msg : Message.Selector;
    Arg_List : Arguments.List;
    Turtle_Object, Int_Object, Recep_Object : Object.Reference;
    I, Turtle_Value : Integer;

begin
    Msg_Report.Tracing_On;
    Symbol_Table.Create;
    Bounded_String.Copy (Identifier, Turtle_Class.Predefined_Turtle);
    if Symbol_Table.Is_Found (Identifier) then
        Turtle_Object := Symbol_Table.Get_Info (Identifier);
    end if;

    -- =======================================================================

    Message.Copy (Msg, "Tonx");
    Recep_Object := Turtle_Class.Send (Turtle_Object, Msg);
    Msg_Report.Information
       ("ton x ? => " & Integer'Image (Object.Identificator (Recep_Object)));

    -- =======================================================================

    Message.Copy (Msg, "Tonyy");
    Recep_Object := Turtle_Class.Send (Turtle_Object, Msg);
    Msg_Report.Information
       ("ton y ? => " & Integer'Image (Object.Identificator (Recep_Object)));

    -- =======================================================================

    Msg_Report.Information ("ton x <= " & Integer'Image (10));
    Message.Copy (Msg, "Tonx:");
    Int_Object := Object.Create (C_Integer, 10);
    Arg_List := Arguments.Void_Arguments;
    Arguments.Write (Arg_List, Int_Object);
    Recep_Object := Turtle_Class.Send (Turtle_Object, Msg, Arg_List);
    Message.Copy (Msg, "Tonx");
    Recep_Object := Turtle_Class.Send (Turtle_Object, Msg);
    Msg_Report.Continue ("ton x ? => " &
                         Integer'Image (Object.Identificator (Recep_Object)));

    -- =======================================================================

    Msg_Report.Information ("ton y <= " & Integer'Image (100));
    Message.Copy (Msg, "Tony:");
    Int_Object := Object.Create (C_Integer, 100);
    Arg_List := Arguments.Void_Arguments;
    Arguments.Write (Arg_List, Int_Object);
    Recep_Object := Turtle_Class.Send (Turtle_Object, Msg, Arg_List);
    Message.Copy (Msg, "Tony");
    Recep_Object := Turtle_Class.Send (Turtle_Object, Msg);
    Msg_Report.Continue ("ton y ? => " &
                         Integer'Image (Object.Identificator (Recep_Object)));

    -- =======================================================================

    Symbol_Table.Image_Table;
    Turtle_Class.Image_Table;


    Easy_X.Open (Display);

    loop
        case Easy_X.Next_Event is

            when Easy_X.Update =>
                -- tortue vaenx:400 y:400
                Arg_List := Arguments.Void_Arguments;
                Int_Object := Object.Create (C_Integer, 400);
                Arguments.Write (Arg_List, Int_Object);
                Int_Object := Object.Create (C_Integer, 400);
                Arguments.Write (Arg_List, Int_Object);

                Message.Copy (Msg, "Vaenx:y:");
                Recep_Object := Turtle_Class.Send
                                   (Turtle_Object, Msg, Arg_List);

                -- tortue Baissetaplume
                Message.Copy (Msg, " Baissetaplume");
                Recep_Object := Turtle_Class.Send (Turtle_Object, Msg);

                I := 0;

                while (I < 360) loop

                    Msg_Report.Information ("angle = " & Integer'Image (I));

                    -- tortue tataille:<(I / 120) + 1)>
                    Arg_List := Arguments.Void_Arguments;
                    Int_Object := Object.Create (C_Integer, (I / 120) + 1);
                    Arguments.Write (Arg_List, Int_Object);

                    Message.Copy (Msg, "Tataille:");
                    Recep_Object := Turtle_Class.Send
                                       (Turtle_Object, Msg, Arg_List);

                    -- tortue avance: 200
                    Arg_List := Arguments.Void_Arguments;
                    Int_Object := Object.Create (C_Integer, 200);
                    Arguments.Write (Arg_List, Int_Object);

                    Message.Copy (Msg, "Avance:");
                    Recep_Object := Turtle_Class.Send
                                       (Turtle_Object, Msg, Arg_List);

                    -- tortue vaenx:400 y:400
                    Arg_List := Arguments.Void_Arguments;
                    Int_Object := Object.Create (C_Integer, 400);
                    Arguments.Write (Arg_List, Int_Object);
                    Int_Object := Object.Create (C_Integer, 400);
                    Arguments.Write (Arg_List, Int_Object);

                    Message.Copy (Msg, "Vaenx:y:");
                    Recep_Object := Turtle_Class.Send
                                       (Turtle_Object, Msg, Arg_List);

                    I := I + 10;

                    -- tortue Tonangle: <I>
                    Arg_List := Arguments.Void_Arguments;
                    Int_Object := Object.Create (C_Integer, I);
                    Arguments.Write (Arg_List, Int_Object);

                    Message.Copy (Msg, "Tonangle:");
                    Recep_Object := Turtle_Class.Send
                                       (Turtle_Object, Msg, Arg_List);
                end loop;

            when Easy_X.Button_Up =>
                exit;

            when Easy_X.Button_Down =>
                null;

        end case;
    end loop;

    Easy_X.Close;

    Turtle_Class.Image_Table;

    Msg_Report.Information ("FIN DU TEST !!!");

end Test_Turtle;