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

⟦5ac6b5795⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Class_Error, seg_03794c

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 Class_Integer;
-- with Class_Boolean;
-- with Class_String;
-- with Class_Block;
-- with class_pen;
-- with class_turtle;
-- with Class_Window;
with Message;
with Requester;
with Bounded_String;
with Easy_Y;
with Object;

package body Class_Error is

    type Flag is (Off, On);

    Tab_Flag : Flag := On;

    procedure Open (X, Y : Object.Index; Screen : String) is
        use Object;
    begin
        Easy_Y.Put_Title (Window => Error_Window,
                          Title => Bounded_String.Value ("Error", 80));
        Easy_Y.Put_Left (Window => Error_Window, Left => X);
        Easy_Y.Put_Right (Window => Error_Window, Right => Y);
        Easy_Y.Put_Width (Window => Error_Window, Width => The_Width);
        Easy_Y.Put_Height (Window => Error_Window, Height => The_Height);
        Easy_Y.Open (Display => Screen, Window => Error_Window);

        Easy_Y.Put_Font (To => Easy_Y.Small_Font);
        Easy_Y.Put_Size (Window => Error_Window, Size => 1);

        Easy_Y.Update;

        Column := 0;
        Line_Number := 1;
        Line_Max := The_Height / 16;
    end Open;


    procedure Close is
    begin
        Easy_Y.Close (Window => Error_Window);
    end Close;


    procedure New_Line (Number : Object.Index := 1) is
        use Object;
        Blanck : String (1 .. 80) := (1 .. 80 => ' ');
        Button : Message.Unary;
        Result : Object.Index;
    begin
        Column := 0;
        Line_Number := Line_Number + Number;
        if Line_Number >= Line_Max then
            Line_Number := 1;

            Message.Put (This_Name => Bounded_String.Value ("Suite", 80),
                         Into => Button);
            Requester.Open (100, 850, "agave", Button,
                            Bounded_String.Value ("Cliquez pour la suite", 80));
            Result := Requester.Choice (Button);
            Message.Free (Button);

            for I in 0 .. Line_Max * 2 loop
                Easy_Y.Set_Display (Window => Error_Window);
                Easy_Y.Print (1, I * 10, Bounded_String.Value (Blanck, 80));
            end loop;
        end if;
        Tab_Flag := On;
    end New_Line;


    procedure Put (The_String : String) is
        use Object;
    begin
        Easy_Y.Set_Display (Window => Error_Window);
        Easy_Y.Print (Column * 8, Line_Number * 16,
                      Bounded_String.Value (The_String, 80));
        Column := Column + Object.Index (The_String'Length);
    end Put;


    procedure Put_Line (The_String : String) is
        use Object;  
    begin  
        Easy_Y.Set_Display (Window => Error_Window);
        Easy_Y.Print (Column, Line_Number * 16,
                      Bounded_String.Value (The_String, 80));
        New_Line;
    end Put_Line;

end Class_Error;

E3 Meta Data

    nblk1=7
    nid=6
    hdr6=6
        [0x00] rec0=21 rec1=00 rec2=01 rec3=02a
        [0x01] rec0=22 rec1=00 rec2=07 rec3=014
        [0x02] rec0=1e rec1=00 rec2=05 rec3=000
        [0x03] rec0=1d rec1=00 rec2=07 rec3=07e
        [0x04] rec0=01 rec1=00 rec2=04 rec3=00c
        [0x05] rec0=17 rec1=00 rec2=06 rec3=03e
        [0x06] rec0=0a rec1=00 rec2=03 rec3=001
    tail 0x21735123e84e54684464b 0x42a00088462060003
Free Block Chain:
  0x6: 0000  00 03 00 0e 80 05 72 72 6f 72 3b 05 00 00 00 00  ┆      rror;     ┆
  0x3: 0000  00 04 00 d6 80 0a 77 5f 43 6c 61 73 73 20 3d 3e  ┆      w_Class =>┆
  0x4: 0000  00 02 00 05 80 02 20 20 02 20 04 20 06 79 20 28  ┆             y (┆
  0x2: 0000  00 00 00 06 80 03 53 65 74 03 69 6e 20 30 20 2e  ┆      Set in 0 .┆