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

⟦18f3d7063⟧ TextFile

    Length: 7680 (0x1e00)
    Types: TextFile
    Names: »ramplox«

Derivation

└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦this⟧ »ramplox« 

TextFile

clear user ramplo
ramplo=set 1 disc5
scope user ramplo
ramplo=algol list.no
\f


RAMAN ANALYSE                                                      PLO

external procedure ramplo(navn,ramme,fmin,fmax,format,max);
long array navn;  integer ramme,fmin,fmax; real format,max;


begin
  integer i,j,k,h,m,t,min,deltaf,nyfmax,del,stpl,
          sm,smo,segm,sk,p,s,ver,layout,df,dt;
  real f1,u,up,u1p,u0,u1,um,gain,bagr,bgr,sum,maxsum,jmax,
  tmin,tmax,bmin,bmax,smin,smax,umax,ymax,si,x,y,
  x1,x2,y1,y2,dx,skax,skay,B,mx,my,C,d,wo,w,D,C1;
  boolean ir,f,nl; array head,text(1:12);
  zone z(128,1,stderror);

  nl:=false add 10; p:=10; ir:=false;



if ramme>0 then

begin x:=26; y:=18; si:=1.5;

      write(out,<:abs: fmin fmax df dt= :>); setposition(out,0,0);
      read(in,fmin,fmax,df,dt);

      if ramme<>3 then
      begin write(out,<:overskrift= :>); setposition(out,0,0);
            readhead(in,head,1);
      end;

      if ramme=1 then layout:=0;

      if ramme=2 then
      begin write(out,<:layout= :>); setposition(out,0,0);
            ftal(layout);
      end;

      if ramme=3 then
      begin write(out,<:layout= :>); setposition(out,0,0);
            ftal(layout);
            plotform(10,38,25);
            write(out,<:xmin xmax ymin ymax si=:>);
            setposition(out,0,0);
            read(in,x1,x2,y1,y2,si);
            x1:=x1-1; x2:=x2+1;
            y1:=y1-1; y2:=y2+2;
            plotsubform(x1,x2,y1,y2-1,false);
            x:=x2-x1; y:=y2-y1-1;
      end
      else
      begin if cb(1,layout) and ramme<>3 then
            begin write(out,<:x y si= :>); setposition(out,0,0);
                  read(in,x,y,si);
            end;
            plotform(10,x,y+1);
      end;
      plotsize:=0.2*si; plotheight:=0.28*si; 
      if cb(2,layout) then plotspline:=true;
      deltaf:=fmax-fmin; skax:=(x-2)/deltaf;
      format:=x*100+y; skay:=(y-4)/max;

  if ramme <>3 then
  begin setmargin(1,y-0.75);
        writeplot(<:<12>I(<14>n<15>):>);
        setmargin(3,y-0.75);
        writeplot(<:<12>:>,string inc(head));

  costhetax:=costhetay:=0; sinthetax:=sinthetay:=1;
  setmargin(.6,(y-plotsize*17)/2);
  writeplot(<:<12>I N T E N S I T Y:>);
  costhetax:=costhetay:=1; sinthetax:=sinthetay:=0;
  end;

  if cb(3,layout)  then
  begin setmargin(.5,1.9); writeplot(<:<12>:>,<:0:>);
        plotmove(1,2); pendown; plotmove(1.4,2); penup;
        setmargin(.5 ,y-2.1); writeplot(<:<12>:>,<:1:>);
        plotmove(1,y-2); pendown; plotmove(1.4,y-2); penup;
  end;


  plotmove(1,1); pendown;


  for j:=fmin step df until fmax do
  begin f1:=(j-fmin)*skax+1;
        if j<>fmin then
        begin plotmove(f1,1);
              plotmove(f1,1+y/(if j mod dt=0 then 25 else 50));
              plotmove(f1,1);
        end;
        if j mod dt = 0 then
        begin setmargin(f1-plotsize*0.5*cif(j),0.8-plotheight);
              writeplot(<:<12>:>,case cif(j) of(
              <<d>,<<dd>,<<ddd>,<<dddd>),j);
              plotmove(f1,1); pendown;
        end;
  end;
  plotmove(x-1,1); plotmove(x-1,y-1);
  plotmove(x-1,1); plotmove(x-1,y-1);

  for j:=fmin step df until fmax do
  if j mod df=0 then nyfmax:=j;

  for j:=nyfmax step -df until fmin do
  begin f1:=(j-fmin)*skax+1;
        if j<>fmin then
        begin plotmove(f1,y-1);
              plotmove(f1,y-1-y/(if j mod dt=0 then 25 else 50));
              plotmove(f1,y-1);
        end;
  end;
  plotmove(1,y-1); plotmove(1,1);
  plotmove(1,y-1); plotmove(1,1);
  if ramme=3 then
  plotsubform(x1+1,x2-1,y1+1,y2-1,false)
  else
  plotsubform(1,x-1,1,y-1,false);
  penup; plotend;
