semi合集-English.pdf - 第5902页
SEMI P39-0304 E2 © SEMI 2004 5 Table 3 Real Number Types Format Meaning ‘0’ unsigned-integer Positive whole number ‘1’ unsigned-integer Negative whole number ‘2’ unsigned-integer Positive reciprocal ‘3’ unsigned-integer …

SEMI P39-0304
E2
© SEMI 2004 4
Table 1 Unsigned-Integer Examples
Unsigned-Integer Value Binary Representation
0 00000000
127 01111111
128 10000000 00000001
16,383 11111111 01111111
16,384 10000000 10000000 00000001
7.2.2 A signed-integer follows the same byte-continuation scheme as an unsigned-integer, and is stored in signed-
magnitude form, with the significand left-shifted one bit and the sign bit stored in the least significant bit of the low-
order (first) byte. A sign bit of 0 indicates a positive number, and a sign bit of 1 indicates a negative number. Both
representations of zero (+0 and -0) should be treated as numerically equivalent for the purposes of comparison.
Figure 2
Signed-Integer Representation
Table 2 Signed Integer Examples
Signed Integer Value Binary Representation
0 00000000
+1 00000010
1 00000011
+63 01111110
64 10000001 00000001
+8,191 11111110 01111111
8,192 10000001 10000000 00000001
7.2.3 EXCEPTION HANDLING
— OASIS processors which only support integer data in a restricted space (e.g.,
32-bit space) should treat any magnitude outside of this space as a fatal error.
7.3 Reals
7.3.1 A real number may be stored in one of several rational forms, or as a single-precision 4-byte (ieee-4) or
double-precision 8-byte (ieee-8) floating point value. The rational forms are usually more compact than the floating-
point forms, and have the advantage of being able to precisely represent many values which can only be
approximated by the binary floating point representation. The type of representation is stored in an unsigned-integer
which precedes the significant portion of the real:

SEMI P39-0304
E2
© SEMI 2004 5
Table 3 Real Number Types
Format Meaning
‘0’ unsigned-integer Positive whole number
‘1’ unsigned-integer Negative whole number
‘2’ unsigned-integer Positive reciprocal
‘3’ unsigned-integer Negative reciprocal
‘4’ unsigned-integer unsigned-integer Positive ratio
‘5’ unsigned-integer unsigned-integer Negative ratio
‘6’ IEEE-4-byte-float Single-precision floating point
‘7’ IEEE-8-byte-float Double-precision floating point
7.3.2 In types 0 and 1, the real is a whole number—its fractional portion is zero. In types 2 and 3, the unsigned-
integer represents the denominator of a reciprocal, with an implicit numerator of 1. Types 4 and 5 are ratios, with the
numerator listed first, followed by the denominator. Types 6 and 7 are binary floating point numbers in IEEE 754-
1985 format, with the least significant byte of the fraction (byte 0) stored first
.
Figure 3
IEEE Floating Point Formats
Table 4 Real Number Examples
Value Rational Form IEEE-4 Form
0.0 00000000 00000000 00000110 00000000 00000000 00000000 00000000
1.0 00000000 00000001 00000110 00000000 00000000 10000000 00111111
0.5 00000011 00000010 00000110 00000000 00000000 00000000 10111111
0.3125 00000100 00000101 00010000 00000110 00000000 00000000 10100000 00111110
1/3 00000010 00000011 00000110 10101011 10101010 10101010 00111110
2/13 00000101 00000010 00001101 00000110 11011001 10001001 00011101 10111110
7.3.3 EXCEPTION HANDLING
— For types 2–5, a denominator of 0 should be treated as a fatal error. A type
outside the range of 0–7 should be treated as a fatal error.
7.4 Strings
7.4.1 A string is a sequence of zero or more bytes (“characters”) preceded by an unsigned-integer representing the
number of characters in the string:
string -> length byte*
Strings in OASIS are further sub-typed by semantic. A b-string (“binary string”) is a string which may contain any
combination of 8-bit character codes in any sequence. An a-string (“ASCII string”) may contain only printable
ASCII character codes (hexadecimal 21-7E) plus the SP (space) character (hexadecimal 20), in any sequence. An
n-string (“name string”) may contain only printable ASCII character codes (hexadecimal 21-7E), and must have a
length greater than zero.

SEMI P39-0304
E2
© SEMI 2004 6
7.4.2 The set of printable ASCII characters consists of hexadecimal character codes 21-7E. In ascending order of
character code, we have:
!"#$%&’()*+,-./0123456789:;<=>?@ [21-40]
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_‘ [41-60]
abcdefghijklmnopqrstuvwxyz{|}~ [61-7E]
This excludes space (SP), tabs (HT, VT), and all other control characters.
7.4.3 EXCEPTION HANDLING
— OASIS processors should treat illegal characters in a-strings or n-strings as
fatal errors. Zero-length n-strings should also be treated as fatal errors.
7.5 Deltas
7.5.1 A delta represents geometric data (coordinates, vectors, planar offsets, etc.).
7.5.2 A 1-delta is stored as a signed-integer and represents a horizontal or vertical displacement. Bit 0 encodes
direction: 0 for east or north, 1 for west or south. The remaining bits are the magnitude. Horizontal or vertical
alignment is implied by context.
7.5.3 A 2-delta is stored as an unsigned-integer and represents a horizontal or vertical displacement. Bits 0-1
encode direction: 0 for east, 1 for north, 2 for west, and 3 for south. The remaining bits are the magnitude.
7.5.4 A 3-delta is stored as an unsigned-integer and represents a horizontal, vertical, or 45-degree diagonal
displacement. Bits 0-2 encode direction: 0 for east, 1 for north, 2 for west, 3 for south, 4 for northeast, 5 for
northwest, 6 for southwest, and 7 for southeast. The remaining bits are the magnitude (for horizontal and vertical
deltas) or the magnitude of the projection onto the x- or y-axis (for 45-degree deltas).
7.5.5 A g-delta has two alternative forms and is stored either as a single unsigned-integer or as a pair of unsigned-
integers. The first form is indicated when bit 0 is zero, and represents a horizontal, vertical, or 45-degree diagonal
displacement, with bits 1-3 encoding direction, and the remaining bits storing the magnitude, in the same fashion as
a 3-delta. The second form represents a general (x,y) displacement and is a pair of unsigned-integers. Bit 0 of the
first integer is 1. Bit 1 of the first integer is the x-direction (0 for east, 1 for west). The remaining bits of the first
integer represent the magnitude in the x-direction. Bit 0 of the second integer is the y-direction (0 for north, 1 for
south). The remaining bits of the second integer represent the magnitude in the y-direction. Both forms may appear
in a list of g-deltas.
Figure 4
Delta Types