mirror of
https://github.com/PDP-10/its.git
synced 2026-03-04 18:54:08 +00:00
committed by
Lars Brinkhoff
parent
78c2f03e09
commit
38d430bb23
@@ -128,6 +128,7 @@ A list of [known ITS machines](doc/machines.md).
|
||||
- DSKUSE, disk usage information.
|
||||
- DUMP/LOAD, tape backup and restore.
|
||||
- EMACS, editor.
|
||||
- FED, font editor.
|
||||
- FIND, search for files.
|
||||
- FRETTY, display list of free TTYs.
|
||||
- FTPS, FTP Server.
|
||||
|
||||
@@ -1000,6 +1000,11 @@ expect ":KILL"
|
||||
respond "*" ":midas sys;ts obs_bawden;obs\r"
|
||||
expect ":KILL"
|
||||
|
||||
# FED
|
||||
respond "*" ":midas sys;ts fed_sysen2;fed\r"
|
||||
respond "Use what filename instead?" "dsk:sysen2;\r"
|
||||
expect ":KILL"
|
||||
|
||||
# ndskdmp tape
|
||||
respond "*" ":link kshack;good ram,.;ram ram\r"
|
||||
respond "*" ":link kshack;ddt bin,.;@ ddt\r"
|
||||
|
||||
238
doc/_info_/fed.order
Executable file
238
doc/_info_/fed.order
Executable file
@@ -0,0 +1,238 @@
|
||||
CAVEAT: Several bugs in the description of KST format have been
|
||||
fixed, by EBM, 11/10/79. I looked carefully at the source code
|
||||
for FED and XGPSPL, and tested things out to verify the fixes,
|
||||
but naturally cannot take complete responsibility since I did
|
||||
not write the programs.
|
||||
|
||||
Massachusetts Institute of Technology
|
||||
|
||||
Artificial Intelligence Laboratory
|
||||
|
||||
WORKING PAPER #78 (revision 1)
|
||||
8 October, 1975
|
||||
|
||||
FED, the Font "EDitor"
|
||||
and
|
||||
Font Formats
|
||||
by
|
||||
Joseph D. Cohen and J. Pitts Jarvis
|
||||
|
||||
Abstract
|
||||
This memo describes FED, a program used for compiling and inspecting
|
||||
fonts; AST font format, a text format which can be used to create and
|
||||
edit fonts; and KST font format, the binary format used by SCRIMP, TJ6,
|
||||
PUB, R, and SCRIBE.
|
||||
|
||||
Work reported herein was conducted at the Artificial Intelligence
|
||||
Laboratory, a Massachusetts Institute of Technology research program
|
||||
supported in part by the Advanced Research Projects Agency of the
|
||||
Department of Defense and monitored by the Office of Naval Research under
|
||||
Contact number N00014-70-A-0362-0005.
|
||||
|
||||
Working Papers are informal papers intended primarily for internal use.
|
||||
|
||||
|
||||
FED and Font Formats________________2__Font Editor and Console Operation.
|
||||
|
||||
FED, the Font "EDitor"
|
||||
|
||||
FED is a program used for compiling and inspecting fonts. FED
|
||||
understands the following font formats:
|
||||
AST -- text format which can be used to create and edit fonts in
|
||||
TECO;
|
||||
KST -- MITAI and CMU compiled font format, used by programs like
|
||||
SCRIMP, TJ6, and PUB;
|
||||
CMU -- a newer compiled CMU format;
|
||||
CU -- the newest compiled CMU format;
|
||||
FNT -- SAIL compiled font format; and
|
||||
XH -- Xerox PARC compiled font format.
|
||||
FED reads all formats, but writes only AST and KST.
|
||||
|
||||
FED asks for an input file name. If the second name is AST, KST, FNT, or
|
||||
XH, FED assumes the input file to be in the appropriate format. If the
|
||||
second name is something else, FED asks what FORMAT the input file is in.
|
||||
If the file name is blank, FED kills itself. FED reads the file and
|
||||
types out various decimal data. A FIXED width font is one in which the
|
||||
CHARACTER WIDTH of all defined characters is the same as the CHARACTER
|
||||
WIDTH of a space. FED calls all other fonts VARIABLE width.
|
||||
|
||||
FED tries to display the font on the user's terminal, if it's a TV
|
||||
display; or on the 340, if the user is near there, and the 340 and PDP6
|
||||
are available. FED displays as though one XGP dot equals one display
|
||||
dot, so the size and proportion of the font will be distorted. (200
|
||||
horizontal XGP dots = 1 inch, 192 vertical dots = 1 inch. ~108
|
||||
horizontal 340 dots = ~108 vertical 340 dots = 1 inch. ~58 horizontal TV
|
||||
display dots = 1 inch. ~57 vertical TV display dots = 1 inch. A TV font
|
||||
display will therefore be enlarged 4 diameters over the same font on the
|
||||
XGP.)
|
||||
|
||||
FED then offers to write out the font. If you type N, FED restarts
|
||||
itself; if you type Y, it asks for the output file name; and if
|
||||
anything else is typed, it repeats its offer. If you write the file, FED
|
||||
will offer to compact the raster. (This is a horizontal compaction
|
||||
accomplished by eliminating leading and trailing blank columns.) If you
|
||||
type Y, FED will compact the raster as much as possible, and tell you how
|
||||
many words the compaction will save in the XGP's PDP11. When compacting,
|
||||
FED will also let you know if there are any characters whose raster is
|
||||
wider than the defined raster width. The input default system name is
|
||||
FONTS, the output default system name is the job's SNAME. Input and
|
||||
output default second file name is KST.
|
||||
|
||||
Please do not write new fonts onto the FONTS directory -- it is almost
|
||||
full. Absolutely do not modify fonts on the FONTS directory. All
|
||||
concerned programs are perfectly capable of reading fonts from your very
|
||||
own directory. The reason for this injunction is that it has been
|
||||
determined, after much experimentation, that the definition of
|
||||
"improvement" is consistently a local variable. Please keep your
|
||||
"improvements" to yourself.
|
||||
|
||||
A typical FED console session looks as follows: (User typein is
|
||||
underlined, is a carriage return.)
|
||||
|
||||
:fed
|
||||
FED 119
|
||||
INPUT: jdc;ast >
|
||||
FORMAT: kst
|
||||
READING: DSK:JDC;AST 25
|
||||
142 DUPLICATE CHARACTER
|
||||
FILE: DSK:JDC;AST 25
|
||||
KSTID: 0
|
||||
CHARACTERS READ: 128
|
||||
HEIGHT: 25
|
||||
WIDTH: (VARIABLE)10
|
||||
WRITE? (Y OR N)y
|
||||
FILE: ast kst
|
||||
FILE ALREADY EXISTS. CLOBBER? (Y OR N)y
|
||||
WRITING: DSK:JDC;AST KST
|
||||
COMPACT RASTER? (Y OR N)y
|
||||
2032 (OCTAL) PDP11 WORDS SAVED
|
||||
INPUT:
|
||||
|
||||
:KILL
|
||||
|
||||
AST Font Format
|
||||
|
||||
The AST font format is a text format which can be used to create and edit
|
||||
fonts in TECO. An AST file has one page of font data, followed by one
|
||||
page of character data for each defined character. All numbers except
|
||||
CHARACTER CODE are decimal. It is the order of the numbers, rather than
|
||||
the text identification after them, that FED looks at. The
|
||||
identification is merely a convenience.
|
||||
|
||||
The file's first page is font data and looks like:
|
||||
n KSTID dev:dir;file name
|
||||
n HEIGHT
|
||||
n BASE LINE
|
||||
n COLUMN POSITION ADJUSTMENT
|
||||
|
||||
KSTID is a currently unimplemented feature. It is intended to be a
|
||||
unique number for each font so that PDP11 will know which fonts
|
||||
are loaded, and not do unnecessary reloads. KSTID is used by
|
||||
CMU. (KSTID should be set to 0.) FED writes, on every page of
|
||||
the output AST file, the file name of the source font file. On
|
||||
input FED ignores the file name data in AST files.
|
||||
HEIGHT is the height of all characters in XGP raster lines.
|
||||
BASE LINE is the location of the character base line in XGP raster lines
|
||||
from the top of all characters. (The base line is used by the
|
||||
XGP underscore command. See Working Paper #72, XGP Font
|
||||
Catalog.)
|
||||
COLUMN POSITION ADJUSTMENT is an artifact. It is a number which is added
|
||||
to the LEFT KERN of each character to get its total left kern.
|
||||
To be SAIL compatible, COLUMN POSITION ADJUSTMENT should be 0,
|
||||
and all kerning sould be included in individual character data.
|
||||
|
||||
The rest of the file is one page of character data for each defined
|
||||
character. Each page looks like:
|
||||
n CHARACTER CODE
|
||||
n RASTER WIDTH
|
||||
n CHARACTER WIDTH
|
||||
n LEFT KERN
|
||||
* *
|
||||
* *
|
||||
*
|
||||
* *
|
||||
* *
|
||||
|
||||
CHARACTER CODE is the octal ASCII code of the character.
|
||||
RASTER WIDTH is the width of the raster in XGP dots. It is a good idea
|
||||
to make the raster width as small as possible, in order to save
|
||||
space in font files, and to allow the XGP PDP11 to store more
|
||||
fonts. A leading blank column can be flushed if RASTER WIDTH and
|
||||
LEFT KERN are decremented. Trailing blank columns can be flushed
|
||||
by simply decrementing RASTER WIDTH. (The FED compact feature
|
||||
does this automatically.)
|
||||
CHARACTER WIDTH is the amount, in XGP dots, that printing this character
|
||||
will advance the line postion. This number is completely
|
||||
independent of RASTER WIDTH, and LEFT KERN. For example, if
|
||||
CHARACTER WIDTH<RASTER WIDTH, characters will overlap. If
|
||||
CHARACTER WIDTH>RASTER WIDTH, there will be extra blank columns
|
||||
in the character. How many appear on each side is determined by
|
||||
LEFT KERN.
|
||||
LEFT KERN (plus COLUMN POSITION ADJUSTMENT, if any) is the amount to move
|
||||
left from the logical left end of the character before printing
|
||||
the raster. (Positive left kern means move left; negative, move
|
||||
right.)
|
||||
* is any printing character used to define the CHARACTER RASTER. Each
|
||||
raster row is represented by a text line. If a space appears,
|
||||
the bit is off in the raster, if a printing character appears,
|
||||
the bit is on. Carriage return terminates the text row, and
|
||||
implies blanks for the rest of the raster row. Formfeed
|
||||
terminates the raster, and implies trailing blank raster lines.
|
||||
The first row is the top row. Information wider than RASTER
|
||||
WIDTH is ignored.
|
||||
|
||||
KST Font Format
|
||||
|
||||
KST is CMU's oldest and MITAI's only compiled binary font format.
|
||||
SCRIMP, TJ6, PUB, and other programs all use KST files as their font
|
||||
definitions. KST format is as follows:
|
||||
Word 0/ KSTID
|
||||
Word 1/ 9 bits COLUMN POSITION ADJUSTMENT, 9 bits BASE LINE,,HEIGHT
|
||||
The remainder of the file has one block of data for each character. Each
|
||||
block looks like:
|
||||
USER ID ;not currently used but low order bit is on. This bit
|
||||
can be used to find the beginning of a new block. The
|
||||
last block is followed by two -1's.
|
||||
LEFT KERN,,CHARACTER CODE
|
||||
RASTER WIDTH,,CHARACTER WIDTH
|
||||
CHARACTER MATRIX
|
||||
The character matrix is stored four 8-bit bytes per word, so that ILDBs
|
||||
with 8-bit byte size get successive bytes. The remaining four low order
|
||||
bits are 0. The bits are reversed in each byte (because of the way the
|
||||
XGP interface works) so that the high order (leftmost) bit of the
|
||||
character is the low order bit of the byte. The matrix is stored row by
|
||||
row; rows follow one another with no extra separating bytes. The last
|
||||
word is filled out with 0 bytes, if necessary. Note that HEIGHT rows are
|
||||
stored for each character, and (RASTER WIDTH + 7)/8 bytes are used for
|
||||
each row.
|
||||
|
||||
Some old MIT KST files, and all CMU's KST files do not use the RASTER
|
||||
WIDTH variable. (All characters have RASTER WIDTH=CHARACTER WIDTH.) The
|
||||
third word of those files has 0 in the left half. Programs which
|
||||
directly examine KST files for RASTER WIDTH should therefore, if RASTER
|
||||
WIDTH=0, use CHARACTER WIDTH instead. (Note that this also means that
|
||||
while MITAI can use CMU's KST files, CMU cannot use MITAI KST files.)
|
||||
Since when RASTER WIDTH=0, MITAI programs substitute CHARACTER WIDTH, you
|
||||
should not write a program which will set RASTER WIDTH to zero. When FED
|
||||
finds a character with zero RASTER WIDTH, FED will write the character
|
||||
with RASTER WIDTH=1. This does not waste any space in the XGP's PDP11,
|
||||
since the PDP11 does a vertical compaction of rasters, eliminating top
|
||||
and bottom blank lines.
|
||||
|
||||
Odds and End
|
||||
|
||||
The KST, FNT, XH, and FED internal formats are listed in the
|
||||
extravagantly commented FED source file (stored on the SYSENG directory).
|
||||
FED also has extensive comments on programming the PDP10 to PDP11
|
||||
interface. FED was written by Pitts Jarvis, with additions by Joe Cohen.
|
||||
Brian Harvey is responsible for SAIL font hackery, whose specifications
|
||||
and fonts we copied.
|
||||
|
||||
Fonts are stored on the FONTS; directory, and are described in Working
|
||||
Paper #72, XGP Font Catalog, by Tom Knight.
|
||||
|
||||
The source file for this memo is WP;FED 78Wn, where n is the revision
|
||||
number.
|
||||
|
||||
THE END
|
||||
|
||||
2626
src/sysen2/fed.134
Executable file
2626
src/sysen2/fed.134
Executable file
File diff suppressed because it is too large
Load Diff
BIN
src/sysen2/fnr.10
Executable file
BIN
src/sysen2/fnr.10
Executable file
Binary file not shown.
Reference in New Issue
Block a user