%
% PostScript header for NASM documentation
%

% Avoid barfing on old PS implementations
/pdfmark where
{pop} {userdict /pdfmark /cleartomark load put} ifelse
/setpagedevice where
{pop} {userdict /setpagedevice /pop load put} ifelse

% Useful definition
/space 32 def

%
% This asks the PostScript interpreter for the proper size paper
%
/setpagesize {
  1 dict dup /PageSize [pagewidth pageheight] put setpagedevice
} def

%
% Code to handle links
%
/min { 2 copy gt { exch } if pop } def
/max { 2 copy lt { exch } if pop } def

/lkbegun 0 def
/lktype null def
/lkury 0 def
/lkurx 0 def
/lklly 0 def
/lkllx 0 def
/lkxmarg 1 def	% Extra space for link in x dir
/lkymarg 1 def	% Extra space for link in y dir
/lktarget () def

% target type --
/linkbegin {
  userdict begin
    /lkbegun 1 def
    /lktype exch def
    /lktarget exch def
    colorlinks { 0 0 0.4 setrgbcolor } if
  end
} def

% target --
/linkbegindest {
  /Dest linkbegin
} def

% uristring --
/linkbeginuri {
  /URI linkbegin
} def

% pageno --
/linkbeginpage {
  /Page linkbegin
} def

% string spacepadding --
/linkshow {
  userdict begin
    /lspad exch def /lss exch def
    lkbegun 0 ne {
      gsave lss true charpath flattenpath pathbbox grestore
      lkbegun 1 eq {
        /lkury exch def
        lss spacecount lspad mul add /lkurx exch def
        /lklly exch def
        /lkllx exch def
        /lkbegun 2 def
      } {
        lkury max /lkury exch def
        lss spacecount lspad mul add lkurx max /lkurx exch def
        lklly min /lklly exch def
        lkllx min /lkllx exch def
      } ifelse
    } if
    lspad 0 space lss widthshow
  end
} def

