CA1135867A - Digital typesetter - Google Patents

Digital typesetter

Info

Publication number
CA1135867A
CA1135867A CA000337237A CA337237A CA1135867A CA 1135867 A CA1135867 A CA 1135867A CA 000337237 A CA000337237 A CA 000337237A CA 337237 A CA337237 A CA 337237A CA 1135867 A CA1135867 A CA 1135867A
Authority
CA
Canada
Prior art keywords
data
line
character
raster
typesetter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CA000337237A
Other languages
French (fr)
Inventor
Walter I. Hansen
Wiley E. Galbraith
Louis C. Vella
Martin M. Cohen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Heidelberger Druckmaschinen AG
Original Assignee
Eltra Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Eltra Corp filed Critical Eltra Corp
Application granted granted Critical
Publication of CA1135867A publication Critical patent/CA1135867A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/12Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers by photographic printing, e.g. by laser printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0005Accepting output data; Preparing data for the controlling system
    • G06K2215/0011Accepting output data; Preparing data for the controlling system characterised by a particular command or data flow, e.g. Page Description Language, configuration commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/002Generic data access
    • G06K2215/0022Generic data access characterised by the storage means used
    • G06K2215/0025Removable memories, e.g. cartridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/002Generic data access
    • G06K2215/0028Generic data access characterised by the format per se
    • G06K2215/0034Outline coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/004Generic data transformation
    • G06K2215/0042Rasterisation
    • G06K2215/0045Converting outline to bitmap
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0062Handling the output data combining generic and host data, e.g. filling a raster
    • G06K2215/0065Page or partial page composition

Abstract

ABSTRACT OF THE DISCLOSURE

A digital typesetter for imaging graphics quality characters of a specified font. The typesetter includes an electronic data processing system which receives first digital data defining the identity, form, size and placement of characters to be typeset; receives second digital data defining the contour of each character to be typeset with respect to a normalized encoding set of first and second coordinates; and produces third digital data defining the character boundaries intersecting a raster (scan) line. This third digital data, for at least a portion of the raster line extending the width of several characters, is temporarily stored in a raster line storage buffer. A character imaging device, connected to the line storage buffer, is provided to image successive raster lines on a print medium. Drive means are also provided for moving the print medium in a direction transverse to the direction of the raster (scan) line.

Description

~3S~36'7 _3_ BACKGROUND OF THE INVENTION
The present invention relates to a "digital"
typesetter for imaging graphics quality characters of a specified font which is stored in the machine in digital form.
Digital typesetters image typographical characters which have been coded in digital form and stored on some kind of digital storage medium such as a magnetic tape, drum or rigid or floppy disk. Such digital typesetters are normally provided with a cathode ray tube (CRT) or laser beam imaging system for writing characters onto photographic film or paper. In the case of digital CRT typesetters, successive characters are each completely imaged, one at a time, by the CRT beam which is position-controlled in two dimensions by the CRT X-Y deflection voltages. Normally, lS each character is built up from a series of vertical strokes which commence from the left side bearing of the character and proceed successively to the right side bearing. Once a character has been completely stroked, the CRT beam is moved to the left side bearing position of the next successive character, and so on.
When a laser beam rather than a C~T imaging system is used to image typographical characters on film or paper, a modulated one dimensional scan has generally been used. In this case, the character-writing beam is swept across the entire width of the output film or paper in a single line and this print medium is moved in a direction transverse to the direction of the scan line. While such a laser-based imaging system is substantially less expensive than a cathode ray tube system, such a system requires computaiion of the beam switch points to turn the scanning beam on and off with sufficient speed to keep up with the scanner on a real time basis. In order to overcome ~:: ,- ~ . ::. : : : - ,::

this problem, the characters of each font have been digitized as a separate digital master for each type-size to be set. In this way, the encoded character information may be used directly without scaling, for example, which requires extensive computation. The disadvantage of this arrangement is that an entire font of characters must be stored in the machine for each of the desired type sizes~ This results in excessive use of storage space within the machine or requires that the machine be repeatedly "dressed" with a different digitally-encoded font each time a different type size, or a different font are to be used.

~i,f .. ... . . . . .

:~ ; . , .

~a3L3~

~UMMARY OF THE INVEI~TION
It is a general object of the present invention to provide a digital typesetter which combines the advantages of the CRT and laser typesetters descrihed above.
It is a more specific object of the present invention to provide a digital typesetter having an imaging system of the type producing a one-dimensional scan line across the entire width of the output print medium.
It is a further specific object of the present invention to provide a digital typesetter which is capable of imaging typographical characters of virtually any size Erom a single digitized master font.
These objects, as well as further objects which will become apparent from the discussion that follows, are achieved, according to the present inven-tion, by providing an electronic data processing system which receives first digital data defining the identity, form, size and ~ `
placement of characters to be typeset; receives second digital data defining the contour of each character to be typeset with respect to a normalized encoding set of first and second coordinates; and produces third digital data defining the character boundaries intersecting a raster (scan) line. This third digital data, for at least a portion of the raster line extending the width of several characters, is temporarily stored in a raster line storage buffer. A character imaging device, connected to the line storage buffer~ is provided to image the successive raster ,~, , -1~35~
- 5a -lines on a print medium. Drive means are also provided for moving the print medium in a direetion transverse to the direction of the raster (sean) line.
In accordanee with one aspeet of the invention there is provided a typesetter for the automatie generation of eharaeters eomprising r in eombination: (a) input means for providing first digital data specifying the identity, formr size and placement of eharaeters to be typeset; (b) font storage means for storing and providing seeond digital data defining the eontour of eaeh eharaeter of at least one font with respect to a normalized encoding set of first and seeond coordinates; (e) electronic data proeessing means r conneeted to said input means and said font storage means r for reeeiving said first and seeond digital data and producing third digital data defining the boundaries of a plurality of characters, speeified by said first digital data, at the points of intersection with a raster line, and (d) charaeter imaging means, conneeted to said eleetronie data proeessing means, reeeiving said third digital data for writing said eharacters on an imaging surfaee.
In aceordanee with a further aspeet of the present invention the typesetter is provided wherein the data proeessing means ineludes (lj a random aeeess memory for storing fourth digital data; (2~ data management means, eomprising a first mieroproeessor, for reeeiving and storing said first and second digital data and producing and storing said fourth digital data in said random access memory; and (3) outline eonverter means, comprisin~ a '' ~

ac o~
f - 5b -second microprocessor, for receiving said fourth digital data from said random access memory and computing therefrom said third digital data defining the character boundaries intersecting a raster line.
In a preferred embodiment of the invention, the raster line extends substantially the width of the print medium which may be at least the size of a conventional ~t~

~3S~;~7 typewritten page. The print medium may comprise paper which can be used in a conventional way for paste-up or to make office copies, or the print medium may comprise a printing plate so that printed coples may be made directly from the typesetter output.
Preferably, the raster line extends horizontally on the print medium; i.e., parallel to the lines of type.
An image of this raster line may be created by a scanning device, such as a laser recorderl having means ~e.g., a laser) for generating a scanning beam and a means (e.g., a mirror) for moving the scanning beam across the print medium in a scan line. Suitably, the scanning beam is switched on and off in response to the line storage buffer, as the beam is scanned across the print medium, thus foxm-iny the raster line image.
The line storage buffer preferably includes twoline buffers, each of which may be formed of a plurality of memory elements each storing a single binary digit corres-ponding to a respective, unique raster point along the raster line. The binary digits in the first line buffer may thus represent positions on the scan line at which the scanning beam is to be switched on and the binary digits in the second line buffer may represent the positions on the scan line in which the scanning beam is to be switched off.
The line storage buffer may also include a third line buffer, which may be identical to the other two. The binary digits in this third line buffer may thus represent the positions of the scan line at which the beam on/off switching is to be reversed, thus effecting a color reversal for either an Qntire page or a rectilinear section thereof.
The first digital data defining the identity, form, size and placement of the characters to be typeset may originate from a computer system (with the typesetter on ,~
;~

~ , ~3~1567 line) or from a storage medium such as a floppy disk.
The second digital data is preferable stored on a magnetic record, such as a floppy disk.
The manner in which the second digital data defines the contour of each character of a font wil] be described in detail hereinbelow. Essentially, this second digital data comprises digital numbers defining the X and Y Coordinates of the start points of character outlines and digital numhers defining the length and direction of a plurality of straight ln line vectors extending successively along the character out-lines from the skart points. The length and direction of each vector is represented by the first coordinate distance hX and the second coordinate distance ~Y from one end of the vector to the other.
In accordance with a preferred feature of the present invention, the digital numbers defining the vectors are arranged such that the vectors of an entire string are successively defined before defining the vectors of another string. In addition, the second digital data incl~des further digital numbers, associated with the digital numbers defining the coordinates of each start point r which consti-tute the starting address of the digital numbers defining the vectors of the associated string. In this way, a single vector string may be addressed from a plurality of start points within a font. Finally, it is preferable if the digital numbers defining the coordinates of a start point further specify the quadrant (either right or left) of at least the first vector of the associated, addressed vector string.
In general, charac~er designers (persons who design character fonts) tend to create a few basic character shapes which are repeatcd throughout the font, either directly or in mirror image. Consistency dictates that a few shapes be ,~
~:

` ~351~ilti~

repeated throughout the font while symmetry dictates that mirror images be used. The vec-tor strings utilized in the digital definition of characters permit 1he quantity of data required to define an entire font to be substantially reduced because a single vector string may be addressed from the start points of various characters and may be directed to extend either toward the left or toward the right, thus forming mirror images.
The electronic data processing system used in the typesetter preferably includes a random access memory for storing fourth digital data, a data management subsystem for receiving and storing the first and second digital data and producing and storing the fourth digital data in the random access memory, and an outline converter sub-system for receiving the fourth digital data from the randomaccess memory and computing from this fourth digital data the third digital data defining the character boundaries intersecting the raster line. The manner in which the fourth digital data is processed and stored and thereafter conver~ed into the third digital data will be described in detail hereinbelow.
For a better understanding of the in~ention, to-gether with other and further objects, reference is made to the following description, taken in conjunction with the accompanying drawings.

- . :

' ' .' ~L~3~i~il6~
- ~RI~F DESCPI~TlO:`~ OF T~r D~ GS
Fis. 1 is a block diagram ol the overall t~r?e-settin~ sys~em accor~inc to the present invention.
~ ig. 2 is a schematic ~i2sram of a one-dimensional scanner (laser recorder) whlch may ~e used in the system of Fig. 1.
Fig. 3 is a block diagram of the Output Data Processing System in,the syst~m OL Fig. 1.
Fig. 4 is a block diagram of the Data Management , Subsystem in the Output D~ta Processing System of Fig. 3.
Fig. 5 is a bloc.~ ciasram'of the O~line Converter Su~sys~em in the Out~ut Data Processing Syste~ of Pig. 3.
~ ig. 6 is a diag-am showing the structure of th~ Font File contained in the fon~ storage unit in the system of Fig. 1.
Fig. 7 is a di2sr~m sho~ing the structure of the Font Control File in the Font r ile of ~iy. 6.
Fig. 8 is a diagrzm showing the structure of ~he Charac~er ~idth ~ile in the Font File of ~ig. 6.
~ig. 9 is a àiagram snowing how the character data contained in the '~oni ~ile is scaled.
Fig. 10 is z diagra~ showins the struc.ure of ~he outline data words contained in the Ou~_line Data ~ile in the ~ont File of Fig. 6.
~is. 11 is 2 diagram shohing how the Outline Data File is arransed on a ,-loppy disk.
Fig. 12 is a diagram showing the structuxe of the header and outline data contained in the Outline Data File of Fig. 11.
Fig. 13 is a di2sram showing the input code structure for those termin21 ele~ents which are to be sent from the Input System fcr a font data transfer.
Fig. 1~ contains ~low diagrams showins the basic opexation of the Data ~lanasement Subsystem and ~he Outline Conver~e- Subs~stem~
~ig. 15 is a 'lo~ diagram for the building OL
data in the Da'a R~5 in the Data ~anagement Subsvstem~

c ~, 'j ,:

, , : ,;
~, .-.: .

~L3~ 7 Fig. 1~ is a diagram of the layout of data in the Data RAM.
Fig. 17 is a diagram showing the structure of the outline data in the Data RAM.
Fig. 18 is a diagram showing the parameters used in the basic calculation carried out by the Output Data Processing System.
Fig. l9A (appearing on the same sheet of drawings as Fig. 17) shows a control IV byte.
Fig. l9B is a diagram showing the data and control inputs for the hardwired processor in the Outline Converter Subsystem.
Figs. 20A and 20B are functional block diagrams of the hardwired processor including the output data (raster line) storage buffers.
Fig. 21 is a block diagram showing the principal sections of the hardwired processor.
Fig. 22 is a block diagram of the data and control buffers and storage section of the hardwired processor of E~ig. 21.
Fig. 2~ is a block diagram of the output data buffer address computation section of the hardwired processor of Fig. 21.
Fig. 2~ is a block diagram of the output data buffers and video logic section of the hardwired processor of Fig. 21.

DESCRIPTION OF THE PREFERRED EMBODIMENT
The preferred embodiment of the present invention will now be described with reference to Figs. 1-24 of the drawings. Identical elements shown in the various figures are labeled with the same reference numerals.
The overall system according to the present invention is shown, in block form, in Fig. 1. This general system is divided into an Input System which supplies instructions, character information and font data from separate sources 30 and 32, and an Output Data Processing System 34 which drives a Character Imaging System 36.
The input device 30 may be a paper tape or magnetic tape reader, a separate computer, an input termina] with a keyboard and CRT screen, or a data transmission channel such as a telephone line. This input device 30 supplies to the processing system 34 digital data defining the identity r form, s ze and placement of characters to be typeset. As used herein, the term "identity" of characters is intended to mean the name of each particular character chosen, such as upper case "A", lower case "a", upper case "B", numeral "5"; semi-colon ";" and the like. This identity is given by an ASCII or TTS code. As used herein, the term "form" is intended to designate the shape of each character; i.e., the particular font and the amount and direction of slant. The term "size", as used herein, is intended to designate the size in both khe X direction t"set width") and in the Y direction ("point size") of each character. Finally, the term "placement", as used herein, is intended to mean the coordinate [X,Yj position of the character on the page to be typeset~ In this particulax embodiment, the input device 30 designates the X position and Y position of the upper left corner of the "em" square of at least the first character on the page. Subsequent characters are positioned , ... .... , ,, ~ , .. . ..... , . ..... ., , .. .. .. . ~.. , ,,- :;,;,, ~; ,-; ,-, :; ::: : , -.. .. ...
. : . :: ~ .. :: :.

~.~3~ 7 in relation to the immediately preceding character if no placement information is given.
In addition to the identity, form, size and placement of characters, the inpu-t device 30 may also supply page variant information; that is, "global commands"
which apply to all or a group of characters on a page.
Examples of such commands are "wrong reading", which effects a left-ri~ht mirror image on the page by flipping the X positions of all characters, and "re~erse video"
which effects a color reversal for an entire page. For example, with reverse video a page may be imaged as white on black, rather than black on white.
Commands from the input de~ice 30 may also effect a color reversal for a section of a page, such that only a lS rectilinear portion of the page is white on ~lack rather than black on white.
The font storage unit 32 is essentially a floppy disk reader which may be a part of the input device 30. This font storage unit supplies to the Output Data Processing System 34 digital data defining the font of characters previousl~ selected by the input device 3~. This "second"
digital data (as distinguished from the "first" digital data supplied by the input device 30) defines the contour of each character of a font with respect to a normalized encoding set of first and second coordinates. In partic-ular, this second digital data defines the profiles or black-white boundaries of each character. If a "profile"
is considered to be simply one boundary of a character, it will be seen that any "dark" portion of a character (if the character is dark on a light background) must lie between two profiles ~outer boundaries or edges) of the character~ By defining all the profiles of the char-acter, with respect to a coordinate set, the "contour", outline or shape of the character is completely defined.
One aspect of this second digital data which defines the contour of each character of a font is that the character oontours are defined in terms of a normali~ed : ' ; :' " , ~

.

set of coordinates, such as the X-Y coordinates of a Cartesian coordinate set. The term "normalized", as used herein, is intended to mean that the definition of a character in terms of the coordinate set is only related to any given absolute size or to the final size of the character when it is imaged. Thus, the digital values defining a character in this normalized set of coordinates are the values from which the character is scaled, up or down, to the final output resolution.
Unless the scale factor just happens to equal 1 (a unique situation), the character will be defined with a different resolution than the final output.
A~ an example, the output data processing system 34 which will he described in detail hereinbelow is lS capable of scaling characters with point sizes in the range of 3-130, an expansion factor of 43 to 1. Not~
withstanding this range of point sizes, the contour of each character is defined only once with respect to the normalized encoding set of coordinates.
The Output Data Processing System 34 receives the first digital data defining the identity, form, size and placement of characters to be typeset and the second digital data defining the contour of each character of the chosen font and produces third digital data defining the charac~er boundaries intersecting a raster line. This third digital data is stored in one or more raster line buffers, also located within the Output Data Processing system, in readiness for the Character Imaging System 36.
The raster line storage buffer(s) are preferably formed of a plurality of binary memory elements, each storing a single binary digit corresponding to a respective, unique raster point along the raster line~ The line buffer~s) store sufficient raster (third digital data3 for a portion of the raster line extending the width of at least several ~haracters~ In fact, the line buffer(s) preferably store sufficient data to define an entire raster line a~3~

' ': ,~ .: ,: ', ~

31 ~ 3S1~1~i'7 -14~
extending the complete width of the output print medium which may, for example, be at least the size of a conven tional typewritten page.
The information stored in the raster line storage buffer(s) is translated into a raster line image by a Character Imaging System 36 connected to the Output Data Processing System 34 This Character Imaging System creates an image on a print medium for the particular raster line defined by the information stored in the raster line storage buffer(s). A drive mechanism is also provided in the Character Imaging System for moving the print medium in a direction transverse to the direction of the imaged raster line.
The Character Imaging System may comprise some means for creating an image ~or an entire raster line at once. However, the Character Imaging System preferably includes a device, such as a CRT or laser source, for generating a scanning beam and some means, such as beam deflection circuits or a movable mirror, for moving the Z scanning beam across the print medium in a scan line.
One such one-dimensional scanner is illustrated in Fig. 2.
Fig. 2 shows a laser source 38 which produces an optical beam 40. The beam passed through a light modu-lator 42, such as an acousto-optic modulator, which switches the beam on and off by a video control signal 44. This signal is generated in the Output Data Proces-sing System 34 as a time function of the third digital data stored in the raster line storage buffer~s). The intermittent beam 40 which emerges from the shutter is passed to a movable mirror 46 which repetitively tilts back and forth about an axis 48 parallel to the plane of the mirror and perpendicular to the plane of the drawing. The mirror 46 is driven by a galvanometer motor which moves the mirror at an essentially constant angular speed in one direction, rapidly returns the mirror to its initial position, and repeats this scanning operation upon receipt of the next trigger pulse on line 50.

. . . .. . ~, .... , ~ . ~ .. .

.~ ~ , - ' " ,;' :: .
. - :
~ .:

~3~

The beam is reflected from the mirror 46 and passes through a field-flattening optical system 52 which focuses it on a suitahle recording or print medium 54. The purpose of the field~flattening optical system, and a specific system whi~h may be used with the laser recorder shown in Fig. 2, is described in the U.S. Patent No. 3,881,801 issued May 6, 1975 to Edwin W. Bechtold and entitled "Optical Scanning System". The print medium $4 used with the laser recorder of Fig. 2 may be a photographic ox electrophotographic film or paper which is sensitive to the particular light frequency of the laser beam. This print medium is moved in a direction transverse to the direction of the beam scan line, preferably during the retrace movement of the mirror 46. The print medium is moved by an advance roller 56 and drive motor 58 in response to a trigger pulse on line 60. This trigger pulse is similarly generated by the output data processing system 34 as a time-shifted version of the trigger pulse on line 50.
Generally, then, it may be seen that the function of the Output Data Processing System is to convert the ; first and second digital data received from the input device 30 and the font storage unit 32 into third digital data which may be conveniently used to control the Char-acter Imaging System 36. The format of the first and second digital data received by the Output Data Proces-sing System, as well as the structure of the Output Data Processing System will now be described in detail with reference to Figs. 3-23 of the drawings~ This description has been organized into separate sections for convenience of the reader as set forth in the Index below.

INDEX
1. OUTPUT DATA PROCESSING SYSTEM
1.1 General 1.2 Data Management Subsystem 1.3 Outline Converter Subsystem i .

. ,' . .,' 35~6~7
2. FONT DATA DESCRIPTION
2.1 G~neral 2.2 Font Control File 2.2.1 Number of Characters 2.2.2 Number of Sectors 2.2.3 Numher of Characters in 16K
2.2.4 Number of Characters in 32K
2.2.5 Number of Characters in 48K
2.2.6 Last RAM Number of Sectors 2.2.7 Y MIN
2.2.8 Y MAX
2.2.9 BJ for UC Accents : 2.2.10 Italic Accent Shift #O
2.2.11 B~/Display Superior 2.2.12 BY/Autofraction Mumerato:r 2.2.13 BJ/Inferior ~Inf.) on Superior ~S~Ip.) 2.2.14 BJ/Inf. on Inf. --2.2.15 BJ/lst Order Sup.
2.2.16 BJ/lst Order Inf.
2.2.17 BJ/Sup. on Sup.
2.2.18 BJ/Sup. On Inf.
2.2.19 Thin Space Width 2.2.20 En Space Width 2.2.21 Em Space Width 2.2.22 BJ/Autofraction Denominator 2.2.23 Serial Number 2.2.24 Italic Accent Shift #l 2.2.25 Italic Accent Shift #2 2.2.26 Italic Accent Shift #3 2.2027 Italic Accent Shift #4 2.2.28 Small Cap %
2.2.29 Spares 2.2.30 Font Layout Number 2.2.31 Master Font Number 2.2.32 Font Description .~

- : i - "

-``-` ~135~16?7 2~2.33 Extended Font Description 2.2~34 Random Fill 2.2.35 Chain Address 2.3 Character Width File 2.3.1 Unit Width 2.3.2 Flag Bits 2.3.3 Chain Adaress 2.4 Character Digitization 2.4.1 Character Definitions 2.4.2 Scale 2.4.3 Outline Data Words 2.4.4 Outline Data File Structu:re 2.4.4.1 FSIZE
2,4,4.2 CINDEX
2.4.4.3 BNDFNT
2.4.4.4 Sector Filler 2.4.4.5 Header and Outline Data :~-2.4.4.6 Header File 2.4.4.7 Outline File 2.4.4.8 CHKSUM
2.4.5 Profile Strings 2.4.5 Miscellaneous 2.5 Font RAM Format 2.5.1 In-RAM Table 2.5~2 In-Seg Table
3. PAGE DATA DESCRIPTION
3.1 Page Definition 3.2 Page Varia~ts 3.2.1 High Resolution 3.2.2 Proof Paye 3.2.3 Page Width 3.2.4 Wrong Reading 3.2.5 Reverse Video 3.2.6 Line Rule ..~