end ramme;


  x:=entier(format/100); y:=format-x*100;
  skay:=(y-4)/max; deltaf:=fmax-fmin; skax:=(x-2)/deltaf;

  gain:=1.0; bagr:=1.0; del:=1; dx:=0.0;
  ramnc(j,navn,i); if i=6 then goto L;


  write(out,<:version= :>); setposition(out,0,0);
  ftal(ver);
  open(z,4,navn,0); inrec(z,128);
  segm:=z(1); t:=z(2); bmin:=z(11); bmax:=z(12);
  if z(40)>0 then sk:=10 else sk:=1;
  sm:=z(51); if sm>0 then begin smo:=sm; sm:=1; end;
  for i:=1 step 1 until 12 do head(i):=z(i+99);
  smin:=if fmin<bmin then bmin else fmin;
  smax:=if fmax>bmax then bmax else fmax;

  if cb(1,ver) then
  begin write(out,<:gain bagr delta=:>); setposition(out,0,0);
        read(in,gain,bagr,del);
  end;

  if cb(2,ver) then
  begin B1:write(out,<:bmin=:>,<< dddd.dd>,bmin,<:cm-1  smin=:>);
        setposition(out,0,0); read(in,smin);
        if smin<fmin then goto B1;
        B2:write(out,<:bmax=:>,<< dddd.dd>,bmax,<:cm-1  smax=:>);
        setposition(out,0,0); read(in,smax);
        if smax>fmax then goto B2;
  end;

  if cb(3,ver) then
  begin write(out,<:stipling: stpl=:>); setposition(out,0,0);
        read(in,maxsum);
  end;


  if cb(4,ver) then
  begin write(out,<:sk dx=:>); setposition(out,0,0);
        read(in,sk,dx);
  end;

  um:=(bmin-fmin+t/p)*skax;
  u0:=(smin-bmin)*10; h:=entier(u0/128); u0:=u0-h*128;
  if u0=0 then u0:=1;
  setposition(z,0,h+2); inrec(z,128);
  u1:=gain*z(u0)*skay+bagr;
  u:=(smin-fmin)*skax; ymax:=y-2;
  plotmove((if ir then u-um else u)*sk+dx,if u1>ymax then ymax else u1);
  pendown; setposition(z,0,2);
  sum:=0;
  up:=u; u1p:=u1;

  for k:=0 step 1 until segm-3 do
  begin inrec(z,128);
        for j:=1 step 1 until 128 do
        begin i:=k*128+j;
              if i<t  and (k*128+j) mod del = 0 then
              begin u:=(bmin-fmin+i/p)*skax;
                    if u< (smin-fmin)*skax then goto S1;
                    if u> (smax-fmin)*skax then goto S2;
                    u1:=gain*z(j)*skay+bagr;
                    if cb(3,ver) then begin
                    if sum>maxsum then
                    begin sum:=0; 
                          if penstatus=0 then 
                          pendown
                          else
                          penup;
                    end;
                    sum:=sqrt((up-u)*sk*(up-u)*sk+(u1p-u1)*(u1p-u1))+sum;
                    up:=u; u1p:=u1;
                    end;
                    plotmove((if ir then (u-um) else u)*sk+dx,
                    if u1>ymax then ymax else u1);
              end;
S1:     end j;
  end k;
S2: penup; plotend; close (z,true); goto slut;

L:
  write(out,<:s= :>); setposition(out,0,0); read(in,s);
  case s of
  begin
  begin write(out,<:B (cps)=:>); setposition(out,0,0);
        read(in,B);
        plotmove(0,bagr+gain*skay*B); pendown;
        plotmove(x-2,bagr+gain*skay*B); penup;
        plotend;
  end s=1;
  begin write(out,<:x y <text>=:>); setposition(out,0,0);
        read(in,mx,my); readhead(in,text,1);
        setmargin(mx,my);
        writeplot(<:<12>:>,string inc(text));
  end s=2;
  begin
  end s=3;
  begin write(out,<:lorentz: bagr c  hwhh wo (cm-1)= :>);
        setposition(out,0,0);
        read(in,bagr,C,d,wo);
        plotgraph(w,bagr+100*C*skay*d**2/((w/skax+fmin-wo)**2+d**2),
        0,x-2,0.1);
  end s=4;
  begin write(out,<:lorentz*trekant: bagr hwhh deltau c=:>);
        setposition(out,0,0);
        read(in,bagr,B,D,C);
        C1:=1/((1/B)*2*arctan(D/B)+(1/D)*ln(B**2)-
        (1/D)*ln(D**2+B**2));
        plotgraph(w,bagr+gain*skay*C*C1*(
        (1/B)*(1+(w/skax+fmin)/D)*
        arctan((w/skax+fmin+D)/B)-
        (1/B)*(1-(w/skax+fmin)/D)*
        arctan((w/skax+fmin-D)/B)-
        2*(1/B)*(w/skax+fmin)*arctan((w/skax+fmin)/B)/D+
        (1/D)*ln(B**2+(w/skax+fmin)**2)-
        (1/2/D)*ln((w/skax+fmin)**2+2*(w/skax+fmin)*D+D**2+B**2)-
        (1/2/D)*ln((w/skax+fmin)**2-2*(w/skax+fmin)*D+D**2+B**2)),
        0,x-2,0.1);
  end s=5;
  end case;

slut: end; end
▶EOF◀