Text orientation system for dot matrix printers

A text orientation system for dot matrix printers includes a character adjust logic for orienting an image to be printed relative to a physical page. A first register in the character adjust logic receives a word of memory for either placement or character address. Each word has base bits and orientation bits. When the word is for address, the first register separates the base bits from the orientation bits and forwards the base bits to an adder and the orientation bits to an orientation adjust logic. Other bits of orientation adjust from a character processor are loaded into a second register and then to the orientation adjust logic for combining with orientation bits. A resulting adjusted signal goes to a Mux for selecting a displacement to produce a displacement signal. The displacement signal is then added to the previously separated base bits and forwarded as an adjusted character address to a character generator address. When the word is for placement, the first register also separates the base and orientation bits. The base bits are forwarded to a microprocessor in the character processor. The orientation bits are adjusted in the orientation adjust logic similar to the orientation bits of the address. The resulting adjusted signal also goes to the microprocessor in the character processor.

FIELD OF THE INVENTION 
This invention relates generally to electrical computers and data 
processing systems and more particularly to a system for controlling a dot 
matrix printer for generating logical pages in multiple orientations on a 
physical page. 
BACKGROUND DESCRIPTION 
Computer controlled printing systems have been used for printing business 
forms, checks, etc. To be efficient, several logical pages or forms are 
printed in multiple orientations on a physical page. Such systems 
typically include a printer peripherally controlled by a host computer. A 
protocol processor accepts the high level language from the host computer 
and breaks it down to a form recognizable by the printer. A page buffer 
typically is interfaced to store the sequential commands for the printer. 
Also, a bit map memory is used in the system to contain 1 bit for each dot 
to be printed on a logical page. Printers used in such systems require 
both target orientation and target positioning information to be included 
with text data. 
It would be advantageous to provide improved means for generating logical 
pages within the printer's page buffer without regard to target 
orientation on the physical page. In that way a logical page could be 
positioned in multiple orientations on the physical page without requiring 
the host computer to retransmit the logical page. Also, reduced channel 
thruput could be realized if a the same buffered logical page is used many 
times, but in different orientations. Further, print files could be used 
without change on different forms and different printers of the family; 
for example, cut sheet vs. continuous sheet, impact vs. non-impact. 
The foregoing illustrates limitations known to exist in present printing 
system devices. Thus, it is apparent that it would be advantageous to 
provide an alternative directed to overcoming one or more of the 
limitations set forth above. Accordingly, a suitable alternative is 
provided including features more fully disclosed hereinafter. 
SUMMARY OF THE INVENTION 
In one aspect of the present invention, this is accomplished by providing 
an improved character processor in a text orientation system for dot 
matrix printers including means for receiving a word of memory having base 
bits and orientation bits and for separating the orientation bits from the 
base bits. A buffered register is loaded with the bits of orientation 
adjust. Means are provided for receiving the orientation bits and adding 
them to the bits of orientation adjust to produce adjusted signal bits. 
Means are also provided for receiving the adjusted signal bits for 
selecting a displacement code to produce a displacement signal. The 
displacement code signal is then added to the base bits previously 
separated from the orientation bits to form a new adjusted character 
address. 
The foregoing and other aspects will become apparent from the following 
detailed description of the invention when considered in conjunction with 
the accompanying drawing. It is to be expressly understood, however, that 
the drawing is not intended as a definition of the invention but is for 
the purpose of illustration only.

