SilDoc.tioga
Ken Pier, August 21, 1985 3:06:37 pm PDT
HOW TO USE Sil
CEDAR 6.0 — FOR INTERNAL XEROX USE ONLY
How To Use Sil
Ken Pier
© Copyright 1985 Xerox Corporation. All rights reserved.
Abstract: Sil is a Simple Illustrator that runs in Cedar. It provides facilities for producing simple drawings, circuit diagrams, and illustrations that use only text strings and boxes. Sil was originally written for the Alto environment, and Cedar Sil allows compatibility with files produced by Alto Sil while providing a richer set of facilities to the Cedar user.
This document describes how to obtain and use the latest version of Sil released on the Cedar directory.
Created by: Ken Pier and Tracy Larrabee
Maintained by: Ken Pier <Pier.pa>
Keywords: illustrator, image, graphics, design automation
[If you are reading this document on-line, try using the Tioga Levels menu to initially browse the top few levels of its structure before reading it straight through.]
XEROX   Xerox Corporation
    Palo Alto Research Center
    3333 Coyote Hill Road
    Palo Alto, California 94304

For Internal Xerox Use Only
How to Use Sil: Contents
0. Introduction
1. Reading this Document
2. Becoming a User
3. If Sil is New to You
4. Fonts
5. Macros
6. Sil Viewers
7. User profile Entries
8. Input
9. Alto Sil and Cedar Sil Comparison
0. Introduction
While Sil (Simple Illustrator) was originally written for the Alto environment as part of a group of programs intended to aid in the documentation and construction of digital logic systems, it is also quite useful for making simple illustrations, diagrams, and maps. While the word simple in simple illustrator implies that there are a number of things that Sil is not equipped to do, this same simplicity means that Sil is easy to learn and use, and that Sil users enjoy quick response.
1. Reading this Document
While you need not have used Alto Sil in order to understand this document, several references will be made to Alto Sil for the benefit of veteran Sil users. On the other hand, if you wish to understand the Sil companion programs available in the Alto world you will have to refer to Alto documentation written by Thacker, Sproull, and Bates - the original designers of the Alto programs.
This document does assume that you have some idea what a font is and what an illustrator is. But, if you don't, just read the Becoming a User section and the If Sil is New to You section and try using Sil. You will quickly learn enough to understand the rest of the sections.
2. Becoming a User
First, bring over the latest Sil from the current release directory. This will also retrieve various files from other packages, such as the Imager. At this time you can edit your personal profile so that Sil will use certain specific fonts and libraries, but you needn't because Sil will choose popular default values if you supply none. If you do use any libraries you must make sure that you have the files on your local disk. See the profile entries for more information.
To start Sil, type
Sil {file name}
to the Command Tool (any number of file names, including zero, separated by spaces is acceptable). Sil will spend a while loading itself, other required packages, and the various Sil libraries and fonts, but after a bit you will get one (or more if you typed more than one file name) Sil viewer. Don't despair over the amount of time it takes to load Sil. From now on you can get new Sil viewers from the Command Tool practically instantaneously. Also, you can include Sil in a checkpoint. Just be sure not to take the checkpoint until Sil has finished loading.
While using Sil various messages will be written in the Message Window (the top line of the Cedar display). The first message you could see may tell you that Sil could not find certain libraries. Unless you are an experienced Sil user this is probably not a problem. See the profile entries section for more information on libraries and what Sil expects.
3. If Sil is New to You
This section will give beginners hints on how to think about using Sil and introduce basic Sil keyboard and mouse input. Full keyboard and mouse input will be described in detail in later sections.
3.1 Primitive Sil Elements
Sil only has two types of elements: strings and boxes. Boxes are just horizontal or vertical rectangles on the screen. Most boxes are drawn (on the screen - not necessarily in a hardcopy representation of the drawing) in black and are considerably larger in one dimension than another; they appear as lines of varying widths. Some boxes are drawn in gray; they usually cover much more area than the black boxes. The gray boxes are said to be background boxes; they are, conceptually, drawn underneath all the other Sil objects, so they will never obscure any of the strings or black boxes.
Strings are just sequences of characters. Strings are always displayed in some font. Often, a string just looks like English text, but there are fonts that do not look like alphanumeric characters. In particular, Alto Sil users have been quite fond of two fonts that might seem odd if you are not familiar with them: Gates32 and Template64. Gates32 is a font that has elements that look like pieces of electronic components (such as parts of AND gates and OR gates), and Template64 is a font that has elements that look like pieces of circles or diagonal lines.
3.2 Sil Cursors and Carets
When you look at a Cedar display, the little arrow on the screen that moves when you move the mouse is the cursor, and the little flashing triangles and boxes that show up where you are typing are carets. Sil has one cursor, which looks like an arrow, and two carets, which look like boxes. The cursor is constrained to point only to grid points, and the grain of the gridding is controlled by the user. One of the carets looks like a flashing vertical box: it is called the mark. The other looks like a flashing horizontal box: it is called the origin.
When you are using Sil, you can move its cursor by moving the mouse, and you can move its carets by clicking the mouse buttons or hitting certain keyboard keys. You can move the mark to the cursor by clicking the leftmost button; Sil users call that mouse button the mark button. Now that you have the mark in position there are two simple ways to start adding Sil objects.
3.3 Adding Sil Objects
You can add a string positioned at the mark by hitting any of the standard character keys on your keyboard. When you have finished entering the string hit RETURN and the string will become permanent.
You can draw a box starting at the mark by moving the cursor to where you want the other end of the box to go and then hitting the middle mouse button. Sil users call the middle mouse button the draw button. Keep in mind that boxes must be either horizontal or vertical. If you click the mouse at a place not horizontal or vertical to the mark, a horizontal or vertical box will be drawn anyway.
3.4 The Sil Selection
Right after you enter a Sil object, it is displayed in gray, not black (if you entered a string it is probably pretty hard to read when it is gray). That object is said to be selected - it is part of the selection. You can make any object be selected by moving the cursor on top of it and clicking the rightmost button; Sil users call that mouse button the select button.
Once an object is selected it can be modified in a number of interesting ways. It can be deleted, copied, moved to a new location, or changed in some way. Methods of doing these things will be discussed in detail in the keyboard entry section.
3.5 Continuing Your Sil Education
You already know how to get a specific Sil file into a Sil window (see Becoming a User) so now that you can enter stings and boxes, and, the only thing you need to know to be a beginning Sil user is how to save the file with all the objects you have entered. To save a file type CONTROL-O (^O). A message will appear at the top line of the Cedar display inviting you to supply a file name. After you type in the name (if you give no extension ".lsil" will be assumed) and terminate it with a carriage return, your file will be saved. A different default extension can be specified in the user profile; see the section on user profile entries, below. The format of files written in response to the ^O command is called Large Sil format, and is distinct from Alto Sil format. In particular, large format files can contain multi-page Sil drawings, and Alto Sil format cannot do so. The ^P (Put) command allows writing files in the older Alto Sil format. It is convention for Alto Sil files to use file name extension ".sil" and for Cedar Sil format files to use extension ".lsil".
More advanced Sil input can be produced by using any of the keys or buttons mentioned earlier while also holding down the control key (CTRL) or the shift key, or both. To find out what the effect of a specific key combination is, find the description of it in the keyboard input section, below, or on the CedarSilSummary.sil drawing which was brought over when you retrieved Sil.
You don't need to learn all the key combinations at once. Experimentation and occasional glancing through the list of options should teach you what you need to know without too much discomfort. Don't be surprised if some of the Sil commands seem pretty esoteric. Sil has some very advanced users, and what an advanced user needs may seem strange to a new user. It is a good idea to watch an experienced Sil user operate Sil: advanced Sil users move very quickly.
4. Fonts and Colors
With Sil you can use a maximum of ten fonts (nine of which you can specify using your user profile) and sixteen predefined colors. The first four of these fonts must be predefined fonts (such as Helvetica or TimesRoman), and the last six are actually libraries.
The predefined fonts may be text fonts or special fonts. Special fonts are available that include most of the symbols on a standard logic designer's drafting template, or pieces of diagonal or curved lines. Text fonts may be specified with bold face and/or italic face, and Sil will modify the screen font to so indicate the face.
A font library behaves much like a predefined font, but each of the characters in the font is made up of Sil primitives. One of the libraries - font 4 - is internal to your Sil file (so you cannot specify it using your user profile), and each of the elements of font 4 is called a display macro. For more information on using and making libraries, see the the parts of the keyboard input section which discuss macro definition and expansion.
You can assign a color to an object in the same way you can assign fonts. If objects are displayed on a device capable of rendering color, the colors will appear as assigned, otherwise the colors will all be displayed black. For more information about assigning colors, see the the parts of the keyboard input section which discuss font and color commands.
5. Macros
Sil allows a 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.
Fonts 5 through 9 are used for Library Macros, which are symbols which are used over a number of pictures. Libraries exist 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 library files (which default to Sil.lb5 - Sil.lb9 if you specify nothing else in your user profile). If you intend to use macro libraries, be sure the files are available on your disk when you load Sil. Sil will tell you if it can find no library files, but this is not a fatal error: it just means that you cannot use the library fonts in your drawing.
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, the internal macro definitions are used to define the characters for that library font. Any main picture resident in the file is ignored. In this way a library may contain a picture which describes its contents and it will not affect its performance as a library. Please remember that library files may not make use of any fonts other than fonts 0-4 (they should not use any libraries other than themselves).
It is important to remember than more than one file may be read into a Sil window. When this happens new macro definitions will overwrite any old macro definitions. One popular way to use use a library file, or to have two different files use the same internal macros, is to read the library file into a window and then delete the main picture. The library font can now be used as the internal macro definitions for this window.
6. Sil Viewers
When you start Sil, several nested viewers appear. The outermost viewer is a special kind of container called an abutter. It is the abutter's job to keep its contained viewers next to one another in a reasonable way as the size of the abutter changes due to viewer activity on the desktop. The abutter has the standard Cedar caption buttons (Destroy, Adjust, ...) for the user. There are three inner viewers of interest: a menu of viewing transformations, a status viewer and a viewer, called a BiScroller, which contains the actual picture and allows scrolling both horizontally and vertically.
6.1 Status Viewer
A status viewer is above the Sil BiScroller and below the transformation menu. It remains fixed when you scroll the Sil picture around. A typical status viewer looks like:
Grid: 4 LineW: 1 Mag: 1 Font: 0 Color: 1 MX: F Ylk: T Selected: 2 X: 12 Y: 20
These fields have the following significance:
Grid: 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.
LineW: is the current width for any lines added to the picture. The line width is set to n by typing ^Wn (n=1-9).
Mag: is the current magnification. The magnification is changed using the ^E command.
Font: is the current font. Sil has ten fonts (0-9), the first four of which are predefined fonts. Fonts four through nine are macros. Font is changed by the ^F command.
Color: is the current color number. Color, like fonts, is changed by the ^F command.
MX: is a binary flag to indicate that macro expansion will go only one level deep (MX: FALSE) (see "Macros" under ^H and ^L).
Ylk: is a flag to indicate what vertical offset is to apply when a carriage return is typed (see ylock flag under ^Y).
Selected: Indicates how many objects are currently selected. Selected objects are displayed gray rather than black. Most Sil commands which affect the picture change only the selected objects.
X:, Y: These are the coordinates of the cursor at the time of the last depression of the left mouse button. Y increases downward, X increases to the right. If any mouse button is kept depressed while moving the mouse, the coordinates of the cursor are periodically displayed.
In addition to these quantities, Sil displays messages and interacts with the user via information which is placed in the Cedar message window. Eventually, Sil should probably have a command window instead of the status line, but that is a subject for future user manuals.
6.2 BiScroller
The BiScroller has both a vertical scroll bar at the left of the picture and a horizontal scroll bar at the bottom of the picture. Moving the mouse into a scroll bar area causes that scroll bar to become visible. The vertical scroll bar is much like a Tioga viewer scroll bar, with Scroll Up, Thumb, and Scroll Down invoked as usual. The horizontal scroll bar is similarly implemented using Scroll Left, Thumb, and Scroll Right. The amount of scrolling is always proportional to the distance from the left edge of the horizontal scroll bar to the mouse position in the scroll bar.
Note that, unlike Tioga viewers, the BiScroller represents a semi-infinite plane, and repeated scrolling in a single direction will likely take the user off the edge in an unpleasant manner.
6.3 Viewer Transformations
The transformation menu is logically associated with the BiScroller view of the Sil picture. The buttons in the menu have the following significance:
Scale: scale the picture. Invoking Scale with the left mouse button causes the picture to double in scale from its current scale. Invoking Scale with the right mouse button causes the picture to halve in scale from its current scale. Invoking Scale with the middle mouse button causes the picture to return to Scale = [1, 1]. Invoking scale up/down too many times in succession causes unpleasantness. This scaling is independent of the scaling provided by the CONTROL-E command in Sil.
Rotate: rotate the picture. Invoking Rotate with the left mouse button causes the picture to rotate 90 degrees counterclockwise. Invoking Rotate with the right mouse button causes the picture to rotate 90 degrees clockwise. Invoking Rotate with the middle mouse button causes the picture to return to its original orientation.
Fit: scale the picture so that a miniature rendition of it is shown within the visible viewer. This transformation, in conjunction with the CONTROL-^ command, can help the user navigate around a large drawing. Fit may be invoked by any mouse button.
ResetAndCenter: resets all scaling and rotation transformations and centers the picture in the visible viewer. ResetAndCenter may be invoked by any mouse button.
Center: centers the picture in the available viewer, without resetting any transformations. Center may be invoked by any mouse button.
Vanilla: resets all transformations and positions the picture in a client specified way. Sil's vanilla transformation places the [0, 0] of its coordinate system near the upper left corner of the BiScroller. Vanilla may be invoked by any mouse button.
Left: positions the picture so the the left extent of the picture shows at the left of the viewer. Left may be invoked by any mouse button.
Right: positions the picture so the the right extent of the picture shows at the right of the viewer. Right may be invoked by any mouse button.
Top: positions the picture so the the top extent of the picture shows at the top of the viewer. Top may be invoked by any mouse button.
Bottom: positions the picture so the the bottom extent of the picture shows at the bottom of the viewer. Bottom may be invoked by any mouse button.
7. User profile Entries
7.1 Font Entries
You specify a predefined font by a user profile entry of the form
Sil.Font[0|1|2|3]: fontName[fontSize]{B|I} {fontName[fontSize]{B|I}}
To put it in English: the string "Sil.Font", followed by a number indicating which of the 4 predefined fonts you are specifying, followed by the string ": " followed by the name of the display font you wish to use, followed by the size of the display font you wish to use, optionally followed by a "B" and/or an "I" indicating that you wish the font to be bold and/or italic. The optional second fontName will be used as the printing font. If the printing font can be found and the display font cannot, the printing font is used for both printing and display. If you find you need a font that is not available ask someone in the Imaging group to help you get access to your font.
You specify a library font by a user profile entry of the form
Sil.Font[5|6|7|8|9]: libraryFileName
The libraryFileName you supply must be the name of a Sil file on your local disk (actually, if you give a full pathname it can be on a server). If you specify a library name which Sil can not find Sil will still continue, but you will be unable to use characters from that font in your drawings.
At this time, if you want to change any of the fonts used in Sil you must change your user profile entries and run Sil again (usually this means you must do a Rollback first). In the future it may be possible to specify new libraries or fonts interactively.
If you specify no fonts in your user profile Sil will behave as if your user profile contained these lines:
Sil.Font0: Helvetica10B Helvetica10
Sil.Font1: Helvetica7 Helvetica7
Sil.Font2: Template64 Template64
Sil.Font3: Gates32 Gates32
Sil.Font5: Sil.lb5
Sil.Font6: Sil.lb6
Sil.Font7: Sil.lb7
Sil.Font8: Sil.lb8
Sil.Font9: Sil.lb9
7.2 Default File Extension Entry
You specify a list of default file extensions by a user profile entry of the form:
Sil.FileExtensions: SpecialSil, MySil, YourSil, LSil, Sil
If you specify no explicit extension when reading Sil files, then the list will be traversed in order attempting to open a file with a listed extension. When writing, if no explicit extension is given then .LSil will be used if ^O has been invoked and .Sil will be used if ^P has been invoked. If there is no Sil.FileExtensions entry in your user profile, Sil will act as if you had:
Sil.FileExtensions: LSil, Sil
7.3 Default Viewer Opening
You may specify that viewers open iconic by a user profile entry of the form:
Sil.OpenIconic: TRUE
If you have no such entry, Sil will act as if you had:
Sil.OpenIconic: FALSE.
7.4 Default Icon File
You may specify the icon(s) used for Sil viewers by a user profile entry of the form:
Sil.IconFile: ///YourSubDirectory/YourIcons.icons
The file must contain at least two icons, icon numbers 0 and 1. Icon 0 is used with a "clean" Sil viewer, icon 1 with a "dirty" or "edited" Sil viewer. If you have no such entry, Sil will act as if you had:
Sil.IconFile: /Cedar/CedarChest6.0/Sil/Sil.icons.
8. Input
Input in Sil normally causes some action to take place. Objects may be moved, added, or deleted. It is important to remember than all of the commands involving objects work across window boundaries. An object in one window may be copied to another, moved to another, or used to define a macro in another. Conversely, if you set default parameters for Sil (such as the current font, or the grid spacing), those parameters are set for your current window only. Thus, for example, you may have two windows open: one of which is magnified and accepting strings in Helvetica10 - the other of which is not magnified and is accepting strings in italic Helvetica7.
8.1 Mouse Input
Sil users call clicking the left button mark, clicking the middle button draw, and clicking the right button select. Actions occur when the button is depressed, not when it is released.
Clicking the mouse buttons, sometimes while holding down the control and/or shift keys, have the following meanings:
mark: Move the mark to the current cursor position. (There is only one mark for all Sil windows.)
shift-mark: Move the origin to the current position. (There is only one origin for all Sil windows.)
control-mark: Move the mark to the current cursor position, then move 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 Keyboard Input, below).
control/shift-mark: Same as control-mark except that any attached lines are not stretched (see Keyboard Input, 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 Keyboard Input, 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 Keyboard Input, 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 bounding box is selected. If there are no objects of any type under the cursor, nothing is selected, and the origin is moved to 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.
8.2 Keyboard Input
In general, control characters initiate Sil commands in the current Sil window, and non-control characters are are added to the current Sil window as text.
8.2.1 Adding strings
Strings in the current font and face are added to 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.
While inputting a string, before it is terminated (or when using the BS command, described below), you can use the following characters to edit it:
BS: Backspace one character.
^A: Backspace one character.
^W: Backspace one word.
^Q: Backspace the entire string, but continue accepting characters in the old strings font and face.
DEL: Backspace the entire string, and any further characters accepted will be in the default font and face.
8.2.2 Executing commands
While single control characters initiate Sil commands, sometimes the full command involves the input of some additional characters or file names. In these cases the message window will prompt you for further input. In a couple of instances, special meaning is attributed if the Control and Shift keys are held down simultaneously when the control key is typed. The notation used for this will be ^shA ('control shift A'). The commands are:
^A: Alternate fonts. Toggles font used for display between normal display fonts and printing fonts. Gives the effect of a "look Hardcopy" command.
^B: Draws a rectangular box. The mark and the origin define opposite 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. Sil will complain if you try to draw a box across window boundaries.
^shB: Draws a rectangular background box. The mark and the origin define the corners of the area. This command is useful in creating colored drawings.
^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.
Sil will complain if you try to copy objects that use macro definitions that are undefined in the destination window. Also, if you copy an object from one window to another and the macro definitions are different in the two windows, the appearance of the object will be different in the two windows.
^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.
^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 returns to normal magnification.
^Fn: Sets the current font, face, or color according to the following table
n=0-9:  Font = n.
n=b/i  set font face to bold or italic respectively
n=B/I  set 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.
^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 MX flag is true. The ^N command complements this flag (i.e. makes it false, displaying "F").
^I: Input. When ^I is done, the message "Input File: " 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 or ESC confirms it. If not, simply type the new filename or edit the existing filename with ^Q, BS, or DEL (to abort input). All objects in the named file will be added to the picture relative to absolute [0, 0] of the Sil coordinate system.
^shI: Input Relative. When ^shI is done, the same function as a ^I is performed with one important exception: input files are positioned relative to the mark at the time ^shI is performed, instead of relative to absolute [0, 0].
^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 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.
^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, you may be asked to confirm with a CR. If confirmation is given, the macro is defined.
^M (CR): The mark is moved down by an amount determined by the ^Y command.
^N: Complement the MX 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 in large format. If you supply no extension ".lsil" will be assumed.
^P: Put All: A filename is requested as for ^O, and the macro definitions and picture are written on the file in Alto Sil format. Objects outside the maximum boundaries of Alto Sil pictures will be thrown away. If you supply no extension ".sil" will be assumed.
^shP Put: A filename is requested as for ^O, and the macro definitions and picture are written on the file in Alto Sil format. Objects outside the normal boundaries of Alto Sil pictures will be thrown away. If you supply no extension ".sil" will be assumed.
^Q: This command displays the message "Use viewer Destroy button to Quit" in the Cedar message window.
^R: This command requests confirmation and then deletes all macro definitions. It is used to edit macro libraries.
^S: Show Cursor: all the screen bitmap that will fit into a cursor is copied from the screen, with upper left corner defined by the origin's position. There must be at least one selected object for ^S to affect the cursor. Subsequent copy and move commands may use this new cursor for accurately positioning selected objects. Any command other than move or copy will restore the cursor to the normal arrow. Stretching is turned off when ^S is in effect.
^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.
^shT: Turns on (or off) an array of picture frames which define the disjoint areas that will appear on separate pages when hardcopy is requested. These frames assume an 8.5 inch by 11.0 inch page size. Pictures which are not bounded by these frames will be printed on multiple pages with 0.25 inch overlaps on all edges.
^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, a line of text enumerating the macros currently defined in that font will be shown in the message window. 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.
Sil will complain if you try to move objects that use macro definitions that are undefined in the destination window. Also, if you move an object from one window to another and the macro definitions are different in the two windows, the appearance of the object will be different in the two windows.
^Y: This command toggles 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 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). Note that this is a signed difference, so that setting ylock can cause the mark to move up instead of down.
^Zn: This command asks for a device and filename in order to produce a device-specific hard copy file (an Interpress or Press file). Sil determines the device according the following table
n=R:  device is Raven/300.
n=H  device is Hornet = Raven/384
n=M  device is plateMaker
n=U  device is Puffin
n=C  device is ColorVersatec
n=D  device is Dover => Press file.
It is most likely that you will want to choose a Hornet for your device, as that is how CSL Ravens are configured. After you have produced the file you can send it to a Press printer by using Tsetter, or run a conversion package to translate an Interpress file into a PD file and then send it to a PD printer.
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 or ^A 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.
^ This command causes the BiScrollers transformations to be reset and the viewer to be centered at the mark. It is like a ResetAndCenter except that the centering is done over the mark instead of the geometric center of the drawing. See the Fit transformation, above.
Shift-Shift-Swat This command is not unique to Sil; it is the Emergency SaveAllEdits command in the Viewers package. If your Cedar world dies with unsaved viewers, including Sil viewers, invoking Shift-Shift-Swat (also known as Shift-Shift-Spare3) will make a heroic effort to save all edited viewers. If you execute an emergency save before a normal save of a Sil viewer, the saved file(s) will appear in the root directory with a name like "SilNoNameX.LSil", where X is a unique number.
9. Alto Sil and Cedar Sil Comparison
Cedar Sil has a number of known shortcomings and a number of insurmountable opportunities for the future. This section will give a quick summary of some of these problems or deficiencies.
9.1 Alto Sil Features Not Carried to Cedar Sil
Cedar Sil does not have a save temporary file command; ^P has been redefined as the Put command. Cedar Sil does have the "save of last resort" facility that Tioga has. If you have crashed your system and you need to save your Sil files you can hit shift-shift-swat and your files will be saved. Since these files will be written out with new version numbers you can then decide whether or not you really wanted those changes.
The command line no longer appears in the drawing proper.
When macros are defined, the elements are not automatically deleted and replaced by an instance of the macro. Macros may now be defined in one window with elements selected in another window, in which case the notion of replacing macro elements in the window in which the macro is defined is meaningless.
9.2 Possible New Cedar Sil Features
There are a number of parameters which are fixed in Sil, or fixed in Sil at load time that could pleasantly become profile options. Among these are the size of the delete cache (currently set to five levels), and the number of predefined fonts which can be used (currently set to four).
At the moment, the fonts and libraries which Sil uses are fixed at the time that Sil is loaded. The only way to change them is to change your User profile and then rollback. You will have even more problems if you have included Sil in a checkpoint.
At the moment it is not possible to copy a string from a Tioga window to a Sil window. It is not clear that this will be possible, but it is clear that some form of screen text copy would greatly improve the Sil user interface. It may be possible to create a special viewer (perhaps part of the Sil Command Window) into which the user may copy text from Tioga, and out of which he can copy text to Sil.
9.3 User Interface differences between Alto Sil and Cedar Sil
Following is a brief synopsis of user interface differences between Alto and Cedar Sil:
^A: Alternate fonts. Toggles between display fonts and printing fonts to create a "Look Hardcopy" display. In Alto Sil, this function was performed with ^Z.
^shI: Input Relative. No Alto Sil equivalent. In Cedar, inputs file objects relative to mark.
^O Output: In Alto Sil, outputs in old format. In Cedar, uses new lSil format.
^P and ^shP: Put. In Alto Sil, outputs a temporary file. In Cedar, outputs in old Sil format.
^Q: Quit. In Alto Sil, quits the program. In Cedar, suggests user Destroy viewer.
^shT: Show Frames. No Alto Sil equivalent. In Cedar, turns hardcopy frames on/off.
^Y: YLock. In Alto Sil, unsigned differences only move mark down. In Cedar, mark may move up or down depending on position relative to origin when ylock is set.
^Zn: Hardcopy. In Alto Sil, invokes hardcopy mode used to show printer spacing. Cedar Sil uses ^Z for the hardcopy command.
^ In Alto Sil, relocate the command line in the picture. In Cedar, resets transformations and centers the viewer over the mark.