|
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: 3840 (0xf00) Types: TextFile Names: »plotxyt«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦this⟧ »plotxyt«
;inputfil til plotxy system ;rene moss 10-4-80/17-11-80 r=set 150 if 2.no (s=set 11 c=message type expression xt s=copy message.no c t=set 11 c=message type expression yt t=copy message.no c u=set 11 if 1.yes (c=copy message.no nlem c=message type param declar and assignments and statements u=copy message.no c ) if 1.no (u=copy message.no nlem) ) r=algol plotxytb s plotxytc t endsemikol u plotxyte message.no if ok.no (c=message syntax error in c=copy message.no s nlem t nlem u end) if warning.yes (c=message syntax error in c=copy message.no s nlem t nlem u end) s=copy message.no s nlem t t=set 30 t=r s lookup execplot if ok.no i execplotxt execplot t if ok.no (c=message plotting not ok end) c=message plotting finished program for interactive plotting of x(t),y(t) ;rene moss 31-3-80/20-11-80 begin integer i,asize,lin,char,xsize,ysize,formmode,N,segm,val,valg; real xmin,xmax,ymin,ymax,x,y,stop,t,tmax,dt; integer field fi; real field fx,fy; long array field fla; integer array ZD(1:20); array tname(1:2); zone z(128,1,stderror); boolean first; xmin:= xmax:= ymin:= ymax:= 0.0; fi:=2; fx:=6; fy:=10; fla:=lin:=xsize:= ysize:= 0; asize:= 5; formmode:= 2; first:=true; xmin:=ymin:='600; xmax:=ymax:=-'600; initfp; write(out,<:output stored on :>); readlsfp(tname); if tname(1) extract 40 = 0 then begin i:=tname(1) shift (-40) extract 8; if 114<=i and i<=117 then begin write(out,false add i,1,<: = :>); redefarray(tname,firstnote+(i-113)*22+4,2); if lookupentry(tname)<>0 then begin end end end; open(z,4,tname.fla,0); write(out,tname.fla); for i:=0,i+1 while val<>25 do begin readchar(in,val); if (val<>10 or valg<>10) and val<>0 then begin if val=10 then lin:=lin+1; valg:=val; outchar(z,val) end end; connectcuri(<:v:>); write(z,false,6); setposition(z,0,1); outrec6(z,10); begin real procedure X(t); real t; begin X:= end; real procedure Y(t); real t; begin Y:= if first then begin if formmode=2 then xsize:=5 else begin if xsize<=0 then xsize:=readr(<:xsize:>); if ysize<=0 then ysize:=readr(<:ysize:>) end; first:=false end; N:=2**9-1; t:=readr(<:tmin:>); tmax:=readr(<:tmax:>); dt:=(tmax-t)/N; z.fi:=-1; z.fx:=x:=X(t); z.fy:=y:=Y(t); if y<ymin then ymin:=y else if y>ymax then ymax:=y; if x<xmin then xmin:=x else if x>xmax then xmax:=x; outrec6(z,10); z.fi:=-2; z.fx:=x; z.fy:=y; for t:=t+dt while t<=tmax do begin outrec6(z,10); z.fi:=0; z.fx:=x:=X(t); z.fy:=y:=Y(t); if y<ymin then ymin:=y else if y>ymax then ymax:=y; if x<xmin then xmin:=x else if x>xmax then xmax:=x end; outrec6(z,10); z.fi:=maxinteger; getposition(z,0,segm); getzone6(z,ZD); setposition(z,0,0); swoprec(z,128); z(117):=formmode; z(118):=xsize; z(119):=ysize; z(120):=(lin+2)*.7; z(125):=xmin; z(126):=xmax; z(127):=ymin; z(128):=ymax; setposition(z,0,segm); setzone6(z,ZD); end end ▶EOF◀