DESCRIPTION OF THE PREFERRED EMBODIMENT 
FIG. 1 illustrates a known printer system generally designated 100 
including a host or main computer 112, operably connected to a printer 
system 124. Included in printer system 124 is a protocol processor 114, a 
page buffer 116, a character processor 118, a bit map memory 120 and a 
print head 122. Host 112 may be any well known mainframe computer for the 
purpose of controlling printer system 124. Protocol processor 114 is a 
microprocessor which accepts high level language from host 112 and breaks 
it down to a form recognizable by character processor 118. Page buffer 116 
is a large memory which stores all sequential commands for character 
processor 118 which, functions to orient the physical image to be printed 
relative to the page. Bit map memory 120 is a memory containing 1 bit for 
each dot to be printed on a logic page. Print head 122 is commercially 
available and may be for example a laser type, a non-impact or impact 
type, dot matrix printer of either the continuous form or cut sheet paper 
type. 
Referring now to FIG. 2, the present invention character processor 118 is 
illustrated in further detail for receiving a signal from page buffer 116, 
processing the signal and forwarding the processed signal to bit map 
memory 120. The signal received from page buffer 116 includes a word of 
memory. The word may include 14 base bits of character generator address 
or a character placement command as illustrated in FIG. 3. Both the 
character generator addresses and character placement commands employed to 
produce a logical page, are also provided with a novel 2 bit operand field 
including orientation bits B and A for a total of 16 bits per word. These 
orientation bits specify the orientation of the character to be printed on 
the logical page. All 16 word bits are received as a signal in a character 
adjust logic 126, FIG. 2, for the purpose of adjusting bits B and A to 
place the image in the desired orientation for printing on the physical 
page. 
Adjustment of bits B and A relate to orientation as follows: 
______________________________________ 
B A Orientation 
______________________________________ 
0 0 0.degree. 
0 1 90.degree. 
1 0 180.degree. 
1 1 270.degree. 
______________________________________ 
Thus it can be seen for example, referring to FIG. 4, that adjustment of 
bits B and A from 00 to 01 results in changing an image from a common 
orientation of 0.degree. to a reorientation of 90.degree.. 
The signal which the character adjust logic 126 receives, see FIGS. 2 and 
5, from page buffer 116 includes the above-mentioned 16 word bits. This 
signal, which may be a character generator address or a character 
placement command, is loaded into a register 128 where the B and A operand 
bits are separated from the other 14 address bits. The B and A bits are 
then received by an orientation adjust logic 130. Adjust logic 130 may be 
an integrated logic circuit such as a commercially available 4-bit binary 
full adder. Also feeding into adjust logic 130 is a prestored amount of 
orientation adjust in the form of 2 bits loaded into a register 131 from a 
microprocessor or programmable logic in character processor 118. A 
resulting signal from adjust logic 130 includes the B and A bits which 
have now been adjusted to the desired orientation. If the signal received 
by character adjust logic 126 is for placement, then the resulting 
adjusted B, A signal from adjust logic 130 is directly coupled to the 
microprocessor 133 in character processor 118 as do the other 14 address 
bits of that word. If the signal received by character adjust logic 126 is 
for a character address, then the adjusted B, A signal from adjust logic 
130 goes to a mux 132 for selection of the displacement signal and an 
adjusted character generator address. Such displacement signal is 
illustrated by the displacement 0, D.sub.1 +1, D.sub.1 and D.sub.1 
+D.sub.2. A resulting displacement signal goes to an adder 136 which adds 
the displacement signal to the 14-bit character address signal received 
from register 128. As a result, an adjusted character address signal shown 
in FIG. 5 is coupled to a character generator address register/counter 134 
shown in FIG. 2. 
The adjusted orientation B bit from adjust logic 130, is also used to 
condition the increment/decrement input of character generator address 
register/counter 134. The output of character generator address 
register/counter 134 addresses a character generator memory 138, one micro 
column at a time. Vertical micro columns in memory 138 are illustrated in 
FIG. 4 showing character width and height dimensions D.sub.1 and D.sub.2. 
A bit clock is connected to provide a clocking signal into character 
generator address register/counter 134 as a means of controlling the 
access of character generator memory 138. A new character input in 
character generator address register/counter 134 loads the starting 
address of the next character to be accessed from character generator 
memory 138. 
The output of character generator memory 138 (bits 0-49) are applied to two 
inputs 0 and, 1 of a 180.degree. Mux designated 144. Mux 144 is controlled 
by the adjusted orientation B bit from adjust logic 130. The input 0, of 
Mux 144 has the character generator bits from memory 138 connected 0 to 49 
from top to bottom as viewed in FIG. 2. The other input 1, of Mux 144 has 
the character generator bits from memory 138 connected from 49 to 0 from 
top to bottom as viewed in FIG. 2. The output of Mux 144 feeds pixel 
information into an interface or conditioning logic 146 which is printed 
out by printer 122 controls the dot matrix input to bit map memory 120. 
The foregoing has described a text orientation system for dot matrix 
printers 124 and including means for orienting an image to be printed 
relative to a physical page. A word of memory which, including base bits 
and orientation bits, is received and the orientation bits are separated 
from the base bits. The orientation bits are then adjusted to produce an 
adjusted signal for placing the image in a desired orientation on a 
physical page. If the word is for address generation the adjusted signal 
then selects a displacement signal which is added to the base bits. The 
resulting signal is forwarded to a character generator address 
register/counter 134 and a character generator memory 138. A 180.degree. 
Mux receives the signal from the character generator memory 138 and 
forwards the signal to the conditioning logic 146 which is connected to 
control a print head 122. If the word is for placement, the adjusted 
signal and the base bits go directly to a microprocessor 133 in the 
character processor 118 portion of the printer system 124. 
In this way, logical pages are generated within the printer's page buffer 
116 without regard to target orientation on the physical page. Thus, the 
logical page or pages can be positioned in multiple orientations on the 
physical page without requiring the host computer 112 to retransmit the 
logical page to the printer system 24. 
FIG. 6 illustrates how the novel character processor 118 can read the 
characters shown diagrammatically in memory 138 in FIG. 4 as vertical 
micro columns in reverse or forward order and by selecting inverted or 
standard position order in mux 144 rotate any character 180.degree.. Thus, 
it will be understood that any character stored in memory 138 can be 
printed out as a part of a logical page in 0.degree., 90.degree., 
180.degree. or 270.degree. orientation at any desired position on a 
physical page and that any desired form (logical page) may be printed out 
with other logical pages on the same physical page to provide a set of 
desired forms on the same physical page.