DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦84ffcfda9⟧ TextFile

    Length: 5376 (0x1500)
    Types: TextFile
    Names: »epzx«

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦this⟧ »epzx« 
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦this⟧ »epzx« 

TextFile

clear user epz
epz=set 1 disc5
scope user epz
epz=algol

RAMAN2  program: epz (Udglatning)
external procedure epz;
begin
  integer i,j,k,h,l,m,n,u,t,N,p,a,norm,max;
  real npf,tm,umax,fmax,bmin,nsum;
  array spname(1:2), maname(1:2);
  integer array sptail(1:10), matail(1:10);
  zone  sp, ma(128,1,stderror);
  for i:=1 step 1 until 10 do sptail(i):=matail(i):=0;

  write(out,<:NAME= :>); setposition(out,0,0); readstring(in,spname,1);
  write(out,<:SNAME=:>); setposition(out,0,0); readstring(in,maname,1);
  write(out,<:
a N=:>); setposition(out,0,0);; read(in,a,N);
n:=0; 
p:=2*a;

  open(sp,4,string inc(spname),0);
  if monitor(42,sp,0,sptail) <> 0 then 
  begin
    write(out,<:***:>,string inc(spname),<: unknown:>);
    goto slut;
  end;

  matail(1):=400;
  open(ma,4,string inc(maname),0);
  if monitor(42,ma,0,matail)=0 then monitor(48,ma,0,matail);
  monitor(40,ma,0,matail); monitor(50,ma,0,matail);

  inrec(sp,128); matail(1):=1; outrec(ma,128);
  matail(1):=sptail(1):=sp(1); t:=sp(2);
  tm:=sp(8); bmin:=sp(11);
  for j:=1 step 1 until 128 do ma(j):=sp(j);

begin array s(1:2*p), x(1:p+1);
    if n=0 then begin
    for i:=1 step 1 until p+1 do x(i):=1;
    norm:=p+1;
    end n=0;

    if n=1 then begin
    case a of
    begin begin end;
          begin end;
          begin for i:=1 step 1 until a+1 do
                x(i):=case i of(
                -2,3,6,7);
                for i:=1 step 1 until a do x(i+a+1):=x(a+1-i);
                norm:=21;
          end a=3;
          begin for i:=1 step 1 until a+1 do
                x(i):=case i of(
                -21,14,39,54,59);
                for i:=1 step 1 until a do x(i+a+1):=x(a+1-i);
                norm:=231;
          end a=4;
          begin for i:=1 step 1 until a+1 do
                x(i):=case i of(
                -36,9,44,69,84,89);
                for i:=1 step 1 until a do x(a+1+i):=x(a+1-i);
                norm:=429;
          end a=5;
          begin for i:=1 step 1 until a+1 do
                x(i):=case i of(
                -11,0,9,16,21,24,25);
                for i:=1 step 1 until a do x(a+1+i):=x(a+1-i);
                norm:=143;
          end a=6;
          begin end;
          begin for i:=1 step 1 until a+1 do
                x(i):=case i of(
                -21,-6,7,18,27,34,39,42,43);
                for i:=1 step 1 until a do x(i+a+1):=x(a+1-i);
                norm:=323;
          end a=8;
          begin end;
          begin end;
          begin end;
          begin for i:=1 step 1 until a+1 do
                x(i):=case i of(
                -253,-138,-33,62,147,222,287,322,387,422,447,462,467
                );
                for i:=1 step 1 until a do x(i+a+1):=x(a+1-i);
                norm:=5175;
          end a=12;
    end;
    end n=1;

    if n=2 then begin
    case a of
    begin begin end;
          begin end;
          begin end;
          begin end;
          begin end;
          begin end;
          begin end;
          begin end;
          begin end;
          begin end;
          begin end;
          begin for i:=1 step 1 until a+1 do
                x(i):=case i of(
                1265,-345,-1122,-1255,-915,-255,590,1503,
                2385,3155,3750,4125,4253);
                for i:=1 step 1 until a do x(i+a+1):=x(a+1-i);
                norm:=30015;
          end a=12;
    end;
    end n=2;

    h:=0;
start: h:=h+1; setposition(sp,0,2); inrec(sp,128);
    setposition(ma,0,2); outrec(ma,128);

    for k:=0 step 1 until sptail(1)-3 do
    begin
      for j:=1 step 1 until 128-p do
      begin
        u:=k*128+j;
        if u<t-p then
        begin
          nsum:=0;
          for l:=0 step 1 until p do
          nsum:=sp(l+j)*x(l+1) + nsum;
          ma(j+a):=nsum/norm;
        end;
      end j;
      if u<t-p then 
      begin
        for i:=1 step 1 until p do s(i):=sp(i+128-p);
        inrec(sp,128);
        for i:=1 step 1 until p do s(i+p):=sp(i);
        for j:=1 step 1 until p do
        begin
          u:=k*128+128-p+j;
          if u<t-p then
          begin
            nsum:=0;
            for l:=0 step 1 until p do
            nsum:=s(l+j)*x(l+1) + nsum;
            s(j):=nsum/norm;
          end;
        end j;
        for j:=1 step 1 until a do ma(j+128-a):=s(j);
        outrec(ma,128);
        for j:=1 step 1 until a do ma(j):=s(j+a);
      end;
    end k;
    monitor(44,ma,15,matail);

    setposition(ma,0,2);
    max:=0;
    for k:=0 step 1 until sptail(1)-3 do
    begin
      inrec(ma,128);
      for j:=1 step 1 until 128 do
      begin
      u:=k*128+j;
      if u>a and u<t-a then
      begin if ma(j)>max then begin max:=ma(j); umax:=u; end; end;
      end j;
    end;

    setposition(out,0,0); write(out,<< d>,h);
    if h<N then goto start;
    setposition(sp,0,2); inrec(sp,128);
    setposition(ma,0,2); swoprec(ma,128);
    for j:=1 step 1 until a do ma(j):=sp(j);
    fmax:=bmin+umax/10;
    write(out,<:
max= :>,<< dddddddd>,max,<:   fmax = :>,<<  ddd>,fmax, <: cm-1:>);
    close(sp,true); close(ma,true);
  end blok;
slut:
end;
end
▶EOF◀