summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2008-10-21 22:53:40 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2008-10-21 22:53:40 +0000
commit5bdba222c49afa25a1befead9fb180a9a1a73406 (patch)
tree4509b13e82a5e5c11642a9f0cb3937be6fd1c0af
parentcb6afe7070b39d6158e71ef4caa3cf087aad0726 (diff)
downloadlibcss-5bdba222c49afa25a1befead9fb180a9a1a73406.tar.gz
libcss-5bdba222c49afa25a1befead9fb180a9a1a73406.tar.bz2
Reduce space requirements by squashing opcode + flags + value into 32 bits.
This has been achieved by reducing opcode's width from 16 to 8 bits. This is fine as there's 172 opcodes still available at present so plenty of room for expansion. Flags have been reduced from 16 to 10 bits wide and currently have 8 bits unused. This leaves 14 bits available for the opcode-specific value. No opcode needs all 14 bits at present. Inherit is now a global flag rather than a pre-defined value. This saves looking at the value field at all when styles are inherited and generally reduces complexity. svn path=/trunk/libcss/; revision=5616
-rw-r--r--docs/Bytecode976
1 files changed, 431 insertions, 545 deletions
diff --git a/docs/Bytecode b/docs/Bytecode
index f09ad41..5c88fec 100644
--- a/docs/Bytecode
+++ b/docs/Bytecode
@@ -4,14 +4,19 @@ CSS style declaration bytecode
Format
------
-<opcode+flags> [<parameters>]
+<opcode+flags+value> [<parameters>]
-<opcode+flags> is 32 bits wide.
-The bottom 16 bits contain the opcode and the top 16 bits contain flags.
+<opcode+flags+value> is 32 bits wide:
+ bits 18-13: value
+ bits 8-17 : flags
+ bits 0-7 : opcode
-The 16 bits of flag data are defined as follows:
- bit 0 : !important
- bit 1-15: MBZ
+The 10 bits of flag data are defined as follows:
+ bits 2-9: MBZ
+ bit 1 : value is inherit
+ bit 0 : value is important
+
+The 14 bits of value are opcode-specific.
Parameters are opcode-specific. Each parameter must begin on a 4 byte boundary.
@@ -20,9 +25,12 @@ Datatype storage
8 and 16 bit integers are stored as 32bit values.
-32 and 64 bit integers are stored in their natural format.
+32 bit integers are stored in their natural format.
+
+Floats are stored in their natural format.
-Floats and doubles are stored in their natural format.
+Integers wider than 32 bits are not supported.
+Doubles are not supported.
Strings are stored unterminated UTF8, preceded by 32bits of byte length, and
followed by 0-3 bytes of padding for alignment. The padding bytes must be
@@ -89,12 +97,10 @@ Opcodes
-------
00 - azimuth
- <value> (32bits) :
- bits 8-31: MBZ
- bit 7 set => angle or inherit:
- bits 0-6: 0000000 => signed angle unit follows,
- 1111111 => inherit,
- other => Reserved for future expansion.
+ <value> (14bits) :
+ bits 8-13: MBZ
+ bit 7 set => angle follows.
+ bits 0-6: MBZ
bit 6 set => relative movement:
bit 7 : MBZ
bits 1-5: MBZ
@@ -114,83 +120,73 @@ Opcodes
other => Reserved for future expansion.
01 - background-attachment
- <value> (32bits) :
+ <value> (14bits) :
0 => fixed
1 => scroll
- 0xff => inherit
other => Reserved for future expansion.
02 - background-color
- <value> (32bits) :
- bit 8-31: MBZ
- bit 7 set => color or inherit:
- bits 0-6: 0000000 => colour follows,
- 1111111 => inherit,
- other => Reserved for future expansion.
- bit 7 clear => keyword color:
+ <value> (14bits) :
+ bit 8-13: MBZ
+ bit 7 set => colour follows.
+ bits 0-6: MBZ
+ bit 7 clear => keyword colour:
bits 1-6: MBZ
bit 0 : clear => transparent, set => rffe.
03 - background-image
- <value> (32bits) :
- bits 8-31: MBZ
- bit 7 set => uri or inherit:
- bits 0-6: 0000000 => uri string follows,
- 1111111 => inherit,
- other => Reserved for future expansion.
+ <value> (14bits) :
+ bits 8-13: MBZ
+ bit 7 set => uri string follows.
+ bits 0-6: MBZ
bit 7 clear => keyword:
bits 1-6: MBZ
bit 0 : clear => none, set => rffe.
04 - background-position
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit
- otherwise:
- bit 7: set => percentage or length unit follows
- bits 4-6: MBZ
- clear => keywords:
- bits 4-6:
- 000 => right
- 001 => center
- 010 => left
- other => rffe
- bit 3: set => percentage or length unit follows
- bits 0-2: MBZ
- clear => keywords:
- bits 0-2:
- 000 => bottom
- 001 => center
- 010 => top
- other => rffe
+ bit 7: set => percentage or length unit follows
+ bits 4-6: MBZ
+ clear => keywords:
+ bits 4-6:
+ 000 => right
+ 001 => center
+ 010 => left
+ other => rffe
+ bit 3: set => percentage or length unit follows
+ bits 0-2: MBZ
+ clear => keywords:
+ bits 0-2:
+ 000 => bottom
+ 001 => center
+ 010 => top
+ other => rffe
05 - background-repeat
- <value> (32bits) :
+ <value> (14bits) :
0 => no-repeat
1 => repeat-x
2 => repeat-y
3 => repeat
- 0xff => inherit
other => Reserved for future expansion.
06 - border-collapse
- <value> (32bits) :
+ <value> (14bits) :
0 => separate
1 => collapse
- 0xff => inherit
other => Reserved for future expansion.
07 - border-spacing
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 : 00000000 => two lengths follow,
- 11111111 => inherit,
other => Reserved for future expansion.
08 - border-{top,right,bottom,left}-color
- <value> (32bits) :
- bits 10-31: MBZ
+ <value> (14bits) :
+ bits 10-13: MBZ
bits 8-9 :
00 => top
01 => right
@@ -198,12 +194,11 @@ Opcodes
11 => left
bits 0-7 : 00000000 => colour follows,
00000001 => transparent,
- 11111111 => inherit,
other => Reserved for future expansion.
09 - border-{top,right,bottom,left}-style
- <value> (32bits) :
- bits 10-31: MBZ
+ <value> (14bits) :
+ bits 10-13: MBZ
bits 8-9 :
00 => top
01 => right
@@ -220,96 +215,84 @@ Opcodes
00000111 => ridge,
00001000 => inset,
00001001 => outset,
- 11111111 => inherit,
other => Reserved for future expansion.
0a - border-{top,right,bottom,left}-width
- <value> (32bits) :
- bits 10-31: MBZ
+ <value> (14bits) :
+ bits 10-13: MBZ
bits 8-9 :
00 => top
01 => right
10 => bottom
11 => left
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => thin,
- 0000001 => medium,
- 0000010 => thick,
- other => rffe.
+ bit 7 set => length follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => thin,
+ 0000001 => medium,
+ 0000010 => thick,
+ other => rffe.
0b - bottom
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7:
- 11111111 => inherit,
- otherwise:
- bit 7 set => length/percentage follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => auto,
- other => rffe.
+ bit 7 set => length/percentage follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => auto,
+ other => rffe.
0c - caption-side
- <value> (32bits) :
+ <value> (14bits) :
0 => top
1 => bottom
- 0xff => inherit
other => Reserved for future expansion.
0d - clear
- <value> (32bits) :
+ <value> (14bits) :
0 => none
1 => left
2 => right
3 => both
- 0xff => inherit
other => Reserved for future expansion.
0e - clip
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7:
- 11111111 => inherit,
- otherwise:
- bit 7 set => shape follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => auto,
- other => rffe.
+ bit 7 set => shape follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => auto,
+ other => rffe.
0f - color
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7:
- 11111111 => inherit,
00000000 => colour follows,
other => Reserved for future expansion.
10 - content
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => string follows
- bits 0-6: 0000000 => string,
- 0000001 => uri,
- 0000010 => counter,
- 0000011 => attr,
- other => rffe.
- bit 7 clear => keywords:
- bits 0-6: 0000000 => normal,
- 0000001 => none,
- 0000010 => open-quote,
- 0000011 => close-quote,
- 0000100 => no-open-quote,
- 0000101 => no-close-quote,
- other => rffe.
+ bit 7 set => string follows
+ bits 0-6: 0000000 => string,
+ 0000001 => uri,
+ 0000010 => counter,
+ 0000011 => attr,
+ other => rffe.
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => normal,
+ 0000001 => none,
+ 0000010 => open-quote,
+ 0000011 => close-quote,
+ 0000100 => no-open-quote,
+ 0000101 => no-close-quote,
+ other => rffe.
If the value is not "normal", "none", or "inherit", then there is
a parameter list. Each item is preceded by a <value> word which
@@ -317,18 +300,16 @@ Opcodes
word with all bits set to zero (the encoding for "normal").
11 - counter-increment
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => string or integer follows
- bits 0-6: 0000000 => string,
- 0000001 => integer,
- other => rffe.
- bit 7 clear => keywords:
- bits 0-6: 0000000 => none,
- other => rffe.
+ bit 7 set => string or integer follows
+ bits 0-6: 0000000 => string,
+ 0000001 => integer,
+ other => rffe.
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => none,
+ other => rffe.
If the value is not "none", or "inherit", then there is a parameter
list. Each item is preceded by a <value> word which declares the type
@@ -336,18 +317,16 @@ Opcodes
zero (the encoding for "none").
12 - counter-reset
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => string or integer follows
- bits 0-6: 0000000 => string,
- 0000001 => integer,
- other => rffe.
- bit 7 clear => keywords:
- bits 0-6: 0000000 => none,
- other => rffe.
+ bit 7 set => string or integer follows
+ bits 0-6: 0000000 => string,
+ 0000001 => integer,
+ other => rffe.
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => none,
+ other => rffe.
If the value is not "none", or "inherit", then there is a parameter
list. Each item is preceded by a <value> word which declares the type
@@ -355,56 +334,50 @@ Opcodes
zero (the encoding for "none").
13 - cue-after
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => uri follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => none,
- other => rffe.
+ bit 7 set => uri follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => none,
+ other => rffe.
14 - cue-before
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => uri follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => none,
- other => rffe.
+ bit 7 set => uri follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => none,
+ other => rffe.
15 - cursor
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => uri follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => auto,
- 0000001 => crosshair,
- 0000010 => default,
- 0000011 => pointer,
- 0000100 => move,
- 0000101 => e-resize,
- 0000110 => ne-resize,
- 0000111 => nw-resize,
- 0001000 => n-resize,
- 0001001 => se-resize,
- 0001010 => sw-resize,
- 0001011 => s-resize,
- 0001100 => w-resize,
- 0001101 => text,
- 0001110 => wait,
- 0001111 => help,
- 0010000 => progress,
- other => rffe.
+ bit 7 set => uri follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => auto,
+ 0000001 => crosshair,
+ 0000010 => default,
+ 0000011 => pointer,
+ 0000100 => move,
+ 0000101 => e-resize,
+ 0000110 => ne-resize,
+ 0000111 => nw-resize,
+ 0001000 => n-resize,
+ 0001001 => se-resize,
+ 0001010 => sw-resize,
+ 0001011 => s-resize,
+ 0001100 => w-resize,
+ 0001101 => text,
+ 0001110 => wait,
+ 0001111 => help,
+ 0010000 => progress,
+ other => rffe.
If the value indicates that a uri is present, then there is a
parameter list. Each item is preceded by a <value> word which declares
@@ -412,14 +385,13 @@ Opcodes
bit 7 clear.
16 - direction
- <value> (32bits) :
+ <value> (14bits) :
0 => ltr,
1 => rtl,
- 0xff => inherit,
other => Reserved for future expansion.
17 - display
- <value> (32bits) :
+ <value> (14bits) :
0 => inline,
1 => block,
2 => list-item,
@@ -436,56 +408,49 @@ Opcodes
d => table-cell,
e => table-caption,
f => none,
- 0xff => inherit,
other => Reserved for future expansion.
18 - elevation
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => angle follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => below,
- 0000001 => level,
- 0000010 => above,
- 0000011 => higher,
- 0000100 => lower,
- other => rffe.
+ bit 7 set => angle follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => below,
+ 0000001 => level,
+ 0000010 => above,
+ 0000011 => higher,
+ 0000100 => lower,
+ other => rffe.
19 - empty-cells
- <value> (32bits) :
+ <value> (14bits) :
0 => show,
1 => hide,
- 0xff => inherit
other => Reserved for future expansion.
1a - float
- <value> (32bits) :
+ <value> (14bits) :
0 => left,
1 => right,
2 => none,
- 0xff => inherit
other => Reserved for future expansion.
1b - font-family
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => string follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => Reserved.
- 0000001 => serif,
- 0000010 => sans-serif,
- 0000011 => cursive,
- 0000100 => fantasy,
- 0000101 => monospace,
- other => rffe.
+ bit 7 set => string follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => Reserved.
+ 0000001 => serif,
+ 0000010 => sans-serif,
+ 0000011 => cursive,
+ 0000100 => fantasy,
+ 0000101 => monospace,
+ other => rffe.
If the value indicates that a string is present, then there is a
parameter list. Each item is preceded by a <value> word which declares
@@ -493,42 +458,38 @@ Opcodes
all bits clear.
1c - font-size
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7:
- 11111111 => inherit,
- otherwise:
- bit 7 set => dimension follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => xx-small,
- 0000001 => x-small,
- 0000010 => small,
- 0000011 => medium,
- 0000100 => large,
- 0000101 => x-large,
- 0000110 => xx-large,
- 0000111 => larger,
- 0001000 => smaller,
- other => rffe.
+ bit 7 set => dimension follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => xx-small,
+ 0000001 => x-small,
+ 0000010 => small,
+ 0000011 => medium,
+ 0000100 => large,
+ 0000101 => x-large,
+ 0000110 => xx-large,
+ 0000111 => larger,
+ 0001000 => smaller,
+ other => rffe.
1d - font-style
- <value> (32bits) :
+ <value> (14bits) :
0 => normal,
1 => italic,
2 => oblique,
- 0xff => inherit,
other => Reserved for future expansion.
1e - font-variant
- <value> (32bits) :
+ <value> (14bits) :
0 => normal,
1 => small-caps,
- 0xff => inherit,
other => Reserved for future expansion.
1f - font-weight
- <value> (32bits) :
+ <value> (14bits) :
0 => normal,
1 => bold,
2 => bolder,
@@ -542,80 +503,68 @@ Opcodes
a => 700,
b => 800,
c => 900,
- 0xff => inherit,
other => Reserved for future expansion.
20 - height
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length or percentage follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => auto,
- other => rffe.
+ bit 7 set => length or percentage follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => auto,
+ other => rffe.
21 - left
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length or percentage follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => auto,
- other => rffe.
+ bit 7 set => length or percentage follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => auto,
+ other => rffe.
22 - letter-spacing
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => normal,
- other => rffe.
+ bit 7 set => length follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => normal,
+ other => rffe.
23 - line-height
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length/number/percentage follows
- bits 0-6: 0000000 => number,
- 0000001 => dimension,
- other => rffe.
- bit 7 clear => keywords:
- bits 0-6: 0000000 => normal,
- other => rffe.
+ bit 7 set => length/number/percentage follows
+ bits 0-6: 0000000 => number,
+ 0000001 => dimension,
+ other => rffe.
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => normal,
+ other => rffe.
24 - list-style-image
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => string follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => none,
- other => rffe.
+ bit 7 set => string follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => none,
+ other => rffe.
25 - list-style-position
- <value> (32bits) :
+ <value> (14bits) :
0 => inside,
1 => outside,
- 0xff => inherit,
other => Reserved for future expansion.
26 - list-style-type
- <value> (32bits) :
+ <value> (14bits) :
0 => disc,
1 => circle,
2 => square,
@@ -632,89 +581,77 @@ Opcodes
d => lower-alpha,
e => upper-alpha,
f => none,
- 0xff => inherit,
other => Reserved for future expansion.
27 - margin-{top,right,bottom,left}
- <value> (32bits) :
- bits 10-31: MBZ
+ <value> (14bits) :
+ bits 10-13: MBZ
bits 8-9 :
00 => top,
01 => right,
10 => bottom,
11 => left
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length or percentage follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => auto,
- other => rffe.
+ bit 7 set => length or percentage follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => auto,
+ other => rffe.
28 - max-height
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length or percentage follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => none,
- other => rffe.
+ bit 7 set => length or percentage follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => none,
+ other => rffe.
29 - max-width
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length or percentage follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => none,
- other => rffe.
+ bit 7 set => length or percentage follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => none,
+ other => rffe.
2a - min-height
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
00000000 => length or percentage follows,
other => Reserved for future expansion.
2b - min-width
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
00000000 => length or percentage follows,
other => Reserved for future expansion.
2c - orphans
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
00000000 => integer follows,
other => Reserved for future expansion.
2d - outline-color
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => colour follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => invert,
- other => rffe.
+ bit 7 set => colour follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => invert,
+ other => rffe.
2e - outline-style
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
00000000 => none,
00000001 => hidden,
@@ -726,147 +663,129 @@ Opcodes
00000111 => ridge,
00001000 => inset,
00001001 => outset,
- 11111111 => inherit,
other => Reserved for future expansion.
2f - outline-width
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => thin,
- 0000001 => medium,
- 0000010 => thick,
- other => rffe.
+ bit 7 set => length follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => thin,
+ 0000001 => medium,
+ 0000010 => thick,
+ other => rffe.
30 - overflow
- <value> (32bits) :
+ <value> (14bits) :
0 => visible,
1 => hidden,
2 => scroll,
3 => auto,
- 0xff => inherit,
other => Reserved for future expansion.
31 - padding-{top,right,bottom,left}
- <value> (32bits) :
- bits 10-31: MBZ
+ <value> (14bits) :
+ bits 10-13: MBZ
bits 8-9 :
00 => top,
01 => right,
10 => bottom,
11 => left
bits 0-7 :
- 11111111 => inherit,
00000000 => length or percentage follows,
other => Reserved for future expansion.
32 - page-break-after
- <value> (32bits) :
+ <value> (14bits) :
0 => auto,
1 => always,
2 => avoid,
3 => left,
4 => right,
- 0xff => inherit,
other => Reserved for future expansion.
33 - page-break-before
- <value> (32bits) :
+ <value> (14bits) :
0 => auto,
1 => always,
2 => avoid,
3 => left,
4 => right,
- 0xff => inherit,
other => Reserved for future expansion.
34 - page-break-inside
- <value> (32bits) :
+ <value> (14bits) :
0 => avoid,
1 => auto,
- 0xff => inherit,
other => Reserved for future expansion.
35 - pause-after
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
00000000 => time or percentage follows,
other => Reserved for future expansion.
36 - pause-before
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
00000000 => time or percentage follows,
other => Reserved for future expansion.
37 - pitch-range
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
00000000 => number follows,
other => Reserved for future expansion.
38 - pitch
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => frequency follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => x-low,
- 0000001 => low,
- 0000010 => medium,
- 0000011 => high,
- 0000100 => x-high,
- other => rffe.
+ bit 7 set => frequency follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => x-low,
+ 0000001 => low,
+ 0000010 => medium,
+ 0000011 => high,
+ 0000100 => x-high,
+ other => rffe.
39 - play-during
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => string follows
- bit 6: set => mix, clear => don't mix
- bit 5: set => repeat, clear => no repeat
- bits 0-4: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => auto,
- 0000001 => none,
- other => rffe.
+ bit 7 set => string follows
+ bit 6: set => mix, clear => don't mix
+ bit 5: set => repeat, clear => no repeat
+ bits 0-4: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => auto,
+ 0000001 => none,
+ other => rffe.
3a - position
- <value> (32bits) :
+ <value> (14bits) :
0 => static,
1 => relative,
2 => absolute,
3 => fixed,
- 0xff => inherit,
other => Reserved for future expansion.
3b - quotes
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => two strings follow
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => none,
- other => rffe.
+ bit 7 set => two strings follow
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => none,
+ other => rffe.
If the value indicates that strings are present, then there is a
parameter list. Each item is preceded by a <value> word which declares
@@ -874,101 +793,88 @@ Opcodes
all bits clear (the encoding for "none").
3c - richness
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
00000000 => number follows,
other => Reserved for future expansion.
3d - right
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length or percentage follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => auto,
- other => rffe.
+ bit 7 set => length or percentage follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => auto,
+ other => rffe.
3e - speak-header
- <value> (32bits) :
+ <value> (14bits) :
0 => once,
1 => always,
- 0xff => inherit,
other => Reserved for future expansion.
3f - speak-numeral
- <value> (32bits) :
+ <value> (14bits) :
0 => digits,
1 => continuous,
- 0xff => inherit,
other => Reserved for future expansion.
40 - speak-punctuation
- <value> (32bits) :
+ <value> (14bits) :
0 => code,
1 => none,
- 0xff => inherit,
other => Reserved for future expansion.
41 - speak
- <value> (32bits) :
+ <value> (14bits) :
0 => normal,
1 => none,
2 => spell-out,
- 0xff => inherit,
other => Reserved for future expansion.
42 - speech-rate
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => number follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => x-slow,
- 0000001 => slow,
- 0000010 => medium,
- 0000011 => fast,
- 0000100 => x-fast,
- 0000101 => faster,
- 0000110 => slower,
- other => rffe.
+ bit 7 set => number follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => x-slow,
+ 0000001 => slow,
+ 0000010 => medium,
+ 0000011 => fast,
+ 0000100 => x-fast,
+ 0000101 => faster,
+ 0000110 => slower,
+ other => rffe.
43 - stress
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
00000000 => number follows,
other => Reserved for future expansion.
44 - table-layout
- <value> (32bits) :
+ <value> (14bits) :
0 => auto,
1 => fixed,
- 0xff => inherit,
other => Reserved for future expansion.
45 - text-align
- <value> (32bits) :
+ <value> (14bits) :
0 => left,
1 => right,
2 => center,
3 => justify,
- 0xff => inherit,
other => Reserved for future expansion.
46 - text-decoration
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit
00000000 => none
otherwise:
bits 4-7: MBZ
@@ -979,83 +885,73 @@ Opcodes
bit 0: set => underline, clear => no underline
47 - text-indent
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
00000000 => length or percentage follows,
other => Reserved for future expansion.
48 - text-transform
- <value> (32bits) :
+ <value> (14bits) :
0 => capitalize,
1 => uppercase,
2 => lowercase,
3 => none,
- 0xff => inherit,
other => Reserved for future expansion.
49 - top
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length or percentage follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => auto,
- other => rffe.
+ bit 7 set => length or percentage follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => auto,
+ other => rffe.
4a - unicode-bidi
- <value> (32bits) :
+ <value> (14bits) :
0 => normal,
1 => embed,
2 => bidi-override,
- 0xff => inherit,
other => Reserved for future expansion.
4b - vertical-align
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length or percentage follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => baseline,
- 0000001 => sub,
- 0000010 => super,
- 0000011 => top,
- 0000100 => text-top,
- 0000101 => middle,
- 0000110 => bottom,
- 0000111 => text-bottom,
- other => rffe.
+ bit 7 set => length or percentage follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => baseline,
+ 0000001 => sub,
+ 0000010 => super,
+ 0000011 => top,
+ 0000100 => text-top,
+ 0000101 => middle,
+ 0000110 => bottom,
+ 0000111 => text-bottom,
+ other => rffe.
4c - visibility
- <value> (32bits) :
+ <value> (14bits) :
0 => visible,
1 => hidden,
2 => collapse,
- 0xff => inherit,
other => Reserved for future expansion.
4d - voice-family
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => string follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => Reserved.
- 0000001 => male,
- 0000010 => female,
- 0000011 => child,
- other => rffe.
+ bit 7 set => string follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => Reserved.
+ 0000001 => male,
+ 0000010 => female,
+ 0000011 => child,
+ other => rffe.
If the value indicates that a string is present, then there is a
parameter list. Each item is preceded by a <value> word which declares
@@ -1063,77 +959,67 @@ Opcodes
all bits clear.
4e - volume
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => number/percentage follows
- bits 0-6: 0000000 => number,
- 0000001 => dimension,
- other => rffe.
- bit 7 clear => keywords:
- bits 0-6: 0000000 => silent,
- 0000001 => x-soft,
- 0000010 => soft,
- 0000011 => medium,
- 0000100 => loud,
- 0000101 => x-loud,
- other => rffe.
+ bit 7 set => number/percentage follows
+ bits 0-6: 0000000 => number,
+ 0000001 => dimension,
+ other => rffe.
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => silent,
+ 0000001 => x-soft,
+ 0000010 => soft,
+ 0000011 => medium,
+ 0000100 => loud,
+ 0000101 => x-loud,
+ other => rffe.
4f - white-space
- <value> (32bits) :
+ <value> (14bits) :
0 => normal,
1 => pre,
2 => nowrap,
3 => pre-wrap,
4 => pre-line,
- 0xff => inherit,
other => Reserved for future expansion.
50 - widows
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
00000000 => integer follows,
other => Reserved for future expansion.
51 - width
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length or percentage follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => auto,
- other => rffe.
+ bit 7 set => length or percentage follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => auto,
+ other => rffe.
52 - word-spacing
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => length follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => normal,
- other => rffe.
+ bit 7 set => length follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => normal,
+ other => rffe.
53 - z-index
- <value> (32bits) :
- bits 8-31: MBZ
+ <value> (14bits) :
+ bits 8-13: MBZ
bits 0-7 :
- 11111111 => inherit,
- otherwise:
- bit 7 set => integer follows
- bits 0-6: MBZ
- bit 7 clear => keywords:
- bits 0-6: 0000000 => auto,
- other => rffe.
+ bit 7 set => integer follows
+ bits 0-6: MBZ
+ bit 7 clear => keywords:
+ bits 0-6: 0000000 => auto,
+ other => rffe.
-54-ffff - Reserved for future expansion.
+54-ff - Reserved for future expansion.