Classic Computer Magazine Archive CREATIVE COMPUTING VOL. 9, NO. 6 / JUNE 1983 / PAGE 147

A printing slave ready to serve. (evaluation) Ernest E. Mau.

A Printing Slave Ready to Serve

Have you ever considered how much time you waste waiting on your printer to catch up with your computer? Ever wonder what it would be like to print one thing while working on another? Ever face the problem of switching between a serial printer and a parallel one? Ever been disturbed by program listings printed right over the fold in your paper, running past the right margin, or formatted so that they are difficult to read? Ever wished you could get printouts with header lines and page numbers without preprocessing a text file through a word processor?

All these things, and more, are possible. Commonly called "printing spoolers' or "buffered interfaces,' devices do exist to aid you with varying combinations of those problems. The available equipment ranges from plug-in interface cards with their own dedicated memories, through "dumb' spoolers that do nothing more than capture data from a computer and retramsmit to the printer, to truly "intelligent' printer interfaces.

Compulink Corporation's SooperSpooler, Model SS-1000, fits into that last category--an intelligent, multi-function interface. A self-contained desktop unit, SooperSpooler is a functional 2 MHz Z80 based "slave' computer installed in the communication line between the "master' computer and the printer. There it acts as a postprocessor for the data being printed. Notice that I have called it a postprocessor and not merely a buffer.

A buffer would serve to capture data from the computer at its given transmission rate, store the data panded to 62K ($159), and two RS-232C serial ports ($95) can be added either at the factory or as user-installed modifications. The unit I tested is the full 62K configuration with two parallel and two serial ports.

The unit can be controlled by switches, software, or both. Using just the switches, it provides a full or "hard' system reset to clear any stored data and temporarily, and then retransmit to the printer at a rate acceptable to that device. SooperSpooler does that, but as just one of its functions.

The standard SooperSpooler configuration is equipped with 16K of RAM and two Centronics-compatible 36-pin interface ports, one for input from a computer and the other for out-put to a printer. It retails for $349. As separate options, the memory can be excontrol parameters, a "soft' reset to clear just the data buffer without affecting control parameters, a complete self test of RAM and the control ROM, and several general print formatting functions.

Using just two front panel switches singly or in combination, the unit can be set for automatic space compression, automatic pagination, single sheet paper feeding, or combinations thereof.

Under software control from the master computer, all these functions plus several others accessible without using the switches are available. By transmitting the proper instructions from the master computer, it is possible to have SooperSpooler print specific headers at the top of each page, number the pages sequentially, format the page, format individual lines, and override hardware switch settings controlling interface or printer characteristics.

Under software, the page format controls affect the overall page length, the number of printed lines per page (top and bottom margins), and the position of the right printing margin with respect to the page edge. The line format controls affect both left and right printing margins and allow a selectable indent to be set for data lines that overflow from one printed line to the next. Using these controls, Basic program listings, unformatted text files, and other printouts can be printed for maximum readability.


The buffering and print formatting features alone are invaluable for serious computer use involving large amounts of printing. But SooperSpooler offers even more advantages in the hardware interfaces themselves. The ideal configuration is, of course, the 62K version equipped with both the dual parallel and dual serial ports. The presence of both parallel and serial communication is important when there are multiple computers or multiple printers that can be mixed and matched.

To illustrate, serial input and output can be performed at different transmission speeds because the rates are independently switch selectable. Therefore, SooperSpooler can function as a baud rate changer. Consider the case of a typical daisywheel printer having a maximum input rate of 1200 baud, which is somewhat slow when the computer might be capable of transmitting at 9600 or even 19,200 baud. With proper switch selection, SooperSpooler can accept incoming data from the computer at up to 19,200 baud and retransmit at 1200 baud while not "overrunning' the capabilities of the printer.

Furthermore, SooperSpooler can receive and retransmit data through various port combinations. Data from the computer can be received through either the serial or parallel input port and can be transmitted through either the serial or parallel output port. This means a computer with a parallel interface can output to a serial printer, or a printer with a serial interface can output to a parallel printer. It also means that one computer can drive either of two printers, either of two computers can drive one printer, or either of two computers can drive either of two printers. The only limitation is that serial and parallel printers cannot be operated simultaneously --the output port is switch selected on the SooperSpooler, but either input port is recognized without switch settings.


So far, so good. I have shown that SooperSpooler has some intersting, useful, and even delightful capabilities. You are probably getting the feeling that I have developed a particular fondness for this device, and you are right. But, like any device, it has its flaws--flaws that may be more serious for some users than for others but ones that are worthy of mention.

