.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