summaryrefslogtreecommitdiff
path: root/graphics/circuit_macros/doc/LogicMan.m4
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/circuit_macros/doc/LogicMan.m4')
-rw-r--r--graphics/circuit_macros/doc/LogicMan.m462
1 files changed, 62 insertions, 0 deletions
diff --git a/graphics/circuit_macros/doc/LogicMan.m4 b/graphics/circuit_macros/doc/LogicMan.m4
new file mode 100644
index 0000000000..d42e02768e
--- /dev/null
+++ b/graphics/circuit_macros/doc/LogicMan.m4
@@ -0,0 +1,62 @@
+.PS
+# Logic.m4
+cct_init
+ifdef(`AND_gate',,`include(liblog.m4)')
+xgap = 0.6
+[ dmov = 0.4
+{ {AND_gate ; "{\tt AND\_gate}" ljust at last [].w + (xgap,0)}
+ move down dmov; right_
+ {OR_gate ; "{\tt OR\_gate}" ljust at last [].w + (xgap,0)}
+ move down dmov; right_
+ {BUFFER_gate ; "{\tt BUFFER\_gate}" ljust at last [].w + (xgap,0)}
+ move down dmov; right_
+ {XOR_gate ; "{\tt XOR\_gate}" ljust at last [].w + (xgap,0)}
+ }
+
+ move right_ 140pt__
+{ { NAND_gate; "{\tt NAND\_gate}" ljust at last [].w + (xgap,0) }
+ move down dmov; right_
+ { Gate: NOR_gate(3)
+ "{\tt NOR\_gate(3)}" ljust at last [].w + (xgap,0)
+ thinlines_
+ spline <- from Gate.Out right arrowht*2.0 \
+ then up 0.15 then right 0.05
+ "{\tt Out}" ljust
+ spline <- from Gate.N_Out down arrowht*2.0 \
+ then right 0.1+arrowht*1.5+NOT_rad down 0.15-arrowht*2.0
+ "{\tt N\_Out}" ljust
+ for_(1,3,1,
+ `arrow <- left 0.2 down 0.05 from Gate.In`'m4x
+ "{\tt In`'m4x\/}" rjust at Here+(0,(2-m4x)*0.02)')
+ }
+ thicklines_
+ move down dmov; right_
+ { NOT_gate ; "{\tt NOT\_gate}" ljust at last [].w + (xgap,0) }
+ move down dmov; right_
+ {Gate: NXOR_gate(NPN); "{\tt NXOR\_gate(NPN)}" ljust at last [].w + (xgap,0)
+ for_(1,3,1,
+ `arrow <- left 0.2 up 0.05 from Gate.In`'m4x
+ "{\tt In`'m4x\/}" rjust at Here+(0,(2-m4x)*0.02)')
+ }
+}
+ move right_ 140pt__
+{ {NAND_gate(,B) ; "{\tt NAND\_gate(,B)}" ljust at last [].w + (xgap,0)}
+ { line invis right 1.6 from last [].se then down 1}
+ move down dmov; right_
+ move left N_diam*L_unit; right_
+ {NOR_gate(3,NB) ; "{\tt NOR\_gate(3,NB)}" ljust at (last "",last []) }
+ move down dmov; right_
+ {BOX_gate(PN,N,,,=1)
+ "{\tt BOX\_gate(PN,N,{,},=1)}" ljust at (last "",last [])
+ line left 0.15 from last [].In1
+ line left 0.15-NOT_rad*2 from last [].In2
+ line right 0.15 from last [].Out }
+ move down dmov; move right_ N_diam*L_unit
+ {BOX_gate(PP,N,,,=)
+ "{\tt BOX\_gate(PP,N,{,},=)}" ljust at (last "",last [])
+ line left 0.15 from last [].In1
+ line left 0.15 from last [].In2
+ line right 0.15 from last [].Out }
+}
+]
+.PE