Why the question mark?
While discussing this subject, there is often confusion between methods and results. In actuality, only the results are published. The methods are a means to that end, and are important insofar as ease of use is concerned.
RESULTS
Results appear first on a dot matrix printer having both built-in fonts and various graphic modes. Unless you really stretch your printer’s capabilities, you do not EVER go backwards. Attempting to do so requires special techniques to compensate for paper tension and backlash. Reserve this for cases where you want to use the printer as a plotter, perhaps to fill in a predefined blank area on your document.
Aside from using your printer as a plotter, you can work with its built-in fonts, or use any of its graphic modes.
When using built-in fonts, operation is still dot matrix, but the internal graphic program for fonts does tricks that are difficult to duplicate using its user graphic modes. Because ALL operations are dot matrix it is easy for the printer to know exactly where it is with respect to a standard page format. (This is not always true when using plotter type instructions.) One example of internal tricks is “double strike”. The printer makes a second pass with the paper advanced 1/2 the pin spacing (1/72″), or 1/144″. This trick is automatically utilized any time near-letter-quality (NLQ) fonts are being processed.
A second trick is using dot positions in between those that are described in the manual. “BOLD” is accomplished usually, but not always by printing intermediate dots. The exceptions provide special “BOLD” fonts in NLQ format. NLQ operation also uses these intermediate dots at the expense of reduced printing speed.
The DOT MATRIX GRID:
There are two major classes of dot matrix 8 or 9 pin printers. The first class includes the IBM Proprinter and Star, among some others. (The GORILLA BANANA and OLIVETTI PR2300 are in classes by themselves.) These printers have a smallest paper feed of 1/144″.
The second class includes EPSON and true compatibles — even some Star models. These have a smallest line feed of 1/216″ as specified, but also have a line feed of 1/144″ in order to do double strike characters. Internally EPSON deals with paper advances of multiples of 1/432″, but there are no user instructions which make use of this resolution.
The new generation of 24 pin printers gains speed by making essentially three passes into one. For internal operation, this makes NLQ font processing much more efficient. A small price is paid, however, in compatibility with older graphic modes.
Horizontally, you might think that there are 960 dots. In quad-density graphics, some of these dots are printed at intermediate positions, so 1920 dot positions are available. Actually there are a lot more positions available than that, about 5000 in fact. If you doubt this, compare font horizontal dimensions and compute the least common denominator.
The count of horizontal and vertical elementary steps is what the printer uses to keep track of its position on the predefined page, width and length.
EPSON GRAPHIC MODES
With the advent of the EPSON, with its page location cursor memory, it became possible to intermix various graphic modes, and even font operation in a single page line. The necessary printer instructions were provided, but it was left up to the user to figure out what to do with them. This support vacuum meant that only gifted programmers were able to write printer drivers, and most applications were designed to match PC, XT, and other more professional applications. 24 pin printers cater to this application market by providing emulations for CGA, HERCULES, EGA, and some VGA video modes. EPSON 9-pin printers provide only one graphic mode of this type. It is graphic mode #5 which prints a true 1:1 aspect ratio (square) dot pattern. For the TS2068, it is the only mode which reproduces the screen exactly for dumps and selected screen window mappings.
The WIDJUP Co. has prepared an EPSON printer driver and an EDITOR to make it easier for the user to compose his own documents to his own specifications. This includes ALL windowing operations needed to format a full page. Using this facility in a higher level program allows these functions to occur invisible to the user, who can then forget everything but his publication page.
FILLING THE VACUUM
The WIDJUP EDITOR “GRAPHISON” allows you to divide the printed page into single lines, groups of lines, and segments of single lines. When a single line is subdivided, the pieces are designated “L” for left end, “M” for one or more middle pieces, “R” for right end, and “C” for a complete line with both ends. Each of these pieces define a window on the document page. Each window requires a corresponding set of printer commands plus mapping this window somewhere on the screen.
Using graphic programs, these mapped printer windows can be filled with whatever your heart desires. If immediate printing is not desired, SCREEN$ files can be stored to disk, including a flag section identifying which printer command set(s) apply. A single screen can have several windows mapped to it, so efficient storage can be achieved. LARKEN has been working on a similar method.
With the WIDJUP approach, existing graphic programs can be used to create SCREEN$ files. CAD#3 uses this method to create exquisitely detailed printer circuit board masters –a very special type of full-page document.
Whereas data files cannot be contained in limited memory, you can store printer command sequences and the commands themselves for several pages if wanted.
Fortunately for TS2068 users, its video generator (SCLD) is compatible with 8-pin printer graphics. Eight vertical dots on the screen correspond to printer pins. What this means to you is that 8×8, 8×16, 16×16 bit mapped fonts are most easily handled.
Graphically generated fonts are less easily employed because each character must be divided among several window maps. This means that parts of large characters appear on different screens. This is where a good compositing program can be useful.
PHOTOGRAPHIC PRINTER WINDOWS
The concept of “PIXEL” is well understood as the smallest element in a black/white image. With audacity, I use and propose the usage of the term “GIXEL” for the smallest element for gray scale dot matrix reproduction.
There have been some rather clumsy techniques recently published to take advantage of the Ontario club’s design for a video image capture board. GRAPHISON and a WIDJUP grey scale graphics generator are sufficient to create any picture you want from a sequential file of gray scale integers in CHR$ form, or as stored in a memory block.
For highest EPSON resolution and size, each video scan line would have to be sampled 240 times. Groups of four scan lines are needed to integrate gray value over a 4×4 area instead of a dash shaped image fragment. This gives 4×4 “GIXEL”s in 17 shades of gray. Not all shades need be used, and more shades would not improve the average picture much. This gray scale utility is also used to print a colored screen dump sideways in shades of gray corresponding to colors. PIXELs become GIXELs. The 256×176 pixel screen image becomes a 704×1024 dot printer image.
SUMMARY
Available desk-top publishing programs suffer from a common problem. Instead of creating general purpose printer drivers, and taking advantage of high resolution video modes, the first workable solution was siezed upon, creating all kinds of incompatibilities. TS2068 advanced video modes have been just about delegated to history by programmers who insist on violating the rules for remapping memory. DOS systems similarly create mayhem with bank switching rules. Excuses have replaced fixes.
All is not lost. Most existing programs can write to SCREEN$ files. Video capture boards can be compatibly programmed. If high resolution screens cannot presently be used, the availability of a video capture board should encourage its use.
A big help is being able to see what can be done. To merely criticize, without offering better things, is cruel. Please see the graphic samples submitted with this article.
Bill Pedersen, The WIDJUP Co.
