FORMAL - A Text Formatter (in Pascal / by Alastair)

Author: Alastair JW Mayer

A BIT OF BACKGROUND

This program, FORMAL, was developed by me ages ago to meet a need for a good text processor (for producing documentation, papers, etc.) on the CDC Cyber series of computers. To make the task more challenging, that line of machines was based on a 60-bit word and natively used 6-bit characters. You can't represent both upper and lower case letters in only 6 bits. There were a couple of ways around this -- an escape character before each lower case letter (giving a 6-12 bit character set) or just using the lower 7 or 8 bits of a 12-bit sequence. The Cyber's operating system (NOS) did both. I took advantage of Pascal's data typing facilities to just remap everything to real ASCII (7 bit) on input and then again on output.

The program was developed on my own time while I was working at Concordia University in Montreal. They let me retain copyright but Concordia has an unlimited license to use or sell the software on CDC Cyber series machines. (Several copies were sold while I was there, I got a nice royalty on those.) It was very popular in its time, although largely obsolete now with the availability of word processing programs and personal computers.

It was based initially on RUNOFF which I'd had some exposure to, then I got hold of manuals for IBM Script and Waterloo Script (an extension of IBM's), so extended FORMAL with most of those features, plus a few others to meet specific requests. Nice features include good basic defaults and (optional) automatic paragraphing based on whether the first character of a line is whitespace.

WHAT'S HERE

If you're reading this online, you want the file formal.tar, which contains the files mentioned below. Other than this README, the file formal.p which is the Pascal source for the program. I've got it to run on Linux, but the last system I was doing anything regularly with it on was MS-DOS 3.3, compiled with Borland TurboPascal. Also the file 'Copying' which explains the GNU Public License under which I've released this code.

Somewhere around (quite possibly on an old 5-1/4" floppy, although more likely on an old reel of 9-track tape) I have the FORMAL "source" - raw input text - for the reference manual. When I find that, I'll post it too (if it's on a medium I can read!). Until then, you're on your own. (If you can find an old Script manual, that might help. Or read the source code.)

I really don't know if this is useful to anybody, or just mildly interesting for historic reasons. But here you go.

-- Alastair Mayer

email: try alastair at ajwm.net