Function 221 (0xDD) = Style Group The Style Group subfunctions have page orientation. #### #### 0xDD00 Style Begin On
    <221 (0xDD)> <0 (0x00)> [size = variable] <flags = PRFXID+2

    (encased/paired function)>

      <number of PIDs = 1>

      [style PID (type=0x30)]

    [size of non-deletable information = 3]

    [hash of this Begin On]

    <system style number (-1 if normal)>

    <undocumented deletable data> x ?

    [size] <0xDD>
#### #### 0xDD01 Style Begin Off
    <221 (0xDD)> <1 (0x01)> [size = variable] <flags = 3 (encased

    function)>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xDD>
#### #### 0xDD02 Style End On
    <221 (0xDD)> <2 (0x02)> [size = variable] <flags = PRFXID+ 2

    (encased/Paired Function>

      <number of PIDs = 1>

      [style PID (type=0x30)]

    [size of non-deletable information = 3]

    [hash of this End On]

    <system style number (-1 is normal)>

    <undocumented deletable data> x ?

    [size] <0xDD>
#### #### 0xDD03 Style End Off
    <221 (0xDD)> <3 (0x03)> [size = variable] <flags = 3 (encased

    function)>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xDD>
#### #### 0xDD04 Paragraph Style Begin On (Part 1)
    <221 (0xDD)> <4 (0x04)> [size = variable] <flags = PRFXID+2

    (encased/paired function)>

      <number of PIDs = 1>

      [paragraph style PID (type=0x30)]

    [size of non-deletable information = 3]

    [hash of this paragraph style Begin On]

    <system style number (-1 if normal)>

    <undocumented deletable data> x ?

    [size] <0xDD>
#### #### 0xDD05 Paragraph Style Begin Off (Part 1)
    <221 (0xDD)> <5 (0x05)> [size = variable] <flags = 3 (encased

    function)>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xDD>
#### #### 0xDD06 Paragraph Style Begin On (Part 2)
    <221 (0xDD)> <6 (0x06)> [size = 12] <flags = PRFXID+2 (encased/paired

    function)>

      <number of PIDs = 1>

      [paragraph style PID (type=0x30)]

    [size of non-deletable information = 2]

    [hash of this paragraph style End On]

    <undocumented deletable data> x ?

    [size] <0xDD>
#### #### 0xDD07 Paragraph Style Begin Off (Part 2)
    <221 (0xDD)> <7 (0x07)> [size = variable] <flags = 3 (encased

    function)>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xDD>
#### #### 0xDD08 Paragraph Style End On
    <221 (0xDD)> <8 (0x08)> [size = variable] <flags = 3 (encased

    function)>

    [size of non-deletable information = 4]

    [paragraph style PID (type=0x30)]

    [hash of this paragraph style End On]

    <undocumented deletable data> x ?

    [size] <0xDD>
#### #### 0xDD09 Paragraph Style End Off
    <221 (0xDD)> <9 (0x09)> [size = variable] <flags = 3 (encased

    function)>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xDD>
#### #### 0xDD0A Global On
    <221 (0xDD)> <10 (0x0A)> [size = variable] <flags = PRFXID+3 (encased

    function)>

      <number of PIDs = 1>

      [style PID (type=0x30)]

    [size of non-deletable information = 3]

    [hash of this Global On]

    <system style number)>

      1 = normal

      16 = footnote number

      17 = endnote number

      18 = figure box number

      19 = table box number

      20 = text box number

      21 = user box number

      22 = equation box number

      23 = hypertext

      24 = table of contents level 1

      25 = table of contents level 2

      26 = table of contents level 3

      27 = table of contents level 4

      28 = table of contents level 5

      29 = index level 1

      30 = index level 2

      31 = list

      32 = table of authorities

      33 = document

      34 = box text

      35 = caption

      36 = footnote

      37 = endnote

      38 = comment

      39 = header a

      40 = header b

      41 = footer a

      42 = footer b

      43 = watermark a

      44 = watermark b

      45 = paragraph

      46 = outline

      47 = legal

      48 = bullets

      49 = headings

      50 = legal 2

      51 = numbers

      52 = level 1 style (indented)

      53 = level 2 style (indented)

      54 = level 3 style (indented)

      55 = level 4 style (indented)

      56 = level 5 style (indented)

      57 = level 6 style (indented)

      58 = level 7 style (indented)

      59 = level 8 style (indented)

      60 = level 1 style (not indented)

      61 = level 2 style (not indented)

      62 = level 3 style (not indented)

      63 = level 4 style (not indented)

      64 = level 5 style (not indented)

      65 = level 6 style (not indented)

      66 = level 7 style (not indented)

      67 = level 8 style (not indented)

      68 = heading level 1 style

      69 = heading level 2 style

      70 = heading level 3 style

      71 = heading level 4 style

      72 = heading level 5 style

      73 = heading level 6 style

      74 = heading level 7 style

      75 = heading level 8 style

    <undocumented deletable data> x ?

    [size] <0xDD>
#### #### 0xDD0B Global Off
    <221 (0xDD)> <11 (0x0B)> [size = variable] <flags = 3 (encased

    function)>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xDD>
Function 222 (0xDE) = Merge Group The Merge Group subfunctions have character orientation. Non-Paired Merge Subfunctions: 0 (0x00) - 31 (0x1F)
Subfunction | Description
0 (0x00) | Beep
1 (0x01) | Break
2 (0x02) | Cancel Off
3 (0x03) | Cancel On
4 (0x04) | Continue
5 (0x05) | Date
6 (0x06) | Default
7 (0x07) | Display Stop
8 (0x08) | Else
9 (0x09) | End Case
10 (0x0A) | End Field
11 (0x0B) | End FOR
12 (0x0C) | End IF
13 (0x0D) | End Record
14 (0x0E) | End WHILE
15 (0x0F) | Next
16 (0x10) | Next Record
17 (0x11) | Page Off
18 (0x12) | Page On
19 (0x13) | Print
20 (0x14) | Quit
21 (0x15) | Process On
22 (0x16) | Return
23 (0x17) | Return Cancel
24 (0x18) | Return Error
25 (0x19) | Rewrite
26 (0x1A) | Step Off
27 (0x1B) | Step On
28 (0x1C) | Stop
29 (0x1D) | Process Off
30 (0x1E) | FEP Off (for Asia)
31 (0x1F) | FEP On (for Asia)
32 (0x20) | Row Repeat (Asia)
    <222 (0xDE)> <subfunction> [size = variable] <flags = 0>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xDE>