.

~L3~
4. INPUT SYSTEM INTERFACE SPECIFICATION
4.1 General 4~1.1 Page Data 4.1.2 Font Data 4.1.3 Other Data 4.1.4 Notation 4.1.4.1 " " Terminal 4.1.4.2 ( ) Non-Terminal 4.1.4.3 { } Optical Repeats 4.1.4.4 / Either-Or 4.1.4.5 * Once only 4.2 Page Data 4.2.1 Page Data Structure 4.2.1.1 Character Sets 4.2.1.2 Reverse Video Sets 4.2.1.3 Line Rule Sets 4.2.2 Input Codes/Terminal Eleme~ts 4.2.2.1 (SEG#~ = I'SE~"
4.2.~.2 (YPOS) = "YPOS"
4.2.2.3 (~POS) = "XPOS"
4.2.2.4 tYLOW) = "YLOW"
4.2.2.5 [FONT) = "FONT"
; 4.2.2. 6 (CHAR) = "CHAR"
4.2.2.7 (PT SIZE) = "PT SIZE"
4.2.2.8 (SET WIDTH) = "SET WIDTH"
4.2.2.9 (LR CODE) = "LR CODE"
4.2.2.10 (SLANT~ = "SLANT"
4.2.2.11 (RV CODE) = RV CODE"
4.2.2.12 (YEND) = "YEND"
~XEND) = "XEND"
4.2.2.13 "END SEG"
4.2.2.14 "END PAGE"
4.3 Font Data 4.3.1 Font Data Structure 4.3.2 Input Codes/Terminal Elements 4.3.2.1 (CHAR) = "CHAR" ::
4.3.2.2 (#OUTLINES~
4.3.2.3 "END FONT"

.

~ L35!36~
5. DATA RAM
5.1 General 5.2. Data ~AM Building 5.3 Data RAM Format 5.3.1 Page Structure 5.3.2 Line Segment File 5.3.2.1 Character Set 5.3.2.2 Reverse Video Set 5.3.3 Outline File 5.4 Terminal Elements 5.4.1 [OUTLI~E ADDRESS] = I'Outline Address"
5.4.2 EYPOS] = "YPOS"
5.4.2.1 [ZERO DATA WORD~
"ZERO DATA WORD"
5.4.3 [YACC HIGH] = "YACC HIGH"
5.4.3.1 [YACC LOW] = "YACC LOW"
5.4.4 [XPOS] = "YPOS"
5.4.5 [NULL] = "NULL"
5.4.6 [~Ys HIGH] = " Ys LOW"
5.4.7 [~Ys LOW = " Ys LOW"
5.4.8 ESc~LE HIGH] - "Scale High"
5.4.9 [SCALE LOW] = "Scale Low"
5.4~10 [BLJ] = "BLJ"
5.4.11 [LINK HIGH] = "Link High"
5.4.12 [LINK LOW] = "Link Low"
5.4.13 [RVY HIGH] -- "RVY High"
[RV~ LOW] = "RVY Low"
[RVX HIGH] = "RVX High"
lRVX ~OW] = "RVX Low"
5.4.14 [NEW PAGE] = "New Page"
5.4.15 [SLANT OFF] = "Slant Off"
[SLANT t7] = "Slant ~7"
[SLANT -7] = "Slant -7"
[SLANT ~14] = "Slant +14"
[SLANT - 14] = "Slant ~14"
5.4.16 [END Data] - "End Data"

~.~

,,; , . . . ~ ~ ..... . . .. . .. .. ..

L351~6~
.

5.4.17 [END Page] = "End Page"
5.4.18 [YLM~T] = "Y limit"
5.4~19 "Font Call"
6. OUTLINE ALGORITHM
6.1 Basic Outline~Intersections 6.2 Boundary Bit And On/Off Buffer Storage 6.3 I,ong Verticals 6.4 Steep Slopes 6.5 Shallow Slope 6.6 Squared Outline Shapes 6.7 Extrapolation 6.8 Flare Bit 6.9 Extrapolation Cancel Bit 6.10 Slant 5.11 Reverse Video 6.12 Line Rule 6.13 Wrong Reading
7. HAXDWIRED PROCESSOR
7.1 General 7.2 Input 7.3 On/off Solving 7.4 Reverse Video Input 7.5 Raster Line Data Storage Buffers 7.5.1 ON/OFF Buffer Input 7.5.2 Reverse Video Buffer Input 7.5.3 Buffer Output 7.6 The HWP Structure 7.6.1 Basic Sections 7.6.2 Data and Control Buffers and Storage 7.6.3 Output Data Buffer Address Computation 7.6.4 Output Data Buffers and Video Logic
8. COMPUTER PROGR~MS
8.1 General .,~

, 31L~35~

1. OUTPUT DATA PROCESSING SYSTEM
1.1 Genexal: The Output Data Processing System is xesponsible for computing the horizontal coordinates, on the page to be typeset, at which the laser scanning S beam must be turned on or off for each and every raster line on the page. Its computation is based upon the particular raster line which is required (depth down the page); on the parti~ular characters (i.e., identity) `
which are to be set at that point on the page; and on the form and size as well as the shape of these characters as defined by the Input System.
Since the conversion from the "second" digital data, defining the contour of the characters to be set, in to raster data is complex, and since the raster output form requires repeated, multiple character data access, the time required for computation of each raster line becomes a significant factor in the system architecture.
In an effort to minimize the computation time, the Ou~put Data Processing System has been divided into two major subsystems:
(1) The Data Management Subsystem (DMS) and, (2) The Outline Converter Subsystem ~OCS).
A Z80A microprocessor is used in the former and an 8X300 -~
(or "SMS 300") microcontroller with a hardwired processor is used in the latter.
Fig. 3 shows the Output Data Processing System in block form. This system receives the first digital data defining the identity, form, size and placement of the characters to be typeset as well as the second digital data defining the contour of each character from a common Input System. The Input System operates with a programmed 8080 microcomputer 62 supported by a RAM 64 of suitable size. The microcomputer and memory are arranged on a 8080 bus 66 as are two floppy disk read/write units comprising floppy disk controllers 68 and the disks 70 themselves.

;,~,' J-..

,:': ~ :~ - ' ~ , .:

~:~3~8~7 One disk 70 contains the text information or "first"
digital data, while the other disk contains the font information or "second" digital data. The bus terminates in an IOP80 interface 72 which communicates with an inter-face 74 in ~he Output Data Pro~essing System. This latter interface is arranged on a Z80A bus 76 as are the Z80A
microprocessor 78 and four memory units 80, 82, 84 and 86 of the Data Management Subsystem.
The memory unit 80 serves to store the program for the Z80A microprocessor 78 and is a workspace for the microprocessor computations. The memory 82, called a "font RAM", stores the second digital data defining the characters of the chosen font. This data is processed and supplied in a convenient form, which will be described in detail below, to two memories 84 and 86 called "Data RAM's".
The Data RAM's 84 and 86 are "shared" bv the Data Management Subsystem and the Outline Converter Subsystem.
Basically, the Z80A microprocessor supplies data to these RAM's and the 8X300 microcontroller 88 receives and analyzes this data, under control of a program stored in another memory 90, and supplies pertinent data to a hard-wired processor 92. This hardwired processor converts the data into the so-called "third" digital data which is stored in three raster line buffers. The information contained in these buffers is then converted into a video control signal by an interface 94 and supplied to the laser recorder in synchronism with the movement of the scanning beam.
1.2 Data Management Subsystem: The circuit blocks and their interconnections employed in the Data Management Subsystem are shown in Fig. 4. In general, the responsibility of the Data Management Subsystem is to organize and supply data to the memory shared with the Outline Converter Subsystem so as to facilitate rapid processing by the Outline Converter Subsystem.

.

: ~ , - ~ :
. ~ :

~3~;86~7 More specifically, the Data Management Subsystem executes the following process steps:
(a) When ready, read the nex~ required typographical "Line Segments" into a Data RAM memory file from the text floppy disk.
(b) Transfer the font data from the font floppy disk to one of the font RAM memories for a "font data file".
(c) Set-up an "outline file" in the Data RAM
for the Outline Converter Subsystem. This file contains the X and Y start points of each outline of each character required, as well as "vector" data defining the contour of each character.
(d) Revise the "line segments file" by replacing the character number with the location of the outline file.
(e, Repeat the above steps until no memory storage area is available for the line segments file or the outline file.
(f) Pass control to the Outline Con~erter Sub-system. Restart on the other Data RAM.
1.3 Outline Converter Subsystem: The integrated circuits and interconnections forming the Outline Converter Subsystem are shown in FigO 5. Basically, the responsi-bility of the Outline Converter Subsystem is to con~ert the outline or contour data stored in the shared Data RAM into horizontal stroke data for the laser recorder.
More specifically, the Outline Converter Subsystem execut~s the following process steps:
(a) Read the identifying data and size data for the first line segment.
(b) Read the distance from the margin to the left side bearing (LSB). Store in an X register.

.:

. , j. ~ .
,.
: ., ~L~3~1~6~

(c) Read the outline start data for the next character, compute the distance from the LSB
o the character to the outline. When nec-essary, fetch new outline vector data to update the X,Y start data.
(d) Output the sum of this value and the current X value (located in a "X" register"~ to the appropriate raster line buffer.
(e) Read the next outline(s); repeat step (c) until all outlines have been computed at the level on the page being set.
(f~ Read distance to the LSB of the next char acter; add this to the X register.
(g) Repeat steps ~c) through (f) until all characters in the line segment have been computed and output. Then repeat steps (a) through (f) for all other line segments on this level.
(h) When all line segments on this level have heen computed, transfer control of the raster line buffer(s) to the laser driver system, and staxt storing data in an alternate ~next) raster buffer for the raster line 1/lOth point down the page.
2. FONT DATA DESCRIPTION
2.1 General: ~he second digital data defining the characters of each desired font is stored on the font floppy disk. This data is of the "outline" type; that is, it defines the contour of each character with respect to a normalized encoding set of coordinates. In order to compress data, not all the character edge points on the resolution matrix are encoded.

~r - - ~, : - .,: : : : , ,.: ....

~ 3~867 Because the floppy disk is the principal storage medium for fonts, the font data has been structured to correspond to the size of the sectors of the disk. Three separate subfiles comprise a font file as illustrated in Fig. 6:
1. Font Control File;
2. Character Width File; and 3. Outline Data File.
The Font Control File contains all the data which describes the Eont as an entity, such as a font des-cription, serial number, number of characters, base jump and fixed space data, etc. This file is totally contained in one floppy disk section (125 words).
Section 2.2 of this specification describes the Font Control File in detail.
The Character Width File contains the width of each character and other character-related data required by the input System. This file is contained on one or more full sectors, depending upon the number of char-acters per font. Section 2.3 of this specification describes the Character Width File in detail.
The Outline Data File contains the starting coordinates of character outlines, the vectors that define the shape of the outlines, character control words and file size controls. This file is contained on one or more full sectors, depending upon the number of characters and the shape complexity of the characters.
Sec~ion 2.4 of this specification describes this file in detail.
When the Data Management Subsystem (DMS) requires font data, the appropriate font data is read from the floppy disk by the Input System and transferred to Font RAM 82 by the DMS. Section 2~5 of this specification describes the structure and contents of data that has been transferred to the Font RAM.
2.2 Font Control File- The Font Control File contains all the data which describes the entire font or .~ .

:- ": ,, , ,, . : , . :: . :

: ~

which is applicable to multiple characters in the font.
This file is contained on one floppy disk sector, and therefore it is 125 words long. The structure of this file is shown in Fig. 7. The elements of this file, indicated in Fig. 7, are described below:
2.2.1 Number of Characters The most signi-ficant byte (MSB) of word 0 defines in binary the number of characters in the font.
2.2.2 Number of Sectors: The least significant byte (LSB) of word 0 defines in binary the number of floppy disk sectors required by the Outline Data File.
This can be utilized by the Input System to allocate disk space if additional fonts are added.
2.2.3 Number of Characters in 16K: The MSB
of word 1 defines in binary the number of characters contained in the first 16,384 bytes of the Outline Data File.
2.2.4 Number of Characters in 32K: The LSB
of word 1 defines in binary the number of characters contained in the first 32,768 bytes of the Outline Data File.
2.2.5 Number of Characters in 48K: The MSB of word 2 defines in binary the number of characters con-tained in the first 49,15Z bytes of the Outline Data File.
2.2.6 Last RAM Number of Sectors: The LSB
word 2 defines in binary the number of Outline Data File floppy disk sectors that must be transferred for the R~M
that would contain the last character in the font. This will be a number between 3 and 68, and can be utilized by the Input System to control font data transfer to the ODS.
2.2.7 Y MIN: Word 3 defines in binary the minimum Yn value in data resolution units (DRU's) in the entire Outline Data File. This will be utilized by the Input System to set the Y position (YPOS) for each line segment.

i; . . . .
.:-: . . . :: :: : . . :

3L~3~

2.2.8 Y MAX: Word 4 defines in binary the maximum Yn value in DRU's that will result from adding each outline dy's to its correlated Yn. This is the lowest point on all characters in the font, and will be utilized by the input system to set the lowest point (YLOW3 for each line segment.
2.2.9 BJ for UC Accents: The MSB of word 5 defines the vertical displacemant that will move a centered piece accent from its nominal lower case position to the proper location for use with upper case characters. This is an unsigned binary number in 1/432nd's of an em.
2.2.10 Italic Accent Shift ~0: The LSB of word 5 defines the horizontal displacement to be made when a lower case piece accent is used on upper case characters.
This is nominally only required on italic fonts, and the shift is nominally to the right. This is the default value if an alternate Italic Accent Shift is not specified. The shift value is expressed as a 7 bit unsigned value in DRU's. The eighth, most significant bit is a sign bit, set to 0 for a right shift and set to 1 for a left shift.
2.2.11 BJ/Display Superior: The MSB of word 6 defines the base jump (BJ) to align display superior numerals, in accordance with the bit definition of paragraph 2.2.9. It is nominally equal to half the height of the numerals in the font, and is nominally utilized with 50% point size reduction to achieve top aligning superiors for prices, etc.
2.2.12 BY/Autofraction Numerator: The LSB of word 6 defines the base jump (BJ~ to align the numerators of autofraction numerals, in accordance with the bit definition of paragraph 2.2.9. It is nominally equal to 40% of the height of the numerals in the font, and is nominally utilized with 60% point size reduction to achieve top alignment.

;i c i~

'. ' ! . .~ , , ' . ' ' ' :

., . ' ";; ` , ' ' ' ~' '., :. ,' . . ~, :. .. ' i ' '', '. ~, . . ' .

