tracingstats:=1; %prologues:=2; texlabels := 1; u:=0.5cm; input mpcirc; input digital; vardef dotlabels@#(text t) = forsuffixes $=t: if known z$: dotlabel@#(str$,z$); fi; endfor enddef; % Used by draw library routines. |_ename_| is assumed to hold element type. vardef addlab@# (expr lab)(text z)(text o) = str_append (stk (_ename_)._.labnames, str @#); addlab__.stk(_ename_)._.@# ( %_ename_ % if string lab: _ename_ & " " if lab <> emptystr: & lab fi else: lab fi if string lab: _ename_ else: lab fi )(z)(o) enddef; vardef addpin@# (text z) (text o) = str_append (stk (_ename_)._.pinnames, str @#); addpin__.stk(_ename_)._.@# (z) (o); dotlabel.o (str @#, stk(_ename_)._.@#); enddef; def row (expr dx, dy) (suffix ea)(text es) = prepare (ea,es); equally_spaced (dx, 0) ea,es; ea=o; o:=o-(0,dy); enddef; beginfig(1) dx:=5u; dy:=4u; pair o; o=origin; row (dx,3u) (gnd, GND, ioc, whatI, current); row (dx,dy) (R, Rvar, Rx, Z, Zvar, Zx); if 1=1: row (dx,dy) (C, Cvar, Cel, L); row (dx,dy) (circle, lamp, V, I, volt, amp, Vac); row (dx,dy) (rhombus, rm, gm, xtal); row (dx,dy) (D, ZD, Dcap, LED, osc); row (dx,dy) (npn, pnp, nfet, pfet, nfetc, pfetc); row (dx,dy) (nvmos, pvmos, namos, pamos); row (dx,dy)(And,Nand,Nor,Xor,Nxor,Buf,Not); o:=o+(.5dx,-0.5dy); row (2.5dx,dy) (op, opr, bb); fi; edraw; %egrid(u); endfig; end