summaryrefslogtreecommitdiff
path: root/psfiles/buses.ps
blob: 76b21a787e0d20d42e1e88a336b5976299dd4946 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
%!PS-Adobe-3.0 EPSF-3.0
%%Title: buses
%%Creator: Xcircuit v2.3
%%CreationDate: Mon Nov  5 11:36:02 2001
%%Pages: 1
%%BoundingBox: 68 68 712 496
%%DocumentNeededResources: font Helvetica font Helvetica-Oblique 
%%EndComments
%%BeginProlog
%
%  PostScript prolog for output from xcircuit
%  Version: 2.3
%
%  Electrical circuit (and otherwise general) drawing program
%
%  Written by Tim Edwards 8/5/93--5/16/01  (tim@bach.ece.jhu.edu)
%  The Johns Hopkins University
%
%%BeginResource: procset XCIRCproc 2.3 2
% supporting definitions --- these are the primary xcircuit types.

/XCIRCsave save def
/topmat matrix currentmatrix def

/fontslant { /slant exch def [1 0 slant 1 0 0] 
    exch findfont exch makefont dup length dict /ndict exch def
    { 1 index /FID ne { ndict 3 1 roll put } { pop pop } ifelse } forall
    ndict definefont pop} def
/ul { dup type /stringtype eq showflag 1 eq and { gsave 
   currentpoint topmat setmatrix 0 0 moveto 2 index stringwidth pop (_)
   false charpath flattenpath pathbbox grestore exch pop 1 index
   sub setlinewidth exch pop currentpoint 3 -1 roll add moveto 0
   rlineto stroke moveto } if } def
/ol { dup type /stringtype eq showflag 1 eq and { gsave gsave
   currentpoint topmat setmatrix 2 index stringwidth pop 3 index
   true charpath flattenpath pathbbox grestore exch pop
   exch pop topmat setmatrix (_) true charpath pathbbox grestore
   exch pop 1 index sub setlinewidth exch pop currentpoint
   exch 4 1 roll exch sub add moveto pop 0 rlineto stroke
   moveto } if } def
/stW { gsave currentpoint newpath moveto true charpath flattenpath
	pathbbox pop exch pop sub grestore } def
/Ts {mark Tabs aload pop counttomark 1 add array astore /Tabs exch def Tabs
	0 currentpoint pop put} def
/Tbn {mark Tabs aload pop counttomark dup 2 add 1 roll cleartomark 1 sub} def
/Tb { 0 1 Tbn {Tabs exch get dup currentpoint pop lt
	{currentpoint exch pop moveto exit} {pop} ifelse } for } def
/Tf { Tbn -1 0 {Tabs exch get dup currentpoint pop gt
	{currentpoint exch pop moveto exit} {pop} ifelse } for } def
/qS { (aa) stW (a a) stW sub 4 div 0 Kn } def
/hS { qS qS } def
/pspc 0 def
/cf0 { scalefont setfont } bind def
/Kn { dup kY add /kY exch def rmoveto } bind def
/ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul
	0.33 mul neg Kn} def
/Ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul
	0.67 mul Kn } def
/ns { 0 kY neg Kn /kY 0 def /fscale 1.0 def xfont0 1.0 cf0 } def
/CR { ns 0 /Bline Bline fscale0 neg add def Bline moveto } def
/cf { dup type /realtype ne {1.0} if exch findfont exch kY 0 eq
	{ 40 mul dup /fscale0 exch def cf0 /xfont0 currentfont def}
	{fscale0 mul fscale mul cf0} ifelse } def
/ctmk { counttomark dup 2 add -1 roll pop } bind def
/label { gsave translate 0 0 moveto dup scale /rotval exch def /just exch def
	just 16 and 0 gt {0 1 dtransform gsave pagemat setmatrix idtransform
	exch grestore 1 0 dtransform gsave pagemat setmatrix idtransform
	exch grestore dup 0 eq {pop mul 0 gt} {3 1 roll pop pop 0 lt} ifelse
	{-1 /just just dup 3 and 1 ne {3 xor} if def} {1} ifelse exch 0 lt
	{-1 /just just dup 12 and 4 ne {12 xor} if def} {1} ifelse scale }
	if /showflag 0 def /fspc pspc def /Bline 0 def /Tabs 0 array def
	/fscale 1.0 def /kY 0 def
	gsave dup 1 add copy 0 exch {exch dup type /stringtype eq {true
	charpath flattenpath} {exec} ifelse } repeat pop pathbbox grestore
	3 -1 roll pop 3 1 roll just 1 and 0 gt {just 2 and 0 gt {exch pop
	neg fspc sub} {exch sub	0.5 mul neg} ifelse} {pop neg fspc add}
	ifelse exch Bline exch just 4 and 0 gt {just 8 and 0 gt {exch pop
	neg fspc sub} {add 0.5 mul neg} ifelse} {pop neg fspc add} ifelse
	/showflag 1 def rotval rotate Kn currentpoint translate
	/Bline 0 def /Tabs 0 array def /fscale 1.0 def /kY 0 def
	{dup type /stringtype eq {show}{exec} ifelse} repeat grestore } def
