|
|
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: 10752 (0x2a00)
Types: TextFile
Names: »stastudtxt «
└─⟦9ccaf6601⟧ Bits:30008165 Bånd med SW8000 kildetekst/release værktøjer
└─⟦40b1eb8cd⟧
└─⟦this⟧ »stastudtxt «
begin
integer field i,t,s,c,f,j,ver1,ver2;
integer type,l,time,coru,fourth,old,e,file,block,rest,segno,top_seg,low_seg,
lno,maxno,p,q,last_rec,first_rec,x,y,masker;
long field st,tim;
integer array tail(1:10),m_val(1:30,1:30);
long min_time;
boolean ch,stk,eb,stop,outfile;
boolean array maske(1:30,1:30);
long array foname,finame(1:3);
real r,v;
real array txt(1:300);
zone z(128,1,stderror);
procedure initmaske;
begin
boolean end_init,end_felt,end_maske;
integer c,i,j,mno,fno,p;
end_init:=false;
repeat
write(out,<:<10>(l,c,m,g,f) -> :>); setposition(out,0,0);
skip_sp(c);
i:=c; while i<>10 do readchar(in,i); <* skip resten af linien *>
if c = 'l' then begin <* list masker *>
if masker=0 then
write(out,<:ingen masker <10>:>)
else begin
write(out,<: :>,
<: type, coru, fourth, p1, p2, p3, p4<10>:>);
for i:=1 step 1 until masker do begin
write(out,<:<10>maske :>,<< dd>,i,<: : :>);
for j:=1 step 1 until 7 do
if maske(i,j) then
write(out,<< ddddd>,m_val(i,j),<:, :>)
else
write(out,<: , :>);
end;
end;
end
else
if c = 'c' then begin <* clear maske *>
for i:=1 step 1 until 30 do
for j:=1 step 1 until 30 do maske(i,j):=false;
masker:=0;
end
else
if c = 'm' then begin <* sæt maske *>
mno:=0;
write(out,<: :>,
<: type, coru, fourth, p1, p2, p3, p4<10>:>);
end_maske:=false;
repeat <* et gennemløb for hver maske *>
fno:=0;
mno:=mno+1;
write(out,<:maske :>,<< d>,mno,<: - :>); setposition(out,0,0);
end_felt:=false;
repeat <* et gennemløb for hvert felt *>
skip_sp(c);
if c<>10 then repeatchar(in);
if c = 10 then begin
if mno-1>masker then masker:=mno-1;
if fno=0 then
end_maske:=end_felt:=true
else
end_felt:=true;
end
else
if c = '*' then begin <* tom felt *>
fno:=fno+1;
maske(mno,fno):=false;
end
else
if c<'0' or c>'9' then begin
write(out,<:*** forkert felt<10>:>);
mno:=mno-1;
end
else
begin
read(in,p); repeatchar(in);
fno:=fno+1;
maske(mno,fno):=true;
m_val(mno,fno):=p;
end;
until end_felt;
until end_maske;
end
else
if c = 'g' then
end_init:=true
else
if c = 'f' then
goto FIN;
until end_init;
end;
procedure skip_sp(c); integer c;
begin
repeat
readchar(in,c);
until c<>32;
end;
procedure skip(no); value no; integer no;
begin
integer i;
setposition(z,0,0);
rest:=inrec6(z,4);
segno:=0;
lno:=0;
for i:=1 step 1 until no do next(false);
end;
procedure skriv(zout); zone zout;
begin
integer field i;
write(zout,<<dddd>,lno,<:. :>);
if type<221 then write(zout,string txt(type))
else write(zout,<: :>);
write(zout,<<dddd>,type,<: - :>);
write(zout,<<ddddddd>,time);
write(zout,<< ddd>,coru extract 12,<:/:>);
i:=coru shift (-12);
if i < 7 then
write(zout, case i+1 of
( <:C,:>, <:D,:>, <:T,:>, <:M,:>, <:W,:>, <:P,:>, <:R,:> ) )
else write(zout,<< d>,i);
write(zout, << dddddd>,fourth,<: : :>);
for i:=2 step 2 until l do begin
write(zout,<< -ddddddd>,z.i);
if i mod 8=0 and i<l then write(zout,<:<10>:>,false add 32,45);
end;
outchar(zout,10);
end;
procedure next(prt);
value prt; boolean prt;
begin
rep:
<* write(out,<:<10>** rest = :>,<< d>,rest,<:<10>:>); *>
if rest = 0 then begin
if segno = 0 then
segno:=low_seg
else begin
segno:=segno+1;
if segno=top_seg then segno:=1;
if segno=low_seg then goto FIN;
end;
<* write(out,<:<10>** seg = :>,<< d>,segno,<:<10>:>); *>
setposition(z,0,segno);
rest:=inrec6(z,4);
if z.tim = 0 then begin
rest:=inrec6(z,rest);
goto rep;
end;
end;
if rest<8 then i:=rest else i:=8;
rest:=inrec6(z,i);
type := z.t extract 12;
if type = 0 then
begin
if rest=0 then goto rep;
rest:=inrec6(z,rest);
goto rep
end;
l:=z.t shift (-12);
time:=z.s;
coru:=z.c;
fourth:=z.f;
if l>rest then begin
write(out,<:<10>trouble :>,l,rest,<:<10>:>);
inrec6(z,rest);
goto rep;
end;
rest:=inrec6(z,l);
if type=1 then begin
if prt then begin
r:=z.st/10000;
write(out,<:<10>start - up :>,
<< dd dd dd>,systime(2,r,r),r,
<:<10>version :>,z.ver1,z.ver2);
i:=2; write(out,<:<10>first code = :>,<< ddddddd>,z.i);
i:=12; write(out,<:<10>first proc = :>,<< ddddddd>,z.i);
i:=14; write(out,<:<10>last proc = :>,<< ddddddd>,z.i);
write(out,false add 10,2);
end;
goto rep
end;
lno:=lno+1;
end next;
t:=2; s:=4; c:=6; f:=8;
st:=6; ver1:=8; ver2:=10; old:=0;
tim:=4; maxno:=1; outfile:=false;
stop:=false;
for x:=1 step 1 until 30 do
for y:=1 step 1 until 30 do maske(x,y):=false;
masker:=0;
for i:=1 step 1 until 220 do txt(i):=real( case i of (
<* 1 *> <:start-up:>,<:start-co:>,<:start :>,<:wait :>,<:pass :>,
<* 6 *> <:inspect :>,<:csendmes:>,<:cwaitans:>,<:exit cwa:>,<:cregret :>,
<* 11 *> <:signal :>,<:wait sem:>,<:exit ws :>,<:send let:>,<:inspectm:>,
<* 16 *> <:wait let:>,<:exit wl :>,<:send mes:>,<:wait buf:>,<:exit wb :>,
<* 21 *> <:rel buf :>,<:exit :>,<:answer :>,<:answer a:>,<:message :>,
<* 26 *> <:timer sc:>,<:mes arri:>,<:att answ:>,<:tem mess:>,<:rem ans :>,
<* 31 *> <:creat co:>,<:remov co:>,<:g open :>,<:g lock :>,<:exit gl :>,
<* 36 *> <:wait sle:>,<:exit wsl:>,<:get buf :>,<: :>,<: :>,
<* 41 *> <: :>,<: :>,<: :>,<: :>,<: :>,
<* 46 *> <: :>,<: :>,<: :>,<: :>,<:crt link:>,
<* 51 *> <:rem link:>,<:adj link:>,<:put op :>,<:check op:>,<:releasop:>,
<* 56 *> <:get spoo:>,<:get free:>,<:adjust :>,<:rel_cte :>,<:seg io :>,
<* 61 *> <:look nam:>,<:in mcl n:>,<:rem mcln:>,<:get mseg:>,<: :>,
<* 66 *> <:next :>,<:c spoola:>,<:r spoola:>,<:seg ispo:>,<:ext spoo:>,
<* 71 *> <:cut area:>,<:move :>,<:w-error :>,<: :>,<:new term:>,
<* 76 *> <:searchth:>,<:in sess :>,<:out sess:>,<:unlink s:>,<:get tdat:>,
<* 81 *> <:link th :>,<:ulink th:>,<:link ph :>,<:ulink ph:>,<: :>,
<* 86 *> <: :>,<: :>,<: :>,<: :>,<: :>,
<* 91 *> <: :>,<: :>,<: :>,<: :>,<: :>,
<* 96 *> <: :>,<: :>,<: :>,<:get abs :>,<: :>,
<* 101*> <: :>,<:push :>,<:pop :>,<:crt mcl :>,<:var addr:>,
<* 106*> <:alloc va:>,<:del var :>,<:set var :>,<:wait :>,<:wait op :>,
<* 111*> <:wait ter:>,<:tasc mes:>,<:s-att :>,<:rem ph :>,<:rem th l:>,
<* 116*> <:crt user:>,<:crt ph :>,<:mcl exit:>,<:term th :>,<:direct :>,
<* 121*> <:input op:>,<:output o:>,<:sim in :>,<:ctrl op :>,<:cont mcl:>,
<* 126*> <:answer i:>,<:f8000 in:>,<:send f8 :>,<:f8 read :>,<:term s-w:>,
<* 131*> <:signon :>,<:to_from :>,<: :>,<: :>,<: :>,
<* 136*> <: :>,<: :>,<: :>,<: :>,<:init_td :>,
<* 141*> <:c_read :>,<:c_write :>,<:get t ad:>,<:comp txt:>,<:move txt:>,
<* 146*> <:outtext :>,<:c_outtxt:>,<:write :>,<:erase :>,<:cursor :>,
<* 151*> <:in_text :>,<:rd_char :>,<:rd pass :>,<:strip nl:>,<:strip sp:>,
<* 156*> <: :>,<: :>,<: :>,<: :>,<:run mcl :>,
<* 161*> <:end_th :>,<:ex err 1:>,<:ex err 2:>,<:ex err 3:>,<: :>,
<* 166*> <: :>,<: :>,<: :>,<: :>,<:next op :>,
<* 171*> <: :>,<: :>,<: :>,<: :>,<: :>,
<* 176*> <: :>,<: :>,<: :>,<: :>,<: :>,
<* 181*> <:lette.th:>,<:sear.th :>,<:op_mes :>,<:crt ph :>,<: :>,
<* 186*> <: :>,<:start rm:>,<: :>,<: :>,<: :>,
<* 191*> <: :>,<: :>,<: :>,<: :>,<: :>,
<* 196*> <: :>,<: :>,<: :>,<: :>,<:i sysm :>,
<* 201*> <:in strg :>,<:in point:>,<:gen sysm:>,<:w sysm :>,<:find ses:>,
<* 206*> <:search p:>,<:new pass:>,<:new ses :>,<:rem ses :>,<:brk ses :>,
<* 211*> <:kill out:>,<:send att:>,<:get char:>,<: :>,<: :>,
<* 216*> <: :>,<: :>,<: :>,<:start sm:>,<:goto ac :>));
write(out,<:fil navn : :>);
setposition(out,0,0);
readstring(in,foname,1);
open(z,4,foname,0);
monitor(42,z,i,tail);
top_seg:=tail(1);
min_time:= (extend (-1)) shift (-1);
setposition(z,0,1);
for i:=1 step 1 until top_seg-1 do begin
inrec6(z,512);
if min_time > z.tim and z.tim<>0 then begin
low_seg:=i;
min_time:=z.tim;
end;
end;
<* tæl antal test records *>
setposition(z,0,0);
rest:=inrec6(z,4);
segno:=0;
count:
next(false);
maxno:=maxno+1;
if type<>1023 then goto count;
setposition(z,0,0);
rest:=inrec6(z,4);
segno:=0;
next(true);
write(out,<:<10>Antal test records = :>,<< ddd>,maxno,<:<10>:>);
repeat
initmaske;
write(out,<:Fra :>); setposition(out,0,0);
read(in,first_rec);
if first_rec<1 then first_rec:=1;
write(out,<:Til :>); setposition(out,0,0);
read(in,last_rec);
skip(first_rec-1);
for q:=first_rec step 1 until last_rec do begin
next(false);
if masker = 0 then
skriv(out)
else
for x:=1 step 1 until masker do begin
if maske(x,1) then begin
if m_val(x,1) <> type then goto skrv;
end;
if maske(x,2) then begin
if m_val(x,2) <> coru extract 12 then goto skrv;
end;
if maske(x,3) then begin
if m_val(x,3) <> fourth then goto skrv;
end;
i:=0;
for p:=4 step 1 until 10 do begin
i:=i+2;
if maske(x,p) then begin
if (m_val(x,p) <> z.i) then goto skrv;
end;
end;
skriv(out);
skrv:
end;
if type = 1023 then goto try_next;
end;
try_next:
until false;
FIN:
end;
▶EOF◀