Page Numbers: Yes X: 530 Y: 10.5" First Page: 1
Margins: Top: 1.3" Bottom: 1"
Heading:
Sil, Analyze, Gobble, Build Reference Manual
Introduction
This document is a description of a group of programs intended to aid in the documentation and construction of digital logic systems. The primary goal in the creation of these programs was to automate a number of system-building tasks which have previously been difficult to do well, particularly in an environment which has no support staff for design documentation. In addition, the system provides a de facto documentation standard, since its capabilities are limited and specialized. The complete logic design system consists of: Sil, an interactive drawing program used to produce logic diagrams; Analyze, which creates a file of node interconnection and component information from the graphic representation created by the designer with Sil; Gobble or Route, wirelisting programs which merges a number of files generated by Analyze into a complete wirelist for a circuit board; and an additional program available to operate the semi-automatic stitchwelding facility at Palo Alto, given the Gobble or Route wirelist as input.
Making simple illustrations
Although the system described here was built primarily to offer help in design documentation and design automation, portions of it are useful for making simple illustrations for documents. The reader interested only in such facilities should read about Sil only.
Technology and construction process
The logic design system is specialized for a hardware construction method in which integrated circuits are assembled on standard cards, which are in turn assembled into a standard backplane. Both the boards and backplane are interconnected using Wire-Wrap, Stitchweld, or a similar interconnect scheme. The primary documentation for such a system consists of logic diagrams for the cards and an indication of the arrangement of the cards in the backplane.
Secondary documentation, which is derivable from the primary documentation, includes wirelists for the cards and backpanels, IC loading charts for the cards, and a number of summaries to aid in debugging, such as pin lists and signal name lists.
Using the design-automation system
Because most hardware-construction tasks are joint efforts, it is important that the suite of programs described in this manual are used in similar ways by all designers on the team. A number of conventions for using the system have been developed over time, and are offered in this manual as a help in organizing a large design. Many of the conventions have resulted from the tremendously difficult problem of managing different versions of drawings, numerous Alto files produced or required by the system, and the like.
Files you need and where to find them
This section summarizes the files you will need on your Alto in order to run the various systems described in this manual. All files are on the MAXC2 file system under the SIL directory.
SIL -- for illustration use only
Sil.Run
Helvetica10.Al
Helvetica7.Al
Template64.Al (use to draw circles and diagonal lines)
Template64.lb5 (use to draw bold circles and diagonal lines)
+changes to your User.cm; see UserCmSlice
SIL -- for use in logic design
Sil.Run
Helvetica10.Al
Helvetica7.Al
Gates32.Al
Sil.Lb5 to Sil.Lb8 "loaded" from SilLibraries.dm
LogicBlock.Sil (this is a prototype title block)
Documentation on current libraries can be found on
ECLDataSheets.Press and TTLDataSheets.Press.
ANALYZE
Analyze.Run
TtlDict.Analyze
EclDict.Analyze (if you are using ECL)
GOBBLE/ROUTE/BUILD
Gobble.Run (obsolete) or Route.Run
RouteAub.br
Build.Run
THIS MANUAL
SilManual.Press
SIL
Sil is a SImple Illustrator designed for (but not limited to) the creation of logic diagrams. It allows the user to create pictures composed of variable width horizontal or vertical lines, and text strings in one of three user-specified fonts. Text fonts may be specified with bold face and/or italic face, and Sil will modify the screen font to so indicate the face. In addition to the three text fonts, a special font is available which includes most of the symbols on a standard logic designer’s drafting template. Sil also allows the creation of display macros, which are composed of a number of objects that the user prefers to name and manipulate as a single unit. In addition to user-specified macros, Sil can use symbols from any of five Macro Libraries, which are used to hold commonly-used symbols (e.g. logic symbols). Drawings created with Sil may be formatted and printed on Press printers using the Sil/H to create a press file "Sil.press" and send it to a printer by invoking Empress.run. Sil/P will also create the "Sil.press" file but will not invoke Empress.run.
Although Sil is (was) simple, it is certainly appropriate for new users to read this description completely at least once before using Sil, as many of the commands and features are not obvious.
Starting SIL
The first time you use Sil, or after you have changed font names in user.cm or changed libraries, you must run Sil/I. This will cause Sil to read your user.cm entries and build up two scratch files (Sil.fps and Sil.fonts) for future fast access.
Sil is subsequently started by typing "Sil(CR)" or "Sil filename(CR)" to the Executive. After a few seconds, the screen will be cleared, and a single status line of text will appear at the top. If a filename is specified then Sil will immediatly Input that file.
A typical status line is:
GLMF: 4111b TF0N Space: 12000 Selections: 0 X: 0 Y: 0
These quantities have the following significance:
GLMF: 4111b
G: is the current Grid. The cursor and all objects are constrained to lie on points which are multiples of the grid spacing. The grid may be set to 2**n (n=0-7) by typing ↑G (Control-G)n. The standard grid for design-automation work is 4, i.e, ↑G2.
L: is the current width for any lines added to the picture. The line width is set to n by typing ↑Wn (n=1-9).
M: is the current magnification. The magnification is changed using the ↑E command.
F: is the current font. Sil has ten fonts (0-9), the first four of which are text fonts which may be set by the user (see "Fonts"). Fonts four through nine are macro names (see "Macros"). For fonts, an optional "b" and/or "i" may be displayed to indicate that text entries will be added in bold or italics face as appropriate.
TF0N
The "T", is a flag to indicate that macro expansion will go one level deep only (see "Macros" under ↑H and ↑L).
The "F" is a flag to indicate what vertical offset is to apply when a carriage return is typed (see ylock flag under ↑Y).
The "0" indicates the state of the storage compacter (an internal Sil function), which when non-zero indicates that Sil has not yet completed updates from that last edit. You do not have to wait for one edit to be completed before initiating the next.
The "N" indacates the default color (Neutral in this case), and is changed by the ↑F command.
Space: 12000
Indicates the number of words of space remaining in the storage pool for objects. A line requires five words for its description, a string requires five words plus one word for every two characters in the string.
Selections: 0
Indicates how many objects are currently selected. Selected objects are displayed gray (halftone) rather than black. There are three types of objects in Sil, text strings, vertical or horizontal lines, and backgrounds. Strings may contain normal characters or macro names, but an entire string must be in a single font (no ↑F during typein), and when complete becomes a single object. Most Sil commands which affect the picture change only the selected objects.
X: 0 Y: 0
These are the coordinates of the cursor at the time of the last depression of the left (or top) mouse button. X=0, Y=0 corresponds to the upper left corner of the screen; Y increases downward, X increases to the right. If any mouse button is kept depressed while moving the mouse, the frequency of refresh of the status line is increased and the coordinates of the cursor are displayed. This is provided to aid in debugging drawings prepared for Analyze, which reports errors in terms of screen coordinates.
In addition to these quantities, Sil displays messages and interacts with the user via information which is placed at the end of the status line when necessary.
Mice, Marks, and Modes
Mice have three buttons, and come in two types. We will refer to depressions of the left or top (closest to the cord) button as mark, depressions of the middle button as draw, and depressions of the right or bottom button as select. Actions occur when the button is depressed, as opposed to when it is released.
There are three special objects whose positions are controlled (usually) by the mouse:
The cursor is a small arrow, and moves as the mouse is moved. When the cursor is used to point at objects, the tip of the arrow should be positioned over the object.
The mark appears as a short vertical bar. On every mark (depression of the left or top mouse button), the mark is moved so that its upper left corner is coincident with the cursor.
The origin is a small horizontal bar. The origin provides a reference point when moving or copying selected objects.
Both the origin and the mark blink approximately twice per second.
Sil has three modes: Normal mode, in which lines are added to the picture or objects are selected for further action, magnified mode, described later, and add text mode, in which text strings are added to the picture. In the last mode, the message ADD TEXT is displayed at the end of the status line.
In normal mode, depressions of the mouse buttons, sometimes in conjunction with depressions of the control and/or left-hand shift keys, have the following meanings:
mark: Move the mark to the current cursor position.
shift-mark: Moves the origin to the current position.
control-mark: Moves the mark to the current cursor position, then moves all selected objects so that their origin is at the mark, selects the objects which were moved, and deselects any previously selected objects. This command is equivalent to mark-↑X (see below).
control/shift-mark: Same as control-mark except that any attached lines are not stretched. See description of mark-↑X below.
draw: Draw a line between the mark and the current cursor position. The line will be horizontal if the difference between the y-coordinates is less than that of the x-coordinates, otherwise it will be vertical. The mark is moved to the end of the new line closest to the cursor, the line becomes selected, any previously selected objects are deselected, and the origin is moved to the upper left corner of the new line.
control-draw: Moves the mark to the current cursor position, then copies all selected objects such that their origin is at the mark. It then selects all copied items, and deselects any previously selected objects. This command is equivalent to mark-↑C (see below).
shift-draw: Deletes just the item pointed to, not the selected items.
control/shift-draw: Undeletes and selects the set of objects last deleted with shift-draw or ↑D (see below).
select: The object at which the cursor is pointing is selected, any previously selected objects are deselected, and the origin is moved to the upper left corner of the selected object. When objects overlap, the object with the smallest parameter is selected. If there are no objects of any type under the cursor, nothing is selected, and the origin is moved to be coincident with the cursor.
control-select: Same as select, except that previously selected objects are not deselected.
shift-select: Selects all objects which lie fully within the rectangular area bounded by the current cursor position and the mark. The origin is moved to the upper left corner of the selected area, and all previously selected objects are deselected.
control/shift-select: Deselects the item pointed to while leaving the origin at its current location.
Keyboard
In normal mode, Sil is awaiting commands. The initial character of every command is a control character. If a character is typed which is not a control character or space, ADD TEXT mode is entered. In this mode, character strings in the current font (and face) are put into the picture at the mark. Strings are terminated by typing carriage return or ESC, or by depressing any mouse button. Remember that each string is a separate object.
The following control characters are available during input to facilitate editing:
BSBackspace one character
↑ABackspace one character
↑WBackspace one word
↑QBackspace the entire string but don’t leave the mode
↑SConvert the last character typed into a control character (i.e. "A↑S >↑A)
DELwhich clears anything typed and returns to normal mode without modifying the picture.
Once a string has been entered, it can be modified via the BS command (see Commands below).
Commands
Sil commands consist of single control characters, control characters followed by single digits or characters, or more complex commands which carry on brief interactions with the user via messages in the status line. Only the first character of multi-character commands uses the CTRL key. Subsequent characters, if any, are typed normally. In a couple of instances, special meaning is attributed if the Control and Shift keys are held down simultaneously when the command key is typed. The notation used for this will be ↑shA (’control shift A’). The commands are:
↑A: Display text from an "Alternate text file". The first time ↑A is typed, the user is asked to supply a file name, that file is opened, and the first text line is displayed in place of the status line. For subsequent occurrences of ↑A, if the Status line still displays text from the file, then the next line of the file is displayed, otherwise the current line is redisplayed.
This feature is intended primarily for viewing Analyze error files while in Sil. When reading a line of text, Sil looks for possible x,y coordinates, as generated by Analyze and, if found, moves the Mark to that location. The text file is closed when the last line is read or after two successive ↑K commands (see below). A ↑shA will backup one line. This will go back only one line.
↑B: Draws a box. The mark and the origin define the corners of the box. The box is selected, previously selected objects are deselected, and the origin is moved to the upper left corner of the box.
↑shB: Draws a rectangular background. The mark and the origin define the corners of the area. This command is useful in creating colored drawings. Text and lines drawn over a background will "work" correctly for color printers, but will disappear on a black printer (backgrounds may be disabled during press formatting with the use of "Sil/p 0/b foo.sil" in the command line). Backgrounds over backgrounds will print such that the last background created with Sil will appear over previously created backgrounds.
↑C: Copies all selected items and positions them away from the original items by the offset of the mark from the origin. The copy is selected, and previously selected items are deselected. The origin is moved to the mark, so that ↑C can be done repeatedly.
↑D: Deletes all selected items from the picture. Objects are not immediately lost, but are marked as deleted ’level 1’ and no longer displayed. All objects already marked deleted have their level incremented by 1. When objects exceed level 5 they are discarded and their space reclaimed.
↑E: Expands the rectangular area defined by the two preceding marks so that it fills the screen (as nearly as possible). The magnification factor (2-9) is shown in the status line. A second ↑E exits this mode.
↑Fn: Sets the current font, face, or color according to the following table
n=0-9:Font = n.
n=b/iset font face to bold or italic respectively
n=B/Iset font face to not bold or not italic respectively
n=D,R,O,Y,L,G,T,C,A,V,U,M,P,S,N,W
set color to DarkBrown, Red, Orange, Yellow, Lime, Green, Turquoise, Cyan, Aqua, Violet, Ultaviolet, Magenta, Pink, Smoke, Neutral (black), or White respectively.
All new items are created according to these parameters as appropriate.
See Printing below, for more information about the use of colors.
↑Gn: Sets the current grid to 2**n (n=0-9).
↑Hc: Expands the macro c and puts its upper left corner at the mark. Macros within the macro c will not be expanded if the onelevel flag (the first "T" in the status line) is true. The ↑N command complements this flag (i.e. makes it false, displaying "F").
↑I Input: When ↑I is done, the message "Input From: " is displayed, and the user is expected to enter a filename. If any previous input or output has been done, the previous filename is displayed. If it is the desired file, a carriage return, ESC, or mouse button depression confirms it. If not, simply type the new filename or edit the existing filename with ↑Q, BS, or DEL (to abort input).
↑J: "Jam" new text font, face, or color into all selected items. This allows the user to change all selected items to a new font, face, or color. Font and Face apply only to fonts 0, 1, 2, or 3.
↑K: This command ("kill") clears the screen and reclaims all storage so you may start on a new drawing without leaving Sil. You will be asked to confirm with a carriage return if you made any changes since your last Output command. Filenames are remembered for use with subsequent ↑I commands if desired and the ’Alternate text file’ may remain open. Any ’Alternate text file’ that may be open is closed if a ↑K is executed when Sil is already in the initial state (i.e. 2 sucessive ↑K commands).
↑Lc: Defines the macro c (in font 4) to be the collection of currently selected items (if there are no selections, or if c is a control character, the command is aborted). The reference point for the macro is its upper left corner, except that macro definitions are forced to fall on a grid of 4 screen units.
First, the definition is checked to ensure that none of the objects are the macro c itself. Such a definition would destroy Sil when an attempt was made to display the macro - the message "Bad Macro Definition" is output and the command is aborted. If all is well, the message "Confirm with CR" or "Confirm with CR to Overwrite" is output. If confirmation is given, the macro is defined, and the original set of objects is replaced by a (selected) single character string which is an instance of the macro. The origin is moved to the upper left corner of this string.
↑M (CR): The mark is moved down by an amount determined by the ↑Y command.
↑N: Complement the onelevel flag, which controls the depth of macro expansion.
↑O Output: A filename is requested as for ↑I, and the macro definitions and picture are written on the file. Sil-format files normally have names with extension ".Sil".
↑P: Writes a snapshot of the current state on the file "Sil.temp" (not including deleted items). It is a good idea to do this occasionally to avoid losing work if Sil or your Alto breaks.
↑Q: This command exits Sil. It requires confirmation if the picture has been changed since it was last written out.
↑R: This command requests confirmation and then deletes all macro definitions. It is used to edit macro libraries.
↑S: This command ("Show") copies the area of the picture around the origin into the cursor. Since the cursor is only 16 screen units square (about .25 inch), only a small part of the object will be shown. If there are no selected items, or if the area around the origin is blank, the command is aborted. The idea of this command is that the origin will be positioned (automatically or manually) to an interesting area of a selected object, which may then be moved or copied with great accuracy using control-mark or control-draw. Doing anything other than a move or copy operation resets the cursor to the original arrow.
↑T: Turns on (or off) an array of single point "ticks", which may be used as a positioning aid. The ticks are on a sixteen screen unit grid.
↑U: Undeletes and selects the set of objects last deleted with ↑D or shift-draw, after deselecting any previously selected objects. This works for up to five levels, at which point there are no more objects to Undelete.
↑Vn: View has two distinct modes as follows:
For n= 4-9, the status line is replaced with a line of text enumerating the macros currently defined in that font. Typing any character returns to normal mode.
For n= 0-3, b,i,B,I, or color, all items with match the indicated parameter are selected (thus making it easy to jam a new parameter).
↑shVn: only has meaning for n= 0-3, b,i,B,I, or color. In this case, items left selected are a subset of those selected before the command is issued. As an example, ↑V0 ↑shVR will select only those items which are font 0 and Red.
↑Wn: Sets the line width (n=1 to 9).
↑X Move (translate): All selected objects are moved so that the origin is at the mark, then the positions of the origin and the mark are interchanged (so that another ↑X puts things back the way they were).
As a feature, if the selected objects are thought of as defining a rectangular window, and if they are moved in X or Y only (not diagonally), the endpoints of any lines which cross the window boundary are moved (by shortening or lengthening the line) so that the endpoints have the same relation to the selected objects as in the original view. If the line would be shortened to zero or a negative length, or if it is fully in the window but not selected, it is not modified. This feature is handy for moving rows of components in a logic diagram or adjusting the boundaries of a form. This feature is turned off by ↑shX or if a ↑S is in force (i.e. if there is something in the cursor other than the normal arrow).
↑Y: This command sets (or clears, if it is set) the ylock flag. At the time ylock is set (changed from "F" to "T" by the ↑Y command), the difference between the Y coordinates of the mark and the origin is saved as yinc.
When subsequent carriage returns are typed, the mark is moved down by a distance determined by the height of the last object put into the picture (if ylock is false) or by the distance yinc (if ylock is true). ylock is initialized to false, and its status is shown in the status line (it is the second letter of the "TF0N" section).
↑Z: This command complements "Hardcopy" mode, erases the screen and re-draws the entire picture. Sil normally spaces characters in text strings according to the widths of the Alto font. This makes them easy to read on the Alto screen, but means that the end of the string on your screen will not accurately indicate where the string will end on the printed page. To correct this, hardcopy mode positions each character according to the printing width information found in the Fonts.Widths file during initialization.
BS: This command (the BackSpace key) allows you to modify an existing text string. You must have exactly one item selected on the screen that is in fonts 0 through 9. This item will then be "opened up" the first time you hit the BS key. You then modify the contents of the item by appending characters, backspacing characters (the BS key with its normal meaning), backspacing words (↑W), or by clearing the line (↑Q) and starting again. Leaving this mode with the DEL key will return the original string. Besides the obvious advantages for editing the end of the string, you can use this command to replace an item with a new one having the same font, face, and color.
↑← Moves the STATUS display to the x,y location of the last mouse action. This is useful in full drawings when items in the drawing must be placed over the normal location for the STATUS display. Note the the initial location can be specified in the User.cm file (see Fonts below).
Macros
Sil allows an arbitrary collection of objects to be defined as a macro, which is given a single character name, and thereafter behaves exactly as if it were a normal character. Control characters, space, and DEL are not allowed as macro names; there may thus be up to 94 macro names per font.
Font 4 is reserved for user-defined macros which are associated with a single drawing. The macro definitions in font 4 are saved with the drawing when an output file is generated with the ↑O command.
Fonts five through nine are used for Library Macros, which are symbols which are used over a number of pictures. Libraries will be constructed for commonly used integrated circuit symbols, for example. Definitions for library macros are not saved with the file; instead, when a picture is read into Sil, any macros it requires from fonts 5-9 are read from the five files Sil.lb5 - Sil.lb9 (or whatever file name is given in user.cm). This also happens the first time a macro name in these fonts is used in ADD TEXT mode. If you intend to use these macro libraries, be sure the files are on your disk before you attempt a use. (Because users who desire only to make simple illustrations will not customarily use the libraries, their presence on the disk is not mandatory.)
A set of standard libraries is released with Sil. Sil.lb5 and Sil.lb6 contain component definitions for TTL-family circuits; Sil.lb7 and Sil.lb8 contain ECL-family definitions. These libraries change relatively slowly over time. However, when you save Sil drawings in a permanent way, it is prudent to save the libraries as well, to guard against incompatible future changes. You do not need to have all of these libraries on your disk if you do not make any reference to one or more of them.
Libraries are created in font 4. The only thing special about a library is its filename. When macro definitions are read from a library file, they are changed to the appropriate font. A library may contain a picture which describes its contents if desired. This portion of the file will be ignored when the library is used.
Two caveats about libraries: When one is created, it should not make use of any fonts other than 0-4 (i.e. it should not use any libraries other that itself). Also, if a library macro has other macros within it, they should have names which are greater (i.e. have greater ASCII codes) than the containing macro’s name. If this is not done, things will still work, but library access will be much slower, since Sil will have to make multiple passes over the library file when reading it.
Fonts
When Sil/I is specified, the file User.cm is read to determine which fonts to use for fonts 0-3, where to find them on your disk, and where to find your library files on your disk. The file pointers for Alto fonts and Sil libraries are stored in "Sil.fps", and the font names, faces, and printing widths are stored on "Sil.fonts". A possible entry in a users User.cm would be:
[SIL]
0: Helvetica10
1: Helvetica7
2: Template64
3: Gates32
9: Foo.lb5
Y: 712 (optional) (X: val is also recognised but not very useful)
A: TtlDict.Analyze (optional)
This is an example of a straightworward User.cm specifying fonts etc. suitable for logic drawings. A more completcated User.cm might be as follows:
[SIL]
0: Helvetica10B Helvetica10N
1: Helvetica7B
2: Helvetica7BI Helvetica7B
3: Template64
5: Template64.lb5
Y: 712 (optional) (X: val is also recognised but not very useful)
A: TtlDict.Analyze (optional)
The above contains examples of many different ways of using your user.cm to control Sil fonts. The first name following the font number will be taken as the name of the printing font to use. If a bold or italic face is specified, then that face is the "default face", and can be overridden by the ↑F and ↑J commands described above. The second name (or first if a second is missing), with ".al" appended, is the name of the Alto font to use for display. If a face is specified for this font, then Sil will not further indicate this face. That is Sil will not italicize an italics .al font or bold-face a bold .al font. Numbers 5 through 9 may be used to specify a SIL file for use as a Library file. A "Y", or "X" entry is used to specify the position of the STATUS line on your display.
To expand on the above example, font 0 will print in Helvetica10 with Bold as the normal face, and will be displayed from Helvetica10N.al on the screen. Font 1 will print as Helvetica7 with bold as the normal, and will be displayed from Helvetica7B.al on the screen. Note that the font will not be displayed bold on your screen wheather specified bold or not. Font 2 will be the same as font 1 except that the default face will be bold and italics. This font will be made italics on the screen. Font 3 will be the special Template font used to draw arcs, circles, and diagonal lines. The other option for font 3 would be Gates32 (if you are doing logic drawings). Font 5 will be displayed according to the macros defined in the sil file Template64.lb5. The STATUS LINE will be displayed on the screen with its upper left hand corner at coordinates Y=712 (this is just above the title block of standard logic drawings). Finally, the entry A: is ignored by Sil, but is there for use by the Analyze program (see below).
If a font 0 through 3 is unspecified, it is defaulted to font 0, and Sil will complain bitterly if no font 0 is specified. If Sil has any problem reading the fonts, it calls Swat with an explanatory error message. If a Library file 5 through 9 is unspecified then "SIL.lb5...9" is substituted and looked up on your disk. No complaint is made if the Library name is not found.
Three caveats: (1) You should not use a large font for font 0, or the status line will overflow the right edge of the screen. Fonts up to about 10 points work well. (2) If you are working on exceptionally large drawings and you run out of SPACE for new items, you can Output your file and re-enter with "Sil/n(CR)" (n=0,1, or 2). In this case Sil will only read in the font definition for font n, and use that definition for displaying items in fonts 0,1 and 2. This will recover approximately 2000 words of storage.
Miscellaneous Information
Sil rebuilds the screen automatically whenever the picture is changed. This takes place incrementally, and if the picture is complex, it can take a while. The rebuilder is operating if the number in the "TF0N" part of the status line is non-zero. If you are confused about the state of the picture, wait for the rebuilder to stop.
Sil correctly windows objects so that things which overlap the screen boundaries are only partially displayed. It is thus possible to type a string which extends beyond the screen boundary, then move it back onto the screen. If, however, an object is moved completely off the screen and then becomes deselected, it will be destroyed, and the space it occupied reclaimed. If an item is moved such that any part of it is above or to the left of the screen boundary, that item is immediately lost and connot be reclaimed with Undelete.
Printing
Sil/P (alias nPPR.run) is an alternate way of invoking Sil which will cause it to enter a completely different mode of operation. In this mode, Sil converts Sil format files into one Press format file called "Sil.Press". Sil/H may be used to start up Sil, in which case the same "Sil.press" file will be generated, but in addition, Empress.run will be invoked to send the press file to the appropriate printer for making hardcopy. Sil will use the font related information saved in "Sil.fonts" (during Sil/I) for printing.
Sil/H File.press/F {color switches} File01 File02... Printer/H n/C
In the above example, Press formated output will be written in "File.press" which will then be sent to Host "Printer", and it will ask for n copies to be printed. If the /H or /C commands are omitted Empress will look in your User.cm under [HardCopy] for your default Host printer, and will print 1 copy. If the /F switch is not omitted the output will be written on "Sil.Press". Note that the /F switch, if used, must come before any input files.
A whole slew of additional commands have been implemented for press file creation to control the color in drawings to be sent to a color printer. In essence, when one specifies a color in the Sil drawing, you are only setting a "pointer" to a table for the printing phase of Sil. This table is initialized to values which will print the colors which correspond to the name given that color.
Each color has associated with it a Hue, Brightness, and Saturation. There is one table for text/lines and another for Backgrounds. The default values are the same for both tables according to the following table.
ColorHueBrightnessSaturationComments
Neutral(black)000 000 000 3 primary colors
White000 255 000
Smoke000 192 000 requires half-tone process
DarkBrown 005 090 255 requires half-tone process
Red000 255 255 2 Primary colors
Orange 020 255 255 requires half-tone process
Yellow040 255 255 Primary color
Lime060 255 255 requires half-tone process
Green080 255 255 2 Primary colors
Turquise100 255 255 requires half-tone process
Cyan120 255 255 Primary color
Aqua140 255 255 requires half-tone process
Violet160 255 255 2 Primary colors
Ultaviolet180 255 255 requires half-tone process
Magenta200 255 255 Primary color
Pink220 255 128 requires half-tone process
Notice that some colors are primary colors, some are combinations of primary colors, and others require half-tone dot screens to be applied by the press printer. You should keep in mind that the half-tone process will introduce some degradation of character and line edge sharpness.
All of the above parameters may be changed with the following switches. Whenever an entry of this type is encountered, it will affect the printing of subsequent files on the command line:
C/ofollowing switches will effect text and lines with color C.
C/b following switches will effect backgrounds with color C.
N/b set the Brightness of the appropriate entry to N.
If no color has been specified, then the brightness of ALL backgrounds will be set to this value. (white will get 255-N)
N/s set the Saturation of the appropriate entry to N.
If no color has been specified, then the saturation of ALL backgrounds will be set to this value. (neutral & white will get 255-N)
N/hIf N is a number then set the Hue of the appropriate entry to N.
If N is a name then send Sil.press to printing host N.
/iwill re-initialize all entries
0/bDisable backgrounds so that the press file may be printed on a black printer.
Actually, 0/*, where * is any character, seems to do this.
In order to properly print colored strings and lines over colored backgrounds, it is necessary to specify software scan conversion in the press file. This takes a great deal of time for the host printer to perform , so if you determine that this is not necessary in your case you may invoke Sil with Sil/PF, where the F (fast) switch inhibits software scan conversion.
Finally there are three other switches which effect Sil hardcopy. Note: If N=0 these switches should be omitted; otherwise they would disable backgrounds (see 0/b above).
N/xShifts the entire drawing N Alto screen units right (left if negative).
N/yShifts the entire drawing N Alto screen units down (up if negative).
[Known bug, found by Dick Lyon: N acutally has some units other than screen units, about 11/16 inch].
N.NN/zScale the entire drawing by the indicated amount.
The number may be less than or greater than one. The point size of the printing fonts requested will be scaled, and it is left up to the printing server to select the best available printing font to match the point size requested. This works well for Helvetica, but not at all for Gates or Template fonts.
If both scaling and shifts are specified, the shifts are performed before the scaling.
A word of caution. The last set of switches were added quickly and are not done carefuly. In particular, objects are not clipped properly at the page boundary, and the press printer will "wrap-around" if you move or expand something very far off the page.