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

⟦653641a28⟧ TextFile

    Length: 2634 (0xa4a)
    Types: TextFile
    Names: »B«

Derivation

└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
    └─ ⟦6f12a12be⟧ »DATA« 
        └─⟦this⟧ 
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
    └─ ⟦d65440be7⟧ »DATA« 
        └─⟦this⟧ 

TextFile

with System;
with Text_Io;
with Xt_Interface;
with Unchecked_Conversion;
package body Gui_Interface is

    subtype File_Name_Length is Integer range 1 .. 80;

    procedure Set_Output_C (C_Output : System.Address);
    pragma Interface (C, Set_Output_C);
    pragma Linkname (Set_Output_C, "SetOutput");

    function Iter_Done_C return Integer;
    pragma Interface (C, Iter_Done_C);
    pragma Linkname (Iter_Done_C, "IterDone");

    procedure Iter_Init;
    pragma Interface (C, Iter_Init);
    pragma Linkname (Iter_Init, "IterInit");

    function Iter_Done return Boolean;

    procedure Iter_Next;
    pragma Interface (C, Iter_Next);
    pragma Linkname (Iter_Next, "IterNext");

    function Iter_Value return Character;
    pragma Interface (C, Iter_Value);
    pragma Linkname (Iter_Value, "IterValue");
    type String_Access is access String;

    function System_Address_To_String_Access is
       new Unchecked_Conversion (Source => System.Address,
                                 Target => String_Access);

    procedure Set_Output (Output : String) is
        C_Output : constant String := Output & Ascii.Nul;
    begin
        Set_Output_C (C_Output => C_Output (C_Output'First)'Address);
    end Set_Output;


    function Iter_Done return Boolean is
    begin
        if Iter_Done_C = 1 then
            return True;
        else
            return False;
        end if;
    end Iter_Done;

    function File_Name return String is
        A_File_Name : String (File_Name_Length);  
        I : Integer := 1;
    begin
        Iter_Init;
        while not Iter_Done loop
            A_File_Name (I) := Iter_Value;
            Iter_Next;
            I := I + 1;
        end loop;
        return A_File_Name (1 .. I - 1);
    end File_Name;

    procedure Set_Clock_Cursor_C;
    pragma Interface (C, Set_Clock_Cursor_C);
    pragma Linkname (Set_Clock_Cursor_C, "SetClockCursor");


    procedure Set_Clock_Cursor is
    begin
        Text_Io.Put_Line ("1");
        Set_Clock_Cursor_C;
        Text_Io.Put_Line ("2");
        if Xt_Interface.Pending then
            Xt_Interface.Next_Event;
            Text_Io.Put_Line ("a");
            Xt_Interface.Dispatch_Event;
            Text_Io.Put_Line ("b");
        end if;
        Text_Io.Put_Line ("3");

    end Set_Clock_Cursor;


    procedure Set_Arrow_Cursor_C;
    pragma Interface (C, Set_Arrow_Cursor_C);
    pragma Linkname (Set_Arrow_Cursor_C, "SetArrowCursor");


    procedure Set_Arrow_Cursor is
    begin
        Set_Arrow_Cursor_C;
        Xt_Interface.Next_Event;
        Xt_Interface.Dispatch_Event;
    end Set_Arrow_Cursor;

end Gui_Interface;