Character generator
A character generator is that part of a computer or other digitally controlled output device that converts a character code - for example to ASCII - into a human-readable character ( glyph ). This usually requires both hardware and software .
Based on such character generators, terminals or graphic screens and thus font generators can then be controlled, but lettering can also be put on paper using a plotter or other mechanical systems.
Text terminals
The most common version of a screen displaying text only (see text mode ) uses a character generator ROM which contains a matrix of fixed size for each character code, with each set bit corresponding to a (light) pixel to be displayed . Character resolutions of 5 × 7 (minimal) to 8 × 8 (typical) and even 16 × 16 (rare) occur here.
The pixel data of this ROM is either used by a corresponding video module such as the 6845 or by its own video logic built up from discrete logic gates , for example in the PET 2001 or the Apple II .
In order to display characters in an 8 × 8 dot matrix , for example , this video logic must display 8 individual lines for one line of text. For each individual line and in the line for each character position, the character code is first fetched from the video memory, this is sent to the input of the character generator ROM, together with the numerical code of the individual line (0-7, counted within a character), the output of which is then transferred to In this case, the next 8 pixels result next to each other, which are finally passed to the video output by a shift register in the pixel frequency.
A special approach was taken in the early days of IT. In some cases, RAM modules were not yet used in the video memory , but with solutions that are exotic from today's point of view, such as delay lines as short-term memory. Similar to later with the line memory of the early PAL televisions, the data was fed sequentially by ultrasound into a spiral-shaped glass cable and then increasingly fed back from the output to the input. Specifically, this technology was used by the ICL company in their terminals until the 1970s. The problem here is that you can only read out a character once during an image and not eight times for each individual line one after the other, as is necessary with the matrix display. As a result, ICL had to laboriously design the deflection electronics in these terminals in such a way that the electron beam also built up a small 8 × 8 grid at each character position so that all the pixels of a character could be output in one go.
As with an older typewriter , with such a technology each character had its fixed position in a rectangular grid on the display. The distances between the characters were constant ( mono spaced , see non-proportional font ).
In later developments, individual attributes could be added to each individual character on the screen , e.g. B. Inverse display, different levels of brightness or even different colors.
In order to be able to display graphics such as mathematical curves or game figures and environments on such a text terminal with certain restrictions, the character set also often provided block graphics characters.
Representation on graphics-capable computer displays
If the display part is designed to display any bit pattern, additional freedom is also gained for the display of text. In particular, this enables the display of proportional font including kerning , the variation of the font size and the font itself ( font ). Antialiasing can be implemented with additional use of gray levels . Colored or graphically creatively designed lettering is also possible.
Several standards have been developed for the representation of characters of any shape, which typically combine the characters piece by piece from Bézier curves . Examples are the TrueType standard from Microsoft and the Postscript fonts from Adobe . These standards also specify the file format in which these fonts are distributed and loaded into memory from the hard disk .
These display options require extensive support from operating system components . So they can only be used when the operating system is fully loaded. Until then, PCs have used pure text representations in their boot process, as in the previous chapter, which can be generated completely from the ROM.
Representation on plotters
In plotters and similar mechanical output devices, a single character is not represented by a pixel matrix, but is composed of lines. The character generator then initially consists of a ROM, but no pixel bits are stored in this, but the point coordinates of the elementary lines of a character representation, plus bits that, for. B. show whether the pen has to be lifted at the end of this single line (and only lowered again at the beginning of the next) and whether this was the last line of this character. The point coordinates are in turn in a basic grid of z. B. 16 × 16 points arranged.
The plotter's firmware converts the line coordinates read from the ROM into movement commands for lines . In doing so, it can carry out further processing, such as adjustable scaling of the data, i.e. the character size (for which only the number of elementary steps for a line grid width of the character grid needs to be set), or rotations of the font in each direction.
A higher software level then ensures that the letters of a word are correctly placed next to one another. As with graphic screens, additional effects can be implemented here, such as the arrangement of letters along a curve or continuous changes in character sizes.
In individual cases, characters are not only composed of straight lines, but also of circular or elliptical pieces or Bézier curves, which makes the representation more natural.
literature
- William M. Newman, Robert F. Sproull: Principles of interactive computer graphics. McGraw-Hill, New York NY et al. 1973, ISBN 0-07-046337-9 , pp. 70-72.