home *** CD-ROM | disk | FTP | other *** search
-
- LOTUS 1-2-3 (tm) .PIC FILE FORMAT DETAILS
-
- This is a partial decoding of the sample pie-chart file
- FACILITY.PIC which comes on the PrintGraph disk (or did,any-
- way, on mine). The HEX listing is the data you would see on a
- DEBUG display of the file's contents; the rest of each line is
- my interpretation of the meaning, verified in most cases by
- patching other data into the file, making a plot, and seeing
- what effect the changes made.
-
- HEX MEANING OF DATA
- ------ -----------------------------------------------------
- 0100 Header Word 1, value 0001 (bytes reversed in file)
- 0000 Header Word 2
- 0100 Header Word 3
- 0800 Header Word 4
- 4400 Header Word 5
- 0000 Header Word 6
- significance of these 6 header words is not known, but
- changes to them often result in Divide Overflow errors
- when PrintGraph attempts to plot the changed file.
- 000C X-coordinate scaling factor, decimal 3072
- 7F09 Y-coordinate scaling factor, decimal 2431
- changes to these scaling factors, within reason, will
- change the size of the plotted graph on the page
- 06 Start of Plot Data. From here on, 16-bit quantities
- are stored in the file high byte first, then low -- the
- exact reverse of 8086/8088 standard used in the first
- six words.
- A7 Select Font...
- 01 ...number 2
- B0 Select Color number 1 (B1=Color 2, etc.)
- A700 Select Font 1
- AC Set Character Size to...
- 008C ...X=140 and...
- 0078 ...Y=120. Note hi-lo byte reversal.
- A0 Move, with pen up, to...
- 063F ...X=1599 and...
- 0906 ...Y=2310. Coordinate 0,0 is at lower left of screen.
- A8 Print label...
- 02 ...centered horizontally below point 1599,2310...
- 42 B (ASCII characters follow, for label)
- 55 U
- 44 D
- 47 G
- 45 E
- 54 T
- 00 ...end of label
- AC Set Character Size to...
- 0046 ...X=70 and...
- 003C ...Y=60
- A701 Select Font number 2
- A0 Move, with pen up, to...
- 063F ...X=1599...
- 083E ...Y=2110
- A8 Print label...
- 04 ...centered horizontally above point 1599,2110...
- 46 55 4E 43 54 49 4F 4E 00 "FUNCTION"
- A0 Move, with pen up, to...
- 0907 ...X=2311...
- 040B ...Y=1035 (start to draw pie, at rightmost edge)
- A2 Draw, with pen down, to...
- 0906 ...X=2310...
- 03F0 ...Y=1008
- A2 Draw, with pen down, to...
- 0904 ...X=2308...
- 03D4 ...Y=980
- ...this goes on for many pages of DEBUG listing, but
- it all follows the above pattern. At the end...
- 60 End of Plot Data
- 1A DOS EOF marker byte
-
- The byte which follows the A8 "LABEL" marker indicates label
- placement with respect to the most recently established pen
- location, and orientation of the label on the page. The low
- four bits, taken MOD 9, indicate placement:
- X0 Label centered vertically and horizontally
- over the point
- X1 Label centered vertically, extending to the
- right of the point
- X2 Label centered horizontally below the point
- X3 Label centered vertically, extending to the
- left of the point
- X4 Label centered horizontally above the point
- X5 Lower right corner of label on the point
- X6 Lower left corner of label on the point
- X7 Upper right corner of label on the point
- X8 Upper left corner of label on the point
- The next higher two bits indicate rotation of the entire label,
- including placement, with respect to the rest of the graph:
- 0X Normal placement (0-degree rotation)
- 1X Rotated 90 degrees CCW
- 2X Rotated 180 degrees (upside down)
- 3X Rotated 270 degrees CCW (90 degrees CW)
- No "opcode" bytes other than those listed above have been found
- in any of the .PIC files I have examined; others may be used,
- however. This information should be enough to let you change
- fonts or label placement in .PIC files, using DEBUG to do the
- hex patching. My software publishing enterprise, "the software
- factory", is developing a user-friendly editor to permit you
- to edit .PIC files without the need for hex patches; it will
- allow additional text to be added to a graph, or any wording
- to be changed. Leave a message to 73105,1650 here or on SASIG,
- or use EMail, if you're interested in getting an announcement
- when it is ready. Jim Kyle, 12 March 1984
-