/pinlabel { 4 index 32 and 0 ne hlevel 0 eq or { /pspc 20 def label
	/pspc 0 def } { pop pop pop pop pop {pop} repeat } ifelse } def
/pinglobal { pinlabel } def
/infolabel { pinlabel } def

/scb { setrgbcolor } bind def  /sce { defColor aload pop scb } bind def
/cRedef {/defColor currentcolor 3 array astore def} def
/begingate { /hlevel hlevel 1 add def /defColor currentcolor sce 3 array
	astore def gsave sce translate 0 0 moveto dup 0 lt
	{neg 1 sub -1 1 scale} if rotate dup scale } bind def
/makeparm  {3 string cvs dup length 1 add string /tstr exch def tstr exch
	1 exch putinterval tstr 0 (v) putinterval tstr cvn} bind def
/beginparm { -1 1 {makeparm exch def} for
	dup type /arraytype eq { aload length -1 1 {makeparm exch def}
	for } if begingate } bind def
/endgate { /hlevel hlevel 1 sub def grestore defColor aload pop cRedef
	scb} bind def

/hlevel 0 def
/tmpa [1 0 0 1 0 0] def
/gar {8 8 true tmpa {<c0 c0 00 00 0c 0c 00 00>} imagemask} bind
{8 8 true tmpa {<30 70 60 02 03 07 06 20>} imagemask} bind
{8 8 true tmpa {<0c 1e 1e 0c c0 e1 e1 c0>} imagemask} bind
{8 8 true tmpa {<0f 0f 0f 0f f0 f0 f0 f0>} imagemask} bind
{8 8 true tmpa {<3f f3 e1 e1 f3 3f 1e 1e>} imagemask} bind
{8 8 true tmpa {<df cf 8f 9f fd fc f8 f9>} imagemask} bind
{8 8 true tmpa {<ff 3f 3f ff ff f3 f3 ff>} imagemask} bind 7 array astore def
/ppaint { gsave clip tmpa dup setmatrix pathbbox neg exch neg 4 2 roll
  neg 4 -1 roll 2 copy gt {exch} if 8 div ceiling 8 mul 4 2 roll neg 2 copy
  gt {exch} if 8 div ceiling 8 mul 3 -1 roll -8 5 -1 roll
  { 3 index exch 5 exch put dup -8 3 index { 3 index
  exch 4 exch put 3 index exec } for } for pop pop pop pop grestore } bind def
/setstyles {
  currentlinewidth mul setlinewidth /style exch def
  style 1 and 0 gt not {closepath} if
  style 2 and 0 gt {currentlinewidth 4 mul dup 2 array astore 0 setdash} if 
  style 4 and 0 gt {0.5 currentlinewidth 4 mul 2 array astore 0 setdash} if 
  style dup 256 ge exch 480 lt and { gsave 1 setgray eofill grestore } if
  style 16 and 0 gt { gsave style 224 and -5 bitshift dup 7 lt
	{gar exch get ppaint} { pop eofill } ifelse grestore } if
  style 8 and 0 gt style 512 eq or { newpath } { stroke } ifelse grestore } def

/polygon { gsave /num exch def moveto num 1 sub {lineto} repeat setstyles } def
/xcarc   { gsave newpath arc setstyles } def
/elb { matrix currentmatrix 7 -1 roll 7 -1 roll translate 5 1 roll 4 -1 roll
	3 index div 1 scale } def
/ele { 0 4 1 roll 0 4 1 roll } bind def
/ellipse { gsave elb newpath ele arc setmatrix setstyles } def
/pellip  { elb ele arc setmatrix } def
/nellip  { elb ele arcn setmatrix } def
/spline  { gsave moveto curveto setstyles } def
/polyc   { {lineto} repeat } bind def
/beginpath { gsave moveto } bind def
/endpath { setstyles } bind def
/bop	 { 1 setlinecap 0 setlinejoin 6 setmiterlimit 0 0 0 scb cRedef } def
/insertion {/PSobj save def /showpage {} def bop translate} def
/end_insert {PSobj restore} def
/setpagemat {/pagemat matrix currentmatrix def} def
/inchscale  {setpagemat 0.375 mul dup scale} def
/cmscale    {setpagemat 0.35433071 mul dup scale} def

