home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.update.uu.se
/
ftp.update.uu.se.2014.03.zip
/
ftp.update.uu.se
/
pub
/
rainbow
/
msdos
/
latrobe
/
f
/
fancyexe.arc
/
FEDIT.DOC
< prev
next >
Wrap
Text File
|
1985-10-11
|
14KB
|
369 lines
FEDIT Font Editor
Version 2.01
J Anthony Movshon
February 22, 1985
FEDIT is a special-purpose editor to create and edit font files which
are used with the LA50 and LA100 printers' graphics mode output. It is
based on the CP/M program MAKFNT by A. Christopher Hall. FEDIT allows
the user to work with the way characters look, and takes care of the
encoding of the font in the language that the printer understands
transparently to the user. FEDIT requires an MSDOS personal computer
with 128 kbytes of memory and support for ANSI screen sequences; the
command layout is designed for the DEC Rainbow, but alternate command
forms can be used that do not require the Rainbow function keys. The
font files that FEDIT reads and writes are intended to be used with
FPRINT, the fancy printer program. FPRINT requires an LA34, LA50 or
LA100 printer with graphics option.
To run, just type "FEDIT". The editor will set up a default display,
and you can read in the font file you want to edit, or set the height as
you wish and create a new font. Eventually you can save the font in a
file if you wish, and exit FEDIT (by typing [Exit] or Control-C). You
can view a help screen by typing [Help] or Control-H.
DEFINITIONS
Character - Current and Saved
The current character is the one that is currently being edited. It
is displayed on the screen. Saved characters have been defined either
by creating and saving them or by reading a font file. They can be
recalled, whereupon they become the current character.
In this documentation "character" refers to an element of a font,
which is either current or saved; not the single thing that appears on
the screen when you type something. The latter are:
Pixels
The current character is displayed as set and blank pixels. A set
pixel represents a print-wire that will be fired, and a blank pixel a
wire which will not fire.
Character Width
Characters always have variable width. The width of the current
character is from the left column of the display to the rightmost set
pixel on any row. Trailing blank columns are "deleted" when the
character is saved, but leading blank columns are retained. The latter
can be deleted using the DELETE COLUMN command.
Word Space
The space character cannot be made as the current character and then
saved, because it will always be saved as zero width. If a font does
not already have a space character defined, when the SAVE FONT command
is typed the editor will ask the user how long the space character
should be.
The Scratch Character
Sometimes it is useful to save the current character in a scratch
area, perhaps to compare with the old definition of the character (by
recalling them each alternately) to see which one looks better. A
character can be SAVED and RECALLed as the scratch character by
answering the "give name" question of those two commands with a
[Return]. The scratch character behaves the same as any other
character, but is not saved on disk with the font.
FEATURES OF THE DISPLAY
The screen display consists of the following elements:
Current Character
The character currently being edited is displayed in the left part of
the screen. Each row is numbered. The cursor cannot be moved out of
the current character region.
Font File
If a font file has been read, its name appears at the top right of
the screen.
Width
This is the width of the current character. Note that the width only
gets larger; if all set pixels are erased from the rightmost column the
displayed width remains the same; it is adjusted when the character is
saved.
Defined Characters List
This is a list of characters which have been defined, either by
creating and saving them or by reading in a font file. Any defined
characters can be recalled as the current character.
Queries and Verification
Many commands ask questions of the user. Hopefully, they are self-
explanatory. Also, some commands can cause damage if they are typed
accidentally. To give the user a chance to say he didn't mean it, those
commands ask for verification. Answering the verification with "Y",
"y", or [Return] approves the command, and it takes effect. Any other
response disapproves the command, and it is ignored.
The commands which ask for verification are marked with an asterisk.
COMMANDS
Keys in [square brackets] are Rainbow function keys, for commands
where an alternate key or key sequence exists, it is given in
(parentheses) at the end of the command description.
Pixel Entry
[Insert Here]
Sets the pixel at the cursor position. The cursor moves one to the
right, or in the direction set by the SET INCREMENT command. (Any
alphabetic character).
[Remove]
Erases the pixel at the cursor position. The cursor moves one to
the right, or in the direction set by the SET INCREMENT command.
(<space>).
[<X] (Rubout)
Erases the pixel to the left of the cursor. The cursor moves one
to the left.
Cursor Movement
[Up-Arrow]
Moves the cursor up one row. If the cursor is moved off the top of
the screen it wraps around to the bottom. (Control-E).
[Down-arrow]
Moves the cursor down one row. If the cursor is moved off the
bottom of the screen it wraps around to the top. (Control-X).
[Right-arrow]
Moves the cursor right one column. If the cursor is moved off the
right of the screen it wraps around to the left. (Control-D).
[Left-arrow]
Moves the cursor left one column. If the cursor is moved off the
left of the screen it wraps around to the column of the width of
the character being edited. (Control-S).
[Tab] or [PF1]
If the cursor is on a set pixel, moves the cursor to the next
blank. If the cursor is on a blank, moves the cursor to the next
set pixel; if there is no next set pixel, moves the cursor to the
next 8-character tab stop.
[PF2]
Back tab: does the opposite of TAB, moving to the previous set or
blank pixel. (Control-U).
[PF3]
Down tab: similar to TAB, but moving downward. Vertical tab stops
are every fourth row. (Control-P).
[PF4]
Up tab: similar to BACKTAB, but moving upward. (Control-O).
[Keypad 1]
Home: moves the cursor to the upper-left corner of the screen.
[Return]
Moves the cursor to the start of the next row, or where set by the
SET INCREMENT command.
[Keypad 4]
Moves the cursor to the start of the current line.
[Keypad 6]
Moves the cursor after the last set pixel on the current line.
[Keypad 5]
Re-displays the screen.
Font File Operations
[Additnl Options]*
Read font: asks for the name of a font file (the extension .FNT is
appended), then reads in that file for editing. The font being
edited, if any, when READ FONT is typed, is discarded. (Control-R).
[F4]*
Append font: asks for the name of a font file (the extension .FNT
is appended), then reads in that file for editing, adding its
definitions to those already there. If the new font file redefines
an existing character, the new definition will overwrite the old
one. (Control-A).
[Do]*
Write font: asks for the name to save the font (the extension .FNT
is appended), then writes out the current definitions to disk.
Typing [Return] as the file name causes the current file name to be
used. The current font is erased. (Control-F).
Some questions may be asked if certain values have not yet been
defined for the font:
Number of spaces between characters: This space is output between
each character, unless that character has the XTS flag set. 1-2
for each 6 rows of height is a good value, but the eye is the best
judge.
Number of lines between lines: Usually 1, but set it greater to
space lines of text farther apart. Each increment of this value
gives 6 more dot-rows between lines in the output.
Length of a space character: Type the length of the word
separator. About half the size of "N" is a good guess.
[Keypad 3]
Set height: asks for the height of a new font, then sets up the
display to reflect that height. This command is only useful when
creating a new font, and should never be used when editing an
existing font (if it is invoked accidentally, it can be invoked
again to set the correct height without hurting anything).
[Exit]
Exits FEDIT; no files are saved. (Control-C).
Character Operations
[Keypad ,]
Erases the currently-defined character.
[LF]
Erases (sets to blanks) all pixels from the cursor position
rightward to the end of the line. (Control-J).
[Keypad 7]
Insert column: adds a blank column where the cursor is, moving the
column the cursor is on and each one to the right of it one column
rightward. The rightmost column is lost.
[Keypad 8]
Delete column: deletes the column where the cursor is. Each
column to the right of the cursor is moved one column leftward.
The rightmost column becomes blank.
[Keypad 9]
Insert row: adds a blank row where the cursor is, moving the row
the cursor is on and each one below it one row down. The bottom
row is lost.
[Keypad -]
Delete row: deletes the row where the cursor is. Each row below
the cursor is moved one row up. The last row becomes blank.
[Prev Screen]
Flip vertical: reverses the character (takes its mirror image)
across its vertical center-line. This is useful to convert a "b"
to a "d", for example. (Control-V).
[Next Screen]
Flip horizontal: reverses the character across its horizontal
center-line. Converts "b" to "q", for example. But note: the
resulting character may be too high or too low in the frame, so
some INSERT ROWs or DELETE ROWs may be necessary. (Control-B).
[Compose Character]
Duplicate the mirror-reflected image of the present character in
the right half of the field, to create a double character with
vertical symmetry. (Control-G).
[Keypad 2]
Set increment: asks the user to type a direction, expecting one of
the four cursor keys, or [Return]. Then changes where the cursor
is positioned after type-in, space, or CRLF, to the following:
Direction typed: Cursor moves: [Return] moves:
[Return] Right Start of next line
RIGHT Right Column position of next line
LEFT Left Column position of next line
DOWN Down Row position of next column
UP Up Row position of next column
where the "column position" and "row position" are where the cursor
is located when the SET INCREMENT command is typed.
Character-Font Operations
[Select] or [Keypad 0]*
Save character: asks for a name to save the character as, then
stores the character in the font. The name now appears in the list
of defined characters. Typing [Return] as the name of the
character causes it to be saved as the scratch character. The
scratch character is not written to the font file on disk.
[Cancel]*
Kill character: asks for the name of a character, then deletes the
character from the font. The name no longer appears in the list of
defined characters. (Control-K).
[Find] or [Keypad .]
Recall character: asks for the name of a character, then retrieves
the character from the font and displays it as the current
character. Typing [Return] as the name of the character recalls
the scratch character. RECALL CHARACTER can be cancelled by asking
for any character which is not defined, or a control character
(except CRLF).
Miscellany
[Help]
Prints the informational screen that follows. (Control-H).
______________________ _____________________________
[Additnl Options] |Recall|Set |Unset | |Tab |Back |Up |Down |
Read font file |Char |Pixel |Pixel | | |Tab |Tab |Tab |
[F4] |Find |Ins |Rem | |PF1 |PF2 |PF3 |PF4 |
Append font file |______|______|______| |______|______|______|______|
[Do] |Save |Flip |Flip | |Insert|Delete|Insert|Delete|
Write font file |Char |Horiz |Vert | |Column|Column|Row |Row |
|Select|Prev |Next | |7 |8 |9 |- |
[Cancel] |______|______|______| |______|______|______|______|
Kill character |Up | |Begin |Write |End |Erase |
|Pixel | |Line |Screen|Line |Char |
[Compose character] |^ | |4 |5 |6 |, |
Mirror reflect _______|______|_______ |______|______|______|______|
|Left |Down |Right | |Cursor|Set |Set | |
|Pixel |Pixel |Pixel | |Home |Incr |Height| |
|< |v |> | |1 |2 |3 |New |
|______|______|______| |______|______|______|Line |
[Main Screen] |Save |Recall| |
Rewrite screen |Char |Char | |
[Exit] |0 |. |Enter |
Exit |_____________|______|______|
BUGS
Probably numerous, but it's early days yet.
The cursor positioning routines sometimes become confused after the
"set increment" command is used to change default direction.
Please report any bugs you may find or suggestions for improvements
to the author by one or more of the following routes. I would also
appreciate receiving copies of any new fonts you may create.
J. Anthony Movshon
US mail: 100 Bleecker Street
New York, NY 10012
ARPAnet mail: hipl!tony@nyu-cmcl2
UUCP mail: {seismo|allegra|ihnp4}!cmcl2!hipl!tony
Or leave a message for me (as "Tony Movshon") on the DEC-WARE
Fido BBS (212 535-8924).