10 FPU_OPERAND_ERROR
= '!';
11 FPU_OPERAND_NONE
= '*';
12 FPU_OPERAND_ST_0
= '+';
13 FPU_OPERAND_ST_I
= '-';
15 FPU_OPERAND_M16_INT
= '2';
16 FPU_OPERAND_M32_INT
= '4';
17 FPU_OPERAND_M64_INT
= '8';
18 FPU_OPERAND_ADDR
= '@';
19 FPU_OPERAND_M80_BCD
= 'B';
20 FPU_OPERAND_M32_FP
= 'C';
21 FPU_OPERAND_M64_FP
= 'D';
22 FPU_OPERAND_M80_FP
= 'E';
23 FPU_OPERAND_M2BYTE_CW
= 'c';
24 FPU_OPERAND_M2BYTE_SW
= 'd';
25 FPU_OPERAND_M14BYTE_ENV
= 'e';
26 FPU_OPERAND_M28BYTE_ENV
= 'f';
27 FPU_OPERAND_M94BYTE_STAT
= 'g';
28 FPU_OPERAND_M108BYTE_STAT
= 'h';
30 FP_ER
= FPU_SPACE
+ FPU_OPERAND_ERROR
;
31 FP_X
= FPU_SPACE
+ FPU_OPERAND_NONE
;
32 FP_T
= FPU_SPACE
+ FPU_OPERAND_ST_0
;
33 FP_I
= FPU_SPACE
+ FPU_OPERAND_ST_I
;
34 FP_2
= FPU_SPACE
+ FPU_OPERAND_M16_INT
;
35 FP_4
= FPU_SPACE
+ FPU_OPERAND_M32_INT
;
36 FP_8
= FPU_SPACE
+ FPU_OPERAND_M64_INT
;
37 FP_ADDR
= FPU_SPACE
+ FPU_OPERAND_ADDR
;
38 FP_0
= FPU_SPACE
+ FPU_OPERAND_M80_BCD
;
39 FP_S
= FPU_SPACE
+ FPU_OPERAND_M32_FP
;
40 FP_D
= FPU_SPACE
+ FPU_OPERAND_M64_FP
;
41 FP_E
= FPU_SPACE
+ FPU_OPERAND_M80_FP
;
42 FP_C
= FPU_SPACE
+ FPU_OPERAND_M2BYTE_CW
;
43 FP_W
= FPU_SPACE
+ FPU_OPERAND_M2BYTE_SW
;
44 FP_14
= FPU_SPACE
+ FPU_OPERAND_M14BYTE_ENV
;
45 FP_28
= FPU_SPACE
+ FPU_OPERAND_M28BYTE_ENV
;
46 FP_94
= FPU_SPACE
+ FPU_OPERAND_M94BYTE_STAT
;
47 FP_108
= FPU_SPACE
+ FPU_OPERAND_M108BYTE_STAT
;
48 FP_AX
= FPU_SPACE
+ FPU_OPERAND_AX
;
50 SEP_FP_4
: TSeparateConstants
= (
56 SEP_FP_8
: TSeparateConstants
= (
59 SigniAnd
: $4000000000000
62 SEP_FP_10
: TSeparateConstants
= (
64 SigniCmp
: $8000000000000000;
65 SigniAnd
: $4000000000000000
74 DESC_NEG_INF
= DESC_NEG
+ DESC_INF
;
75 DESC_POS_INF
= DESC_POS
+ DESC_INF
;
76 DESC_QNAN
= DESC_NAN_Q
+ DESC_NAN
;
77 DESC_SNAN
= DESC_NAN_S
+ DESC_NAN
;
79 TRANS_FP_4
: TTranslateConstants
= (
80 PosInf
: #
$00#
$00#
$80#
$7F;
81 NegInf
: #
$00#
$00#
$80#
$FF;
82 QNaN
: #
$01#
$00#
$C0#
$7F;
83 SNaN
: #
$01#
$00#
$80#
$7F;
86 TRANS_FP_8
: TTranslateConstants
= (
87 PosInf
: #
$00#
$00#
$00#
$00#
$00#
$00#
$F0#
$7F;
88 NegInf
: #
$00#
$00#
$00#
$00#
$00#
$00#
$F0#
$FF;
89 QNaN
: #
$01#
$00#
$00#
$00#
$00#
$00#
$F8#
$7F;
90 SNaN
: #
$01#
$00#
$00#
$00#
$00#
$00#
$F0#
$7F;
93 TRANS_FP_10
: TTranslateConstants
= (
94 PosInf
: #
$00#
$00#
$00#
$00#
$00#
$00#
$00#
$80#
$FF#
$7F;
95 NegInf
: #
$00#
$00#
$00#
$00#
$00#
$00#
$00#
$80#
$FF#
$FF;
96 QNaN
: #
$01#
$00#
$00#
$00#
$00#
$00#
$00#
$C0#
$FF#
$7F;
97 SNaN
: #
$01#
$00#
$00#
$00#
$00#
$00#
$00#
$80#
$FF#
$7F;
105 BRANCH_UNSUPPORTED
= '$';
107 CHARS_CONTROL
= [FPU_SPACE
, '<', '>'];
108 CHARS_ADDRESS
= ['0'..'9', '+', '-'];
109 CHARS_HEXA
: array [0..15] of Char = ('0', '1', '2', '3', '4', '5', '6', '7',
110 '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
112 INST_OPCODE_RET
: Char = #
$C3;
114 INTYPE_INSTRUCTION
= 1;
129 KEY_ASTERISK_SFT
= 56;