%! PostScript set of library objects for XCircuit
%  Version: 2.3
%  Library name is: generic
%  Author: R. Timothy Edwards <tim@stravinsky.jhuapl.edu>

% Depend arrow arrowhead
% Depend netquery arrowhead

% XCircuitLib library of objects

/generic::arrowhead {
% nonetwork
begingate
8 -28 beginpath
3 -18 3 -15 0 0 curveto
-3 -15 -3 -18 -8 -28 curveto
-2 -26 2 -26 8 -28 curveto
249  1.00 endpath
endgate
} def

1.00 90 /generic::arrowhead libinst

/generic::jumper {
% trivial
begingate
1 1.0 0 0 10 -90 90 xcarc 
0 10 0 16 wire
0 -10 0 -16 wire
1 0 0 scb
(a) {/Times-Roman cf} 2 1 0 1.0 0 16 pinlabel
(a) {/Times-Roman cf} 2 13 0 1.0 0 -16 pinlabel
sce
endgate
} def

1.00 90 /generic::jumper libinst

/generic::circle {
% trivial
begingate
1 1.0 16 0 6 0 360 xcarc
0 0 10 0 wire
1 0 0 scb
(out) {/Times-Roman cf} 2 4 0 1.0 16 0 pinlabel
(out) {/Times-Roman cf} 2 7 0 1.0 0 0 pinlabel
sce
endgate
} def

1.00 90 /generic::circle libinst

/generic::arrow {
% nonetwork
begingate
1 0.8 0 -40 0 20 2 polygon
1.0 0 0 40 generic::arrowhead
endgate
} def

1.00 90 /generic::arrow libinst
1.00 45 /generic::arrow libinst

/generic::dot {
% trivial
begingate
248 1.0 0 0 6 0 360 xcarc
1 0 0 scb
(x) {/Times-Roman cf} 2 29 0 1.0 0 0 pinlabel
endgate  
} def

/generic::tap {
% trivial
<</in (bus\(0:7\)) /out (bus\(0\)) >> begingate
496 1.0 0 8 16 0 0 -8 3 polygon
1 0 0 scb
mark out {/Helvetica cf} ctmk 20 0 1.0 16 0 pinlabel
mark in {/Helvetica cf} ctmk 23 0 1.0 0 0 pinlabel
endgate
} def

/generic::netquery {
% nonetwork
<</netname (\(none\)) (netlist get {0 0} -up -hier -quiet) pop >> begingate
1 1.00 8 8 16 16 80 16 3 polygon
mark netname {/Times-Roman cf} ctmk 16 0 1.00 16 24 label
0.65 135 0 0 generic::arrowhead
endgate
} def


% EndLib
