blob: bf65d1556caa553776f8cb55abd99c876772f767 (
plain) (
tree)
|
|
%!PS-Adobe-2.0 EPSF-2.0
%%Title: erl_fix_alloc.fig
%%Creator: fig2dev Version 3.1 Patchlevel 2
%%CreationDate: Tue May 20 11:10:33 1997
%%For: jocke@akvavit (Joakim Greben|,ETX/B/DUP)
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 506 462
%%Pages: 0
%%BeginSetup
%%IncludeFeature: *PageSize A4
%%EndSetup
%%EndComments
/MyAppDict 100 dict dup begin def
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
save
-18.0 481.0 translate
1 -1 scale
.9 .9 scale % to make patterns same scale as in xfig
% This junk string is used by the show operators
/PATsstr 1 string def
/PATawidthshow { % cx cy cchar rx ry string
% Loop over each character in the string
{ % cx cy cchar rx ry char
% Show the character
dup % cx cy cchar rx ry char char
PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char)
false charpath % cx cy cchar rx ry char
/clip load PATdraw
% Move past the character (charpath modified the
% current point)
currentpoint % cx cy cchar rx ry char x y
newpath
moveto % cx cy cchar rx ry char
% Reposition by cx,cy if the character in the string is cchar
3 index eq { % cx cy cchar rx ry
4 index 4 index rmoveto
} if
% Reposition all characters by rx ry
2 copy rmoveto % cx cy cchar rx ry
} forall
pop pop pop pop pop % -
currentpoint
newpath
moveto
} bind def
/PATcg {
7 dict dup begin
/lw currentlinewidth def
/lc currentlinecap def
/lj currentlinejoin def
/ml currentmiterlimit def
/ds [ currentdash ] def
/cc [ currentrgbcolor ] def
/cm matrix currentmatrix def
end
} bind def
% PATdraw - calculates the boundaries of the object and
% fills it with the current pattern
/PATdraw { % proc
save exch
PATpcalc % proc nw nh px py
5 -1 roll exec % nw nh px py
newpath
PATfill % -
restore
} bind def
% PATfill - performs the tiling for the shape
/PATfill { % nw nh px py PATfill -
PATDict /CurrentPattern get dup begin
setfont
% Set the coordinate system to Pattern Space
PatternGState PATsg
% Set the color for uncolored pattezns
PaintType 2 eq { PATDict /PColor get PATsc } if
% Create the string for showing
3 index string % nw nh px py str
% Loop for each of the pattern sources
0 1 Multi 1 sub { % nw nh px py str source
% Move to the starting location
3 index 3 index % nw nh px py str source px py
moveto % nw nh px py str source
% For multiple sources, set the appropriate color
Multi 1 ne { dup PC exch get PATsc } if
% Set the appropriate string for the source
0 1 7 index 1 sub { 2 index exch 2 index put } for pop
% Loop over the number of vertical cells
3 index % nw nh px py str nh
{ % nw nh px py str
currentpoint % nw nh px py str cx cy
2 index show % nw nh px py str cx cy
YStep add moveto % nw nh px py str
} repeat % nw nh px py str
} for
5 { pop } repeat
end
} bind def
% PATkshow - kshow with the current pattezn
/PATkshow { % proc string
exch bind % string proc
1 index 0 get % string proc char
% Loop over all but the last character in the string
0 1 4 index length 2 sub {
% string proc char idx
% Find the n+1th character in the string
3 index exch 1 add get % string proe char char+1
exch 2 copy % strinq proc char+1 char char+1 char
% Now show the nth character
PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr)
false charpath % string proc char+1 char char+1
/clip load PATdraw
% Move past the character (charpath modified the current point)
currentpoint newpath moveto
% Execute the user proc (should consume char and char+1)
mark 3 1 roll % string proc char+1 mark char char+1
4 index exec % string proc char+1 mark...
cleartomark % string proc char+1
} for
% Now display the last character
PATsstr dup 0 4 -1 roll put % string proc (char+1)
false charpath % string proc
/clip load PATdraw
neewath
pop pop % -
} bind def
% PATmp - the makepattern equivalent
/PATmp { % patdict patmtx PATmp patinstance
exch dup length 7 add % We will add 6 new entries plus 1 FID
dict copy % Create a new dictionary
begin
% Matrix to install when painting the pattern
TilingType PATtcalc
/PatternGState PATcg def
PatternGState /cm 3 -1 roll put
% Check for multi pattern sources (Level 1 fast color patterns)
currentdict /Multi known not { /Multi 1 def } if
% Font dictionary definitions
/FontType 3 def
% Create a dummy encoding vector
/Encoding 256 array def
3 string 0 1 255 {
Encoding exch dup 3 index cvs cvn put } for pop
/FontMatrix matrix def
/FontBBox BBox def
/BuildChar {
mark 3 1 roll % mark dict char
exch begin
Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata]
PaintType 2 eq Multi 1 ne or
{ XStep 0 FontBBox aload pop setcachedevice }
{ XStep 0 setcharwidth } ifelse
currentdict % mark [paintdata] dict
/PaintProc load % mark [paintdata] dict paintproc
end
gsave
false PATredef exec true PATredef
grestore
cleartomark % -
} bind def
currentdict
end % newdict
/foo exch % /foo newlict
definefont % newfont
} bind def
% PATpcalc - calculates the starting point and width/height
% of the tile fill for the shape
/PATpcalc { % - PATpcalc nw nh px py
PATDict /CurrentPattern get begin
gsave
% Set up the coordinate system to Pattern Space
% and lock down pattern
PatternGState /cm get setmatrix
BBox aload pop pop pop translate
% Determine the bounding box of the shape
pathbbox % llx lly urx ury
grestore
% Determine (nw, nh) the # of cells to paint width and height
PatHeight div ceiling % llx lly urx qh
4 1 roll % qh llx lly urx
PatWidth div ceiling % qh llx lly qw
4 1 roll % qw qh llx lly
PatHeight div floor % qw qh llx ph
4 1 roll % ph qw qh llx
PatWidth div floor % ph qw qh pw
4 1 roll % pw ph qw qh
2 index sub cvi abs % pw ph qs qh-ph
exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph
% Determine the starting point of the pattern fill
%(px, py)
4 2 roll % nw nh pw ph
PatHeight mul % nw nh pw py
exch % nw nh py pw
PatWidth mul exch % nw nh px py
end
} bind def
% Save the original routines so that we can use them later on
/oldfill /fill load def
/oldeofill /eofill load def
/oldstroke /stroke load def
/oldshow /show load def
/oldashow /ashow load def
/oldwidthshow /widthshow load def
/oldawidthshow /awidthshow load def
/oldkshow /kshow load def
% These defs are necessary so that subsequent procs don't bind in
% the originals
/fill { oldfill } bind def
/eofill { oldeofill } bind def
/stroke { oldstroke } bind def
/show { oldshow } bind def
/ashow { oldashow } bind def
/widthshow { oldwidthshow } bind def
/awidthshow { oldawidthshow } bind def
/kshow { oldkshow } bind def
/PATredef {
MyAppDict begin
{
/fill { /clip load PATdraw newpath } bind def
/eofill { /eoclip load PATdraw newpath } bind def
/stroke { PATstroke } bind def
/show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
/ashow { 0 0 null 6 3 roll PATawidthshow }
bind def
/widthshow { 0 0 3 -1 roll PATawidthshow }
bind def
/awidthshow { PATawidthshow } bind def
/kshow { PATkshow } bind def
} {
/fill { oldfill } bind def
/eofill { oldeofill } bind def
/stroke { oldstroke } bind def
/show { oldshow } bind def
/ashow { oldashow } bind def
/widthshow { oldwidthshow } bind def
/awidthshow { oldawidthshow } bind def
/kshow { oldkshow } bind def
} ifelse
end
} bind def
false PATredef
% Conditionally define setcmykcolor if not available
/setcmykcolor where { pop } {
/setcmykcolor {
1 sub 4 1 roll
3 {
3 index add neg dup 0 lt { pop 0 } if 3 1 roll
} repeat
setrgbcolor - pop
} bind def
} ifelse
/PATsc { % colorarray
aload length % c1 ... cn length
dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor
} ifelse } ifelse
} bind def
/PATsg { % dict
begin
lw setlinewidth
lc setlinecap
lj setlinejoin
ml setmiterlimit
ds aload pop setdash
cc aload pop setrgbcolor
cm setmatrix
end
} bind def
/PATDict 3 dict def
/PATsp {
true PATredef
PATDict begin
/CurrentPattern exch def
% If it's an uncolored pattern, save the color
CurrentPattern /PaintType get 2 eq {
/PColor exch def
} if
/CColor [ currentrgbcolor ] def
end
} bind def
% PATstroke - stroke with the current pattern
/PATstroke {
countdictstack
save
mark
{
currentpoint strokepath moveto
PATpcalc % proc nw nh px py
clip newpath PATfill
} stopped {
(*** PATstroke Warning: Path is too complex, stroking
with gray) =
cleartomark
restore
countdictstack exch sub dup 0 gt
{ { end } repeat } { pop } ifelse
gsave 0.5 setgray oldstroke grestore
} { pop restore pop } ifelse
newpath
} bind def
/PATtcalc { % modmtx tilingtype PATtcalc tilematrix
% Note: tiling types 2 and 3 are not supported
gsave
exch concat % tilingtype
matrix currentmatrix exch % cmtx tilingtype
% Tiling type 1 and 3: constant spacing
2 ne {
% Distort the pattern so that it occupies
% an integral number of device pixels
dup 4 get exch dup 5 get exch % tx ty cmtx
XStep 0 dtransform
round exch round exch % tx ty cmtx dx.x dx.y
XStep div exch XStep div exch % tx ty cmtx a b
0 YStep dtransform
round exch round exch % tx ty cmtx a b dy.x dy.y
YStep div exch YStep div exch % tx ty cmtx a b c d
7 -3 roll astore % { a b c d tx ty }
} if
grestore
} bind def
/PATusp {
false PATredef
PATDict begin
CColor PATsc
end
} bind def
% right30
11 dict begin
/PaintType 1 def
/PatternType 1 def
/TilingType 1 def
/BBox [0 0 1 1] def
/XStep 1 def
/YStep 1 def
/PatWidth 1 def
/PatHeight 1 def
/Multi 2 def
/PaintData [
{ clippath } bind
{ 32 16 true [ 32 0 0 -16 0 16 ]
{<00030003000c000c0030003000c000c0030003000c000c00
30003000c000c00000030003000c000c0030003000c000c0
030003000c000c0030003000c000c000>}
imagemask } bind
] def
/PaintProc {
pop
exec fill
} def
currentdict
end
/P2 exch def
1.1111 1.1111 scale %restore scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/DrawSplineSection {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
/xa x1 x2 x1 sub 0.666667 mul add def
/ya y1 y2 y1 sub 0.666667 mul add def
/xb x3 x2 x3 sub 0.666667 mul add def
/yb y3 y2 y3 sub 0.666667 mul add def
x1 y1 lineto
xa ya xb yb x3 y3 curveto
} def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog
$F2psBegin
10 setmiterlimit
n 0 842 m 0 0 l 595 0 l 595 842 l cp clip
0.06000 0.06000 sc
7.500 slw
% Polyline
n 750 3600 m 750 1200 l 2325 1200 l 2325 3600 l gs col-1 s gr
% Polyline
n 750 1500 m 2325 1500 l gs col-1 s gr
% Polyline
n 750 1800 m 2325 1800 l gs col-1 s gr
15.000 slw
% Polyline
n 375 2100 m 2775 2100 l gs col-1 s gr
/Times-Roman ff 180.00 scf sf
900 2025 m
gs 1 -1 sc (allocated_blocks) col-1 sh gr
/Times-Roman ff 180.00 scf sf
1200 1725 m
gs 1 -1 sc (free_list) col-1 sh gr
/Times-Roman ff 180.00 scf sf
1200 1425 m
gs 1 -1 sc (item_size) col-1 sh gr
7.500 slw
% Polyline
n 3525 1200 m 5025 1200 l 5025 1800 l 3525 1800 l cp gs col-1 s gr
% Polyline
n 3525 1500 m 5025 1500 l gs col-1 s gr
/Times-Roman ff 180.00 scf sf
4050 1425 m
gs 1 -1 sc (next) col-1 sh gr
/Times-Roman ff 180.00 scf sf
4050 1725 m
gs 1 -1 sc (block) col-1 sh gr
% Polyline
n 5850 1200 m 7350 1200 l 7350 1800 l 5850 1800 l cp gs col-1 s gr
% Polyline
n 5850 1500 m 7350 1500 l gs col-1 s gr
/Times-Roman ff 180.00 scf sf
6375 1425 m
gs 1 -1 sc (next) col-1 sh gr
/Times-Roman ff 180.00 scf sf
6375 1725 m
gs 1 -1 sc (block) col-1 sh gr
15.000 slw
% Polyline
[100.0] 0 sd
n 3450 5700 m 5400 5700 l gs col-1 s gr [] 0 sd
7.500 slw
% Polyline
n 3600 8000 m 3600 3450 l 5175 3450 l 5175 8000 l gs col-1 s gr
15.000 slw
% Polyline
[100.0] 0 sd
n 3525 6900 m 5325 6900 l gs col-1 s gr [] 0 sd
0.000 slw
% Polyline
[33.3] 0 sd
n 3675 3525 m 5100 3525 l 5100 4425 l 3675 4425 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
15.00 15.00 sc P2 [16 0 0 -8 245.00 235.00] PATmp PATsp ef gr PATusp [] 0 sd
% Polyline
[33.3] 0 sd
n 3675 5775 m 5100 5775 l 5100 6825 l 3675 6825 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
15.00 15.00 sc P2 [16 0 0 -8 245.00 385.00] PATmp PATsp ef gr PATusp [] 0 sd
7.500 slw
% Polyline
[15 50.0] 50.0 sd
n 3600 4725 m 5250 4725 l gs col-1 s gr [] 0 sd
% Polyline
[15 50.0] 50.0 sd
n 3600 4950 m 5175 4950 l gs col-1 s gr [] 0 sd
0.000 slw
% Polyline
[15 25.0] 25.0 sd
n 6375 3750 m 6675 3750 l 6675 4050 l 6375 4050 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
15.00 15.00 sc P2 [16 0 0 -8 425.00 250.00] PATmp PATsp ef gr PATusp [] 0 sd
7.500 slw
% Polyline
gs clippath
4305 3253 m 4275 3373 l 4245 3253 l 4245 3415 l 4305 3415 l cp clip
n 4275 1800 m 4275 3400 l gs col-1 s gr gr
% arrowhead
n 4305 3253 m 4275 3373 l 4245 3253 l 4275 3253 l 4305 3253 l cp gs 0.00 setgray ef gr col-1 s
15.000 slw
% Polyline
[100.0] 0 sd
n 3450 4500 m 5325 4500 l gs col-1 s gr [] 0 sd
7.500 slw
% Polyline
gs clippath
6630 2778 m 6600 2898 l 6570 2778 l 6570 2940 l 6630 2940 l cp clip
n 6600 1800 m 6600 2925 l gs col-1 s gr gr
% arrowhead
n 6630 2778 m 6600 2898 l 6570 2778 l 6600 2778 l 6630 2778 l cp gs 0.00 setgray ef gr col-1 s
15.000 slw
% Polyline
gs clippath
656 840 m 723 1078 l 552 900 l 713 1181 l 817 1121 l cp clip
n 450 600 m 750 1125 l gs col-1 s gr gr
% arrowhead
n 656 840 m 723 1078 l 552 900 l 604 870 l 656 840 l cp gs 0.00 setgray ef gr col-1 s
% Open spline
gs clippath
5627 1227 m 5749 1210 l 5650 1282 l 5800 1222 l 5778 1167 l cp clip
7.500 slw
n 4875.0 1350.0 m 5137.5 1350.0 l
5137.5 1350.0 5400.0 1350.0 5587.5 1275.0 DrawSplineSection
5775.0 1200.0 l gs col-1 s gr
gr
% arrowhead
n 5627 1227 m 5749 1210 l 5650 1282 l 5639 1255 l 5627 1227 l cp gs 0.00 setgray ef gr col-1 s
% Open spline
gs clippath
7877 1227 m 7999 1210 l 7900 1282 l 8050 1222 l 8028 1167 l cp clip
n 7125.0 1350.0 m 7387.5 1350.0 l
7387.5 1350.0 7650.0 1350.0 7837.5 1275.0 DrawSplineSection
8025.0 1200.0 l gs col-1 s gr
gr
% arrowhead
n 7877 1227 m 7999 1210 l 7900 1282 l 7889 1255 l 7877 1227 l cp gs 0.00 setgray ef gr col-1 s
% Interp Spline
gs clippath
3308 4453 m 3423 4496 l 3300 4512 l 3461 4532 l 3468 4472 l cp clip
n 2175 1650 m
2346.9 1637.5 2421.9 1637.5 2475 1650 curveto
2514.6 1659.3 2593.0 1702.0 2625 1725 curveto
2665.4 1754.1 2753.1 1822.2 2775 1875 curveto
2790.5 1912.4 2775.0 1990.8 2775 2025 curveto
2775.0 2537.6 2542.8 3714.4 2775 4275 curveto
2785.9 4301.4 2829.8 4335.4 2850 4350 curveto
2882.0 4373.0 2962.7 4412.9 3000 4425 curveto
3076.1 4449.8 3188.6 4468.5 3450 4500 curveto
gs col-1 s gr
gr
% arrowhead
n 3308 4453 m 3423 4496 l 3300 4512 l 3304 4483 l 3308 4453 l cp gs 0.00 setgray ef gr col-1 s
% Interp Spline
gs clippath
5325 6973 m 5201 6969 l 5312 6914 l 5154 6949 l 5167 7007 l cp clip
n 5100 4575 m
5270.9 4558.6 5345.9 4558.6 5400 4575 curveto
5465.1 4594.7 5582.7 4669.6 5625 4725 curveto
5662.1 4773.6 5691.1 4895.0 5700 4950 curveto
5764.9 5350.0 5796.1 6267.8 5700 6675 curveto
5690.7 6714.6 5655.4 6794.6 5625 6825 curveto
5594.6 6855.4 5511.4 6886.6 5475 6900 curveto
5424.7 6918.6 5349.7 6937.4 5175 6975 curveto
gs col-1 s gr
gr
% arrowhead
n 5325 6973 m 5201 6969 l 5312 6914 l 5319 6944 l 5325 6973 l cp gs 0.00 setgray ef gr col-1 s
% Interp Spline
gs clippath
3300 1202 m 3423 1205 l 3313 1261 l 3471 1226 l 3458 1168 l cp clip
n 2250 1950 m
2378.9 1959.4 2435.2 1959.4 2475 1950 curveto
2514.6 1940.7 2593.0 1898.0 2625 1875 curveto
2665.4 1845.9 2745.9 1765.4 2775 1725 curveto
2821.1 1661.1 2878.9 1488.9 2925 1425 curveto
2939.6 1404.8 2979.8 1364.6 3000 1350 curveto
3032.0 1327.0 3113.7 1288.5 3150 1275 curveto
3200.3 1256.4 3275.3 1237.7 3450 1200 curveto
gs col-1 s gr
gr
% arrowhead
n 3300 1202 m 3423 1205 l 3313 1261 l 3306 1231 l 3300 1202 l cp gs 0.00 setgray ef gr col-1 s
/Times-Roman ff 180.00 scf sf
3975 4650 m
gs 1 -1 sc (next_free) col-1 sh gr
/Times-Roman ff 180.00 scf sf
4050 4875 m
gs 1 -1 sc (magic) col-1 sh gr
/Times-Bold ff 210.00 scf sf
6825 3975 m
gs 1 -1 sc (= allocated memory) col-1 sh gr
/Helvetica-Bold ff 180.00 scf sf
3675 1125 m
gs 1 -1 sc (AllocatedBlock) col-1 sh gr
/Helvetica-Bold ff 180.00 scf sf
1575 1125 m
gs 1 -1 sc (FixItem) col-1 sh gr
/Helvetica-Bold ff 180.00 scf sf
2400 4650 m
gs 1 -1 sc (FreeHeader) col-1 sh gr
/Times-Bold ff 180.00 scf sf
5250 3600 m
gs 1 -1 sc 270.0 rot (item_size) col-1 sh gr
/Times-Bold ff 270.00 scf sf
300 525 m
gs 1 -1 sc (fix_array) col-1 sh gr
$F2psEnd
rs
end
|