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