summaryrefslogtreecommitdiff
path: root/graphics/circuit_macros/examples/nsvg/dev/test.pic
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/circuit_macros/examples/nsvg/dev/test.pic')
-rw-r--r--graphics/circuit_macros/examples/nsvg/dev/test.pic383
1 files changed, 383 insertions, 0 deletions
diff --git a/graphics/circuit_macros/examples/nsvg/dev/test.pic b/graphics/circuit_macros/examples/nsvg/dev/test.pic
new file mode 100644
index 0000000000..d035baa113
--- /dev/null
+++ b/graphics/circuit_macros/examples/nsvg/dev/test.pic
@@ -0,0 +1,383 @@
+.PS
+# ex08.m4
+# log_init Version 9.3: TikZ PGF m4 macro settings.
+
+# log_init begin
+ # gen_init Version 9.3: TikZ PGF m4 macro settings.
+
+
+ define rpoint__ {
+ rp_wid = last line.end.x-last line.start.x
+ rp_ht = last line.end.y-last line.start.y
+ rp_len = sqrt(abs((rp_wid)^2+(rp_ht)^2)); move to last line.start
+ rp_ang = atan2(rp_ht,rp_wid) }
+
+ rtod_ = 57.295779513082323; dtor_ = 0.017453292519943295
+ twopi_ = 6.2831853071795862; pi_ = (twopi_/2)
+ rp_ang = 0; right
+
+
+ linethick = 0.8
+ arrowwid = 0.05*scale; arrowht = 0.1*scale
+
+
+ # gen_init end
+
+
+# log_init end
+
+
+
+
+# Input labels
+C: (0,0); "\sf C " rjust at C
+DE: C+(0,((linewid/10))*((2*3)*7/4))
+A0: DE+(0,((linewid/10))*(4*3/2)); "\sf A0 " rjust at A0
+A1: A0+(0,((linewid/10))*(4*3/2)); "\sf A1 " rjust at A1
+A2: A1+(0,((linewid/10))*(4*3/2)); "\sf A2 " rjust at A2
+ move to (-0.2,0) # Lettering within the global object
+
+# Buffer strings
+ line right 3*(linewid/10)*5/2 from A2
+ B1: [Tm: line from (((linewid/10))*(3.5),0) \
+ to (0,((linewid/10))*(-4/2)) \
+ then to (0,((linewid/10))*(4/2)) \
+ then to (((linewid/10))*(3.5),0)
+ Tc: (((linewid/10))*(3.5/2),0)
+ NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+ SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+ Out: (((linewid/10))*(3.5+(3/2)),0)
+ N_Out: circle diam (3/2)*(linewid/10) \
+ at (((linewid/10))*(3.5+((3/2)/2)),0)
+ In1: (0,0)
+ C: (((linewid/10))*(3.5/3),0)
+
+
+
+ ]; line right 2*(linewid/10)*5/2
+ T1: last line.c
+ B2: [Tm: line from (((linewid/10))*(3.5),0) \
+ to (0,((linewid/10))*(-4/2)) \
+ then to (0,((linewid/10))*(4/2)) \
+ then to (((linewid/10))*(3.5),0)
+ Tc: (((linewid/10))*(3.5/2),0)
+ In1: (((linewid/10))*(-(3/2)),0)
+ N_In1: circle diam (3/2)*(linewid/10) \
+ at (((linewid/10))*(-((3/2)/2)),0)
+ NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+ SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+ Out: (((linewid/10))*(3.5),0)
+ C: (((linewid/10))*(3.5/3),0)
+
+
+
+ ]
+ line right 3*(linewid/10)*5/2 from A1
+ B3: [Tm: line from (((linewid/10))*(3.5),0) \
+ to (0,((linewid/10))*(-4/2)) \
+ then to (0,((linewid/10))*(4/2)) \
+ then to (((linewid/10))*(3.5),0)
+ Tc: (((linewid/10))*(3.5/2),0)
+ NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+ SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+ Out: (((linewid/10))*(3.5+(3/2)),0)
+ N_Out: circle diam (3/2)*(linewid/10) \
+ at (((linewid/10))*(3.5+((3/2)/2)),0)
+ In1: (0,0)
+ C: (((linewid/10))*(3.5/3),0)
+
+
+
+ ]; line right 2*(linewid/10)*5/2
+ T2: last line.c
+ B4: [Tm: line from (((linewid/10))*(3.5),0) \
+ to (0,((linewid/10))*(-4/2)) \
+ then to (0,((linewid/10))*(4/2)) \
+ then to (((linewid/10))*(3.5),0)
+ Tc: (((linewid/10))*(3.5/2),0)
+ In1: (((linewid/10))*(-(3/2)),0)
+ N_In1: circle diam (3/2)*(linewid/10) \
+ at (((linewid/10))*(-((3/2)/2)),0)
+ NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+ SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+ Out: (((linewid/10))*(3.5),0)
+ C: (((linewid/10))*(3.5/3),0)
+
+
+
+ ]
+ line right 3*(linewid/10)*5/2 from A0
+ B5: [Tm: line from (((linewid/10))*(3.5),0) \
+ to (0,((linewid/10))*(-4/2)) \
+ then to (0,((linewid/10))*(4/2)) \
+ then to (((linewid/10))*(3.5),0)
+ Tc: (((linewid/10))*(3.5/2),0)
+ NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+ SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+ Out: (((linewid/10))*(3.5+(3/2)),0)
+ N_Out: circle diam (3/2)*(linewid/10) \
+ at (((linewid/10))*(3.5+((3/2)/2)),0)
+ In1: (0,0)
+ C: (((linewid/10))*(3.5/3),0)
+
+
+
+ ]; line right 2*(linewid/10)*5/2
+ T3: last line.c
+ B6: [Tm: line from (((linewid/10))*(3.5),0) \
+ to (0,((linewid/10))*(-4/2)) \
+ then to (0,((linewid/10))*(4/2)) \
+ then to (((linewid/10))*(3.5),0)
+ Tc: (((linewid/10))*(3.5/2),0)
+ In1: (((linewid/10))*(-(3/2)),0)
+ N_In1: circle diam (3/2)*(linewid/10) \
+ at (((linewid/10))*(-((3/2)/2)),0)
+ NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+ SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+ Out: (((linewid/10))*(3.5),0)
+ C: (((linewid/10))*(3.5/3),0)
+
+
+
+ ]
+
+
+B7: [Tm: line from (((linewid/10))*(3.5),0) \
+ to (0,((linewid/10))*(-4/2)) \
+ then to (0,((linewid/10))*(4/2)) \
+ then to (((linewid/10))*(3.5),0)
+ Tc: (((linewid/10))*(3.5/2),0)
+ NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+ SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+ Out: (((linewid/10))*(3.5),0)
+ In1: (0,0)
+ C: (((linewid/10))*(3.5/3),0)
+
+
+
+ ] at (B1,C)
+
+G1: [ Bt: line from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+ to (0,((linewid/10))*((2*3)/2)) chop 0 chop -(linethick *(scale/72)/2)
+ ArcB: arc cw to (0,((linewid/10))*(-(2*3)/2)) \
+ with .c at (((linewid/10))*(0-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)),0)
+ Bb: line to (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) chop -(linethick *(scale/72)/2) chop 0
+ ArcN: arc cw from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+ to (((linewid/10))*(0+7),0) \
+ with .c at (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+ ArcS: arc ccw from (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) \
+ to (((linewid/10))*(0+7),0) \
+ with .c at (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+ NE: (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((60)*dtor_))))
+ SE: (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((-60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((-60)*dtor_))))
+ N_Out: circle diam (3/2)*(linewid/10) \
+ at (((linewid/10))*(0+7+((3/2)/2)),0)
+ Out: (((linewid/10))*(0+7+(3/2)),0)
+ In1: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*1))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*1)))
+
+ In2: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*2))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*2)))
+
+
+
+ C: (((linewid/10))*(0+7/2),0)
+ ] with .Out at (B1.Out,DE)
+G2: [ Bt: line from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+ to (0,((linewid/10))*((2*3)/2)) chop 0 chop -(linethick *(scale/72)/2)
+ ArcB: arc cw to (0,((linewid/10))*(-(2*3)/2)) \
+ with .c at (((linewid/10))*(0-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)),0)
+ Bb: line to (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) chop -(linethick *(scale/72)/2) chop 0
+ ArcN: arc cw from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+ to (((linewid/10))*(0+7),0) \
+ with .c at (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+ ArcS: arc ccw from (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) \
+ to (((linewid/10))*(0+7),0) \
+ with .c at (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+ NE: (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((60)*dtor_))))
+ SE: (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((-60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((-60)*dtor_))))
+ N_Out: circle diam (3/2)*(linewid/10) \
+ at (((linewid/10))*(0+7+((3/2)/2)),0)
+ Out: (((linewid/10))*(0+7+(3/2)),0)
+ In1: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*1))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*1)))
+
+ In2: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*2))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*2)))
+
+
+
+ C: (((linewid/10))*(0+7/2),0)
+ ] at (B2+(((linewid/10))*(((3/2)/2)),0),G1-(0,((linewid/10))*((2*3))))
+G3: [ Bm: line from (((linewid/10))*(7-(2*3)/2),((linewid/10))*(-(2*3)/2)) \
+ to (0,((linewid/10))*(-(2*3)/2)) \
+ then to (0,((linewid/10))*((2*3)/2)) then \
+ to (((linewid/10))*(7-(2*3)/2),((linewid/10))*((2*3)/2))
+ Arc: arc cw rad (2*3)/2 \
+ to Here+(0,((linewid/10))*(-(2*3))) \
+ with .c at Here+(0,((linewid/10))*(-(2*3)/2))
+ NE: (((linewid/10))*(7-(2*3)/2),0)+(((linewid/10))*(((2*3)/2)*(cos((45)*dtor_))),((linewid/10))*(((2*3)/2)*(sin((45)*dtor_))))
+ SE: (((linewid/10))*(7-(2*3)/2),0)+(((linewid/10))*(((2*3)/2)*(cos((-45)*dtor_))),((linewid/10))*(((2*3)/2)*(sin((-45)*dtor_))))
+ Out: (((linewid/10))*(7),0)
+
+ In1: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-1)))
+ In2: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-2)))
+ In3: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-3)))
+ In4: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-4)))
+
+ C: (((linewid/10))*(7/2),0)
+ ] with .In1 at (G2.Out+(9*(linewid/10)*5/2,0),A2)
+G5: [ Bm: line from (((linewid/10))*(7-(2*3)/2),((linewid/10))*(-(2*3)/2)) \
+ to (0,((linewid/10))*(-(2*3)/2)) \
+ then to (0,((linewid/10))*((2*3)/2)) then \
+ to (((linewid/10))*(7-(2*3)/2),((linewid/10))*((2*3)/2))
+ Arc: arc cw rad (2*3)/2 \
+ to Here+(0,((linewid/10))*(-(2*3))) \
+ with .c at Here+(0,((linewid/10))*(-(2*3)/2))
+ NE: (((linewid/10))*(7-(2*3)/2),0)+(((linewid/10))*(((2*3)/2)*(cos((45)*dtor_))),((linewid/10))*(((2*3)/2)*(sin((45)*dtor_))))
+ SE: (((linewid/10))*(7-(2*3)/2),0)+(((linewid/10))*(((2*3)/2)*(cos((-45)*dtor_))),((linewid/10))*(((2*3)/2)*(sin((-45)*dtor_))))
+ Out: (((linewid/10))*(7),0)
+
+ In1: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-1)))
+ In2: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-2)))
+ In3: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-3)))
+ In4: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-4)))
+
+ C: (((linewid/10))*(7/2),0)
+ ] with .In4 at (G3.In1,G2.Out)
+G6: [ Bm: line from (((linewid/10))*(7-(2*3)/2),((linewid/10))*(-(2*3)/2)) \
+ to (0,((linewid/10))*(-(2*3)/2)) \
+ then to (0,((linewid/10))*((2*3)/2)) then \
+ to (((linewid/10))*(7-(2*3)/2),((linewid/10))*((2*3)/2))
+ Arc: arc cw rad (2*3)/2 \
+ to Here+(0,((linewid/10))*(-(2*3))) \
+ with .c at Here+(0,((linewid/10))*(-(2*3)/2))
+ NE: (((linewid/10))*(7-(2*3)/2),0)+(((linewid/10))*(((2*3)/2)*(cos((45)*dtor_))),((linewid/10))*(((2*3)/2)*(sin((45)*dtor_))))
+ SE: (((linewid/10))*(7-(2*3)/2),0)+(((linewid/10))*(((2*3)/2)*(cos((-45)*dtor_))),((linewid/10))*(((2*3)/2)*(sin((-45)*dtor_))))
+ Out: (((linewid/10))*(7),0)
+
+ In1: (0,((linewid/10))*((2*3)/min(2,6-1)*((2+1)/2-1)))
+ In2: (0,((linewid/10))*((2*3)/min(2,6-1)*((2+1)/2-2)))
+
+ C: (((linewid/10))*(7/2),0)
+ ] at G5+(((linewid/10))*(7),((linewid/10))*((2*3)*3/4))+((linewid/10)*5/2*2,0)
+G4: [ Bt: line from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+ to (0,((linewid/10))*((2*3)/2)) chop 0 chop -(linethick *(scale/72)/2)
+ ArcB: arc cw to (0,((linewid/10))*(-(2*3)/2)) \
+ with .c at (((linewid/10))*(0-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)),0)
+ Bb: line to (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) chop -(linethick *(scale/72)/2) chop 0
+ ArcN: arc cw from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+ to (((linewid/10))*(0+7),0) \
+ with .c at (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+ ArcS: arc ccw from (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) \
+ to (((linewid/10))*(0+7),0) \
+ with .c at (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+ NE: (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((60)*dtor_))))
+ SE: (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((-60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((-60)*dtor_))))
+ N_Out: circle diam (3/2)*(linewid/10) \
+ at (((linewid/10))*(0+7+((3/2)/2)),0)
+ Out: (((linewid/10))*(0+7+(3/2)),0)
+ In1: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*1))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*1)))
+
+ In2: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*2))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*2)))
+
+
+
+ C: (((linewid/10))*(0+7/2),0)
+ ] with .In1 at (G6.Out,G3)+(2*(linewid/10)*5/2,0)
+G7: [ Bt: line from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+ to (0,((linewid/10))*((2*3)/2)) chop 0 chop -(linethick *(scale/72)/2)
+ ArcB: arc cw to (0,((linewid/10))*(-(2*3)/2)) \
+ with .c at (((linewid/10))*(0-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)),0)
+ Bb: line to (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) chop -(linethick *(scale/72)/2) chop 0
+ ArcN: arc cw from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+ to (((linewid/10))*(0+7),0) \
+ with .c at (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+ ArcS: arc ccw from (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) \
+ to (((linewid/10))*(0+7),0) \
+ with .c at (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+ NE: (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((60)*dtor_))))
+ SE: (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((-60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((-60)*dtor_))))
+ N_Out: circle diam (3/2)*(linewid/10) \
+ at (((linewid/10))*(0+7+((3/2)/2)),0)
+ Out: (((linewid/10))*(0+7+(3/2)),0)
+ In1: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*1))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*1)))
+
+ In2: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*2))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*2)))
+
+
+
+ C: (((linewid/10))*(0+7/2),0)
+ ] with .In2 at (G4.In2,G5.Out)
+
+# Output to other latches
+TOL: (G2.Out,C)+(4*(linewid/10)*5/2,-4*(linewid/10))
+ move to TOL+(3*(linewid/10)*5/2,-(linewid/10)*5/2/3) ; {move down 0.15}
+ "\sf {\sl To other latches}" below
+
+# Remaining input lines
+ line from G1.In1 to (DE,G1.In1); "\sf D " rjust
+ line from G1.In2 to (DE,G1.In2); "\sf E " rjust
+ [ circle rad (0.04*linewid) fill 0 ] with .c at G1.In2-((linewid/10)*5/2,0)
+ move to last [].c; line to (Here,G2.In2) then to G2.In2
+ line from C to B7.In1
+
+# Connect Bi, and connect to output bus
+ [ circle rad (0.04*linewid) fill 0 ] with .c at T1.c
+ move to last [].c ; line down (A2.y-A1.y)/2
+ line to (TOL-(1*(linewid/10)*5/2,0),Here) ; arrow to (Here,TOL)
+ [ circle rad (0.04*linewid) fill 0 ] with .c at T2.c
+ move to last [].c ; line down (A2.y-A1.y)/2
+ line to (TOL-(2*(linewid/10)*5/2,0),Here) ; arrow to (Here,TOL)
+ [ circle rad (0.04*linewid) fill 0 ] with .c at T3.c
+ move to last [].c ; line down (A2.y-A1.y)/2
+ line to (TOL-(3*(linewid/10)*5/2,0),Here) ; arrow to (Here,TOL)
+
+
+# G1 to G2
+ [ circle rad (0.04*linewid) fill 0 ] with .c at (T1.c,G1)
+ move to last [].c; line to (Here,G2.In1) then to G2.In1
+
+# Upper And inputs to output bus
+ line left 4*(linewid/10)*5/2 from G3.In1
+ arrow to (Here,TOL)
+ line left 3*(linewid/10)*5/2 from G3.In2
+ arrow to (Here,TOL)
+ line left 2*(linewid/10)*5/2 from G3.In3
+ arrow to (Here,TOL)
+ line left 1*(linewid/10)*5/2 from G3.In4
+ arrow to (Here,TOL)
+
+
+ line from B2.Out to (G3.In1,B2)-(4*(linewid/10)*5/2,0) ; [ circle rad (0.04*linewid) fill 0 ] with .c at Here
+ move to last [].c
+ line from B4.Out to (G3.In2,B4)-(3*(linewid/10)*5/2,0) ; [ circle rad (0.04*linewid) fill 0 ] with .c at Here
+ move to last [].c
+ line from B6.Out to (G3.In3,B6)-(2*(linewid/10)*5/2,0) ; [ circle rad (0.04*linewid) fill 0 ] with .c at Here
+ move to last [].c
+ line from G1.Out to (G3.In4,G1)-((linewid/10)*5/2,0) ; [ circle rad (0.04*linewid) fill 0 ] with .c at Here
+ move to last [].c
+
+# Lower And inputs
+ line left 4*(linewid/10)*5/2 from G5.In1 ; [ circle rad (0.04*linewid) fill 0 ] with .c at Here
+ move to last [].c
+ line left 3*(linewid/10)*5/2 from G5.In2 ; [ circle rad (0.04*linewid) fill 0 ] with .c at Here
+ move to last [].c
+ line left 2*(linewid/10)*5/2 from G5.In3 ; [ circle rad (0.04*linewid) fill 0 ] with .c at Here
+ move to last [].c
+ line from G2.Out to G5.In4 ; [ circle rad (0.04*linewid) fill 0 ] with .c at (TOL,Here)
+ move to last [].c ; arrow to (Here,TOL)
+
+# Fix up G4, G6, G7
+ line from G3.Out to G4.In1
+ line right (linewid/10)*5/2 from G4.Out
+ {[ circle rad (0.04*linewid) fill 0 ] with .c at Here
+ move to last [].c; line right (linewid/10)*5/2 ; "\sf Q7" ljust; move right 0.2 } # letters in object
+ line down 2*(linewid/10)*5/2 then to G6.In1+(-(linewid/10)*5/2,(linewid/10)*5/2)
+ line to (Here,G6.In1) then to G6.In1
+ line from G4.In2 to (G6.In1+(-(linewid/10)*5/2,0),G4.In2)
+ line down (linewid/10)*5/2 then to G7.Out+((linewid/10)*5/2,2*(linewid/10)*5/2)
+ line to (Here,G7) then to G7.Out
+ line from G6.Out right (linewid/10)*5/2 ; line to (Here,G7.In1) then to G7.In1
+ line from G5.Out to G7.In2
+ line left (linewid/10)*5/2 from G6.In2 ; arrow to (Here,TOL)
+ [ circle rad (0.04*linewid) fill 0 ] with .c at (Here,C)
+ move to last [].c ; line to B7.Out
+
+.PE