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

⟦777c3c310⟧ TextFile

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

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦this⟧ »epix« 
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
    └─⟦b2ec5d50f⟧ 
        └─⟦this⟧ »epix« 

TextFile

clear user epi
epi=set 2 disc5
scope user epi

epi=algol list.no

RAMAN2  program: epi (indlæsningsprogram)
external procedure epi;
begin
  integer i,k,j,t,umax,umin,nc,v,u,u0,a;
  array BS,nspo(1:2), head(1:12);
  integer array D(1:1), Z(1:20), tsp1,tsp2,tspi,tspo,trs(1:10);
  integer field fi;
  real tmin,tmax,min,max,bmin,bmax,b,p,del,u1,alfa,to,t1;
  zone sp1,sp2, spi,spo,zrs(128,1,stderror);

  BS(1):=BS(2):=real <::>;


F:write(out,<:FRA=:>); setposition(out,0,0);  readstring(in,BS,1);
  if lookuptail(BS,tspi) <> 0 then

  begin write(out,false add 10,1,<:***:>,string inc(BS),<: unknown:>);
        goto F;
  end;

  nspo(1):=nspo(2):=real <::>;
  write(out,<:TIL=:>);   setposition(out,0,0); readstring(in,nspo,1);
  write(out,<:NPF=:>); setposition(out,0,0); read(in,t1);
  alfa:=0.998;

  open(spi,4,string inc(BS),0);
  inrec(spi,128);
  for j:=1 step 1 until 12 do head(j):=spi(j);
  tmin:=tspi(9); tmax:=tspi(10);
  write(out,false add 10,2,<:TMIN=:>,<<  dddd>,tmin,<:    TMAX=:>,tmax);


  p:=1.1904; to:=6361;

  b:=tmin*alfa-to-t1-6368*(alfa-1);
  bmin:=(entier(b*10+1))*0.1;
  bmax:=tmax*alfa-to-t1-6368*(alfa-1);

  write(out,false add 10,1,<:BMIN=:>,<< -dddd.dd>,bmin,<: BMAX=:>,bmax);



  if lookupentry(<:ramsp1:>) = 0 then removeentry(<:ramsp1:>);
  cleararray(tsp1);
  tsp1(1):=400;
  reservesegm(<:ramsp1:>, tsp1(1)); permentry(<:ramsp1:>,15);

  open(sp1,4,<:ramsp1:>,0);
  if tspi(8)>0 then setposition(spi,0,1); setposition(sp1,0,2);
  t:=0; max:=0; min:=maxinteger;
  getzone(spi,Z); redefarray(D,Z(14)+1,256);

  for j:=inrec(spi,128) while spi(1) shift (-40) extract 8=0, j do
  begin k:=D(1) extract 16;
        for j:=1 step 1 until k do
        begin outrec(sp1,1);
              i:=D(j+1); sp1(1):=i;
        end j;
        t:=t+k;
  end inrec;

  tsp1(1):=2 + (t+127)//128;

  monitor(44,sp1,15,tsp1);
  setposition(sp1,0,2); swoprec(sp1,128);
  sp1(1):=sp1(2):=sp1(3):=sp1(4):=sp1(5);
  close(spi,true);

  write(out,false add 10,1,<:ANTAL=:>,<< ddddd>,t,<: CALC. ANTAL=:>,
  (tmax-tmin)*8.4,<: R=:>,<< d.dddd>,t/(tmax-tmin)/8.4);




  if lookupentry(<:ramsp2:>) = 0  then removeentry(<:ramsp2:>);
  cleararray(tsp2);
  tsp2(1):=400;
  reservesegm(<:ramsp2:>, tsp2(1)); permentry(<:ramsp2:>,15);

  open(sp2,4,<:ramsp2:>,0); setposition(sp2,0,2); tsp2(1):=2;
  setposition(sp1,0,2); inrec(sp1,128);
  a:=0; u0:=0;

  for k:=0 step 1 until 400 do
  begin tsp2(1):=tsp2(1)+1; outrec(sp2,128);
        for i:=1 step 1 until 128 do
        begin v:=k*128+i;
               u:=entier((v/p));
               if u>t-1 then goto L1; del:=v/p-u;
              if u mod 128=1 and u>10 and u>u0 then
              begin a:=a+1; inrec(sp1,128);
              end;
              u0:=u;
              j:=u-a*128;
              if j<1 then goto B1;
              if j=128 then
              sp2(i):=sp1(j)
              else
              sp2(i):=sp1(j)+(sp1(j+1)-sp1(j))*del;
B1:     end i;
  end k;
L1:
  monitor(44,sp2,15,tsp2);
  setposition(sp1,0,2); setposition(sp2,0,2);
  inrec(sp1,128); swoprec(sp2,128); sp2(1):=sp1(1);
  t:=v;
  close(sp1,true);


  if lookupentry(nspo) = 0 then removeentry(nspo);
  cleararray(tspo);
  tspo(1):=400;
  reservesegm(nspo,tspo(1)); permentry(nspo, 0);

  open(spo,4,string inc(nspo),0); setposition(spo,0,2); tspo(1):=2;
  setposition(sp2,0,2); inrec(sp2,128);
  a:=0; u0:=0;

  for k:=0 step 1 until 400 do
  begin tspo(1):=tspo(1)+1; outrec(spo,128);
      for i:=1 step 1 until 128 do
      begin v:=k*128+i;
            u1:=(bmin+0.1*(v-1)+to+t1+6368*(alfa-1))/alfa;
            u:=entier((u1-tmin)*10)+1;
            if u>=t then goto L2;
            del:=u1*10-entier(u1*10);
            u0:=u;
            j:=u-a*128;
            if j>128 then
            begin a:=a+1;
                  inrec(sp2,128);
                  j:=1;
            end;
            if j<1 then goto B2;
            if j=128 then
            spo(i):=sp2(j)
            else
            spo(i):=sp2(j)+(sp2(j+1)-sp2(j))*del;
            if spo(i)>max then begin max:=spo(i); umax:=v; end else
            if spo(i)<min then begin min:=spo(i); umin:=v; end;
B2:    end i;
end k;
L2:
monitor(44,spo,15,tspo); close(sp2,true);


setposition(spo,0,0);
outrec(spo,128); for j:=1 step 1 until 128 do spo(j):=-1;
outrec(spo,128); for j:=1 step 1 until 128 do spo(j):=-1;
setposition(spo,0,0); swoprec(spo,128);

spo(1):= tspo(1); spo(2):= v; spo(3):= (tmax-tmin)*8.4;
spo(4):=min; spo(5):=umin;
spo(6):=max; spo(7):=umax;
spo(8):=tmin; spo(9):=tmax; spo(10):=nc;
spo(11):=bmin; spo(12):=bmax;
for j:=1 step 1 until 12 do spo(j+99):=head(j);
close(spo,true); slut:end;     end
▶EOF◀