/********************************************************/ /* */ /* 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 and 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)