~3~1~6~7 2.2.13 BJ/Inferior (Inf.) on Sup~rior ¦Sup.):
The MSB of word 7 defines the base jump to ali~n an inferior onto a first order superior. The base jump (BJ~
value is expressed as a 7 bit unsigned value in units of 1/5 of an em (eight DRU's). The eighth, most sigrlificant bit is a sign bit, set to 0 if an upward displacement is required and set to 1 for downward displacement. It is nominally equal to half the height of the numerals in the font, and is nominally utilized with 4/9th's point size reduction.
2.2.14 BJ/Inf. on Inf.: The LSB of word 7 defines the base jump to align an inferior onto a first order inferior, in accordance with the bit definition of paragraph 2.2.13. It is nominally equal to downward half the height of the numerals.
2.2.15 BJ/lst Order Sup.: The MSB of word 8 defines the base jump to align a first order superior, in accordance with the bit definition of paragraph 2.2.13. It is nominally equal to the 7/12th's of the numeral height, and it is nominally utilized with 2/3rd's point size reduction.
2.2.16 BJ/lst Order Inf.: The LSB of word 8 defines the base jump to align a first order inferior, in accordance with the bit definition of paragraph 2.2.13.
It is nominally equal to downward 3/12th's of the numeral height.
2.2.17 BJ/Sup. On Sup.: The MSB of word 9 defines the base jump to align a superior onto a first order superior, in accordance with the bit definition of paragraph 2.2.13. It is nominally equal to the numeral height.
2.2.18 BJ/Sup. On Inf.: The LSB of word 9 defines the base jump to align a superior onto a first order inferior, in accordance with the bit definition of paragraph 2.2.13. It is nominally zero.

- - . . . ................ . . . . . ........... . .. . . . ..
, . : :;, . -. .

~3~i8~;7 ` -29-2.2.l9 Thin Space Width: The MSB of word lO
defines the width assigned to thin spaces for this font.
It is expressed in 1/54th's em, and is nominally the same as the period width.
2 2.20 En Space Width: The LSB of word lO
.
defines the width assigned to "en" spaces for this font. It is expressed in 1154th's em, and is nominally the same as the width of numerals.
2.2.2l Em space Width: The MSB of word ll defines the width assigned to em spaces for this font.
It is expressed in l/54th's em, and is nominally 54 units.
2.2.22 BJ/Autofraction Denominator: The LSB of word ll defines the base jump to align the denominator lS for autofraction numerals. The jump value is expressed as a 7 bit unsigned value in DRU's. The eighth bit is a sign bit, set to 0 if an upward displacement is required and set to l for a downward displacement.
2.2.23 Serial Number: Word 12 defines in binary a number that identifies the number of times that this Master Font Number has been reproduced.
2.2.24 Italic Accent Shift #l: The MSB of word 13 defines the first alternate italic shift, in accord-ance with the bit definition of 2.2.lO. The value is additive to the default values (zero or 2.2.lO).
2.2.25 Italic Accent Shift #2: The LSB of word 13 defines the second alternate italic shift, in accord~
ance with the bit definition of 2.2.lO. The value is additive.
2.2.26 Italic Accent Shift #3: The MSB of word 14 defines the third alternate italic accent shift, in accordance with the bit definition of 2.2.lO~ The value is additive.
2.2.27 Italic Accent Shift #4: The LSB of word -14 defines the fourth alternate italic accent shift, in accordance with the bit definition of 2.2.10. The value is additive.
~ .

. . . : . `, ' .,,, ; ~ . ' ' ' . : :
'. ' `' . ' :, . , ,. : . .- '; . .. :' ' . ::

~3;~

2.2.28 Small Cap ~: The MSB of word 15 defines the ~ reduction in point point size to derive a small cap from a drawn upper case letter. It is expressed as an 8 bit binary fraction.
2.2.29 Spares: Words 15 through 17 inclusive are spare words with zero fill.
2 2 30 Font Layout Number: Words 18 and 19 define in ASCII code a font layout number that correlates the specific characterform in the font with their sequential position in the Character Width File and the Outline Data ~ile Index. Each unique font layout number identifies a unique set of characterforms in a unique sequence.
2.2.31 Master Font Number: Words 20 and 21 define in ASCII code the font master numher that uniquely defines the fonts:
Face Name e.g. Times, Helvetica Style e.g Roman, Italic, Bold Design Size e.g. 8 pt., 12 pt., 18 pt.
Layout Which specific characterforms ISee 2.2.30~
2 2 32 Font DescriptionO Words 22 through 29 .
inclusive are an ASCII coded sequence that forms a 16 character title describing the font face name, style, design size, etc.~ in an abbreviated fashion that enables ready identification of the font. Spaces are used for fill if required.
2.2~33 Extended Font Description: Words 30 through 77 inclusive are an ASCII coded sequence that forms a 96 character title describing fully the font.
Spaces are used for fill if required.
2.2.34 Random Fill: Words 78 through 124 in-clusive are filled from a random number generator.
2.2.35 Chain Address: Word 125 contains the chain address (track and section) of the first sector of ~:~3S~6~

the character Width File.
2.3 Character Width File: The Character Width File contains data applicable to indivi,dual characters which are needed by a composition system.
The Output Data Processing System makes no use of this file. Fig. 8 illustrates the structure of this file.
Two bytes are required to define the data for each character; up to 125 charactexs may be described in each sector. Any unrequired bytes are filled with zeros. ; ' All character width groups must be sequenced to correspond with the sequence of characters in the outline index.
2 3 1 Unit Width~ The first byte of each ~ v character width group defines in binary the unit width ~' in l/54's of the normalized em.
2.3.2 Flag Bits: Designated bits in the second byte of each character width group define specific characteristics of the'character. For example/ flag bit 6 is the B bit, which defines that the character is a piece accent that shall not be jumped.
2.3.3 Chain Address: Word 125 (Bytes 250 and 25-1) contain the chain address (track and sector, respectively) of the next Character Width File sector or the first sector of the Outline Data File.
2.4 Character Digitlzation 2.4.1 Character Definitions: All characters are digitally encoded or "digitizedl' for an outline, relative vector decoding system, where all character outlines are assumed to be closely approximated by straight line elements. Such'a system is disclosed in the commonly-owned U.S. patent application Serial No. 905,451, referred to above.
All characters are defined as a multiple series of "curves". Each curve describes a vertical outline edge with the following components:
(a) An X,Y coordinate defining th~ highest point of the curve within an em square;
(b) A white-to-black or black-to-white bound;
c : , . , , ::
-:. : . ,. ~,. . - , ~ .

8~

(c) A series of straight line segments, defined by a series of data bytes which define the slope and length of each seqment of the curve; and (d) Vector direction ~downward and left-to-right or right-to-left) of the segments.
Defining the chara¢ter consists of listing all the curves which outline the character. rrhey are listed in descending order; that is, the curves that s~art at the top of the character are listed first and the bottom last.
2.4.2 Scale: The principal unit of measure-ment is the Data Resolution Unit (DRU) which is defined as 1/~32 of the traditional em. An extended em square is 576 x 576 DRU's.
Position 0,0 is located at the intersection of the left side bearing (LSB) and the top of the extended em square as illustrated in Fig. 9. Therefore, X (left-right) values can be positive (positive is right) or negative (if a character bound extends to the left of the left side bearing lLSB), but Y (up-down~ values will always be positive (positi~e is down).
2.4.3 Outline Data Words: Each outline will be defined by 3 or more data words: a Y word, an X word, and one or more outline (vector/control) bytes. The format of these data words is shown in Fig. 10. The various parts of the coding shown in Fig. 10 are speci-fied below:
Y Data Word Components:
Yn - This data defines the vertical position of a start point from the upper edge of the extended em.
K -- Undefined.
X Data Word Components:
Xn - This data defines the horizontal position of a start point. The left side bearing (LSB) is defined as 0.

~ ::

: . . , ,. ., .: . : ; .:

1~L3~P~

-~ -33-X Sign - The sign bit defines the displacement direction of Xn with respect to the LSB.
L Bit - The L Bit defines the direction of the dx of the first vector. A one defines a left pointing vector, a zero def:ines right pointing~
F Bit - The F Bit or "Flare Bit" deines which vector slope will be used by the decoder in extra-polating the character outline in the region of the grid immediately above the line Yn.
E Bit - The E Bit or "Extrapolation Bit" defines whether extrapolation is or is not used above the start point grid line Yn.
B Bit - The B Bit is the "Boundary Qn/Off Bit" and defines whether the outline is a left-side (on~
boundary or a right-side (off) boundary.
Vectors/Controls Data Byte Components:
Vectors:
dydx - For all values of dy greater than 0, this byte defines the slope of the vector outline of the character from the start point (Xn Yn), or from the last vector end point. All vectors are sequenced serially in the same sequence that they occur on the character outline.

Controls:
For all values of dY=0, this byte defines a control code. The specific control is dependent upon the value of dx (in hexadecimal notation) as indicated below:
0 - End of outline.
1 - Reverse the dx direction for the next vector.
2 - Defines that ther~ are no displacement vectors applicable to the start point defined by the preceding Y and X data Words. This control is always followed by a zero byte to produce an "End of Outline" control code.

- . - , ~, .
.: . ' , . . . ~ , .,, ~ ~

113~B~7 ~; -34-3 - Defines the vector with a horizontal displace-ment of 0 DRU's (a vertical vector~ and a vertical displacement greater than 30 DRU's.
The next data byte defines the binary value of the vertical displacement. The data byte has a resultant range of vertical displacements of 0 to 255 inclusive~ but :Lt is not utilized between 0 and 30 inclusive. (Example: The two bytes 0/3, 2/6 describe a composite vector that goes vertically down 38 DRU's.) 4 - Defines a vector with a horizontal displacement of 1 DRU and a vertical displacement of 30 DRU's.
- Defines a vector with a horizontal displacement of 1 DRU and a vertical displacement of 120 DRU's.
15 7 through C - Undefined D - Defines a rectilinear outline change with a ver-tical displacement of 1 DRU and a horizontal displacement of up to 255 DRU's. The next data byte defines the binary value of the horizontal displacement. (Example: The two bytes o/D, 2/6 describe an outline made up of 1 DRU vertical and a 38 DRU horizontal displacement.) E - Defines a rectilinea~ outline change with a vertical displacement of 1 DRU and a horizontal displacement greater than 255 DRU's. The next data byte defines the binary value of the hori-zontal displacement in excess of 256. (Example:
The two bytes o/E, 2/6 describe an outline made up of a 1 DRU vertical and a 294 DRU horizontal displacement.~

'~

~3~ 7 F - Defines a shallow slope vector with a vertical displacement of 1 DRU and a horizontal dis-placement greater than 15 DRU's. The next data byte defines the binary value of the horizontal displacement. ~Example: The two byt~s O/F, 2/6 describe a composite vector that goes over 38 horizontal DRU's and down one DRU.) 2.4.4 Outline Data File Structure: The Outline Data File resides on the font floppy disk, and stores a memory image of the data that will be loaded into one or more Font RAMs. The file occupies one or more sectors on the disk, and accordingly it is modulo 125 words long. Fig. 11 illustrates the file structure.
If the total font outline data is less than 16,334 bytes, then the Outline Data File will contain:
1. FSIZE word (No. of bytes in RAM) 2a. CINDEX (Character Index) 2b. Header and Outline Data 3. ENDE'NT (Zero word) 4. Sector filler Items 2a and 2b comprise the RAM memory image, , and may not exceed 16,384 bytes.
If the total font outline data exceeds 16K
bytes, the File will contain: ;
1. FSIZE word 2ab. CINDEX, Header and Outline Data (16,384 bytes max.) 3. FSIZE word (No. of Bytes in next RAM) 4. Header and Outline Data (16,384 bytes max.) 5. ENDFNT
6. Sector filler Items 3 and 4 may be repeated as required if the total font outline data exceeds 32,768 or 49,152 bytes.

, ' ~ ": ', , ' ' ' ''`, ' '' ~

~a~a35~

The data will occupy the Font RAM beg~nnlng at address "4000 and may ~ill through to address "7FFF (where the inlt~al quotation mark (") indi-cates a hexidecimal number. Addresses in the headers will be absolute; addresses Ln the CINDEX
will be offset absolute ("OO00 through "3F~F) with the two MSB's flagging mult~-RAM locations~
The specific contents of the Outline Data File are as follows:
2.4.4.1 FSIZE~ This word def~nes in binary the number of bytes to be loaded into a Font RAM.
The count does not lnclude the FSIZE word or the ENDFNT word. The count for the first Font RAM
includes the entire CINDEX and all header and outline data.
2.4.4.2 CINDEX: The character index is variable length and consists o~ a character count (CCOUNT) and a relative addressed index.
The CCOUNT is one byte defining in binary the number of characters in the font, and therefore it also defines the word length of the index. It will be a number between 1 and 255 inclusive. The RAM addre~s location of CCOUNT is "4OOO.
The index contalns a one word entry for each character in the font. Each entry is the offset absolute address of the YCOUNT byte for the character (see section 2~4.4.6 below). The two most significant bits of word indicate in binary the RAM that contalns the character, where OO is the RAM that contains the index. The 14 least significant bits contain the offset RAM address (the absolute RAM address less "4000) of the YCOUNT byte of the character.
The first entry in the index is by definition ~q~

: .
,:

3 5 ~ ~7 character ~umber 1 and must correspond wlth the first character width group in the Character Width File. Character numbers proceed sequentiall~y by lmplication (there are no expressed character num-bers or library numbers at any location ln the font).
2.4.4.3 END~NT: This word defines the end of all font data and consists of 2 bytes of zeros.
2.4.4.4 Sector Filler: Zero data ls used to fill through to the end of the floppy disk sec-tor that contains the ENDFNT word.
2.4.4.5 Header and Outline Data: The `
header and outline data in each RAM contains all of the character digitlzation data pertaining to each of the characters located within that RAM.
The X and Y start locations for characters are listed in the Header File; the vectors and control bytes that define the profiles of characters are listed in the Outline File. The two ~iles are separated by a zero data byte (ENDHDR). Fig. 12 lllustrates the ~ile structure of the Header and Outline Data~
A checksum byte follows the Outline File and immediately precedes the ENDFNT word or the FSIZE
word that separates RAMs.
2.4~4.6 Header File: The Header File con-sists of a series of character headers, one for each character in the font. There is no space between headers~ Each character header contains (in sequence and without space) a YCOUNT byte, a CSIZE word, and one or more start-pair sets o~
data words (one set for each pair of starts).
YCOUNT: The YCOUNT byte defines in binary the number of YN entries in the header, whlch is 7~

.

- .. ~ .:
:, . , , ~ .
; ~ . . , ~ : .

~3~8~7 the same as the number of start pairs. The length ln each character header is ten times the Y~OUNT
plus 3 bytes~
CSIZE: The CSIZE word deflnes ln blnary the total amount of data space in bytes that the character fills when loaded once lnto the Data RAM. Accordingly, lt is equal to twelve tlmes the YCOUNT plus the length of all the proflle strings addressed within the start-palr data sets.
START-PAIR DATA: YN is ~he Y Data Word and XN
ls the X data Word as de~ined in 2.4.3. N must be even, slnce outlines always start ln pairs. AN is the absolute address of the lnltial byte of the pro~ile string of vectors and controls that define each outllne shape. Each address wlll be a number between "4000" and "7FFF. Addresses may be dupll-cated within the header file in the event that a proflle strlng ls shared (the character outllne shape is common) for more than one start point.
An address may not point to a profile string located in another RAM. The YN, XN~ and AN Data Words are sequenced as shown in Fig. 12 and listed without space. Each successive YN value is equal to or larger than the preceding YN value.
2.4.4.7 Outline File: The Outline File consists Or a series of profile strings. Each profile string ls a sequentlal series of two or more Vectors/Controls Data Bytes, as defined in 2.4.3. Each string defines a unique vertical character outline and beglns at the header start point. A string is termlnated by control 5 (end of outline), which is a zero data byte. Filler bytes may not be used within a string; they are permisslble before or after any string. The dlgi-" ';' :;' ' tization program(s) avoids dupllcation of iden~
tical profile strings, and minimlzes the number of RAMs a font used by sharing profile strings for character outlines that closely approxlmate each other.
2.4.4.8 CHKSUM: A one byte checksum veri-fies each complete RAM; it ls formed with all of the data in the Font-RAM except the CHKSUM byte itself. The checksum shall be formed by lni-tiallzing to zero; then, for each byte, the checksum is rotated right one bit (LSB becomes MSB) and the data byte is added to form the new checksum. Overflow on the addition ls ignored.
The final 8 bit checksum is defined as CHKSUM and is entered after the last data byte.
2.4.5 Profile Strin~s: In general, the profile strings in the Outline Data File are separated from the start points (YN and XN) to permit several start polnts to reference (address) the same profile string. In this way~ different characters within the same font havlng, as a part thereof, the same baslc shape may be defined by the same data, thus achleving data compressionO
For example, the following letters may have the identical contour on their left-hand slde:
"o", "c" and "e'l. The Outline Data File will thus contain two profile strings defining the inner and outer boundaries on the left~hand sides of these characters. The hlghest pair of start points in the character header for the "o", "c" and "e'1, respectively, may therefore address these two pro-file strings.
Because the dx values in the profile strings may be either positive or negative3 depending upon ~r ' ' .

~ ~ 3~

the "L bit" in the X data word (XN), a slngle pro-file strlng can serve for various characters which are symmetrical. For example, portions of the character "b" may be symmetrical with the character "d" and portions of the character pl7 may be symmetrical with the character "q". Such characters may be defined with the same profile strings which are directed by the "L bit" to move in opposite directions.
lQ In genera], character designers (persons who design character fonts) tend to create a few basic character shapes which are repeated throughout the font, elther directly or in mirror image.
Conslstency dictates that a few shapes be repeated throughout the font; symmetry dictates that mirror images be used. The profile strings utllized in the dlgital definition of characters in the pre-sent system are a useful tool ln recreating these basic character shapes. Because the encoding scheme permlts the addressing of a single proflle str~n~ from the start points of various charac-ters, and permits the dx lncrements ln a profile string to have positive or negatlve values, the quantlty of data requlred to define an entire font is substantially reduced.
2O4O6 Miscellaneous: Within the de~ini-tlon o~ a slngle character, there is no restric-tlon on starting two outllnes (Proflle strlngs) from the sarae point. There ls also no restrlction on ending two outlines at the same point~ ~wo outlines may touch, but they may not cross over each other lf they change from "on" outlines to "off" outllnes.
Broken characters are also perm~ssible in the ~L

~ ` ": , . ' ',: `~:' ' - ` " "', `- ' `' . ',, `~: . . .. .

1~.3~B~i7 Outline Data File. There is no restrictlon on broken (divided, separated) characters.
2O5 Font RAM Format The DMS utllizes RAM memory to contain the font data for the font(s) to be typeset on the page in order to have high-speed access to this data~ The data for the font is supplied to the DMS by the Input System where it is stored on the System Floppy Disk (SFD).
A complete font is stored on one or more Font RAMs~ each Font RAM storing no more than one font at a time.
The DMS can contain one to eight Font RAMs.
The system will runction with only one Font RAM, provided that one Font RAM size Fonts are used, Multiple ~ont RAMs ensure against degradation in throughput speed on pages with font mixing.
Each Font RAM is 16K bytes; each Font RAM card can contaln up to 64X bytes of memory; the equiva-lent of 4 Font Rams~ Units of less than four fonts can be accomplished by depopulating the Font RAM cards in 16K byte increments.
At system reset, the DMS determines whlch Font RAMs are available for loading by writing a pat-tern into each RAM Location and reading back the results. Any mismatch is recorded as an inactive font positlon in a font table. After testing each of the eight locations, a message is sent to the Input System defining the number of active Font RAMs; this can be utllized to detect defectlve RAMs. ~he font table is used later to record the font numbers stored in each RAM.
In the process of developing a Data RAM~ the DMS copies specific character outline data from ' ," "/ ' , '`' ' ''~
'' ' ' ' ~3;;~
~2~

the Font RAM into the outline file in the Data RAM. If a font change ocurs, the DMS will search the table of font numbers loaded. If the font is not already loaded, the DMS will load the new font into the flrst empty Font RAM(s)o If all Font RAMs are in use, the RAM or RAMs least recently used are overwritten wlth the new font needed.
The data stored in the font RAM is ldentlcal ln content and structure to the Outline Data File font data on the Input System ~loppy dlsk, as defined in Section 2~4.4.
In addition to the font data stored on the Font RAM card(s), the DMS maintains two additlonal tables per font in the program workspace that are used to regulate data transfer from Font RAM to Data RAM: an In-Seg Table and an In-RAM Table.
These are described below.
2.5.1 In-RAM Table: This 512 byte table contains the address within the Data RAM where a character header has been stored. The table is ordered in accordance with the character numbersO
Each entry is two bytes. A zero entry indicates that the character data has not been loaded.
Whenever a new character is put into the Data RAM, the corresponding 2 bytes in this table are loaded with the Data RAM address. This table is cleared at the start of building each new Data RAM.
2.5.2 In-Se~_Table: This 32 byte table is used to indicate which characters of the ~ont have already been encountered within the line segment currently being developed in the Data RAM.
Whenever an address is loaded into the In-RAM
Table~ a blt is correspondingly set in this table.
.

,.... :.... . .. ,: . -35~

_L,3_ Thls table is cleared at the start of each new set level (YSL).
In structure, each bit corresponds to a character number between O and 255 inclusive. The address of the bit is computed by:

Char. Number 8 = Q + R (Quotient lnteger and Remainder integer) where Q is the byte in the table and R is the bit within the byte.

3. PAGE DATA DESCRIPTION
3.1 Page Definitlon: A page position is defined by X, Y coordinates in 1/10 pts~ This is called a raster resolution unit (RRU). The top left hand corner is position 090. The maximum page size is 11" x 17". That is 7954 x 12,292 RRU. Movement ln a page can only be from top to bottom.
The raster position being solved for at any time is called the Y set level (YSL). This value initially starts at O and is incremented by one until it reaches the maximum page depth~
3.2 Page Variants: In addition to the normal standard page form defined by section 3.1, five ~ull page variants have been incorporated in the ODS deslgn. All variants are mutually exclusive.
3.2.1 High Resolution: A high resolution laser recorder can have its drum drive gear ratio altered so that each step of the stepper motor 58 drives the drum 56 by 1/20th pt., a hlgh resolu-, ~3~3~

tion RRU (HRRRU). Horizontal (x) resolution is not increased.
The ODS has a chip swltch on the DMS (Z80A) microprocessor whlch is set for this laser recorder. The DMS halves the ~Ys. and the OCS
increments the set level on every other raster output~
3.2.2 Proo~_Page: A laser recorder with proof page capability would make 2 stepper motor steps between each raster line, effectively doubling the speed of page setting with proof quality.
The command for proof page will be entered from the Input Systern. The DMS will set the Ys level depending upon whether the laser recorder is a normal or a high resolution unit, and the OCS
will accordingly increment the set level by one or two on each raster output.
3.2.3 Pa~e Width: The laser recorder will have either an 8~2" or a 11" wide drurn 56.
The ODS has a chip switch on the DMS (Z80A) microprocessor which is set for 8~" or 11". ~he DMS uses an appropriate page width when page complementing the XPOS value for wrong reading output.
3.2.4 Wrong Readin~: Any page can be output from any type of laser recorder in right reading or wrong readlng (mirror image).
Selection of wrong readlng is made by a toggle switch on the DMS (Z80A) microprocessorO The DMS
page complements the Xpos locatlon of every character, and complements the X posltlon of every outline on each character and the direction that each outllne moves.

: .-... : : ~ . . . .

: ~ . , ~ .
.. . .: :
.. . . -:

l~L35B~7 3.2.5 Reverse Video: Any page can be output white-on-black or black-on-white (reversed normal).
Selection of reverse video is made by toggle switch on the hardwlred processor (HWP). The HWP
inverts the polarity of the raster.
3.2.6 Line Rule: Llne rule is similar to reverse video, except that an entire line (white-on-black or black-on-white) of defined length becomes a single solid color. This command permits generation of line rules on the page.
4. INPUT SYSTEM INTERFACE SPECIFICATION
4.1 General: This specification sets forth the requlred data and data format to be transmitted between the Input System and the Output Data Processing System. The transmisslons are made through the Input System IOP-80 on a handshake basis of a byte serial transfer. Table 1 summarizes all the interface transmissions to the ODP System.

INPUTS TO ODP SYST~`I
FROM I,~iPUT SYSTE~1 _ ~ _ . _.

CO~iTROL ~iEr~ P~G~ J~' T~:~TS'!ISSIC`iS R~ST~7T .~2U_CT
8 BIT B"TF ! RES~T ~QU-ST
CTL = 1 ¦ PROOF P~G~
STA~T PROG STC~E
~ROG STCR~ .ULT

_ ,,, -, ,~

_ _ _ . _ . _ !
I~iPUTS TO ODP SYSTE`S
FRO~ PUT S y cTEM

~)ATA PROGRA~VI DA~.;~
TR.~S~lISSlONS VAG. D~T~
1 t1 B I T S FC~IT D ~T.~ ¦
( TWO B YT r. S ) & C~L = O
. ~

SUMMARY OF INTERFACE TRANSMISSIONS

; 4.1.1 Page Data: The Output Data Processing System is a page output machlne, principally because the laser recorder must expend the time required to expose a ~ull raster even if it only had data for part of a raster. Therefore the throughput of the machine is enhanced signlfi-cantly by supplylng the laser recorder with all of the graphic data needed in each full raster prior to exposing the raster. This requires storing and regrouping random sequence input data into a top down sequence. Due to memory slze limitations ln the Output Data Processing System, the data must be further packeted into groups deflned as "llne segments", which is the standard unit of page data to be transmitted by the Input System. Section ~3~ 97 4.2 will detail the page data requirements~
4.1.2 Font Data: The Input System stores digital outline fonts on rloppy disks ln the manner descrlbed above. The outline data is required in the solution of the raster on-off points, and this data ls transmitted by the Input System on a whole font basis ~excluding width data, BLJ data~ etc~). Section 4.3 will detail the font data requirements.
l1.l.3 Other Data: In addition to the above ~ob related data~ periodic data transfers may be made hy the Input System~ if desired~ These include programs, error messages, restart and program reset. The power-on reset signal may also originate in the Input System. ; -4.1.4 Notatlon: Meta~Language notation wll~
be used to describe the syntax of the data requirements. The following notation will be used:
4~1.4.1 " " Terminal - a fixed bit length symbol element (e.g.: all page data elements are 16 bit words) 4.1.4.2 ( ) Non Terminal - a higher order language element which is com-posed o~ one or more terminals and/or one or more non-termin-als.
4.1.4.3 { } Optional Repeats - The braces indicate that the enclosed non-terminal(s) may be not used or used as often as desired.
4.1.4.4 / Either-Or - a slash indicates that the non-terminals on either side of the slash are -~ç ;~
., .., ~

.: ~

~3~3~ 7 possible alternative elements.
.5 * Once only - An asterisk is used to indicate that the non-terminal may not; be used more than once within the complex non-termlnal being de~ined.

4.2. Page Data:
4 7 2.1 Pa~e Data Structure: As outllned ln section 4.1.1 above, coded data which describes a page must be packeted into groups defined as "line segments":
(PAGE) = {(LINE SEG)} "END PAGE"
Each page can consist of one or more line segments followed by an end page code. A blank page has no llne segments. The end page code is a terminating code, and no data relating to the page can be accepted after the code. All functional data received prior to the end page code ls not b20 carried over into the next page, and must be repeated as needed.
Each line segment defines a character set, a reverse video set, and/or a line rule set:

(LINE SEG) = (SEG~)~(YPOS)*{(CHAR SET)/RVSET)/
(LR SET)} "END SEG"

The first element in each llne segment is the segment number. Separate line segments with uni-que segment numbers must be defined for each character set with a unique YPOS and point size combination. Separate llne segments should pre-ferable be defined for each reverse video or line rule set, and also preferable for a set that is 3 ~

not contained wlthin the Y limits of the extended em square of a character set~ All reverse video or line rule sets wlthin a slngle line segment must ha~e the same YPOS value.
The segment number ls followed by YPOS, which nominally is the Y coordinate on the page of the top of the extended em square of the characters in the line segment and/or the upper coordinate of the reverse video or line rule set(s) in the line segment. All the line segments on the page must -be sequenced ln the order of the YPOS coordinate;
there is no sequence requirement between line segments with the same YPOS coordlnate.
The line segment can contaln one or more character sets, and/or one or more reverse video and/or line rule sets.
The end segment code is a terminating code, and no data relating to the segment can be accepted after the code. All functlonal data received prior to the end segment code is not carried over to the next segment 9 and must be repeated as needed.
4.201.1 Character Sets: All character sets within a line segment must follow the structure:
(CHAR SET) = (INITIAL CHAR) {(CHAR PAIR)}
with one inltial character followed by one or more character pairs. The initial character must follow the structure:
(INITIAL CHAR) = (PT SIZE)* (FONT) (XPOS) (CHAR
PhIR) The initial character in a line segment must contain a size, a font number, the x coordlnate of the character's left slde bearing (XPOS) 9 and the : . . - .
. .. .
:'"' ., ' ~
~, ',; ' ' ~3~67 character pair data which is structured:
(CHAR PAIR ) = {(FUNCTION)} "CHAR"
and where permissible functions are:
(FUNCTION) = (XPOS)/(FONT)/(SE~WIDTH)/(SLANT)/
(BLJ)/(YLOW) The character code is partlally a terminating code, that is, although no functions relatlng to a particular character can be accepted after the code, all functional data recelved prior to the code is carried over and remalns valid until altered by a new function code or a line segment terminating code (END SEG).
All latest function codes are valid ln this manner until altered except YLOW, which can only be a]tered by the lssuance of a numerlcally hlgher valued YLOW.
Within a character set, an initlal character must precede any follow-on character pairs. All other functional codes may be sequenced randomly, ; 20 sub~ect only to the restrictions described above.
4O2~1.2 Reverse Video Sets: All reverse video sets within a line segment must follow the structure:
(RV SET) = (XPOS) (RV CODE) (YEND) (XEND) The elements of the reverse vldeo set must be sequenced in the above order with no intervening elements.
4 . 2 .1. 3 Line Rule Sets: All llne rule sets within a line segment must follow the structure:
(LR SET) = (XPOS) (LR CODE) (YEND) (XEND) The elements of the llne rule set must be sequenced in the above order wlth no lntervening elements.
Table 2 summarizes the syntax of the page data ~' - : :: ..
, . . . : ~ . ............... . ..
. , ~ ~. . :

~ 7 structure:

(PAGE) = {(LINE SEQ)} "END PAGE"
¦ (LINE SEG) = (SEG#)* (YPOS)~{(CHAR SET)/(RV SET)¦
¦ /(~R SET~} "END SEG"
¦ (CHAR SET = (INITIAL CHAR) {(CHAR PAIR)}
¦ (INITIAL CHAR) - ~PT SIZE)*(~ONT) (XPOS) (CHAR ¦
¦ PAIR)¦
¦ (CHAR PAIR = {(FUNCTION)} "CHAR"
¦ (FUNCTION~ = (XPOS)/(FONT)/(SET WIDTH)/(SLANT)/ ¦
¦ (BLJ)/(YLOW) ¦ (RV SET) = (XPOS) (RV CODE) (YEND) (XEND) ¦ (LR SET) = (XPOS) (LR CODE) (YEND) (XEND) , PAGE DATA SYNTAX

4.2.2 Input Codes/Terminal Elements: Table 3 summar~zes the input code structure for those ter- :
minal elements which are to be sent from the Inpu~
System to the Output Data Processing System, wikh references to the following descriptions of the terminal elements used in the syntax in section l~.2.1.
4.2.2.1 (SEG~) = "SEG#'i This is a 13 blt number (the LSB's of the 16 blt field, the 3 MSB's shall be 0's) unique to each line se~t ln the page~ It is the number used to identify each line segment, and wlll be used by the Output Data Processing System when it needs to call for a specific line segment. It must be the first code of every line segment, and may not be issued more than once in any llne "
. ~ .

~3~36'~' segment.
Segment numbers may be any number between 1 and 8191 inclusive (not zero), and it is not required that the segment numbers be sequenced with increasing YPOS values.
4.2.2.2 (YPOS) - "YPOS"
This is the Y coordinate on the page ln RRU's of the top of the extended em ~quare of the characters ln the line segment and/or the upper ' coordinate of the reverse video set in the line segmentO The top of the page (which is nominally below the top of the sheet of paper) is defined as 0 RRU's. Up to 14 bits are avallable to describe YPOS values between 0 and 12,292 RRU's (17 inches).
The LSB of the YPOS corresponds with the LSB
of the input word. This code nomlnally follows the segment number, and is only issued once within a line segment.
4.2~2.3 (~POS) - "XPOS"
This is the X coordlnate on the page in RRU's of the left side bearing of the character or of the reverse video coordinate that pairs with the YPOS RV coordinate.
The left hand edge of the sheet of paper and the page is defined as 0. Normal margin offsets are controlled by Input System programs. Up to 14 bits are available to describe XPOS values between O and 7 and 7~954 RRU's (11 inches)0 The LSB of XPOS correspo~ds wlth the LSB of the input wordO

15l 14 1 13 1 12 ~ lOI gl 81 71 61 5j 4 ! 31 21 11 SE~# _ (Ref: 4.202.1) 0 ¦ o¦ YLOW data in RRU's (Ref: 4.2.2.4) ~' ' .
.

- : . : , .. .

:. : . , ~ ., .,:, t ~

o ! 1 I YPOS data in RRU's (Ref: 4.2.2.2) 1 ¦ o¦ XPOS data in RRU's (Ref 4.2.2.3) 1~ 0 ¦ O ¦ O ¦ o¦ CHAR number(Ref: 402.2.6) O ~ O ¦ O ¦ 1 ~ FONT number(Ref: 4.2.2.5) O ¦ O ~ 1 ¦ ol PT SIZE in l/2 pts(Ref:4.2.2.7 O ¦ O ¦1 ¦l ¦SETWIDTH in+l/3(Ref:4.2~2.8 ~ pts l ¦ l ¦ O ¦ l i O ¦ oi LR CODE (Ref: 4.2.2.9) ~ O ¦ 1 ¦ O ¦ 1 ¦ SLANT (Ref: 4.2-2-10 ?
l ¦ l~ O ~ Oi RV CODE (Ref: 4.2.2.11) 1 i 1 ¦ O ¦ 1 ~ END SEG (Ref: 4.2.2.13) O ¦ O ¦ Oi END PAGE (Ref: 4~2.2.14) 4.2.2.4 (YLOW) = "YLOW"
This is the Y coordinate on the page in RRU's of the bottom of the extended em square of the characters in the line segment. It is not necessary that this value be supplied for line segments with average characters; i.e.g characters that fall within the extended em square. It must ;~
be supplied for logos that do extend lower than the extended em.
- 10 The Input System derives the value from the font data and the point size that the logo is b0ing set at. If this code is issued more than once, the highest value (lowest point on page) is retalned by the Output Data Processing System.
Scaling~ zero placement, and data placement are identical to YPOS.
4.2.2.5 (FONT) = 7'FONT"
This terminal code defines the font number to ~C~

'' . ~ :

_5l~_ be used for all characters following until a new font is lnput. Up to 10 bits are available to input font numbers between 1 and 254 Lnclusive.
The font number LSB corresponds to the word LSB.
4.2.2.6 (CHAR~ = "CHAR"
This terminal code defines the character number to be output and is a semi-terrninating code (see the description in section 4.2.1.1). Up to 10 bits are available to input character numbers between 0 and 255 inclusive. The character number LSB corresponds to the word LSB.
4.2.2.7 (PT SIZE) = '1PT SIZE"
Thls terminal code defines the point size to be used for all characters in the line segment.
It may only be issued once within a line segment.
Up to 10 bits are available to input all half point sizes between 1/2 and 130 inclusive. The word LSB corresponds to 1/2 polnt, and bits 1 thru 8 define the binary value of the point size 20 directly. -;
4.2.2.8 ( SET WIDrH) = "SET WIDTH"
This terminal code defines the set width to be used for all characters following until a new set width is input. If this code is not issued, the -set width has a default value equal to the point size of the line segment belng set. The set width command~s) must follow the point size commands.
4.2.2.9 (LR CODE) = "LR CODE"
This terminal code defines that the imme-dlately following 2 words represent the YEND andXEND respectively in a line rule set in which YPOS
and XPOS preceding are the beginning coordinates.
The 10 LSB's of ~he input code are zero.
4.2.2.10 (SLANT) = "SLANT"

~ .

` . ~, . ~ ; ` :` , . ':. ' . ., , ,.,.: :

, . : , ` :
,.
, ` , : ` .,. .: .. .
- ~ ; . `.... . ~. . ` .. . ..
-3386'~9 .

This termlnal code defiIles the slant amount to be used for all characters following in the line segment until a new slant is input. Up to 10 bits are available to define 5 possible slant conditions; value O corresponds to SLANT OFF, value 1 to SLANT ~7, value 2 to SLANT +14, value 3 to SLANT -7, and value 4 to SLANT -14.
4.2.2.11 (RV CO~E) = "RV CODE"
This terminal code defines that the imme-dlately following 2 words represent the YEND andXEND respectively in a reverse video set in which YPOS and XPOS preceding are the beginning coor-dinates. The 10 LSB's of the input code are zero.
4.2.2.12 (YEND) = "YEND"
( XEND) = "XEND"
These terminal codes define the bottom coor-dinates on the page of a reverse video set in the same scale as YPOS and XPOS. The t~o MSB are set to zero. If the YEND input has a value higher than the current YLOW, this value is used to rede-fine YLOW~
4,2.2.13 " END SLG"
This terminal code defines the end of a line segment, and sets all variable functions contalned within that segment to the default value. The 10 LSB's are all zero.
4.202.14 "END PAGE"
This terminal code defines the end of a page, and sets all variable functions to the default value. The 10 LSB's are all zero.
This code must be preceded by a line segment which contains a YLOW value equal to the depth of the page, This may be done by either:
(1) Definlng a YLOW equal to the page depth ~ : ' '~' ' . ' ' '' '' .

' ' . ' . ' : ' ~
.' ' ' .:
`

:, ' , : ': '. ~ ' , '-:

~L~3~:iiB~7 within the last line segment of the page;
.or (2) Definlng an additional llne segment wlth the content:
~SEG#) (YPOS) (YLOW) "END SEG", where YPOS and YLOW equal the page depth, or wlth the content (SEG#) (YPOS) "END SEG", where YPOS equals the page depth.
4.3 FONT DATA
4.3.l Font Data Structure: Coded data which describes the outlines of characters in a ~ont will be transmitted from the Input System to the Output Data Processing System on a whole ~ont basis:
(FONT) = {(CHAR OUTLINE DA~A)} "END FONT"
Each font consists of one set of character outline data ~or each character contained in the font. Up to 256 characters may be contained ln the font, provided that the total contalned in one . .
font is less than 15,328 bytes by twice the totaI ~`
number of outlines in the ~ont. The end font code is a terminating code, and no data relating to the font can be accepted after this code. ~ -Each character's outline data is:
(CHAR OUTLINE DATA) = (CHAR)(#OUTLINES){(OUTLINE)}, where the outline non-terminal is used once for each outllne defined by the #OUTLINES terminal.
The character number is identical to the CHAR
terminal described in section 4.2~2.6 and is a number between O and 255 incluslve. The number o~
; outlines per character is llmited to 2550 Each outline consists of start coordinates, vectors and controls as required to descrlbe one ~ .
c!,~A. ~ ' ' 3S~6 edge of' the character:
(OUTLINE) = (YN) (XN) {(VECTORS)/(CONTROLS)}, where the permissible controls are:
(CONTROLS = (END OUTLINE)/(CHANGE DIRECTION)(NO
VECTORS)/(LONG VERTIGAL)/(SHALLOW HORIZONTAL) Section 2.4.3 describes ln specific detail the outline data structure syntactlcally covered in the two statements above. Reference should be made to thls section; it is this data that should be transferred exactly from the floppy disk storage medium to the Output Data Processing System by the Input System for these two statements.
Table 4 summarizes the syntax of the font data structure:

:
(FONT) = {(CHAR OUTLINE DATA)} "END FONT"

(CHAR OUTLINE DATA) = (CHAR)(#OUTLINES) {(OUTLINE)}

(OUTLINE ~ (YN)(XN) {(VECTORS)/(CONTROLS)}

(CONTROLS) = (END OUTLINE)/(CHANGE DIR)/(NO
VECTORS)/(LONGVERTICAL)/(SHALLOW HORIZONTAL) FONT DATA SYNTAX

4.3.2 Input Codes/Terminal Elements: Fig. 13 summarizes the input code structure for ~hose-ter-minal elements which are to be sent from the Input System for a font data transfer.
4.3.2.1 (CHAR) = "CHAR"
This terminal code defines the character number assigned by the Input System. Up to 8 bits are available to descrlbe character numbers be-- . . . . . . . .
,. . ,, ..... , ' ' .:-' ' ~ ;,,: :. ': .~:.
,. : ::~
,.. : , . ,;v; . . , ,, , ,, : ~, 1~3~
.

, tween O and 255 incluslve. Bit 15 corresponds to the MSB and bit 8 is the LSB. ;;
4.3.2.2 (#OUTLINES~ = "#OUTLINES"
This terminal code defines the number of outlines in this character and origillates on the ~ont floppy disk. Up to 8 blts are avallable to describe between 1 and 255 outli~es.
4.3.2.3 "END FONT"
This terminal code is the ~ont transfer ter-minating code~ All 16 bits in the word are zeros~
5. DATA RAM ~-5.1 General: The data RAM serves as an out-put buffer for the DMS~ and an lnput buffer for the OCS. As line segment data is input to the DMS, it is reformatted and stored into the data RAM. Two such data RAMs are used within the system, each one is 32K bytes long. Both data RAMs are accessible by the DMS and the OCS with the following limitations: -~
(1) A processor may select and operate on only one data RAM at a time.
(2) A processor may not select a data RAM
which is selected by the alternate processor.
(3) Once a processor deselects a data RAM (or releases control o~ it), any data within that RAM
is no longer valid to that processor.
5.2 Data RAM Building: The data RAMs are developed by the DMS and passed onto the OCS for processing. Double buffering is used in building -up the data and therefore two such RAMs exist.
This permits the DMS to develop the next buffer o~
data while the OCS is processlng the other. The baslc design is shown in Flg. 14. In developing this data RAM, the DMS attempts to flll it with as ~ ' `.

much data as possible. By so doing, it should provide the OCS with enough data to work with to avoid the possibility o~ phototype setting unit (PTU) slow down.
The buffer space is optimized by sharing outline data that has been put into the buffer for other line segments. In order to achieve this, the DMS developes the RAM from two directlons.
Line segment data, as lt ls read in and refor-matted, is put at ~he low end of memory, and related character outline data is put at the high end. When these two data sets interfere with each other, the data ls backed up to the last complete line segment and the output limit is defined.
This process is shown in Fig. 15.
5.3 Data RAM Format: The data RAM layout is illustrated in Fig. 16. The Character Outline section o~ the data RAM is shown in Flg. 17. In defining the format of the data RAM, the Meta-Language notation, as outlined in section 4.1.4, will be used~ The Page, Line Segment File and Outline File structure are indicated 1n Tables 5, 6 and 7, respectively.
5.3.1 Page Structure: The OCS defines a page as one or more data RAMS:
[PAGE]=[INITIAL DATA RAM] ~[DATA RAM}}
All pages MUSt begin with a initial data RAM whose ~ormat is:
[INITXAL DATA RAM~=[YLMT][NEW PAGE][PAGE SECTION]
All subsequent data RAMS for the same page have the format:
[DATA RAM] = [YLMT][PAGE SECTION]
The dlfference between the two being the new page element which is ltself a termlnal element:

r ~,,r~

~135BG7 .
[NEW PAGE] = "new page'l All data RAMS must have as its first code~ the output limit value:
[YLMT] = ty limit"
The data file can be divided into two separate files J the line segment file and the character outline file:
[PAGE SECTION] = [LINE SEG FILE] COUTLINE FILE]
5.3.2 Line Segment File: The Line Segment File consists of all the line segments input and reformatted by the DMS. This has the form of:
[LINE SEG FILE] = ~LINE SEG~} [END RAM]
As many line segments as there is room for may be put into this file. The last line "segment" must be followed by the end RAM code:
[END RAM] = [END DATA]/[END PAGE]
If more data exists for the page, the end data element is used. If thls is the last RAM for the page, the end page element is used.
; 20 The line segment may be defined as follows:
[LINE SEG] = ~START SEG] {[CHAR SET]/[RV SET]}
The structure is very similar to the input format, however~ the code structure does vary.
All line segments must start with a start segment element. This is defined as:
[START SET] = [Y SET]/[SEG LINK PAIR~/[YACC PAIR]
YSET can be defined as:
[YSET] = [YPOS] [ZERO DATA WORD]
and is always inserted at the start of every line segment by the DMS. This defines the ~ coordlnate of the page where the line segment is to be pro-cessed. The ZERO DATA WORD serves as a two byte pad for use when the line segment becomes actlve (l.e~ processing of outlines begin) or deleted.

Once processing of a line segment starts, YSET
is replaced by the YACC PAIR, where:
[YACC PAIR] = [YACC HIGH~ [YACC LOW]
The YACC PAIR is the next set level in DRU's for the line segment. After the OCS has comple-tely processed a llne segment~ it replaces it with the link pair.
[SEG LINK PAIR~ = [LINK HIGH] [LINK LOW]
Thls link pair is two elements which com~ined provide an absolute address o~ the next line segment~
5~3.2.1 Character Set: A11 character sets within a line segment must follow the structure:
[CHAR SET] = ~INITIAL CHAR~ {[CHAR PAIR]~
with one inltial character followed by one or more character pairs. The initial character rnust follow the structure:
[INITIAL CHAR] = ~AYS PAIR] [SCALF. PAIR][XPOS]
[CHAR PAIR]
The ~YS pair defines the change in DRU's per raster resolution unit. It is dependent on the point size.
~YS PAIR] = [~YS HIGH] [~YS LOW]
The scale pair def`ines the number of raster resolution units for each DRU. It i~ dependent on the set width.
[SCALE PAIR] ~ [SCALR HIGH] [SCALE LOW]
A character pair is defined as:
[CHAR PAIR] = {[FUNCTION]} [OUTLINE ADD~
and where permissible functions are:
[FUNCTION] = [XPOS]/[SCALE PAIR]/[SLANT OFF]/[SLANT
+7]/[SLANT -7]/[SLANT + 14]/[SLANT -14]/[BLJ]/[NULL]
All functions received prior to the outline address are carried over and remain valid until ~r .. ., . , , ~ .

3 ~

altered by a new function code or a new llne segment.
5.302,2 Reverse Video Set: The reverse video structure ls:
[RV SET] = [XPOS] [RVY PAIR] [RVX PAIR~
and:
[RVY PAIR] = [RVY HIGH] [RVY LOW]
[RVX PAIR] = [RVS HIGH] [RVX LOW]
5.3.3 Outline File: The Outllne Flle has the basic structure:
[OUTLINE FILE] = {[CURVE UPDATE FILE]/[CHAR
OUTLINE]3 The character outline file is the font RAM
data for the particular character reformatted by the DMS l~to the following format:
[CHAR OUTLINE] = ~CURVE UPDATE FILE] [SLOPE FILE]
The curve update flle ls the start for every curve in the character [CUR~E UPDATE FILE] = {~OUTLINE Sl'ARTS]}
COUTLINE STARTS] - [YN] [YN] [SLOPE A~D]
The signs in XN ~ord in the outline file have been complemented by the DMS if wrong reading ls ln effect.
As the OCS processes outlines, the OUTLIN~
STARTS data are updated to reflect the current processing point within each outllne.
The slope file ls:
[S10PE FILE] = {[VECTORS]/[CONTROLS~ }
The controls are defined in sections 4.3.1 and 2.4.3.

,,. " ...~

. .

. ~ .; : . .. . i .-~3~ 7 [PAGE] = [I.~ITIAL DA"'A RAAh1] { [DATA ~1] }
[INITI.2.L DATA ?~ S] = Y'l.i`~ST] [NE'i PAGE] [PAGE S~CTION]
[DArl'A D``~l] = [VL.~tT] [?AG~ SECTIO~]
~?.3~Gr~ a~CTIC~i~ = [LI~ S~.& -II._] [5~1TLI~E FII.E]
5 ¦[LINF; 5~G r ~ ] = { [LI'~ SEGJ [END '~`.] '~
¦ [ ~ND P~ ! ] = [ _ND D.~ 1 A ] / [ ~ ND l'AGE ]
~, ........ . _ VAGE ST~UCT~RE

[LINE SEG] = [SE& START] {[CHAR SET]/[RV SET]}
[SEG START] - [YSET PAIR]/[LINK PAIR]/[YACC PAIR]

[YSET PAIR] = [YPOS] [ZERO DATA WORD}

[LINK PAIR] = [LINK HIGH] [LINK LOW]
[YACC PAIR] = [YACC HIGH] [YACC LOW]
[CHAR SET] = [INITIAL CHAR] {~CHAR PAIR]}
IMITIAL CHAR] = [~YS PAIR] ~SCALE PAIR] [XPOS] [CHAR PAIR]
[~YS PAIR] = [AYS HIGH] [~YS LOW]
[SCALE PAIR] = [SCALE HIGH ] [SCALE LOW]
[CHAR PAIR] = {[FUNCTION]} [OUTLINE ADDRESS]
[FUNCTION] = [XPOS]/[SCALE PAIR]/[SLANT OFF]/[SLANT~7]/
[SLANT -7]/[SLANT +14]/[SLANT -14]/[BI,J]/[NULL]
[RV SET] = [XPOS] [RVY PAIR] [RVX PAIR]
[RVY PAIR] = [RVX HIGH] [RVY LOW]
¦RVX PAIR] = [RVX HIGH] [RVX LOW]

LINE SEGMENT FILE STRUCTURE

~,~' `, .; . ` - ; ~ .` .: :. , :: ~ " :`: - :::
, ` ` : ` ` ~ . :: : ., : .`. ::~ . ,. ., . `,: ` `:
`' : ~

~3~

¦ [OUTLINE FILE] = {[CURVE UPDATE FILE]/tCHAR
¦ OUTLINE]} ¦
, ¦ [CHAR OUTLINE] = [CURVE UPDATE FILE~ CSLOPE FILE]¦

¦ [CURV~ UPDATE FILE] = {[OUTLINE STARTS]}

¦ [OUTLINE STARTS] = ~YN] ~XN] [SLOPE ADD]

¦ [SLOPE FILE] = {[VECTORS]/[CONTROLS]}

OUTLINE FILE STRUCTURE

5.4 Terminal Elements Table 8 summarizes all the coded entries in the data RAM e~tries.
The uncoded elements, YLMT, YSACC, and outllne elements, wlthin a data RAM are not in the table:
they are 16 blt binary values whose position defi-nes the code type. The uncoded data RAM outline elements are as defined ln section 2.4~3, the pre-viously deflned syntax must be followed.
5.4.1 [OUTLINE ADDRESS] = "outline address"
This is a 14 bit number which specifies the address in the outline file of the character outline to process. The address always points to the first curve of the outline in the update ~ile.
~his is a word address and must therefore be doubled to get the byte address withln the 32K
RAM. (Since all data in the data RAM is 16 bit codes, codes will always start on an even byte addres 5 ~ .

' ~`''J`~

~35i3~7 5.l~.2 [YPOS] = "YPOS7' This is the same code as entered lnto the DMS.
See section 4.2.2.2 ~or format and de~inltlon. In OCS, lt shows an addltional function. It not only marks the start of a new line segment, but also terminates the previous llne segment.
5.4.2.1 [ZERO DATA ~ORD~ = "ZERO DATA WORD"
Thls uncoded 16 bit field always follows YPOS.
It serves as a pad for use when a line segment becomes active.
5.4.3 ~YACC HIGH] = "YACC HIGH"
Thls code defines the most signlficant 8 bits of the set level in DRU's. It contains the 8 most significant integer bits of the value.
5.4.3.1 [YACC LOW] = "YACC LOW"
Thls is a 16 blt rield which always follows YACC HIGH. It contains the remainlng 2 integer bits and the 11 declmal bits of the set level; the 3 least significant bits are always 0.
5.4.4 [XPOS] = "XPOS"
This is the same code as entered into the DMS.
(See section 4.2.2.3 for format and definltlon)~
except when the wrong readlng switch ls set, when the page width complement o~ OXPOS (PG WDTH-XPOS) is entered.
5.4.5 [NULL} = "NULLt' The null code is used to delete elements wlthin a line segment. The DMS lnserts thls code to remove font calls within a segment as they are acted on. The OCS lnserts this code to remove "outline address" as they are completed.

~'~

~L~3~ 7 . _ .. . .
I 15l 14 1 13 I 12l 11 I 10l 9l 8l 7l 6l 5 1 4 1 3l 2~
¦ 0 ~ O ¦ Character Outllne Address Section 5.4.1 ¦
¦o ¦ l ~ YPOS data ln RRU's " 5.4.2 ¦
¦ 1 lo ¦ XPOS data ln RRU's " -5 4 4¦
¦ 1 ¦ l L ol o¦ o¦ _¦ o¦ o¦ Null " 5.4.~
¦ l ¦ l_l_ I ~ 0~ o¦ o¦ 1 ¦~YS Hi~h"_ 5-4~6¦
L1-1 1 1 O I O I 1 1 1 ~ I~YS Low " 5-4-7l ¦ 1 ~ 1 ¦ 0 ¦ 0~ 0 ¦ 0~ 1¦ 1 ¦ Scale High " 5.4.8 _ol o¦ o¦ l ¦ o_l o¦ Scale Low " 5-4-9 L 1 1 1 1 -- L I o 1 1 ¦ ol 1 ¦ BLJ __5.4.1~
~ 0 ¦ 0 ¦ O ¦ 1¦ 1 ¦ o¦ Link High 5.4 ¦ 1~ 1 ¦ 0 ¦ o¦ o¦ 1 ¦ 1 ¦ 1 ¦ Llnk Low 5.4.1 ¦ 11 1 ¦ ! O ¦ 1 ¦ O ¦ O ¦ O ¦ RVY High 5-4-13¦
¦ 1¦ 1 ¦ O ¦ o¦ 1¦ o¦ O ¦ 1 ¦ RVY Low 5-4-13¦
¦ 1¦ 1 ¦ 0 ¦ o¦ 1¦ o¦ 1 ¦ ol RVX Hi~h 5.4.~
¦ 1¦ 1 ¦ O ¦ l l¦ O ~ ¦ 1 ¦ RVX Low 5.4.13¦
I 1L 1 1 I o I 1 1 1 1 o ¦ o I New Page 5.4.14¦
0 ¦ o¦ 1¦ 1l 0 i 1 j Slant_Off _ 5-4-151 ~ ¦ ~ 0l_S ant +7 5.4.1 ¦ 1¦ 1 ¦ O ¦ o~ 1 ¦ Slant -7 5.4.1 1 11 1 1 O 1 1 1 O I O I O LO I Slant +14 _ 5.4.15l ¦ 1¦ 1 ¦ 0 ¦ 1 ¦ 0 ¦ o¦ o¦ 1 ¦ Slant -14 5.4.1 ¦ 1¦ 1 ¦ 0 ¦ 1 ¦ o¦ 0 ¦1 ¦ o¦ End of Data 5.4.1 ¦ 1¦ 1 ¦ O ¦ 1 ¦ 0 ¦ 0~ 1¦ 1 i End of Pa~e _ 5.4.
¦ 1¦ 1 ¦ 0 ¦ 1 ¦ 0¦ 1 ~ o¦ o¦ YACC_Hi~h _ __ 5.4.3 ¦ 0 ¦ 1 ¦ o¦ 1 ¦ o¦ 1¦ Font Call _ ___ - : :
: ~

5.4.6 [ ~Ys HIGH] = " ~Ys HIGH"
This contalns the most signiPicant 8 blt of the computation 43.2/POINT SIZE. It conslsts o~ a 5 bit integer number and 3 bit decimal.
5.4.7 [ ~Ys LOW] = " ~Ys LOW"
This contains the remaining 8 bit declmal value of the computation 43O2/POINT SIZE. This code will always follow Ys high.
5.4.8 [SCALE HIGH] = "scale hlgh"
This contains the most significant 8 bits of the computation set width/43.2O It consists of a 4 blt integer number and 4 bit decimalO
5.4.9 [SCALE LOW] = "scale low"
This contains the remaining 8 bit decimal value of the computation set width/43.2. This code will always follow "scale high".
5.4.10 [BLJ] = "BLJ"
The code de~ines the baseline adjustment in 154ths. See 4.2.2.9 for format.
5.4~11 [LINK HI~H] = "link high"
This code supplies the most significant 8 bits of a link address used to skip over line segmentts) that have been completed~
5.4.12 [~INK LOW] = "link low"
~5 ,~

, . ~ . ; , 3 ~

~68-This code supplies the least slgniflcant 8 bits of a link address used to skip over line segment~s). This code will alwayys follow the "llnk high~' code.
5.4.13 [RVY HIGH~ = "RVY high"
[RVY LOW] = "RVY low"
~RVX HIGH~ = "RVX high"
[RVX LOW~ = "RVX low"
These codes must be ~n the above sequence. The lower order 8 bits deflnes the reverse video limits.
5.4.14 ~NEW PAGE] = "New Page"
This control defines a data RAM as the first o~ a new page. It must be issued before the first line segment of a page.
Bit O is a O for normal, standard operating mode and is a 1 for proof page mode. Bit 1 is a O
for normal resolution unlts (1/10 pt. per raster) and is a 1 for high resolution units (1/20 pt. per raster). The other 6 LSB's have no meaning.

5.4015 [SLANT OFF~ = "Slant off"
CSLANT +73 = "Slant +7"
[SLANT -7~ = "Slant -7"
[SLANT +14] = "Slant ~14"
~SLANT -14~ = "Slant -14"
These codes define which slant constant is to be used for the following outline computation.
The LSBs have no meaning.
5.4.16 [END DATA] = "End data"
This code follows the last line segment within the data RAM. It informs the OCS that more data for this pa~e will follow in the next data RAM~
The LSBs have no meaning.

- . . . -'' : ' ' ' ' ' " :

3 ~

5.4.17 [END PAGE] = "End page"
This code follows the last line segment of the page. It informs the OCS that no more data RAMs for the page followO The LSBs have no meaning.
5.4.18 [YLMT] = "Y limit"
This terminal is the first code in the data RAM. It is a 14 bit number defining the last raster in RRUS that shall be output by the OCS
with the data in the da~a R~
5.4.19 "Font Call"
This code is generated by the Z80A to slmplify font call processing. It is a temporary code which is replaced wlth a NULL Code prlor to releasing the DATA RAM to the OCS for output pro-cessing.
6. OUTLINE ALGORITHM
The outline algorithm is the formulae and pro-cesses that solve and store the lntersections of rasters wlth the outlines of the characters to be set at any particular vertical level on the page.
These intersectlons are the horizontal locations where the laser beam shall be turned on and off as it strokes out the raster lines.
6,1 Basic Outline Intersections: All charac-ters ln the data set are described by a series of initial locations and vectors that trace the outlines of the characters. Fig. 18 illustrates the factors to be used in solvlng one outline.
(Refer to Fig~ 9 for correlation).
Vector Vn represents one edge of one characterO The distance from the left edge of the page to the point on this vector where it is intersected by the ~Yent raster level is to be solved. It can be seen that this distance, which . .

~13~i8~7 is deflned here as XREG, is: ;
XREG = XPOS ~ XN ~ ~X
The general expression must also provide for the possibility that XN may be left on the left side bearing (XN si~n bit is negative) and that the vector may point down and to the left (the data L bit ls one) resulting ln a negative ~X:
XREG = XPOS + XN ~ 4X
_, Since XREG is desired in raster resolution units (RRU's) for ultimate output to the laser, the proper scale factors must be applied. XPOS is input from the Input System in RRU's and is main-tained in those units throughout the Output Data Processing System. XN and the ~X ~actors are all stored in relative character units, to enable setting all sl~e characters from one set o~ data.
The horizontal scaling of characters is based on the set width command to enable character expan-sion and compression for appearance purposes and/or for copy fit purposes~ The expression becomes:
XREG = XPOS + ~+ XN + ~X] [SW/43.2]
Similar triangles are used to solve geometrl-cally for ~X:
~-~X d (Ys-YN) = dy Substitutlng:
XREG = XPOS -~ [+ XN + (YS-YN) (dx/dy)]~SW/43.2](1) In the general form of the equation above, XN
and YN are the starting locations of the vector Vn, whose slope is dx/dy. Ys is the distance in character units, defined as data resolution units (DRU's), from the zero datum on the character .,~

,, , ;: .
- . , ~ .

~3~i~6~

extended "em'~ area to the raster level. Ys is thus a function of the point size to be set and the raster dlstance in RRU's from the top of the em:
Ys = (YSL ~ ~X) (43.2/Pt. Sz) In actuality~ the algorithm looks up the lncremental ~Ys in a table, where:
~ Ys = (43.2/Pt Sz) and adds this value to the prior Ys for each new raster llne.
6.2 Boundary Bit And On/Off Buffer Storage:
Equation (1) is solved ~or all character outline vectors that intersect the current raster. Within the character data, a boundary bit (B bit) is embedded with each outllne serles that records whether the outline should turn the laser beam on or turn it o~f.
The final solutions of each intersection are stored in either an ON RAM or an OFF RAM dependent upon the state of the B bit. These RAMs, whlch are the so-called "raster line buffers", are 8K
long each and each contain one bit for each hori-zontal resolution element (Ref: Section 7.5).
Each XREG computation results in the setting of the particular RAM bit that corresponds to the value of the XREG solution~ Incrementing tech-niques causes an ad~acent bit to be set if a solu-tion is identical to a prlor solution on the same raster line which can result when characters are overlayed or kerned.
603 ~ Verticals: To enhance data compression, a palr of data control bytes are available for use in the vector data stream to define vertical vectors longer than the nominal -. , ~ , , ~ , . ..

s~

longest allowable sloping vector, VN (whose maxi-mum length is llmited by the 15 DRU llmit on dy and dx).
A control byte is used to define this con-dition3 where dx (and therefore ~X) are zerog and the following byte defines the dy length of the vector in binary code (Ref. Sectlon 2.4.3 "controls", where dx = 3). This data byte pair could define any vertical vector with a length between l and 255 DRU's. However, its use has been restrlcted to vectors with lengths between 31 and 255 DRU's because (a) lengths between 1 and 15 DRU's can be e~pressed with less data using the non-control dydx definlte vector codlng available and (b), lengths between 16 and 30 DRU's can be processed faster ln the 8X300 microprocessor if they are expressed as two definite vertical vec-tors.
6.4 Steep Slo~s: There exist character ; 20 outlines that have such a steep, almost vertlcal, slope that they cannot be adequately defined by using the steepest non-vertical dxdy pair due to the 15 DRU limitation. If these outlines were defined by the combination of a long vertical and a 1/15 vector, (which pair would accurately define the end points of the steep vector desired~, the output that is being used would accurately output each component part of the pair; however, this would give a bumpy appearance to a character edge at large point sizes, particularly if the vertical component of the pair is longer than the sloping component.
A series of control bytes have been defined that enable all steep vectors to be defined by the ., . - .

.~
.. . ..

3 ~

comblnation of a vertical component and a longer sloplng component. The control bytes (Ref. sec tlon 204.3 "Controls~', where dx= 4, 5 and 6) define vectors with slopes of 1~30, 1/60, and 1/120; they are used with vertical vectors or long verticals as required to complete the exact steep vector.
Since the hardwired processer (HWP) (Ref. sec-tion 7) does not accept 1/30 etc. slopes, the solutlon of these control vectors is accomplished by having the SMS300 microprocessor input compen-sated values to the HWP. The SMS300 inputs a 1/15 vector value to the HWP, but reduces the Ys and YN
values so that a halved (or quartered or eighthed) ~X solution results.
6.5 Shallow SloPe: There exist character outllnes that have such a shallow slope that they cannot be defined by one dxdy pair due to the 15 DRU limltation. In this case dy is one DRU and dx needs to be greater than 15 DRU's. A control byte is ued to define this condltion, and the following byte defines a multlple (1 thru 15) of 16 DRU's displacements, plus a O thru 15 additional DRU
displacement. (Ref. Section 2.4.3: "Controls", where dx=F). Any vector with a dx between 16 DRU's and 255 DRU's in combination with a dy of 1 can be defined by this byte~
The multiple above is defined as K, and this alters the basic equation to:

XREG - XPOS + [+ XN + (Ys-YN)~dx/dy +16K~][SW/43.2] ~2) 60 6 Squared Outline Shapes: Character outli-nes such as the right side of an upper case , 3 ~ ~ ~7 Helvetica "E" have a squared shape. These shapes could be treated as a series of lndividual ver-tlcal outlines, but thls would requre a slgnifi-cant data load to record the start locations of each outline. Rather, two control bytes have been provided to define the condition of an outline that displaces horizontally in a rectilinear fashion during one vertical DRU (as contrasted with the shallow slope, which displaces horizon-tally during one vertical DRU in a sloping fashion). One control byte (Ref~ section 2.4~3:
"Controls", where dx - D) de~ines horlzontal displacement up to 255 DRU's; the second control byte (Ref. Section 2.4.3: "Controls", where dx =
E) defines dlsplacements between 256 and 511 DRU's inclusive.
The 8X300 microprocessor outputs dx and K as zero within this vertical DRU zone in order to accomplish a squared off outline shape.
6.7 Extrapolation: When the current raster level approaches within 1 ~RU Or the initial YN
(start) of an outline, a solution ls made. This is an extrapolated solution~ because the raster level has not yet reached the vector. In this case, Ys is less than YN which makes the term (Ys-YN) negative, which in turn reverses the polarity of the sign that precedes the term in equation (2) above (~x is reversed in sign).
The slope of the next following vector is used while Ys is greater than YN-1 and is equal to or less than YN, provided that the flare bit (RefO
section 6.8) is not on. True extrapolation results in this zone.
6.8 Flare Bit: In two cases, extrapolation ~ - , ~ ,, . ,.~, ....

:, . : : .
. i :

~L13~8~7 with the next following slope is insufficiently shallow for quality character reproduction. In case 1, a character editor, based on a visual review of real or simulated character output, desires a shallower entry slope in the extrapola-tion zone. A flare bit (F bit) is provided in the XN data word, which he may set on. In case 2, a very fine vertically reentrant feature of the character produces start points without any following vectors; in this case, the character digitization program automatically sets the flare bit to a one. The digitizatiopn program also sets the flare bit to a one when the initial vector has a slope that ls less than 30.
When the flare bit is on, the K value ln equation (2) is set to a value of one for the extrapolation zone only~ thereby decreasing the slope in this zone. This is controlled by the OCS .
6.9 Extrapolation Cancel Bit: The E bit in the XN data word will cancel extrapolation. This bit can be set to a one by the character editor.
6.10 Slant: Electronic slanting of a character consists of taking character features within the em square and parallelogramming them a specified number of degrees ln elther a right or left direction depending upon the slant request.
This is done about a central neutral axis which remains in place; Ys o~ 344 DRU's is the level of the neutral axls.
The change in the x position outllnes caused by this slantlng is therefore:
SLC = (344 ~ Ys) (tan slant angle) The allowable slant angles have been selected `'~'~';
", .

- .-: ,:

. , , , " ", .

, .
: .. , : , as 7.1 degrees and 14 degrees because their tangents are 1/8 and 1/4 respectively, and there-fore allow scaling the Sl,C by bit sh:Lfting.
Incorporating this final factor into equation (2) results in:
XREG = XPOS ~ [+ XN ~ (Ys - Yn)(dx~dy + 16K) + SLC] ~3) [SW/43.2]
which ls the equation solved by the OCS and the HWP
6.11 Reverse Video: Reverse video does not follow the outline algorithm equation; rather lt simply reverses the resultant output from the ON/OFF buffers (Ref. section 6.2) between two horizontal resolution locations. These locations are specified from the Input System, which also specifies the vertlcal limits over which the reversing shal] be effective. The polnts are stored in a RAM similar in data structure to the ON/OFF RAMS.
This capability can easily accomplish horizon- `
tal rules, vertical rules or reverse video blocks.
Overlapplng reverse video areas will re-reverse where they overlap.
Borders can be made by defining one area just within a second one. Underlining can similarly be defined by two RV areas. However, care must be used in specifying overlapping RV's. For example, horizontal rules that cross vertical rules wil~
have white intersections, and RV underlining that intersects characters wlll be white in that inter--section.
6.12 Line Rule: Line ruling commands, defined in a similar manner as reverse video com-mands, have been provided so that rules can be accomplished that do not reverse in video when ~`

-;

.. ' , ~ . ~.: , , ~3~

they cross characters or other rules.
Blts are set in the approprlate ON/OFF buf-fers, but no special hardware has been lncor-porated in the HWP for this facillty. The 8X300 outputs on XPOS value to the HWP that corresponds to the appropriate end of the rule (I.RX HIGH, LRX
LOW), and output a zero dx and a zero XN wlth proper boundary bits set to accomplish the func-tion.
6.13 Wr~ Reading: To accomplish wrong reading, XPOS is obtained by subtracting the input XPOS from the page width, ln order to obtain the distance from the right edge of the page. The sign of each XN and its L and B bits are also complemented to effectively wrong read each character. These tasks are all done during Data RAM building by the DMS (Z80A) and are transparent to the OCS, which will output the data in the usual way for the normal left-to-right laser beam stroking.
7. HARDWIRED PROCESSOR
7.1 General: The hardwired processor (HWP) receives data and controls from the Outline Converter Subsystem (OCS) and from the Laser ~5 Recorder or "Phototypesetting IJnit" (PTU) and sends a "video signal'l as well as other control signals to the PTU. These functions are carried out by executing the following general operations:
(I) Using input data and control information ~rom the OCS, the on/of~ points and reverse vldeo points are computed~ and "one" blts are placed into an "ON"
register, an "OFF" register or a "Reverse Video" register, all of whlch are WR~

3 ~

referred to herein as "output raster line buffersl.
(2) Using an input clock and cont;rols from the PTU, a video NRS control signal is generated which has transitions dependent on the "ones" stored in the output raster line buffers.
`(3) Using internally generated f:lags, the input and output average data rates are ad~usted to compensate for the wide variabillty in duration (or quantity) of input data.
(4) Using input controls from the OCS and PTU, the raster line buffers are cleared and required control (or reply) signals are sent to the PTU, for example to trigger the PTU advance roller drive motor (element 58 in Fig. 2).
The video control signal is the beam modula-2~ tion signal for the Laser Recorder. On-off tran-sit~ons occur at character boundaries. Input data is based upon the characters in each "line segment" that is to be printed. Since line segments are allowed to overlap, characters may overlap. ~o accomodate this, a technique using an "ON" buffer and an "OFF" buffer is used. Each buffer is a memory of sufficient size to store a bit representing each element of a single scan line. The "ON" buffer stores a one bit in those elements that represent a black to white tran-sitlon of a character and the "OFF" buffer does the same for the white to black transition. For cases where two characters have a transition at the same element, the next hlgher address element - .. . ~. ,. .
.
': ` ' . , ` ' ! ~ . , . ' : , : : , , ~:, ., i . , :, ~3~ 7 \

is set to one for the "ON'? trans:Ltion and the next lower address element is set to one for the l'0FF"
transition. To generate the output video signal the successive ones ln the bufrers are detected and those from the "ON" buffer decrement an up~
down counter and those from the "OFF" buffer increment the counter. If the counter is decre-mented to a negative number, the video output level (low to the PTU) is such as to turn the laser beam on.
To provide ~or reversal of the usual black on white output a ~'Reverse Video" (RV) buffer of the same size as the ON/OFF buffers is used. A one bit in the RV buffer inverts the output video signal polarity for that element and all sub-sequent elements untll the next one bit in the RV
buffer. A switch called "Global RV" provides -~or reversing the video polarity for a whole page.
To facllitate rapid throughput~ the output raster line buffers are duplicated so that read-ln ~loading) and read-out tunloading~ can be per-formed simultaneously. The bu~fers are either in a mode receiving the patterns of ones representing a line or outputting to generate the video signal.
Both modes are read-write operations on the memory since, for the output mode3 zeros are written in to replace the ones. The buffers then can be ini-tiated to an all zero condition by parallel ports from the OCS that perform two unload operations.
7.2 In~ut: The hardwired processor receives its input from three "IV" bytes. Each IV byte is 8 bits. Two of these bytes are "data bytes"
(DATA HIGH, DATA LOW) and the third ls a "control byte" which directs the HWP on what function to .~

. .
,: . , ~, ,: :

execute next~ The control byte function is shown ln Flg. 19A.
When the handshake bit is zero J it indiates that nothlng is to he done. When the OCS wants the HWP to perform a function, it loads the data byte(s) with any required data, and then sets the control hyte wlth the proper control, which inclu-des the handshake bit. After the HWP accepts the requested ~unction, it resets the handshake bit back to zero.
The control informatlon is one of three basic types:
(a) Load Variables;
(b) Solve; and (c) Output.
The Data Load controls are listed in Table 9 The Output controls listed in Table 10 all com~
municate with the PTU, except for the RVX (Control 88), which commands a reverse video limit store.
The Solve Control (87) is duplexed with the dydx data loading, and is the one which require~
the HWP to solve the equation. Prior to solving the data IV Byte must be input.

l CONTROL ¦ VARIABLE LOADED
¦ 81 ¦ SCALE

¦ 83 ~ Yn, K
84 ¦ Xn, SIGN, DIR, FLARE, ON/ ¦
l l OFF, EXTRAPOLATE
¦ 85 l SLANT
1 86 I Ys ¦ 87 I d~dx DATA LOAD FUNCTIONS

-.
:. :

~3;~8~'7 _ .
_ CONTROL I OUTPUT
¦ 88 ~ RVS STORE ¦
¦ 90 ¦ NEW PAGE L()AD
I AO ¦ END OF PAGE
¦ C0 ¦ OUTPUT RASTER
OUTPUT CONTROLS

¦ FLARE I K I d~/dy ¦ 0 ¦ as supplied ¦ as supplied ~ as supplied ¦

7.3 On/Off_Solvin~: The equation to be solved is: :
XREG = XPOS + [+ Mn ~ ~X + SIiC~ SCALE
where : ax = (YS - Yn) (dx + 16K).
dy :
The sign of the ~x result is dependent on the result of the (Ys - Yn) subtraction and on the dlrection of the curve (this is loaded under control 84 in Bit 0 Data Low). The parameters used in this equation are handled by the HWP as fol~ows:
XREG - This result is the address of the bit on the on or off buffer to be set.
The buffer (on or off) is selected depending on Blt 1 Data Low under control 84, (if this B bit is on~ the buffer shall be selected).
XPOS - Thls value is input under control 82 ~3S8~7 ` -82-and is 14 bits.
Xn - This ls a 10 bit integer input under control 84. Bit 6 Data Hlgh defines whether this is a -~ or -. The value wlll be expressed as a two's comple-ment if the sign is negative.
Ys - This variable is input under control 86. In dealing with the decimal, only bits 5 to 2 in Data Low will be needed for this computation.
Yn - This is a 10 bit negative lnteger lnput under control 83 in 2's comple-ment form. NOTE: (Ys - Yn) will always yield a number >-l and <15 (see dydx & K descriptions).
dydx - This varlable is input under control 87. This value is always used as supplied when (Ys - Yn) is positive.
If the results of the subtractlon are negatlve, d,ydx is used or effec-tually replaced by dx/dy o~ 16 in accordance with the flare bit status.
See Table 11.
K - This value ls input under control 83 and defines ln Bits 5 to 2 of Data Higho When (Ys - Yn) is less than zero, K is employed accordlng to Table 11.
SLC - The slant constant is input under control 85. Only the 4 MSB of Data Low are needed. The sign ln Bit 7 of Data High defines -~O The value wlll be expressed as a two's complement lf the slgn is negatlve.

~ .

. , - , :, ., : .: . ~
. :. ~ , , . . . ,, . :

SCALE- This value is loaded under control 81. The 2 LSB of Data I,ow are not required for accuracy. The scaling constant ls equal to the set wldth dlvided ~y 43.2.
E - Bit 7 of Data High under control 84 wlll cancel the solve requlrement lf the result of the (YS - Yn) subtrac-tion is negatlve. (E bit on cancels).
Fig. l9B summarizes the controls and the data formats. Fig. 20A is a Functional Block Diagram of the On/Off Solving section of the HWP~
7 . 4 Reverse Video Input: Reverse video limits are input vla the XPOS input. The HWP will accept an XPOS input under control 82~ If thls value is an RVX point, control 88 will be input to cause the HWP to store the XPQS value in the RV
buffer (see section 7.5.2).
7 . 5 Raster Line Data Storage Bufrerso The HWP contains six data storage registers to store the data that controls the laser recorder. While the data ln three of these registers is being out-put to the laser recorder to form one raster line, the other three are storing the result of the character outllne computation.
The three registers that comprlse a control set are dedicated to storing the locations where the laser recorder should turn on (the ON BUFFER)~
storing the locations where lt should turn off (the OFF BUFFER), and storing the locations where the normal on-off conditions should be reversed (the RV BUFFER). Each buffer has a bit dedicated to each horlzontal resolution element in the raster, and therefore has a minimum length of .,~; . .

3 ~ ~6 7,954 bits.
Fig. 2OB is a Functional Block Diagram of the raster line data storage buffers section of the ~WP .
7.5.1 ON/OFF Buffer Input: The output of the XR~G adder contains the address of the bit in the On or Off Buffer that should be turned on to store the on or off functionO The Boundary (B) Blt state determines whether the On or the Off Buffer is to be loaded.
Loading of the buffer must recognize whether the bit being addressed has already been loaded from a prior solution. If the bit addressed is a ~ero, a Read-Modify-Write cycle on the RAM may be performed. If the bit addressed is already a one, the contents of XREG must be lncremented (or decremented, if the Off Buffer is being loaded), and another load must be attempted. This is repeated until a valid Read-Modify-Write ls per-formed. This process ensures that some bit is turned on for every input requirement.
7.5.2 Reverse Video Buffer Input: The out-put of the XREG adder contains the address of the bit in the RV Buffer that should be lnverted to store the reverse video function. A
Read-Modify-Write cycle on the RAM is performed for every RV input. This will invert the bit, whether its current stake is a zero or a one.
7.5.3 Buffer Output: The contents of the On and the Off Buffer is clocked out through an up-down counter with a minimum range of +15. Bits in the On Buffer that are one wlll decrement the counter, whereas one bits in the Off Buffer will lncrement the counter. A negative count detection :. : , : .: :.

~35~3~7 .

clrcuit controls the output to the laser recorder, the laser beam being turned on ~ihenever the count is less than zero. (If both the On and the Off`
Buffer bits at any address are identical~ the count does not change). The RV Buffer is clocked out at the same rate, and will reverse the normal output from the zero detector. All buffers are reset to zero af`ter the outputting cycle~
The clocking is controlled by the "read clock"
signal from the PTU. A toggle switch is provided on the ~WP card (board) to enable a set-up opera-tor to co~mand Global Reverse Video; i~e.~ a black/white reversal for the entlre page.
7 6 The HWP Structure: The HWP will flrst be .
described using a simpllfied block diagram. Then the overall timing wlll be given followed by a detailed explanation of the logic design.
7.6.1 Basic Sections: Fig. 21 shows the basic sectlons of the HWP. Data and control words are loaded into a buffer and storage section 100 under control of a "handshake" signal from the 8X300 in the OSC. One of the control words ini-tiates an address computation performed in the next section 102 and thls same control initiates a load into that address location performed by the last section 104. Each sectlon has its own con-trol and sequencing logic.
The control and PTU interaction logic 106 generates the output video signal in synchronism with a read clock from the PTU. This section also utillzes synchronlzing signals from the PTU to generate f`lags that indlcate when the data buffers are full. The conditions of these ~lags are used to control the input of data (through the . ~. ~ ............. . :

: :: . . : ~: ,, : : .. -: : .

3 ~ ~ 7 handshake signal) and to interrupt the output of data if the quantity and duration of the lnput data Ls such that the output cannot keep up. This section also receives condltion signals such as "ready for load" and "ready for scan" to generate outputs such as "load command", "scan enable" and "step enable".
7.6.2 Data and Con-trol Buffers and Storage:
Fig. 22 shows the ~irst section 100 in block form.
Data and control bytes come over three 8 bit busses from the 8X300. Data High and Data Low are buffered to drive a set of latches. The abbre-viations used for data will be explained in the next section. The notation used in Fig. 22 indi-cates the bit range and bit weight for each piece of data transmit~ed. The control byte, except for the single bit called the Handshake (HS) bit, is stored directly in an 8 Bit latch 107. When the HS bit is set to one a load clock pulse is generated and supplied to the control byte latch.
The output of this latch provides a three bit word and a set of four single line control signals The 3-bit word is decoded and used to generate 4 clock pulses for selected data latches.
The control line 87 initiates a computat1on and an ON/OFF buffer load. The control line 88 initiates an RV buffer load. The control line 90 enables the generation of a load command to the PTU if the "Ready for Load" condition exists. The AO control signal resets the "Ready for Scan" and "Scan and sync Enable" output conditions. The CO
control signal indicates that a data buffer has been loaded and ls available for unload.
7.6.3 OutPut Data Buffer Address Computation:

~ .~

.
- .: .~ . : . : :
~ : . ~, . :
- . . , : . ~:
~ .:
., . .: ~:-, : , , . :
,. . . :, :: : -:

The second sectlon 102 computes the output data (raster llne) buffer address that ls basically given by:
XR = Xp ~ [Xn + ~X -~ SLCI SC, where X = (YS ~ Yn) (dx + 16K)-dx The notation used here is slightly different than that used previously XR = XREG
Xp = XPOS
SC = SCALE
The slgns of these quantities and the result can be handled by understanding that Xn, ~X, SCL
and SC are two's complement numbers. All but ~X
are provided from the OSC as two's complement num-bers. The quantity ~ is computed in this section where dy/dx is generated by pair o~ ROMs 108 and 110, khe second one providlng the two's comple-ment, as shown in Fig. 23. The K value is pro-vided as a positive number and, when the quantity (dx ~ 15K) is a negative number, the logic for-dx mulates a full 16 bit two's complement number.
The sign of this quantity is under control of the L bit (see Fig. 22).
There are other control modifications to the XR calculation. If the sign of Ys - Yn is nega-tive and the Flare Bit F (Fig. 22) is one, K is forced to equal one. If Ys - Yn is negative and the E Bit is one, the X~ computation is abandoned.
This latter event is described as part of the control logic for this sectionO
Note that both the quantity ax and the second :, . ,. ~
.. , -. ,, . . -., , . . -- . - ~ , ...

3 ~ ~7 term o~ XR require multiplication. This multipli-cation is effected by a time-shared 16 bit multipller 112.
The operation of the section 102 will now be explained with re~erence to Fig. 23. The quantity (Ys ~ Yn) is provided by an adder 114 on the bits (0,3) (this notation meaning bits 0, 1~ 2 and 3) because Yn is always supplied as a two's comple-ment negative number. Since Yn has no ~ractional digits, the adder output and the bits (-4, -1) o~
Ys g to tri-state buffers 116 and 118 and form the multiplicand for the first multiplication.
The sign for the (Ys ~ Yn) computation is deter-mined by the adder and is zero for a negative result. Note that the input data provides only bits (-4, 3), the remaining bits must be provided by the sign bit. The existence of bits (-6, ~5) will be clear when the multiplier is described.
The inputs dy, dx provide 8 bit addresses to the 256 word by 8 bit ROMs 108 and 110 that generate the ratios dx/dy and dx/dy (the double overline meaning two~s complement). The ROMs have tri-state outputs which are wired together and they are selected by the L blt.
The circuits iafter the two ROMs 108 and 110 generate the quantity (dx ~ 16K) in two's comple-dy ment ~orm. The K variable goes to a multiplexer 120 which is under control of the Flare Bit F and the sign ~ (Ys ~ Yn)~ S~Y- The other input o~
the multiplexer is the constant one, which is selected when (Ys ~ Yn) is negative and F is one.
For a non-negatlve condition (L = O), the dx ROM

~. ~
,, :, : :: . . . . .

: ~. .. .
:. i . ~, ~: . . :

~a~3s~ 7 - ` 89--108 ls selected and the K value ls added to zero and forms the welght posltlons (4,7) of the quan-tity. This quantity goes to a trlstate buf~er 122 and is the multiplier for the flrst mult~pllcation.

If the L blt is negatlve~ the dyjdx ROM 110 is selected. The output of the multiplexer 120 goes to an exclusive -or clrcuit 124. For L = 0, its input to the excluslve~or inverts the K value. If ~y/~x is not zero, the EX-OR output is added to zero by a full adder 126 forming the two's comple-ment number. If ~y/~x is ~zero, the K value must be a two's complement (not ~ust inverted). The zero condition is detected by an inverter 128 and an ~~lnput NOR 130 and generates a carry to the ~ ;
adder 126 to produce the two's complement of K.
The multiplier 112 is made up of two 8 bit mulitlplier chlps and three, 8 bit serial shift register chlps formlng a shlft reglster 132. For each shift clock a l bit by 16 blt product is 2Q formed. Thirty two shifts generate a 32 bit pro-duct (which is located in the shift register), but since the full product is not required, only 24 blts are retalned. Since operations are per~ormed least slgnificant bit first, the lowest 8 bit positions are lost. The multiplicand (YS ~ Yn) and the multlpller (dx -~ 16 K) are loaded to have dx the binary polnt between welght positions 5 and 6 of the multlplier and shift registeru The first product then retains weights (-4, 11) and is . . ~ ' , .' ; ~ ' 3 S ~6 located in the two lower order shift register chips. The positions (12, 19) are not used. The first product is ANDed to by an adder 134 and the result is added to SLC by an adder 136. This result goes to a tri-state buffer 138 to provide the multLplicand for the second product. Note that the tri-state buffers and the tri-state ROMs have output controls provided by the appropriate polarity of an M signal.
The second product provides:
P1 = (Xn ~ ~X ~ SLC) (SC) The scale constant SC comes from a tri-state latch in the storage section 100 (Fig. 22) which has an output controlled by the Reverse Video control signal 88 and a pulse SP tha~ occurs at multiplier load time. If the Reverse Video control signal 88 is present~ the SC latch is held in an open cir-cuit state and the shift register product P is forced to zero.
For the second product the binary point for the multiplicand is between ~eight positions 3 and 4 and the multiplier binary point is between weight positions 11 and 12. The product weights are (-8, 15) but only the integer values are required which reside ln the upper two (MSB) shift register positions.
The product P1 is added to Xp by a full adder 140 to form XR, the data register address. Note that for RV control 88 present Pl is zero and Xp becomes the data register address.
7.6.4 Output Data Buffers and Video Logic:
Fig. 24 is a block diagram of the third section 104. The register address goes to a multiplexer 142 that ls controlled by the most significant bit of . .
.. - ..

:. :;:
.,... . ; : , .:::
. . , ~35~ 7 X, the slgn bit. The register address as calcu-lated ls usually a positive number whose MSB is of weLght 12, which provides 8192 positions, which are more than the number of elements on a scan line. If the address calculation results in a negative number, ~hich can happen at the beginning of the scan, the slgn bit of XR (SxR) is used to switch the multlplexer and load a one into address 32. If ~he sign bit is not one but bits 13 or 14 are one, the load operation is abandoned.
The output of the multiplexer 142 is parallel loaded into an up-down counter 144. The counter OUtpllt goes to multiplexers 146 and 148 that select which of the two output data buffers are to be used for loading. The other buffer ad~lress is selected for unloading and thls comes from a counter 150 that is operated from an output clock in the PTU.
The address multiplexer 146 or 148 is selected by the Buffer Select (BUSE) signal. When this signal is low, Buffer One is selected for load and Buffer Two for unload. Considering first the load operation, the controls to the mernory chips are the Chip Enable (C~) and the Wrlte Enable WE. The ~E signal is gated by control logic (not shown) that selects a partlcular chip in the ON, OFF or RV buffer under control of the Boundry Bit (B) for selecting either ON or OFF and the Reverse Video Control signal 88, for selecting the RV buffer.
If there is a ~ero in the selected ON or OFF
buffer location, the W~ signal occurs and writes one into this location. If one is found in the ON
buf`fer location, the WE signal is delayed until the address is incremented by a clock to the up-., , . . ........ . ~, ~ , ~, :

:, .
:, , ~ . . : , : :
..

3 ~

down address counter 152. Note that the direction of counting ls controlled by the B bit. If there is a One ln the 0~ buffer, the address is decre-mented. If the RV buffer is selected and a one is found, a zero is written9 and vice verse. The input for the RV buffer is via a latch 15li and a multiplexer 156.
For the unload sequence all three buffers are enabled by the ~- and WE signals. For the ON and OFF buffers zero is loaded via the BUSE signal level and for the RV buffer input, a ground level is selected by the multiplexer 156. The output level of each buffer is stored in the latch 154.
Exclusvie-or circuits 158 detect if the bits in the ON and OFF buffers are dlfferent and, if so, the output up-down counter 152 is enabled via a multiplexer 160 that selects the condition from the appropriate buf~er. If there is a one in the OFF buffer this goes to the up-down control of the counter 152 and causes an up count. If there is a one in the RV buffer this causes a JK flip flop 162 to change state and the flip flop output is exclusive-ored with the MSB of ~he up-down counter. The output of this exclusive-or circuit 164 goes to a D-flip flop 166 whlch is clockedby a REac Clock pulse from the PTU. The output of the D-flip flop 66 is exclusive-ored with a Global RV
signal and this output is buffered to provide the video output signal to switch the laser beam on 3~ and off.
8. COMPUTER PROGRAMS
8.1 General: The general architecture detailed structure as well as the operatlon of the Output Data Processing Syst~m (OCS) have now been .~ " ,. , . :, , :: : . ., : ,, ,, : : , ~ : : .,:

:-: -: . . ::

" ~35Eii~7 described in such a manner as to enable a person skilled in the digital typesetter art to construct and use a typesetter according to the present invention.
While there has been described what is believed to be the preferred embodiment oE the invention, those skilled in the art will recognize that various changes and modifications may be made thereto without departing from the spirit of the invention, and it is intended to claim all such embodiments as fall within the true scope of the invention.

.

.
:~,

Claims (44)

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
1. A typesetter for the automatic generation of characters comprising, in combination:
(a) input means for providing first digital data specifying the identity, form, size and placement of characters to be typeset;
(b) font storage means for storing and providing second digital data defining the contour of each character of at least one font with respect to a normalized encoding set of first and second coordinates;
(c) electronic data processing means, connected to said input means and said font storage means, for receiving said first and second digital data and producing third digital data defining the boundaries of a plurality of characters, specified by said first digital data, at the points of intersection with a raster line, and (d) character imaging means, connected to said electronic data processing means, receiving said third digital data for writing said characters on an imaging surface.
2. The typesetter recited in claim 1, further comprising:
(e) raster line storage means, connected to said data processing means, for storing said third digital data for at least a portion of said raster line extending the width of at least several characters; and (f) character imaging means, connected to said line storage means, for writing characters on a print medium, said character imaging means including:

(1) means, responsive to said third digital data for creating an image on said print medium for said raster line; and (2) means for moving said print medium in a direction transverse to the direction of raster line image.
3. The typesetter recited in claim 2, wherein said raster line extends substantially the width of said print medium and said line storage means stores said third digital data for the entire raster line.
4. The typesetter recited in claim 2, wherein said line storage means comprises at least one line buffer formed of a plurality of memory elements, each memory element storing a single binary digit corresponding to a respective, unique raster point along said raster line.
5. The typesetter recited in claim 2, wherein said image creating means includes means for forming images of first and second optical characteristics representing light and dark character portions, respectively, on said raster line; and wherein said line storage means includes means for modifying said third digital data, thereby to reverse said first and second optical characteristics on at least a portion of said raster line.
6. The typesetter recited in claim 2, wherein said means for creating an image on said imaging surface includes a scanning device having means for generating a scanning beam and means for moving said scanning beam across said print medium in a scan line, said means for generating said scanning beam including means, responsive to said line storage means, for switching said scanning beam on and off, said scan line forming said raster line on said print medium.
7. The typesetter recited in claim 6, wherein said line storage means includes two line buffers, the binary digits in said first line buffer representing positions on said scan line at which said scanning beam is switched on and the binary digits in said second line buffer representing said positions on said scan line in which said scanning beam is switched off.
8. The typesetter recited in claim 7, wherein said line storage means further includes a third line buffer, the binary digits in said third line buffer representing the positions on said scan line at which the beam on/off switching is reversed.
9. The typesetter recited in claim 1, wherein said raster line extends horizontally parallel to lines of type.
10. The typesetter recited in claim 1, wherein said first digital data provided by said input means further includes page variant commands for the characters to be typeset.
11. The typesetter recited in claim 10, wherein said page variant commands include a wrong reading command for effecting a left-right mirror image on the page.
12. The typesetter recited in claim 10, wherein said page variant commands include a reverse video command for effecting a color reversal for at least a portion of a page.
13. The typesetter recited in claim 1, wherein said first digital data provided by said input means further includes a reverse video command for effecting a color reversal for a rectilinear section of a page.
14. The typesetter recited in claim l, wherein said second digial data includes:
(1) digital numbers defining the first and second coordinates of the start point of a character outline; and (2) digital numbers defining a plurality of straight line vectors extending successively along a character outline from said start point, each vector having a first digital number representing the first coordinate distance and the second digital number representing the second coordinate distance from one end of the vector to the other.
15. The typesetter recited in claim 14, wherein said first and second digital numbers are each 4-bit binary numbers, whereby each vector is defined by one data byte.
16. The typesetter recited in claim 14, wherein at least one of said start points is represented as a digital number defining the vertical distance from the upper edge of the nominal extended em square to the start point, and another digital number defining the horizontal distance from the character left side bearing to the start point.
17. The typesetter recited in claim 14, wherein at least some of said characters are further represented by a digital number defining a control code specifying an end of an outline.
18. The typesetter recited in claim 14, wherein at least some of said characters are further represented by a digital number defining a control code which modifies a stored vector by specifing the addition of a prescribed value to one of said first and second digital numbers of the vector without addition to the other of said first and second digital numbers.
19. The typesetter recited in claim 14, wherein at least some of said characters are further represented by a digital number defining a control code specifying that the beginning of a vector is displaced from the end of its previous vector along one of said first and second coordinates by a given value.
20. The typesetter recited in claim 14, wherein at least some of said characters are further represented by a digital number defining a control code which specifies that at least one subsequent vector occurs in a different quadrant.
21. The typesetter recited in claim 14, wherein said digital numbers are set forth in a prescribed order such that, by their order, said digital numbers are associated with their respective outlines.
22. The typesetter recited in claim 14, wherein said digital numbers defining the first and second coordinates of a start point precede said digital numbers defining the vectors extending from that start point.
23. The typesetter recited in claim 14, wherein the digital numbers defining said plurality of vectors are arranged such that the vectors of an entire string are successively defined before defining the vectors of another string.
24. The typesetter recited in claim 23, wherein said second digital data includes further digital numbers, associated with the digital numbers defining the coord-inates of a start point, which constitute the starting address of the digital numbers defining the vectors of a string, whereby a single vector string may be addressed from a plurality of start points within a font.
25. The typesetter recited in claim 24, wherein said digital numbers defining the coordinates of a start point further specify the quadrant of at least the first vector of the associated, addressed vector string.
26. The typesetter recited in claim 1, wherein said data processing means includes:
(1) a random access memory for storing fourth digital data:
(2) data management means, comprising a first microprocessor, for receiving and storing said first and second digital data and producing and storing said fourth digital data in said random access memory; and (3) outline converter means, comprising a second microprocessor, for receiving said fourth digital data from said random access memory and computing therefrom said third digital data defining the character boundaries intersecting a raster line.
27. The typesetter recited in claim 26, wherein said data management means stores in said random access memory a file of line segments and a file of character outlines for each of said line segments.
28. The typesetter recited in claim 27, wherein said line segments are successively addressed in one direction in said random access memory and said outlines for said line segments are successively addressed in the opposite direction in said random access memory.
29. The typesetter recited in claim 26, wherein said outline converter means computes said third digital data in accordance with the formula:

XR = XP + (XN + .DELTA.X + B)A

where XR = the X distance from one edge of the page to be typeset to the point on the particular character outline which is intersected by the current raster line;
XP=the X distance from said one edge of said page to the left side bearing of the character associated with said particular character outline;
XN=the X position of the start point, with respect to the left side bearing of said associated character, of said particular character outline;
.DELTA.X=the X distance from said outline start point to the point of intersection of said particular character outline by the current raster line; and A and B are sizing and positioning parameters, respectively.
30. The typesetter recited in claim 29, wherein XN and .DELTA.X may assume both positive and negative values.
31. The typesetter recited in claim 29, wherein the characters intersected by the raster lines may be scaled, and wherein said outline converter means computes said third digital data in accordance with the formula:
XR Xp + (XN + .DELTA.X + B)SC
where SC is a scale factor based on a desired set width.
32. The typesetter recited in claim 29, wherein the characters intersected by the raster lines may be slanted, and wherein said outline converter means computes said third digital data in accordance with the formula:
XR = Xp + (XN + .DELTA.X + SLC)A
where SLC=the X direction change in the X position of the point of intersection of the particular character outline caused by the slanting of the characters.
33. The typesetter recited in claim 32, wherein SLC=(A-Ys) (tan B), where A=the Y position of a central neutral axis about which the slant is made;
Ys=the Y position of the current raster line with respect to an edge of the associated character em; and B=the slant angle.
34. The typesetter recited in claim 29, wherein .DELTA.X is given by the expression:
.DELTA.X = (Ys - YN(dx/dy+C), where Ys=the Y position of the current raster line with respect to an edge of the associated character em;
YN=the Y position of the start point of said particular character outline with respect to said edge of the associated character em;
dx/dy=the incremental X and Y distances of a straight line vector from YN along said particular character outline; and C is a positioning parameter.
35. The typesetter recited in claim 34, wherein .DELTA.X is given by the expression:
.DELTA.X=(Ys-YN)(dx/dy+JK), where J is a first constant equal to the number of raster units in either the X or Y direction expressable by the digital number representing the value dx/dy; and K is a second constant equal to an integer.
36. The typesetter recited in claim 35, wherein J = 16.
37. A system for the automatic generation of characters comprising:
an input means for specifying the identity, size and placement of the characters to be generated; a font storage means defining the contour of each of said characters with respect to a normalized encoding set of first and second coordinates; and data processing means, connected to the input means and the font storage means, for receiving the data from said input means and font storage means and identifying the locations of the intersections of the boundaries of a plurality of said specified characters with a raster line.
38. The system of claim 37 wherein said second coordinate distances are defined in data resolution units, said data processing means identifying the raster inter-section in said first coordinate direction corresponding to each successive raster line in the second coordinate direction for scaling said characters to a predetermined size from said normalized encoded set on successive raster lines, each raster line being separated by a raster line unit, each said data resolution unit of said normalized encoded set being related to each said raster line by the expression:
Ys = (Ysl - Yhi)K/point size;
where Yhi is a zero datum level in raster units, Ysl is the raster line level, K is a constant related to the character size in point size units, and Ys is the corresponding data resolution unit level.
39. The system of claim 38 wherein the zero datum level in raster units corresponds to the upper edge of the normalized EM square for each encoded character.
40. The system of claim 38 wherein the zero datum level in raster units, corresponds to a start point for each encoded character and wherein the encoded data includes digital numbers defining the first and second coordinate of the start point of the character outline and digital numbers defining a plurality of straight line vectors extending successively along the character outline from the start point, each vector having a digital number representing the first coordinate distance and the second digital number representing the second coordinate distance from one end of the vector to the other.
41. The system of claim 38 wherein said intersection in said first coordinate direction is given by the expression:
XREG=XPOS?[?XN?(Ys-YN) (dx/dy)(k)]
where XREG is the intersection in the first coordinate direction in raster resolution units, XPOS is the distance in the first coordinate direction from a zero datum level and is in raster resolution units, XN and YN are the starting locations of a vector VN whose slope is dy/dx and are in data resolution units and K is the scaling factor.
42. A system for the automatic generation of characters comprising an input means for providing first digital data specifying the identity, size and placement of the characters to be generated; a font storage means defining the contour of each of said characters with respect to a normalized encoding set of first and second coordinates and for storing and providing second digital data defining each character to be generated; data processing means, connected to said input means and said font storage means, for receiving said first and second digital data and producing third digital data identifying the boundaries of a plurality of said specified characters intersecting a raster line; and a raster line storage means connected to said data processing means for storing said third digital data for at least a portion of said raster line extending the width of at least said plurality of characters and comprising memory elements, with each of said memory elements corresponding to a respective raster point along the raster line.
43. The system of claim 42, wherein said line storage means includes at least two line stores, each of two line stores formed of a plurality of memory elements, with each of said memory elements corresponding to the respective unique raster point along said raster line, the memory elements in a first of said line stores representing the positions on the scan line of which the scanning beam is switched on and the contents of memory elements in the second line store representing the positions on the scan line in which the scanning beam is switched off.
44. The system of claim 43 wherein the line store further includes a third line store, the third line store having a plurality of memory elements, the state of the memory elements in said third line store representing the positions on the scan line of which the beam on and off switching is reversed.
CA000337237A 1978-10-10 1979-10-09 Digital typesetter Expired CA1135867A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US950,242 1978-10-10
US05/950,242 US4231096A (en) 1978-10-10 1978-10-10 Digital typesetter

Publications (1)

Publication Number Publication Date
CA1135867A true CA1135867A (en) 1982-11-16

Family

ID=25490153

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000337237A Expired CA1135867A (en) 1978-10-10 1979-10-09 Digital typesetter

Country Status (8)

Country Link
US (1) US4231096A (en)
JP (1) JPS55105290A (en)
CA (1) CA1135867A (en)
DE (1) DE2940897C2 (en)
FR (1) FR2438543B1 (en)
GB (1) GB2033307B (en)
IT (1) IT1164725B (en)
SE (1) SE444090B (en)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4338673A (en) * 1978-12-05 1982-07-06 Compugraphic Corporation Phototypesetting system and method
US4333153A (en) * 1979-11-26 1982-06-01 Eltra Corporation Scanning and control system for electro optical printer
US4345245A (en) * 1979-11-26 1982-08-17 Eltra Corporation Method and apparatus for arranging segmented character groups in a digital typesetter
GB2074259B (en) * 1980-04-12 1983-08-17 Automotive Prod Co Ltd Rotation sensitive drum brake
US4331955A (en) * 1980-08-07 1982-05-25 Eltra Corporation Method and apparatus for smoothing outlines
US4481602A (en) * 1981-04-06 1984-11-06 International Business Machines Corporation Font compression and decompression for character generation
US4495490A (en) * 1981-05-29 1985-01-22 Ibm Corporation Word processor and display
US4520455A (en) * 1982-05-10 1985-05-28 Xerox Corporation Printing system
US4555763A (en) * 1982-07-01 1985-11-26 Decision Data Computer Corp. Method and apparatus for storage and accessing of characters, and electronic printer employing same
US4591846A (en) * 1982-09-28 1986-05-27 Burroughs Corp. Real time cell specification processor
US4593278A (en) * 1982-09-28 1986-06-03 Burroughs Corp. Real time graphic processor
JPS59101969A (en) * 1982-12-01 1984-06-12 Dainippon Screen Mfg Co Ltd Method and device for processing data of binary picture pattern
DE3317842A1 (en) * 1983-05-17 1984-12-06 Mergenthaler Linotype Gmbh, 6236 Eschborn GRAPHIC REPRODUCTION AND SETTING PROCEDURE OF LETTERING CHARACTERS
US4679153A (en) * 1985-04-26 1987-07-07 R. R. Donnelley & Sons Company Printing systems for typesetter emulation
US5170467A (en) * 1985-07-29 1992-12-08 Dai Nippon Insatsu Kabushiki Kaisha Method of printing leaflets, catalogs or the like
GB2196769A (en) * 1986-10-29 1988-05-05 China Computer Corp Method and apparatus for high resolution character generation
US4839829A (en) * 1986-11-05 1989-06-13 Freedman Henry B Automated printing control system
JPH0820862B2 (en) * 1987-02-27 1996-03-04 キヤノン株式会社 Character processor
US5574842A (en) * 1988-07-29 1996-11-12 Canon Kabushiki Kaisha Document processing apparatus and method for generating a character or symbol pattern across a plurality of lines
US5045869A (en) * 1988-09-16 1991-09-03 Canon Kabushiki Kaisha Printing controller for printing at selected resolutions
US5274365A (en) * 1988-10-26 1993-12-28 Sun Microsystems, Inc. Method and apparatus for minimizing the visual degradation of digital typefaces-character analysis
AU629210B2 (en) * 1988-10-26 1992-10-01 Sun Microsystems, Inc. Method and apparatus for minimizing the visual degradation of digital typefaces
JP2899003B2 (en) * 1988-12-19 1999-06-02 キヤノン株式会社 Character processing apparatus and method
WO1996034745A2 (en) * 1995-05-04 1996-11-07 Linotype-Hell Ag Exposure process and device
US6347256B1 (en) 1998-11-02 2002-02-12 Printcafe System, Inc. Manufacturing process modeling techniques
US6321133B1 (en) 1998-12-04 2001-11-20 Impresse Corporation Method and apparatus for order promising
US6279009B1 (en) 1998-12-04 2001-08-21 Impresse Corporation Dynamic creation of workflows from deterministic models of real world processes
US6278901B1 (en) 1998-12-18 2001-08-21 Impresse Corporation Methods for creating aggregate plans useful in manufacturing environments
US6546364B1 (en) 1998-12-18 2003-04-08 Impresse Corporation Method and apparatus for creating adaptive workflows
US7587336B1 (en) 1999-06-09 2009-09-08 Electronics For Imaging, Inc. Iterative constraint collection scheme for preparation of custom manufacturing contracts

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3226706A (en) * 1965-12-28 Cathode ray tube display and printer controlled by coded mask
US2736770A (en) * 1952-06-25 1956-02-28 Gen Dynamics Corp Printer
US3132206A (en) * 1960-05-06 1964-05-05 Xerox Corp High speed printing apparatus
US3422420A (en) * 1966-03-23 1969-01-14 Rca Corp Display systems
US3389403A (en) * 1966-09-06 1968-06-18 Dresser Ind Laser beam recorder with means to compensate for change in angular velocity of swept beam
US3588870A (en) * 1966-11-03 1971-06-28 Harris Intertype Corp Apparatus for providing graphical images on cathode-ray tubes
US3893079A (en) * 1967-03-20 1975-07-01 Cognitronics Corp Character reading apparatus with improved document scanner
US3448458A (en) * 1967-06-16 1969-06-03 Ncr Co Laser recorder with scanning and display systems
US3593305A (en) * 1968-08-19 1971-07-13 Harris Intertype Corp System and method for making up a newspaper page
US3582905A (en) * 1969-01-13 1971-06-01 Ibm Character generation by improved scan, storage, and decoding apparatus
US3546681A (en) * 1969-01-30 1970-12-08 Rca Corp Programmed method for manipulating electronic fonts in electronic photocomposition systems
US3573849A (en) * 1969-02-04 1971-04-06 Bell Telephone Labor Inc Pattern generating apparatus
US3573847A (en) * 1969-08-22 1971-04-06 Olivetti General Electric Spa Character recorder
US3701999A (en) * 1970-08-21 1972-10-31 Ncr Co Computer output laser microform recording system
US3740743A (en) * 1971-03-29 1973-06-19 Columbia Broadcasting Sys Inc Character generating apparatus for television titling
US3739088A (en) * 1971-05-20 1973-06-12 Perkin Elmer Corp Printing plate production method and apparatus
US3836709A (en) * 1972-04-12 1974-09-17 Grace W R & Co Process and apparatus for preparing printing plates using a photocured image
DE2306185A1 (en) * 1973-02-08 1974-08-15 Agfa Gevaert Ag METHOD AND DEVICE FOR COMPENSATING THE PYRAMID DEFECT OF A MIRROR WHEEL
US3820123A (en) * 1973-04-04 1974-06-25 Quantor Corp Laser microfilm recorder
GB1442544A (en) * 1973-05-11 1976-07-14 Rockwell International Corp Apparatus for use in character generation
US4029947A (en) * 1973-05-11 1977-06-14 Rockwell International Corporation Character generating method and system
US3946150A (en) * 1973-12-20 1976-03-23 Xerox Corporation Optical scanner
US3851951A (en) * 1974-01-16 1974-12-03 Isomet Corp High resolution laser beam recorder with self-focusing acousto-optic scanner
US3898627A (en) * 1974-03-22 1975-08-05 Ibm Optical printer having serializing buffer for use with variable length binary words
US3945318A (en) * 1974-04-08 1976-03-23 Logetronics, Inc. Printing plate blank and image sheet by laser transfer
US3984171A (en) * 1974-08-21 1976-10-05 Image Information Inc. Linear scan system
US4031519A (en) * 1974-11-11 1977-06-21 Ibm Corporation Printer
DE2460147C2 (en) * 1974-12-19 1983-05-05 Ibm Deutschland Gmbh, 7000 Stuttgart Arrangement for decompressing compressed information for characters to be displayed which are composed of black and white areas
US4044363A (en) * 1974-12-23 1977-08-23 Dymo Industries, Inc. Laser photocomposition system and method
US3970359A (en) * 1975-02-03 1976-07-20 Xerox Corporation Flying spot flat field scanner
US4090187A (en) * 1976-05-10 1978-05-16 Thomson-Csf Laboratories, Inc. Television titling system for producing overlapping characters
US4071909A (en) * 1976-09-30 1978-01-31 Xerox Corporation Digital interface system for a printer

Also Published As

Publication number Publication date
DE2940897C2 (en) 1985-01-03
IT7950507A0 (en) 1979-10-09
IT1164725B (en) 1987-04-15
FR2438543B1 (en) 1987-04-17
FR2438543A1 (en) 1980-05-09
DE2940897A1 (en) 1980-04-24
SE444090B (en) 1986-03-17
US4231096A (en) 1980-10-28
JPS55105290A (en) 1980-08-12
GB2033307A (en) 1980-05-21
SE7908363L (en) 1980-04-11
GB2033307B (en) 1983-03-23

Similar Documents

Publication Publication Date Title
CA1135867A (en) Digital typesetter
US4331955A (en) Method and apparatus for smoothing outlines
US4345245A (en) Method and apparatus for arranging segmented character groups in a digital typesetter
US4199815A (en) Typesetter character generating apparatus
US4298945A (en) Character generating method and apparatus
US4254468A (en) Typesetter character generating apparatus
US5081594A (en) Real-time rasterization system for a column-oriented printing apparatus or the like
US4338673A (en) Phototypesetting system and method
US5025325A (en) Graphics scaling method for high resolution printers
EP0016001B1 (en) Method of and apparatus for reproduction of character images, particularly for typesetting apparatus
US3614767A (en) Electronic photocomposing system that forms characters of different point sizes
JPS5936778B2 (en) data printing device
EP0095536B1 (en) The representation of character images in a compact form for computer storage
US4642622A (en) Video signal generating circuit
GB2105151A (en) A magnetic font disc for use in an ultra high resolution photocomposition system employing electronic character generation
CA1317684C (en) Printer image control generator
US3593305A (en) System and method for making up a newspaper page
JPS6055313B2 (en) character printing device
JPS6049958A (en) Kanji printer
JPH0366157B2 (en)
FI77180B (en) FOERFARANDE OCH ANORDNING FOER REGISTRERING AV SKRIVTECKEN.
JP3347756B2 (en) Character generation method and device
JPH02141797A (en) Character pattern generating device
GB2117151A (en) Method and apparatus for dot pattern print control
JPH06251164A (en) Character pattern generating device

Legal Events

Date Code Title Description
MKEX Expiry