3733 lines
119 KiB
Plaintext
3733 lines
119 KiB
Plaintext
WORKSHEET FILE FORMAT
|
||
FROM LOTUS
|
||
|
||
INTRODUCTION AND QUICK REFERENCE
|
||
|
||
Copyright(c) 1984, Lotus Development Corporation
|
||
161 First Street
|
||
Cambridge, Massachusetts 02142
|
||
(617) 492-7171
|
||
Electronic Edition, December, 1984
|
||
All Rights Reserved
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
PREFACE
|
||
|
||
Lotus Development Corporation's 1-2-3(TM) and Symphony(TM) perform user
|
||
selected operations upon a data matrix that is termed a "worksheet".
|
||
|
||
Worksheet files are such matrices stored on disk.
|
||
|
||
A worksheet file is an unbroken sequence of binary coded records defining a
|
||
single worksheet.
|
||
|
||
Both 1-2-3 and Symphony accept externally created data files if the files
|
||
are in the worksheet file format. Other programs can decode and process
|
||
worksheet files created by 1-2-3 or Symphony.
|
||
|
||
The following document provides information required to create or access a
|
||
worksheet file by describing the records used to create a worksheet file.
|
||
It is assumed that the reader is familiar with Lotus products and has ready
|
||
access to 1-2-3 or Symphony documentation.
|
||
|
||
Note that the worksheet files for 1-2-3 and Symphony are similar, but not
|
||
necessarily interchangeable. 1-2-3 and Symphony share some record types,
|
||
but also have record types unique to that product. Symphony can read 1-2-3
|
||
records, but 1-2-3 cannot read Symphony records.
|
||
|
||
The information contained in this document has been released into the
|
||
public domain and is not considered to be confidential or proprietary
|
||
although still the copyright and property of Lotus Development Corporation.
|
||
All efforts have been made to ensure that this information is clear and
|
||
useful since Lotus will not be providing customer assistance with this
|
||
booklet. Lotus will, however, incorporate any necessary corrections if
|
||
they are reported in writing to:
|
||
|
||
Lotus Development Corporation
|
||
Worksheet File Format
|
||
161 First Street
|
||
Cambridge, MA 02142
|
||
|
||
|
||
WORKSHEET FILE FORMAT
|
||
|
||
Worksheet files are organized as an unbroken sequence of variable length
|
||
binary records. Each record consists of a 4-byte header followed by the
|
||
record body. The header defines the record's type and length, as the
|
||
example below shows.
|
||
|
||
The header's composition is as follows:
|
||
|
||
|
||
|
||
Byte Number Byte Description
|
||
0,1 Record type code
|
||
2,3 Record body length (bytes)
|
||
|
||
|
||
Example: Record Header
|
||
|
||
Record Header
|
||
|
||
Record Record
|
||
Type Length
|
||
|
||
Byte Number 0 1 2 3
|
||
Hex Code 1C 00 20 00
|
||
Decimal Equivalent 28 32
|
||
|
||
|
||
The record body can be of many different types; most have predetermined
|
||
length, but some vary in length.
|
||
|
||
The record type code is 28.
|
||
|
||
In a hex dump of the file, the record type appears as 1C 00h, noting that
|
||
the 8086/88 stores the most significant byte of word in the higher memory
|
||
address.
|
||
|
||
The record length is 32 bytes.
|
||
In a hex dump of the file, the record length appears as 20 00h.
|
||
|
||
|
||
Record types with Column/Row Coordinates
|
||
|
||
Some record types contain column/row coordinates to identify a cell, or one
|
||
of the two points that define a range. Numbering starts at zero in the
|
||
upper left corner of the worksheet.
|
||
For example:
|
||
|
||
Cell A1 = column 0, row 0
|
||
|
||
|
||
|
||
|
||
|
||
SUMMARY OF RECORD TYPES
|
||
|
||
This section describes the different record types found in 1-2-3 and
|
||
Symphony.
|
||
|
||
There are to Quick Reference tables ordered by Opcode and by Product,
|
||
followed by a detailed reference section ordered by Opcode. In the
|
||
reference section, there are examples for the more commonly used records.
|
||
|
||
It is assumed that the reader is familiar with 1-2-3 or Symphony and has
|
||
access to Lotus' documentation.
|
||
|
||
Quick Reference by Opcode
|
||
|
||
Type Code (hex) Length (bytes) Description
|
||
|
||
BOF 0 2 Beginning of file
|
||
EOF 1 0 End of file
|
||
CALCMODE 2 1 Calculation mode
|
||
CALCORDER 3 1 Calculation order
|
||
SPLIT 4 1 Split window type
|
||
SYNC 5 1 Split window sync
|
||
RANGE 6 8 Active worksheet range
|
||
WINDOW1 7 31 Window 1 record
|
||
COLW1 8 3 Column width,
|
||
window 1
|
||
WINTWO 9 31 Window 2 record
|
||
COLW2 A 3 Column width,
|
||
window 2
|
||
NAME B 24 Named range
|
||
BLANK C 5 Blank cell
|
||
INTEGER D 7 Integer number cell
|
||
NUMBER E 13 Floating point number
|
||
LABEL F variable Label cell
|
||
FORMULA 10 variable Formula cell
|
||
TABLE 18 25 Data table range
|
||
ORANGE 19 25 Query range
|
||
PRANGE 1A 8 Print range
|
||
SRANGE 1B 8 Sort range
|
||
FRANGE 1C 8 Fill range
|
||
KRANGE1 1D 9 Primary sort key range
|
||
HRANGE 20 16 Distribution range
|
||
KRANGE2 23 9 Secondary sort key
|
||
range
|
||
PROTEC 24 1 Global protection
|
||
FOOTER 25 242 Print footer
|
||
HEADER 26 242 Print header
|
||
SETUP 27 40 Print setup
|
||
MARGINS 28 10 Print margins code
|
||
|
||
|
||
|
||
Quick Reference by Opcode (continued)
|
||
|
||
Type code (hex) Length (bytes) Description
|
||
|
||
LABELFMT 29 1 Label alignment
|
||
TITLES 2A 16 Print borders
|
||
GRAPH 2D 437 Current graph settings
|
||
NGRAPH 2E 453 Named graph settings
|
||
CALCCOUNT 2F 1 Iteration count
|
||
UNFORMATTED 30 1 Formatted/unformatted
|
||
print
|
||
CURSORW12 31 1 Cursor location
|
||
WINDOW 32 144 Symphony window
|
||
settings
|
||
STRING 33 variable Value of string
|
||
formula
|
||
PASSWORD 37 4 File lockout (CHKSUM)
|
||
LOCKED 38 1 Lock flag
|
||
QUERY 3C 127 Symphony query
|
||
settings
|
||
QUERYNAME 3D 16 Query name
|
||
PRINT 3E 679 Symphony print record
|
||
PRINTNAME 3F 16 Print record name
|
||
GRAPH2 40 499 Symphony graph
|
||
record
|
||
GRAPHNAME 41 16 Graph record name
|
||
ZOOM 42 9 Orig coordinates
|
||
expanded window
|
||
SYMSPLIT 43 2 Nos. of split windows
|
||
NSROWS 44 2 Nos. of screen rows
|
||
NSCOLS 45 2 Nos. of screen columns
|
||
RULER 46 25 Named ruler range
|
||
NNAME 47 25 Named sheet range
|
||
ACOMM 48 65 Autoload.comm code
|
||
AMACRO 49 8 Autoexecute macro
|
||
address
|
||
PARSE 4A 16 Query parse
|
||
information
|
||
|
||
|
||
|
||
|
||
Quick Reference by Product: 1-2-3 only
|
||
|
||
Type Code (hex) Length (bytes) Description
|
||
|
||
SPLIT 4 1 Split window type
|
||
SYNC 5 1 Split window sync
|
||
WINDOW 1 7 31 Window 1 record
|
||
WINTWO 9 31 Window 2 record
|
||
COLW2 A 3 Column width,
|
||
window 2
|
||
NAME B 24 Named range
|
||
QRANGE 19 25 Query range
|
||
PRANGE 1A 8 Print range
|
||
SRANGE 1B 8 Sort range
|
||
KRANGE1 1D 9 Primary sort key range
|
||
KRANGE2 23 9 Secondary sort key
|
||
range
|
||
FOOTER 25 242 Print footer
|
||
HEADER 26 242 Print header
|
||
SETUP 27 40 Print setup
|
||
MARGINS 28 10 Print margins code
|
||
TITLES 2A 16 Print borders
|
||
GRAPH 2D 437 Current graph settings
|
||
NGRAPH 2E 453 Named graph settings
|
||
|
||
|
||
|
||
|
||
Quick Reference by Product: 1-2-3 and Symphony
|
||
|
||
Type Code (hex) Length (bytes) Description
|
||
|
||
BOF 0 2 Beginning of file
|
||
EOF 1 0 End of file
|
||
CALCMODE 2 1 Calculation mode
|
||
CALCORDER 3 1 Calculation order
|
||
RANGE 6 8 Active worksheet range
|
||
COLW1 8 3 Column width
|
||
BLANK C 5 Blank cell
|
||
INTEGER D 7 Integer number cell
|
||
NUMBER E 13 Floating point number
|
||
LABEL F variable Label cell
|
||
FORMULA 10 variable Formula cell
|
||
TABLE 18 25 Data table range
|
||
FRANGE 1C 8 Fill range
|
||
HRANGE 20 16 Distribution range
|
||
PROTEC 24 1 Global protection
|
||
LABELFMT 29 1 Label alignment
|
||
CALCCOUNT 2F 1 Iteration count
|
||
UNFORMATTED 30 1 Formatted/unformatted
|
||
print
|
||
CURSORW12 31 1 Cursor location
|
||
|
||
|
||
|
||
|
||
Quick Reference by Product: Symphony only
|
||
|
||
Type Code (hex) Length (bytes) Description
|
||
|
||
WINDOW 32 144 Symphony window
|
||
settings
|
||
STRING 33 variable Value of string
|
||
formula
|
||
PASSWORD 37 4 File lockout (CHKSUM)
|
||
LOCKED 38 1 Lock flag
|
||
QUERY 3C 127 Symphony query
|
||
settings
|
||
QUERYNAME 3D 16 Query name
|
||
PRINT 3E 679 Symphony print record
|
||
PRINTNAME 3F 16 Print record name
|
||
GRAPH2 40 499 Symphony graph
|
||
record
|
||
GRAPHNAME 41 16 Graph rocord name
|
||
ZOOM 42 9 Orig coordinates
|
||
expanded window
|
||
SYMSPLIT 43 2 Nos. of split windows
|
||
NSROWS 44 2 Nos. of screen rows
|
||
NSCOLS 45 2 Nos. of screen columns
|
||
RULER 46 25 Named ruler range
|
||
NNAME 47 25 Named sheet range
|
||
ACOMM 48 65 Autoload. comm code
|
||
AMACRO 49 8 Autoexecute macro
|
||
address
|
||
PARSE 4A 16 Query parse
|
||
information
|
||
WORKSHEET FILE FORMAT
|
||
FROM LOTUS
|
||
|
||
SUMMARY OF RECORD TYPES
|
||
|
||
Copyright(c) 1984, Lotus Development Corporation
|
||
161 First Street
|
||
Cambridge, Massachusetts 02142
|
||
(617) 492-7171
|
||
Electronic Edition, December, 1984
|
||
All Rights Reserved
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
BOF
|
||
|
||
Record Type Code Body length
|
||
BOF 0 (00H) 2 bytes
|
||
|
||
Record Description
|
||
|
||
Beginning of file
|
||
|
||
Used by both 1-2-3 and Symphony.
|
||
|
||
Byte Number Byte Description
|
||
0-1 file format revision number
|
||
1028 (0404h) = 1-2-3 file
|
||
1029 (0405h) = Symphony file
|
||
|
||
|
||
Example
|
||
|
||
|
||
|
||
Record Header Record Body
|
||
|
||
Record Record BOF
|
||
Type Length
|
||
Byte Number 0 1 2 3 0 1
|
||
Hex Code 00 00 02 00 04 04
|
||
Dec.Equivalent 0 2 1028
|
||
|
||
|
||
EOF
|
||
|
||
Record Type Code Body length
|
||
EOF 1 (01H) 0 bytes
|
||
|
||
Record Description
|
||
|
||
End of file
|
||
|
||
Used by both 1-2-3 and Symphony
|
||
|
||
Byte Number Byte Description
|
||
|
||
-no record body-
|
||
|
||
|
||
Example
|
||
|
||
Record Header
|
||
|
||
Record Record
|
||
Type Length
|
||
Byte Number 0 1 2 3
|
||
Hex Code 01 00 00 00
|
||
Decimal Equivalent 1 0
|
||
|
||
Note: End of file is ony a header. EOF has a record
|
||
length of 0; therefore, no record body follows.
|
||
|
||
|
||
|
||
|
||
|
||
CALCMODE
|
||
|
||
Record Type Code Body length
|
||
|
||
CALCMODE 2 (02h) 1 byte
|
||
|
||
Record Description
|
||
|
||
Calculation method
|
||
|
||
Used by both 1-2-3 and Symphony.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 0 = Manual mode
|
||
FF = automatic
|
||
|
||
|
||
|
||
|
||
|
||
CALCORDER
|
||
|
||
|
||
Recrod Type Code Body length
|
||
CALCORDER 3 (03H) 1 BYTE
|
||
|
||
Record Description
|
||
|
||
Calculation order
|
||
|
||
Used by both 1-2-3 and Symphony
|
||
|
||
Byte Number Byte Description
|
||
0 0 = natural
|
||
1 = by column
|
||
FF = by row
|
||
|
||
|
||
|
||
SPLIT
|
||
|
||
Record Type Code Body length
|
||
SPLIT 4(04h) 1 byte
|
||
|
||
Record Description
|
||
|
||
Split window type
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 0 = not split
|
||
1 = vertical split
|
||
FF = horizontal split
|
||
|
||
|
||
|
||
|
||
SYNC
|
||
|
||
Record Type Code Body length
|
||
SYNC 5(05h) 1 byte
|
||
|
||
Record Description
|
||
|
||
Split window sync
|
||
|
||
This determines whether the two screens in 1-2-3's split-screen feature
|
||
will move together with the cursor.
|
||
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 0 = not synchronized
|
||
FF = synchronized
|
||
|
||
|
||
|
||
|
||
|
||
|
||
RANGE
|
||
|
||
|
||
Record Type Code Body length
|
||
RANGE 6(06h) 8 bytes
|
||
|
||
Record Description
|
||
|
||
Range of cells written to worksheet file.
|
||
If the worksheet file was created using a File Save command, then this
|
||
range describes the active area with trailing blank columns and rows
|
||
removed. If the worksheet file was created using a File Xtract command,
|
||
then this range describes the extract range with trailing blank columns and
|
||
rows removed. If there is no data in the range, the starting column is set
|
||
to -1.
|
||
|
||
Used by both 1-2-3 and Symphony.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 starting column
|
||
2-3 starting row
|
||
4-5 ending column
|
||
6-7 ending row
|
||
|
||
|
||
Example
|
||
|
||
Record Header rt_range Record Body
|
||
Record Record Starting Starting Ending Ending
|
||
Type Length Column Row Column Row
|
||
Byte Number 0 1 2 3 0 1 2 3 4 5 6 7
|
||
Hex Code 06 00 08 00 00 00 00 00 01 00 03 00
|
||
Dec.Equivalent 6 8 0 0 1 3
|
||
|
||
The record displays the worksheet range as A1...B4.
|
||
|
||
|
||
|
||
|
||
WINDOW1
|
||
|
||
Record Type Code Body length
|
||
WINDOW1 7(07h) 31 bytes
|
||
|
||
Record Description
|
||
|
||
Window 1 record
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 cursor column position
|
||
2-3 cursor row position
|
||
4 format (see Appendix A, Cell Format Encoding)
|
||
5 unused (0)
|
||
6-7 column width
|
||
8-9 number of columns on screen
|
||
10-11 number of rows on screen
|
||
12-13 left column
|
||
14-15 top row
|
||
16-17 number of title columns
|
||
18-19 number of title rows
|
||
20-21 left title column
|
||
22-23 top title row
|
||
24-25 border width column
|
||
26-27 border width row
|
||
28-29 window width
|
||
30 unused (0)
|
||
|
||
|
||
|
||
COLW1
|
||
|
||
Record Type Code Body length
|
||
COLW1 8(08h) 3 bytes
|
||
|
||
Record Type Description
|
||
|
||
Column width
|
||
Used by both 1-2-3 and Symphony.
|
||
|
||
In 1-2-3, this record contains the width of a column Window 1.
|
||
In symphony, it contains width information for the Window Record that it
|
||
follows.
|
||
|
||
Byte Number Byte Description
|
||
0-1 column
|
||
2 width
|
||
|
||
|
||
|
||
|
||
WINTWO
|
||
|
||
Record Type Code Body length
|
||
WINTWO 9(09h) 31 bytes
|
||
|
||
Record Description
|
||
Window 2 record
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 cursor column position
|
||
2-3 cursor row position
|
||
4 format (see Appendix A, Cell Format Encoding)
|
||
5 unused (0)
|
||
6-7 column width
|
||
8-9 number of columns on screen
|
||
10-11 number of rows on screen
|
||
12-13 left column
|
||
14-15 top row
|
||
16-17 number of title columns
|
||
18-19 number of title rows
|
||
20-21 left titile column
|
||
22-23 top title row
|
||
24-25 border width column
|
||
26-27 border width row
|
||
28-29 window width
|
||
30 unused (0)
|
||
|
||
|
||
|
||
|
||
COLW2
|
||
|
||
Record Type Code Body length
|
||
COLW2 10(0Ah) 3 bytes
|
||
|
||
Record Description
|
||
Column width, Window 2
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
0-1 column
|
||
2 width
|
||
|
||
|
||
|
||
|
||
|
||
|
||
NAME
|
||
|
||
Record Type Code Body length
|
||
NAME 11 (OBh) 24 bytes
|
||
|
||
Record Description
|
||
|
||
Name of range
|
||
The worksheet contains one record for each range name.
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
0-15 NULL terminated ASCII string
|
||
16-17 Starting column
|
||
18-19 Starting row
|
||
20-21 Ending column
|
||
22-23 Ending row
|
||
|
||
Example
|
||
|
||
Record Header
|
||
Record Record
|
||
Type Length
|
||
Byte Number 0 1 2 3
|
||
Hex Code 0B 00 18 00
|
||
Decimal Equivalent 11 24
|
||
|
||
|
||
|
||
|
||
(cont.)
|
||
|
||
Record Body
|
||
Range Name (Text)
|
||
Decimal Equivalent Expressed in ASCII Text
|
||
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||
52 45 56 45 4E 55 45 53 00 00 00 00 00 00 00 00
|
||
R E V E N U E S / Unfilled Names Area
|
||
|
||
|
||
|
||
(cont.) Record Body
|
||
|
||
Starting Starting Ending Ending
|
||
Column Row Column Row
|
||
16 17 18 19 20 21 22 23
|
||
00 00 00 00 01 00 03 00
|
||
0 0 1 3
|
||
|
||
Range name is REVENUES (encompasses A1 to B4).
|
||
|
||
|
||
|
||
|
||
|
||
|
||
BLANK
|
||
|
||
Record Type Code Body length
|
||
BLANK 12(0Ch) 5 bytes
|
||
|
||
Record Description
|
||
|
||
Blank cell
|
||
|
||
Blank cell records appear only for those cells that are protected, or do
|
||
not have the default format.
|
||
|
||
Unprotected blank cells with the default format are omitted from the
|
||
worksheet file.
|
||
|
||
Used by both 1-2-3 and Symphony.
|
||
|
||
Byte Number Byte Description
|
||
0 format (see Appendix A, Cell Format Encoding)
|
||
1-2 column
|
||
3-4 row
|
||
|
||
Example
|
||
|
||
Record Header Record Body
|
||
Record Record
|
||
Type Length Format Column Row
|
||
Byte Number 0 1 2 3 0 1 2 3 4
|
||
Hex Code 0C 00 05 00 22 05 00 0A 00
|
||
Dec. Equivalent 12 5 34 5 10
|
||
|
||
This record displays cell in location F11 (column 5, row 10).
|
||
|
||
|
||
|
||
|
||
INTEGER
|
||
|
||
Record Type Code Body length
|
||
INTEGER 13(ODh) 7 bytes
|
||
|
||
Record Description
|
||
|
||
Integer number cell
|
||
|
||
An integer cell holds a single integer value
|
||
in the range -32767....+32767 (decimal).
|
||
|
||
Used by both 1-2-3 and Symphony.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 format (see Appendix A, Cell Format Encoding)
|
||
1-2 column
|
||
3-4 row
|
||
5-6 integer value
|
||
|
||
|
||
Example
|
||
|
||
Record Header Record Body
|
||
Record Record
|
||
Type Length Format Column Row Integer
|
||
Byte Number 0 1 2 3 0 1 2 3 4 5 6
|
||
Hex Code 0D 00 07 00 00 00 00 00 00 DD 04
|
||
Dec. Equivalent 13 7 0 0 0 1245
|
||
|
||
This example displays the integer 1245 located in cell A1 (column 0, row
|
||
0). When reading a 2-byte integer, the lower byte appears first. For
|
||
example, DD04h is actually 04DDh (1245 decimal).
|
||
|
||
|
||
|
||
|
||
|
||
NUMBER
|
||
|
||
Record Type Code Body length
|
||
NUMBER 14 (0Eh) 13 bytes
|
||
|
||
Record Description
|
||
|
||
Floating point number
|
||
Used by both 1-2-3 and Symphony
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 format
|
||
1-2 column
|
||
3-4 row
|
||
5-12 value (IEEE long real; 8087 double-precision floating-
|
||
point format)
|
||
|
||
Example
|
||
The following describes a 64-bit long real format.
|
||
|
||
|
||
S Exponent Fraction
|
||
63 62 52 51 0
|
||
MSB LSB
|
||
|
||
S 1-bit Sign field
|
||
0 = +
|
||
1 = -
|
||
|
||
Exponent 11-bit Exponent field
|
||
|
||
Exponent is binary, excess 1023(base 10). Thus, the true
|
||
exponent is: 2^(exponent -1023).
|
||
|
||
Fraction 52-bit Fraction field
|
||
|
||
An implied leading 1 bit is at the beginning of the
|
||
fraction. The implied binary point is between the implied
|
||
1 bit and the Most Significant Bit (MSB) of the fraction
|
||
field.
|
||
|
||
Special NA: S = 1 Exponent = 7FF Fraction = 0
|
||
Values ERR: S = 0 Exponent = 7FF Fraction = 0
|
||
|
||
STRING: S = 0 Exponent = 7FF Fraction = non-zero
|
||
(Symphony only)
|
||
|
||
|
||
|
||
|
||
|
||
LABEL
|
||
|
||
Record Type Code Body length
|
||
LABEL 15(0Fh) variable
|
||
|
||
Record Description
|
||
|
||
Label cell
|
||
Used by both 1-2-3 and Symphony.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 format (see Appendix A, Cell Format Encoding)
|
||
1-2 column
|
||
3-4 row
|
||
5+ NULL terminated ASCII string;
|
||
240 bytes maximum
|
||
|
||
|
||
Example
|
||
|
||
Record Header Record Body
|
||
Record Record
|
||
Type Length Format Column Row Label
|
||
Byte Number 0 1 2 3 0 1 2 3 4 5 6 7 8 9 10
|
||
Hex Code 0F 00 0B 00 F5 00 00 00 00 27 50 41 55 4C 00
|
||
Dec. Equivalent 15 11 245 0 0 P A U L
|
||
|
||
This example is a label record located at A1 (column 0, row 0).
|
||
|
||
This record contains the word 'PAUL.
|
||
Byte 5 is always one of the following format prefixes:\'"^.
|
||
|
||
This record varies in relation to the amount of text stored in the cell.
|
||
|
||
A user can enter up to 240 characters in one cell.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
FORMULA
|
||
|
||
Record Type Code Body length
|
||
FORMULA 16(10H) variable
|
||
|
||
Record Description
|
||
|
||
Formula cell
|
||
|
||
Used by both 1-2-3 and Symphony.
|
||
|
||
Formulas are compiled in Reverse Polish Internal Notation. By creating
|
||
formulas in 1-2-3 or Symphony, and dumping them as hex bytes, the formula
|
||
compilation logic can be deciphered.
|
||
|
||
Table 1 describes the available Opcodes and functions. The functions are
|
||
discussed in greater detail in the 1-2-3 and Symphony documentation.
|
||
|
||
Appendix B discusses Lotus' proprietary formula compiler in greater
|
||
detail.
|
||
|
||
Byte Number Byte Description
|
||
0 format (see Appendix A, Cell Format Encoding
|
||
1-2 column
|
||
3-4 row
|
||
5-12 formula numeric value (IEEE long real; see NUMBER)
|
||
13-14 formula size (bytes)
|
||
15+ for code (see Table 1, Formula Opcodes); Reverse
|
||
Polish Internal Notation; 2048 bytes maximum
|
||
|
||
|
||
|
||
|
||
|
||
FORMULA
|
||
|
||
Table 1-a Formula Compiler Opcode Table, Format
|
||
|
||
Dec Hex Operation Description
|
||
0 0 constant Code is followed by an 8 byte
|
||
IEEE Long Real Floating Point
|
||
Number
|
||
|
||
1 1 variable Code followed by 4 byte coor-
|
||
dinate Byte 0,1 = Column
|
||
Byte 2,3 = Row
|
||
|
||
2 2 range Code followed by 8 byte range
|
||
Byte 0,1 = Start column
|
||
Byte 2,3 = Start row
|
||
Byte 4,5 = End column
|
||
Byte 6,7 = End row
|
||
|
||
3 3 return End of formula
|
||
|
||
4 4 parentheses Indicates presence of paren-
|
||
theses in original formula.
|
||
It is ignored during recal-
|
||
culation.
|
||
|
||
5 5 2 byte integer Followed by 2 byte signed
|
||
constant integer.
|
||
|
||
The above Opcodes will define the type and length of information that
|
||
follows the Opcode. Opcode 3 defines the end of the formula.
|
||
|
||
For example, Opcode 0 is followed by an 8 byte floating point number.
|
||
Opcode 1 is followed by a 4 byte coordinate.
|
||
Opcode 2 is followed by an 8 byte range specifier.
|
||
Opcode 5 is followed by a 2 byte signed integer.
|
||
|
||
|
||
|
||
|
||
|
||
FORMULA
|
||
|
||
Table 1-b Formula Compiler Opcode Table, Operations
|
||
|
||
Dec Hex Operation Description
|
||
|
||
8 8 unary - Negation
|
||
9 9 + Addition
|
||
10 A - Subtraction
|
||
11 B * Multiplication
|
||
12 C / Division
|
||
13 D ^ Exponentiation;
|
||
ie. 3^2 is(3x3)
|
||
14 E = Equal to
|
||
15 F < > Not equal to
|
||
16 10 < = Less than or equal to
|
||
17 11 > = Greater than or equal to
|
||
18 12 < Less than
|
||
19 13 > Greater than
|
||
20 14 #AND# Logical AND
|
||
21 15 #OR# Logical OR
|
||
22 16 #NOT# Logical NOT
|
||
23 17 unary + (Ignored during recalculation
|
||
31 1F na @Na not applicable
|
||
32 20 err @Err error
|
||
33 21 abs @abs (x) Absolute value of x
|
||
34 22 int @int (x) Integer value of x
|
||
35 23 sqrt @sqrt (x) Square root of x
|
||
36 24 log @log (x) Log base 10 of x
|
||
37 25 ln @ln (x) Log base e of x
|
||
38 26 pi @pi
|
||
39 27 sin @sin (x) Sine of x
|
||
40 28 cos @cos (x) Cosine of x
|
||
41 29 tan @tan (x) Tangent of x
|
||
42 2A atan2 @atan2 (x) 4 quadrant arc tangent
|
||
of x
|
||
43 2B atan @atan (x) 2 quadrant arc tangent
|
||
of x
|
||
44 2C asin @asin (x) Arc sine of x
|
||
45 2D acos @acos (x) Arc cosine of x
|
||
46 2E exp @exp (x) Exponential anti-log of x
|
||
47 2F mod @mod (x,y)X Mod Y
|
||
48 30 sel @Choose (x,v0,v1...vN)
|
||
Match a list item.
|
||
49 31 isna @isna (x)x = NA then 1 (true)
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
FORMULA
|
||
|
||
Table 1-b (continued) Formula Compiler Opcode Table, Operations
|
||
|
||
Dec Hex Operation Description
|
||
51 33 false @false Return 0
|
||
52 34 true @true Return 1
|
||
53 35 rand @rand Generate random number
|
||
between 0 and 1
|
||
54 36 date @date (Y,M,D) Generate the days
|
||
since 1/1/1900 (Y = 0-199,
|
||
M = 1-12, D = 1-31)
|
||
55 37 today @today Output serial date number
|
||
from cpu's clock
|
||
56 38 pmt @pmt (princ, int, term)Payment
|
||
57 39 pv @pv (pmt, int, term) Present value
|
||
58 3A fv @fv (pmt, int, term) Future Value
|
||
59 3B if @if (argument, them else) Boolean
|
||
if
|
||
60 3C day @day (x) Print day of the month from
|
||
a serial date number
|
||
61 3D month @month (x) Print month of the year
|
||
from a serial date number
|
||
62 3E round @round (x,d) Round number x to d
|
||
decimal places
|
||
|
||
The above Opcodes are variable, constant and argument related.
|
||
|
||
For example: @sqrt (9) is the square root of the constant 9
|
||
@sqrt (A1) is the square root of the variable A1
|
||
@sqrt ((A1*2)/3) is the square root of the argument (A1*2)/3
|
||
(Note that the argument ((A1*2)/3) will be processed before
|
||
the @sqrt function.)
|
||
|
||
|
||
|
||
|
||
|
||
|
||
FORMULA
|
||
|
||
Table 1-c Formula Compiler Opcode Table, Multiple Arguments
|
||
|
||
Dec Hex Operation Description
|
||
80 50 sum @sum (range and/or cell and/or
|
||
constant) Use commas to separate
|
||
arguments
|
||
81 51 avg @avg (range and/or cell and/or constant)
|
||
Use commas to separate arguments
|
||
82 52 cnt @cnt (range and/or cell and/or constant)
|
||
Use commas to separate arguments
|
||
83 53 min @min (range and/or cell and/or constant)
|
||
Use commas to separate arguments
|
||
84 54 max @max (range and/or cell and/or constant
|
||
Use commas to separate arguments
|
||
85 55 vlookup @Vlookup (x, range, offset) X = Cell
|
||
address or constant, range = Table,
|
||
Offset = Row in Table
|
||
86 56 npv @npv (int, range) Net present value;
|
||
Int = interest, Range = cash flows
|
||
87 57 var @var (range) Variance of all items in
|
||
list
|
||
88 58 std @std (range) Standard deviation of all
|
||
items in list
|
||
89 59 irr @irr (guess,range) Guess = % estimate;
|
||
Range = range of cash flows
|
||
90 5A hlookup @hlookup, (x, range, offset) X = Cell
|
||
address or constant, range = Table,
|
||
Offseet = row in Table
|
||
91 5B dsum Database statistical functions
|
||
92 5C avg Database statistical functions
|
||
93 5D dcnt Database statistical functions
|
||
94 5E dmin Database statistical functions
|
||
95 5F dmax Database statistical functions
|
||
96 60 dvar Database statistical functions
|
||
97 61 dstd Database statistical functions
|
||
|
||
The above Opcodes deal specifically with ranges and multiple arguments.
|
||
For example: @sum (A1...A10, B25, 9) contains a range, a variable and a
|
||
constant as the arguments.
|
||
|
||
All function Opcodes which accept a variable number of arguments
|
||
are followed by a 1-byte argument count.
|
||
|
||
|
||
|
||
|
||
|
||
FORMULA
|
||
|
||
Table 1-d Operator Precedence Table
|
||
|
||
Operator Unary Precedence Binary Precedence
|
||
+ 6 4
|
||
- 6 4
|
||
* na 5
|
||
/ na 5
|
||
^ na 7
|
||
= na 3
|
||
< > na 3
|
||
< = na 3
|
||
> = na 3
|
||
< na 3
|
||
> na 3
|
||
#and# na 1
|
||
#or# na 1
|
||
#not# 2 na
|
||
|
||
A Note on the Decompiler
|
||
|
||
The algorithm for the formula decompiler was taken verbatim from:
|
||
|
||
Writing Interactive Compilers and Interpreters, P.J. Brown, John Wiley
|
||
and Sons, 1979. See chapter 6.2. The algorithm itself is described on
|
||
pages 216 and 217.
|
||
|
||
This algorithm is also described in the following article:
|
||
|
||
More on the Re-creation of Source Code from Reserve Polish, P.J. Brown,
|
||
Software Practice and Experience, Vol 7, 545-551 (1977).
|
||
|
||
|
||
|
||
|
||
|
||
|
||
TABLE
|
||
|
||
Record Type Code Body length
|
||
TABLE 24 (18h) 25 bytes
|
||
|
||
Record Description
|
||
|
||
Table range
|
||
|
||
Used by both 1-2-3 and Symphony.
|
||
In 1-2-3, the record refers to Data Tables 1 and 2.
|
||
In Symphony, it refers to What-if Tables 1 and 2.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 0 = no table
|
||
1 = Table 1
|
||
2 = Table 2
|
||
1-2 Table Range; starting column
|
||
3-4 starting row
|
||
5-6 ending column
|
||
7-8 ending row
|
||
9-10 Input Cell 1; starting column
|
||
11-12 starting row
|
||
13-14 ending column
|
||
15-16 ending row
|
||
17-18 Input Cell 2; starting column
|
||
19-20 starting row
|
||
21-22 ending column
|
||
23-24 ending row
|
||
|
||
|
||
|
||
|
||
|
||
QRANGE
|
||
|
||
Record Type Code Body length
|
||
QRANGE 25 (19h) 25 bytes
|
||
|
||
Record Description
|
||
|
||
Query range
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 Input ranges; starting column
|
||
2-3 starting row
|
||
4-5 ending column
|
||
6-7 ending row
|
||
8-9 Output ranges starting column
|
||
10-11 starting row
|
||
12-13 ending column
|
||
14-15 ending row
|
||
16-17 Criteria; starting column
|
||
18-19 starting row
|
||
20-21 ending column
|
||
22-23 ending row
|
||
24 Command; 0 = no command
|
||
1 = find
|
||
2 = extract
|
||
3 = delete
|
||
4 = unique
|
||
|
||
|
||
|
||
|
||
|
||
|
||
PRANGE
|
||
|
||
Record Type Code Body length
|
||
PRANGE 26 (1Ah) 8 bytes
|
||
|
||
Record Description
|
||
|
||
Print range
|
||
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
0-1 starting column
|
||
2-3 starting row
|
||
4-5 ending column
|
||
6-7 ending row
|
||
|
||
|
||
|
||
|
||
|
||
|
||
SRANGE
|
||
|
||
Record Type Code Body length
|
||
SRANGE 27 (1Bh) 8 bytes
|
||
|
||
Record Description
|
||
|
||
Sort range
|
||
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 starting column
|
||
2-3 starting row
|
||
4-5 ending column
|
||
6-7 ending row
|
||
|
||
|
||
|
||
|
||
|
||
FRANGE
|
||
|
||
Record Type Code Body length
|
||
FRANGE 28 (1Ch) 8 bytes
|
||
|
||
Record Description
|
||
|
||
Fill range
|
||
|
||
Used by both 1-2-3 and Symphony.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 starting column
|
||
2-3 starting row
|
||
4-5 ending column
|
||
6-7 ending row
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
KRANGE
|
||
|
||
|
||
Record Type Code Body length
|
||
KRANGE 29 (1Dh) 9 bytes
|
||
|
||
Record Description
|
||
|
||
Primary sort key range
|
||
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 starting column
|
||
2-3 starting row
|
||
4-5 ending column
|
||
6-7 ending row
|
||
8 Order: 0 = descending order
|
||
FF = ascending order
|
||
|
||
|
||
|
||
HRANGE
|
||
|
||
|
||
Record Type Code Body length
|
||
HRANGE 32 (20h) 16 bytes
|
||
|
||
Record Description
|
||
|
||
Distribution range
|
||
|
||
Used by both 1-2-3 and Symphony.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 Values range; starting column
|
||
2-3 starting row
|
||
4-5 ending column
|
||
6-7 ending row
|
||
8-9 Bin range starting column
|
||
10-11 starting row
|
||
12-13 ending column
|
||
14-15 ending row
|
||
|
||
|
||
|
||
|
||
KRANGE2
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
KRANGE2 35(23h) 9 bytes
|
||
|
||
Record Description
|
||
|
||
Secondary sort key range
|
||
|
||
Use in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 starting column
|
||
2-3 starting row
|
||
4-5 ending column
|
||
6-7 ending row
|
||
8 Order; 0 = descending order
|
||
FF = ascending order
|
||
|
||
|
||
|
||
|
||
|
||
PROTEC
|
||
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
PROTEC 36(24h) 1 byte
|
||
|
||
Record Description
|
||
|
||
Global protection
|
||
|
||
Used by both 1-2-3 and Symphony.
|
||
|
||
Byte Number Byte Description
|
||
0 0 = global protection OFF
|
||
1 = global protection ON
|
||
|
||
|
||
|
||
|
||
|
||
FOOTER
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
FOOTER 37(25h) 242 bytes
|
||
|
||
Record Description
|
||
|
||
Print footer
|
||
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
0-242 NULL termination ASCII string
|
||
|
||
|
||
|
||
|
||
|
||
HEADER
|
||
|
||
Record Type Code Body length
|
||
|
||
HEADER 38(26h) 242 bytes
|
||
|
||
Record Description
|
||
|
||
Print header
|
||
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
0-242 NULL termination ASCII string
|
||
|
||
|
||
SETUP
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
SETUP 39(27h) 40 bytes
|
||
|
||
Record Description
|
||
|
||
Print setup
|
||
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-40 NULL terminated ASCII string
|
||
|
||
|
||
|
||
MARGINS
|
||
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
MARGINS 40(28h) 10 bytes
|
||
|
||
Record Description
|
||
|
||
Print margins code
|
||
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 left margin
|
||
2-3 right margin
|
||
4-5 page length
|
||
6-7 top margin
|
||
8-9 bottom margin
|
||
|
||
|
||
|
||
|
||
LABELFMT
|
||
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
LABELFMT 41 (29h) 1 byte
|
||
|
||
Record Description
|
||
|
||
Label alignment
|
||
|
||
Used by both 1-2-3 and Symphony
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 27h = left
|
||
22h = right
|
||
5Eh = center
|
||
|
||
|
||
|
||
|
||
TITLES
|
||
|
||
|
||
Record Types Code Body length
|
||
|
||
TITLES 42(2Ah) 16 bytes
|
||
|
||
Record Description
|
||
|
||
Print borders
|
||
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 Row border; starting column
|
||
2-3 starting row
|
||
4-5 ending column
|
||
6-7 ending row
|
||
8-9 Column border; starting column
|
||
10-11 starting row
|
||
12-13 ending column
|
||
14-15 ending row
|
||
|
||
|
||
|
||
|
||
GRAPH
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
GRAPH 45(2Dh) 437 bytes
|
||
|
||
Record Description
|
||
|
||
Current graph settings
|
||
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
-- see Table 2 Graph Record Structure --
|
||
|
||
|
||
|
||
GRAPH
|
||
|
||
|
||
Table 2 Graph Record Structure
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 X Range; starting column
|
||
2-3 starting row
|
||
4-5 ending column
|
||
6-7 ending row
|
||
|
||
8-9 A Range; starting column
|
||
10-11 starting row
|
||
12-13 ending column
|
||
14-15 ending row
|
||
|
||
16-17 B Range; starting column
|
||
18-19 starting row
|
||
20-21 ending column
|
||
22-23 ending row
|
||
|
||
24-25 C Range; stating column
|
||
26-27 starting row
|
||
28-29 ending column
|
||
30-31 ending row
|
||
32-33 D Range; starting column
|
||
34-35 starting row
|
||
36-37 ending column
|
||
38-39 ending row
|
||
|
||
40-41 E Range; starting column
|
||
42-43 starting row
|
||
44-45 ending column
|
||
46-47 ending row
|
||
|
||
48-49 F Range; starting column
|
||
50-51 starting row
|
||
52-53 ending column
|
||
54-55 ending row
|
||
|
||
56-57 A Labels; starting column
|
||
58-59 starting row
|
||
60-61 ending column
|
||
62-63 ending row
|
||
|
||
64-65 B Labels; starting column
|
||
66-67 starting row
|
||
68-69 ending column
|
||
70-71 ending row
|
||
|
||
72-73 C Labels; starting column
|
||
74-75 starting row
|
||
76-77 ending column
|
||
78-79 ending row
|
||
|
||
80-81 D Labels; starting column
|
||
82-83 starting row
|
||
84-85 ending column
|
||
86-87 ending row
|
||
|
||
|
||
|
||
|
||
GRAPH
|
||
|
||
|
||
Table 2 (continued) Graph Record Structure
|
||
|
||
Byte Number Byte Description
|
||
|
||
88-89 E Labels; starting column
|
||
90-91 starting row
|
||
92-93 ending column
|
||
94-95 ending row
|
||
96-97 F Labels; starting column
|
||
98-97 starting row
|
||
100-101 ending column
|
||
102-103 ending row
|
||
|
||
104 Graph type 0 = XY, 1 = bar, 2 = pie,
|
||
4 = line, 5 = stacked bar
|
||
|
||
105 Grid; 0 = none, 1 = horizontal,
|
||
2 = vertical, 3 = both
|
||
|
||
106 Color 0 = black-white, FF = color
|
||
|
||
107 A Range line format; 0 = none, 1 = line,
|
||
2 = symbol, 3 = line-symbol
|
||
|
||
108 B Range line format; 0 = none, 1 = line,
|
||
2 = symbol, e = line-symbol
|
||
|
||
109 C Range line format; 0 = none, 1 = line,
|
||
2 = symbol, 3 = line-symbol
|
||
|
||
110 D Range line format; 0 = none, 1 = line,
|
||
2 = symbol, 3 = line-symbol
|
||
|
||
111 E Range line format; 0 = none, 1 = line,
|
||
2 = symbol, 3 = line-symbol
|
||
|
||
112 F Range line format; 0 = none, 1 = line,
|
||
2 = symbol, 3 = line-symbol
|
||
|
||
113 A Range data label 0 = center, 1 = right,
|
||
alignment; 2 = below, 3 = left,
|
||
4 = above
|
||
|
||
114 B Range data label 0 = center, 1 = right
|
||
alignment; 2 = below, 3 = left
|
||
4 = above
|
||
|
||
115 C Range data label 0 = center, 1 = right
|
||
alignment; 2 = below, 3 = left
|
||
4 = above
|
||
|
||
116 D Range data label 0 = center, 1 = right
|
||
alignment; 2 = below, 3 = left
|
||
4 = above
|
||
|
||
117 E Range data label 0 = center, 1 = right
|
||
alignment; 2 = below, 3 = left
|
||
4 = above
|
||
|
||
118 F Range data label 0 = center, 1 = right
|
||
alignment; 2 = below, 3 = left
|
||
4 = above
|
||
|
||
|
||
|
||
|
||
GRAPH
|
||
|
||
|
||
Table 2 (continued) Graph Record Structure
|
||
|
||
Byte Number Byte Description
|
||
|
||
119 Scale 0 = auto
|
||
FF = manual
|
||
120-127 X lower limit in floating point format
|
||
|
||
128-135 X upper limit in floating point format
|
||
|
||
136 Y scale; 0 = automatic
|
||
FF = manual
|
||
|
||
137-144 Y lower limit in floating point format
|
||
|
||
145-152 Y upper limit in floating point format
|
||
|
||
|
||
|
||
153-192 First title
|
||
|
||
193-232 Second title
|
||
|
||
233-272 X title
|
||
|
||
273-312 Y title
|
||
|
||
313-332 A legend
|
||
|
||
333-352 B legend
|
||
|
||
353-372 C legend
|
||
|
||
373-392 D legend
|
||
|
||
393-412 E legend
|
||
|
||
413-432 F legend
|
||
|
||
433 X format
|
||
|
||
434 Y format
|
||
|
||
435-436 Skip factor
|
||
|
||
|
||
|
||
|
||
|
||
NGRAPH
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
NGRAPH 46 (2EH) 453 bytes
|
||
|
||
Record Description
|
||
|
||
Named current graph settings
|
||
|
||
Used in 1-2-3 only.
|
||
|
||
Bytes Number Byte Description
|
||
|
||
-- see Table 3 Ngraph Record Structure --
|
||
|
||
|
||
NGRAPH
|
||
|
||
|
||
Table 3 NGraph Record Structure
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-15 Name; NULL terminated ASCII string
|
||
|
||
16-17 X Range; starting column
|
||
18-19 starting row
|
||
20-21 ending column
|
||
22-23 ending row
|
||
|
||
24-25 A Range; starting column
|
||
26-27 starting row
|
||
28-29 ending column
|
||
30-31 ending row
|
||
|
||
32-33 B Range; starting column
|
||
34-35 starting row
|
||
36-37 ending column
|
||
38-39 ending row
|
||
|
||
40-41 C Range; starting column
|
||
42-43 starting row
|
||
44-45 ending column
|
||
46-47 ending row
|
||
|
||
48-49 D Range; starting column
|
||
50-51 starting row
|
||
52-53 ending column
|
||
54-55 ending row
|
||
|
||
56-57 E Range; starting column
|
||
58-59 starting row
|
||
60-61 ending column
|
||
62-63 ending row
|
||
|
||
64-65 F Range; stating column
|
||
66-67 starting row
|
||
68-69 ending column
|
||
70-71 ending row
|
||
|
||
72-73 A Labels; starting column
|
||
74-75 starting row
|
||
76-77 ending column
|
||
78-79 ending row
|
||
|
||
80-81 B Labels; starting column
|
||
82-83 starting row
|
||
84-85 ending column
|
||
86-87 ending row
|
||
|
||
88-89 C Labels; starting column
|
||
90-91 starting row
|
||
92-93 ending column
|
||
94-95 ending row
|
||
|
||
96-97 D Labels; starting column
|
||
98-99 starting row
|
||
100-101 ending column
|
||
102-103 ending row
|
||
|
||
|
||
NGRAPH
|
||
|
||
|
||
Table 3 (continued) NGraph Record Structure
|
||
|
||
Byte Number Byte Description
|
||
|
||
104-105 E Labels; starting column
|
||
106-107 starting row
|
||
108-109 ending column
|
||
110-111 ending row
|
||
|
||
112-113 F Labels; starting column
|
||
114-115 starting row
|
||
116-117 ending column
|
||
118-119 ending row
|
||
|
||
120 Graph type; 0 = XY, 1 = bar, 2 = pie,
|
||
4 = line, 5 = stacked bar
|
||
|
||
121 Grid 0 = none, 1 = horizontal,
|
||
2 = vertical, 3 = both
|
||
|
||
122 Color; 0 = black-white, FF = color
|
||
|
||
123 A Range line format; 0 = none, l = line,
|
||
2 = symbol, 3 = line-symbol
|
||
|
||
124 B Range line format; 0 = none, 1 = line,
|
||
2 = symbol, 3 = line-symbol
|
||
|
||
125 C Range line format; 0 = none, 1 = line 2 = symbol, 3 = line-symbol
|
||
2 = symbol, 3 = line-symbol
|
||
|
||
126 D Range line format; 0 = none, 1 = line
|
||
2 = symbol, 3 = line-symbol
|
||
|
||
127 E Range line format; 0 = none, 1 = line
|
||
2 = symbol, 3 = line-symbol
|
||
|
||
128 F Range line format; 0 = none, 1 = line
|
||
2 = symbol, 3 = line-symbol
|
||
|
||
129 A Range data label 0 = center, 1 = right
|
||
alignment 2 = below, 3 = left,
|
||
4 = above
|
||
|
||
130 B Range data label 0 = center, 1 = right
|
||
alignment 2 = below, 3 = left
|
||
4 = above
|
||
|
||
131 C Range data label 0 = center, 1 = right
|
||
alignment 2 = below, 3 = left
|
||
4 = above
|
||
|
||
132 D Range data label 0 = center, 1 = right
|
||
alignment 2 = below, 3 = left
|
||
4 = above
|
||
|
||
133 E Range data label 0 = center, 1 = right
|
||
alignment 2 = below, 3 = left
|
||
4 = above
|
||
|
||
134 F Range data label 0 = center, 1 = right
|
||
alignment 2 = below, 3 = left
|
||
|
||
135 Scale 0 = auto
|
||
FF = manual
|
||
|
||
|
||
|
||
NGRAPH
|
||
|
||
|
||
Table 3 (continued) NGraph Record Structure
|
||
|
||
Byte Number Byte Description
|
||
|
||
136-143 X lower limit in floating point format
|
||
|
||
144-151 X upper limit in floating point format
|
||
|
||
152 Y scale; 0 = automatic
|
||
FF = manual
|
||
|
||
153-160 Y lower limit in floating point format
|
||
|
||
161-168 Y upper limit in floating point format
|
||
|
||
|
||
209-224 First title
|
||
|
||
225-248 Second title
|
||
|
||
249-288 X title
|
||
|
||
289-328 Y title
|
||
|
||
329-348 A legend
|
||
|
||
349-368 B legend
|
||
|
||
369-388 C legend
|
||
|
||
389-408 D legend
|
||
|
||
409-428 E legend
|
||
|
||
429-448 F legend
|
||
|
||
449 X format
|
||
|
||
450 Y format
|
||
|
||
451-452 Skip factor
|
||
|
||
|
||
|
||
|
||
CALCCOUNT
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
CALCCOUNT 47(2Fh) 1 byte
|
||
|
||
Record Description
|
||
|
||
Iteration count
|
||
|
||
Used in 1-2-3 and Symphony.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 Iteration count
|
||
|
||
|
||
|
||
|
||
UNFORMATTED
|
||
|
||
Record Type Code Body length
|
||
|
||
UNFORMATTED 48(30h) 1 byte
|
||
|
||
Record Description
|
||
|
||
Formatted/unformatted print
|
||
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 0 = formatted
|
||
1 = unformatted
|
||
|
||
|
||
|
||
|
||
CURSORW12
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
CURSORW12 49(31h) 1
|
||
|
||
Record Description
|
||
|
||
Cursor location
|
||
|
||
Used in 1-2-3 only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 1 = cursor in Window 1
|
||
2 = cursor in Window 2
|
||
|
||
|
||
|
||
WINDOW
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
WINDOW 50(32h) 144 bytes
|
||
|
||
Record Description
|
||
|
||
Window record structure
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
-- see Table 4 Window Record Structure --
|
||
|
||
|
||
|
||
WINDOW
|
||
|
||
|
||
Table 4 Window Record Structure
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-15 Window name NULL terminated ASCII
|
||
string
|
||
16-17 Cursor position; column
|
||
18-19 row
|
||
20 Format (see Appendix A,
|
||
Cell Format Encoding)
|
||
|
||
21 Unused
|
||
22-23 Column width
|
||
24-25 Total number of columns
|
||
26-27 Total number of rows
|
||
28-29 Non-Title Home Position; column
|
||
30-31 row
|
||
32-33 Number of title columns
|
||
34-35 Number of title rows
|
||
36-37 Left title column
|
||
38-39 Top title row
|
||
40-41 Home position column
|
||
42-43 Home position row
|
||
44-45 Number of screen columns
|
||
46-47 Number of screen rows
|
||
|
||
48 Hidden Status; 0 = hidden
|
||
FF = not hidden
|
||
|
||
49 Previous window; 0 = SHEET
|
||
1 = DOC
|
||
2 = GRAPH
|
||
3 = COMM
|
||
4 = FORM
|
||
5 = APPLICATION
|
||
|
||
50 Border display; 0 = cell
|
||
FF = no cell
|
||
|
||
51 Border display lines; 0 = lines
|
||
FF = no lines
|
||
|
||
52-53 Window Range starting column
|
||
54-55 starting row
|
||
56-57 ending column
|
||
58-59 ending row
|
||
|
||
60-61 Offset
|
||
|
||
62 Insert mode flag; 0 = OFF
|
||
non-zero = ON
|
||
|
||
63-78 Graph name
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
WINDOW
|
||
|
||
|
||
|
||
Table 4 (continued) Window Record Structure
|
||
|
||
Byte Number Byte Description
|
||
79 Window type; 0 = SHEET
|
||
1 = DOC
|
||
2 = GRAPH
|
||
3 = COMM
|
||
4 = FORM
|
||
5 = APPLICATION
|
||
|
||
80 Automatic display mode "a" = automatic (ASCII
|
||
flag; lower case "a")
|
||
else = manual
|
||
|
||
81 Forms filter; 0 = filter
|
||
non-zero = no filter
|
||
|
||
82-97 Associated form name
|
||
98-99 Forms current record
|
||
|
||
100 Space display; 0 = no spaces
|
||
non-zero = spaces
|
||
|
||
101 Line spacing; 1 = 1 space
|
||
2 = 2 spaces
|
||
3 = 3 spaces
|
||
|
||
102 Justify type "1" = left (ASCII lower
|
||
case "1")
|
||
"r" = right (ASCII lower
|
||
case "r")
|
||
"c" = center (ASCII
|
||
lower case "c"
|
||
"e" = even (ASCII lower
|
||
case "e"
|
||
|
||
103-104 Right Margin 0 = FOh characters
|
||
= right margin
|
||
FF = no user-defined
|
||
right margin; use
|
||
default value
|
||
|
||
105-106 Left Margin 0-FOh characters = left
|
||
margin
|
||
|
||
107-108 Tab interval
|
||
109 CR display; 0 = soft
|
||
non-zero = hard
|
||
110 Auto-justify on copy/ 0 = no
|
||
move; non-zero = yes
|
||
111-126 Associated application
|
||
name
|
||
127-143 Reserved Application Area
|
||
|
||
|
||
|
||
STRING
|
||
|
||
Record Type Code Body length
|
||
|
||
STRING 51(33h) variable
|
||
|
||
Record Description
|
||
|
||
Value of string formula
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 format (see Appendix A, Cell Format Encoding)
|
||
1-2 column
|
||
3-4 row
|
||
5+ NULL terminated ASCII string
|
||
|
||
|
||
|
||
PASSWORD
|
||
|
||
|
||
Record Type Code Body length
|
||
PASSWORD 55(37h) 4 byte
|
||
|
||
Record Description
|
||
|
||
File lockout (CHKSUM)
|
||
|
||
This is proprietary information.
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
-- not available --
|
||
|
||
|
||
|
||
LOCKED
|
||
|
||
Record Type Code Body length
|
||
|
||
LOCKED 56(38h) 1 byte
|
||
|
||
Record Description
|
||
|
||
Lock Flag
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 0 = OFF
|
||
1 = ON
|
||
|
||
QUERY
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
QUERY 60(Ch) 127 bytes
|
||
|
||
Record Description
|
||
|
||
Query settings
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
-- see Table 5 Query Record Structure --
|
||
|
||
|
||
QUERY
|
||
|
||
Table 5 Query Record Structure
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-15 Name; NULL termination ASCII string
|
||
|
||
16-17 Input range; starting column
|
||
18-19 starting row
|
||
20-21 ending column
|
||
22-23 ending row
|
||
|
||
24-25 Output Range; starting column
|
||
26-27 starting row
|
||
28-29 ending column
|
||
30-31 ending row
|
||
|
||
32-33 Criteria Range; starting column
|
||
34-35 starting row
|
||
36-37 ending column
|
||
38-39 ending row
|
||
|
||
40-41 Form Entry; starting column
|
||
42-43 starting row
|
||
44-45 ending column
|
||
46-47 ending row
|
||
|
||
48-49 Form Def. Range; starting column
|
||
50-51 starting row
|
||
52-53 ending column
|
||
54-55 ending row
|
||
|
||
56-57 Report Output; starting column
|
||
58-59 starting row
|
||
60-61 ending column
|
||
62-63 ending row
|
||
|
||
64-65 Report Header; starting column
|
||
66-67 starting row
|
||
68-69 ending column
|
||
70-71 ending row
|
||
|
||
72-73 Report Footer; starting column
|
||
74-75 starting row
|
||
76-77 ending column
|
||
78-79 ending row
|
||
|
||
80-81 Table Range; starting column
|
||
82-83 starting row
|
||
84-85 ending column
|
||
86-87 ending row
|
||
|
||
88-89 Input Cell; starting column
|
||
90-91 starting row
|
||
92-93 ending column
|
||
94-95 ending row
|
||
|
||
QUERY
|
||
|
||
|
||
Table 5 (continued) Query Record Structure
|
||
|
||
Byte Number Byte Description
|
||
|
||
96-97 1st Key range; starting column
|
||
98-99 starting row
|
||
100-101 ending column
|
||
102-103 ending row
|
||
|
||
104-105 2nd Key range; starting column
|
||
106-107 starting row
|
||
108-109 ending column
|
||
110-111 ending row
|
||
|
||
112-113 3rd Key range; starting column
|
||
114-115 starting row
|
||
116-117 ending column
|
||
118-119 ending row
|
||
|
||
120 Last command; 0 = no command
|
||
1 = find
|
||
2 = extract
|
||
3 = delete
|
||
4 = unique
|
||
|
||
121 1st Key order; 0 = descending order
|
||
FF = ascending order
|
||
|
||
122 2nd Key order; 0 = descending order
|
||
FF = ascending order
|
||
|
||
123 3rd Key order 0 = descending order
|
||
FF = ascending order
|
||
|
||
124 Report number of records; 0 = multiple
|
||
FF = single
|
||
|
||
125 Number of records; 0 = multiple
|
||
FF = single
|
||
|
||
126 Marks; 0 = yes
|
||
FF = no
|
||
|
||
|
||
|
||
QUERYNAME
|
||
|
||
|
||
Record Type Code Body length
|
||
QUERYNAME 61(3Dh) 16 bytes
|
||
|
||
Record Description
|
||
|
||
Current Query Name
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-15 NULL terminated ASCII string
|
||
|
||
PRINT
|
||
|
||
|
||
|
||
Record Type Code Body length
|
||
PRINT 62(3Eh) 679 bytes
|
||
|
||
Record Description
|
||
|
||
Print record
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
-- see Table 6 Print Record Structure --
|
||
|
||
|
||
|
||
PRINT
|
||
|
||
|
||
Table 6 Print Record Structure
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-15 Print setting name; NULL terminated ASCII string
|
||
|
||
16-17 Source range; starting column
|
||
18-19 starting row
|
||
20-21 ending column
|
||
22-23 ending row
|
||
|
||
24-25 Row border; starting column
|
||
26-27 starting row
|
||
28-29 ending column
|
||
30-31 ending row
|
||
|
||
32-33 Column border; starting column
|
||
34-35 starting row
|
||
36-37 ending column
|
||
38-39 ending row
|
||
|
||
40-41 Destination; starting column
|
||
42-43 starting row
|
||
44-45 ending column
|
||
46-47 ending row
|
||
|
||
48 Print format; 0 = as displayed
|
||
non-zero = formulas
|
||
|
||
49 Page breaks 0 = yes
|
||
non-zero = no
|
||
50 Line spacing
|
||
51-52 Left Margin
|
||
53-54 Right Margin
|
||
55-56 Page length
|
||
57-58 Top
|
||
59-60 Bottom of page
|
||
|
||
61-101 Setup string; NULL terminated ASCII string
|
||
102-342 Header; NULL terminated ASCII string
|
||
343-584 Footer; NULL terminated ASCII string
|
||
585-600 Source database name; NULL terminated ASCII string
|
||
|
||
601 Attribute; 0 = no
|
||
non-zero = yes
|
||
|
||
602 Space compression; 0 = no
|
||
non-zero = yes
|
||
|
||
603 Print destination 0 = printer
|
||
1 = file
|
||
2 = range
|
||
|
||
604-605 Starting page
|
||
606-607 Ending page
|
||
608-677 Destination filename; NULL terminated ASCII string
|
||
|
||
678 Wait; 0 = no
|
||
non-zero = yes
|
||
|
||
|
||
|
||
PRINTNAME
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
PRINTNAME 63(3Fh) 16 bytes
|
||
|
||
Record Description
|
||
|
||
Current Print Record Name
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-15 NULL terminated ASCII string
|
||
|
||
|
||
|
||
GRAPH2
|
||
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
GRAPH2 64(40h) 499 bytes
|
||
|
||
|
||
Record Description
|
||
|
||
Graph record
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
-- see Table 7 Symphony Graph Record Structure --
|
||
|
||
|
||
|
||
GRAPH2
|
||
|
||
|
||
Table 7 Symphony Graph Record Structure
|
||
|
||
Byte Number Byte Description
|
||
0-15 Name; NULL terminated ASCII string
|
||
16-17 XRange; starting column
|
||
18-19 starting row
|
||
20-21 ending column
|
||
22-23 ending row
|
||
|
||
24-25 A Range; starting column
|
||
26-27 starting row
|
||
28-29 ending column
|
||
30-31 ending row
|
||
|
||
32-33 B Range; starting column
|
||
34-35 starting row
|
||
36-37 ending column
|
||
38-39 ending row
|
||
|
||
40-41 C Range; starting column
|
||
42-43 starting row
|
||
44-45 ending column
|
||
46-47 ending row
|
||
|
||
48-49 D Range; starting column
|
||
50-51 starting row
|
||
52-53 ending column
|
||
54-55 ending row
|
||
|
||
56-57 E Range; starting column
|
||
58-59 starting row
|
||
60-61 ending column
|
||
62-63 ending row
|
||
|
||
64-65 F Range; starting column
|
||
66-67 starting row
|
||
68-69 ending column
|
||
70-71 ending row
|
||
|
||
72-73 A Labels; starting column
|
||
74-75 starting row
|
||
76-77 ending column
|
||
78-79 ending row
|
||
|
||
80-81 B Labels; starting column
|
||
82-83 starting row
|
||
84-85 ending column
|
||
86-87 ending row
|
||
|
||
88-89 C Labels; starting column
|
||
90-91 starting row
|
||
92-93 ending column
|
||
94-95 ending row
|
||
|
||
|
||
GRAPH2
|
||
|
||
|
||
Table 7 (continued) Symphony Graph Record Structure
|
||
|
||
Byte Number Byte Description
|
||
|
||
96-97 D Labels; starting column
|
||
98-99 starting row
|
||
100-101 ending column
|
||
102-103 ending row
|
||
|
||
104-105 E Labels; starting column
|
||
106-107 starting row
|
||
108-109 ending column
|
||
110-111 ending row
|
||
|
||
112-113 F Labels; starting column
|
||
114-115 starting row
|
||
116-117 ending column
|
||
118-119 ending row
|
||
|
||
120 Graph type; 0 = XY, 1 = bar, 2 = pie,
|
||
4 = line, 5 = stacked
|
||
bar
|
||
|
||
121 Grid; 0 = none, 1 = horizontal,
|
||
2 = vertical, 3 = both
|
||
|
||
122 Color; 0 = black-white,
|
||
FF = color
|
||
|
||
123 A Range line format; 0 = none, 1 = line,
|
||
2 = symbol,
|
||
3 = line-symbol
|
||
|
||
124 B Range line format; 0 = none, 1 = line,
|
||
2 = symbol,
|
||
3 = line-symbol
|
||
|
||
125 C Range line format; 0 = none, 1 = line,
|
||
2 = symbol,
|
||
3 = line-symbol
|
||
|
||
126 D Range line format; 0 = none, 1 = line
|
||
2 = symbol,
|
||
3 = line-symbol
|
||
|
||
127 E Range line format; 0 = none, 1 = line
|
||
2 = symbol,
|
||
3 = line-symbol
|
||
|
||
128 F Range line format; 0 = none, 1 = line
|
||
2 = symbol
|
||
3 = line-symbol
|
||
|
||
129 A Range data label alignment; 0 = center, 1 = right,
|
||
2 = below, 3 = left,
|
||
4 = above
|
||
|
||
130 B Range data label alignment; 0 = center, 1 = right
|
||
2 = below, 3 = left
|
||
4 = above
|
||
|
||
131 C Range data label alignment; 0 = center, 1 = right
|
||
2 = below, 3 = left
|
||
4 = above
|
||
|
||
132 D Range data label alignment; 0 = center, 1 = right
|
||
2 = below, 3 = left
|
||
4 = above
|
||
|
||
133 E Range data label alignment; 0 = center, 1 = right
|
||
2 = below, 3 = left
|
||
4 = above
|
||
|
||
134 F Range data label alignment; 0 = center, 1 = right
|
||
2 = below, 3 = left
|
||
4 = above
|
||
|
||
|
||
|
||
|
||
|
||
|
||
GRAPH2
|
||
|
||
|
||
Table 7 (continued) Symphony Graph Record Structure
|
||
|
||
Byte Number Byte Description
|
||
|
||
135 X Scale 0 = auto
|
||
|
||
136-143 X lower limit in floating point format FF = manual
|
||
|
||
144-151 X upper limit in floating point format
|
||
|
||
152 Y scale; 0 = automatic
|
||
FF = manual
|
||
|
||
153-160 Y lower limit in floating point format
|
||
161-168 Y upper limit in floating point format
|
||
169-208 First title
|
||
209-248 Second title
|
||
249-288 X title
|
||
289-328 Y title
|
||
329-348 A legend
|
||
349-368 B legend
|
||
369-388 C legend
|
||
389-408 D legend
|
||
409-428 E legend
|
||
429-448 F legend
|
||
449 X format
|
||
450 Y format
|
||
451-452 Skip factor
|
||
453 X scale flag; (x1K) 0 = ON
|
||
FF = OFF
|
||
|
||
454 Y scale flag;(x1K) 0 = ON
|
||
FF = OFF
|
||
|
||
455 suppress; 0 = no
|
||
else = yes
|
||
|
||
456-463 Bar origin (float)
|
||
464-471 X linear scale (float)
|
||
472-479 Y linear scale (float)
|
||
480 X log scale
|
||
481 Y log scale
|
||
|
||
482 graph region color; X hue code
|
||
483 A hue code
|
||
484 B hue code
|
||
485 C hue code
|
||
487 D hue code
|
||
488 F hue code
|
||
489-490 Y width
|
||
491-498 Aspect (float)
|
||
|
||
|
||
|
||
|
||
GRAPHNAME
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
GRAPHNAME 65 (41h) 16 bytes
|
||
|
||
Record Description
|
||
|
||
Current Graph Record Name
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-15 NULL terminated ASCII string
|
||
|
||
|
||
ZOOM
|
||
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
ZOOM 66 (42h) 9 bytes
|
||
|
||
Record Description
|
||
|
||
Original coordinates expanded window
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0 iszoom? 0 = no
|
||
1 = yes
|
||
1-2 X coordinates
|
||
3-4 Y coordinates
|
||
5-6 column depth
|
||
7-8 row depth
|
||
|
||
|
||
|
||
|
||
SYMSPLIT
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
SYMSPLIT 67 (43h) 2 bytes
|
||
|
||
Record Description
|
||
|
||
Number of split windows
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 number of split windows
|
||
|
||
|
||
|
||
|
||
NSROWS
|
||
|
||
Record Type Code Body length
|
||
|
||
NSROWS Code Body length
|
||
|
||
NSROWS 68 (44h) 2 bytes
|
||
|
||
Record Description
|
||
|
||
Number of screen rows
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 number of screen rows
|
||
|
||
|
||
|
||
|
||
|
||
NSCOLS
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
NSCOLS 69 (45h) 2 bytes
|
||
|
||
Record Description
|
||
|
||
Number of screen columns
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 Number of screen columns
|
||
|
||
|
||
|
||
RULER
|
||
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
RULER 70 (46h) 25 bytes
|
||
|
||
Record Description
|
||
|
||
Name ruler range
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-15 Name; NULL terminated ASCII string
|
||
16-17 Range; starting column
|
||
18-19 starting row
|
||
20-21 ending column
|
||
22-23 ending row
|
||
24 Range type; 0 = single cell
|
||
1 = range
|
||
|
||
|
||
|
||
NNAME
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
NNAME 71 (47h) 25 bytes
|
||
|
||
Record Description
|
||
|
||
Named sheet range
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-15 Name; NULL terminated ASCII string
|
||
16-17 Range; starting column
|
||
18-19 starting row
|
||
20-21 ending column
|
||
22-23 ending row
|
||
24 Range type; 0 = single cell
|
||
1 = range
|
||
|
||
|
||
|
||
ACCOM
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
ACOMM 72 (48h) 65 bytes
|
||
|
||
Record Description
|
||
|
||
Autoload communications file
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-64 Path name to Autoload file;
|
||
NULL terminated ASCII string
|
||
|
||
|
||
|
||
|
||
AMACRO
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
AMACRO 73 (49h) 8 bytes
|
||
|
||
Record Description
|
||
|
||
Autoexecute macro address
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 starting column
|
||
2-3 starting row
|
||
4-5 ending column
|
||
6-7 ending row
|
||
|
||
|
||
|
||
PARSE
|
||
|
||
|
||
Record Type Code Body length
|
||
|
||
PARSE 74 (4Ah) 16 bytes
|
||
|
||
Record Description
|
||
|
||
Query parse information
|
||
|
||
Used in Symphony only.
|
||
|
||
Byte Number Byte Description
|
||
|
||
0-1 Parse range; starting column
|
||
2-3 starting row
|
||
4-5 ending column
|
||
6-7 ending row
|
||
8-9 Review range; starting column
|
||
10-11 starting row
|
||
12-13 ending column
|
||
14-15 ending row
|
||
WORKSHEET FILE FORMAT
|
||
FROM LOTUS
|
||
|
||
APPENDIX A - CELL FORMAT ENCODING
|
||
|
||
Copyright(c) 1984, Lotus Development Corporation
|
||
161 First Street
|
||
Cambridge, Massachusetts 02142
|
||
(617) 492-7171
|
||
Electronic Edition, December, 1984
|
||
All Rights Reserved
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
APPENDIX A: Cell Format Encoding
|
||
|
||
|
||
The first byte of a content-related record contains a cell format code.
|
||
|
||
Format is determined at the bit level.
|
||
|
||
|
||
Table 8 Cell Format Encoding
|
||
|
||
Bit number Description Code Meaning
|
||
7 protection 1 protected
|
||
0 unprotected
|
||
|
||
4,5,6 format type 0 fixed
|
||
1 scientific
|
||
notation
|
||
2 currency
|
||
3 percent
|
||
4 comma
|
||
5 unused
|
||
6 unused
|
||
7 special
|
||
0,1,2,3 number of decimal 0-15
|
||
places decoded
|
||
(if format type = 0-6)
|
||
|
||
special format type 0 +/-
|
||
(if format type = 7) 1 general
|
||
2 day-month-year
|
||
3 day-month
|
||
4 month-year
|
||
5 text
|
||
(Symphony only) 6 hidden
|
||
(Symphony only) 7 date;hour-min-sec
|
||
(Symphony only) 8 date;hour-min
|
||
(Symphony only) 9 date;intnt'l1
|
||
(Symphony only) 10 date;intnt'l1
|
||
(Symphony only) 11 time;intnt'l1
|
||
(Symphony only) 12 time;intnt'l2
|
||
13-14 unused
|
||
15 default
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
EXAMPLE
|
||
|
||
Currency format, two decimal places, unprotected cell
|
||
|
||
|
||
Bit Number 7 6 5 4 3 2 1 0
|
||
Binary Code 0 0 1 0 0 0 1 0
|
||
---------
|
||
Format Type ---------------
|
||
Protection Number of Decimal Places
|
||
or Special Format
|
||
|
||
The byte number is 0.
|
||
The hex code is 22.
|
||
|
||
|
||
Example
|
||
|
||
Special format, month-year, protected cell
|
||
|
||
|
||
Bit Number 7 6 5 4 3 2 1 0
|
||
Binary Code 1 1 1 1 0 1 0 0
|
||
---------
|
||
Format Type -------------
|
||
Protection Number of Decimal Places
|
||
or Special Format
|
||
|
||
|
||
The byte number is 0.
|
||
The hex code is F4.
|
||
|