$Header: README,v 1.15 91/05/23 11:45:11 hmgr Exp $

Copyright (c) 1991 by Parag Patel.  All Rights Reserved.
You can do what you wish with this as long as
    (1) you do not claim it or any part of it as yours and
    (2) you do not remove or alter my copyright in any file.
This software is provided "AS IS" without any implied or express warranty
as to its performance or to the results that may be obtained by using this
software.  It is completely unsupported.  You're on your own.


This is the TeX DVI filter which I'd written it about 4 years ago when,
at that time, the only LaserJet DVI filters available to me were in
Pascal and ungodly slow.  Anyway, it's been pointed out to me that "dvi"
still one of the better DVIs around, so I figured it was time to get off
my duff and make it available to the world at large.  Or at small - I'm
not picky.

The man-page lists all the pertinent details, but here's some
highlights:

o	fast
o	written in C++
o	supports LaserJetII, LaserJetIID, LaserJet2000, and LaserJet+
o	supports double-sided printing on LJs which can do double-sided
o	supports landscape printing for slides
o	handles big fonts, like, for instance, SliTeX dumps
o	supports JTeX - the Japanese version of TeX which heavily
	exercises the font capabilities of the LJs and of "dvi"
o	allows selecting particular pages and page ranges from the
	command line (OK - it ain't clean or friendly, but it works)
o	supports various \specials for dumping raw PCL files - it is also
	pretty easy to add new specials
o	completely demand driven - not even the font info much less the
	info for a particular character is downloaded unless that character
	is actually going to be printed on the paper
o	does NOT send a hard-reset escape-sequence, which allows one to
	wrap anything around this dvi's output that one wishes
o	has cool (well - entertaining anyway) -v verbose mode
o	actually has a man-page
o	the price is right

I've also gotten into C++, and I've long since converted my old C DVI
code into C++.  There are still plenty of C-isms in here though.  Still,
the virtual baseclass "Device" should make adding new devices a lot
easier.  (I still need to design some sort of FontFileFormat class,
among other things.)

Dvi currently compiles right up on HP-UX 7.0, 6.5, and 6.2 (s300s or
s800s), BSD4.3 (Tahoe) on hp300 hardware, Zortech C++ on MSDOS, and
Sparc.  I use AT&T's C++ 2.0 (cfront) and not G++ on all my Unix boxes.
I do NOT use C++ streams, but do use stdio.  I have NO idea how much
work it'll take to get it running on other systems or using G++, but it
shouldn't be too hard.


Anyway, just type "make" to build a debug version of "dvi".  Then copy
"dvi" and "dvi.1" to whatever names and whatever places you want them.
You will have to define -DMSDOS or -DBSD in the Makefile if you are on
those systems.  My Sparc also needed -DFREE_TAKES_CHAR.

Use "make ljdump" to build the "ljdump" program.  This is useful for
debugging dvi by converting PCL to a semi-human-readable dump.

There's also a machine-dependency in "bitvec.[hC]".  If your "unsigned
long" type is NOT 32 bits, you're hosed, and the code will require some
hacking.  Sorry.

The code is somewhat commented.  Feel free to hack away, add new
devices, or optimize any of my screwups.  If you make mods you feel are
useful, or fix some bug, please send me the cdiffs so I can make them
available to others too.



	-- Parag Patel <parag@sde.hp.com>



--------------------REVISION-INFO----------------------

1.6	released on HP INTERX Contrib Tape and comp.sources.misc

1.7	first bug-fix release
	files modified: Makefile README extern.h main.C readfont.C hp2686.h
	ported to Sparc - minor ifdef needed
	version string slightly modified so say_hello() in main.C works
	also look for fonts such as /path/cmr7.300pk and cmr7.300gf
	allow overriding default font search path from Makefile