% --
/linkend {
  userdict begin
    [ lktype /URI eq {
        /Action 2 dict dup /Subtype /URI put dup /URI lktarget put
      } {
	/Dest lktarget
      } ifelse
      /Border [0 0 0]
      /Rect [ lkllx lkxmarg sub
              lklly lkymarg sub
              lkurx lkxmarg add
              lkury lkymarg add ]
      /Subtype /Link
      /ANN pdfmark
    /lkbegun 0 def
    colorlinks { 0 setgray } if
  end
} def

% targetname --
/linkdest {
  [ /Dest 3 -1 roll
    /View [ /XYZ currentpoint null ]
    /DEST pdfmark
} def

% A "fontset" is an array of fonts; a "stream" is an array of strings
% and numbers or procedures:
% [ 0 (Foo) ( ) (mani) ( ) 1 (padme) 0 ( ) (hum.) ]
% A number choses a font from the current fontset.
% A procedure is invoked as-is when printing the stream.
%
% When printing justified, an equal amount of space is added in
% between each string.

% string -- spacecount
% Count space characters in a string
/spacecount {
  0 exch {
    space eq { 1 add } if
  } forall
} def

% stream fontset -- spacecount width
% Get the width of a stream in the given fontset, and the
% number of space characters in the stream
/streamwidth {
  gsave
    6 dict begin
      /f exch def
      /w 0 def
      /s 0 def
      f 0 get setfont
      /integertype {
        f exch get setfont
      } def
      /stringtype {
        dup stringwidth pop w add /w exch def
        spacecount s add /s exch def
      } def
      /arraytype { pop } def
      % The input stream is on the top of the stack now
      {
        dup type exec
      } forall
      s w
    end
  grestore
} def

% stream fontset spacer --
% Show the stream in the given fontset, but add a certain amount
% of space to each space character
/showstreamspc {
  5 dict begin
    /spc exch def
    /f exch def
    f 0 get setfont
    /integertype {
      f exch get setfont
    } def
    /stringtype {
      spc linkshow
    } def
    /arraytype {
      exec
    } def
    % Now stream is on the top of the stack
    {
      dup type exec
    } forall
  end
} def

% stream fontset --
% Show the stream in the given fontset, with no extra spacing
/showstream {
  0 showstreamspc
} def

% stream fontset totalspace --
% Show the stream justified to fit into a certain number of pixels
/showstreamjust {
  userdict begin
    /ts exch def /fs exch def /st exch def
      st fs
        st fs streamwidth ts exch sub exch
	dup 0 gt { div } { pop } ifelse
      showstreamspc
    end
} def

/bullmarg lmarg bulladj add def
/lwidth pagewidth lmarg sub rmarg sub def
/bwidth lwidth bulladj sub def

%
% The various paragraph types
% The number at the end indicates start (1) of para, end (2) of para
%
/chapline {
	currentpoint exch pop 10 sub lmarg exch moveto
	0 setlinecap 3 setlinewidth
	lwidth 0 rlineto stroke
} def

/chap0 { lmarg exch moveto cfont lwidth showstreamjust } def
/chap1 { lmarg exch moveto cfont lwidth showstreamjust } def
/chap2 { lmarg exch moveto cfont showstream chapline } def
/chap3 { lmarg exch moveto cfont showstream chapline } def

/appn0 {chap0} def
/appn1 {chap1} def
/appn2 {chap2} def
/appn3 {chap3} def

% lbl ypos fontset -- ypos
/headlbl {
  3 -1 roll [exch (  )] exch % ypos strm fontset
  2 copy % ypos strm fontset strm fontset
  streamwidth % ypos strm fontset spccount width
  lmarg exch sub % ypos strm fontset spccount xpos
  4 index % ypos strm fontset spccount xpos ypos
  moveto % ypos strm fontset spccount
  pop % ypos strm fontset spccount
  showstream % ypos
} def

/head0 { lmarg exch moveto hfont lwidth showstreamjust } def
/head1 { hfont headlbl lmarg exch moveto hfont lwidth showstreamjust } def
/head2 { lmarg exch moveto hfont showstream } def
/head3 { hfont headlbl lmarg exch moveto hfont showstream } def

/subh0 { lmarg exch moveto sfont lwidth showstreamjust } def
/subh1 { sfont headlbl lmarg exch moveto sfont lwidth showstreamjust } def
/subh2 { lmarg exch moveto sfont showstream } def
/subh3 { sfont headlbl lmarg exch moveto sfont showstream } def

/norm0 { lmarg exch moveto bfont lwidth showstreamjust } def
/norm1 { lmarg exch moveto bfont lwidth showstreamjust } def
/norm2 { lmarg exch moveto bfont showstream } def
/norm3 { lmarg exch moveto bfont showstream } def

/code0 { lmarg exch moveto bfont showstream } def
/code1 { lmarg exch moveto bfont showstream } def
/code2 { lmarg exch moveto bfont showstream } def
/code3 { lmarg exch moveto bfont showstream } def

/bull0 { bullmarg exch moveto bfont bwidth showstreamjust } def
/bull1 { dup lmarg exch moveto bullet bfont showstream
	 bullmarg exch moveto bfont bwidth showstreamjust } def
/bull2 { bullmarg exch moveto bfont showstream } def
/bull3 { dup lmarg exch moveto bullet bfont showstream
	 bullmarg exch moveto bfont showstream } def

/indt0 { bullmarg exch moveto bfont bwidth showstreamjust } def
/indt1 { bullmarg exch moveto bfont bwidth showstreamjust } def
/indt2 { bullmarg exch moveto bfont showstream } def
/indt3 { bullmarg exch moveto bfont showstream } def

/bquo0 { bullmarg exch moveto qfont bwidth showstreamjust } def
/bquo1 { bullmarg exch moveto qfont bwidth showstreamjust } def
/bquo2 { bullmarg exch moveto qfont showstream } def
/bquo3 { bullmarg exch moveto qfont showstream } def

/tocw0 lwidth tocpnz sub def
/tocw1 tocw0 tocind sub def
/tocw2 tocw1 tocind sub def

/tocx0 lmarg def
/tocx1 tocx0 tocind add def
/tocx2 tocx1 tocind add def

/tocpn {
  bfont0 setfont
  3 dict begin
    /s exch def
    /x s stringwidth pop pagewidth rmarg sub exch sub def
    currentpoint /y exch def
    lmarg sub tocdots div ceiling tocdots mul lmarg add
    tocdots x {
      y moveto (.) 0 linkshow
    } for
    x y moveto s 0 linkshow
  end
  linkend
} def

/toc00 { tocx0 exch moveto 0 rmoveto bfont showstream } def
/toc01 { tocx0 exch moveto
	 linkbegindest bfont0 setfont 0 linkshow bfont showstream } def
/toc02 { tocx0 exch moveto 3 1 roll
	 0 rmoveto bfont showstream tocpn } def
/toc03 { tocx0 exch moveto 4 1 roll
	 linkbegindest bfont0 setfont 0 linkshow bfont showstream tocpn } def

/toc10 { tocx1 exch moveto 0 rmoveto bfont showstream } def
/toc11 { tocx1 exch moveto
	 linkbegindest bfont0 setfont 0 linkshow bfont showstream } def
/toc12 { tocx1 exch moveto 3 1 roll
	 0 rmoveto bfont showstream tocpn } def
/toc13 { tocx1 exch moveto 4 1 roll
	 linkbegindest bfont0 setfont 0 linkshow bfont showstream tocpn } def

/toc20 { tocx2 exch moveto 0 rmoveto bfont showstream } def
/toc21 { tocx2 exch moveto
	 linkbegindest bfont0 setfont 0 linkshow bfont showstream } def
/toc22 { tocx2 exch moveto 3 1 roll
	 0 rmoveto bfont showstream tocpn } def
/toc23 { tocx2 exch moveto 4 1 roll
	 linkbegindest bfont0 setfont 0 linkshow bfont showstream tocpn } def

% Spacing between index columns
/indexcolumn pagewidth lmarg sub rmarg sub idxgutter add idxcolumns div def
% Width of an individual index column
/indexcolwid indexcolumn idxgutter sub def

/idx03 {
  2 dict begin
    indexcolumn mul lmarg add
    /x exch def /y exch def x y moveto
    exch bfont showstream
    dup bfont streamwidth
    x indexcolwid add exch sub exch pop y moveto
    bfont showstream
  end
} def
/idx00 {idx03} def
/idx01 {idx03} def
/idx02 {idx03} def

/idx13 {
  2 dict begin
    indexcolumn mul lmarg add idxindent add
    /x exch def /y exch def x y moveto
    exch bfont showstream
    dup bfont streamwidth
    x indexcolwid idxindent sub add exch sub exch pop y moveto
    bfont showstream
  end
} def
/idx10 {idx13} def
/idx11 {idx13} def
/idx12 {idx13} def

%
% Page numbers
%
/pagey botmarg pymarg sub def
/pagel lmarg plmarg sub def
/pager pagewidth rmarg sub prmarg add def

/pageeven { pagel pagey moveto bfont1 setfont show } def
/pageodd  { bfont1 setfont dup stringwidth pop pager exch sub
	    pagey moveto show } def

%
% Functions invoked during parsing
%
/xa { linkdest } def
/pa { 0 pageheight moveto linkdest } def
/xl { linkbegindest } def
/wl { linkbeginuri } def
/pl { linkbeginpage } def
/el { linkend } def

%
% PDF viewer options
%
[/PageMode /UseOutlines /DOCVIEW pdfmark	% Display bookmarks

%
% Functions to include EPS
%
/BeginEPSF {
  /Before_EPSF_State save def
  /dict_count countdictstack def
  /op_count count 1 sub def
  userdict begin
  /showpage {} def
  0 setgray 0 setlinecap
  1 setlinewidth 0 setlinejoin
  10 setmiterlimit [ ] 0 setdash newpath
  /languagelevel where
  {
    pop languagelevel
    1 ne {
      false setstrokeadjust false setoverprint
    } if
  } if
} bind def
/EndEPSF {
  count op_count sub {pop} repeat
  countdictstack dict_count sub {end} repeat
  Before_EPSF_State restore
} bind def
