Instructions for LQCHAR.COM
Version 1.22 (10/3/89)
(c)1988-89 Eric Meyer
Requires: IBM PC compatible computer
Epson LQ compatible dot matrix printer
LQCHAR is a small, efficient utility for designing downloaded character
fonts for Epson LQ-compatible 24-pin dot matrix printers. It will run on any
MSDOS system (2.x or above) with an IBM compatible video adapter (MDA, CGA,
EGA, VGA). LQCHAR lets you design each character individually on screen, and
builds up a disk file containing all the character definitions. This file can
then be sent to your printer anytime you wish to use the font.
* LQCHAR and its documentation are (c)1988-89 Eric Meyer, *
* all rights reserved. They may be freely distributed, but not *
* modified or sold for profit without my written consent. *
* (Voluntary contributions are welcome!) The user takes full *
* responsibility for any damages resulting from the use of this *
* program. *
* Eric Meyer *
* 401 12th Ave SE, #139 CompuServe [74415,1305] *
* Norman, OK 73071 USA *
The ability of many dot matrix printers to accept downloaded fonts makes
them far more versatile than formed-character (daisy wheel) printers. You can
change fonts in the middle of printing without touching your printer, and you
can design any characters you like. (Combined with the font definition
ability of the EGA/VGA adapter, this allows word processing in a wide variety
of typefaces, using ordinary off-the-shelf software. I recommend an excellent
freeware screen font editor called CHET.ARC, from Mylex Corp.)
If you design some really nice fonts with LQCHAR (artsy, foreign,
whatever), please consider sending me a copy of the LQC files.
ABOUT YOUR PRINTER...
LQCHAR should work with any Epson LQ compatible printer; I use it with a
24-pin Alps ALQ-200. But no manual I've ever seen describes the design and
use of downloaded fonts in a comprehensible fashion, and I suspect that some
details may vary from one printer to another. Anything I say below applies to
the Alps, and "probably" to your LQ printer (Epson or whatever) as well.
First let's clear up some terminology:
QUALITY - What you select with the ESC-x command (Draft, LQ, etc).
FONT - A set of characters designed for a given print quality.
FONT TYPE - Whether the font includes undefined characters (see below).
PITCH - Spacing of a given font (Pica, Elite, etc).
PROPORTIONAL - This is a variety of PITCH, not of FONT!
LQCHAR designs fonts in either Draft or Letter Quality (LQ) mode. Some
printers (such as the Alps) have a third print mode, "High density", that
falls in between; LQCHAR does not support this mode. Some printers have a
third "Proportional" mode with an even larger dot pattern; LQCHAR does not
support this either. However, an LQ font designed with LQCHAR can be declared
proportionally spaced! (Don't get confused between the two.)
-------------------------- CREATING LQC FILES ------------------------------
TYPE: A>lqchar FONTNAME
FONTNAME: a 1 to 8 character name for the font. Do not specify the ".TYP" of
the file; LQCHAR will automatically make it ".LQC".
* A disk or directory may precede the fontname.
* An option may follow the fontname:
NO option - EDIT the font file
/P - send it to the PRINTER
/U - send to the printer and start USING it
You can get this help message onscreen by typing simply "LQCHAR".
If you are starting a new font from scratch, you will have to declare it
to be either Draft or Letter quality (LQ); and you will start out with every
character blank. I have included two files called DRAFT.LQC and LETTER.LQC,
containing a full plain ASCII font for each print quality. These are often a
good point of departure for designing modified fonts. You can use them to get
a feel for the program, simply by typing:
A>lqchar draft OR A>lqchar letter
Once you are in LQCHAR, you will see a "box" on the left side of the
screen, in which each character will appear, dot by dot. The character matrix
is always 24 dot rows high; its width varies according to the print quality: 9
dot columns for Draft, 29 for Letter. (Note: in Draft mode LQCHAR spreads out
each dot by a factor of 3 so as not unduly to distort the aspect ratio.)
Background shading indicates the vertical boundaries of a normal capital
letter. The rows above are available for accents, etc; those below, for
lowercase descenders, etc.
To the right you will see a header with general information about the
font, and the cursor on a prompt that says "Character". Below will appear a
list of characters, with those that are already defined highlighted, for
reference. At this point you can do a variety of things.
MODIFYING THE ENTIRE FONT
First, several commands can be used to modify the whole font in some way: - Change PRINT QUALITY between Draft and Letter
- Change FONT TYPE between full and partial
- Change CHARACTER PITCH: pica, elite, or proportional
- EXIT to Save Menu
When you use the commands, you will see the information in the header
change appropriately. Nothing is changed on disk until you Save the font.
PRINT QUALITY: It is possible (with the key) to expand a Draft font
into a sort of skeleton LQ font, or to compress an LQ font into a Draft font.
In the first case, each character is expanded to fit the larger LQ pattern,
leaving blank columns in between; you can enhance and fill in the gaps however
you like. In the second case, two rows out of every three are deleted; much
detail will be lost, so retouching will again be necessary.
Since changing print quality is a drastic modification which, if invoked
accidentally, could lose valuable data, LQCHAR prompts for confirmation (Y/N)
FONT TYPE: The font can be stored as Full or Partial (selected with the
key). The only difference concerns characters that you have NOT defined:
in a Full font, they simply won't print. In a Partial font, the printer's
resident font will "show through" any gaps; so a Partial font is an easy way
to modify just a few characters.
PITCH: The font can be stored as Pica, Elite, or Proportional (selected
with the key). This choice affects only the spacing between characters,
not the size of the characters themselves: Pica prints 10 characters per inch
(cpi), Elite prints a more compact 12 cpi, and Proportional is also about 12
cpi but will vary according to the actual width of the characters. (Some
printers can vary the pitch of a downloaded font, and will not require the use
of this command. See MORE ABOUT DOWNLOADED FONTS below.)
THE DOS MENU
When you are finished modifying the font, pressing takes you to the
DOS MENU, which presents several choices:
= PRINT THE FONT. The entire range of characters will be printed,
with the standard font above (for comparison) and your new font below.
(Your printer must be online.)
= CHANGE THE NAME of the font before saving it to a disk file.
= SAVE the font to disk, then continue editing.
= LOAD A NEW FONT to work on.
= EXIT to DOS, SAVING the font to disk first.
= QUIT to DOS, without saving the font to disk.
Pressing at the DOS MENU will return you to editing the font.
--------------------------- DESIGNING CHARACTERS ---------------------------
To examine and modify individual characters, you can press:
ARROW KEYS - Display previous/next character
Any character - Display that character
- Edit the character shown
Select the standard character whose ASCII code corresponds to that of the new
character you wish to create. You may choose any character from hex value 21
to 7E (33 to 126 decimal, "!" to "~"). If you pick a previously defined
character, you will be modifying it. For example, if you've loaded DRAFT.LQC,
and type "A", you should see that character in the box; if you hit ,
you will be editing that character.
Note that your cursor is now inside the character matrix. You can move
it around with your arrow keys. The spacebar or keypad  key will toggle
the pin you are pointing to ON and OFF. Thus you can build up the pattern of
dots that will form your character.
There are many other special commands available in this mode, to make
modifying characters easier; a reminder of them is visible to the right for
reference during editing. These are:
move the whole pattern RIGHT, LEFT, UP, or DOWN.
COPY the pattern from another defined character.
copy pattern from character in OTHER font file.
BLANK the whole pattern out to start over.
PREVIEW a character in hi-res graphics. (EGA only!)
move current COLUMN up, down.
move current ROW left, right.
insert, delete a COLUMN.
insert, delete a ROW.
ROTATE left, right.
NOTES: The OTHER command can be used to copy characters from another LQC
font file (you will be asked for the font name). This works with any other
font, regardless of print quality, pitch, or font type. (On limitations of
Draft/LQ conversion, see above.)
The PREVIEW command works ONLY on an EGA adapter. It shows you a more
realistic, miniature picture of the present character, using higher resolution
again or to remove this and continue editing.
Of the remaining commands, only "rotate" is a bit tricky: this changes
the overall slant of a character. Be sure the character isn't too wide, and
is roughly centered in the box, or parts of it will get truncated. Note that
the rotation works in increments of 2 rows; thus moving the character up or
down one row first can give a slightly different effect. Also, if you're
going to rotate more than once, you should move the character up or down once
each time in between to get the smoothest effect. (Rotation works best on LQ
characters; its effects are a bit drastic for Draft mode.)
When done, you can press either:
- SAVE the character as modified
or - QUIT without saving changes
Upon saving, automatic centering causes the pattern to move to the middle of
the box. Note that you will not be able to save a definition that violates
the following rule:
---> No two adjacent pins in any ROW may be ON! <---
This is a physical limitation of the printhead: the pins can't fire fast
enough to print twice in adjacent columns. You could send such a character
definition to the printer, but the second dot wouldn't print as intended, so
LQCHAR warns you beforehand to avoid mistakes.
---------------------- PRINTING WITH DOWNLOADED FONTS ----------------------
The fonts designed with LQCHAR should have a filetype of ".LQC", for
ready identification. Typically they range in size from 1k to 5k, depending
on how many characters are defined (also, Partial or LQ fonts are larger than
Full or Draft fonts). They must be loaded into your printer's font memory in
order to be used. This is done with the "/P" option:
A>lqchar fontname /p
This command can be given, for example, before you enter your word processor,
or (hopefully) from some kind of DOS gateway within it. (Be sure your printer
is online.) The font is now ready for use. In order for this to work, your
software MUST be installed to give the printer commands to switch to the
downloaded font when required. For example, in WordStar 4, you might have
your print controls set up so that ^PA enables the downloaded (alternate)
font, and ^PN goes back to the normal font. Thus you can alternate between two
completely different fonts.
If you don't have LQCHAR handy, you can also use the ordinary DOS COPY
command to do this. You will have to specify the filetype though; and you
should use the /B option to make sure the LQC file is treated as binary, not
A>copy fontname.LQC prn /b
Alternatively, you may want to be using the downloaded font alone, rather
than switching back and forth between it and the normal font. (This is how
you will typically use a Partial font.) In this case, you want the font to
take effect immediately upon loading. Use the "/U" option instead:
A>lqchar fontname /u
After loading the font, LQCHAR will enable it, so that all subsequent printing
will be using the downloaded font. Your word processor doesn't need to know a
thing about it. In order for this to work, your software MUST NOT use any
printer commands to change the font after you've run LQCHAR. (Check your
"printer initialization sequence" for commands that reset the printer, select
font or print quality, etc.)
MORE ABOUT DOWNLOADED FONTS:
In any event, you will have to be careful that your software does not
send commands to the printer that will cancel the font loaded with LQCHAR.
This may include certain "global reset" commands that programs often use to
initialize the printer. If you can't get a downloaded font to work, try
reloading it with the "/U" option, then printing something with a simple DOS
command like "COPY filename PRN". If this does work, your problem is with the
printer initialization in your software; see your manual for how to modify it.
Your printer can keep only one downloaded font in memory at once; if you
load a second font it will replace the first. After using LQCHAR, you can
change between Draft and Letter quality, but of course the printer's resident
font will be used in the other mode.
Downloaded fonts do function a bit differently than the printer's
resident font. They should respond nicely to all the usual enhancements:
expanded, compressed, emphasized, italics etc. (This may depend on your
printer; these all work on my Alps.)
Your printer may or may not allow printer commands to vary the pitch of a
downloaded font with ESC sequences or panel switches. (My Alps does not; I am
told that some Epsons do.) If it does, you can leave LQCHAR set to "pica
pitch" and ignore the "pitch" command . If not, your choice with the
key determines the pitch. (You can always create another copy of an LQC file
in a different pitch.)
But there is one FIRM limitation: True super/subscripts will NOT work,
as these miniature characters have to be defined separately, on an 18-pin high
matrix, and LQCHAR doesn't do this. If you need these, you may be able to
install your software to do subscripting with platen rolls instead.
-------------------------- TECHNICAL INFORMATION ---------------------------
LQC FILE FORMAT:
The output file for a full font consists of an ESC sequence to set the
print quality (draft/LQ) and proportional print (on/off), then a long ESC
sequence defining every ASCII character from hex 20 to 7E. (LQCHAR defines
20H as space, automatically.) For a partial font, the file instead contains
the ESC sequence to copy the resident font, then a separate ESC sequence for
each defined character individually.
This means that if you don't have LQCHAR handy, you can simply load LQC
fonts with the DOS COPY command: they contain nothing but standard Epson ESC
sequences. However -- there too many details about the way the character
definitions must be formatted to explain here. I do NOT recommend that you
try to convert font data from other sources into LQC files for use with
LQCHAR. There are just too many details, and LQCHAR might crash if its data
isn't in the expected format.
LQCHAR can, however, read LQC files created by versions prior to 1.22
(which lack the proportional code in the leadin string), and even those
created by the earlier CP/M version of the program (LQCHAR 1.1, 8/87).
The default screen colors in LQCHAR are chosen for visibility on the
widest variety of display adapters. However, if you prefer to change the
colors using DEBUG or a similar utility to modify LQCHAR.COM, you may do so.
There are 5 distinct colors, beginning at address 0102h:
ADDR DEFAULT PURPOSE
0102 07 (white) Normal video
0103 08 (grey) Dim video (undefined/unavailable items)
0104 0F (bright) Bright video /These are all used \
0105 70 (black on white) Inverse video < for highlighted text>
0106 7F (bright on white) Hilight video \and box shading /
LQCHAR 1.0 (6/88) was developed from my earlier Z80 CP/M program of the
same name (version 1.1, 8/87), with a number of added features.
1.1 (1/89) - adds hi-res preview for EGA systems; small improvements.
1.2 (4/89) - more DOS functions; LQ to Draft conversion; copy character
from another font; print font; small improvements.
1.21 (5/89) - fixed bug in ther font function; small improvements.
Proportional spacing of narrow characters improved.
1.22 (10/89) - correctly recognizes more non-EGA systems; puts printer
in proportional mode for prop. fonts. (Note: to convert
existing prop. LQC files, you must load and resave them.)