Subject: VMS-port of dvi2xx

From: [email-masked]
Date: Thu, 17 Oct 91 16:53 MET

Dear Gustaf,

  Thanks for writing the DVI print program for the HP-Laserjet family. 
Because our group recently bought a HP Laserjet 3 printer (for our VAX/VMS
system), we needed a LaTeX driver for it. The only drivers I could locate 
(and that would run on VAX/VMS) are the Beebe drivers, but they are rather
slow and they don't support any \special commands. For this reason I've 
ported your program to VAX/VMS. 

  I'm sending you my changes to your programs (in respect to the DVI2XX,
version 0.50 distribution). All my changes are propely included in #ifdef ...
#endif constructions. I'm also including an extra file (called VAXVMS.C), which
is copied from the DVIPS distribution, and which was originally written by
Nelson Beebe. 

  The other changes are:

	config.h   - definition of FONTAREA and signed_char

	findfile.c - path of types.h and stat.h
		   - VMS specific versions for the font search paths  

	dvi2xx.c   - definition of the functions in VAXVMS.C
		   - writing of output file in a binary format with fixed
			record lengths (512 bytes), this implied that:
			- fwrite didn't work anymore, so another version
			  of EMITB had to be made (using putc).
			- the last record had to be padded with zeros
		   - usage of VAX/VMS specific error codes
		   - definition of 12 for MAXOPEN (because MAXOPEN is
			standard defined as 8).
		   - VAX/VMS doesn't allow the "%hd" format specifier to 
			be used in output statements, so this was changed
			to the "%d" format.

  The program is tested on a MicroVAX-II running VMS 5.3-1 and is compiled
using the VAXC compiler (version 2.3). The compile sequence used is:

	$ CC /DEFINE=(LJ2P,DEBUG) DVI2XX
	$ CC FINDFILE
	$ CC VAXVMS
	$ LINK /EXEC=DVILJ2P DVI2XX,FINDFILE,VAXVMS,SYS$INPUT:/OPT
	SYS$SHARE:VAXCRTL.EXE/SHARE
	^Z

The program can be defined with:

	$ DVILJ2P :== $disk:[directory]DVILJ2P

And can be run with:

	$ DVILJ2P [options] dvi-filename

The uppercase options (such as -D) have to be put between quotation marks,
because the VAX/VMS operating systems converts the command string to lower
case (so: $ DVILJ2P "-D1" dvi-filename).

Only the LJ2P version is compiled and tested. I'm printing the output file 
with the command:

	$ PRINT/QUEUE=queue-name /PASSALL file.LJ

  The only suggestion for some improvements to the program, are in respect
to the \special commands. It would be nice if your program could interpret the
\tpic specials. 

	With kind regards, Henk de Haan

     /-------------------------------+---------------------------------\
    / Henk de Haan                   |  Phone:    +31 15 781398         \
   /  Delft University of Technology |  FAX:      +31 15 786422          \
  /   ISO                            |  E-mail:   [email-masked] \
 /    p/a IRI                        |  Bitnet:   HAAN@HDETUD5             \
<     Mekelweg 15                    |  DECnet:   IRIMCF::HAAN              >
 \    2629 JB Delft                  |  JANET:    [email-masked]         /
  \   The Netherlands                |  HEPnet:   19477::HH01             /
   \_________________________________|___________________________________/
    \ Phrase:  The only way to cold fusion is Muon Catalyzed Fusion (?) /
     \-----------------------------------------------------------------/