|
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, function Get_Next, seg_0043e9, separate Ct_Hierarchy
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with New_Keys; separate (Ct_Hierarchy) function Get_Next (This_Map : Display_Map; In_This_Window : Window) return Ada_Program.Element is function "=" (Left, Right : Window_Io.Raw.Key) return Boolean renames Window_Io.Raw."="; type Locations is (Element_Row, Parents_Row, Children_Row); Location : Locations := Element_Row; Position : Positive := 1; Inverse_Bold : constant Window_Io.Font := (Window_Io.Plain, (Inverse => True, others => False)); The_Stream : Window_Io.Raw.Stream_Type; Key_Hit : Window_Io.Raw.Key; Current_Box : Object := This_Map.Element; begin Window_Io.Raw.Open (The_Stream); loop -- highlight the current element Window_Io.Position_Cursor (File => In_This_Window, Line => Current_Box.Line, Column => Current_Box.Col + Ub_Strings.Length (Current_Box.Name) - 1, Offset => 0); Window_Io.Position_Cursor (File => In_This_Window, Line => Current_Box.Line, Column => Current_Box.Col, Offset => 0); Window_Io.Overwrite (File => In_This_Window, Item => Ub_Strings.Image (Current_Box.Name), Image => Inverse_Bold, Kind => Window_Io.Text); -- get a key Window_Io.Raw.Get (The_Stream, Key_Hit); -- de-highlight the current element Window_Io.Position_Cursor (File => In_This_Window, Line => Current_Box.Line, Column => Current_Box.Col, Offset => 0); Window_Io.Overwrite (File => In_This_Window, Item => Ub_Strings.Image (Current_Box.Name), Image => Window_Io.Normal, Kind => Window_Io.Text); if Key_Hit = New_Keys.Left then Location := Element_Row; Current_Box := This_Map.Element; elsif Key_Hit = New_Keys.Right then Location := Element_Row; Current_Box := This_Map.Return_Option; elsif Key_Hit = New_Keys.Up then case Location is when Parents_Row => if Position > 1 then Position := Position - 1; Current_Box := This_Map.Parents (Position); end if; when Element_Row => if This_Map.Num_Parents > 0 then Location := Parents_Row; Position := This_Map.Num_Parents; Current_Box := This_Map.Parents (Position); end if; when Children_Row => if Position = 1 then Current_Box := This_Map.Element; Location := Element_Row; else Position := Position - 1; Current_Box := This_Map.Children (Position); end if; end case; elsif Key_Hit = New_Keys.Down then case Location is when Parents_Row => if Position = 1 then Location := Element_Row; Current_Box := This_Map.Element; else Position := Position + 1; Current_Box := This_Map.Parents (Position); end if; when Element_Row => if This_Map.Num_Children > 0 then Location := Children_Row; Position := 1; Current_Box := This_Map.Children (1); end if; when Children_Row => if Position < This_Map.Num_Children then Position := Position + 1; Current_Box := This_Map.Children (Position); end if; end case; elsif Key_Hit = New_Keys.Definition then exit; end if; end loop; Window_Io.Raw.Close (The_Stream); return Current_Box.Contents; end Get_Next;
nblk1=7 nid=0 hdr6=e [0x00] rec0=1d rec1=00 rec2=01 rec3=00c [0x01] rec0=00 rec1=00 rec2=07 rec3=020 [0x02] rec0=14 rec1=00 rec2=02 rec3=02c [0x03] rec0=1a rec1=00 rec2=03 rec3=01e [0x04] rec0=00 rec1=00 rec2=06 rec3=01e [0x05] rec0=18 rec1=00 rec2=04 rec3=048 [0x06] rec0=16 rec1=00 rec2=05 rec3=000 tail 0x217001696815c634c096c 0x42a00088462061e03