Paired Merge Subfunctions: 48 (0x30) - 148 (0x94) The subfunctions in this list are paired so that the even-numbered codes are the On functions and the odd numbered codes are the Off functions. Each instance of a subfunction will consist of the On subfunction, a string of information, and the Off subfunction. The detailed structure is shown following the table of subfunctions below. The string information required by each merge code is documented in parentheses next to the On function code. Square brackets are used to indicate optional string data. The parentheses and square brackets are not included in the actual string data.
Subfunction | Description
48 (0x30) | ASSIGN On (var;expr)
49 (0x31) | ASSIGN Off
50 (0x32) | CALL On (label)
51 (0x33) | CALL Off
52 (0x34) | CAPS On (expr)
53 (0x35) | CAPS Off
54 (0x36) | CASE On (exp;case1;label;...;ELSE;label)
55 (0x37) | CASE Off
56 (0x38) | CASEOF On (expr[;...;expr])
57 (0x39) | CASEOF Off
58 (0x3A) | CHAINMACRO On (macroname)
59 (0x3B) | CHAINMACRO Off
60 (0x3C) | CHAINDATA On (filename)
61 (0x3D) | CHAINDATA Off
62 (0x3E) | CHAINFORM On (filename)
63 (0x3F) | CHAINFORM Off
64 (0x40) | CHAR On (var;[;prompt][;title])
65 (0x41) | CHAR Off
66 (0x42) | CODES On (merge codes)
67 (0x43) | CODES Off
68 (0x44) | COMMENT On (comment)
69 (0x45) | COMMENT Off
70 (0x46) | CTON On (character)
71 (0x47) | CTON Off
72 (0x48) | DOCUMENT On (filename)
73 (0x49) | DOCUMENT Off
74 (0x4A) | EMBEDMACRO On (macro commands)
75 (0x4B) | EMBEDMACRO Off
76 (0x4C) | FIELD On (field)
77 (0x4D) | FIELD Off
78 (0x4E) | FIELDNAMES On (name1;...;nameN)
79 (0x4F) | FIELDNAMES Off
80 (0x50) | FIRSTCAP On (string)
81 (0x51) | FIRSTCAP Off
82 (0x52) | FOR On (var;start;stop;step)
83 (0x53) | FOR Off
84 (0x54) | FOREACH On (var;expr;expr;...)
85 (0x55) | FOREACH Off
86 (0x56) | GETSTRING On (variable[;prompt][;title])
87 (0x57) | GETSTRING Off
88 (0x58) | GO On (label)
89 (0x59) | GO Off
90 (0x5A) | IF On (expr)
91 (0x5B) | IF Off
92 (0x5C) | IFBLANK On (field)
93 (0x5D) | IFBLANK Off
94 (0x5E) | IFEXISTS On (var)
95 (0x5F) | IFEXISTS Off
96 (0x60) | IFNOTBLANK On (field)
97 (0x61) | IFNOTBLANK Off
98 (0x62) | INSERT On (WP text)
99 (0x63) | INSERT Off
100 (0x64) | KEYBOARD On ([prompt])
101 (0x65) | KEYBOARD Off
102 (0x66) | LABEL On (label)
103 (0x67) | LABEL Off
104 (0x68) | LOCAL On (var)
105 (0x69) | LOCAL Off
106 (0x6A) | LOOK On (var)
107 (0x6B) | LOOK Off
108 (0x6C) | MRGCMND On (merge codes)
109 (0x6D) | MRGCMND Off
110 (0x6E) | NESTDATA On (filename)
111 (0x6F) | NESTDATA Off
112 (0x70) | NESTFORM On (filename)
113 (0x71) | NESTFORM Off
114 (0x72) | NESTMACRO On (macroname)
115 (0x73) | NESTMACRO Off
116 (0x74) | NTOC On (number)
117 (0x75) | NTOC Off
118 (0x76) | ONCANCEL On (action)
119 (0x77) | ONCANCEL Off
120 (0x78) | ONERROR On (action)
121 (0x79) | ONERROR Off
122 (0x7A) | PROMPT On (message)
123 (0x7B) | PROMPT Off
124 (0x7C) | STATUSPROMPT On (message)
125 (0x7D) | STATUSPROMPT Off
126 (0x7E) | STRLEN On (expr)
127 (0x7F) | STRLEN Off
128 (0x80) | STRPOS On (expr;subexpr)
129 (0x81) | STRPOS Off
130 (0x82) | SUBSTDATA On (filename)
131 (0x83) | SUBSTDATA Off
132 (0x84) | SUBSTFORM On (filename)
133 (0x85) | SUBSTFORM Off
134 (0x86) | SUBSTR On (expr;start;length)
135 (0x87) | SUBSTR Off
136 (0x88) | SYSTEM On (sysvar)
137 (0x89) | SYSTEM Off
138 (0x8A) | TOLOWER On (expr)
139 (0x8B) | TOLOWER Off
140 (0x8C) | TOUPPER On (string)
141 (0x8D) | TOUPPER Off
142 (0x8E) | VARIABLE On (var)
143 (0x8F) | VARIABLE Off
144 (0x90) | WAIT On (10ths second)
145 (0x91) | WAIT Off
146 (0x92) | WHILE On (expr)
147 (0x93) | WHILE Off
148 (0x94) | POSTNET On (string)
149 (0x95) | POSTNET Off
    <222 (0xDE)> <on subfunction> [size = variable] <flags = 1

    (simple

    paired function)>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xDE>

    <associated string information> x ?

    <222 (0xDE)> <off subfunction> [size = 10] <flags = 1 (simple paired

    function)>

    [size of non-deletable information = 0]

    [size] <0xDE>
