|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 2118 (0x846)
Types: TextFile
Names: »B«
└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
└─⟦5cb1d1d7f⟧ »DATA«
└─⟦3b1ee7bd8⟧
└─⟦this⟧
with Text_Io;
separate (Tar)
procedure Put_Bytes (Data : System.Byte_String) is
Line : String (1 .. 80);
Count : Natural := 0;
Byte_Line : System.Byte_String (1 .. 16);
Byte_Count : Natural := 0;
type Digit_Table is array (System.Byte range 0 .. 15) of Character;
To_Digit : constant Digit_Table := ('0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
procedure Flush is
begin
Text_Io.Put_Line (Line (1 .. Count));
Count := 0;
end Flush;
procedure Put (Data : Character) is
begin
if Data in ' ' .. '~' then
Count := Count + 1;
Line (Count) := Data;
if Count = Line'Last then
Flush;
end if;
else
Put ('.');
end if;
end Put;
procedure Byte_Flush is
procedure Put (Data : System.Byte) is
begin
Put (' ');
Put (To_Digit (System."/" (Data, 16)));
Put (To_Digit (System."mod" (Data, 16)));
end Put;
begin
if Byte_Count > 0 then
for I in 1 .. Byte_Count loop
Put (Byte_Line (I));
end loop;
for I in Byte_Count + 1 .. Byte_Line'Last loop
Put (' ');
Put (' ');
Put (' ');
end loop;
Put (' ');
Put (' ');
for I in 1 .. Byte_Count loop
Put (Character'Val (System."mod" (Byte_Line (I), 128)));
end loop;
Flush;
end if;
Byte_Count := 0;
end Byte_Flush;
procedure Byte_Put (Data : System.Byte) is
begin
Byte_Count := Byte_Count + 1;
Byte_Line (Byte_Count) := Data;
if Byte_Count = Byte_Line'Last then
Byte_Flush;
end if;
end Byte_Put;
begin
if Data'Length <= 0 then
Text_Io.Put_Line ("");
else
for I in Data'Range loop
Byte_Put (Data (I));
end loop;
Byte_Flush;
end if;
end Put_Bytes;