PEDFONT by Ken Murphy Table of Contents General Description . . . . . . . . . . . . . . . . . . . . . . . . 4 What PEDFONT Does . . . . . . . . . . . . . . . . . . . . . . . . . 4 System Requirements . . . . . . . . . . . . . . . . . . . . . . . . 5 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 RESETPRINTER . . . . . . . . . . . . . . . . . . . . . . . . . 6 SHEETFEEDER . . . . . . . . . . . . . . . . . . . . . . . . . 6 FONTMODULE . . . . . . . . . . . . . . . . . . . . . . . . . . 6 PRINTERPORT . . . . . . . . . . . . . . . . . . . . . . . . . 7 The Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 General Description . . . . . . . . . . . . . . . . . . . . . 7 Context Sensitive Help . . . . . . . . . . . . . . . . . . . . 8 Menu Selections . . . . . . . . . . . . . . . . . . . . . . . . . . 9 File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Load Font . . . . . . . . . . . . . . . . . . . . . . . . 9 Save Font . . . . . . . . . . . . . . . . . . . . . . . . 10 Save As . . . . . . . . . . . . . . . . . . . . . . . . . 11 Print Font . . . . . . . . . . . . . . . . . . . . . . . 11 Download Font . . . . . . . . . . . . . . . . . . . . . . 12 Delete Font . . . . . . . . . . . . . . . . . . . . . . . 12 Rename Font . . . . . . . . . . . . . . . . . . . . . . . 12 Setup New Font . . . . . . . . . . . . . . . . . . . . . 12 Font Status . . . . . . . . . . . . . . . . . . . . . . . 14 Temper Toggle . . . . . . . . . . . . . . . . . . . . . . 14 Edit Font . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Epson Control . . . . . . . . . . . . . . . . . . . . . . . . 15 Operation/Control . . . . . . . . . . . . . . . . . . . . 16 Vertical Motion . . . . . . . . . . . . . . . . . . . . . 17 Horizontal Motion . . . . . . . . . . . . . . . . . . . . 18 Font & Pitch . . . . . . . . . . . . . . . . . . . . . . 19 Ornamentation . . . . . . . . . . . . . . . . . . . . . . 20 Copy ROM to RAM . . . . . . . . . . . . . . . . . . . . . 20 Character Tables . . . . . . . . . . . . . . . . . . . . 21 Character Styles . . . . . . . . . . . . . . . . . . . . 21 Print Enhancement . . . . . . . . . . . . . . . . . . . . 22 Macros . . . . . . . . . . . . . . . . . . . . . . . . . 23 Reset Printer . . . . . . . . . . . . . . . . . . . . . . 24 Printer Status . . . . . . . . . . . . . . . . . . . . . 24 User Commands . . . . . . . . . . . . . . . . . . . . . . 24 Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Quick Fox . . . . . . . . . . . . . . . . . . . . . . . . 25 Cyclical . . . . . . . . . . . . . . . . . . . . . . . . 26 Space . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Block . . . . . . . . . . . . . . . . . . . . . . . . . . 26 User Text . . . . . . . . . . . . . . . . . . . . . . . . 26 Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1 Editing a Font . . . . . . . . . . . . . . . . . . . . . . . . . . 26 General . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Character Edit Pin Map . . . . . . . . . . . . . . . . . . . . 27 Edit Commands . . . . . . . . . . . . . . . . . . . . . . . . 29 Font Status . . . . . . . . . . . . . . . . . . . . . . . 29 Save Character . . . . . . . . . . . . . . . . . . . . . 30 Restore Character . . . . . . . . . . . . . . . . . . . . 31 Consecutive Pins On/Off . . . . . . . . . . . . . . . . . 31 Print Character . . . . . . . . . . . . . . . . . . . . . 31 Copy Character . . . . . . . . . . . . . . . . . . . . . 32 Move Rotation Center . . . . . . . . . . . . . . . . . . 32 Define Side Columns . . . . . . . . . . . . . . . . . . . 33 Clear Character . . . . . . . . . . . . . . . . . . . . . 33 Home Cursor . . . . . . . . . . . . . . . . . . . . . . . 33 Cursor to End . . . . . . . . . . . . . . . . . . . . . . 33 Move Cursor . . . . . . . . . . . . . . . . . . . . . . . 33 Toggle Pin On/Off . . . . . . . . . . . . . . . . . . . . 33 Insert Row . . . . . . . . . . . . . . . . . . . . . . . 33 Delete Row . . . . . . . . . . . . . . . . . . . . . . . 34 Insert Column . . . . . . . . . . . . . . . . . . . . . . 34 Delete Column . . . . . . . . . . . . . . . . . . . . . . 34 Shift Character . . . . . . . . . . . . . . . . . . . . . 34 Shift Column or Row . . . . . . . . . . . . . . . . . . . 34 Rotate Clockwise . . . . . . . . . . . . . . . . . . . . 34 Rotate CounterClockwise . . . . . . . . . . . . . . . . . 34 End edit . . . . . . . . . . . . . . . . . . . . . . . . 34 High Resolution Display . . . . . . . . . . . . . . . . . . . 34 Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . 34 Designing Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Steps to Follow . . . . . . . . . . . . . . . . . . . . . . . 36 Adjacent Pins . . . . . . . . . . . . . . . . . . . . . . . . 36 Font Size . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Planning Characters . . . . . . . . . . . . . . . . . . . . . 36 Character Columns . . . . . . . . . . . . . . . . . . . . . . 37 Design Grids . . . . . . . . . . . . . . . . . . . . . . . . . 40 Cautions . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Sending Fonts to the Printer . . . . . . . . . . . . . . . . . . . 43 Partial Font Over . . . . . . . . . . . . . . . . . . . . . . 43 Full Font . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Full Font Defined Range . . . . . . . . . . . . . . . . . . . 44 Switching to RAM Character Printing . . . . . . . . . . . . . . . . 45 Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . 45 What PEDFONT Doesn't Do . . . . . . . . . . . . . . . . . . . . . . 46 Registration . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Technical Stuff . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3 I. General Description PEDFONT is another program in the "ultimate" series. You know, the "Ultimate File Copy" ... the "Ultimate Menu System", etc. which we see so often. Now, here's the "Ultimate Epson Printer Utility". Seriously, PEDFONT was developed as part of my "PEDIGREE" Shareware system which prints graphic genealogical pedigree charts on an Epson LQ 24 pin printer (or compatible) using GEDCOM genealogical data. Any Epson-compatible printer recognizing Epson's "ESC/P" command language will work. Since PEDFONT was a development tool, I never intended releasing it. I developed it because there was no satisfactory Epson LQ font editor available. I also wanted a single program that managed ALL the Epson LQ features AND included font building and editing. My third reason for developing PEDFONT was to refine LQ fonts already available in the public domain for which no editor could be found. And I wanted all of that in a single menu-driven program. After PEDIGREE had been released and had evolved through several versions, I became aware that PEDFONT had also grown. And it looked good enough to let loose if I made a few cosmetic and user-friendly changes, and if I wrote a document for it. Note: I make reference to keystrokes in the following manner: . Anything you read here that's surrounded with "<>" means a keyboard key. means the "Escape" key; means the "Insert" key, means the letter "B" key, etc. Don't type either of the "<>" symbols. II. What PEDFONT Does PEDFONT was designed to send to the printer all possible commands in the Epson "ESC/P" command repertoire. Epson America has since moved to the "ESC/P2" command language in order to support newer printers that have scalable fonts, raster graphics, multipoint, etc. PEDFONT was designed only for the ESC/P Epson command language and not ESC/P2. PEDFONT is useful in the following ways: ú Configuring the printer ú Developing and testing printer fonts ú Testing printer features ú Writing printer macros ú Designing and testing forms Within one program, PEDFONT provides single key, menu driven access to virtually every feature of the Epson LQ printer. Using more than 200 logically organized menu selections, you can turn "On" or "Off" every print mode, set the printer into any font and style, select any character set or ornamental style, control vertical and horizontal printhead movement, and much more. PEDFONT is completely window oriented and menu-driven. No other printer control program I examined provides the total printer control of PEDFONT. The tradeoff for all this good looking power is that PEDFONT is a substantially larger program than any of it's predecessors, but it's small enough to run in any IBM compatible computer. 4 PEDFONT provides an easy way to develop and/or modify user-defined printer fonts. PEDFONT has font development features available in no other font editor. As previously noted, it was used to develop each of the 10 printer fonts I supply with my "PEDIGREE" genealogical shareware program. PEDFONT will read fonts created by other font editors such as LQFONT. The only restriction observed by PEDFONT is that a printer font file must have the DOS file extension LQC. That seems to be a de-facto standard that makes sense. Other than that, PEDFONT will process just about any Epson font produced by any font manager. PEDFONT is menu driven. It's menu tree is intuitive and simple to use. Since PEDFONT was written for someone who understands the special features of the LQ printer and what they do, I've chosen to avoid writing a lot of instructions about how the printer works. That would duplicate the printer's manual. However, even if you have only the most basic understanding of the Epson LQ printer, you can use PEDFONT. Any LQ printer manual is the best source of info on what the printer will or won't do and, for some of the more esoteric printer features, you'll need it. A standard printer manual has a few pages at the back which tables all the printer's commands. PEDFONT, through it's menu, gives you access to virtually all of them. Using PEDFONT, you'll learn and explore things you never knew your printer could do. All versions of PEDFONT, registered or not, are fully functional. PEDFONT is also useful on a non-Epson printer as long as it's LQ compatible. And much of the Epson LQ ESC/P repertoire is also sensible to 9 pin printers, so PEDFONT can be used on them, as well. III. System Requirements PEDFONT runs on any 286 or better with MS-DOS 3.1 or higher, a minimum of 512K main RAM and an extended keyboard (numeric keypad and 12 function keys). It can run from a floppy or hard drive. It doesn't require nor does it use EMS, XMS, high memory, temporary disk space or a mouse. Everything it does is done in main memory. Of course, you'll need an Epson LQ-compatible 24 pin dot matrix printer connected to the parallel port which DOS sees as "LPT1". If you simply MUST have a PEDFONT that runs on an 80xx, contact me. PEDFONT autodetects and adjusts to whatever monitor type you have, but it expects an EGA or VGA. It will run on any EGA or VGA color monitor or even a monochrome. I designed the color sets and PEDFONT's operation for an 80x25 VGA text mode display. In order to display a high resolution picture of the edit character, I redefine some of the EGA/VGA display adapter's character maps and set the monitor into an alternate font width. High resolution character display is possible only on an EGA or VGA monitor. IV. Parameters PEDFONT recognizes four command line parameters, and they're all optional. All command line parameters are the "KEYWORD=VALUE" variety, and they can be supplied in any order. The only two possible parameter values for three of the parameters is "YES" or "NO", and the fourth has value that specify a parallel port name. You can use one parameter, 5 all or none. They can be in upper or lower case. If you use more than one parameter, separate them with a space, e.g. PEDFONT param1=YES PARAM2=no A. RESETPRINTER "RESETPRINTER" is used to suppress PEDFONT's reset of the printer when PEDFONT first starts. Ordinarily, PEDFONT will turn "Off" every print enhancement feature, erase the printer's RAM and return the printer to it's most simple operating mode. The command line parameter "RESETPRINTER=NO" will suppress PEDFONT's initial reset of the printer. If you enter any other value for "RESETPRINTER", PEDFONT will ignore it. To suppress PEDFONT's printer reset with this parameter, start PEDFONT from the DOS command prompt with the following: PEDFONT RESETPRINTER=NO I suggest that you do not use this parameter unless: a) you're sure you understand exactly the condition and settings of the printer at the time PEDFONT starts, and b) you don't want the printer's settings disturbed. If PEDFONT does not reset the printer when it starts, it's display of the printer status will be mostly meaningless because there's no way to interrogate the printer for it's settings. Secondly, allowing PEDFONT to reset the printer is a good way to confirm that the printer is, indeed, functioning properly before continuing with PEDFONT. You can, of course, reset the printer at any time by using the menu selection "Reset Printer". B. SHEETFEEDER The Cut Sheet Feeder is an optional, extra-cost accessory for the LQ-850/950/1050 printers. Later printers that recognize the ESC/P2 language have built-in abilities similar to the Cut Sheet Feeder. The SHEETFEEDER parameter is used to tell PEDFONT that you do/don't have the Cut Sheet Feeder installed on the printer. PEDFONT presumes your printer does not have a Cut Sheet Feeder, i.e., it's default is "SHEETFEEDER=NO". If that's the case, there's no need to use the "SHEETFEEDER" parameter. If your printer has a cut sheet feeder, and you want to use PEDFONT's ability to control it, use the parameter "SHEETFEEDER=YES". When you enable the Cut Sheet Feeder with this option, PEDFONT enables the menu selections which provide access to the Cut Sheet Feeder functions. Ordinarily, these menu options are protected, and you can't use them. If you supply a parameter value other than "YES", PEDFONT will ignore it. C. FONTMODULE The Epson LQ-850/950/1050 printers have only the Roman and Sans 6 Serif fonts as standard. An extra-cost option called the "Multi-Font Module" provides six more fonts. They are Courier, Prestige, Script, OCR-A, OCR-B, Orator and Orator-S. If you tell PEDFONT that the Multi-Font Module is installed with "FONTMODULE=YES", PEDFONT will enable those menu selections which allow use of the Courier and Prestige fonts. This version of PEDFONT supports Courier, Prestige and Script but not the other font module fonts. If you supply a parameter value other than "YES", PEDFONT will ignore it. Printers other than the Epson LQ-850/950/1050 such as some Panasonics have the extra fonts built-in as standard, and they can be used by PEDFONT by specifying "FONTMODULE=YES". PEDFONT's default is "FONTMODULE=NO". D. PRINTERPORT By default, the parallel port to which PEDFONT directs it's printer commands is "LPT1". With this parameter you can change it, and use PEDFONT to manage a printer connected to another parallel port. Allowable operand values are "LPT1", "LPT2", and "LPT3". V. The Menu A. General Description The menu system is SAA/CUA compliant. The main menu is a horizontal row of five selections. Submenu selection are arranged vertically. The single exception if the "On Off" submenu which has it's two choices arranged horizontally. The main menu and every submenu has a highlight bar that is moved with the cursor control keys. Those include the arrow keys, , and . If a submenu is active, and you use the < > or < > arrow key, PEDFONT moves the highlight bar into the submenu in that direction. It automatically closes the original submenu and opens the new submenu. closes whatever submenu is currently active returning control to the preceding submenu. Closing the highest level submenu returns control to the main menu. If only the main menu is active when you press , PEDFONT terminates. Move the highlight bar over your choice, and press to select it. Each menu selection has a highlighted character which can be used to select the menu choice directly. The highlighted character is the leftmost character of the menu choice. Where a submenu has more than two choices, the selection "hot key" is one of the letters "A", "B", "C", etc. "A" is always the first selection in the submenu, "B" the second, etc. The "hot key" is always the leftmost letter of the menu choice. Where a submenu has only two choices, the "hot key" is one of the letters of the submenu selection. Selecting one of the main menu choices causes a submenu to drop down. Submenus will "pop up" or "explode" depending on their function within the menu hierarchy. In some cases, selecting an entry on a submenu produces another submenu, and so on. All menus 7 and submenus, except for colors, look and work the same. Selecting some submenu choices will active a data entry panel. It's a separate window. A data entry panel is used to collect some numeric value(s) or text string from you. You have use of all editing keys such as , and the cursor control keys. toggles the "insert/overtype" mode. A data entry panel will have either a field value prompt or a header for the entire panel. A text string data entry panel may be prefilled for you. Such is the case with a panel that asks for a file name. PEDFONT generally preloads a data entry field with either a suggested value or the previous value of that field. When supplying the data entry value, if the first keystroke is not an editing or cursor key (it's an alphabet key), PEDFONT erases the prefill string, moves the cursor to the start of the field, and puts your first character there. That is, PEDFONT has assumed you're overtyping the entire field rather than editing it. To edit it, your first character would have been an editing or cursor control key. If a data entry panel has multiple fields, you can move among them with or . If the data entry panel requests a file name, PEDFONT automatically converts every character you type to upper case. There's no need to press or use . When the data entry panel is complete, press to accept it. When PEDFONT starts, you'll note that some menu choices are "protected". That is, they're displayed in a low intensity attribute and color, and you can't move the cursor to them. Those are choices not yet available until some other event has happened. For example, PEDFONT won't let you EDIT a font if you haven't loaded or set up one. B. Context Sensitive Help The bottom line of the display screen is a status and help line. It receives messages about the success or failure of any operation PEDFONT attempts. When the menu is on screen, each menu or submenu selection displays a one-line, help message describing the intention of the menu choice. Whenever PEDFONT completes an activity, it displays a confirmation message in the status line and waits 2 seconds for you to read it. Then it erases the message, and it continues. For the submenus subordinate to the "Epson Controls" menu selection, there is additional help available. Pressing will open a help window with extra detail about the selection under the highlight cursor. Pressing closes the help window. There may be more help information than can fit into the help window. Use the cursor control keys and to page the help window. The information presented in the help window is, generally, explanation 8 about the specific Epson printer command. It may also include restrictions on what the printer will or won't do as a result of the command. NOTE: not every submenu selection provides additional help. If there's no help for a selection when you press , PEDFONT beeps. If anything amiss occurs while PEDFONT is doing something, it will beep the computer's speaker and display an error message in the status line. Most errors are temporary, and PEDFONT will continue. Some aren't, and PEDFONT will terminate execution after displaying the error message. If PEDFONT beeps, you can be sure something planned didn't happen. VI. Menu Selections A. File The FILE menu choice, when selected, drops down a submenu with all the choices for managing font files. PEDFONT can LOAD them, SAVE them, DELETE them, RENAME them, DOWNLOAD them to the printer, and so on. If you're using PEDFONT as a font manager, this is where you start. The submenu is as follows: A Load Font B Save Font C Save As D Print Font E Download Font F Delete Font G Rename Font H Setup New Font I Font Status ---------------- T Temper Toggle As noted above, the leftmost character, e.g. "A", "B", ... is the highlighted "hot key" and can be used to select the submenu entry. 1. Load Font This menu choice loads a font file (with an LQC file extension) into PEDFONT's working storage. PEDFONT displays a picklist of all the disk drives, all directories on the currently active drive, and any files with an LQC file extension. The picklist is used just like a menu - move the highlight cursor to your choice, and press . One caveat - I've designed PEDFONT to read many different font file types. Generally, if the file can be sent to the printer, PEDFONT can read it. There are available, however, font files that specify character column widths exceeding 37, the max for a proportional character pin map. There are also font files that attempt to redefine characters outside the range of ASCII 0-126. I've built PEDFONT with a fair degree of self-protection to be able to deal with some of the more bizarre font files I've come 9 across. PEDFONT will read and load those font files, but it will discard any data it doesn't like. For example, if you attempt to load a font with a character defined with 42 columns, PEDFONT will load the first 37 and ignore the rest. Even so, if the font file doesn't say it's a proportional font, you'll only see the first 29 columns of that character when you try to edit it. The maximum width for any character is 42 columns. Of those, 37 is the max for the pin map data. See the section on "Restrictions" for more info. PEDFONT has self-protection and validation built-in to guard against malevolent font files. If PEDFONT detects something wrong with a font file it's loading, it will attempt to correct the error. If the error is uncorrectable, it will ignore the offending character or pin pattern. In either case, PEDFONT displays a message in the status line indicating that a defective font file has just been loaded. 2. Save Font This choice writes the loaded font to the disk using the same file name used to load it. After saving, the font remains loaded and available for any other font activity. When this menu entry is selected, another submenu displays providing the choices: A Partial Font Over Roman B Partial Font Over Sans Serif C Partial Font Over Courier D Partial Font Over Prestige E Partial Font Over Script F Full Font G Full Font Defined Range "Partial ..". transfers the pin maps for only those characters that have them. If you've developed a font file wherein only one character is defined, the partial font will be a very short one with one character's pin map. A "Full Font" contains a definition for EVERY character in the definable ASCII set from code 0 to 126. A "Full Font Defined Range" contains definitions for every character from the lowest defined to the highest defined but none outside that range. This is the option you'll use most often. Pin maps for characters undefined are treated by the printer as spaces if you send a "Full ..". font. See the section on "Sending Fonts to the Printer" for more info on why you might select one option over another. If you're saving a partial font file, consider how the printer is supposed to use just those characters you've defined. The choices "A" through "E" above respectively mean: a. Printer, preload the Roman font into RAM. Then, overlay any Roman font character pin map with the pin map from this downloaded font. Leave the other Roman font characters unaltered. 10 b. c. and d. Same as "a". except start with the designated font. PEDFONT always precedes the user-defined characters with preparatory Epson commands. In sequence, they are: 1. Initialize Printer 2. Italics Off 3. Letter or Draft quality 4. Set Size (normal or Super/Subscript) 5. Super/Subscript On/Off 6. Proportional or Fixed spacing 7. Copy ROM font to RAM PEDFONT always ends the font file with a command to switch the printer to the user-defined characters in RAM. Since PEDFONT does not know your intention re using a Super/Script size font, it always presumes that it is Superscript font. If you want to either use it as a Subscript font, print it with proportional spacing, or as a small fixed font, you'll have to enable those functions separately. PEDFONT must include a "Super/subscript On/Off" command so that it can recognize a Super/subscript font when it reloads one. 3. Save As This choice is the same as "Save Font" except you can specify a new name for the font file. If you load a font file and then write it back to disk with "Save As", you've copied the font to a new file. "Save As" provides the same submenu choices as "Save". "Save As" asks for the name of the new font file. This must be a full path\filename ending in ".LQC". PEDFONT preloads the new file name field with the drive and directory from which it was loaded and appends "NEWFONT.LQC". If that font file name is acceptable, press . Otherwise, overtype it with whatever you like, and then press . If the filename you've selected already exists, PEDFONT displays a warning message that it's about to overwrite it and asks for confirmation that it's OK to do so just as in "Save Font". Also, the "Font Status" display shows the current font file name. 4. Print Font "Print Font" downloads the loaded font to the printer and then prints every character in the font in each of 5 styles: a. Normal b. Double Strike c. Emphasized d. Double Wide e. Condensed 11 Use "Print Font" to get a complete printed illustration of every character in your font in each of several print styles. 5. Download Font This choice sends the loaded font to the printer and activates it. Any printing from this point will be done with the newly downloaded font. "Download Font" provides the same submenu choices as "Save" and "Save As". 6. Delete Font This choice displays a picklist of font files just like the "Load Font" selection picklist. Any LQC file selected will be targeted for deletion from the disk. When you select a file, PEDFONT will display another screen asking for confirmation of the delete. The display window asks: Delete X? A Where X is the name of the font file you selected, and "A" can be either "Y" or "N" for "yes" or "no". If you hit or , the file will not be deleted. After you enter a "Y" or "N", press to register your choice. by itself won't do it. After attempting to delete the selected font, PEDFONT confirms the success or failure in the status line. 7. Rename Font This choice displays a picklist of font files just as for the "Delete Font" selection. Any LQC file you select will be targeted for renaming. When you select a file, PEDFONT will display another screen asking for confirmation of the renaming. The display window asks: Rename X? A Where X is the name of the font file selected, and "A" can be either "Y" or "N" for "yes" or "no". If you hit or , the file will not be renamed. After entering a "Y" or "N", press to register your choice. If you select "Y" to rename the file, another window explodes asking for the new file name. This window allows only an 8 character filename. If you press at this point, the rename activity is aborted. Otherwise, enter the 8 character new file name, and press . PEDFONT appends the LQC file name extension to the new file name. After attempting to rename the file, PEDFONT confirms the success or failure of the rename in the status line. 8. Setup New Font Use this selection when preparing to edit a new font. PEDFONT will abandon any font loaded, and prepare for new font 12 specifications. "Setup New Font" causes a submenu to display with the following choices for the type of the new font: Letter Quality Draft Quality If you select "Draft Quality", PEDFONT solicits the font size with another submenu containing the choices: A 10 CPI B 12 CPI C 15 CPI If you select "Letter Quality", PEDFONT solicits the font size with another submenu containing the choices: A 10 CPI Fixed B 12 CPI Fixed C 15 CPI Fixed D Proportional E Super/Sub 10 CPI F Super/Sub 12 CPI G Super/Sub 15 CPI After you've selected font size, PEDFONT will solicit the path\file name of where to write the new font file. It preloads the data entry field with a default font name. Whether you use PEDFONT's default name or you enter your own, the path\filename must end in .LQC. When you're satisfied with the path\filename, enter . PEDFONT checks whether or not the path\filename already exists. If it does, PEDFONT warns you and asks if it's OK to overwrite the file. Responding anything other than "Y" (including ) causes PEDFONT to abandon the new font. Whichever type of font you intend to create, PEDFONT opens a data entry panel soliciting the default values of d0 and d2. d0 is the number of dot columns to be added to the left of each character, and d2 is the number of dot columns on the right. These values will be applied to ALL new font characters in the event you don't specify d0 and d2 individually for each character you design. d0 and d2 can be set separately for each character during character edit. See "Editing a Font" for more information on d0 and d2. The default settings of d0=0 and d2=0 shown in the data entry panel are suggestions only. You can set them to whatever value you like. When outputting a font file either to disk or to the printer, PEDFONT always writes a d0 and d2 FOR EACH CHARACTER. The d0 and d2 used can be the overall font default or the individual character d0 and d2 you supplied when editing the character. Epson America recommends that d0 and d2 be non-zero only for proportionally spaced fonts. 13 9. Font Status A window opens displaying all the configurational parameters that define the font that's loaded. They are: a. Type: Draft or Letter Quality b. Size: Pitch 10, 12, 15, Proportional, Super/Sub 10, 12, 15 c. Characters in Font: the number of characters in the font that have definitions d. First Char: the decimal, hexadecimal and graphic representation for whatever character in the font has the lowest ASCII value e. Last Char: as above but for the highest character f. Left/Right Side Cols: a default number of columns defined to be unused on the left and right of the character. This is not necessarily the actual values used for the characters. See "Editing a Font" for more detail on side column space. g. Maximum Columns: the defined maximum columns for the given font type and size. h. Max Side Cols: default sum of left and right side columns defined for this font Type and Size. i. Character Pins: the width in pins for this font depending on type. It could be 9, 23, 29 or 37. j. Font Has Changed: "Yes" or "No". Editing any character causes PEDFONT to think the font has changed. You can use this to determine whether or not the font needs to be saved. k. ROM Font Preload: the name of the printer's ROM font designated to be preloaded prior to it's acceptance of the downloaded font. It could be "None", "Roman" or "Sans Serif". l. Font Has Errors: "Yes" or "No" based on whether or not PEDFONT detected something amiss when loading the font. NOTE: This status display is nearly identical to the "Font Status" display produced by the edit command . Some of those display values, however, pertain to only the character in the edit pin map window and not to the entire font. This menu selection, however, pertains to the entire font. 10. Temper Toggle This selection toggles the temper control switch. Having the temper control switch "On" can be useful for those exhausting font edit sessions or when things are going badly. B. Edit Font "Edit Font" has no submenu attached to it. Selecting "Edit Font" displays a new screen with a window containing all the possible characters which can be edited and/or downloaded to the LQ printer. The characters have the ASCII values 0 to 126 decimal. They're displayed in a scrolling picklist window with a highlight cursor bar. The window has a scroll bar along the right edge which 14 indicates where the cursor is positioned relatively within the ASCII set. Characters whose bit maps are already present will be displayed highlighted, and those whose bit maps are undefined will be displayed in a lower intensity gray. If you're creating a new font, ALL characters will be displayed in low intensity. On a color monitor, characters having column definitions are Yellow while characters that don't are Gray. Alongside the picklist of font characters is a small high resolution window. PEDFONT displays in the hires window a graphic representation of the character highlighted in the picklist. Toggle this display "On/Off" with . Since displaying high resolution font characters on a text-mode screen is a computationally intensive activity, you might see some screen flicker especially on slower computers. If it annoys you, you can turn off the high resolution character display. Move the cursor over the character you want to edit, and press . You can also select the character you want to edit by pressing it's key on the keyboard. For example, if you want to edit the pin map for "b", press the key. PEDFONT will automatically move the cursor to the capital "B" character or the lower case "b" whichever is the first defined for the font. Assuming that both are defined, the cursor would move to the capital "B". Press again, and PEDFONT moves the cursor to the lower case "b" character. Pressing activates the edit screen for the "b" pin map. See the section describing use of the editing screen for details. The edit character picklist window also shows several other useful items of information about every character in the font. The entire display contains left to right: 1. The ASCII character 2. The decimal value of the character 3. The hex value of the character 4. The number of left side columns 5. The number of dot columns 6. The number of right side columns 7. Total defined columns - sum of d, e and f. Items "4" through "7" don't display for characters in the font that have not been defined. Use to move to the first character in the list, and use to move to the last. and also work as expected. Pressing returns the display to the main menu - no editing. In the status line at the bottom of the screen is a reminder about some keystrokes to use while this screen is active. C. Epson Control This main menu selection causes a drop down submenu to display which 15 contains all the Epson control choices arranged in logical groups. Using this selection you manage all the features built into the printer. Selecting most of the control features on the drop down menu will cause another submenu to display and some of them, in turn, will display another submenu. Listed below are all printer feature groups controllable from this submenu including each submenu under the group. Consult your Epson printer manual for specifics on these features and what they do. A Operation/Control B Vertical Motion C Horizontal Motion D Font & Pitch E Ornamentation F Copy ROM to RAM G Character Tables H Character Styles I Print Enhancement -------------------- R Reset Printer S Printer Status -------------------- U User Commands 1. Operation/Control This selection displays another submenu with choices directed at overall control of the printer. You can initialize the printer and send one of several single-character commands to it. When you select this entry, another submenu displays with the following selections: A Initialize B Unidirectional C Cut Sheet Feeder D Beeper E Carriage Return F Cancel Line Selection "Initialize" returns the printer to it's power-on settings. That IS NOT the same as the "Reset Printer" function described later. Note that the "Initialize" command DOES NOT affect printer settings selected with the printer control panel (SelecType). "Initialize" also does not effect user-defined characters. Selection "UniDirectional" will display another submenu allowing you to select "On" or "Off" to enable unidirectional or bidirectional printing. Selection "Cut Sheet Feeder" will display another submenu with the following choices: A Bin1 B Bin2 16 C Eject Sheet D Feeder On E Feeder Off DO NOT use the Cut Sheet Feeder options unless your printer has the Cut Sheet Feeder option installed. If you do, you'll know what the various menu selections mean. 2. Vertical Motion This selection gives you control over the vertical movement of the paper, and it also allows setting the vertical page definitions. The following submenu pops up: A Form Feed B Skip Over Perforation C Line Feed D 1/8 Line Spacing E 1/6 Line Spacing F Set Page Length Inches G Set Page Length Lines H n Over x Line Spacing I Vertical Tabs Submenu items "A", "C", "D" and "E" have immediate effect. Submenu item "Skip Over Perforation" causes an "On/Off" submenu to pop up. If you turn "Skip Over Perforation" "On", a data entry panel will display asking how many line above/below the perforation you want to skip. Submenu items "F" and "G" cause a data entry panel to display for you to supply the required page length value. Submenu selection "n Over x Line Spacing" causes another submenu to display with the choices: A n Over 180th Inch B n Over 60th Inch C n Over 360th Inch Selecting any of these choices will cause a data entry panel to open requesting the new value of "n". Note: Epson recommends NOT using the "n/60" spacing commands. I've included them here because the LQ series supports them. But PEDFONT DOES NOT actually send an "n/60" command to the printer if you select option "B n Over 60th Inch". Rather, PEDFONT computes the appropriate "N/180" value and uses that command. The result is the same as if the "n/60th" command were used. If you select item "Vertical Tabs", another submenu appears with the following choices: A Tab Vertically B Set Vertical Tabs 17 C Switch Tab Channel D Clear Vertical Tabs E Display Tab Settings Selection "Tab Vertically" sends an immediate vertical tab command to the printer. Selecting "Set Vertical Tabs" causes a data entry window to appear asking for which of the printer's 8 vertical tab channels you want to set. When the channel number has been correctly entered, PEDFONT displays another data entry window requesting the complete set of 16 vertical tab stops. NOTE: each tab stop must be greater than the previous. The first zero tab stop ends all the tab stops. That is, if you set tab stops to "5, 10, 0, and 20", PEDFONT will set the printer's vertical tab stops to 5 and 10 in whatever channel you selected. The last choice displays the current settings for each of the 16 tab stops in each of the 8 vertical tab channels. 3. Horizontal Motion This selection causes a submenu to display with the following choices: A Set Left Margin B Set Right Margin C BackSpace D Set Absolute Position E Set Relative Position F Select Justification G Set Intercharacter Space H Horizontal Tabs Selecting either "A ..". or "B ..". causes a data entry panel to display requesting the new margin position. Margins are permitted from 0 to 133 to accommodate the various font and size settings. "F Set Justification" causes another submenu to display offering the following four justification choices: A Left B Center C Right D Full Selecting "H Horizontal Tabs" causes another submenu to display with the following choices: A Tab Horizontally B Set Horizontal Tabs C Clear Horizontal Tabs D Display Tab Settings 18 Selecting "Set Horizontal Tabs" causes a data entry window to appear asking for the complete set of horizontal tab stops. You can change all 32 of them. NOTE: each tab stop must be greater than the previous. The first zero tab stop ends all the tab stops. That is, if you set tab stops to "5, 10, 0, and 20", PEDFONT will set the printer's horizontal tab stops to 5 and 10. Select "Display Tab Settings" displays the current tab stop settings for each of the 32 possible horizontal stops. 4. Font & Pitch This selection provides access to all of the printer's built-in font styles and sizes. It also allows you to select a font stored in the printer's RAM. The following submenu will display when this menu item is selected: A Roman Draft B Roman LQ C Sans Serif Draft D Sans Serif LQ E Courier F Prestige G Script ------------------ H Proportional ------------------ I Select RAM Font J Select ROM Font K Erase RAM Font The Courier, Prestige and Script fonts can be selected only if the printer has the plug-in font module. If you've used the "FONTMODULE=YES" parameter but your printer does not have the extra fonts, a command attempting to enable one of the extra fonts will be ignored, and the printer will switch to the default Roman font. Some non-Epson printers (Panasonics) have these fonts as standard, so they can be used without additional hardware. When selected, they're always activated by PEDFONT in the Letter Quality mode. If you want a draft Prestige, use the PEDFONT command to disable Letter Quality printing after selecting the Prestige font. Submenu items "A" through "G" each cause another submenu to display for you to select one of the following: A 10 CPI B 12 CPI C 15 CPI Selecting "Proportional" causes an "On Off" submenu to display so you can enable or disable proportional character spacing. 19 Picking "Select RAM Font" immediately switches the printer to use any font stored in it's RAM IF PEDFONT thinks the printer's RAM has been loaded. If PEDFONT hasn't told the printer to either copy a ROM font to RAM or to Downloaded a font, it won't let you switch to printer RAM. That would be pointless, although the printer would permit it. Selecting "Select ROM Font" switches the printer back to whatever ROM font mode was previously selected. Selecting "Erase RAM Font" sends commands to the printer to make sure it has no character maps in it's RAM. 5. Ornamentation This selection causes a submenu to display allowing you to select one of four ornamental character styles. The choices are: A Normal (default) B Outline C Shadow D Both 6. Copy ROM to RAM This selection causes a submenu to display allowing selection of one of the printer's internal fonts to copy to the printer's RAM. The two choices are: A Roman Font B Sans Serif Font C Courier Font D Prestige Font E Script For an Epson LQ-850/950/1050, et al, the Font Module is necessary in order to select Courier, Prestige or Script. If you've used the "FONTMODULE=YES" parameter but your printer does not have the extra fonts, a command attempting to copy one of the fonts to ROM will be ignored. NOTE: When the printer copies a ROM font to RAM, it copies several font attributes. Those are: Typeface LQ or Draft Super/Subscript setting (font size) Proportional spacing On/Off International Character Set Before copying a ROM font to RAM, be sure those attributes are what you want. NOTE: PEDFONT ALWAYS disables Italics before copying any ROM font to RAM. 20 7. Character Tables This selection causes a submenu to display allowing selection of one of the several printer's character tables. The submenu includes: A Character Table B Printable Characters C Upper Control Codes D International Character Set Sending the command to select a character table tells the printer which character table to use for codes 128 to 255. There are three possibilities. Selecting choice "Character Table" causes another submenu to display with the following choices: A Italics B Graphics C Remap Download "Italics" tells the printer to use it's Italics Character table for the patterns for codes 128 to 255. "Graphics" sets the printer to use the Epson Extended Graphics character table which contains international accented characters, Greek characters, and character for printing lines, corners, and shaded areas. "Remap Download" tells the printer that, when accepting user-defined characters, map them into the 128 to 255 area rather than the 0 to 126 area. You may need to do this if your user-defined character set defines codes outside the recommended range of ASCII 33 to 126. NOTE: This menu selection duplicates the function of one of the printer's DIP switches. Ordinarily, the printer is set to use the Epson Extended Graphics table. Using the graphics table DOES NOT disable Italic printing ability. Selection "International Character Set" causes another submenu to display allowing selection of one of the 14 built-in international character sets. They are: A USA (default) B France C Germany D England E Denmark I F Sweden G Italy H Spain I I Japan J Norway K Denmark II L Spain II M Latin American N Legal 8. Character Styles 21 Selecting this choice causes another submenu to display which provides selection of one of five Character Styles. They are: A Letter Quality B Condensed C Double Wide D Double High Selecting any choice causes another submenu to pop up allowing you to turn "On" or "Off" the character style you selected. 9. Print Enhancement Selecting this choice causes another submenu to display which provides selection of one of several Print Enhancements features. They are: A Emphasized B Double Strike C Underlined D Italics E SuperScript F SubScript G Scoring H Select Color Each of these selections except the last two cause an "On/Off" submenu to display allowing any of the features to be enabled or disabled. Selection "Scoring" displays a submenu offering control over the three types of scoring. The submenu contains: A Underline B Strikethrough C OverScore Each type of scoring can be enabled or disabled independently. After you select the type of scoring, PEDFONT displays another submenu with the following scoring choices: A Cancel B Single Continuous C Double Continuous D Single Broken E Double Broken Each of these options, other than A, determines the style of scoring. It can be a single or double, continuous or broken line. Submenu choice "Select Color" allows setting the printer for a specified color. Only printers that support color should use this option. The printer ignores this command if color printing is not available, and PEDFONT has no way of knowing 22 whether or not the color selection setting succeeded. "Select Color" causes a submenu to pop up with the following color selections: A Black B Magenta C Cyan D Violet E Yellow F Red G Green NOTES: Print Yellow first when overlapping colors. Only blank, magenta, cyan, and yellow are available during graphics modes. Other colors are possible by overprinting the above colors. When combining yellow with other colors, always print yellow dots first (this prevents soiling of the print side of the ribbon). 10. Macros This feature is useful if you need the numeric values of the commands PEDFONT sends to the printer. Like most "macros", PEDFONT's macros record a consecutive series of commands. Macro recording can be turned "On" or "Off" at any time. Rather than recording key strokes, PEDFONT records the actual commands sent to the printer. When "Macros" is selected, PEDFONT displays the submenu: A Start Macro B Stop Macro C Resume Macro D Display Macro E Send Macro Option "A" erases the macro memory and prepares to record a new macro. Option "B" suspends macro recording without erasing the macro memory. Option "C" restarts recording usually after it's been suspended with option "B". Option "D" displays on-screen the decimal values of all commands recorded in the macro from the time macro recording started to the present. NOTE: PEDFONT records only those commands sent as a result of using the submenus under the main menu selection "Epson Controls". Option "D" will only display Epson command values IF the macro recording mode is "on" and there's something in the macro memory. Option "E" sends the entire macro to the printer. The macro is not erased nor is the status of macro recording changed. Macro memory holds about 55 bytes of Epson commands. If PEDFONT exhausts macro memory while you're sending commands to the 23 printer with macro recording "on", it issues a warning message and turns macro recording "off", but it doesn't erase the macro recorded so far. I found this feature invaluable for capturing the values of commands I needed to set the printer into specific modes - especially when the command string was a long one. Turn macro recording "on", use the menu system to configure the printer, and then display all the commands used to do it. Then, write down the command byte values for use in other software. Thus, the error-prone tedium of looking in the printer manual each time can be avoided. 11. Reset Printer The printer is capable of "remembering" some of it's settings when it's turned off, and it will restore those settings when it's turned back on. The "Reset Printer" function sets the printer to it's factory defaults, i.e., Roman, draft quality, 10 CPI font, EVERY printing enhancement feature "Off", no tab stops, nothing in RAM, etc. Using "J Reset Printer" essentially "brainwashes" the printer. This feature is very useful when you've changed several printer settings, and you want to reset EVERYTHING with one command without having to reset the printer feature-by-feature. 12. Printer Status Selecting this menu option causes PEDFONT to examine the operability status of the printer and display it in the status line at the bottom of the screen. Also, a panel is displayed in the center of the screen which shows many of the printer's current settings such as font size, style, print enhancement settings, etc. NOTE: there is NO way to interrogate the printer for these values. PEDFONT presumes that the printer starts in the default Roman 10 CPI font with all the print enhancement settings "Off" and all tabs stops set at 0. PEDFONT sets the printer to those defaults when it first starts. As it successfully sends commands to the printer, it updates an internal table of states. If you observe the restriction of starting the printer in this default condition, and you don't power-down the printer while PEDFONT is in control, PEDFONT's display of printer settings will accurately reflect the state of the printer. 13. User Commands With this command you can enter your own Epson printer commands. When you select "User Commands", PEDFONT opens a single-line data entry panel soliciting commands to be sent to the printer. Each command can be in decimal or in hexadecimal. A hex command is distinguished from a decimal by a starting "$". That is, "78" is decimal 78, but "$78" is decimal 120. 24 You can enter as many commands as will fit into the data entry line. Each command must be ended by a "/" including the final command in the string of commands. For example, each of the following three commands will set the printer into Letter Quality mode: a. 27/120/1/ b. $1B/$78/$1/ c. 27/$78/1/ The following are not legitimate Epson command strings: d. 27,120,1/ e. 27 120 1 f. Drop/Dead/Epson/ g. /// PEDFONT processes the command string left-to-right sending each legitimate code one at a time. While so doing, if PEDFONT detects a syntax error in any single command, it will display an error message and stop sending commands ignoring the remainder of the command string. NOTE: Since PEDFONT does not interpret user commands, it has no way of knowing the condition of the printer after sending one. That is, if you send the printer a command to switch to it's RAM font, PEDFONT's status will not reflect that, and PEDFONT will "think" the printer is still in the ROM font. CAUTION: Be careful with this function. As long as a single command is syntactically correct, PEDFONT will trustingly send it to the printer. If you enter a value that isn't an Epson command value, there's no telling what your printer will do. User's with "Epson compatible" printers may find this function useful to send commands not otherwise supported by PEDFONT. Actually, the commands don't even have to be Epson commands. D. Test Data This menu selection permits test text to be sent to the printer. It's useful if you've either downloaded a new font to test or if you've set the printer into a special mode, and you want to see what print looks like. Selecting "Test Data" causes a submenu to drop down allowing selection of one of several test data patterns. The submenu contains: A Quick Fox B Cyclical C Space D Block U User Text 1. Quick Fox 25 This is the obligatory and historically reverent "The quick brown fox ..". in both lower and upper case. The test also includes all the special keyboard symbols. The entire test is 3 print lines long. 2. Cyclical A test pattern similar to the printer's power-on, built-in test pattern. The test printout uses a full printer page. The first line of the test pattern starts with the character produced by hex code $21. Each line is 80 characters long with each successive character after the first being the next character in the font. Each successive line starts with the character in the font immediately AFTER the character that started the previous line. E.g., if one line starts with "L", the next line will start with "M". Thus, the test data appears to "slide" to the left one character as each line is printed with new characters in the font appearing on the right end of the line. 3. Space A single space character will be sent to the printer. 4. Block A single block character will be sent to the printer. This character fires all of the pins and prints on the widest character area of any character in the printer's ASCII set. 5. User Text Selecting this option causes a data entry panel to open in which you can type any test text up to about 55 characters. Whatever you type will be sent to the printer followed by a single carriage return but without a line feed. The carriage return will force printing, the print head will return to the left, and the paper WILL NOT advance. E. Exit Terminate PEDFONT execution and return to DOS. PEDFONT can also be stopped by pressing when the main menu is displayed. VII. Editing a Font A. General Selecting "Edit Font" causes PEDFONT to display the edit character selection screen described previously. Move the cursor over the character you want to edit, and press . Characters already defined in the font are displayed in a higher intensity than characters not yet defined. As noted, the character can be selected for editing by pressing it's keyboard key. PEDFONT next displays the editing screen. The screen is divided 26 into 3 main areas: The character edit pin map Edit commands High resolution preview of the character in the edit window. As with all screens, there's also a status line at the bottom of the screen although it's only present when PEDFONT has something important to say. The cursor always remains in the pin map edit window. You can exit the edit screen at any time by pressing . PEDFONT also displays, to the right of the pin map edit window, the column and row number of the edit cursor's position. Documents for a program that lets you change something always extol the virtue of periodic "saves" while you're in the process of editing. I agree. If a font has been loaded which you intend to edit, I recommend that, after the first character has been altered, you save the font file to a new name with "Save As". Thereafter, as each new character in the font is changed, the font can be saved with "Save Font". This technique keeps the original intact as a backup. You can, of course, "Save As" to as many different files as you like, and "Delete Font" the superfluous ones later. Since there are font files available that have consecutive pins turned "on", I made sure PEDFONT would read those files with no problem. It will also edit, display and download those fonts to the printer without complaint. I've even included a command to allow/disallow use of adjacent print head pins. In actual practice, there's no need to turn on adjacent horizontal pins; the printer will ignore them. Try one of the included test fonts which has adjacent pins turned on, and see for yourself. Then turn off every other pin and print the font again - no perceptible difference. There IS one visible difference with a font that has enabled adjacent pins, however - it won't print correctly using emphasized printing. Again, you can test this. B. Character Edit Pin Map On the left side of the screen is the character edit pin map window. The pin map is the design grid used to lay out the pin configuration defining how a character will print. It's height is usually 24 rows which reflects the design of the LQ print head - one dot for each pin on the LQ print head. The height, however, can be only 16 rows if the font is a Super/Subscript type. The width of the pin map character matrix varies depending on the type of font being edited and the number of characters per inch: 1. Draft - 8 to 12 columns 2. Letter Quality - 24 to 36 columns 3. Proportional - 37 columns 4. Super/Subscript - 24 to 36 columns The "Pin Map" window displays all columns in the recommended size that can be changed. See the section "Restrictions" and the section "Columns" for an introductory explanation of how the LQ expects to 27 receive a user-defined character. Any Epson LQ manual has a section on User-Defined Characters which explains the details. If you want to master the LQ, get the Epson manual noted in "Technical Stuff". NOTE: the width of the edit window is the recommended maximum number of columns for the specified font - not the expected maximum for d1 body pins. That's because PEDFONT expects all fonts EXCEPT for proportional will have d0 and d2 set to zero. For proportional, PEDFONT expects that you'll be using d0 and d2 to specify left and right side space. Therefore, only 37 columns for the body of a proportional character are editable rather than the maximum of 42. You can layout your character pin map anywhere within the pin map window. You can, of course, leave empty columns to the left of your leftmost pin column. Designing the character so that it's pin map falls in the middle of the edit window yields a character that will print in the middle of it's allowable print space (if the left/right side column white space is balanced.) Columns left empty on the left of your character ARE NOT considered left side space insofar as the printer command is concerned - they are part of the body of the character. In effect, however, that's exactly what it is, and printing will reflect it. "True" left side space (d0 in the Epson command) and right side space (d2 in the Epson command) can be set with the edit function . Those spaces are the number of columns to be skipped by the printer before and after printing the body of your character. Each number can vary from 0 to 47 columns maximum, but the real limit depends on the type of font. Left side white space as printed, therefore, is the sum of "true" left side space set with and any columns you leave empty on the left of your character. Other font editors may not work the way PEDFONT does in this respect, but this is the way the printer works. If you're editing a font created by another editor, you might see their characters in the edit map windows with blank columns on the left that include d0 columns. Fine. PEDFONT "paints" their character maps exactly as specified using their d1 specifications only. The LQ printer automatically spaces the dots for both a Letter Quality and proportional font more closely together than the dots for a draft font. That spacing is not, however, replicated in the on-screen character edit pin map. Also, I don't spread the dots for a Draft font - what you see is what the printer gets. By not spreading the dots, I'm hoping to discourage you from fiddling with Draft fonts. Keep in mind there is one restriction in designing characters. Dots in the same row may not print in adjacent columns. That is, there must be an empty dot position to the left and to the right of each dot that prints. This is true in Draft, Letter Quality, and Proportional. PEDFONT will not permit adjacent pins to be turned "on", and it will complain if you try. Every pin that's "Off" in the pin map matrix is represented by a 28 "".. Every pin that's "On" in the character edit matrix is represented by a diamond. Toggle the pins on/off with the bar. Move the cursor within the character edit matrix in the usual manner, i.e. with the cursor control arrow keys on the keyboard. The pin map window has the top 3 rows and the bottom 4 rows shaded. This reflects the Epson LQ character design that specifies the top 3 rows are above the cap of the character, and the bottom 4 rows are below the base. Generally, the area within the shaded border is the limit for a capital letter. Dots in the top border are typically used for character accents and dots in the lower border are typically used for descenders. The bottom row of dots is generally used for underlining. There's nothing special about dots within any of those rows, however. Turn them "On" or "Off" as you like. The shading is used to identify when a pin falls into either of the character border areas. In the center of the pin map window is a dot displayed in a shade (mono monitors) or color different than the surrounding dots. On a color monitor the dot is black against the blue background of the edit window. You might have to squint a bit to see it. That dot marks the rotational center of the character. If that particular pin is "On" or you move an "On" pin onto that position, it also is displayed in the same color/mono attribute. The rotational center of the character is always displayed. If you select the edit command to rotate the character either right or left (clockwise or counterclockwise), it's around that center the character is rotated. You can move the rotation center with another edit command. This display screen, like all the others, uses the 25th screen line for status messages. Immediately to the right of the character edit window PEDFONT displays the row and column numbers of the edit window's cursor. C. Edit Commands PEDFONT always displays the list of the editing commands available while you're editing the character pin map. For editing character pin maps, edit commands provide control over a single pin, a row or column of pins, or the entire character pin map. The keystrokes and their function are: Font Status. An exploding window appears displaying 13 parameters for the font being edited. They are: (1) Type: Draft or Letter Quality (2) Size: Pitch 10, 12 or 15, Proportional, Super/Sub 10, 12 or 15 CPI. (3) Characters in Font: the number of characters currently having pin maps (4) First Char: the decimal, hexadecimal and graphic representation for whatever character in the font has the lowest ASCII value defined pin map. 29 (5) Last Char: as above but for the highest character. (6) Left/Right Side Cols: the number of columns defined to be unused on the left of the character being edited. The default value for the entire font may be different. (7) Maximum Columns: the maximum number of columns definable for the specified font type and size. It includes character dot columns and side space. (8) Max Side Cols: sum of left and right side columns defined for this character. (9) Character Pins: the width in pins for this character. It could be any value from 0 up to (7) Maximum Columns. The number reflects the setting of d1 for the character being edited. (10) Font Has Changed: "Yes" or "No". Editing any character causes PEDFONT to think the font has changed. You can use this to determine whether or not the font need be saved. (11) ROM Font Preload: the name of the printer's ROM font designated to be preloaded prior to it's acceptance of the downloaded font. It could be "None", "Roman" or "Sans Serif'. (12) Edit Character: as per (4) but for the current edit character. (13) Rotation Center: Row y; Col x. This is the currently defined rotational center for the character in the pin map edit window. If there are no characters as yet defined for the font, items (4) and (5) will not display. Note that items (6), (7), (12) and (13) apply to the current edit character and not the entire font. The status display remains on the screen until your press a key. is usually a good first step when you've just loaded a font. It's also useful to corroborate your understanding of the font parameters just before you save a character or the entire font. Save Character. saves the character in the edit window. This causes the pin matrix to be scanned, and the resultant map saved overwriting the original pin matrix. I.e., the character pin map is permanently changed within PEDFONT's RAM copy of the font. It hasn't changed yet on the disk. If you save a character map that is empty (no pins are on), it will erase whatever pin map was originally defined for the character. That is, saving an empty pin map removes the character from the font. If you save a character that has one or more blank columns on it's left, the number of those columns will be added to the already defined left side space, and the character will be left-adjusted in the edit window. 30 Restore Character. The character in the edit window to the last saved pin map representation, i.e., the "original" character map. You can use this command to "undo" editing by resetting the character edit pin map to what it was before you changed it. If you use to save a different pin map, however, the pin map cannot be restored to what it was at the time you loaded it from the disk. If you need that pattern, you must out of edit and reload the font file. Consecutive Pins On/Off. Toggle the restriction that prevents enabling adjacent pins in the same row. Normally, this restriction is active, and it should be left that way. But, since there are fonts available that have adjacent pins "On", I provided this toggle so I could more easily work with them. Allowing adjacent pins also permits testing on the printer those characters which have adjacent pins "On". Pressing changes the state of the restriction. If it's "On", PEDFONT turns it "Off", and vice versa. This function has an additional effect. When you select , PEDFONT displays a small submenu with two choices, i.e. Ignore Adjacent Pins Remove Adjacent Pins If you select "Ignore Adjacent Pins", PEDFONT simply toggles the state of the adjacent pin restriction, but does nothing else, i.e., the pin mapping is undisturbed. If you select "Remove Adjacent Pins", PEDFONT alters the pin mapping so that no two adjacent pins "on". It does this left-to-right. I implemented this function because of the tediousness of manually removing adjacent pin mappings in other people's fonts. NOTE: the effect of PEDFONT's attempt to remove the adjacent pins may not leave the character as you wish. However, I found it easier to automatically turn "off" all the offending pins, and manually turn back "on" those I wanted "on". In any case, the feature is here if you need it. When first editing a character and you push , PEDFONT toggles the restriction from "On" to "Off". The next time you push , PEDFONT toggles the restriction from "Off" to "On"". Both times the submenu is displayed. Print Character. Print the character in the edit window allowing for left side and right side space as defined. PEDFONT sends the character's pin pattern to the printer and then prints the character several times in each of 5 print styles: Normal Double Strike 31 Emphasized Double Wide Condensed It also prints the edit character surrounded by the block symbol so you'll have a relative idea of where your pin layout falls amongst other characters in the print line. Before PEDFONT prints the edit character, it sets the printer so that it's using the overall font traits such as proportional or fixed character spacing, Letter or Draft quality, etc. Therefore, printing the character not only gives you a printed representation of the pin map but how the character prints with others like it. Copy Character. Copy another font character pin map into the editing window. A window opens displaying all possible characters in the font. Characters that already have some pins defined are highlighted while those that don't are displayed in a low intensity. Move the cursor over the character you want to copy, and press . You can not select a character that has no pin definitions. PEDFONT will prevent the cursor moving onto a character with a pin pattern as yet undefined. You can also directly key in the character you want to copy by pressing it's key on the keyboard. For example, if you want to copy the pin map for "b" and "b" has a pin map defined, press the key. PEDFONT will move the cursor to the capital "B" character in the list. Press again, and PEDFONT moves the cursor to the lower case "b" character. Pressing will copy the pin map for "b" into the edit window. Note: The copy is a destructive one, i.e., any pin map already in the edit window will be erased before the new pin map is copied. Move Rotation Center. When PEDFONT first enters the edit mode, the rotation center of the edit map window is in the middle of the window at row 12. lets you move the character rotation center in any direction one pin position for each time you invoke this function. When you press , a small menu opens providing the choices: Right Left Up Down Pressing closes the menu with no resultant movement of the rotation center. Select one of the menu choices will move the character rotation center one position in the specified direction. You can do this as often as you like moving the character rotation center anywhere within the 32 pin map edit window. Use the functions to rotate the edit character. Define Side Columns. The edit pin map displays all pin columns that can be changed for any character within the defined font type. It DOES NOT display either left or right side column space. provides the way to set the number of dot columns that are blank to the left and to the right of your character. Changing the left side space for the character does not effect the map window display, but it does effect the column positioning of where your character is printed within it's character space in the print line. The high resolution character preview shows positions the dot pattern using the defined left side space. Therefore, you have a rough idea of where your character falls within it's print space. The edit map, however, shows just those pins that make up the character. Print the character to see the true effect of altering left & right side space. When you press a data entry window appears requesting the number of columns to be left blank for both the left and right side. The window has a title which displays the type and size of font being designed. Use that for reference. If the sum of the left and right side columns exceeds the maximum, PEDFONT will display an error message and refuse to accept both values. You can use the cursor control keys to move amongst the two fields. The data field is only 2 digits wide because no side column value ever exceeds more than 15 for any font. Press when you've entered your values. Pressing will close the window with no changes. Whatever changes you make can be verified by using for "Font Status". Clear Character. The edit window is reset so that all pins are turned "Off", and the cursor is sent to the upper left corner. Home Cursor. Move the edit cursor to the first pin, i.e., the upper left corner of the edit window. Cursor to End. Move the edit cursor to the last pin, i.e., the lower right corner of the edit window. < > Move Cursor. Each of the four arrow keys will move the edit cursor one pin position in the expected direction. Toggle Pin On/Off. Insert Row. Insert a row at the current cursor location. All rows from the current cursor position to the last row are moved down 1 row. 33 Delete Row. Delete the row at the current cursor location. All rows lower than the cursor position are moved up 1 row. Insert Column. Insert a column at the current cursor location. All columns from the current cursor position to the right side of the edit window are moved right 1 column. Delete Column. Delete a column at the current cursor location. All columns to the right of the current cursor location are moved left one column. Shift Character. Use the key in conjunction with an arrow key to shift the entire pin pattern one dot in the specified (arrow) direction. For example, slides the entire pin pattern up one dot position. Shift Column or Row. in conjunction with the up or down arrow key shifts the column in which the cursor rests. in conjunction with the left or right arrow key shifts the row in which the cursor rests. For example, slides the entire column in which the cursor rests down one dot position. Rotate Clockwise. Rotate the character pattern clockwise around the currently defined rotational center. Either upper or lower case "R" is acceptable. Rotate CounterClockwise. Rotate the character pattern counterclockwise around the currently defined rotational center. Either upper or lower case "L" is acceptable. End edit. Terminate editing and return to the edit character selection window in order to pick another character to edit. You must use if you've changed the pin map, and you want it saved. will not warn you something has changed. D. High Resolution Display In order for you to get a clearer picture of how your character will appear when printed, PEDFONT displays a high resolution preview of the edit pin map. Each pin in the edit pin map is used to control 1 screen pixel. Generally, the high resolution character is 3 normal screen characters wide and 3 deep, but it's size really depends on the type of font being edited. The character is displayed in WHITE against a CYAN background on a color monitor. This display gives you a fair preview of your character since the resolution and aspect ratio more closely match the printer's, but the real test of appearance requires printing. E. Restrictions PEDFONT accepts only files whose extender is LQC. It writes only 34 files whose extender is LQC. Additionally, it accepts only font files that begin with an Epson escape command. PEDFONT will permit editing of character patterns for characters whose ASCII value falls within the range of 0 to 126 inclusive. PEDFONT does not permit editing the defining a character for ASCII 127. PEDFONT will read and load font files produced by other font editors, but it will not accept a character definition for an ASCII code that falls outside it's specified range. PEDFONT will also not accept pin map patterns for characters that extend beyond the pin column as defined for the specific font type being processed. The table below specifies those limits. For those who don't know the Epson LQ intimately, here's a little info (you can also find this in your printer manual). The pin mapping for a character provides 3 pieces of information to the printer: 1. Number of columns of white space on the left of the character. 2. Number of columns of real dots making the character. 3. Number of columns of white space on the right of the character. For each of the character styles available the maximums are: Style Real Dots Total Columns ----- --------- ------------- Draft 9 12 LQ 10 CPI 29 36 LQ 12 CPI 23 30 Proportional 37 42 PEDFONT checks every font character's mapping for two things: 1. The "Total Columns" does not exceed the max allowed. 2. The "Real Dots" does not exceed the max allowed. As noted, there is high variability in font file construction amongst PEDFONT's predecessors especially in the Epson commands that precede the character redefinitions. Since reading all possible font files was a design goal of PEDFONT, I've added considerable code that addresses the variety of font file designs. If, for example, PEDFONT reads a character definition whose column max tests fail for some reason, PEDFONT attempts to correct them so it can load as much of the character map as possible. Therefore, if PEDFONT announces that the font it just loaded contained errors, you can expect characters to look different than if you loaded them with whatever program created them. VIII. Designing Fonts Much of the information and cautions about this subject have already been noted elsewhere, so this is somewhat repetitious. Nevertheless, it's a good idea to collect all the "font design" notes together. 35 A. Steps to Follow Plan the data for your desired characters. The amount of data required depends on the following factors: ú The space you specify on the left and right of each character ú Character size (normal Elite, Pica, Super/Subscript, etc.) ú Character spacing (fixed or proportional) ú The print quality of your characters (draft or LQ) Keep in mind that "proportional" refers to character spacing and not to character size. Character size relates to point size. An Elite or Superscript character can be printed 12 to the inch OR proportionally spaced. When you specify a new font as "proportional", that simply provides you with the widest possible pin edit map so you can design your own intercharacter spacing if you like. If you specify a new font as "10 CPI", you can still later use the font with proportionally spaced printing. PEDFONT uses the font size information you select to provide an appropriate pin map edit window. Look at the sample design grids and note that "proportional" simply provides access to all the columns. B. Adjacent Pins The Epson LQ expects character redefinitions wherein no two adjacent pins in the same row are fired. That means that the bit patterns that define the pins to be fired for any character must not have two bits "on" next to each other within the same horizontal row. In practice, the printer will accept such a character definition, but it won't reproduce the consecutive pin mapping on paper. The print head moves too fast for it to fire pins in consecutive positions. If you send the printer such a font, it will ignore the second of two contiguous dots. In any case, don't do it. C. Font Size All user-defined fonts print only as 10.5-point (or 21-point when double-height printer is selected). Even if you select a different point size, characters in RAM can be printed only as 10.5 or 21-point characters. D. Planning Characters Characters are defined based on a combination of several traits. This combination determines the number of dots that can be defined for each character. These traits, and the maximum recommended size for each combination of traits, is shown in the table below. Exceeding the width may not allow sufficient spacing between your characters, and PEDFONT does not permit it. 36 Trait Recommended Height x Width ----- -------------------------- Draft, fixed pitch 24 x 12 (10 CPI) 24 x 10 (12 CPI) 24 x 8 (15 CPI) LQ, fixed pitch 24 x 36 (10 CPI) 24 x 30 (12 CPI) 24 x 24 (15 CPI) LQ, proportional 24 x 37 LQ, super/subscript 16 x 36 (10 CPI) 16 x 30 (12 CPI) 16 x 24 (15 CPI) LQ, super/subscript 16 x 37 proportional A Draft font is always a fixed-pitch font. A Letter Quality font of either normal or super/subscript size can be proportionally spaced or fixed-pitch. When you set up a new font, you select the font traits. When editing characters in that new font, PEDFONT always sets the character edit window to the above recommended dimensions. Left and right side space are always under your control either at the font level or at the individual character level. E. Character Columns Each redefined character has three column values called "do", "d1", and "d2" (the ESC/P2 manual uses "a0", "a1", and "a2"). d0 is the number of dot columns left blank on the left side of the character, and d2 is the number of dot columns left blank on the right side of the character. d1 is the actual number of dot columns making the body of the character. Each font type and size has a maximum number allowable for both d1 AND the sum of d0+d1+d2. For each of the character styles available the maximums are: Style d1 Dots Total Columns ----- --------- ------------- Draft 10 CPI 9 12 Draft 12 CPI 8 10 Draft 15 CPI 8 8 LQ 10 CPI 29 36 LQ 12 CPI 23 30 LQ 15 CPI 18 24 Proportional 37 42 Superscript and subscript font specifications are the same as the LQ specifications. When you set up a new font, PEDFONT does not know how you're going to use d0 and d2. Each character can have different values. In order to setup a new font, PEDFONT suggests default values for d0 37 and d2 FOR ALL CHARACTERS when you set up your font type and size. These are simply estimates, and they may not be what you'd like. Epson America recommends that d0 and d2 side space be used for only proportionally spaced fonts, but PEDFONT permits use of d0 and d2 for any font. PEDFONT follows the recommendation in that it's initial suggested d0 and d2 for non-proportionally spaced fonts are both zero. PEDFONT displays, in the character pin map edit window, only those columns defined by d1 - the body of the character. d0 and d2 space are not part of the pin map edit window. You can examine or alter the two side space values with an edit command. PEDFONT examines the layout of each character that you save to assure that it's acceptable to the printer. The following rules apply to character column use: 0 <= d0+d1+d2 <= max total pins for the font The value of "max total pins" varies with the font style, pitch and spacing. PEDFONT uses the Epson America recommended maximum values. They're listed later. For example, assume you're building a Letter Quality 12 CPI fixed spacing font. The maximum number of pins for one of those characters is 30. PEDFONT will display a pin map edit window 30 columns wide. Now assume that you design a character that has dots "on" in columns 2 through 18. Your character body width is 18 columns. Column 1, though blank, is part of the body. The rightmost blank columns are not. Now also assume that you set left side space for this character to 14 columns and right side space to 3 columns, and you attempt to save the character pin map. PEDFONT won't let you do it. The total number of pin columns it will determine will be 14+18+3 = 35 which is greater than the LQ 12 CPI max pin limit of 30 pins. Change the do left side space to 4, resave the character, and PEDFONT will accept it. When you load a non-PEDFONT font file and browse it with "Edit Font", you'll see immediately that d0, d1 and d2 vary widely for each character. Some fonts force d0 and d2 to zero, and the entire character is encompassed by d1. How you design YOUR fonts is up to you. Understand, however, that these 3 values relate to each character and not to the font. There's no way to tell the Epson printer that a specified d0 and d2 are to apply to ALL characters. The Epson printer wants to know both values FOR EACH character. As noted, when your start the design for a new character, PEDFONT will set the left and right side column space to whatever defaults were determined for the font type and size. YOU SHOULD CHANGE THESE with an edit command when you layout each of your characters if they're not what you want. At least, you must take into consideration the d0 and d2 values when designing each and every character. If you don't (and it may not be necessary), PEDFONT will 38 gladly use it's defaults when writing new font files. There is great variety amongst font files available. Some font designers take great pains to determine d0 and d2 while others always use an overall default for all characters. Others always set both d0 and d2 to 0. The later is the approach adopted as a default by PEDFONT. The font status displayed from the main menu "File" selection will reflect the character d0, d1 and d2 specifications that are DEFAULT for the font type and size loaded. The font status displayed from the "Edit" selection will reflect whatever d0, d1 and d2 values exist for the character being edited. The restriction that the sum of the values of d0, d1 and d2 cannot exceed the maximum number of columns allowable for the specified font type and size is a safeguard. A perfectly legitimate character definition for a Letter Quality 12 CPI font is d0=15, d1=0 and d2=15. Can you see why? 39 F. Design Grids Below is a character design grid illustrating the various column widths for a Letter Quality font. The Character Edit Pin Map window will display only those columns for the specified font type and size. Each "O" can be a pin "on" or "off". Col 1 Col 37 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO <-- Row 1 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO <-- Caps Top OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO <-- Base OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO <-- Row 24 ------- 15 CPI ------- ³---------- 12 CPI ----------³ ³³ ³--------------- 10 CPI -----------³³ ³----------- Proportional ----------³ 40 Below is a character design grid illustrating the various column widths for a Super/subscript font. The Character Edit Pin Map window will display only those columns for the specified font type and size. Each "O" can be a pin "on" or "off". Col 1 Col 37 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO <-- Row 1 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO <-- Row 16 ------- 15 CPI ------- ³---------- 12 CPI ----------³ ³³ ³--------------- 10 CPI -----------³³ ³----------- Proportional ----------³ 41 Below is a character design grid illustrating the various column widths for a Draft font. The Character Edit Pin Map window will display only those columns for the specified font type and size. Each "O" can be a pin "on" or "off". Col 1 12 OOOOOOOOOOOO <-- Row 1 OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO <-- Caps Top OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO <-- Base OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO OOOOOOOOOOOO <-- Row 24 - 15 - ³-- 12 --³ ³ ³--- 10 ---³ G. Cautions It's best to restrict the user-defined character set to the ASCII range 33 decimal to 126 decimal. Although PEDFONT permits redefining characters in the range 0 to 126, Avoid defining any pin pattern for ASCII 32 (hex 20). It's the "space", and it should be left alone. Also avoid user-defined character for the range 0 to 31. Those are control codes and should be left alone. Restricting the user-defined range to decimal 33 through 126 provides plenty a room for a complete upper and lower case alphabet and special symbols. If you're designing a font whose character images are supposed to resemble space creatures, you can do whatever you like with the pin 42 maps for any of the characters. IX. Sending Fonts to the Printer In the section describing the main menu options "Save", "Save As" and "Download", I referred to this section for details on the submenu. I'll explain the difference between sending the printer a "Full" font and a "Partial" font. And, in the case of a partial font, I'll explain what happens when you overlay one, or none, of the printer's built-in fonts. First, PEDFONT always precedes any user-defined characters with a sequence of Epson commands. That sequence is fixed and cannot be changed. This is true whether the font is sent directly to the printer or to the disk. These initial commands are: A. Initialize B. Master Select to disable all print enhancements C. Italics OFF D. Select Font Traits (type and size) The submenu options determine how many font definition characters are written to your font disk file or sent to the printer. The following assumes the font file is directed at the printer rather than the disk. Taking each submenu option in turn, they mean: A Partial Font Over Roman First, the printer is instructed to copy it's Roman font to it's RAM. Then the user-defined font file is transferred with only those characters which have pin maps defined. That could be as little as 1 character. Any character position in the user-defined font that has not had a pin map defined, IS NOT sent. Therefore, any "gaps" or characters not provided by the user-defined font will be filled by the printer's hardware font which was copied into RAM. Finally, the printer is instructed to switch to the new font in it's RAM. For example, assume you've developed a font with only the characters "T" and "S" defined, and you send it to the printer as "Partial Font Over Roman". When you later send text to the printer, every character will print in the Roman font EXCEPT "T" and "S" which will print using whatever pin pattern you designed for those two characters. B Partial Font Over Sans Serif C Partial Font Over Courier D Partial Font Over Prestige E Partial Font Over Script These are identical to the previous except the specified printer's ROM font is preloaded rather than the Roman. F Full Font Your font file is output with the full range of definable ASCII 43 characters 0 - 126 whether or not you defined each. If there are character positions in your font that have not had their pin maps defined, they'll be treated by the printer as spaces. For example, if you download to the printer a "Full Font" in which the pin map for ASCII 44 is undefined and you then print text using that font, any ASCII 44 characters in your text will print as spaces since the printer has no pin map available for that character. The printer still "thinks" ASCII 44 has been defined because the font file had a skeletal definition for it. G Full Font Defined Range Your font file includes definitions for ALL characters that fall within a range. The range is the ASCII character with the lowest code to the ASCII character with the highest code. This works the same as the previous "Full Font" except the range depends on which characters in your font have definitions. All character within that range will be output whether or not you defined each. If there are character positions in your font that have not had their pin maps defined, they'll be treated by the printer as spaces. For example, assume you've designed a font whose lowest character is the exclamation mark "!" and the highest is lower case "z". You also have designed pin maps for all the upper case alphabetic characters, but you still haven't define any lower case character other than "z". You're font file is treated as if ALL characters between the "!" and the "z" were defined. If you send that font file to the printer followed by the "Quick brown fox ..". test, the printer will print the upper case line just fine. The lower case line will print a long line of spaces with a single "z" where you'd expect it to be within the word "lazy". If you've designed a normal font with all upper and lower case alphabetic characters, this is the option you want to use. As you can see, the submenus offering the save and download "partial" choices give you control over what will be in the printer's RAM just before it receives your new font. By using the appropriate selection you can instruct the printer to copy one of it's hardware font's into RAM before the downloaded font is processed. Your new font, when downloaded, overlays that hardware font character-by-character. Therefore, if your font file redefines a few selected characters, those characters NOT defined by your font file print in the preloaded hardware font. PEDFONT does not permit you to either save or download a partial font without first telling the printer to copy one of it's ROM fonts into RAM. Such use of the printer has little meaning. Why? Suppose you send a partial font file that defines only the character "A", but you don't instruct the printer to copy one of it's ROM fonts to RAM beforehand. At the time you send your partial font, printer RAM is empty. After downloading your single-character font and switching the printer to it, you send the "Quick Brown Fox ..". test data. The printer will print "AAA" and nothing more (QBF contains three "A" 44 characters) because only the "A" has a definition in RAM. Every other character is ignored by the printer. If you design a new font and you only specify the pin map for one character, saving that font to disk as "partial" will create a very small disk file. There'll be only one character definition in it. If you download that font file to the printer, you've, in effect, redefined that single character and all others remain unchanged from whatever ROM font was overlaid. The printer understands that a character defined with no pin map IS NOT the same as a character undefined. Data for the former prints as a space, and data for the later prints nothing - it's ignored by the printer - it doesn't exist. When the printer is switched to a user-defined font, it will print only those characters that are in it's RAM. Here's more examples of the various results. Each assumes you're printing the text "TEST'. PRELOAD FONT YOUR FONT DEFINES RESULT ------------ ----------------- ------ None T and S "TS" (PEDFONT won't do this) Roman T and S "TEST" where "E" is in Roman Sans Serif T and S "TEST" where "E" is Sans Serif Irrelevant Full except E "T ST" All of these effects, of course, are temporary and exist only as long as the printer is turned on. When the printer is turned off, all font information in it's RAM is lost. When the printer is turned back on, it's set to use the draft Roman 10 CPI font. X. Switching to RAM Character Printing Once you've store user-defined characters in the printer, you can instruct the printer to switch to RAM character printing. Under normal circumstance you can access the RAM characters in the ASCII range 32 to 126 decimal. There are two ways to access user-defined characters 0 to 31. The first method is available only on ESC/P2 printers, and PEDFONT does not support it. The second method is to first download your character set to the printer. Then select ROM character printing and send the command that remaps all user-defined characters to the upper half of the character memory leaving the lower half as ROM characters. In other words, the technique adds 128 to the user-defined character codes. This method is necessary if you're redefining characters outside the recommended range of 33 to 126. If PEDFONT is instructed to "Save ..". or "Download" such a font, it will generate the necessary Epson commands to employ the second method. In this case you need to know that your characters are in the upper half of the printer's RAM and the printer's ROM font is in the lower half. XI. Error Messages 45 Things can and will go wrong, and PEDFONT can issue one of many error messages when they do. Many of the messages can be generated by the host Pascal environment, are too numerous to document here, and are highly unlikely to occur. Most of the others are due to PEDFONT's failure to acquire a system resource such as RAM or disk space. These error messages take the form "x Init Error y" where "x" is the name of the resource and "y" is the failure status code. You'll probably never see one of those messages, and there isn't much you can do about one other than let me know. In every other instance, an error message will most likely be self-explanatory. Here's some error messages that may occur more routinely: a. "The printer is turned off" PEDFONT has attempted to communicate with the printer, and the status returned indicates the printer is turned off. b. "The printer is on but not ready" Maybe you need to press the "ON LINE" button. c. "The printer is out of paper" I think you know what this means. d. "Delete of x failed" You asked PEDFONT to delete font file "x", it tried but couldn't do it for some reason. Maybe the file is READ-ONLY? e. "x missing 1st Escape code" You asked PEDFONT to load font file "x". It took a look at the file and found it had no initial Epson escape command. PEDFONT insists that a "real" font file begin with an Epson escape sequence. Maybe the file has an LQC extender, but it's not a font file? Maybe the file has been damaged? f. "x is empty" You asked PEDFONT to load font file "x", but "x" has no data - nada - a font file in name only. g. "Save of x failed" PEDFONT tried to write your font file to disk, but the write failed due to an I/O error or out-of-space. The usual first step in curing a problem is to understand the error message. Failing that, one usually reboots the computer. That's fine. If, however, you experience an unsolvable problem with PEDFONT, please let me know so I can exorcise it. XII. What PEDFONT Doesn't Do PEDFONT has no provisions for controlling the graphics abilities of the Epson LQ printer. That includes all of the following: Select Single-Density Graphics Mode 46 Select Double-Density Graphics Mode Select High-Speed Double-Density Graphics Mode Select Quadruple-density Graphics Mode Select Graphics Mode Reassign Graphics Mode Raster Graphics Also, PEDFONT does not support the following miscellaneous commands: Commands that toggle the MSB Select/deselect Printer Multipoint Modes Scalable Fonts Color Design and management of LQ Super/Subscript proportional fonts PEDFONT does not support the commands in the "ESC/P2" printer control language that were not present in "ESC/P". If someone wants a PEDFONT that supports ESC/P2, let me know. XIII. Registration PEDFONT is not free. It's "Shareware". Shareware is a software distribution method - not a type of software. Shareware carries the ultimate money-back guarantee - if you don't use the product, you don't pay for it. However you obtained a Shareware product, you're obligated to pay the author if you keep it. This program along with its associated documentation and accessories ("the software") is the copyrighted work of its author. All rights under U.S. and International copyright law are reserved. The software may not be reverse-engineered. You are hereby granted a license to use the software free of charge for test and evaluation purposes for a period not to exceed 15 days from the date on which you acquired the software. After that evaluation period, you are legally and honor-bound to either send me the specified registration fee, or cease using the software. If you decide to not register after the trial period, erase the software in all it's forms from your system, and accept my sincere congratulations and admiration for your personal integrity. Once you have registered the software, you are free to make archival backup copies for your security, and to use the software on as many computers as you own or use, subject to the following restrictions: A. Your use of the software is for personal benefit only. Any business or commercial use of the software requires a commercial license and payment of the commercial license fee. Contact me for details on commercial use. Use of the software by CompuServe employees, and forum SysOps and assistants, does not constitute commercial use. B. You may distribute the software as long as the material you distribute is the original ZIP file as released by myself. You may not charge a fee for profit for the software without my 47 express written consent. Non-profit organizations such as users groups, Bulletin Board Systems and Shareware distributors may distribute the unregistered software to its members and/or customers and may charge a nominal disk duplication and/or media fee. The registration fee is $15 US. From foreign registrants I need another two dollars. As a bonus for registering, you'll get back a few dozen fonts plus the latest version of PEDFONT without the registration reminders. For another $10 you can have the source code. Mail the registration to: Ken Murphy 1704 West Lindner Ave. Mesa, AZ 85202 Unless you tell me otherwise, you'll get back the latest version of PEDFONT plus all the extra fonts on a 720 KB, 3.5 floppy disk. All versions of PEDFONT, registered or not, are fully functional, but the unregistered version does have a reminder or two suggesting you register it. The registered version is free of those annoyances. Earlier versions of PEDFONT were shipped to registered users of "PEDIGREE" as a bonus program. To all others, PEDFONT is shareware. If you received PEDFONT as a bonus for registering PEDIGREE, you're considered a registered user of PEDFONT. In either case, all users are bound by the registration agreement. Included with the unregistered version is this document and a few sample fonts. XIV. Support I ALWAYS respond to users' needs regarding any of my software products in any of their versions. If you have any questions, suggestions for improvement, constructive criticisms, etc. about PEDFONT, you can reach me on CompuServe at 74025,731, and I'd love to hear any of them ... really. Also, I often read my U.S. Mail. General nastiness you can keep to yourself. Telephone support is not provided. Support for any particular version of PEDFONT begins from the time you received the registered version to 3 months afterward. During that time you are entitled to have any "bug" repaired followed by the corrected version delivered to you at no charge. After 3 months time, a registered user may upgrade to the last version for 1/2 the then current full registration price. If the 3 month support period has lapsed, you discover a bug, and no newer version is available, I'll fix the problem under the terms of the upgrade policy, i.e., you get the fixed version for 1/2 the then current full registration price. XV. Technical Stuff PEDFONT was written in Pascal using "Borland Pascal with Objects" version 7. It's optimized for an 80x86 CPU. There are a few routines 48 written with the inline assembler, and even fewer in Borland's Turbo C++ 3.0. Extensively used was "Object Professional" version 1.21 from TurboPower Software. Although I am in no way affiliated with either company, consider this a blatant advertisement and recommendation for those fine products including the superior technical support from both organizations. And, like a certain dish in your local Chinese restaurant, they are indeed a "Happy Marriage". PEDFONT was developed on a 486DX 33 MHz IBM clone running under an AMI BIOS and MS-DOS 5.0. I can also recommend "PC Intern System Programming", a hefty (weight AND price) volume in the Developer's Series developed by Michael Tischer and published by Abacus. I found a wealth of info about the EGA/VGA BIOS in there. ISBN 1-55755-145-6 and $60 retail, but it comes with a disk containing all it's sample code in 3 languages, Pascal, C and assembler. Information about Epson's ESC command language and how printers respond was taken from "Epson Esc/P2 Reference Guide For 24-Pin Printers". It's a publication available from Epson America for $25+3$ S&H. It's invaluable information about the ESC/P printer control language. NOTE: "Epson", "Epson ESC/P" and "Epson ESC/P2" are registered trademarks of Seiko Epson Corporation. PEDFONT was developed for my Epson LQ-850 printer. PEDFONT supports most of the ESC/P printer language even for those commands that aren't supported by an LQ 850/950/1050. It has been successfully used on a Panasonic KX-P1124 and a Star Micronics NX-2400. Both are highly compatible 24 pin dot matrix printers. This document was prepared with WordPerfect 5.1. XVI. Glossary ASCII American Standard Code for Information Interchange. A standardized coding system for letters and symbols used by nearly all manufacturers of computers, printers, and software. Ascender The part of a lowercase letter that rises above the body of the letter, as in b, d, f, h, k, l, and t. Baselines Invisible lines on which the bottom of characters rest. Bidirectional Printing in which the print head prints from left to right only on every other line. On the other lines it prints from right to left. This increases the speed of the printing because the print head prints from both directions without having to return. See "Unidirectional". Boldface A heavier, darker version of a regular typeface. Capitals The large letters of the alphabet. Also known as "caps" or 49 "uppercase letters". Carriage Return A control code that cause the printer to return the print position to the left margin. In bidirectional printing the print head may not actually move to the left margin. Characters Individual letters, figures, punctuation marks, etc. of the alphabet. Condensed type Narrow version of a regular typeface. The Epson prints condensed at approximately 60% of the normal width of standard characters. For example, condensed 10 pitch has 17 characters per inch. Descenders The part of lowercase letters that falls below the baseline, as in g, j, p, q, and y. Dingbat The collective name for all symbols and ornaments, such as stars, pointing fingers, bullets, arrows, etc. Display type Type (usually 14 point or larger) that by virtue of its design is used to attract attention in headlines. Dot matrix A method of printing in which letters and symbols are formed by patterns of individual dots. Double width A print width in which each character is twice as wide as normal characters. Draft One of two print qualities available on the LQ. Draft uses a minimum number of dots per character for high-speed printing. See also "Letter Quality". Drop cap Display letter that is inserted into the text. May also be raised. Elite A typeface of 12 characters to the inch as on a typewriter. Em A printer's unit of measurement, refers to the width of the letter "M". En Another printer's unit of measurement which refers to the width of the letter "N" ... used for inserting white space in a line of type. Extended A wide version of a typeface. Face See "Typeface" Font Complete assortment of all the characters (upper and lower case letter, numerals, punctuation marks, etc.) of one size and one typeface. Italic A letterform that slants to the right or is cursive. 50 Italics are companions to, and distinct from, roman (upright) typefaces. Kerning Adjusting the space between letters (usually moving them closer together) to improve the apparent regularity of the spacing. Leading (Pronounced ledding). The term originates from a time when thin strips of lead were inserted between lines of type to achieve proper spacing. Leading determines the amount of white space between lines of type. Letter Quality One of two methods of printing on the LQ. Letter Quality reduces the print speed and increases the number of dots per character to increase the print quality. Letterspacing Adding space between individual letters in order to fill out a line of type and improve appearance. Lowercase The small letters, as opposed to the capitals. Measure The length of a line of type, normally expressed in picas, or in picas and points. Monospaced A typeface in which all characters occupy the same amount of horizontal space, such as fixed-pitch typewriter face. Oblique Roman characters that have been slanted to the right. Not true italics. Pica A typographic unit of measurement equal to one-sixth of an inch. Column width is measured in picas. Pitch A form of typeface measurement describing the number of characters that fit into one inch. The smaller the size (in points) of each letter, the more of them can fit in one inch of printed space. Point Smallest typographical unit of measurement, approximately 1/72 on an inch. Type is measured in terms of points, the standard sizes being 6, 8, 10, 12, 14, 18, 24, 30, 36, 42, 48, 60, and 72. Point size The size of a particular font. Printer's Dam An expletive often mumbled by frustrated font designers. Proportional Printing in which the width of the character space varies from character to character. Therefore, a capital W, for example, receives much more space than a lower case i. Sans Serif Without serifs. A clean, modern typeface, such as Swiss (Helvetica). 51 Serifs Small cross-bars (or finishing strokes) that end the main strokes of letters. Dutch (Times Roman) is a serif type style. Typeface A specific design of a set of letters, numbers, and symbols, such as Dutch, Baskerville, Times Roman, Goudy, etc. Type family The various weights and styles of a typeface. Baskerville roman, italic, bold, and bold italic together are a typeface family. Typestyle A variation of weight or width within a typeface family. Standard type styles include roman, italic, bold, condensed, or extended but there are many different weights and widths, and each one is a typestyle. Unidirectional Printing in which the print head prints from left to right on every line. This decreases the speed of the printing because the print head must return to the left for each line. Although slower, this can improve the appearance of graphics because the printer always determines horizontal positioning starting from the same point, i.e., the left side of the carriage. See "Bidirectional". 52