Function 223 (0xDF) = Box Group The Box Group subfunctions have character orientation. #### #### 0xDF00 Character-Anchored Box:0 (0x00) See structure under Page-Anchored Box below. #### #### 0xDF01 Paragraph-Anchored Box1 (0x01) See structure under Page-Anchored Box below. #### #### 0xDF02 Page-Anchored Box2 (0x02)
    <223 (0xDF)> <subfunction #> [size = variable] <flags = PRFXID>

      <number of PIDs (minimum 1)>

      [box template PID (type=0x41)] required

      [box counter PID (type=0x11)] if indicated by override flags

      [box PIDs] (none currently defined)

      [box contents PIDs (type=0x40)] if indicated by override flags

      [box caption PIDs (type=0x08)] if indicated by override flags

      [box border PIDs (type=0x42)] as many as needed as indicated by

    override flags

      [box fill PIDs (type=0x43)] if indicated by override flags

      [box hypertext PIDs (type=0x07 or 0x17)] if indicated by override

    flags type 0x07 for Hypertext macro filename, type 0x17 for Hypertext

    bookmark

    [size of non-deletable information]

    <reserved for future use> x 14

    [total size of override and wrap rectangle data for box] not including

    this word

    [total size of override data] not including this word

    [box override flags]

    See definition under Specific Format of Box Override Flags and Data

    below.

    [number of platform-independent wrap rectangles]

      Four wrap rectangle data words per rectangle:

      [unsigned offset of left side of rectangle from left side of

    formatted render box]

      [unsigned offset of right side of rectangle from left side of

    formatted render box]

      [unsigned offset of top side of rectangle from top side of formatted

    render box]

      [unsigned offset of bottom side of rectangle from top side of

    formatted render box]

    <undocumented deletable data> x ?

    [size] <0xDF>
