414 lines
20 KiB
Plaintext
414 lines
20 KiB
Plaintext
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
|
||
º º
|
||
º FRANKE.387 º
|
||
º º
|
||
º Coprocessor Emulation for º
|
||
º 387DX and 387SX º
|
||
º º
|
||
º Version 2.4 º
|
||
º º
|
||
º (c) Copyright 1989, 1990 by º
|
||
º Ingenieurb<72>ro FRANKE, º
|
||
º All rights reserved. º
|
||
º º
|
||
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
|
||
|
||
Overview
|
||
ÍÍÍÍÍÍÍÍ
|
||
|
||
FRANKE.387 is a software emulation of the arithmetic coprocessors 387DX
|
||
and 387SX from Intel. FRANKE.387 was developed for ATs using a 386DX or
|
||
386SX processor. MS-DOS or any compatible operation system is required.
|
||
|
||
The hole instruction set of the 387 coprocessor is available with
|
||
FRANKE.387. All 16 or 32 bit addressing modes are supported. No
|
||
application program can make out any difference to the real coprocessor.
|
||
|
||
Of course, FRANKE.387 is not able to increase the physical power of your
|
||
computer. FRANKE.387 is slower than a 387 coprocessor, but you can run
|
||
every application having no expensive coprocessor. Many application
|
||
programs will run up to 2.25 times faster even with FRANKE.387 if they
|
||
support a coprocessor.
|
||
|
||
|
||
Shareware
|
||
ÍÍÍÍÍÍÍÍÍ
|
||
|
||
Starting with version 2.4, FRANKE.387 will also be distributed as
|
||
shareware. The shareware version does not have all features, the full
|
||
version has.
|
||
|
||
The not registered shareware version may freely be copied and distributed
|
||
for free. Everybody may test the not registered version free of charge
|
||
for up to 30 days.
|
||
|
||
All rights, not described above, like selling, changing, distribution of
|
||
a registered version or even the use of the not registered version
|
||
longer than 30 days are explicitly not permitted, if you do not have a
|
||
prior written permission from Ingenieurb<72>ro Franke.
|
||
|
||
|
||
Registration
|
||
ÍÍÍÍÍÍÍÍÍÍÍÍ
|
||
|
||
Only registered users may use FRANKE.387 longer than 30 days. The
|
||
registered versions do not need any interactions during boot.
|
||
|
||
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
||
³ Version ³ Fee ³
|
||
³ ³ incl. costs ³
|
||
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
|
||
³ Shareware version, only one precision level ³ DM 64.00 ³
|
||
³ ³ ³
|
||
³ Full version, 3 precision levels, High Level Language ³ ³
|
||
³ Interface, 387 Instruction Trace Modus ³ DM 99.00 ³
|
||
³ ³ ³
|
||
³ Upgrade from shareware version to full version ³ DM 44.00 ³
|
||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
||
|
||
We need the following data for your registration:
|
||
|
||
1. name
|
||
2. complete address
|
||
3. requested version (shareware/full/upgrade)
|
||
|
||
Send your registration including the fee to:
|
||
|
||
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
||
³ Letter/Fax/Check: Payment: ³
|
||
³ ³
|
||
³ Ingenieurb<72>ro FRANKE Ingenieurb<72>ro FRANKE ³
|
||
³ Rennweg 61 Konto 10039999 ³
|
||
³ D-8500 N<>rnberg 20, Germany Schmidt Bank, N<>rnberg ³
|
||
³ Fax: 49 911 535421 BLZ 760 300 70 ³
|
||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
||
|
||
We will deliver your registered version after we received your payment.
|
||
|
||
|
||
Installation
|
||
ÍÍÍÍÍÍÍÍÍÍÍÍ
|
||
|
||
The installation of FRANKE.387 is very easy:
|
||
|
||
1. Copy the files FRANKE.387 and 387.EXE to your hard disk or boot
|
||
floppy.
|
||
|
||
2. Create the CONFIG.SYS file, if it does not exist.
|
||
|
||
3. Insert the following line in CONFIG.SYS file:
|
||
|
||
DEVICE = FRANKE.387
|
||
|
||
If needed you can include a path description before FRANKE.387,
|
||
e.g. DEVICE = c:\tools\FRANKE.387
|
||
|
||
After the name FRANKE.387 you can use the swiches ON or OFF.
|
||
E.g. DEVICE = FRANKE.387 ON.
|
||
This swiches specify whether FRANKE.387 will be enable or disabled
|
||
during boot. If swiches are missing, FRANKE.387 will be automatically
|
||
enabled, if no coprocessor was found, and disabled otherwise.
|
||
|
||
4. Re-boot the computer.
|
||
|
||
The entry in the CONFIG.SYS file loads FRANKE.387 every time you
|
||
boot. FRANKE.387 comes up with a copyright message and its current
|
||
status.
|
||
|
||
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
||
³ The not registered shareware version uses an extended copyright ³
|
||
³ message and sounds two bell signals. To continue boot you must ³
|
||
³ press the key specified in the last line of the screen. - Only ³
|
||
³ uppercase letters are accepted! ³
|
||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
||
|
||
|
||
|
||
How to use FRANKE.387
|
||
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
|
||
|
||
Normally FRANKE.387 needs no user interaction. All actions are started
|
||
from the application programs that utilize the coprocessor. So FRANKE.387
|
||
does its work automatically. The application programs cannot make out
|
||
any difference to the real coprocessor.
|
||
|
||
Of course, FRANKE.387 must be enabled to work. As described, FRANKE.387
|
||
can be enabled or disabled using the swiches ON or OFF at installation.
|
||
Normally FRANKE.387 is always enabled, if no coprocessor is installed.
|
||
|
||
To enable or disable FRANKE.387 after installation, you can use the program
|
||
387.EXE. This program may be copied to any directory of your hard disk
|
||
or to any floppy disk.
|
||
|
||
387.EXE allows the following calling options. Some of this options are
|
||
supported by the full version only.
|
||
|
||
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
||
³ Option ³ Functions performed ³
|
||
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
|
||
³ 387 ³ FRANKE.387 will be set to default status. ³
|
||
³ ³ I.e. FRANKE.387 will be enabled if no coprocessor is ³
|
||
³ ³ installed. It will be disabled if a coprocessor was ³
|
||
³ ³ found. ³
|
||
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
|
||
³ 387 ON ³ FRANKE.387 is enabled with full precision. ³
|
||
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
|
||
³ 387 OFF ³ FRANKE.387 is disabled. This may be necessary, if ³
|
||
³ ³ you want to re-boot your system with Ctrl+Alt+Del. ³
|
||
³ ³ The keyboard driver KEYBOARD.386 will do that auto- ³
|
||
³ ³ matically. ³
|
||
ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵
|
||
³ The following opitons are supported by the full version only. ³
|
||
ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵
|
||
³ 387 53 ³ FRANKE.387 is enabled with 53 bit precision maximum. ³
|
||
³ ³ This corresponds to the data types 'double', 'long ³
|
||
³ ³ real' or 'double precision'. Most of the application ³
|
||
³ ³ programs do not need more precision. FRANKE.387 will ³
|
||
³ ³ run faster using this option. ³
|
||
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
|
||
³ 387 24 ³ FRANKE.387 is enabled with 24 bit precision maximum. ³
|
||
³ ³ This corresponds to the data types 'float', 'real' or ³
|
||
³ ³ 'single precision'. In most cases, no higher pre- ³
|
||
³ ³ cision is needed. FRANKE.387 will run much faster ³
|
||
³ ³ using this option. ³
|
||
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
|
||
³ 387 ON I ³ Same as 387 ON, the High Level Language Interface ³
|
||
³ ³ is enabled. (See also High Level Language Interface.) ³
|
||
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
|
||
³ 387 53 I ³ Same as 387 53, the High Level Language Interface ³
|
||
³ ³ is enabled. This is the suggested standard option for ³
|
||
³ ³ the full version. (See also High Level Language ³
|
||
³ ³ Interface.) ³
|
||
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
|
||
³ 387 24 I ³ Same as 387 24, the High Level Language Interface ³
|
||
³ ³ is enabled. FRANKE.387 run at maximum speed, if you ³
|
||
³ ³ use this option. (See also High Level Language ³
|
||
³ ³ Interface.) ³
|
||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
||
|
||
|
||
|
||
Speed
|
||
ÍÍÍÍÍ
|
||
|
||
Like any 387 coprocessor, FRANKE.387 supports the three precision levels
|
||
for 64, 53 and 24 bit precision. The full version allows the user to
|
||
specify the maximum precision to increase computing speed.
|
||
|
||
The following table shows the aprox. number of CPU cyles. The numbers
|
||
are for a 386DX processor and no wait states. In the case of a 386SX or
|
||
wait states all numbers should be increased a little bit.
|
||
|
||
The column EMUL87 shows the speed for the public domain 80287 emulation.
|
||
|
||
ÚÄÄÄÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄ¿
|
||
³ º º º FRANKE.387 º ³
|
||
³ Instruct.º Description º 387DX º 64 Bit ³ 53 Bit ³ 24 Bit º EMUL87 ³
|
||
ÆÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍ͵
|
||
³ FNOP º no operation º 25 º 410 ³ 410 ³ 410 º 1,075 ³
|
||
³ FLD º load TByte numberº 38 º 650 ³ 650 ³ 650 º 1,470 ³
|
||
³ FSTP º store TByte num. º 55 º 745 ³ 745 ³ 745 º 1,495 ³
|
||
ÃÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄ´
|
||
³ FADD º Addition º 34 º 700 ³ 700 ³ 680 º 1,460 ³
|
||
³ FSUB º Subtraction º 34 º 770 ³ 770 ³ 750 º 1,565 ³
|
||
³ FMUL º Multiplication º 52 º 830 ³ 800 ³ 700 º 1,985 ³
|
||
³ FDIV º Division º 96 º 840 ³ 840 ³ 710 º 2,340 ³
|
||
ÃÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄ´
|
||
³ FSQRT º Square Root º 126 º 1,295 ³ 1,060 ³ 805 º 3,135 ³
|
||
³ FSIN º Sinus º 490 º 3,960 ³ 3,770 ³ 1,960 º --- ³
|
||
³ FCOS º Cosinus º 547 º 4,100 ³ 3,910 ³ 2,070 º --- ³
|
||
³ FPTAN º Tangens º 342 º 5,845 ³ 5,400 ³ 2,995 º 13,530 ³
|
||
³ FPATAN º Arcustangens º 448 º 8,895 ³ 7,965 ³ 3,750 º 13,875 ³
|
||
³ FYL2X º Logarithmus º 492 º 8,690 ³ 7,610 ³ 3,410 º 12,885 ³
|
||
³ F2XM1 º Power Function º 317 º 4,385 ³ 3,975 ³ 2,140 º 11,640 ³
|
||
ÀÄÄÄÄÄÄÄÄÄÄÐÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÐÄÄÄÄÄÄÄÐÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÐÄÄÄÄÄÄÄÄÙ
|
||
|
||
|
||
|
||
High Level Language Interface
|
||
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
|
||
|
||
Only the full version contains the High Level Language Interface (HLLI).
|
||
The HLLI utilizes the special code for coprocessor instructions, that are
|
||
used by several compilers from Microsoft and Borland.
|
||
|
||
Using this HLLI, FRANKE.387 can execute every instruction much faster.
|
||
Normally no application is interfered by the HLLI. If there are any
|
||
problems you should disable the HLLI. We suggest that you enable
|
||
FRANKE.387 with HLLI and a maximum precision of 53 bits. Using this
|
||
option, you have high performance and nearly no risc.
|
||
|
||
The following tables shows the use of HLLI. The tested program executes
|
||
every instruction 100,000 times using random numbers. It was written in
|
||
C and compiled with Microsoft C (Microsoft) and Turbo C (Borland).
|
||
The CPU was a 386DX, 25MHz. The execution time is shown in seconds.
|
||
|
||
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
|
||
º Test program comiled with Microsoft C: º
|
||
ÇÄÄÄÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
|
||
º C- º º Microsoft º FRANKE.387 º FRANKE.387+HLLI º
|
||
º Function º 387DX º Emulation º 64 Bit ³ 53 Bit º 64 Bit ³ 53 Bit º
|
||
ÌÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍ͹
|
||
º x := y º 0.27 º 0.27 º 0.27 ³ 0.27 º 0.27 ³ 0.27 º
|
||
º x < y º 0.71 º 8.63 º 9.56 ³ 9.51 º 8.35 ³ 8.35 º
|
||
ÇÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄĶ
|
||
º x + y º 0.66 º 8.63 º 9.07 ³ 9.07 º 8.30 ³ 8.24 º
|
||
º x * y º 0.71 º 10.49 º 9.67 ³ 9.62 º 8.85 ³ 8.79 º
|
||
º x / y º 0.93 º 12.47 º 9.73 ³ 9.73 º 8.90 ³ 8.90 º
|
||
ÇÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄĶ
|
||
º sqrt(x) º 2.75 º 27.58 º 29.56 ³ 28.74 º 26.32 ³ 25.44 º
|
||
º sin(x) º 7.14 º 129.67 º 92.86 ³ 90.11 º 84.62 ³ 82.42 º
|
||
º cos(x) º 7.14 º 131.32 º 94.51 ³ 91.21 º 86.26 ³ 82.97 º
|
||
º tan(x) º 6.04 º 103.30 º 76.92 ³ 75.82 º 70.88 ³ 69.23 º
|
||
º atan(x) º 4.95 º 107.69 º 52.20 ³ 52.20 º 47.25 ³ 46.70 º
|
||
º exp(x) º 7.14 º 130.77 º 94.00 ³ 92.31 º 83.52 ³ 81.87 º
|
||
º log(x) º 4.95 º 103.30 º 70.33 ³ 65.38 º 65.38 ³ 60.99 º
|
||
º pow(x,y) º 9.89 º 217.58 º 143.41 ³ 137.36 º 131.32 ³ 125.27 º
|
||
ÈÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍͼ
|
||
|
||
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
|
||
º Test program compiled with Borland's Turbo C: º
|
||
ÇÄÄÄÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ
|
||
º C- º º Borland º FRANKE.387 º FRANKE.387+HLLI º
|
||
º Function º 387DX º Emulation º 64 Bit ³ 53 Bit º 64 Bit ³ 53 Bit º
|
||
ÌÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍ͹
|
||
º x := y º 0.57 º 4.47 º 5.74 ³ 5.74 º 5.13 ³ 5.13 º
|
||
º x < y º 0.68 º 6.89 º 8.21 ³ 8.21 º 7.32 ³ 7.32 º
|
||
ÇÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄĶ
|
||
º x + y º 0.79 º 8.59 º 9.31 ³ 9.31 º 8.48 ³ 8.48 º
|
||
º x * y º 0.90 º 10.74 º 9.91 ³ 9.80 º 9.08 ³ 8.98 º
|
||
º x / y º 1.01 º 11.95 º 9.91 ³ 9.91 º 9.14 ³ 9.09 º
|
||
ÇÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄĶ
|
||
º sqrt(x) º 1.67 º 19.25 º 17.05 ³ 16.18 º 15.62 ³ 14.69 º
|
||
º sin(x) º 3.21 º 38.92 º 29.58 ³ 28.48 º 28.48 ³ 27.93 º
|
||
º cos(x) º 3.76 º 38.92 º 30.64 ³ 29.03 º 29.03 ³ 28.48 º
|
||
º tan(x) º 3.76 º 68.04 º 39.47 ³ 37.82 º 37.82 ³ 35.63 º
|
||
º atan(x) º 4.86 º 44.97 º 47.16 ³ 46.62 º 26.83 ³ 26.29 º
|
||
º exp(x) º 8.70 º 68.64 º 102.66 ³ 101.56 º 36.17 ³ 34.53 º
|
||
º log(x) º 4.86 º 60.90 º 61.45 ³ 57.05 º 51.01 ³ 46.62 º
|
||
º pow(x,y) º 15.05 º 149.67 º 190.88 ³ 184.84 º 107.31 ³ 101.32 º
|
||
ÈÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍͼ
|
||
|
||
|
||
|
||
Benchmark Tests
|
||
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
|
||
|
||
FRANKE.387 was tested with some popular benchmark programs. The table
|
||
shows the results that were reported using a 386DX with 25MHz:
|
||
|
||
ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÒÄÄÄÄÄÄÄÒÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
||
³ ³ º º no º FRANKE.387 º FRANKE.387 + HLLI ³
|
||
³ Benchmark ³ º 387DX º Copr.º 64 B.³ 53 B.³ 24 B.º 64 B.³ 53 B.³ 24 B.³
|
||
ÃÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄ×ÄÄÄÄÄÄÄ×ÄÄÄÄÄÄ×ÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄ×ÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄ´
|
||
³ ATPERF ³ MHz º 52.5 º ---- º 6.8 ³ 6.8 ³ 7.5 º 6.8 ³ 6.8 ³ 7.5 ³
|
||
³ 87TEST ³ MHz º 26.91 º ---- º 1.881³ 1.937³ 2.8 º 1.881³ 1.937³ 2.8 ³
|
||
³ BENCH 5.0 ³ s º 0.33 º ---- º 3.66 ³ 3.45 ³ 2.94 º 2.44 ³ 2.30 ³ 1.78 ³
|
||
³ TEST41V ³ s º 0.50 º 2.06 º 1.55 ³ 1.50 ³ 1.22 º 1.44 ³ 1.39 ³ 1.17 ³
|
||
ÀÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÐÄÄÄÄÄÄÄÐÄÄÄÄÄÄÐÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÐÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÙ
|
||
|
||
The benchmark programs used:
|
||
|
||
ATPERF: ATPERF -- PC Tech Journal AT Hardware Performance Test
|
||
Version 2.00, Copyright (c) 1986, 1987 Ziff Communications Co.
|
||
|
||
87TEST: 87TEST Version 2.01
|
||
Copyright (C) MicroWay, Inc. 1985-1989
|
||
|
||
BENCH 5.0: PC Magazine Labs Benchmark Series 5.0
|
||
|
||
TEST41V: SpeedTest Version 4.1, Copyright 1990 by Duane A. Allred
|
||
|
||
|
||
|
||
387 Instruction Trace Mode
|
||
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
|
||
|
||
Der 387 Instruction Trace Mode is available in the full version only. It
|
||
allows completely new methods to debug. The 387 Instruction Trace Mode
|
||
shows every executed coprocessor instruction at the screen using the
|
||
image:
|
||
|
||
CS:IP Code Instruc. Operand Address Contents
|
||
|
||
e.g.:
|
||
|
||
2AE1:4FD3 D9EC LDLG2
|
||
2AE1:4FD6 DEC9 MULP ST(1),ST
|
||
2AE1:4FD9 DF5E ISTP Word 30ED:03C4 = 0000
|
||
2AE1:4FE6 DB6E LD TByte 30ED:03BA = 3FFF8000000000000000
|
||
|
||
Once 387 Instruction Trace Mode is enabled, instructions are only
|
||
displayed if scroll lock is on. You can toggle output on or off if
|
||
you toggle scroll lock on and off.
|
||
|
||
To single step through coprocessor instructions, hold down the left
|
||
shift key and step with the Ctrl key. If the left shift key is pressed,
|
||
the 387 Instruction Trace Mode waits for the Ctrl key pressed, before
|
||
it resumes the running program.
|
||
|
||
The 387 Instruction Trace Mode gives you additional features to debug
|
||
an application that uses a coprocessor. The 387 Instruction Trace Mode
|
||
is completely transparent to the application.
|
||
|
||
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
||
³ To use the 387 Instruction Trace Mode you need the program 387TRACE.EXE, ³
|
||
³ that you will get together with the full version. This program becomes ³
|
||
³ resident at the first call, using about 2800 bytes. 387TRACE toggles ³
|
||
³ between 387 Instruction Trace Mode enabled and disabled at each call. ³
|
||
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
||
|
||
|
||
|
||
Compatibiliy
|
||
ÍÍÍÍÍÍÍÍÍÍÍÍ
|
||
|
||
FRANKE.387 is a high quality software product. It has efficient
|
||
algorithms that uses the full 32 bit power of 386 processors.
|
||
|
||
FRANKE.387 does exactly the same as a 387 coprocessor. The few minor
|
||
differences to the 387 coprocessor are described here:
|
||
|
||
1. Precision
|
||
ÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
The 387 coprocessor has always an internal precision of 67 bits. For
|
||
less precision only the results are rounded. Instead of that,
|
||
FRANKE.387 calculates with a maximum precision of 64 bits. At 64 bit
|
||
precision some rounding errors may occur. This rounding errors normally
|
||
have no effects. With the 24 and 53 bit precision FRANKE.387 gives always
|
||
better results.
|
||
|
||
2. Rounding
|
||
ÄÄÄÄÄÄÄÄÄÄÄ
|
||
The only rounding by FRANKE.387 is done with the instruction FRNDINT or
|
||
before storing a number from coprocessor stack. The 387 coprocessor
|
||
rounds after each calculation. This different rounding makes FRANKE.387
|
||
faster. No side effects by this rounding method were detected.
|
||
|
||
3. F2XM1, FYL2XP1
|
||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
The 387 coprocessor restricts the arguments for the F2XM1 and FYL2XP1
|
||
instruction only. FRANKE.387 does not have this restrictions. Every
|
||
instruction may be called with any mathematically allowed argument.
|
||
|
||
4. F2X
|
||
ÄÄÄÄÄÄ
|
||
FRANKE.387 has the additional instruction F2X (code D9 EF). This
|
||
instruction does the same as F2XM1, FLD1, FADDP but without any loss of
|
||
precision.
|
||
|
||
5. FPTAN
|
||
ÄÄÄÄÄÄÄÄÄ
|
||
FRANKE.387 calculates for tan(ã/2) the result "infinity", which is the
|
||
precise result.
|
||
|
||
6. Exceptions
|
||
ÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
FRANKE.387 is a software emulation. It cannot cause any hardware
|
||
interrupt. If any exception occurs, FRANKE.387 will directly execute an
|
||
INT 2 instruction. This Interrupt cannot be masked. This is exactly like
|
||
the specification of the 387 coprozessor. INT 2 is called for compati-
|
||
bility.
|
||
|
||
|
||
|