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 - metrics - download

⟦921952735⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Gui_Interface, seg_00dbec

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 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;

E3 Meta Data

    nblk1=4
    nid=3
    hdr6=6
        [0x00] rec0=22 rec1=00 rec2=01 rec3=056
        [0x01] rec0=22 rec1=00 rec2=04 rec3=070
        [0x02] rec0=20 rec1=00 rec2=02 rec3=000
        [0x03] rec0=0e rec1=00 rec2=03 rec3=000
    tail 0x2170a7f6082177cb9c912 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 00 01 77 a4 0d 5b 64 65 63 6c 61 72 61 74 69  ┆   w  [declarati┆