Units for the above wrap rectangle values are in 65536ths of the appropriate dimension (width or height) of the formatted box in which content is to be rendered. The left offset value and the right offset value are measured in 65536ths of the width of the formatted box. The top offset value and bottom offset value are measured in 65536ths of the height of the formatted box. Note that the right value must be greater than or equal to the left value and the bottom value must be greater than or equal to the top value. Allowable values are from 0 to 65535. For convenience, 65535 is considered 65536. General Format of Box Override Flags and Data: The box may have associated override flags in the box function. The override flags are a 16-bit entity (word) and each bit corresponds to data in the box definition. For each bit in the box override flags, there is corresponding data. The size of the data depends on what the override bit represents. The order of the data depends on the order of the override bits, with one exception, noted below. For example, if both bits 15 and 14 in the override flag are set, the data corresponding to bit 15 appear earlier in the override data area than the data corresponding to bit 14. The exception is for border or fill template overrides. Because the data are prefix IDs, the data appear in the prefix ID area at the beginning of the function. The order of the prefix IDs corresponds to the bit order of the override flags. If an override bit is set in the box override flags, a mask appears defining which bits within the corresponding data are overridden followed by the actual override data. For example, assume a data byte has two fields, the first field covering bits 0-3 and the second field covering bits 4-7. Assume the first field (bits 0-3) is to be overridden but the second field (bits 4-7) is not. The corresponding override bit will be set in the box override flags word. The data corresponding to this override bit will be a mask byte (value 0x0F) and a data byte, of which only the bottom 4 bits matter. All currently undefined data must be set to 0 when creating a new box template or box function. For any flag data, only those bits currently defined should be modified. All others should be preserved. Write code to preserve fixed- and variable-length data that may be added later. This means using the total length and length-of-fixed portion words. Names of templates cannot be longer than 80 characters (160 bytes), not including length word. Specific Format of Box Override Flags and Data:
    bit 15: Box counter data.

    If the box counter override bit is set in the box's override flags,

    the following data appear:

      [total size of box counter override data (not including this word)]

      [box counter override flags]

      The following data appear according to bits set in the box counter

    override flags:

        bit 15: Box counter prefix ID flags. Corresponding data:

          <mask>

          <data>

        bits 14-0: currently undefined

    bit 14: Box positioning data.

    If the box position override bit is set in the box override flags, the

    following data appear:

      [total size of box position override data (not including this word)]

      [box position override flags]

      The following data appear according to bits set in the box position

    override flags:

        bit 15: Box positioning prefix ID flags.  Corresponding data:

          <mask>

          <data>

        bit 14: Box general positioning flags. Corresponding data:

          <mask>

          <data>

        bit 13: Box horizontal positioning data override. Corresponding

    data:

          <box horizontal positioning flags>

          [horizontal offset]

          <left column>

          <right column>

        bit 12: Box vertical positioning data override. Corresponding

    data:

          <box vertical positioning flags>

          [vertical offset]

        bit 11: Box width data override.  Corresponding data:

          <box width flags>

          [box width value]

        bit 10: Box height data override.  Corresponding data:

          <box height flags>

          [box height value]

        bits 9-0: currently undefined

    bit 13: box content data

    If the content override bit is set for the box's override flags, the

    following data appear:

      [total size of content override data (not including this word)]

      [content override flags]

      The following data appear according to bits set in the content

    override flags

        bit 15: Box content prefix ID flags override. Corresponding data:

          <mask>

          <data>

        bit 14: Content type override.  Corresponding data:

          <content type>

        bit 13: Content rendering information. Corresponding data:

        If the content type of the box is image:

          [total size of image content override data (not including this

    word)]

          [image content override flags]

            bit 15: Prefix ID flag override. Corresponding data:

              <mask>

              <data>

              If this override bit is set, and bit 0 of the mask byte is

    set such that the prefix ID flags is overridden, the image native size

    override bit 14 must also be set.

        bit 14: Image native size override. Corresponding data:

          [image native width (WPUs)]

          [image native height (WPUs)]

          This override bit must be set if bit 0 in the image content

    prefix ID flags is overridden.  See previous bit, bit 15.

        bit 13: Image content render flags override.  Corresponding data:

          <mask>

          <data>

        bit 12: Scaling factor override. Corresponding data:

          {fixed point x scaling factor}

          {fixed point y scaling factor}

        bit 11: Translation factor override. Corresponding data:

          {x translation factor}

          {y translation factor}

        bit 10: Rotation angle override. Corresponding data:

          {data}

        bit 9: Black and white threshold override.  Corresponding data:

          <data>

        bit 8: Lightness value override. Corresponding data:

          {data}

        bit 7: Contrast value override. Corresponding data:

          {data}

        bit 6: Halftone data override. Corresponding data:

          {halftone screen LPI}

          {plane 0 halftone screen angle}

          {plane 1 halftone screen angle}

          {plane 2 halftone screen angle}

          {plane 3 halftone screen angle}

        bit 5: Image dither flags override. Corresponding data:

          <mask>

          <data>

        bits 4-0: currently undefined

      If the content type of the box is text:

        [total size of text content override data] not including this word

        [text content override flags]

          bit 15: Prefix ID flag override. Corresponding data:

            <mask>

            <data>

          bit 14: Text content rendering flag override.  Corresponding

    data:

            <mask>

            <data>

          bits 13-0: currently undefined

      If the content type of the box is equation:

        [total size of equation content override data] not including this

    word

        [equation content override flags]

          bit 15: Prefix ID flag override. Corresponding data:

            <mask>

            <data>

          bit 14: Equation content rendering flag override. Corresponding

    data:

            <mask>

            <data>

          bit 13: Equation font size override. Corresponding data:

            [equation base font size]

          bit 12: Equation color override. Corresponding data:

            <equation color (RGBS)> x 4

          bit 11: Equation rotation override. Corresponding data:

            {fixed point rotation angle} (0.0-360.0)

          bits 10-0: currently undefined.

      If the content type is Presentation, Video, Macro, Sound, or

    External:

        Currently undefined

      bit 12: Content alignment information. Corresponding data:

        <mask>

        <data>

      bits 11-0: currently undefined

    bit 12: box caption data

    If the box caption override bit is set in the box's override flags,

    the following data appear:

      [total size of caption override data (not including this word)]

      [caption override flags]

      The following data appear according to bits set in the border

    template override flags

        bit 15: Box caption prefix ID flags override. Corresponding data:

          <mask>

          <data>

        bit 14: Caption positioning override. Corresponding data:

          <caption positioning flags data>

          [caption alignment offset word]

        bit 13: Caption formatting override. Corresponding data:

          <caption formatting flags data>

          [caption formatting word ]

        bits 12-0: currently undefined

    bit 11: box border data:

    If the box border override bit is set in the box's override flags, the

    following data appear:

      [total size of box border override data (not including this word)]

      [box border override flags ]

      The following data appear according to bits set in the border

    template override flags:

        bit 15: Box border prefix ID flags override. Corresponding data:

          <mask>

          <data>

        bit 14: Border template override data. Corresponding data:

        If the border template override bit is set in the box's override

    flags, the following data appear:

          [total size of border template override data (not including this

    word)]

          [border template override flags]

          The following data appear according to bits set in the border

    template override flags:

            bit 15: Border template prefix ID flags data.  Corresponding

    data:

              <mask>

              <data>

            bit 14: Border general flags data. Corresponding data:

              <mask>

              <data>

            bit 13: Corner radius data.  Corresponding data:

              [corner radius]

            bit 12: Inside spacing data. Corresponding data:

              [left inside spacing]

              [right inside spacing]

              [top inside spacing]

              [bottom inside spacing]

            bit 11: Outside spacing data. Corresponding data:

              [left outside spacing]

              [right outside spacing]

              [top outside spacing]

              [bottom outside spacing]

           bit 10: Drop shadow data.  Corresponding data:

              <drop shadow flag>

              [drop shadow spacing]

              <drop shadow color (RGBS)> x 4

           bit 9: Border color data.  Corresponding data:

              <border color (RGBS)> x 4

           bits 8-0: currently undefined

        bits 13-0: currently undefined

    bit 10: box fill data:

    If the box fill override bit is set in the box's override flags, the

    following data appear:

      [total size of fill template override data (not including this

    word)]

      [border fill override flags]

      The following data appear according to bits set in the fill template

    override flags

        bit 15: Box fill prefix ID flags override. Corresponding data:

          <mask>

          <data>

        bit 14: Fill template data override. Corresponding data:

        If the fill template override bit is set in the box fill override

    flags, the following data appear:

          [total size of fill template override data (not including this

    word)]

          [fill template override flags]

          The following data appear according to bits set in the fill

    template override flags

            bit 15: Fill colors override. Corresponding data:

              <foreground/start color (RGBS)> x 4

              <background/end color (RGBS)> x 4

            bits 14-0: currently undefined

        bits 13-0: currently undefined

    bit 9: box wrapping data

    If the box wrapping override bit is set in the box override flags, the

    following data appear:

      [total size of box wrapping override data (not including this word)]

      [box wrapping override flags]

      The following data appear according to bits set in the box wrapping

    override flags:

        bit 15: Box wrapping prefix ID override. Corresponding data:

          <mask>

          <data>

        bit 14: Wrapping flags.  Corresponding data:

          <mask>

          <data>

        bits 13-0: currently undefined

    bit 8: box hypertext wrapping data

    If the box hypertext wrapping override bit is set in the box override

    flags, the following data appear:

      [total size of box hypertext override data (not including this

    word)]

      [box hypertext override flags]

      The following data appear according to bits set in the box hypertext

    override flags:

        bit 15: Box hypertext prefix ID override. Corresponding data:

          <mask>

          <data>

        bit 14: Box hypertext type flags override. Corresponding data:

          <data>

        bits 13-0: currently undefined

    bits 7-0: currently undefined
