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

⟦ab3583f77⟧ Ada Source

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

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 Window_Io;
with Bounded_String;
package body Box_Display is

    Graphics_Set : constant Window_Io.Font :=
       Window_Io.Font'(Window_Io.Graphics, Window_Io.Vanilla);

    function Make (Height : Natural;  
                   Width  : Natural;  
                   Label  : String) return Box is
        Return_Box : Box;
    begin
        Return_Box.Height := Height;
        Return_Box.Width  := Width;
        Bounded_String.Copy (Return_Box.Label, Label);
        return Return_Box;
    end Make;

    function Height (A_Box : Box) return Natural is
    begin
        return A_Box.Height;
    end Height;

    function Width (A_Box : Box) return Natural is
    begin
        return A_Box.Width;
    end Width;

    function Label (On_Box : Box) return String is
    begin
        return Bounded_String.Image (On_Box.Label);
    end Label;

    procedure Display (The_Box   : Box;
                       In_Window : Window_Io.File_Type
                       At_Line   : Window_Io.Line_Number;
                       At_Column : Window_Io.Column_Number) is
    begin
        Window_Io.Position_Cursor (In_Window, At_Line, At_Column);
        Window_Io.Overwrite (In_Window, "l", Graphics_Set);

        for I in 1 .. The_Box.Width loop
            Window_Io.Overwrite (In_Window, "q", Graphics_Set);
        end loop;

        Window_Io.Overwrite (In_Window, "k", Graphics_Set);

        Window_Io.Position_Cursor (In_Window, At_Line + 1, At_Column);

        for I in 1 .. The_Box.Height loop
            Window_Io.Overwrite (In_Window, "x", Graphics_Set);
            Window_Io.Move_Cursor (In_Window, 1, -1);
        end loop;

        Window_Io.Position_Cursor (In_Window, At_Line + 1,
                                   At_Column + The_Box.Width + 1);

        for I in 1 .. The_Box.Height loop
            Window_Io.Overwrite (In_Window, "x", Graphics_Set);
            Window_Io.Move_Cursor (In_Window, 1, -1);
        end loop;

        Window_Io.Position_Cursor
           (In_Window, At_Line + The_Box.Height + 1, At_Column);
        Window_Io.Overwrite (In_Window, "m", Graphics_Set);

        for I in 1 .. The_Box.Width loop
            Window_Io.Overwrite (In_Window, "q", Graphics_Set);
        end loop;

        Window_Io.Overwrite (In_Window, "j", Graphics_Set);

        Window_Io.Position_Cursor (In_Window, At_Line + 1, At_Column + 1);
        Window_Io.Overwrite
           (In_Window, Bounded_String.Image (The_Box.Label), Window_Io.Normal);

        for I in 1 .. The_Box.Width - Bounded_String.Length (The_Box.Label) loop
            Window_Io.Overwrite (In_Window, ' ', Window_Io.Normal);
        end loop;
    end Display;
end Box_Display;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=24 rec1=00 rec2=01 rec3=06c
        [0x01] rec0=00 rec1=00 rec2=04 rec3=002
        [0x02] rec0=19 rec1=00 rec2=02 rec3=052
        [0x03] rec0=16 rec1=00 rec2=03 rec3=001
    tail 0x217002a58815c6756d286 0x42a00088462061e03