Everything You Wanted To Know About Using Your Printer! (Reprinted from the Puget Sound Atari News, October 1990)
Many computer owners claim the "raison d’etre" for their system is productivity software - data base, word processor, etc. At least, that’s how they justify the time and money spent to a disbelieving spouse; after all, Rule 1 of personal computing is: „Never admit to owning a joystick“.
Assuming the owner is actually going to use the system for more than PacMan, the most important component becomes the printer. Application software is nearly worthless without a means of presenting permanent results. Unfortunately, the printer is often the most under utilized component in a system because it is the least understood.
Using a printer is not terribly complex though it sometimes seems so because of the instruction manual. Usually, all the information you need to learn to control any printer can be found in its manual, albeit with some errors. You often get better results by regarding the manual as a collection of hints to provide a basis for experimentation. Why this is so is anyone’s guess, but you can add this to the collected wisdom of Murphy: „Quality of documentation varies inversely with printer sophistication.“
Printers come in all shapes, sizes, and prices. They may be broadly categorized by the way they mark the paper. Laser machines produce superb results at a superb price. It is my understanding that they print using techniques similar to Xerography but I haven’t really looked into them because of lack of opportunity (read "lack of dollars") to play with one.
"Letter Quality" printers produce characters by the single impact of a complete form, whether it be on a wheel, drum, ball or typewriter key. This category runs from top of the line "Daisy Wheel" machines down to the old Atari 1027. Prices range from high to low and, correspondingly, speeds from fast to dead slow. All however, have two common characteristics: First, if character size and style is changeable, it can only be accomplished by replacing the printing element. Second, they are mechanically complex and usually noisy.
"Dot Matrix", the most commonly used printers, produce images by patterns of dots similar to the way an image is drawn on a television. Dots may be formed by ink jets or thermal paper but most commonly, are produced by "pins" striking a ribbon over the paper. "Nine-Pin" dot matrix machines are the subject of this discussion.
While it is possible to find older models with fewer, the standard is nine pins, though only eight are normally used at any one time. The pins, also called "wires", are arranged in a vertical column. Images are produced by moving this column across the page while "firing" or "striking" the pins in various combinations. The difference from a television is that the printer does up to nine rows of pins at a time.
Why use only eight of nine, and why these numbers in the first place? Well, eight is the closest thing you will find to a "magic number" in the world of computing because a "byte", which is normally the smallest usable amount of data, is always made up of eight bits. The printer is able to interpret the bits separately, so the bits of a single byte can be used to control firing of eight pins.
The ninth pin is there for things like underlining or descenders on lower case letters. The printer normally only uses eight pins but it may switch between the top or bottom eight. Try underlining on most printers and you’ll notice that the underline runs into lower case descenders. There are nine-pin graphics modes but they are rarely used as a complete second data byte is required for the addition of only one more pin. Essentially, you can ignore the existence of the ninth pin unless you want to get into more advanced subjects like download characters.
"27-Pin", also called "24-Pin", printers are nearly identical, but have three such pin columns mounted closely side by side with a slight vertical offset between each. This arrangement produces much higher quality characters than is possible with nine pins. Once you get beyond simple text printing, these become more complex as you obviously need at least one byte to control eight of the pins in each of the three columns and the equivalent of the nine-pin mode would require a total of six data bytes.
The key to understanding how dot matrix printers work, and therefore, what is and is not possible, lies in the name. They cannot produce any image other than a "Dot" - everything they print is formed from dots. The "Matrix" part of the name describes something which, physically, does not exist. It is a human concept represented by a collection of bytes in the printer’s memory. The printer’s "Firmware" (program in ROM) interprets these as a pattern of pins to fire to form a particular character. Mechanically, that’s it: the printer can produce only dots. Firmware and software control pin firing, paper feed, and carriage motion to arrange these on the paper.
While printer response to any particular byte is governed by firmware, this response can be modified. Sometimes this can be done by switches but many features are not controllable except by software. In other words, the computer must command the printer remotely.
Like any other kind of remote control, communication is required. A small part of this consists of actual electronic signals. Most, however, is exercised by the computer talking to the printer in a language it understands: patterns or sequences of data bytes. This is where the user enters the picture via a word processor or other program.
Getting what you want out of your system requires you to give both the printer and the word processor the proper commands. The word processor contains a block of data holding the information it needs to control your particular printer. This is changeable, normally by load from disk. There are numerous names used to describe these: "Printer Driver", "Printer Description", and "Configuration" files being some of the more common. No matter what they’re called, they are functionally bilingual dictionaries which the word processor uses to translate something like "underline from here to there" into language the printer understands.
If your system is not producing up to its capabilities, the source of the problem may very well be this file. Most word processors come with a utility program to allow you to change or customize the printer driver. The catch is you’ve got to read and understand the documentation, both for the word processor and the printer, and you have to know what is and is not possible. Understanding of a few terms and measurements aids in this task.
"Buffer" is commonly used but not always understood. A buffer is just a reserved area of memory for temporary storage of bytes. When dealing with printers, there are at least two buffers involved, one in the computer and one in the printer. Eight-bitters have a buffer in the interface as well which serves the same purposes as printer buffers.
Buffers allow transmission of multiple byte blocks of data. This decreases time lost on "Handshaking" signals and calculation of checksums. Also, since the printer can’t print anywhere near as fast as the computer can send, it accepts and stores as many bytes as it can so that the computer is free to move on to other business sooner. Obviously the bigger the printer buffer, the sooner the transmission is completed.
The second purpose of the printer (and interface) buffer is to allow it to examine and modify the data before it is printed. It has to sort out printable data from commands, make any required conversions such as ATASCII to ASCII or addition of auto line feeds, and possibly, calculate right justification, etc. Once this is done, it determines how, and at what point in the printout, to apply the commands.
Most printers actually have two buffers - everything that comes in goes to the "Receive Buffer". Printable stuff is then moved and held in the "Print Buffer". The importance of this distinction is that some commands affect only the print buffer - you have to read and decipher the book.