From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- web/yacco2/diagrams/linker.mp | 117 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 web/yacco2/diagrams/linker.mp (limited to 'web/yacco2/diagrams/linker.mp') diff --git a/web/yacco2/diagrams/linker.mp b/web/yacco2/diagrams/linker.mp new file mode 100644 index 0000000000..96f52d47ce --- /dev/null +++ b/web/yacco2/diagrams/linker.mp @@ -0,0 +1,117 @@ +% file: linker.mp +input boxes +%tracingall; + +numeric u; +u=1cc; +beginfig(1); +boxjoin(a.se=b.ne); +numeric ff; +ff := defaultdy; +defaultdy:=.5u; +boxit.int(btex Interactive: file name etex); +boxit.cmd(btex Command line etex); +boxjoin(a.se=b.ne); +drawunboxed(int,cmd); + +pair c,d,e,f; +c:=cmd.e+(.25u,0); +d:=int.e+(.25u,0); +e:=.5[c,d]; +f:=e+(1u,0); +draw cmd.e--c--d--int.e; +drawarrow e..f; +defaultdy:= ff; + +show f; +boxjoin(); + +boxjoin(tmp.nw=holdr.sw;tmp.ne=holdr.se); +boxit.holdr(btex Holding file etex); +boxit.tmp(btex ``linkercmd.tmp'' etex); +boxit.linkr(btex Linker etex); +boxit.fsc(btex ``First set file''.cpp etex); +holdr.w=f; +holdr.e = linkr.w-(1u,0); +linkr.e = fsc.w-(1u,0); + +drawunboxed(holdr); +drawunboxed(tmp); +drawboxed(linkr); +drawunboxed(fsc); +drawarrow holdr.e--linkr.w; +drawarrow linkr.e--fsc.w; + + +label.bot(btex Figure 1: Linker run environment etex,linkr.s-(0,1u)); +endfig; + +% bit maps +beginfig(2); +u:=.1in; +picture c; +for i=1 upto 1: + x1:= (i-1)*32u; + x2:= i*32u; + draw (x1,0)--(x2,0)..(x2+.5u,.5u)..(x2,1u)..(x2-.5u,1.5u)..(x2,2u)--(x1,2u)--cycle; + for j=1 upto 31: + draw (x1+j*u,0)--(x1+j*u,.2u); + endfor +endfor +% fill in the map contents +for i=1 upto 32: + if ( + (i = 1) or (i = 9) or + (i = 17) or (i = 25) or + (i = 32) + ): + label("1",(x1+i*u-.5u,1u)); + else: + label("0",(x1+i*u-.5u,1u)); + fi +endfor +label.llft("Thread ids:",(x1-.5u,0)); + +boxjoin(a.sw=b.nw;a.se=b.ne); +boxit.aa("31");boxit.ba("23");boxit.ca("15");boxit.da("7");boxit.ea("0"); +aa.ne = (x1-.5u,0) -(15bp,10bp); +drawunboxed(aa,ba,ca,da,ea); +label.top("word 0",(x1+15*u,2u)); +numeric dlt; +pair mp,bp; +bp := (x1+.5u,0); +dlt:= abs ((x1 + .5u) - xpart aa.e); +mp:=aa.e+(dlt,0); +draw aa.e -- mp; +drawarrow mp--(x1+.5u,0); + +bp := (x1+.5u+8u,0); +dlt:= abs ((x1+.5u+8u) - xpart ba.e); +mp:=ba.e+(dlt,0); +draw ba.e -- mp; +drawarrow mp--bp; + +bp := (x1+.5u+16u,0); +dlt:= abs ((x1+.5u+16u) - xpart ca.e); +mp:=ca.e+(dlt,0); +draw ca.e -- mp; +drawarrow mp--bp; + +bp := (x1+.5u+24u,0); +dlt:= abs ((x1+.5u+24u) - xpart da.e); +mp:=da.e+(dlt,0); +draw da.e -- mp; +drawarrow mp--bp; + +bp := (x1+.5u+31u,0); +dlt:= abs ((x1+.5u+31u) - xpart ea.e); +mp:=ea.e+(dlt,0); +draw ea.e -- mp; +drawarrow mp--bp; + +endfig; + +% Tables +beginfig(3); +endfig; +end; -- cgit v1.2.3