#### #### 0xDF03 Graphics Rule
    <223 (0xDF)> <3 (0x03)> [size = variable] <flags = PRFXID>

      <number of PIDs (minimum 2)>

      [border line template PID (type = 0x42)]

      [document function rule count PID (type = 0x45)]

    The rule function count prefix packet exists merely to keep a count of

    rule functions in the document.  Its content should be a single 16-bit

    short value of zero (0).  When a rule function is created, the prefix

    packet will be created or its use count incremented.  The prefix

    packet ID will be placed in the function at insertion so that the

    prefix packet use count will be decremented if the function is

    deleted.  The use count must correspond exactly to the number of rule

    functions in the document.

    [size of non-deletable data]

    <reserved for future use> x 14

    Rule positioning data:

    [size of rule positioning area] not including this word

    <rule general position flags>

      bits 2-7: undefined

      bit 1: rule thickness flag

        0 = rule thickness determined by border line style thickness

        1 = rule thickness set by user, border line style scaled for

    display

      bit 0: horizontal vertical flag

        0 = horizontal rule

        1 = vertical rule

    <rule horizontal positioning flags>

      bits 5-7: undefined

      bits 2-4: alignment (if margin-relative)

        0 = left

        1 = right

        2 = centered

        3 = full

      bit 0: alignment type

        0 = absolute (relative to left of page)

        1 = margin-relative

        2 = between columns (vertical rule only)

    [absolute horizontal position (unsigned WPUs)]

    <left column> for rules between columns

    <rule vertical positioning flags>

      bits 5-7: undefined

      bits 2-4: alignment (if margin relative)

        0 = top

        1 = bottom

        2 = centered

        3 = full

      bit 0-1: alignment type

        0 = absolute (relative to top of page)

        1 = margin-relative (vertical rule only)

        2 = baseline (horizontal rule only)

    [absolute vertical position (unsigned WPUs)]

    [rule thickness (unsigned WPUs)]

    [rule length (unsigned WPUs)]

    If horizontal rule:

      [rule top outside spacing (unsigned WPUs)]

      [rule bottom outside spacing (unsigned WPUs)]

    If left or right aligned vertical rule:

      [rule kick-out spacing (unsigned WPUs)] The kick-out spacing is the

    distance between the margin and the side of the rule closest to the

    margin (right side for left-aligned rules and left side for

    right-aligned rules). Note that left and right aligned vertical rules

    are outside the margins.  For 5.1 compatibility, the default kick-out

    spacing is 1/8.

    Rule line definition data:

    [size of line definition area] not including this word

    <rule line definition flags>

      bit 1-7: undefined

      bit 0: color use flag

        0 = use color from line template segment definitions

        1 = use color from rule template for all segments

    <rule color (RGBS)> x 4

    <undocumented deletable data> x ?

    [size] <0xDF>
General Rules All currently undefined data should be set to 0 when a new document rule function is created. For any flag data, only those bits currently defined should be modified. All others should be preserved. Function 224 (0xE0) = Tab Group The Tab Group subfunctions have character orientation. #### #### 0xE000 Tab
    <224 (0xE0)> <tab definition shown below> [size = variable] <flags =

    0>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xE0>

    <tab definition>

      bit 0: 1 = soft type (tab, align, center, and so forth), (uses the

    tab set definition type)

      bit 1: 1 = dot leader

      bit 2: 1 = generic search (only used in search code, ignore bits 0

    and 1 when comparing)

      bits 3-7: tab type

        00000 = back tab

        00001 = table tab

        00010 = left tab

        00100 = bar tab

        00110 = left indent

        00111 = left/right indent

        01000 = center on margins

        01001 = center on current position

        01010 = center tab

        10000 = flush right

        10010 = right tab

        11010 = decimal tab

      bits 6-7 are the alignment bits:

        00 = no alignment

        01 = center

        10 = right alignment

        11 = decimal alignment

      bits 4-5 are not 00 if the tab type uses the tab table to get the

    next tab position.

      bit 3 is used to make each type unique.
Function 225 (0xE1) = Platform Group The Platform Group subfunctions have character orientation. These subfunctions do not currently contain deletable data, however, deletable data and prefix IDs may be added to any function or subfunction at any time. #### #### 0xE100 Dynamic Data Exchange Start
    <225 (0xE1)> <0 (0x00)> [size = 17] <flags = PRFXID+3 (encased

    function)>

      <number of PIDs = 1>

      [DDE PID (type = 0x73 or 0x74)]

    [size of non-deletable information = 4]

    <reserved> x 4

    [size] <0xE1>
#### #### 0xE101 Dynamic Data Exchange End
    <225 (0xE1)> <1 (0x01)> [size = 17] <flags = PRFXID+3 (encased

    function)>

      <number of PIDs = 1>

      [DDE PID (type = 0x73 or 0x74)]

    [size of non-deletable information = 4]

    <reserved> x 4

    [size] <0xE1>
#### #### 0xE102 Publish Data Start
    <225 (0xE1)> <2 (0x02)> [size = variable] <flags = 3 (encased

    function)>

    [size of non-deletable information]

    <non-deletable data> x ?

    [size] <0xE1>
#### #### 0xE103 Publish Data End
    <225 (0xE1)> <3 (0x03)> [size = variable] <flags = 3 (encased

    function)>

    [size of non-deletable information]

    <non-deletable data> x ?

    [size] <0xE1>
#### #### 0xE104 Subscribe Data Start
    <225 (0xE1)> <4 (0x04)> [size = variable] <flags = 3 (encased

    function)>

    [size of non-deletable information]

    <non-deletable data> x ?

    [size] <0xE1>
#### #### 0xE105 Subscribe Data End
    <225 (0xE1)> <5 (0x05)> [size = variable] <flags = 3 (encased

    function)>

    [size of non-deletable information]

    <non-deletable data> x ?

    [size] <0xE1>
#### #### 0xE106 Subtitle Mark
    <225 (0xE1)> <6 (0x06)> [size = 10] <flags = 0>

    [size of non-deletable information = 0]

    [size] <0xE1>
#### #### 0xE107 Subtitle Text
    <225 (0xE1)> <7 (0x07)> [size = variable] <flags = 0>

    [size of non-deletable information]

    [number of lines of base text involved (always 1 for now)]

    [width of text including white space (WPU)]

    [starting horizontal cursor position of base text]

    [ending horizontal cursor position of base text]

    [max top shoulder of base text]

    [max bottom shoulder of base text]

    [max top shoulder of subtitle text]

    [max bottom shoulder of subtitle text]

    <number of bytes of subtitle text>

    <subtitle text (word string)> x ?

    ...repeat for each line

    [size] <0xE1>
#### #### 0xE108 Subtitle Option
    <225 (0xE1)> <8 (0x08)> [size = 14] <flags = 0>

    [size of non-deletable information = 4]

    <justification>

      0 = left justified

      1 = full justified

      2 = center justified

      3 = indented full justified

      4 = all (kinto waritsuke) justified

      5 = indented all justified

    <flag>

      bit 0:

        0 = position subtitle text above line

        1 = position subtitle text below line

      bit 1:

        0 = do not print graphically

        1 = print graphically

      bit 2:

        0 = use width of base text

        1 = use max width of base text or subtitle text

      bit 3:

        0 = wrap base text as unit

        1 = base text and subtitle text can wrap

    [leading adjustment (signed WPU)]

    [size] <0xE1>