%%EndResource
%%EndProlog

% XCircuit output starts here.

/dbus1 {
% -608 0 1216 42 bbox
begingate
1.000 0.000 0.000 scb
(d[3]) {/Helvetica cf} 2 23 0 1.00 -608 -64 pinlabel
(d[2]) {/Helvetica cf} 2 23 0 1.00 -608 -32 pinlabel
(d[1]) {/Helvetica cf} 2 23 0 1.00 -608 0 pinlabel
(d[0]) {/Helvetica cf} 2 23 0 1.00 -608 32 pinlabel
(d[3]) {/Helvetica cf} 2 20 0 1.00 608 -64 pinlabel
(d[2]) {/Helvetica cf} 2 20 0 1.00 608 -32 pinlabel
(d[1]) {/Helvetica cf} 2 20 0 1.00 608 0 pinlabel
(d[0]) {/Helvetica cf} 2 20 0 1.00 608 32 pinlabel
sce
(data bus) {/Helvetica cf} 2 17 0 1.00 -64 16 label
1  1.00 -608 0 608 0 2 polygon
endgate
} def

/chip1 {
% -96 -96 192 192 bbox
(?)  1 beginparm
0  1.00 -96 -96 -96 96 96 96 96 -96 4 polygon
( data ) {/Helvetica cf} 2 23 0 1.00 96 0 label
1.000 0.000 0.000 scb
(p0) {/Helvetica cf} 2 20 0 1.00 96 48 pinlabel
(p1) {/Helvetica cf} 2 20 0 1.00 96 16 pinlabel
(p2) {/Helvetica cf} 2 20 0 1.00 96 -16 pinlabel
(p3) {/Helvetica cf} 2 20 0 1.00 96 -48 pinlabel
sce
mark v1 (Chip ) {/Helvetica cf} ctmk 21 0 1.00 0 64 label
endgate
} def

/arrowhead {
% -12 -32 24 36 bbox
% trivial
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

/arrow {
% -12 -40 24 80 bbox
% trivial
begingate
1  0.80 0 -40 0 20 2 polygon
1.00 0 0 40 arrowhead
endgate
} def

%%Page: 1 1
%%PageOrientation: Portrait
/pgsave save def bop
% 1152 692 offsets
1.0000 inchscale
2.6000 setlinewidth

1  1.00 288 756 288 884 672 884 672 756 4 polygon
1  1.00 352 1012 352 884 608 884 608 1012 4 polygon
1  1.00 432 1012 432 884 752 884 752 756 4 polygon
1  1.00 224 1012 224 884 864 884 864 756 4 polygon
1  2.00 224 884 864 884 2 polygon
1  1.00 1312 1108 1312 980 1728 980 1728 596 1888 596 5 polygon
1  1.00 1408 1108 1408 980 1728 980 1728 692 1888 692 5 polygon
1  1.00 1584 964 1600 996 2 polygon
(2) {/Helvetica cf} 2 17 0 1.00 1584 996 label
1.000 0.000 0.000 scb
(b\(1\)) {/Helvetica cf} 2 17 0 1.00 1312 1108 pinlabel
(b\(2\)) {/Helvetica cf} 2 17 0 1.00 1408 1108 pinlabel
(a[0]) {/Helvetica cf} 2 17 0 1.00 224 1012 pinlabel
(a[1]) {/Helvetica cf} 2 17 0 1.00 352 1012 pinlabel
(a[2]) {/Helvetica cf} 2 17 0 1.00 432 1012 pinlabel
(a[3]) {/Helvetica cf} 2 29 0 1.00 288 756 pinlabel
sce
1.00 0 1024 340 dbus1
1.00 0 320 324 [(1) ] chip1
1.00 -1 1728 324 [(2) ] chip1
(Three styles of buses in xcircuit) {ul} {/Helvetica cf} 3 21 0 1.00 992 1300 
label
(1\) \252standard\272 method) {/Helvetica cf} 2 16 0 1.00 192 1172 label
(" to see actual pins.) {/Helvetica cf} (Options->Show Pin Positions) 
{/Helvetica-Oblique cf} (2\) \252sneaky\272 method.  Use ") {/Helvetica cf} 6 
16 0 1.00 224 500 label
1.00 120 448 388 arrow
(real pin position \(normally not seen\)) {/Helvetica cf} 2 16 0 0.80 496 420 
label
1.00 60 992 308 arrow
(named the same.) {CR} (Pins on either end are) {CR} (The bus is a subcircuit.) 
{/Helvetica cf} 6 28 0 0.80 1040 276 label
pgsave restore showpage

%%Trailer
XCIRCsave restore
%%EOF