\contentsline {section}{\numberline {1}Introduction}{1} \contentsline {section}{\numberline {2}The DVI Driver Software}{2} \contentsline {section}{\numberline {3}Outline of the DVI Drivers}{4} \contentsline {section}{\numberline {4}The Grubby Details}{8} \contentsline {subsection}{\numberline {4.1}\FN {abortrun.h}}{9} \contentsline {subsection}{\numberline {4.2}\FN {actfact.h}}{9} \contentsline {subsection}{\numberline {4.3}\FN {alldone.h}}{9} \contentsline {subsection}{\numberline {4.4}\FN {bitmap.h}}{9} \contentsline {subsection}{\numberline {4.5}\FN {bopact.h}}{9} \contentsline {subsection}{\numberline {4.6}\FN {chargf.h}}{9} \contentsline {subsection}{\numberline {4.7}\FN {charpk.h}}{11} \contentsline {subsection}{\numberline {4.8}\FN {charpxl.h}}{12} \contentsline {subsection}{\numberline {4.9}\FN {clrbmap.h}}{12} \contentsline {subsection}{\numberline {4.10}\FN {clrrow.h}}{13} \contentsline {subsection}{\numberline {4.11}\FN {commands.h}}{13} \contentsline {subsection}{\numberline {4.12}\HCF {devinit}}{13} \contentsline {subsection}{\numberline {4.13}\HCF {devterm}}{13} \contentsline {subsection}{\numberline {4.14}\FN {dispchar.h}}{13} \contentsline {subsection}{\numberline {4.15}\FN {dumpchar.h}}{14} \contentsline {subsection}{\numberline {4.16}\FN {dvifile.h}}{14} \contentsline {subsection}{\numberline {4.17}\FN {dvihead.h}}{14} \contentsline {subsection}{\numberline {4.18}\FN {dviinit.h}}{14} \contentsline {subsection}{\numberline {4.19}\FN {dviterm.h}}{15} \contentsline {subsection}{\numberline {4.20}\FN {eopact.h}}{15} \contentsline {subsection}{\numberline {4.21}\FN {f20open.h}}{15} \contentsline {subsection}{\numberline {4.22}\FN {fatal.h}}{16} \contentsline {subsection}{\numberline {4.23}\FN {fillrect.h}}{16} \contentsline {subsection}{\numberline {4.24}\FN {findpost.h}}{17} \contentsline {subsection}{\numberline {4.25}\FN {fixpos.h}}{17} \contentsline {subsection}{\numberline {4.26}\FN {fontfile.h}}{18} \contentsline {subsection}{\numberline {4.27}\FN {fontsub.c}}{19} \contentsline {subsection}{\numberline {4.28}\FN {gblprocs.h}}{21} \contentsline {subsection}{\numberline {4.29}\FN {gblvars.h}}{21} \contentsline {subsection}{\numberline {4.30}\FN {gendefs.h}}{21} \contentsline {subsection}{\numberline {4.31}\FN {getbmap.h}}{21} \contentsline {subsection}{\numberline {4.32}\FN {getbytes.h}}{22} \contentsline {subsection}{\numberline {4.33}\FN {getfntdf.h}}{22} \contentsline {subsection}{\numberline {4.34}\FN {getpgtab.h}}{22} \contentsline {subsection}{\numberline {4.35}\FN {inch.h}}{23} \contentsline {subsection}{\numberline {4.36}\FN {initglob.h}}{23} \contentsline {subsection}{\numberline {4.37}\FN {keydef.h}}{24} \contentsline {subsection}{\numberline {4.38}\FN {keybrd.c}}{24} \contentsline {subsection}{\numberline {4.39}\FN {loadchar.h}}{25} \contentsline {subsection}{\numberline {4.40}\CF {loadbmap}}{26} \contentsline {subsection}{\numberline {4.41}\FN {machdefs.h}}{27} \contentsline {subsection}{\numberline {4.42}\FN {main.h}}{28} \contentsline {subsection}{\numberline {4.43}\HCF {makechar}}{28} \contentsline {subsection}{\numberline {4.44}\FN {movedown.h}}{28} \contentsline {subsection}{\numberline {4.45}\FN {moveover.h}}{28} \contentsline {subsection}{\numberline {4.46}\FN {moveto.h}}{29} \contentsline {subsection}{\numberline {4.47}\HCF {newfont}}{29} \contentsline {subsection}{\numberline {4.48}\FN {nosignex.h}}{29} \contentsline {subsection}{\numberline {4.49}\FN {openfont.h}}{29} \contentsline {subsection}{\numberline {4.50}\FN {option.h}}{30} \contentsline {subsection}{\numberline {4.51}\FN {outrow.h}}{31} \contentsline {subsection}{\numberline {4.52}\HCF {prtbmap}}{32} \contentsline {subsection}{\numberline {4.53}\FN {prtpage.h}}{33} \contentsline {subsection}{\numberline {4.54}\FN {readfont.h}}{34} \contentsline {subsection}{\numberline {4.55}\FN {readgf.h}}{34} \contentsline {subsection}{\numberline {4.56}\FN {readpk.h}}{34} \contentsline {subsection}{\numberline {4.57}\FN {readpost.h}}{34} \contentsline {subsection}{\numberline {4.58}\FN {readpxl.h}}{34} \contentsline {subsection}{\numberline {4.59}\FN {reldfont.h}}{35} \contentsline {subsection}{\numberline {4.60}\FN {rulepxl.h}}{36} \contentsline {subsection}{\numberline {4.61}\FN {setchar.h}}{36} \contentsline {subsection}{\numberline {4.62}\FN {setfntnm.h}}{36} \contentsline {subsection}{\numberline {4.63}\FN {setrule.h}}{36} \contentsline {subsection}{\numberline {4.64}\HCF {setstr}}{37} \contentsline {subsection}{\numberline {4.65}\FN {signex.h}}{38} \contentsline {subsection}{\numberline {4.66}\FN {skgfspec.h}}{38} \contentsline {subsection}{\numberline {4.67}\FN {skipfont.h}}{38} \contentsline {subsection}{\numberline {4.68}\FN {skpkspec.h}}{38} \contentsline {subsection}{\numberline {4.69}\FN {special.h}}{38} \contentsline {subsection}{\numberline {4.70}\FN {strchr.h}}{40} \contentsline {subsection}{\numberline {4.71}\FN {strcm2.h}}{41} \contentsline {subsection}{\numberline {4.72}\FN {strid2.h}}{41} \contentsline {subsection}{\numberline {4.73}\FN {strrchr.h}}{41} \contentsline {subsection}{\numberline {4.74}\FN {tctos.h}}{41} \contentsline {subsection}{\numberline {4.75}\FN {typedefs.h}}{42} \contentsline {subsection}{\numberline {4.76}\FN {usage.h}}{42} \contentsline {subsection}{\numberline {4.77}\FN {warning.h}}{42} \contentsline {section}{\numberline {5}DVI Driver Device Support}{43} \contentsline {subsection}{\numberline {5.1}\FN {dvialw.c}}{44} \contentsline {subsection}{\numberline {5.2}\FN {dvibit.c}}{48} \contentsline {subsection}{\numberline {5.3}\FN {dvican.c}}{50} \contentsline {subsection}{\numberline {5.4}\FN {dvigd.c}}{50} \contentsline {subsection}{\numberline {5.5}\FN {dviimp.c}}{51} \contentsline {subsection}{\numberline {5.6}\FN {dvijet.c}}{51} \contentsline {subsection}{\numberline {5.7}\FN {dvijep.c}}{51} \contentsline {subsection}{\numberline {5.8}\FN {dvil75.c}}{58} \contentsline {subsection}{\numberline {5.9}\FN {dvim72.c}}{58} \contentsline {subsection}{\numberline {5.10}\FN {dvimac.c}}{58} \contentsline {subsection}{\numberline {5.11}\FN {dvimpi.c}}{58} \contentsline {subsection}{\numberline {5.12}\FN {dvio72.c}}{59} \contentsline {subsection}{\numberline {5.13}\FN {dvioki.c}}{59} \contentsline {subsection}{\numberline {5.14}\FN {dviprx.c}}{60} \contentsline {subsection}{\numberline {5.15}\FN {dvitos.c}}{61} \contentsline {section}{\numberline {6}Setting up the Environment}{62} \contentsline {subsection}{\numberline {6.1}\IBMPC {} Setup}{62} \contentsline {subsection}{\numberline {6.2}\TOPS {} Setup}{63} \contentsline {subsection}{\numberline {6.3}\VMS {} Setup}{65} \contentsline {section}{\numberline {7}Building the Drivers}{70} \contentsline {section}{\numberline {8}Programming Conventions}{72} \contentsline {section}{\numberline {9}Implementation Problems}{76} \contentsline {subsection}{\numberline {9.1}\TOPS {}}{76} \contentsline {subsection}{\numberline {9.2}\UNIX {} \N {4.1BSD}}{78} \contentsline {subsection}{\numberline {9.3}\HPUX {}}{79} \contentsline {subsection}{\numberline {9.4}\IBMPC {} \LATTICE {} C}{79} \contentsline {subsection}{\numberline {9.5}\IBMPC {} \WIZARD {} C}{80} \contentsline {subsection}{\numberline {9.6}\IBMPC {} \MICROSOFT {} C}{80} \contentsline {section}{\numberline {10}Implementation Efficiency}{81} \contentsline {section}{\numberline {11}Implementation Summary}{83}