#### #### 0xE109 Subtitle Text Options
    <225 (0xE1)> <9 (0x09)> [size = variable] <flags = PRFXID>

      <number of PIDs = 1>

      [desired subtitle font PID (type=0x55)]

    [size of non-deletable information = 16]

    [ point size (WPU)]

    [hash of matched typeface descriptor]

    [matched font index in font list]

    [matched point size of font (WPU)]

    [attribute word 1]

      bit 0: 1 = extra large

      bit 1: 1 = very large

      bit 2: 1 = large

      bit 3: 1 = small print

      bit 4: 1 = fine print

      bit 5: 1 = superscript

      bit 6: 1 = subscript

      bit 7: 1 = outline

      bit 8: 1 = italics

      bit 9: 1 = shadow

      bit 10: 1 = redline

      bit 11: 1 = double underline

      bit 12: 1 = bold

      bit 13: 1 = strikeout

      bit 14: 1 = underline

      bit 15: 1 = small caps

    [attribute word 2]

      bit 0: 1 = blink

      bit 1: 1 = reverse video

    <color (RGBS)> x 4

    [size] <0xE1>
#### #### 0xE10A Suppress Subtitle
    <225 (0xE1)> <10 (0x0A)> [size = 11] <flags = 0>

    [size of non-deletable information = 1]

    <suppress code>

      0 = no suppression

      1 = suppress subtitles

    [size] <0xE1>
#### #### 0xE10B Third Party
    <225 (0xE1)> <11 (0x0B)> [size = variable] <flags = unknown>

    [size of non-deletable information]

    [company ID] Companies must call and register an ID with Corel

    Corporation Limited.

    <company defined information> x ?

    [size] <0xE1>
#### #### 0xE10C Pen Foreground Color (32-bit), Text
    <225 (0xE1)> <12 (0x0C)> [size = 14] <flags = 0>

    [size of non-deletable information = 4]

    <pen foreground color (RGBT)> x 4

    [size] <0xE1>
#### #### 0xE10D Pen Foreground Color (64-bit), Text
    <225 (0xE1)> <13 (0x0D)> [size = 18] <flags = 0>

    [size of non-deletable information = 8]

    <pen foreground color (RGBT)> x 8

    [size] <0xE1>
#### #### 0xE10E Pen Background Color (32-bit), Text
    <225 (0xE1)> <14 (0x0E)> [size = 14] <flags = 0>

    [size of non-deletable information = 4]

    <pen foreground color (RGBT)> x 4

    [size] <0xE1>
#### #### 0xE10F Pen Background Color (64-bit), Text
    <225 (0xE1)> <15 (0x0F)> [size = 18] <flags = 0>

    [size of non-deletable information = 8]

    <pen foreground color (RGBT)> x 8

    [size] <0xE1>
#### #### 0xE110 Pen Style, Text
    <225 (0xE1)> <16 (0x10)> [size = 12] <flags = 0>

    [size of non-deletable information = 2]

    [pen style index (unsigned)]

    [size] <0xE1>
#### #### 0xE111 Pen Pattern, Text
    <225 (0xE1)> <17 (0x11)> [size = 12] <flags = 0>

    [size of non-deletable information = 2]

    [pen pattern index (unsigned)]

    [size] <0xE1>
#### #### 0xE112 Pen Size (16-bit), Text
    <225 (0xE1)> <18 (0x12)> [size = 14] <flags = 0>

    [size of non-deletable information = 4]

    [pen width (0 = hairline)  (unsigned WPU)]

    [pen height (0 = hairline) (unsigned WPU)]

    [size] <0xE1>
#### #### 0xE113 Pen Size (32-bit), Text
    <225 (0xE1)> <19 (0x13)> [size = 18] <flags = 0>

    [size of non-deletable information = 8]

    {pen width (0 = hairline)  (unsigned WPU) 16.16}

    {pen height (0 = hairline) (unsigned WPU) 16.16}

    [size] <0xE1>
#### #### 0xE114 Brush Gradient (32-bit), Text
    <225 (0xE1)> <20 (0x14)> [size = variable] <flags = 0>

    [size of non-deletable information]

    {brush gradient angle}

    [horizontal gradient reference]

    [vertical gradient reference]

    <brush gradient flag>

      bit 7: anchor flag

      bit 6: granularity flag

    if anchor flag bit is set then:

      [horizontal gradient extent minimum (signed WPU)]

      [vertical gradient extent minimum (signed WPU)]

      [horizontal gradient extent maximum (signed WPU)]

      [vertical gradient extent maximum (signed WPU)]

    [size] <0xE1>
#### #### 0xE115 Brush Gradient (64-bit), Text
    <225 (0xE1)> <21 (0x15)> [size = variable] <flags = 0>

    [size of non-deletable information]

    {brush gradient angle}

    [horizontal gradient reference]

    [vertical gradient reference]

    <brush gradient flag>

      bit 7: anchor flag

      bit 6: granularity flag

    if anchor flag is set then:

      {horizontal gradient extent minimum (signed WPU) 16.16}

      {vertical gradient extent minimum (signed WPU) 16.16}

      {horizontal gradient extent maximum (signed WPU) 16.16}

      {vertical gradient extent maximum (signed WPU) 16.16}

    [size] <0xE1>
#### #### 0xE116 Brush Foreground Color (32-bit), Text
    <225 (0xE1)> <22 (0x16)> [size = variable] <flags = 0>

    [size of non-deletable information]

    <gradient type>

    if gradient type is 0 (none), then:

      <brush foreground color (RGBT)> x 4

    else

      [number, n, of brush foreground colors]

    for each color:

      <brush foreground color (RGBT)> x 4

    after all brush foreground colors:

      [color position array] x (n-1)

    [size] <0xE1>
