% This is a LaTeX file
%
% This file contains details of the XDVI port to DJGPP
\documentstyle{article}
\begin{document}


\title{{\bf XDVI} for {\bf PC} under {\bf DV/X}}
\author {Eric Ho \\ 9041477@SSCVAX.CIS.MCMASTER.CA}
\maketitle

This program is re-compiled using {\bf DJGPP}.  As a result, the program
expects 386 CPU and up with FPU as well as {\bf GO32}.
Original {\bf XDVI} source is obtained from
{\bf export.lcs.mit.edu:/contrib}.

\section{Modifications}

There are not many modifications done to the original xdvi except that
fonts not available can now be substituted by specifying them in a file.
The environmental variable {\bf TEXFONTSUB} points to this file. For example,
{\bf TEXFONTSUB}=c:/xdvi/texfonts.sub".  The filename texfonts.sub is arbitrary.
One can rename it to some other name as long as the environmental variable
TEXFONTSUB points to it.  Format of the font substitute file (ASCII) is
as follows:

\vspace {10 pt}

{\bf amr10} -$>$ {\bf cmr10}

{\bf src2} -$>$ {\bf dest2}

etc.
\vspace {10 pt}

where src2 is the unavailable font and dest2 is the font we intended to
substitute.  It is exactly as the font substitution machcanism found in
{\bf DVIVGA}.

For those interested in the image processing features provided by XDVI,
please browse through the source and see if I did anything wrong
in choosing suitable image quality since I do not know anything about
image processing.

Default \TeX font directory is "c:/tex/fonts."  However, this can be overridden
by specifying another directory through some environmental variable.  Please
look at the file {\it readme} for details.

Finally, I have tested only the "pk" font version of XDVI,
therefore the performance of using "gf" and "pxl" is unknown.  These two
versions of XDVI are however also modified to look up font substitute file.  To
use the other version one must re-compile the source.  To obtain the other
versions one must re-compile XDVI with appropiate switches set.

\section{Optimizing XDVI}

Opening and searching text file using DJGPP will add significant overhead
to the execution due to mode switching.  Also, I found most of substitutions
are converting AM font to CM font (I only have cm font at home).  Therefore,
I also modified the program to convert amxxxx to cmxxxx internally to speed
up execution.  To choose this option one should recompile the source without
defining {\bf FONTSUB} (i.e., take out  -D{\bf FONTSUB} in the makefile).  Finally,
the makefile enclosed is compatible with both {\bf NDMAKE45}
and Borlan?'s {\bf MAKE} utility.

\section{Bugs}

I have not yet found any bugs after I have performed some testings.
However, I conducted the test without mouse attaching to my system (because I
don't have one).  Accordingly, I have no idea how XDVI will behave with mouse
connected to the system.  Finally, I tested only the {\bf pk} font version
of XDVI, therefore the performance of using {\bf gf} and {\bf pxl} is unknown.

\section{Acknowledgment}

I wish to thank {\bf DJ, et. al.} for their excellent compiler.  Also thank all
authors of the original XDVI for their contribution.

\end{document}
