! README_CC !

GENERAL INFORMARTION
====================

The programmes 'dvixx.c' and 'creresxx.c' expect to have the font files in dif-
ferent directories for the different sizes.  The original programmes expect the
directories
   ...fontpath/dpi300
   ...fontpath/dpi324
   ...fontpatth/dpi360
   . . . . . . . . . .
with all fonts fff.300pk in  ...fontpath/dpi300, etc.  All pathnames used by the
programmes are defined in paths.h, e.g.

#define fontpath /usr/local/lib/tex/canon/dpi
#define fonttfm  /usr/local/lib/tex/fonts/

If your .tfm and .pk fonts are organized differently, you must edit the  paths.h
file, but both programmes expect the .pk files in size dependent directories. In
'openpkfiles',  the programmes concatenate the size value to the starting  path-
name.  Alternativly, all .pk files could be collected in just a single directory
and using the  compiler option  -DSINGLEPATH,  but it is not wise in doing so if
you have several hundreds of .pk-files.

The remaining definitions in path.h are:
respath:      full path name of the file with information for the resident load-
	      ed pk_files. For its format see README.

initpath:     full path name of the file created by  'creresxx' which  holds the
	      pk_files for resident loading, including the necessary control se-
	      quences. The created bitfile gets the name 
		  /(initpath)/'initxx.fnt'. 

defaultpk:    the pk-file used, if a nonexisting pk-file is ordered.

defaulttfm:   the tfm-file used, if a nonexisting tfm-file is ordered.

The programmes are splitted into the following files

dvixx.c:      The main code for the driver programmes.  'xx' stands for two-let-
	      ter group, described in README_FIRST.

creresxx.c:   Same for the font loading tools.

common.h:     defines some  macros  and global structures,  used commonly in all
	      dvixx.c and crerexx.c. programmes. 

dvicom.h:     defines those  macros  and global structures, commonly used in all
	      dvixx.c programmes, but not in creresxx.c.

ljcom.h:      font- and character descriptor for the Laserjet+.  Used by dvixx.c
              and creresxx.c for xx = lj and mp.

hpcom.h       same for the Laserjet II family 'dvihp.c' and 'crereshp.c'


CUSTOMIZING
===========

A few definitions should be customized to your printer's memory. In 'creresxx.c'
LASMEM should be set to your full printer's memory size,  while LASMIN should be
the available memory you need for general text and graphic processing, which has
to free from permantly downloaded fonts. A recommended value would be
   >= max(250 Kbytes, full_memory_size/2)

In 'dvixx.c'  MINLASMEM  determines the minimum printer's memory, after addional
fonts have been downloaded temporaryly from the dvi request. The difference from
LASMIN - MINLASMEM determines the memory space for additional font loading. just
for each individual  TeX job  and given free again,  after the job has finished.
The default value of 120 KByte is sufficient for any TeX dvi output,  but has to
increase if you wish to merge dvi files with graphic files. 

The Laserjet+ as well as Laserjet II allow to download up to 32 different fonts.
Many emulations as well as the Laserjet IID and IIP don't have this restriction.
In this case you should change  MAXFONT in 'dviljp.c' and 'dvihp.c' to an higher
value than 32. 

Furthermore the Laserjet+  and  Laserjet II can only process up to  16 different
fonts on a single page.  If more fonts are needed,  a warning will be put on the
terminal screen.  Again most  Laserjet+ emulations  and the Laserjet IID and IIP
are free from this restriction.  To suppress the  warning  and the corrseponding
serching code, use the  -DNOPCHK compiler directive when you compile 'dviljp'. 

If your Printer is an  HP Laserjet IIP or IID,  use the compiler directive -DIIP
or -DIID, resp. This will suppress the > 16 fonts warning for this printers, and
for the IID additionally the extended features of this printer are activated.




ALL OPTIONS WHICH ARE NECESSARY OR USEFUL FOR COMPILING THE PROGRAMMES:
=======================================================================

   1) -lm        Linker option for dvixx.c: informes the linker about the use of
		 the pow(x,y) function. Necessary! 

   2) -lmalloc   Linker option for dvixx.c:  if your system  knows about a  fast
		 main memory allocator 'malloc' in library malloc (see 3X in the
		 UNIX ref. Volume 3).  Otherwise the  standard main memory allo-
		 cator is chosen from 3C. Useful!

   3) -Os        for all programmes:  can be used to optimize the code and strip
		 off the symbol table information to get shorter and faster code

   4) -DMACROS   Useful compiler directive,  if your system is an HP 9000 Series
		 500 or 800 computer.  Some  extensively used  functions will be
		 defined as macros, but those definitions are very system sensi-
		 tive. E.g. the  macros produces wrong results for HP 9000 Serie
		 300 computers and probably for most other systems!!!
    
   5) -DSINGLEPATH      All pk_font-files are assumed in a single directory. NOT
		 useful! (see above under GENERAL INFORMATION)

   6) -DOLD      Compiler directive for 'divlj.c and 'crereslj.c' as well as for
		 'dviky.c' and 'creresky.c',  if the Laserjet or  its  emulation
		 the 128x128 pixel restriction for the max character boundig box
		 or, if the Kocera printer has the restriction of max. 133 pixel
		 in the height of downloaded characters.

   7) -DNOPCHK   Compiler directive only for 'dviljp.c'.  Page checking for  max
		 16 fonts will be suppressed.   Use this option always,  if your
		 printer has a Laserjet+ emulation without this restriction.

   8) -DIIP      Use this compiler option on  'dvihp.c'  always, if your printer
		 is an HP Laserjet IIP !!!
		  
   9) -DIID      Use this compiler option on  'dvihp.c'  always, if your printer
		 is an HP Laserjet IID. Necessary for this printer !!! 



MORE ABOUT CUSTOMIZING
====================== 

For a more detailed information about customizing,  look into the source code of
'creresxx.c' and 'dvixx.c'. Below the head comments

   * The following definitions should be customized ...
and
   * The following definitions could be customized ...

the effect of those definitions are described by comments.

All dvi-drivers produce an output file with the same 'basename'  as for the pro-
cessed dvi-file,  but with an extension '.bit'.  If you have  several  different
printer models on your computer, it could be useful to seperate between the dri-
ver's output by different extensions. For that purpose look into the code of the
'dialog(argc,argv)' function definition.  Nearly at the end of its body you will
find the calling statement
    strcat(bitname,".bit");
Here you can change the string ".bit" to any ".ssss" you wish,  by which way the
extension for the output name would be changed to .ssss !

Updated April 5, 1990  ---   Helmut Kopka

