Inter-Office MemorandumToSil UsersDateAugust 1, 1979FromRoger BatesLocationPalo AltoSubjectSil file definitionOrganizationCSLXEROX Filed on: [MAXC]SilFileDescription.pressThis is a description of the SIL file structure. The definition of the Sil file format was madesolely for the convenience of the Sil program, and is simply a copy of the internal data structurethat Sil maintains in memory during operation.The first word in the file is a check code, that can be used to see that the file is actually a Silformat file. This word has two possible values, octal 34562 and 34563. The second value hasbeen adopted as part of the design automation process to indicate the a Sil schematic file has been"build" into a wire-list file via the Build process.Following this word are a secession of "item blocks" that describe the contents of the Sil drawing.An Item block has the following form:word 0:macro-codeIf this word equals a character code, then this item is to be added to the list ofitems for the macro Font 4 character. All items which are part of macrodefinitions will appear first in the file.If this code is -1, then this is a normal item (string, line etc) and is to bedisplayed once as indicated by the following words.word 1:state and X-min bits 0,,3 are used internally to indicate the current state of an item - normal,selected, or deleted.bits 4,,15 are the minimum X coordinate bit position of the bounding box that theitem occupies.word 2:Y-minbits 0,,15 are the minimum Y coordinate bit position of the bounding box that theitem occupies.word 3:color and X-maxbits 0,,3 are used to indicate the color associated with this item according to thefollowing table:00: Neutral08: Brown01: Red09: Orange02: Yellow10: Lime03: Green11: Turquise04: Cyan12: Aqua05: Violet13: UltraViolet06: Magenta14: Pinkc Xerox Corporation 1980]gpi c8q]rX-q7Br ]q]r -q7Br Yq]r-q 7BrSsr M- IY H<& F. C_c AF @UE >4 ;P :%6 4C301*/9?-3* (0G&$S?" J?  ABq )`J)` )`)` )` V )`   )`" =^ .&pqX"&aSil file definition207: White15: Smokebits 4,,15 are the maximum X coordinate bit position of the bounding box thatthe item occupies. frGbAq)`^r;]K ]3 *Sil file definition3word 4:font, face, and Y-maxbits 0,,3 are used to indicate the "font" associated with this item. Font values areinterpreted according to the following table:00: Font 001: Font 0 with "boldness" opposite to default value in user.cm02: Font 103: Font 1 with "boldness" opposite to default value in user.cm04: Font 205: Font 2 with "boldness" opposite to default value in user.cm06: Font 307: Font 3 with "boldness" opposite to default value in user.cm08: Font 4 macro09: Font 5 macro10: Font 6 macro11: Font 7 macro12: Font 8 macro13: Font 9 macro14: A line with lingth and width indicated by preceeding coordinates15: A background with area indicated by preceeding coordinatesbit 4 is used to indicate the "italics" opposite to default value in user.cm. This bitonly has significance if the font value is 0 through 7.bits 5,,15 are the maximum Y coordinate bit position of the bounding box thatthe item occupies.word 5 etc:optional stringIf the preceeding word indicated an item of fonts 0 through 13, then additionalwords are required to define the characters in the item string. This is done with aBCPL string definition, that is, the left byte of word 5 is the number of charactersin the string, the right byte is the first character. Additional words are appendedas needed to contain the specified number of character bytes.All coordinate value are expressed in "Alto Screen" units and are refernece to the upperleft hand corner of the screen. When making a press file, Sil scales all coordinate valuesby 17780/500.Notice that descriptions of library fonts 5 through 9 characters are not defined within thisSil file. A table is filled in by Sil during input, and later the library files indicated inuser.cm are opened, and the front of the file is scanned for items defining the requiredcharacter codes for each of the library fonts characters.Editorial commentNotice that in the preceeding definition, there are several instances of references to the contents ofthe user.cm to get font family name, default faces, and library file names. This means that asignifacant part of a Sil picture is not defined by the Sil file at all. Users of Sil may come back toan old file that they carefully saved away only to find that they really "lost" part of the drawingbecause they change some of the parameters in their user.cm file for new applications.This has even more impact for people interested in processing Sil files by other programs, sincethey must either work around the parameters in user.cm, or deal with user.cmWhen one runs Sil/I, Sil reads user.cm for font information, and file pointers, and saves this information intwo files called Sil.fonts, and Sil.fps (file pointers). The proceedures for reading these two scratch files couldeasily be lifted from the Sil sources [MAXC]SilSources.dm.Programs should in fact only use user.cm to fill in default values when first needed. Allinformation should be explicidly saved as part of the output file, so that no future referenecesshould be dependant of the contents of user.cm frGb_Q^A-\ q Z?Y XU?W U?T Sa?R$PONmM0KJDIy>FrM D7B+;@=z ;"/9?8=645=1"60]:!. +D*'](X'9 #t r;+ @3+ d 6N V /1 Lq*Cb-F%? r3' M . <\>; TIMESROMAN TIMESROMAN  TIMESROMAN TIMESROMAN LOGO TIMESROMAN MATH  TIMESROMAN !K^XHurwxj/a*silfiledescription.press Swinehart26-Jun-80 12:48:58 PDT