#### #### 0xE117 Brush Foreground Color (64-bit), Text
    <225 (0xE1)> <23 (0x17)> [size = variable] <flags = 0>

    [size of non-deletable information]

    <gradient type>

    if gradient type is 0 (none), then:

      <brush foreground color (RGBT)> x 8

    else

      [number, n, of brush foreground colors]

    for each color:

      <brush foreground color (RGBT)> x 8

    after all brush foreground colors:

      [color position array] x (n-1)

    [size] <0xE1>
#### #### 0xE118 Brush Background Color (32-bit), Text
    <225 (0xE1)> <24 (0x18)> [size = 14] <flags = 0>

    [size of non-deletable information = 4]

    <brush background color (RGBT)> x 4

    [size] <0xE1>
#### #### 0xE119 Brush Background Color (64-bit), Text
    <225 (0xE1)> <25 (0x19)> [size = 18] <flags = 0>

    [size of non-deletable information = 8]

    <brush background color (RGBT)> x 8

    [size] <0xE1>
#### #### 0xE11A Brush Pattern, Text
    <225 (0xE1)> <26 (0x1A)> [size = 12] <flags = 0>

    [size of non-deletable information = 2]

    [brush pattern index (unsigned)]

    [size] <0xE1>
#### #### 0xE11B Miscellaneous Attributes, Text
    <225 (0xE1)> <27 (0x1B)> [size = 11] <flags = 0>

    [size of non-deletable information = 1]

    <flag>

      bit 1:

        0 = turn outline on

        1 = turn outline off

      bit 0:

        0 = turn fill on

        1 = turn fill off (hollow fill)

    [size] <0xE1>
#### #### 0xE11C Presentations Slide Options
    <225 (0xE1)> <28 (0x1C)> [size = variable] <flags = 0>

    [size of non-deletable information]

    <slide options> x ?

    [size] <0xE1>
#### #### 0xE11D Presentations Organization Chart Node Options
    <225 (0xE1)> <29 (0x1D)> [size = variable] <flags = 0>

    [size of non-deletable information]

    [flag]

      bit 1:

        0 = node is not a staff node

        1 = node is a staff node

      bit 0:

        0 = node is not current top node

        1 = node is current top node

    [size] <0xE1>
#### #### 0xE11E Hide for Conversions
    <225 (0xE1)> <30 (0x1E)> [size = variable] <flags = (0 or PRFXID) + (0

    or 3 {encased function})>

      <number of PIDs>

      [PIDs] x ?

    [size of non-deletable information]

    <product type of the hidden code = 1 for WP files>

    <file type>

      0x0A = WP file types

      0x2C = Macintosh WP 3.x

    <major version>

      3 = Macintosh WP 3.x

      2 = WP 6.x and WP 7.0

    <minor version>

      0 = Macintosh WP 3.0 or WP 6.0

      1 = WP 6.1

      2 = WP 7.0

    <hidden function data> x ?

    [size] <0xE1>
#### #### 0xE11F Hide Off for Conversions
    <225 (0xE1)> <31 (0x1F)> [size = 10] <flags = 3 (encased function)>

    [size of non-deletable information = 0]

    [size] <0xE1>
#### #### 0xE120 - Added for WP 7.0 IntelliTag Start Tag
    <225 (0xE1)> <32 (0x20)> [size = variable] <flags = (0 or PRFXID) + 2

    (encased/paired function)>

      <number of PIDs = 1>

      [tag with attributes parent PID (type=0x46)]

    [size of non-deletable information = variable]

    [tag name] x ?

    <undocumented deletable data> x ?

    [size] <0xE1>
#### #### 0xE121 - Added for WP 7.0 IntelliTag Start Tag End Marker
    <225 (0xE1)> <33 (0x21)> [size = 10] <flags = 3 (encased function)>

    [size of non-deletable information = 0]

    [size] <0xE1>
#### #### 0xE122 - Added for WP 7.0 IntelliTag End Tag
    <225 (0xE1)> <34 (0x22)> [size = variable] <flags = 2 (encased/paired

    function)>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xE1>
#### #### 0xE123 - Added for WP 7.0 IntelliTag End Tag End Marker
    <225 (0xE1)> <35 (0x23)> [size = 10] <flags = 3 (encased function)>

    [size of non-deletable information = 0]

    [size] <0xE1>
#### #### 0xE124 - Added for WP 7.0 IntelliTag Character Reference
    <225 (0xE1)> <36 (0x24)> [size = 12] <flags = 3 (encased function)>

    [size of non-deletable information = 1]

    <reference number>

    [size] <0xE1>
#### #### 0xE125 - Added for WP 7.0 IntelliTag Character Reference End Marker
    <225 (0xE1)> <37 (0x25)> [size = variable] <flags = 3 (encased

    function)>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xE1>
#### #### 0xE126 - Added for WP 7.0 IntelliTag Entity Reference
    <225 (0xE1)> <38 (0x26)> [size = variable] <flags = (0 or PRFXID) + 3

    (encased function)>

      <number of PIDs = 1>

      [tag with attributes parent PID (type=0x46)]

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xE1>
#### #### 0xE127 - Added for WP 7.0 IntelliTag Entity Reference End Marker
    <225 (0xE1)> <39 (0x27)> [size = variable] <flags = 0 or 3 (encased

    function)>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xE1>
#### #### 0xE128 - Added for WP 7.0 IntelliTag Ignore Content
    <225 (0xE1)> <40 (0x28)> [size = variable] <flags = 1 (simple paired

    function)>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xE1>
#### #### 0xE129 - Added for WP 7.0 IntelliTag End Ignore Content
    <225 (0xE1)> <41 (0x29)> [size = variable] <flags = 1 (simple paired

    function)>

    [size of non-deletable information = 0]

    <undocumented deletable data> x ?

    [size] <0xE1>
Function 226 (0xE2) = Formatter Group The formatter group subfunctions have character orientation. This group is platform dependent and formatter specific, and is undocumented. WordPerfect rebuilds the group when a document is retrieved or opened. Developers should use the size word to skip over any 0xE2 function codes.
    <226 (0xE2)> formatter group function

    <0 (0x00) to 255 (0xFF)>

    [size = variable] size of function code

    <undocumented data> x ?

    [size] <0xE2>
