|
|
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: 6144 (0x1800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Initialize_Rcf, seg_0064ca
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Debug_Tools;
with Directory_Tools;
with Error_Reporting;
with Io;
with Log;
with Error_Reporting;
with Profile;
with Program;
with Simple_Status;
with String_Utilities;
with System_Utilities;
procedure Initialize_Rcf (Target_File_Name : String :=
"!Machine.Rcf_Targets") is
Target_File : Io.File_Type;
Register_Context : constant String :=
"!Targets.Implementation.Rcf_Customization";
Job : Program.Job_Id;
Condition : Program.Condition;
Rcf_Name : constant String := "Rcf_Compiler";
Delay_Count : Natural := 0;
Rcf_Compiler_Failure : exception;
use Directory_Tools;
begin
Program.Create_Job
("""!Targets.Implementation.Rcf_User_Interface'Spec_View.Units"".Start_Rcf_Main",
Job, Condition,
Options => "output => !Machine.Error_Logs.Rcf_Compiler_Log");
if Program.Started_Successfully (Condition) then
while String_Utilities.Locate
(Rcf_Name, System_Utilities.Job_Name (Job)) = 0 loop
Delay_Count := Delay_Count + 1;
if Delay_Count > 60 then
raise Rcf_Compiler_Failure;
end if;
delay 2.0;
end loop;
Log.Put_Line ("Rcf Compiler Started", Profile.Positive_Msg);
else
raise Rcf_Compiler_Failure;
end if;
if Object.Is_Ok (The_Object => Naming.Resolution (Target_File_Name)) then
Io.Open (File => Target_File,
Mode => Io.In_File,
Name => Target_File_Name);
while not Io.End_Of_File (Target_File) loop
declare
Stripped_Target : constant String :=
String_Utilities.Strip (Io.Get_Line (Target_File));
begin
Program.Create_Job
(Program.Current
(Subsystem => Register_Context & "." & Stripped_Target,
Unit => Stripped_Target & ".Register",
Activity => "!Machine.Release.Current.Activity"),
Job, Condition,
Context => Register_Context);
if Program.Started_Successfully (Condition) then
Program.Wait_For (Job);
Log.Put_Line ("Registered Rcf target " & Stripped_Target);
else
Log.Put_Line ("Failed To Register", Profile.Error_Msg);
Error_Reporting.Report_Error
(Caller => "!Machine.Initialize_Rcf",
Reason => Error_Reporting.Create_Condition_Name
("Unable to register rcf target " &
Stripped_Target, Error_Reporting.Warning),
Explanation => Simple_Status.Name (Condition));
end if;
end;
end loop;
Io.Close (Target_File);
else
Error_Reporting.Report_Error
(Caller => "!Machine.Initialize_Rcf",
Reason => Error_Reporting.Create_Condition_Name
("No Rcf targets will be registered",
Error_Reporting.Warning),
Explanation => "Bad target file name: " & Target_File_Name);
end if;
exception
when Rcf_Compiler_Failure =>
Error_Reporting.Report_Error
(Caller => "!Machine.Initialize_Rcf",
Reason => Error_Reporting.Create_Condition_Name
("Unable to start rcf", Error_Reporting.Problem),
Explanation => Simple_Status.Name (Condition));
when others =>
Error_Reporting.Report_Error
(Caller => "!Machine.Initialize_Rcf",
Reason => Error_Reporting.Create_Condition_Name
("Unhandled_Exception", Error_Reporting.Problem),
Explanation => Debug_Tools.Get_Exception_Name (True, True));
end Initialize_Rcf;
nblk1=5
nid=0
hdr6=a
[0x00] rec0=22 rec1=00 rec2=01 rec3=004
[0x01] rec0=18 rec1=00 rec2=02 rec3=036
[0x02] rec0=12 rec1=00 rec2=03 rec3=03e
[0x03] rec0=15 rec1=00 rec2=04 rec3=074
[0x04] rec0=03 rec1=00 rec2=05 rec3=000
tail 0x2150156b881bfa51d397a 0x42a00088462060003