|
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: 7680 (0x1e00) Types: TextFile Names: »ramplox«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦this⟧ »ramplox«
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◀