\ disk 2 \***************************************** \ line-length 52 \* \ adjust 15 \* \ concatenate \* \ justify \* \ font Times-Roman \* \ bold 1 \* \ cmment * \* \***************************************** * ********************************************************** \ $heading \out-adjust\uc4\$0\uc0 \* \ heading-margin 2 \* \ $footing \center\tall\emphasized\=page-number \* \ footing-margin 2 \* ********************************************************** * ******************************************** \ $sectionhead \ \ room 4 \ \ center \ \ character-spacing 4.\ \ under-line {\=$$}\ \ character-spacing 3. \* . . . . \* \ xs = $sectionhead \* ******************************************** * ******************************************** \ $EP \font Studio-Title {EP } \* . . . . \* \ xEP = $EP \* ******************************************** * ****************************************** \paragraph-indent 2\paragraph-spacing 5p\* ****************************************** * \stretch 4 \center\ \tall {\xEP\font Lydian-Title { - File printing utility for the Epson FX-80.} } \* end title \stretch 0 * \left-adjust Greg Lee\right-adjust February, 1984 *** \xs Summary. \xEP is a program which formats documents and prints them on the Epson FX-80 printer. The file of text to be printed may contain embedded commands for invoking special fonts of characters or changing various aspects of page layout, such as line length. Lines of text may be reformed into paragraphs and/or right justified. Paragraphing and justification are done appropriately when characters from different fonts are mixed together on the same line. The fonts available include the 1 built into the Epson, and 24 by n letter fonts, which are printed in graphics mode with 3 passes of the print head. There is a utility program for creating new letter fonts. \font Lydian-Title {S}ome control of vertical formatting is provided, and in the horizontal direction lots of variation is possible. Characters can be \italic {slanted a little,} \bend 1 \bend {or a little more, \italic or still more,} \bend 2 \bend {or a lot, \italic or extremely. } \bend 3 \bend {They can also be slanted backwards.} \character-spacing 5. The spacing between characters can be increased, \character-spacing 2. or decreased. \character-spacing 3. \ju 0\character-width 20. If proportional spacing is inconvenient, the width of characters can be fixed at any value (this is elite). \character-width 0\justify ****** * CHANGE THIS -- \st and \sh are no longer commands!! \*stretch 2 The characters \*stretch 3 of any letter font \*stretch 4 can be stretched \*stretch 6 out in \*stretch 7 varying degrees, \*stretch 0 or shrunk \*shrink 7 down \*shrink 5 to become \*shrink 4 smaller, \*shrink 3 and smaller, \*shrink 2 and smaller. \*shrink 0 ****** \ new-fonts \ font Times-Roman \font Lydian-Title {T}he Times-Roman font is being used for most of this document, \ font Modern-Bold { but others are available, like this Modern Bold,} \ font Craw-Modern { or Craw Modern, with a larger looking face.} \ font Cloister-Black { Any self-respecting program of this sort has to provide a black-face (this is Cloister Black),} \ font Legend { and other novelty-items like this Legend,} \ font PenPrint { or this Pen Print.} \ new-fonts \ font Times-Roman \xs Syntax of commands. \font Lydian-title {A}n embedded command consists of an escape character, followed by a command ``word'', and then, in some cases, a numerical argument or text enclosed in braces. Spaces and tabs after `\\', after the command word or a numerical argument are not printed (in most cases). The escape character is either a dot `.' at the very beginning of a line, or else a backslash `\\', which can occur anywhere in the line. There are two sorts of command words: Epson-type, and runoff-type. Most runoff commands have two alphabetic letters after the backslash -- others are Epson commands. \xs Epson commands. \font Lydian-title {T}he Epson commands are like those described in the Epson manual, where the backslash corresponds to `ESC'. The Epson-type commands currently understood by \xEP all have to do with changing the print style. They affect the letter fonts, as well as the Epson font, with the exception of `\\p' (since the letter fonts are inherently proportional). For the letter fonts, the commands can be combined in any way, with a different effect for each of the 512 possible combinations. \left-adjust (on) \co-lumn 10 (off) \\M \co-lumn 10 \\P \co-lumn 16 \M Elite\P \\15 \co-lumn 10 \\18 \co-lumn 16 \15 Compressed\18 \\E \co-lumn 10 \\F \co-lumn 16 \E Emphasized\F \\G \co-lumn 10 \\H \co-lumn 16 \G Double Strike\H \\W1 \co-lumn 10 \\W0 \co-lumn 16 \W1 Expanded\W0 \\p1 \co-lumn 10 \\p0 \co-lumn 16 Proportional \\4 \co-lumn 10 \\5 \co-lumn 16 \4 Italic\5 \\S1 \co-lumn 10 \\T \co-lumn 16 Super\S1 script\T \\S0 \co-lumn 10 \\T \co-lumn 16 Sub\S0 script\T \\-1 \co-lumn 10 \\-0 \co-lumn 16 \-1 Underline\-0 \required-blank # \\_1 \co-lumn 10 \\_0 \co-lumn 16 \ul {Underline} (alternate form) \required-blank _ \xs Alternate syntax for Epson commands. \font Lydian-Title {T}he above commands that change print quality or width can be followed by braces surrounding the text that is to be affected by the command, making it unnecessary to issue a command to turn the feature off. E.g. \em{\\M {some text} wider} would print \em{some text} in elite, and \em{wider} in whatever elite mode had preceded the M command, presumably non-elite. \font Lydian-Title {A}lso, these Epson commands have runoff command synonyms, described later. For the last example, \em{\\elite {some text} wider} would give the same effect. \xs Runoff commands. \font Lydian-Title {T}he runoff-type commands have a rather different syntax from the Epson-type commands. A runoff-type command word in its short form always has two alphabetic letters (`$' counts as alphabetic), and it doesn't matter whether the letters are upper or lower case (for the preceding Epson commands, it does). Alternatively, runoff commands can be written in a long form, in which the above two letters are the first two of the word, or the first letters of each part of a compound word. E.g., the following all have the same effect: \\pl 11" \\PLENGTH 11" \\page-length 11" \\Piranha-logo 11" \xs The \\font command. \font Lydian-Title {T}his command has as its argument the name of a file which has letter font data. At most the first 8 characters of the name are used, and the file extension is supplied. The following would both load in the data of the disk file CRAWMODE.FN2: \\fo crawmode \\font CrawModern \break For easier reading, compound names can be used for fonts. In this case the actual filename will be made up of letters taken from each part of the compound. Expressed schematically, the rule is (4 to 8)-(2 to 4)-(1 to 2)...-1, meaning that for the first part, the beginning letters to a maximum of 4 are extracted or, if there is no subsequent part to the compound, to a maximum of 8, and so on. I hope that's clear. Here are some examples: Helvetica-Bold refers to file HELVBOLD.FN2 Helvetica-Title refers to file HELVTITL.FN2 Helvetica-Bold-Title refers to file HELVBOTI.FN2 Helvetica-Bold-Condensed-Title would refer to file HELVBOCT.FN2 Helvetica-Bold-Extra-Condensed-Title would refer to file HELVBOET.FN2 \font Lydian-Title {A}fter the name may come, optionally, braces surrounding text that is to be printed using the named font, following which the font previously in use will be restored. \font Lydian-Title {I}\ nstead of the name of a font, a number can be used. Number 0 refers to the Epson built-in font, and 1-7 refer to previously referenced letter fonts, in the order in which they were referred to. \font Lydian-Title {A}\ lthough any number of fonts may be used in a document, if more than 7 are used, one must take special care, since \xEP sees all those after the 6th as having the same number, \italic {viz.} 7. Since the font of a character is internally encoded by number, when it is time to print an output line, the last font referenced after the 6th is used for all ``number 7'' characters. A consequence of this is that characters from the 7th and 8th fonts, e.g., can not be together on the same output line. \font Lydian-Title {T}he order in which fonts are referred to also has significance in case a letter font file does not have definitions for all characters (you might want a set of superscript numbers or swash capitals, for instance). When \xEP finds that a character is undefined, it searches lower numbered fonts for a character to replace it. \xs Numeric Arguments. \font Lydian-Title {A}s a rule, runoff commands have a numeric argument. E.g. \em{\\line-length 60} sets the line length to a value of 60. But 60 what? Since the widths of characters differ from each other and also differ from font to font, and not all commands refer to widths, the conventions for interpreting numbers after commands have to be somewhat involved. In this particular case, the `60' would mean 60 picas, where a pica is reckoned to be 1/10 of an inch, thus, 6 inches. (I know, this is not the standard use of the term `pica'.) In the case of other commands, such as `\\font' which selects a letter font by number, a similar interpretation would not be appropriate. \font Lydian-Title {S}o here is the set of conventions used. Numeric arguments are interpreted in one of four different ways, and in the list of commands given below, these interpretations are symbolized by `n', `b', `h', `v'. The `n' means ``plain old number'', as for example the number of a letter font after `\\font'. The `b' means Boolean; i.e. an ``on'' versus ``off'' value. For the Boolean arguments, `0' means ``off'' and `1' means ``on''. As a convenience, the `1' can be omitted. \font Lydian-Title {T}he `h' and `v' mean ``horizontal measure'' and ``vertical measure'', respectively. There is a choice about how to give these measures -- they can be given in terms of dots, points, picas, or inches. Unless the number is followed by a special symbol, picas is assumed. If the number is followed by a dot `.', this means ``dots''; `p' or `P' means points; double-quote `"' means ``inches''. So \em{\\ad 2"} would mean ``set the adjust value (the left margin) to 2 inches''. The different measures are related to one another in the following ways: 1 point = 3 dots, 1 pica = 8 points, 1 inch = 10 picas as a horizontal measure, but 1 inch = 9 picas as a vertical measure. \font Lydian-Title {T}hus, a horizontal dot is 1/240th of an inch, which corresponds to the maximum horizontal dot-density on the FX-80, and a vertical dot is 1/216th of an inch, which corresponds to the maximum vertical dot-density. The letter font characters are 1 pica high (although the actual character shape can be less, depending on how the font has been made up). The height of a line is 1 pica plus the leading, however that has been set using the `\\sl' command (the default is 2 points, giving a line height of 10 points). Notes. CPM 2.2 is required to run \xEP and about 48K of memory. Required files are EP.COM, the printing and formatting program, EP.INI, a file with initialization data, and .FN2 files for whatever letter fonts are requested in the text. EP.INI must be on the default disk in the current user area. The font editing program is ECHED.COM. It assumes that the clear screen character is ^Z and cursor addressing is as for the Admiral 3a, Viewpoint, or similar terminals. However, it may be configured for other terminals. Leading spaces or tabs in a line are always interpreted in picas, regardless of what font is in use. Embedded tab characters are expanded in picas, with a tab stop assumed at every eighth column as the text appears on the screen during editing. So, if tab characters were used to align columns on the screen, they will also be aligned in the printout (unless preceding text on the line does not leave enough room). In WordStar document files, indentation, the spaces added for right justification, and page breaks are ignored. However, soft hyphens are used to break words when needed. In Pmate files, imbedded format strings (beginning with ^F) are ignored. If you need to print the escape character, double it in the text. Any amount of white space (SP or tab characters) can intervene between the escape character and command word, and between the latter and a numeric or character argument, or between the latter and a right brace or the first character of text to be printed. No white space is required except to separate two alphabetic words or two numbers. E.g., all the following are equivalent: \\ font 2 {Tonto} rides \\font 2 {Tonto} rides \\font2{Tonto} rides \\fo2{Tonto} rides A `\\' at the end of a line has the effect of adjoining the next input line with no space added before the next word. When printing starts, the print head is assumed to be above the top margin by the value of the heading margin which will be 1" from the top of the paper, unless the top margin or heading margin have been reset before the first printable character is encountered. * If the footing margin is set to 0, there will be no page numbers and no final page eject when the text has been printed. Otherwise, there is a final eject, and there will be centered page numbers below the bottom margin at a distance controlled by the value assigned to footing margin (default is 1 pica). The first letter font that was requested is used for the numbers. The page number can be set using `\\page-number n'. * Page numbers can be put at the top instead, and in fact headings and footings of one or more lines and more or less arbitrary complexity can be designed using the $heading and $footing commands. After the imbed command and its file name argument, subsequent text on the input line is processed before the file is actually imbedded. The maximum allowed nesting level for imbed files is 7. A command `\\new-fonts' was added which purges all letter font names and data from memory. This gives you a fresh start, and is useful for texts using large numbers of fonts. A primitive facility for multiple column printing has been added. The space to be allowed between columns is set with the \\gutter command and the numbers of columns with \\numberof-columns. When more than one column is being printed, concatenation must be turned off, and justification, indentation, centering and right adjust are all done within a column. Text will read across the columns rather than down (I said it was primitive). The number of the current column is the value of the current-column variable. There is a way to access the values of EP's system variables or any other variables defined by a combination of two letters. E.g., `\\=adjust' will cause the current numeric value of the adjust variable to be printed, and `\\indent-right = adjust' should set right indentation to the same as the adjust value. Variables not used by EP are free to be used for keeping numeric values for later reference. The syntax for horizontal and vertical numeric arguments was extended to allow fractions. `\\top-margin 3/4"' sets the top margin to 3/4 of an inch. There is a new command `\\{' which saves the current `print mode' and restores it later when the paired `}' is encountered. The `print mode' controls the following parameters: font number, elite, proportional, compressed, emphasized, double-strike, expanded, under-lined, italic, superscripts, subscripts, bent, tall. Commands that cause a break are: adjust, line-length, concatenate, justify, character-width, set-leading, break, new-fonts, current-column, numberof-columns, indent, indent-right. All default values are 0, except for the following: line-length 80 picas set-leading 2 points page-length 11 inches char-space 3 dots top-margin 1 inch bottom-margin 1 inch footing-margin 1 pica reqd-blank escape-char (there are others ...)