|
|
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: 4608 (0x1200)
Types: TextFile
Names: »tlistmtpool«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦2cfec6318⟧ »incsys«
└─⟦this⟧
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦70d387dbb⟧ »incsys«
└─⟦this⟧
listmtpool=algol
begin
message vk 1981.02.06 listmtpool ;
comment
*******************************************************
* *
* This program is used to list the mtpool. It can be *
* called in the following way : *
* *
* <outfile>=listmtpool *
* *
* Errormessages are : *
* *** Mtpool does not exist *
* *** Connect error = <outres> *
* *
******************************************************* ;
boolean outp;
integer outres,i;
real array input(1:2);
real array outarr(1:3);
zone zhelp(1,1,stderror);
integer array tail(1:10);
procedure error(errorno);integer errorno;
begin
case errorno of
begin
<*1*>write(out,<:<10>Mtpool does not exist:>);
<*2*>write(out,<:<10>***Connect error = :>,outres);
end;
write(out,<:<10>list not ok :>,<:<10>:>);
goto halt;
end;
\f
procedure openout;
begin
real array outname(1:2);
outp:=true;
outname(1):=input(1);outname(2):=input(2);
fpproc(29)stack current out:(0,out,outarr);
fpproc(28)connect out:(outres,out,outname);
if outres <> 0 then
begin
outp:=false;
fpproc(30)unstack out:(0,out,outarr);
error(2);
end;
end;
procedure closeout;
begin
if outp then
begin
fpproc(34)close up:(0,out,25);
fpproc(30)unstack out:(0,out,outarr);
end;
end;
\f
integer procedure readparam(val);real array val;
begin
own integer q;
integer ik;
readparam:=0;
if q>=0 then q:=q+1;
if q=1 then
begin
ik:=system(4,1,val);
if ik = 6 shift 12 +10 then
begin
system(4,0,val);
readparam := -1;
end
else if ik<> 0 then goto p;
end
else
if q > 0 then
begin
p: ik:=system(4,q-1,val);
if ik = 0 then q := -1 else
readparam := (if i shift (-12) = 8 then 2 else 0)
+(if i extract 12 = 10 then 2 else 1)
end
end readparam;
\f
procedure list;
begin
integer ntape,i,j,k,mtrsize;
integer field antal,mttotal,mtnr,mtdate;
real array field name;
real array mtpool(1:2);
zone mtrecord(128,1,stderror);
procedure outshortclock(shortclock);
integer shortclock;
begin
real r1;
integer r;
r:=shortclock;
write(out,<: used on :>,<<zddddd.dddd>,systime(6,r,r1)+r1/1000000);
end;
mtpool(1):= real <:mtpoo:> add 108;
mtpool(2):= real <::>;
antal:=2;name:=2;mtdate:=12;mtrsize:=16;mttotal:=14;mtnr:=2;
i:=1;
open(mtrecord,4,string mtpool(increase(i)),0);
i:=monitor(42)look up entry:(mtrecord,0,tail);
if i <> 0 then error(1);
inrec6(mtrecord,2);
ntape:=mtrecord.antal;
write(out,<:<10>List of mtpool:>,<:<10>--------------:>);
for i:=1 step 1 until ntape do
begin
j:=1;inrec6(mtrecord,mtrsize);
if mtrecord.mtnr <> -1 then
begin
if mtrecord.mtnr < 10 then
write(out,<:<10> nr :>,mtrecord.mtnr)
else
write(out,<:<10> nr :>,mtrecord.mtnr);
write(out,<: :>,string mtrecord.name(increase(j)),
if mtrecord.mttotal extract 4 = 1
then <: total :> else <: daily :>);
if mtrecord.mtdate <> 0 then
outshortclock(mtrecord.mtdate) else
write(out,<: not used:>);
end;
end;
write(out,<:<10> :>,<:<10>:>);
close(mtrecord,true);
end;
outp:=false;
if readparam(input) = - 1 then openout;
list;
write(out,<:<10>:>);
if outp then closeout;
halt:
fpproc(7)end_of_program:(0,0,0);
end;
▶EOF◀