Table Formulas Table formula codes and their operation are shown below. These codes are used by New Cell Formula (function 0xD0 subfunction 0x81) and Floating Cell Begin (function 0xD4 subfunction 0x44) in Variable-Length Multi-Byte Functions. Values are shown in decimal. All string lengths are 16-bit values. All strings are WP word strings, except code 30, which is a byte string. The expression "cell#" denotes "row, column" where row and column are each signed 16-bit numbers. Formula Format
Formula Code | Description | Length
[1] | "+" add/concatenate | 1 byte
[2] | "" subtract/string strip | 1 byte
[3] | "*" multiply | 1 byte
[4] | "/" divide | 1 byte
[5] | "" unary minus | 1 byte
[6] | "%" percent | 1 byte
[7] | SUM( ) | 1 byte
[8,string w/length] | number constant | 1 byte + string
[9,string w/length] | string constant | 1 byte + string
[10,string w/length] | name reference | 1 byte + string
[11] | "^" power | 1 byte
[12,function#] | group 1 functions | 2 bytes
[13,function#] | group 2 functions | 2 bytes
[14,dir,cnt,type,27,cell#] | "+" shortcut code | 9 bytes
[15] | "%" modulus | 1 byte
[16] | "!" not | 1 byte
[17] | "&" and | 1 byte
[18] | "|" or | 1 byte
[19] | "^^" xor | 1 byte
[20] | IF ( ) | 1 byte
[21,function#] | compare | 2 bytes
[21,1] | "=" equal
[21,2] | "<>" not equal
[21,3] | ">" greater than
[21,4] | ">=" greater than or equal
[21,5] | "<" less than
[21,6] | "<=" less than or equal
[22] | "," comma | 1 byte
[23] | "(" left parenthesis | 1 byte
[24] | ")" right parenthesis | 1 byte
[25,space#] | space(s) | 2 bytes
[26,string w/length] | formula error | 1 byte + string
not used[27,cell#] | cell reference | 5 bytes
not used[28,cell#,cell#] | range reference | 9 bytes
[29] | "!=" not equal | 1 byte
[30,fp,byte string w/len] | floating point constant | 9 bytes + string
[31,argument number] | user argument reference | 2 bytes
[32,string w/length] | user function call | 1 byte + string
[33,temp#,string w/length] | temp function definition | 2 bytes + string
[34,temp#,string w/length] | temp function | 2 bytes + string
[35] | floating point constant 0.0 | 1 byte
[36] | "{" left brace | 1 byte
[37] | "}" right brace | 1 byte
[38] | "!" factorial | 1 byte
[39] | "<" lookup operator | 1 byte
[40] | ">" lookup operator | 1 byte
[41,WP attribute#] | attribute on | 2 bytes
[42,WP attribute#] | attribute off | 2 bytes
[43,WP attribute mask] | total attribute mask | 3 bytes
[44] | conditional attribute | 1 byte
[45] | * (assumed) | 1 byte
For codes 48-67: bit 0 set if absolute col (bottom-right cell of range) bit 1 set if absolute row (bottom-right cell of range) bit 2 set if absolute col (top-left cell in range) bit 3 set if absolute row (top-left cell in range)
[48-63,cell#,cell#] | range reference | 9 bytes
[64-67,cell#] | cell reference | 5 bytes
Function Number Values for Code 12
1 | MINUS | 8 | AND | 15 | ISNA
2 | ABS | 9 | OR | 16 | TIME
3 | INT | 10 | AVE | 17 | DATE
4 | SIGN | 11 | COUNT | 18 | FACT
5 | NOT | 12 | MIN | 19 | ROW
6 | TRUE | 13 | MAX | 20 | COLUMN
7 | FALSE | 14 | NA |
Function Number Values for Code 13
1 | POWER | 28 | MDY | 55 | BLOCK
2 | LN | 29 | MONTH | 56 | CURSOR
3 | LOG | 30 | DAY | 57 | DDB
4 | SQRT | 31 | YEAR | 58 | SLN
5 | PI | 32 | DATETEXT | 59 | SYD
6 | EXP | 33 | DATEVALUE | 60 | RATE
7 | SIN | 34 | VAR | 61 | STATUS
8 | COS | 35 | RANDOM | 62 | FOREACH
9 | TAN | 36 | CURRENCY | 63 | DEGREES
10 | MOD | 37 | ITERATION | 64 | HOUR
11 | ASIN | 38 | ISVALUE | 65 | MINUTE
12 | ACOS | 39 | ISTEXT | 66 | SECOND
13 | ATAN | 40 | REPLACE | 67 | HMS
14 | TERM | 41 | RADIANS | 68 | TIMETEXT
15 | PV | 42 | CELL | 69 | TIMEVALUE
16 | PMT | 43 | SUBTRACT | 70 | PRODUCT
17 | FV | 44 | IRR | 71 | QUOTIENT
18 | NPV | 45 | FIND | 72 | VARP
19 | LOOKUP | 46 | LEFT | 73 | STDEVP
20 | INDEX | 47 | RIGHT | 74 | ATAN2
21 | ROUND | 48 | UPPER | 75 | MATCH
22 | STDEV | 49 | LOWER | 76 | MATCH2
23 | CONCEDE | 50 | PROPER | 77 | LOOKUP2
24 | MID | 51 | CHAR | 78 | LINK
25 | LENGTH | 52 | CODE | 79 | ISERR
26 | VALUE | 53 | TRIM | 80 | ISERR2
27 | TEXT | 54 | REPEAT | 81 | CHOOSE
Order of Operator Execution
Operator | Associativity | Level
! (factorial), % (percent) | left to right | immediate
! (not), (negate) | right to left | 16
^ | left to right | 15
*, /, % (modulus) | left to right | 14
+, (subtract) | left to right | 13
<<, >> | left to right | 12 (n/a)
<, <=, >, >= | left to right | 11
=, <> (or !=) | left to right | 10
&& (or &) | left to right | 9
^^ | left to right | 8
|| (or |) | left to right | 7
?; | right to left | 6 (n/a)
:= | right to left | 5
( ) | left to right | 4
, | left to right | 3
| Copyright © 1997 Corel Corporation. contact info To contact Customer Service at one of our worldwide locations, click here Last Updated: September 9, 1996