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

⟦e53b453cb⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Connect_Horizontal, seg_0046f2, separate Graphic_Lines

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



separate (Graphic_Lines)
procedure Connect_Horizontal (From_Col      : Col_Number;
                              To_Col        : Col_Number;
                              On_Line       : Line_Number;
                              Output_Window : Window_Id) is
    In_Char, Out_Char : Character;
    Left_Col          : Positive := Smaller (From_Col, To_Col);
    Right_Col         : Positive := Larger (From_Col, To_Col);

begin
    if Left_Col /= Right_Col then
        Connect_Endpoint (Line          => On_Line,
                          Col           => Left_Col,
                          Going         => Right,
                          Output_Window => Output_Window);
        for Current_Col in Left_Col + 1 .. Right_Col - 1 loop
            Window_Io.Position_Cursor (File   => Output_Window,
                                       Line   => On_Line,
                                       Column => Current_Col,
                                       Offset => 0);
            In_Char := Window_Io.Char_At (Output_Window);
            case In_Char is
                when Gc.V_Line | Gc.T_Left | Gc.T_Right =>
                    Out_Char := Gc.Intersect;
                when Gc.L_L_Corner | Gc.L_R_Corner =>
                    Out_Char := Gc.T_Up;
                when Gc.U_L_Corner | Gc.U_R_Corner =>
                    Out_Char := Gc.T_Down;
                when Gc.Dot =>  
                    Out_Char := Endpoint_Union (Output_Window => Output_Window,
                                                Include_Left  => True,
                                                Include_Right => True,
                                                Include_Up    => False,
                                                Include_Down  => False);
                when Gc.H_Line | Gc.T_Up | Gc.T_Down =>
                    Out_Char := In_Char;
                when others =>
                    Out_Char := Gc.H_Line;
            end case;  
            Window_Io.Overwrite (File  => Output_Window,
                                 Item  => Out_Char,
                                 Image => Gc.Graphics_Font,
                                 Kind  => Window_Io.Text);
        end loop;
        Connect_Endpoint (Line          => On_Line,
                          Col           => Right_Col,
                          Going         => Left,
                          Output_Window => Output_Window);
    end if;
end Connect_Horizontal;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=15 rec1=00 rec2=01 rec3=068
        [0x01] rec0=01 rec1=00 rec2=04 rec3=01e
        [0x02] rec0=13 rec1=00 rec2=02 rec3=020
        [0x03] rec0=0b rec1=00 rec2=03 rec3=001
    tail 0x217002a68815c6765405a 0x42a00088462061e03