/********************************************************/
/*							*/
/*		    ROFF4, Version 1.50			*/
/*							*/
/* (C) 1983 by	Ernest E. Bergmann			*/
/*		Physics, Building #16			*/
/*		Lehigh Univerisity			*/
/*		Bethlehem, Pa. 18015			*/
/*							*/
/* Permission is hereby granted for all commercial and	*/
/* non-commercial reproduction and distribution of this	*/
/* material provided this notice is included.		*/
/*							*/
/********************************************************/

		    ROFF4, version 1.50

			     by
		     Ernest E. Bergmann
		     Physics, Bldg #16
		     Lehigh University
		    Bethlehem, Pa. 18015
		      (215-) 861-3932


	ROFF4, v1.50 is being provided  essentially in the
public domain, not because it isn't good, but to provide a
means to create and transport technical documentation
between users with different hardware.  This is not possible
with commercial formatters because they are often not
powerful enough to handle special symbols, equations, and
the like.  Equally importantly, there is not much
standardization and commercial formatters cannot be "given
away";  the sender and receiver are not as likely to own the
same commercial formatters.

	I am a practicing scientist and I need to format
manuscripts which are sometimes long, contain equations,
special symbols, footnotes, and illustrations.  I needed a
formatter that was easy to use, flexible, and available to
others.  It takes me less time to type a manuscript for this
formatter and rework it, including special characters, than
to have it typed and retyped by a typist only to have me
proof read it ad nauseum.

	ROFF4 is table driven; it is relatively easy to
configure for different output devices.  I have used it with
the MX-80 and Graftrax printer combination; It is able to
create special symbols where needed.  I Also can get special
symbols on my CRT screen because of my computer hardware
(the Exidy Sorcerer has user definable characters).
However, the characteristics of my CRT device and of my
printer are very different.  My design philosophy was to be
able to drive either from the same input files so that I
could "preview" my output before going to hardcopy.  You may
have a variety of output devices; use your imagination.

	Your comments, criticisms, and possible bug reports
will be most useful.

	I hope to extend ROFF4 so that it will be able to
better utilize specialty printers (it presently assumes that
the printer does NOT know how to backspace, nor reverse
scroll).  I will have to learn how to support printers that
do proportional spacing and variable pitch.

	I would also like to write a translater that
automatically converts WORDSTAR(tm MicroPro) files,
including control-P and dot commands into input files for
ROFF4.  ROFF4 ignores the parity bit on input files.  It may
get confused by inputting control-codes (it should only get
the <CR><LF> and <TAB> of standard CP/M text files).


                  FILES ON THIS DISK            

BPTEST.		page test
DIO.H		directed i/o (FYI)
EQN.		demo of equation numbering
EXY1.		for graphics on Exidy screen
EXYDEMO.SUB	to show them
FOOT.		footnote example
FORM.		form letter example
L2.COM		for completeness
LIST.		file lister
MATRIX.		demo for print motions
MX.		set-up for MX-80 & Graftrax
NDIO.C		directed i/o (FYI)
NEST.		nested macros and strings
PAGES.		demo
ROFF4.C		main source module
ROFF4.COM	executable text formatter
ROFF4.CRL
ROFF4.DOC
ROFF4.H
ROFF4.SUB
ROFF41.C
ROFF41.CRL
ROFF42.C
ROFF42.CRL
ROFF43.C
ROFF43.CRL
ROFF44.C
ROFF44.CRL
ROFF45.C
ROFF45.CRL
ROFF46.C
ROFF46.CRL
ROFF47.C
ROFF47.CRL
SCI.ASM		initialize Exidy Graphics
SCI.COM		(scientific symbols)
STACKTST.	test stacking of variables


					
                HARDWARE REQUIREMENTS

	ROFF4, version 1.50 was developed with the BDS C
compiler, version 1.44 and the Mark of the Unicorn L2 linker
version 2.2 on an Exidy Sorcerer personal Computer with the
S-100 expansion box. The Thinker Toys 2D dual 8" disk sub-
system was used and total contiguous ram was 52K.
Statistics from the BDS compiler indicated at least 14K left
over at every stage. Thus it may be possible to recompile
this in a 40K system.  Tthe linkage statistics are that we
have 127 functions, code ends at 75CEH, and that externals
are from 7800H-91E8H.

	To run ROFF4.COM I believe the TPA should be 44K or
more because the alloc() function must allocate slightly
more than 1K for each simultaneously open file and I have
reserved (quite conservatively) 2K for the stack.

	I/O requirements are minimal.  A dumb terminal (video
or printing) and the CP/M disk interface are sufficient.
Although a list device seems like a practical necessity (do
you want to format only to a glass terminal?)

	By all means, read the file, ROFF4.DOC ("when all
else fails, read the manual!")  Try out the sample input
files, they are probably better illustration of points where
my writing isn't clear.


	Enjoy... (leave the debugging to us).

				July 5, 1983

				Ernest E. Bergmann
				Physics, Building #16
				Lehigh University
				Bethlehem, Pa. 18015
				
				(215-) 861-3932(at above)