The most annoying of all, is the location of the selection switch to change between parallel and serial printer output. It is on a dip or "pencil' switch array accessible through an opening in the rear panel of the device. This means that the unit usually must be moved and a small hooked tool such as a bent paper clip inserted into the access opening to reselect the output port (while power is off). For single computer/single printer installations this isn't a problem because there is no need for port selection after the initial installation. However, it is inconvenient when using two printers with the SooperSpooler as the switching device. There is also a risk of dislodging a cable connector in the process of moving the unit. It would have been better had Compulink designed the unit with a front switch for the port selection and "protected' that switch so the change-over could be made without turning the unit off.

There is no provision for switching the spooler off-line to make it transparent to the communication line. Certain applications such as word processing often are performed best without spooling, especially if there is any expectation of interruption. With the spooler in place, all data are buffered so the "interrupt/resume printing' functions incorporated into many programs become inoperative. By the time an interrupt is generated from the keyboard, the spooler has stored data far beyond that point, so the material continues to print.

Of course, any or all "intelligent' postprocessing features including space compression, page formatting, and line formatting, can be turned off. But this cannot be done while a printing run is in progress.

Compulink has taken steps to prevent the misconnection of devices at the ports. On the parallel side, the computer and printer connectors are rotated 180~ from each other. On the serial side, however, the printer port is a male connector (plug) while the computer port is a female connector (socket). Often, printers with built-in interface cables have a male connector on the computer end, which won't mate with the male connector on the SooperSpooler without installing a separate adapter or "gender changer.' Similarly, most computers are equipped with female interface connectors, requiring either a female-to-female cable from the SooperSpooler to the computer instead of the more usual male-to-female cable or another gender changer. Compulink has advised me that they will swap connectors if a unit is ordered for a particular setup such as two male serial connectors, two female connectors, or the male and female connectors reversed from the "normal' configuration.

As has been pointed out, the baud rates on the serial input and output ports are independently selectable so data may be received at one rate and transmitted at another. However, the other interface characteristics are not independent; what is selected for one port also is selected for the other. These parameters include choosing RS-232C handshaking signals vs. software protocol, seven- or eight-bit character lengths, one or two stop bits, parity type, and parity enabling.

Therefore, SooperSpooler normally cannot be used as a universal interface between two otherwise incompatible devices. If a printer won't work with a computer because of a difference in character length or protocol, SooperSpooler won't solve the problem. On the other hand, Compulink has advised me that they can equip units with special control ROMs for features such as differing protocols at the two ports offering this "customization' service as a product-support feature for a nominal fee.

Similarly, the serial interface doesn't account for possible variations in RS-232C signal lines such as a "2-3 cross-over' needed when data transmitting and receiving lines are defined differently in the printer and master computer, jumpering particular handshaking lines, etc.

The parallel ports supposedly are "plug in and go' with optional cables available from Compulink to account for differences between various printers having Centronics-like 36-pin connectors. Yet some caution is necessary even here. There is at least one computer interface that simply won't communicate with the SooperSpooer, specifically the Inter-active Structures Pkaso board for the Apple II and Epson MX-80 printer.

In general, some care must be exercised in attempting to insert a SooperSpooler between a printer and a computer interface designed specifically for that printer. Since the unit has no provision for changing any parallel port signals via switch control, it would be a good idea to verify compatibility with both Compulink and the interface manufacturer before purchasing the units.

My final observation doesn't pertain to a flaw, but an operational quirk that causes some concern when first encountered. I have noticed it only when inputting to the SooperSpooler through the serial port, and then it is most prevalent at 1200 baud. As data are transmitted from the computer, the printer activates immediately and progresses at maximum speed. Simultaneously, the digital display on the SooperSpooler starts indicating kilobytes of data in the buffer. A few seconds later, the printer begins to hesitate, reducing its printout to a half dozen or so characters per second, then resumes full speed, hesitates again, and so on. This continues until the digital indicator reaches about 5K to 7K of buffer storage, at which point the printer takes off again.

Apparently, data coming in from the computer take priority over data going out to the printer when only a small portion of the buffer is loaded. Therefore, printer output is halted intermittently while data from the computer are being buffered. Once the buffer is filled with several thousand bytes, the situation seems to reverse, with data going out to the printer taking priority over that coming in from the computer.


Despite these few problem areas, SooperSpooler is an excellent choice for a useful and usable postprocessor and printing buffer. It performs as advertised and as represented in the documentation. Most data transmissions are not performed to the qualifying specs, so it is not realistic to expect the transfer of 20 pages of text to be reduced from 21 minutes to 16 seconds as shown in the brochure.

The 49-page instruction manual is excellent. Written in clear, understandable language, it fully documents all the features and methods for using them. It even provides comprehensive samples of software control routines and is thoroughly indexed for quick references.

Compulink Corporation, 1840 Industrial Circle, Longmont, CO 80501, (303) 651-2014.

Products: Compulink SooperSpooler Model SS-1000 (computer apparatus)