|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 8192 (0x2000)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Put, seg_0043ea, separate Ct_Hierarchy
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Graphics_Chars;
with Graphic_Lines;
with Window_Utilities;
separate (Ct_Hierarchy)
procedure Put (This_Map : Display_Map; In_This_Window : Window) is
procedure Put (This_Object : Object; In_This_Window : Window) is
begin
Window_Io.Position_Cursor (File => In_This_Window,
Line => This_Object.Line,
Column => This_Object.Col,
Offset => 0);
Window_Io.Overwrite (File => In_This_Window,
Item => Ub_Strings.Image (This_Object.Name),
Image => Window_Io.Normal,
Kind => Window_Io.Text);
end Put;
procedure Put (This_Graphics_Char : Character;
On_This_Line : Positive;
At_This_Col : Positive;
In_This_Window : Window) is
begin
Window_Io.Position_Cursor (File => In_This_Window,
Line => On_This_Line,
Column => At_This_Col,
Offset => 0);
Window_Io.Overwrite (File => In_This_Window,
Item => This_Graphics_Char,
Image => Graphics_Chars.Graphics_Font,
Kind => Window_Io.Text);
end Put;
procedure Put_In_Box (This_Object : Object; In_This_Window : Window) is
begin
Graphic_Lines.Draw_Box
(First_Line => This_Object.Line - 1,
First_Col => This_Object.Col - 1,
Second_Line => This_Object.Line + 1,
Second_Col => This_Object.Col +
Ub_Strings.Length (This_Object.Name),
Output_Window => In_This_Window);
Put (This_Object => This_Object, In_This_Window => In_This_Window);
end Put_In_Box;
begin
Window_Utilities.Erase (In_This_Window);
Put_In_Box (This_Map.Element, In_This_Window);
Put_In_Box (This_Map.Return_Option, In_This_Window);
for I in 1 .. This_Map.Num_Parents loop
Put (This_Object => This_Map.Parents (I),
In_This_Window => In_This_Window);
end loop;
if This_Map.Num_Parents > 0 then
Put (This_Graphics_Char => Graphics_Chars.U_L_Corner,
On_This_Line => This_Map.Parents (1).Line - 1,
At_This_Col => This_Map.Parents (1).Col - 2,
In_This_Window => In_This_Window);
Put (This_Graphics_Char => Graphics_Chars.L_L_Corner,
On_This_Line => This_Map.Parents (This_Map.Num_Parents).Line + 1,
At_This_Col => This_Map.Parents (1).Col - 2,
In_This_Window => In_This_Window);
Graphic_Lines.Draw_Vertical
(From_Line => This_Map.Parents (1).Line,
To_Line => This_Map.Parents (This_Map.Num_Parents).Line,
In_Column => This_Map.Parents (1).Col - 2,
Output_Window => In_This_Window);
Graphic_Lines.Connect_Horizontal
(From_Col => This_Map.Parents (1).Col - 2,
To_Col => This_Map.Parents (1).Col - 4,
On_Line => (This_Map.Parents (1).Line +
This_Map.Parents (This_Map.Num_Parents).Line) / 2,
Output_Window => In_This_Window);
Graphic_Lines.Connect_Vertical
(From_Line => (This_Map.Parents (1).Line +
This_Map.Parents (This_Map.Num_Parents).Line) / 2,
To_Line => This_Map.Element.Line - 1,
In_Column => This_Map.Parents (1).Col - 4,
Output_Window => In_This_Window);
else
Put (This_Object => (Ada_Program.Nil_Element,
Ub_Strings.Value ("(no callers)"), 2, 11),
In_This_Window => In_This_Window);
end if;
for I in 1 .. This_Map.Num_Children loop
Put (This_Object => This_Map.Children (I),
In_This_Window => In_This_Window);
end loop;
if This_Map.Num_Children > 0 then
Put (This_Graphics_Char => Graphics_Chars.U_L_Corner,
On_This_Line => This_Map.Children (1).Line - 1,
At_This_Col => This_Map.Children (1).Col - 2,
In_This_Window => In_This_Window);
Put (This_Graphics_Char => Graphics_Chars.L_L_Corner,
On_This_Line => This_Map.Children (This_Map.Num_Children).Line + 1,
At_This_Col => This_Map.Children (1).Col - 2,
In_This_Window => In_This_Window);
Graphic_Lines.Draw_Vertical
(From_Line => This_Map.Children (1).Line,
To_Line => This_Map.Children (This_Map.Num_Children).Line,
In_Column => This_Map.Children (1).Col - 2,
Output_Window => In_This_Window);
Graphic_Lines.Connect_Horizontal
(From_Col => This_Map.Children (1).Col - 2,
To_Col => This_Map.Children (1).Col - 4,
On_Line => (This_Map.Children (1).Line +
This_Map.Children (This_Map.Num_Children).Line) / 2,
Output_Window => In_This_Window);
Graphic_Lines.Connect_Vertical
(From_Line => (This_Map.Children (1).Line +
This_Map.Children (This_Map.Num_Children).Line) / 2,
To_Line => This_Map.Element.Line + 1,
In_Column => This_Map.Children (1).Col - 4,
Output_Window => In_This_Window);
else
Put (This_Object => (Ada_Program.Nil_Element,
Ub_Strings.Value ("(no calls)"),
This_Map.Element.Line + 4, 11),
In_This_Window => In_This_Window);
end if;
end Put;
nblk1=7
nid=0
hdr6=e
[0x00] rec0=1a rec1=00 rec2=01 rec3=036
[0x01] rec0=15 rec1=00 rec2=02 rec3=01e
[0x02] rec0=18 rec1=00 rec2=03 rec3=02a
[0x03] rec0=11 rec1=00 rec2=04 rec3=094
[0x04] rec0=16 rec1=00 rec2=05 rec3=05c
[0x05] rec0=17 rec1=00 rec2=06 rec3=000
[0x06] rec0=02 rec1=00 rec2=07 rec3=000
tail 0x21500318e815c634deb50 0x42a00088462061e03