|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6144 (0x1800)
Types: TextFile
Names: »twriteerror«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦0b817e319⟧ »ctramos«
└─⟦this⟧
write error messages 1982.03.29
Anders Lindgård
:1: error messages: trim variable
integer size_error_message;
:2: error message: initialize trim
size_error_message:=200;
:4: error message: global variables and procedures;
algol list.on;
long array error_texts(1:sizeerrormessage);
long array field error_ready,error_syntax,error_not_allowed,
error_no_core,
error_no_buffers,error_no_areas,error_no_internals,
error_process_unknown,error_process_exists,
error_catalog_error,error_area_unknown,
error_area_reserved,error_program_too_big,
error_area_error,error_device_unknown,
error_device_reserved,error_not_implemented,
error_bs_claims_exceeded,error_bs_device_unknown,
error_name_unknown,error_no_entries_in_maincat,
error_illegal_priority,error_program_name_unknown,
error_name_conflict,
error_result_impossible,error_job_file_unknown,
error_job_number_not_found;
procedure init_error_text(e);
long array e;
begin
integer array field p,max_error;
integer i,j;
integer array f(1:sizeerrormessage);
array field t;
long array field lf;
<* an error record lookup like this:
+0 param(1)
+2 param(2)
+4 param(3)
+6 error text
where the value of param indicates:
param(i)=<=0 dummy
1 integer
>1 reference to a text
*>
cleararray(e);
j:=1;
i:=t:=f(j):=error_ready:=6; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:ready:>);
i:=t:=f(j):=error_syntax:=12+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:***syntax:>);
i:=t:=f(j):=error_not_allowed:=16+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:not allowed:>);
i:=t:=f(j):=error_no_core:=16+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:no core:>);
i:=t:=f(j):=error_no_buffers:=16+i; j:=j+1; p:=i-6;
e.p(1):=1;e.p(2):=e.p(3):=-1; movestring(e.t,1,<:no buffers:>);
i:=t:=f(j):=error_no_areas:=16+i; j:=j+1; p:=i-6;
e.p(1):=-1;e.p(2):=1;e.p(3):=-1; movestring(e.t,1,<:no areas:>);
i:=t:=f(j):=error_no_internals:=16+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=-1;e.p(3):=1; movestring(e.t,1,<:no internals:>);
i:=t:=f(j):=error_process_unknown:=16+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:process unknown:>);
i:=t:=f(j):=error_process_exists:=20+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:process exists:>);
i:=t:=f(j):=error_catalog_error:=20+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:catalog error:>);
i:=t:=f(j):=error_area_unknown:=20+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:area unknown:>);
i:=t:=f(j):=error_area_reserved:=16+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:area reserved:>);
i:=t:=f(j):=error_program_too_big:=20+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:program too big:>);
i:=t:=f(j):=error_area_error:=20+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:area error:>);
i:=t:=f(j):=error_device_unknown:=16+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:device unknown:>);
i:=t:=f(j):=error_device_reserved:=20+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:device reserved:>);
i:=t:=f(j):=error_not_implemented:=20+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:not implemented:>);
i:=t:=f(j):=error_bs_claims_exceeded:=20+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:bs claims exceded:>);
i:=t:=f(j):=error_bs_device_unknown:=20+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:bs device unknown:>);
i:=t:=f(j):=error_name_unknown:=20+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:name unknown:>);
i:=t:=f(j):=error_no_entries_in_maincat:=20+i;j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:no entries in main catalog:>);
i:=t:=f(j):=error_illegal_priority:=32+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:illegal priority:>);
i:=t:=f(j):=error_program_name_unknown:=20+i; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:progran name unknown:>);
i:=t:=f(j):=error_name_conflict:=i+28; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:name conflict:>);
i:=t:=f(j):=error_result_impossible:=i+24; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:result impossible:>);
i:=t:=f(j):=error_job_file_unknown:=i+20; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:job file unknown:>);
i:=t:=f(j):=error_job_number_not_found:=i+20; j:=j+1; p:=i-6;
e.p(1):=e.p(2):=e.p(3):=-1; movestring(e.t,1,<:job number not found:>);
<*+2*>
if testop(6) then
begin
write(out,"nl",1,<:initerror: size:>,(t+20)//4+1);
for i:=1 step 1 until j-1 do
begin
lf:=f(i);
write(out,"nl",1,i,"sp",1,true,30,e.lf);
end;
write(out,"nl",2);
outendcur(0);
end;
<*-2*>
end init error;
procedure writeerror(z,error,auxerror);
long array field error;
zone z;
integer array auxerror;
begin
long array field lf;
integer array field p;
p:=error-6;
write(z,errortexts.error);
if error=error_bs_claims_exceeded then
begin
for i:=1 step 1 until no_of_bs do
begin
if auxerror(i)>0 then
begin
lf:=i*12-12;
write(z,"nl",1,"sp",2,true,7,usercatbs.lf);
end;
end for;
end error=bsclaim else
begin
for i:=1,2,3 do
begin
if errortexts.p(i)>0 then
begin
if errortexts.p(i)=1 then write(z,auxerror(i)) else
begin
lf:=errortexts.p(i);
write(z,"sp",1,auxerror.lf);
end text;
end param;
end for;
end error<>bs;
end write error;
algol list.off;
:5: error messages program
init_error_text(errortexts);
▶EOF◀