[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Int 3E - Floating Point Emulation - Borland LANguages "shortcut" Call [r]
Notes: the two bytes following the INT 3E instruction are the subcode and
a NOP (90h), except for subcodes DCh and DEh, where the second byte
is a register count (01h-08h)
this vector is modified but not restored by Direct Access v4.0, and
may be left dangling by other programs written with the same version
of compiled BASIC
See Also: INT 3D
Values for subcode:
Subcode Function
DCh load 8086 stack with 8087 registers; overwrites the 10*N bytes at the
top of the stack prior to the INT 3E with the 8087 register contents
DEh load 8087 registers from top of 8086 stack; ST0 is furthest from top
of 8086 stack
E0h round TOS and R1 to single precision, compare, pop twice
returns AX=8087 status word, FLAGS=8087 condition bits
E2h round TOS and R1 to double precision, compare, pop twice
returns AX=8087 status word, FLAGS=8087 condition bits
Note: buggy in TPas5.5, because it sets the 8087 precision control
field to the undocumented value 01h; this results in actually
rounding to single precision
E4h compare TOS/R1 with two POP's
returns FLAGS=8087 condition bits
E6h compare TOS/R1 with POP
returns FLAGS=8087 condition bits
E8h FTST (check TOS value)
returns FLAGS=8087 condition bits
EAh FXAM (check TOS value)
returns AX=8087 status word
ECh sine(ST0)
EEh cosine(ST0)
F0h tangent(ST0)
F2h arctangent(ST0)
F4h ST0 = ln(ST0)
F6h ST0 = log2(ST0)
F8h ST0 = log10(ST0)
FAh ST0 = e**ST0
FCh ST0 = 2**ST0
FEh ST0 = 10**ST0
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson