Page Numbers: Yes X: 530 Y: 10.5" First Page: 1 Not-on-first-page
Columns: 1 Edge Margin: .6" Between Columns: .4"
Margins: Top: 1.3" Bottom: 1"
Line Numbers: No Modulus: 5 Page-relative
Heading: Not-on-first-page
Press Printer Operation
Copyright Xerox Corporation 1980
Computer Sciences Laboratory
November 3, 1980

To:Press Users

From:Bob Sproull

Press Printer Operation

Filed on
This memo outlines the procedures for printing Press files on a number of ROS (raster-scanned) Xerox experimental printers. It is also a reference manual for the Press program, and includes detailed instructions concerning its use.
1. Printing Press Files
The Press printing program is named "Press," and is run by hand (i.e., it is not a server like Spruce). Therefore, you should boot the disk and use FTP or EFTP to retrieve the file you wish to print. (Some installations provide a simple "server" facility by means of an Executive command file that alternates between EFTP and Press.) Because the disk is shared by many users, it is considerate to delete your Press file after you have finished printing.
The basic command to Press is "Print," followed by a file name. Thus
>Press print
will invoke the process of printing the file "" The Press command words (e.g., "print" above) can be abbreviated as long as they remain unambiguous.
If you wish to override the number of copies specified in the Press file (usually 1), append the clause "copies n" to the end of the command:
>Press print copies 3
If you wish to print certain pages selectively, you may append the clause "page n" or "pages n to m" to the command:
>Press print page 2
>Press print pages 3 to 4
Press takes some time to format the files properly and begin printing. If you simply wish additional copies of a file you have previously printed, you may avoid the formatting delay by using the "reprint" clause in place of the "print file" clause:
>Press reprint page 2
>Press repr cop 2
Additional commands are explained in the "Press Reference Manual," below.
Troubles While Printing
Press lets you know that it is working by flashing a cursor at you. The top of the cursor displays a character denoting the pass (F=font, S=prescan, C=scan convert, P=print) and a digit denoting the page number it is working on.
If the printer runs out of paper, the cursor will display the code "K1" (for "key operator") in the cursor. Add more paper to the tray, and hit the <return> key.
If the printer jams, the code "K2" will be displayed in the cursor. Follow the machine-dependent instructions for clearing jams for your particular model.
Other printer malfunctions cause the code "K0" to appear. Unless it is clear what to do to make the printer ready (e.g., turn it on!), you should summon help.
2. Powering Up and Down
The optical systems in some ROS printers are delicate. Please observe any locally posted cautions when you turn your system on or off.
Powering Up
1. The Alto. Make sure that a Model 31 disk pack labeled "Current Press Program" is in the machine and loaded. If the disk will not boot or if it demonstrates other bad behavior, there is no sense in continuing.
2. The Trident drive. If the green light on the front of the drive is illuminated, a pack is mounted and running. The chances are excellent that this is the Press pack and that you can proceed to step 3. If you doubt, read on:
Make sure power is on: If the Trident drive is making no noise whatsoever, the power is off. At the back of the drive is a toggle switch that should be flipped up to the "on" position. Noise should ensue.
To dismount a pack: Flip the black switch next to the green light to the "stop" position, and wait for the green light to stop flashing. Open the cover of the drive carefully by releasing the latch near the forward edge of the lid. Now you are in a position to read the label on the top of the disk pack. If you wish to remove the pack, retrieve the plastic pack housing (the top part, with the handle), lower it slowly over the pack, and carefully rotate the handle counter-clockwise ("unscrewing") until faint clicks are heard repeatedly. Now carefully lift the pack out by the handle and place it on the pack housing base.
To mount a pack: Retrieve the pack in its housing, and remove the base. Lower the pack into the Trident drive, and turn the handle clockwise ("screwing in") until it stops. Do not over-tighten. Now lift out the pack housing by the handle. Close the lid to the Trident. Flip the black switch from "stop" to "start." The green light should flash for several seconds and the remain lighted. If this is not the case, something is wrong.
3. The printer. Follow the appropriate procedures for your model.
Powering Down
Follow locally posted procedures.
3. Trouble-Shooting and Trouble Reporting
"Wrong" pages. If Press prints your document, but it doesn’t seem to have the right things on it, it may be that the Press file was invalid in some trivial way that the program forgave. You can run Press again, with the "verbose" mode enabled, and see if it indicates any problems. To invoke "verbose" behavior, use the /V switch:
>Press/V pri
Illegal Press files. If Press complains that your file is illegal, you should of course suspect the method used to generate the file! The program ReadPress, which prints on your screen a quasi-intelligible dump of the Press file, may be helpful in tracking down the problem. The command
will bless you with more information that you can handle!

Press Reference Manual
Press version 1.3

The repertoire of Press commands offers several options when a file is printed. The format of the command line is:
>Press/switches option <arg> option <arg> ...
The "switches" govern the overall operation of Press; the "options" label the specific options being used and can be abbreviated as long as they remain unambiguous; most of these options require arguments.
PrintThis is the main command to print a Press file. The argument is the name of the file to be printed. Example: "Press print".
CopiesThis option takes a single number as an argument, and is used to control the number of copies of the document that should be printed. Default is "Copies 1."
PagesThis option governs which pages of a file will be printed. Standard use is with the "to" option: "Press print pages 2 to 3". If the page range does not match the page range of the Press file, the largest overlap of the two ranges is printed. Default is "pages 1 to 99999."
RePrintThe file most recently printed is re-printed -- this usually avoids time-consuming scan-conversion processes. The "Pages" and "Copies" options apply to reprinting.
XOffsetThis option allows the page to be displaced in the X direction on the page, by an amount given by the argument (in inches). Example: "Press print xoffset 1.5". Default is "Xoffset 0."
YOffsetThis verb is analogous to XOffset, but governs displacement in the vertical direction.
ScreenThis option overrides default settings for halftone screen frequency. The argument is the number of halftone dots per inch.
AmplitudeThis option overrides default settings for halftone screen amplitude (normally 100%). The argument is expressed as a percentage of the image signal being halftoned.
AngleThis option overrides the default setting for the angle of the halftone screen used. The argument is given in degrees.
ResolutionThis option allows a user to override the default setting of the resolution of the output device being used. Be warned that changing resolution will usually require all your fonts to be scan-converted anew, a very time-consuming process. The argument is the resolution, measured in bits per inch.
PatternThe command "Press pattern" will scan-convert, but not print, an 8-page file of test patterns. The pages can be printed using the "press rep page n" commands.
Several global switches can alter the use of Press:
/VVerbose -- gives better error messages

Re-start with the "preScan" pass
Re-start with the "Conversion" pass
Re-start with the "Print" pass (same as "reprint")
Debug -- shows output on display rather than printer
Meter -- inverts the normal setting of statistics-taking
MicroCode -- inverts the normal setting of using microcode
Install Press

Installing Press
The command "Press/i" is used to "install" Press. This process sets a large number of parameters and initializes all the necessary Press scratch files. This section attempts to explain the procedure used for getting it all going.
Output Devices
Presently, Press can deliver its output in one of three ways:
1. To a ROS through a "printer controller card," which is capable of generating video at rather high bandwidth (as high as the Alto and disks are capable). Press requires that you have a Trident disk to use for buffering the raster image for a page.
2. To a Versatec plotter through the Diablo printer interface. Press still requires a disk to buffer the page image, but the disk may be a Model 31.
3. To the Alto screen. This option is invoked by running Press with the /D switch. For example:
Press/d print
Because the full image generated by Press may not fit on the screen at one time, you must type the RETURN key to sequence through the image. You may type SHIFT SWAT any time you get bored with the process.
Additionally, the output raster may be generated for a "portrait mode" or "landscape mode" scanning arrangement. For "portrait mode", scan-lines are horizontal (if the 8.5 x 11 piece of paper is held as for normal reading) and are scanned from left to right; successive scan-lines proceed from the top to the bottom of the page. For "landscape mode," scan-lines are vertical (if the 8.5 x 11 piece of paper is held as for normal reading) and are scanned from bottom to top; successive scan-lines proceed from the left to the right of the page. (In the notation of the Press <<Set-mode>> command, portrait corresponds to mode 3 and landscape to mode 8.)
Press can build its scratch files on either Model 31 disk (drives 0 or 1) or on a Trident T-80 disk. In both cases, a "file system" must have been created on the disk before Press can be installed. The easiest way to create a file system on a Model 31 disk pack is to use the "erase a disk" option when installing the operating system (but don’t burden the disk with a lot of files if you want the space available for Press use). The TFU command "erase" can be used to initialize a T-80 pack with a file system.
Press requires a number of files in order to operate properly:
..the Press file you wish to print.. (%)

Press.Run (* %)
Press.Errors (* %)
Press.State (* %)

Press.Fonts (*)
The files marked with * are files that you must provide before beginning to install Press; the remainder are scratch files that will be created if necessary. Files marked with % must reside on the Model 31 drive 0 disk (the system disk).
Press.Run. This file is distributed as part of the Press system. It is approximately 50K words long.
Press.Errors. This small file is distributed as part of the Pres system.
Press.State. This tiny file contains the results of installing Press.
Press.Fonts. This file must be initialized to contain all the fonts you wish to make available for printing. The file is in the format of a "PrePress dictionary," and can be built and manipulated with PrePress (see <PrintingDocs>PrePress.Press for documentation). The file may contain spline descriptions of fonts as well as scan-converted fonts. The splines are useful in case a particular Press file requires a font size or rotation that is not in Press.Fonts in scan-converted form. The scan-converted forms are useful because they can be accessed more rapidly (scan-conversion is not required), and because they may be touched up with PrePress. An example of creating Press.Fonts is given below.

Note: If Press.Fonts is placed on a Trident disk, it should be allocated in a contiguous hole of disk space. In order to achieve this, use PrePress to make the dictionary you desire, and call it Press.Dict. Then, after PrePress operations are complete, give the command "TFU copy Press.Fonts/C ← Press.Dict" which will copy Press.Dict into Press.Fonts and will try to allocate Press.Fonts on consecutive disk addresses.
Press.Bits. This scratch file is used to buffer the raster image for pages to be printed by Press. This file can be as big as you like, but must be at least big enough to hold one full-page image. This minimum is computed as (k(s+15)/16l)(k(32k(b+31)/32l+1023)/1024l) K words, where s is the number of scan-lines on the page, and b is the number of bits per scan-line.

If Press attempts to print a Press file with enough pages to overflow the buffering available in Press.Bits, Press will break up the scan-conversion and printing passes into several segments. First it will scan-convert pages until it exhausts the buffering in Press.Bits, then it will actually print those pages on the output device. Then it will repeat this sequence until the entire file has been properly printed. Note that this process may destroy the collation sequence.
Press.Scratch. This scratch file is used for (1) font information for the file being printed, including any fonts that have been scan-converted from splines just for the one file being printed and (2) <Show-dots> images that must be rotated in order to conform to the scanning directions of the printer. For example, if you print a Markup-created Press file which contains a dots image (mode=3) on a "landscape" mode printer, the image will be rotated and saved in Press.Scratch. A full-screen Alto image requires about 32K words. A recommended size for Press.Scratch is (10+ 32n) K words, where n is the number of Alto screen images you expect in the largest file.
Press.LO1 and Press.LO2. These scratch files are used during the scan-conversion process when a page becomes excessively complex. They may be quite small (e.g., 1K words), and can be expanded if you encounter such a complex file. Because of their small size, it is marginally advantageous to locate them on a Model 31 disk rather than on a Trident disk.
Press.Bands. This scratch file contains the results of the pre-scan pass over the Press file. Its size is roughly (2c + 5r + 80s)/1024 K words, where c is the total number of characters in the Press file, r the total number of rectangles, and s the total number of splines (<<Drawto>> or <<Drawcurve>>).
Press.Meter. This scratch file holds statistical information about Press files as they are printed. This feature is intended primarily for diagnostic use during system development. Consequently, you should disable the recording of metering information when you install Press. However, the file Press.Meter must exist in any case, although it can be of negligible length (1K words).
The list of files gives a rough idea of appropriate sizes (remember that a "disk page" is 0.25K words on a Model 31 and 1K words on a Trident). I typically use the following sizes on a printer installation running at 384 bits/inch:
Press.Bits14400 KTrident (14400 pages)
2000 KTrident (2000 pages)
25 KModel 31 (100 pages)
25 KModel 31 (100 pages)
1000 KTrident (1000 pages)
1 KTrident (1 page)
It is not essential that you get the file sizes exactly right. If Press exhausts one of the files during operation, it should generate a reasonable error message that identifies the short file. You can then re-install Press to enlarge the file, and try printing again.
Building Press.Fonts
The easiest way to initialize Press.Fonts is to copy it from someone else who has already done the work. Candidate files are available at various sites within Xerox, and a reasonable set has been distributed to the grant universities.
If you build you own, you will need to master the PrePress program (documentation is <PrintingDocs>PrePress.Press). You can start from ".SD" files. These files are in "SDtemp format," and contain encoded spline descriptions of various font families. You can then use PrePress to scan-convert them for the proper resolution of your device, and for the proper scanning orientation (if your printer runs in "landscape" mode, you need say nothing special to PrePress; it if runs in "portrait" mode, you need to add 90 degrees to the rotation you would normally request).
Because making a font dictionary takes quite a while, it is best to compose a command file with a text editor, and then execute the command file while you wander off to greener pastures.
Normal practice is to assemble the fonts in a file called Press.Dict, and then at the end to copy that file to Press.Fonts. This is necessary on the Trident, because Press.Fonts must be a consecutively-allocated file. Consequently, after making Press.Dict (see examples below), one should do the following:

//First, delete old Press.Fonts
TFU delete Press.Fonts
//Now copy Press.Dict into Press.Fonts, consecutively allocated:
TFU copy Press.Fonts/c ← Press.Dict
The Press installation dialog
If you have retrieved all the files necessary to run Press, made a proper font dictionary, and decided on the sizes of the scratch files you wish, you are ready to embark on the installation dialog.

Installation is invoked with the command "Press/i". Once Press has been properly installed, subsequent installation is considerably simpler: simply typing
RETURN to each installation prompt will use the same value used in the previous installation--the previous value is given inside parentheses. The paragraphs below describe the various questions you will be asked. Each response must be terminated with a RETURN; typein to Press is edited by typing CTRL A to backspace one character (\ will be typed to indicate a character has been rubbed out); N RETURN is sufficient to mean No; Y RETURN is sufficient for Yes. If you make a catastrophic mistake during the installation, simply type SHIFT SWAT (or boot the machine) and begin again.
General installation parameters.
Record metering information? I recommend answering "N" to this question.
Meter each file transfer? I recommend answering "N" to this question.
Meter each character fault? I recommend answering "N" to this question.
Normally use microcode? Press uses a good deal of microcode to speed its inner loops. This microcode will work properly on Alto I (provided it has reasonably recent PROM microcode) and on Alto II. Consequently, you should respond "Y" to this question. However, if you are experiencing erratic behavior (e.g., Press dives off the deep end), you might try re-installing to turn off the microcode, and see if the situation improves.
Log statistics on MAXC? Unless you have network access to Xerox’s MAXC system, answer "No".
Printer parameters. You are first asked for the name of the output device to use normally (Slot (i.e., ROS Printer) or Versatec at present). Then you are prompted for the resolution of the device in scan-lines per inch and in bits per inch (these are usually the same). The subsequent dialog depends on the output device selected:
Versatec. If you select the Versatec, Press assumes that output will be in portrait mode. You are asked for the number of bits on a scan-line: the response depends on which model plotter you have (e.g., 900A is 1600). It is essential that this response be accurate.
Slot. The following questions are asked for all devices that use the "printer card" to drive a ROS:
Does the first page printed emerge at the top of a stack? The answer to this question is used to control the sequence in which pages are actually printed, so that the final stack of pages will be collated properly.
Does the printer run in portrait mode? See the discussion above. Note that if you respond "Y", you will probably want a Press.Fonts font dictionary that contains 90-degree rotated fonts for rapid access.
Scan-line length in bits (for Slot)? This prompt requires a number that is used to control the ROS interface on the Alto. It determines how many "bits" are to be evenly spaced between the start-of-scan pulse and the end-of-scan pulse emanating from your ROS equipment. Note that it does not govern how Press builds the raster image, but only how the hardware lays it down on the page. Incorrect settings of this number may cause the beam to be "off" when it passes over the end-of-scan detector, with consequent chaos.
Scan margin adjustment? This number governs how many scan-lines Press passes up, after your Slot transmits "page sync," before the image is actually begun. Fiddling with this number will adjust the position of the image on the page.
Bit margin adjustment? This number offsets the position of the image along the scan-line (the response is rounded down to the next multiple of 8). Fiddling with this number will adjust the position of the image on the page.
Do you want scan-lines doubled? If you respond "Y" to this question, the ROS card will transmit each scan-line to the ROS twice. Thus, you can declare to Press that your ROS operates at 384 scan-lines per inch, but by doubling each scan-line, you can operate a ROS that actually runs at 768 scan-lines per inch. (If you use this option, your printer card may need a slight modernization. Instructions are available from the author.)
What should the timeout be? This parameter allows you to specify the time, in seconds, that Press will wait for the ROS interface to finish delivering its output to the printer for one page. If the time is exceeded, Press will generate an error K0.
Paper parameters. For most printers, the long dimension of the paper is "11.0" and the short is "8.5".
Halftone parameters. Press contains code for applying a halftoning algorithm to continuous tone images that appear in Press files. The three prompts in this section allow you to set the screen frequency (80/inch on 384 bit/inch printer is reasonable), the screen amplitude (100% is reasonable), and the screen angle (usually 45 degrees is best).
Disks. Press will ask if you want to use the Trident disk, and if so, which drive number (0 if you have only 1 drive). It will also ask if you want to make use of drive 1 of the Model 31 controller.
Files. Now Press will cycle through all the scratch files, asking you to specify the treatment for each one. If a file already exists, its location and size are printed, and you are asked if that is proper ("Y" or simply RETURN implies Yes). If you respond that the allocation is not proper, or if the file does not exist, Press prompts to determine which disk the file should use, and how big (in disk pages for the disk you select) the file should be.
Hints for the Hardy
1. Avoiding the font pass. If you are printing a Press file that you know has no characters in it, you may profitably omit the "font pass." In most cases, this buys you very little, because the font pass simply looks up fonts in a large index in Press.Fonts. However, if the Press file requires fonts that are not readily available in scan-converted from, the font pass may take a long time to scan-convert the characters from splines. It is this latter time-consumer that you can bypass if you know the document will not use any of the characters. Simply use the /S switch to begin operation on the prescan pass. For example:
Press/s print
This trick is often useful in conjunction with temporary resolution changes:

Press/s resol 363 print

Warning: This little trick will not work on the very first document after Press is installed.
2. Aligning Press for your ROS. The Press file saved somewhere (try <Printing> or <Press> on your local file server) as Align.Press will print a one-page test pattern that has triangular shapes pointing into the corners of the page. This file is provided to help adjust the "Scan margin adjustment" and the "Bit margin adjustment."