PACKET net report DEFINES report, abgleich:
(* Version 3 (!) *)
LET reportcode = 99, abgleichcode = 98;
PROC abgleich (INT CONST ende, zwischen):
DATASPACE VAR ds := nilspace;
BOUND STRUCT (INT ende, zwischen) VAR x := ds;
x.ende := ende;
x.zwischen := zwischen;
call (father, abgleichcode, ds, rep);
INT VAR rep;
forget (ds)
END PROC abgleich;
PROC report (TEXT CONST x):
report(x,"")
END PROC report;
PROC report (TEXT CONST txt, info):
DATASPACE VAR net report := nilspace;
BOUND TEXT VAR rinfo := net report;
rinfo := date;
rinfo CAT " "+time of day +" ";
rinfo CAT name(myself)+":";
rinfo CAT txt;
INT VAR i;
FOR i FROM 1 UPTO length (info) REP
INT VAR z := code (infoSUBi) ;
IF z < 32 OR z > 126
THEN rinfo CAT "%"+text(z)+" "
ELSE rinfo CAT (infoSUBi)+" "
FI
PER;
call (father, report code , net report, reply);
INT VAR reply;
forget (net report);
END PROC report;
END PACKET net report;