home *** CD-ROM | disk | FTP | other *** search
- ╔════════════════════════════════╗
- ║ ║
- ║ FRANKE.387 ║
- ║ ║
- ║ Koprozessor-Emulation für ║
- ║ 387DX und 387SX ║
- ║ ║
- ║ Version 2.4 ║
- ║ ║
- ║ (c) Copyright 1989, 1990 by ║
- ║ Ingenieurbüro FRANKE, ║
- ║ All rights reserved. ║
- ║ ║
- ╚════════════════════════════════╝
-
- Überblick
- ═════════
-
- FRANKE.387 ist eine Software-Emulation der mathematischen Koprozessoren
- 387DX und 387SX von Intel. FRANKE.387 wurde für ATs mit 386DX oder 386SX
- Prozessor entwickelt. Als Betriebssystem wird MS-DOS, oder ein dazu
- kompatibles, vorausgesetzt.
-
- Durch FRANKE.387 wird der gesamte Befehlsumfang der 387-Koprozessoren
- abgedeckt. Neben sämtlichen Befehlen stehen auch sämtliche 16 und 32
- Bit Adressierungs-Modi zur Verfügung. Dadurch besteht für Anwendungs-
- Programme kein Unterschied zum echten Koprozessor.
-
- Natürlich kann FRANKE.387 nicht die physikalische Rechenleistung erhöhen.
- FRANKE.387 arbeitet zwar langsamer als ein Koprozessor, macht aber davon
- unabhängig. Viele Standard-Programme, die einen Koprozessor automatisch
- erkennen, arbeiten mit FRANKE.387 bis Faktor 2,25 schneller.
-
-
- Shareware
- ═════════
-
- Mit der Version 2.4 wurde FRANKE.387 auch als Shareware-Version in Umlauf
- gebracht. Auf einige Leistungs-Merkmale wurde bei dieser Shareware-Version
- verzichtet.
-
- Die nicht registrierte Shareware-Version darf beliebig kopiert und unent-
- geltlich weitergegeben werden. Jeder hat das Recht, diese nicht registrierte
- Version bis zu 30 Tage kostenlos zu testen.
-
- Alle weiteren Rechte, wie z.B. Verkauf, Änderung, Weitergabe einer
- registrierten Version oder auch Nutzung der nicht registrierten Version
- länger als 30 Tage, sind ausdrücklich untersagt. Ausnahmen hiervon
- bedürfen einer vorherigen, schriftlichen Genehmigung durch das Ingenieur-
- büro Franke.
-
-
- Registrieren
- ════════════
-
- FRANKE.387 darf nur von registrierten Anwendern länger als 30 Tage
- genutzt werden. Die registrierten Versionen benötigen keinen Benutzer-
- Eingriff beim Boot-Vorgang.
-
- ┌───────────────────────────────────────────────────────┬──────────────┐
- │ Version │ Preis zzgl. │
- │ │ Kosten │
- ├───────────────────────────────────────────────────────┼──────────────┤
- │ Shareware-Version, nur eine Genauigkeits-Stufe │ DM 60,00 │
- │ │ │
- │ Komplett-Version, 3 Genauigkeits-Stufen, High Level │ │
- │ Language Interface, 387 Instruction Trace Modus │ DM 95,00 │
- │ │ │
- │ Upgrade von Shareware-Version auf Komplett-Version │ DM 40,00 │
- └───────────────────────────────────────────────────────┴──────────────┘
-
- Zum Registrieren werden folgende Angaben benötigt:
-
- 1. Name
- 2. genaue Anschrift
- 3. gewünschte Version (Shareware/Komplett/Upgrade)
-
- diese Angaben senden Sie an:
-
- ┌─────────────────────────────────────────────────────────────┐
- │ Brief/Fax: Überweisung: │
- │ │
- │ Ingenieurbüro FRANKE Ingenieurbüro FRANKE │
- │ Rennweg 61 Konto 10039999 │
- │ D-8500 Nürnberg 20 Schmidt Bank, Nürnberg │
- │ Fax: 49 911 535421 BLZ 760 300 70 │
- └─────────────────────────────────────────────────────────────┘
-
- Die Lieferung erfolgt gegen Nachnahme zzgl. Kosten, bzw. ohne zusätzliche
- Kosten bei Überweisung.
-
-
- Installation
- ════════════
-
- Die Installation ist sehr einfach:
-
- 1. Die Dateien FRANKE.387 und 387.EXE auf die Festplatte bzw. Boot-Diskette
- kopieren.
-
- 2. Die Datei CONFIG.SYS erstellen, falls noch nicht geschehen.
-
- 3. Folgende Zeile in CONFIG.SYS eintragen:
-
- DEVICE = FRANKE.387
-
- Ggf. kann dem Namen FRANKE.387 eine Pfad-Angabe vorangestellt werden,
- also z.B. DEVICE = c:\tools\FRANKE.387
-
- Hinter dem Namen FRANKE.387 kann der Schalter ON oder OFF stehen.
- Also z.B. DEVICE = FRANKE.387 ON. Dieser Schalter gibt an, ob FRANKE.387
- anfangs ein- oder ausgeschaltet sein soll. Fehlt dieser Schaltet, so
- wird FRANKE.387 automatisch eingeschaltet, wenn kein Koprozessor gefunden
- wurde, und automatisch ausgeschaltet, wenn bereits ein Koprozessor
- installiert ist.
-
- 4. Rechner neu booten.
-
- Durch den Eintrag in CONFIG.SYS wird FRANKE.387 bei jedem Boot-Vorgang
- geladen. FRANKE.387 meldet sich mit einer Copyright-Meldung und teilt
- seinen aktuellen Zustand mit.
-
- ┌────────────────────────────────────────────────────────────────────┐
- │ Die nicht registrierte Shareware-Version enthält eine erweiterte │
- │ Copyright-Meldung, außerdem ertönt ein akustisches Signal. Der │
- │ Boot-Vorgang wird dann solange unterbrochen, bis Sie die richtige │
- │ Taste gedrückt haben. Diese Taste erscheint in der letzten Zeile │
- │ der Meldung. - Es müssen Großbuchstaben eingegeben werden! │
- └────────────────────────────────────────────────────────────────────┘
-
-
-
- Bedienen von FRANKE.387
- ═══════════════════════
-
- FRANKE.387 benötigt normalerweise keinerlei Bedienung durch den Anwender.
- Sämtliche Aktionen werden durch die Anwendungs-Programme eingeleitet, wenn
- sie den Koprozessor ansprechen. FRANKE.387 arbeitet also vollautomatisch.
- Für die Anwendungs-Programme besteht kein Unterschied zum echten Koprozessor.
-
- Natürtlich arbeitet FRANKE.387 nur im eingeschalteten Zustand. Wie bei der
- Installation erklärt, kann dieser Zustand durch die Schalter ON bzw. OFF
- fest eingestellt werden. Normalerweise ist FRANKE.387 immer dann einge-
- schaltet, wenn kein Koprozessor vorhanden ist.
-
- Zum nachträglichen Ein- bzw. Ausschalten von FRANKE.387 wird das Programm
- 387.EXE mitgeliefert. Dieses Programm kann in irgendein Verzeichnis der
- Festplatte oder auch auf eine Diskette kopiert und von dort aus gestartet
- werden.
-
- Folgende Aufruf-Arten von 387.EXE sind möglich. Einige dieser Funktionen
- werden nur durch die Komplett-Version unterstützt.
-
- ┌─────────────────┬───────────────────────────────────────────────────────┐
- │ Aufruf │ Funktion │
- ├─────────────────┼───────────────────────────────────────────────────────┤
- │ 387 │ FRANKE.387 wird in den Standard-Zustand gesetzt. │
- │ │ D.h. FRANKE.387 wird eingeschaltet, wenn kein │
- │ │ Koprozessor installiert ist, bzw. ausgeschaltet, │
- │ │ wenn ein Koprozessor gefunden wurde. │
- ├─────────────────┼───────────────────────────────────────────────────────┤
- │ 387 ON │ FRANKE.387 wird mit voller Genauigkeit eingeschaltet. │
- ├─────────────────┼───────────────────────────────────────────────────────┤
- │ 387 OFF │ FRANKE.387 wird ausgeschaltet. Das kann z.B. notwendig│
- │ │ werden, wenn bei eingeschaltetem FRANKE.387 kein │
- │ │ Warm-Start (Strg+Alt+Entf) möglich ist. Der Tastatur- │
- │ │ Treiber KEYBOARD.386 erledigt das selbständig. │
- ╞═════════════════╧═══════════════════════════════════════════════════════╡
- │ Die Folgenden Funktionen werden nur in der Komplett-Version unterstützt.│
- ╞═════════════════╤═══════════════════════════════════════════════════════╡
- │ 387 53 │ FRANKE.387 wird mit maximal 53 Bit Genauigkeit │
- │ │ eingeschaltet. Das entspricht den Daten-Typen double, │
- │ │ long real oder doppelter Genauigkeit. Das ist für fast│
- │ │ alle Anwendungen die höchste unterstützte Genauigkeit │
- │ │ und in diesen Fällen ausreichend. FRANKE.387 arbeitet │
- │ │ dadurch deutlich schneller. │
- ├─────────────────┼───────────────────────────────────────────────────────┤
- │ 387 24 │ FRANKE.387 wird mit maximal 24 Bit Genauigkeit │
- │ │ eingeschaltet. Das entspricht den Daten-Typen float, │
- │ │ real oder einfacher Genauigkeit. Das ist in vielen │
- │ │ Fällen die tatsächlich benötigte Genauigkeit. │
- │ │ FRANKE.387 arbeitet dadurch deutlich schneller. │
- ├─────────────────┼───────────────────────────────────────────────────────┤
- │ 387 ON I │ Wie 387 ON, zusätzlich wird das High Level Language │
- │ │ Interface aktiviert. (Siehe High Level Language │
- │ │ Interface.) │
- ├─────────────────┼───────────────────────────────────────────────────────┤
- │ 387 53 I │ Wie 387 53, zusätzlich wird das High Level Language │
- │ │ Interface aktiviert. Das ist die empfohlene Standard- │
- │ │ Einstellung für die Komplett-Version. (Siehe High │
- │ │ Level Language Interface.) │
- ├─────────────────┼───────────────────────────────────────────────────────┤
- │ 387 24 I │ Wie 387 24, zusätzlich wird das High Level Language │
- │ │ Interface aktiviert. In dieser Einstellung erreicht │
- │ │ FRANKE.387 die höchste Rechenleistung. (Siehe High │
- │ │ Level Language Interface.) │
- └─────────────────┴───────────────────────────────────────────────────────┘
-
-
-
- Rechengeschwindigkeit
- ═════════════════════
-
- Wie jeder 387-Koprozessor kann auch FRANKE.387 in den drei Genauigkeits-
- stufen mit 64, 53 bzw. 24 Bit rechnen. In der Komplett-Version kann der
- Anwender die maximale Genauigkeit festlegen, um höhere Rechenleistung zu
- erzielen.
-
- Die folgende Tabelle gibt für einige Befehle die ungefähren Taktzyklen an.
- Die Angaben gelten für 386DX-Prozessoren ohne Wait States, bei 386SX oder
- Wait States sind alle Werte geringfügig höher anzusetzen.
-
- Unter EMUL87 sind die Zeiten für den Public Domain 80287-Emulator angegeben.
-
- ┌──────────╥──────────────────╥───────╥──────────────────────────╥────────┐
- │ ║ ║ ║ FRANKE.387 ║ │
- │ Funktion ║ Beschreibung ║ 387DX ║ 64 Bit │ 53 Bit │ 24 Bit ║ EMUL87 │
- ╞══════════╬══════════════════╬═══════╬════════╪════════╪════════╬════════╡
- │ FNOP ║ keine Operation ║ 25 ║ 410 │ 410 │ 410 ║ 1.075 │
- │ FLD ║ TByte-Zahl laden ║ 38 ║ 650 │ 650 │ 650 ║ 1.470 │
- │ FSTP ║ TByte speichern ║ 55 ║ 745 │ 745 │ 745 ║ 1.495 │
- ├──────────╫──────────────────╫───────╫────────┼────────┼────────╫────────┤
- │ FADD ║ Addition ║ 34 ║ 700 │ 700 │ 680 ║ 1.460 │
- │ FSUB ║ Subtraktion ║ 34 ║ 770 │ 770 │ 750 ║ 1.565 │
- │ FMUL ║ Multiplikation ║ 52 ║ 830 │ 800 │ 700 ║ 1.985 │
- │ FDIV ║ Division ║ 96 ║ 840 │ 840 │ 710 ║ 2.340 │
- ├──────────╫──────────────────╫───────╫────────┼────────┼────────╫────────┤
- │ FSQRT ║ Quadratwurzel ║ 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 ║ Potenzfunktion ║ 317 ║ 4.385 │ 3.975 │ 2.140 ║ 11.640 │
- └──────────╨──────────────────╨───────╨────────┴────────┴────────╨────────┘
-
-
-
- High Level Language Interface
- ═════════════════════════════
-
- Das High Level Language Interface (HLLI) steht nur in der Komplett-Version
- zur Verfügung. Das HLLI nutzt die spezielle Kodierung der Koprozessor-
- Befehle, wie sie durch etliche Hochsprachen-Compiler z.B. von Microsoft
- oder Borland erzeugt werden.
-
- Durch das HLLI kann FRANKE.387 alle Anweisungen deutlich schneller aus-
- führen als ohne HLLI. In der Regel stört das HLLI keine Anwendungen. Bei
- Problemen sollte es abgeschaltet werden. Es wird empfohlen, FRANKE.387 auf
- maximal 53 Bit Genauigkeit mit High Level Language Interface einzustellen.
- Durch diese Einstellung entstehen gewöhnlich keine Nachteile bei sehr
- hoher Rechenleistung.
-
- Die folgende Tabelle zeigt den Nutzen des HLLI anhand eines Testprogramms.
- Das Testprogramm führt jede Anweisung 100.000 mal mit gleichmäßig verteilten
- Zufallszahlen aus. Es wurde in C geschrieben, und mit Microsoft C
- (Firma Microsoft) bzw. Turbo C (Firma Borland) übersetzt.
- Als Testrechner diente ein 386DX, 25MHz. Alle Zeitangabe sind in Sekunden.
-
- ╔══════════════════════════════════════════════════════════════════╗
- ║ Testprogramm mit Microsoft C übersetzt: ║
- ╟──────────╥───────╥───────────╥─────────────────╥─────────────────╢
- ║ C- ║ ║ Microsoft ║ FRANKE.387 ║ FRANKE.387+HLLI ║
- ║ Funktion ║ 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 ║
- ╚══════════╩═══════╩═══════════╩════════╧════════╩════════╧════════╝
-
- ╔══════════════════════════════════════════════════════════════════╗
- ║ Testprogramm mit Borland Turbo C übersetzt: ║
- ╟──────────╥───────╥───────────╥─────────────────╥─────────────────╢
- ║ C- ║ ║ Borland ║ FRANKE.387 ║ FRANKE.387+HLLI ║
- ║ Funktion ║ 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 wurde mit ein paar bekannten Benchmark-Programmen getestet.
- Die Tabelle enthält die entsprechenden Ergebnisse, die auf einem 386DX
- mit 25MHz erziehlt wurden:
-
- ┌───────────┬─────╥───────╥──────╥────────────────────╥────────────────────┐
- │ │ ║ ║ ohne ║ FRANKE.387 ║ FRANKE.387 + HLLI │
- │ Benchmark │ Maß ║ 387DX ║ Kopr.║ 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 │
- └───────────┴─────╨───────╨──────╨──────┴──────┴──────╨──────┴──────┴──────┘
-
- Die verwendeten Benchmark-Programme:
-
- 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 Modus
- ═══════════════════════════
-
- Der 387 Instruction Trace Modus ist nur mit der Komplett-Version verfüg-
- bar. Er eröffnet völlig neue Methoden zum Debuggen. Durch den 387 Instruction
- Trace Modus wird jeder ausgeführte Koprozessor-Befehl in folgendem Format
- am Bildschirm angezeigt:
-
- CS:IP Code Befehl Operand Adresse Inhalt
-
- also z.B.:
-
- 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
-
- Die Anzeige am Bildschirm erfolgt - natürlich nur bei eingeschaltetem
- 387 Instruction Trace Modus - solange Scroll Lock eingeschaltet ist.
- Bei ausgeschaltetem Scroll Lock erfolgt keine Anzeige am Bildschrim,
- auch wenn der 387 Instruction Trace Modus eingeschaltet ist.
-
- Mithilfe der linken Shift-Taste und der Strg-Taste (bzw. Ctrl-Taste)
- können die Koprozessor-Befehle auch im Einzelschritt ausgeführt werden.
- Dazu müssen der 387 Instruction Trace Modus und Scroll Lock einge-
- schaltet sein. Wenn die linke Shift-Taste gedrückt ist, wartet der
- 387 Instruction Trace Modus nach dem Anzeigen eines Koprozessor-Befehls
- so lange, bis eine Strg-Taste (Ctrl-Taste) gedrückt wird. Solange also
- die linke Shift-Taste gedrückt bleibt, kann mit der Strg-Taste jeder
- Koprozessor-Befehl einzeln gesteppt werden.
-
- Der 387 Instruction Trace Modus stellt eine nützliche Alternative zu
- den herkömmlichen Debuggern dar. Zum einen ist der 387 Instruction Trace
- Modus für Anwendungs-Programme völlig transparent, zum anderen werden
- ausschließlich Koprozessor-Befehle angezeigt. Dadurch können umfangreiche
- mathematische Anwendungen problemlos getestet werden.
-
- ┌──────────────────────────────────────────────────────────────────────────┐
- │ Für den 387 Instruction Trace Modus wird das Programm 387TRACE.EXE │
- │ benötigt, das der Komplett-Version beiliegt. Dieses Programm installiert │
- │ sich beim ersten Aufruf resident und benötigt ca. 2800 Bytes. 387TRACE │
- │ schaltet bei jedem Aufruf zyklisch den 387 Instruction Trace Modus ein │
- │ bzw. aus. │
- └──────────────────────────────────────────────────────────────────────────┘
-
-
-
- Kompatibilität
- ══════════════
-
- FRANKE.387 ist ein hochwertiges Software-Produkt, das mit effizienten
- Algorithmen die Möglichkeiten der 32 Bit 386-Prozessoren ausschöpft.
-
- Bis auf wenige Ausnahmen verhält sich FRANKE.387 total identisch zum
- 387-Koprozessor. In diesem Abschnitt sind diese wenigen Ausnahmen
- aufgeführt:
-
- 1. Rechengenauigkeit
- ────────────────────
- Der 387-Koprozessor rechnet intern stets mit 67 Bit Genauigkeit. Nur
- beim Runden werden die Zahlen der gewünschten Genauigkeit entsprechend
- angepaßt. FRANKE.387 rechnet dagegen intern nur mit 64 Bit. Dadurch
- können geringe Rundungsfehler bei 64 Bit Genauigkeit auftreten, die in
- der Praxis allerdings keine Bedeutung haben. Die Genauigkeiten
- von 24 bzw. 53 Bit werden durch FRANKE.387 stets übertroffen.
-
- 2. Runden
- ─────────
- FRANKE.387 rundet nur durch den Befehl FRNDINT bzw. beim Speichern von
- Koprozessor-Registern, während der 387-Koprozessor nach jeder Berechnung
- rundet. Dadurch wird die Rechenleistung von FRANKE.387 verbessert.
- Nachteile dadurch konnten bis jetzt nicht festgestellt werden.
-
- 3. F2XM1, FYL2XP1
- ─────────────────
- Beim 387-Koprozessor sind lediglich die Befehle F2XM1 und FYL2XP1 im
- Argument beschränkt. Diese Beschränkung trifft auf FRANKE.387 nicht zu,
- sodaß hier alle Befehle mit allen mathematisch zulässigen Argumenten
- möglich sind.
-
- 4. F2X
- ──────
- FRANKE.387 kennt zusätzlich den Befehl F2X (Kodierung D9 EF). Dieser Befehl
- entspricht den Befehlen F2XM1, FLD1, FADDP allerdings ohne Verlust an
- Genauigkeit.
-
- 5. FPTAN
- ─────────
- Im Gegensatz zum 387-Koprozessor errechnet FRANKE.387 für den Tangens von
- π/2 etwas genauer den Wert "unendlich".
-
- 6. Exceptions
- ─────────────
- Da FRANKE.387 eine Software-Emulation ist, wird bei Exceptions kein
- Hardware-Interrupt erzeugt. Bei einer Exception erzeugt FRANKE.387 stets
- einen INT 2. Dieser Interrupt kann nicht maskiert werden. Das entspricht
- auch den Spezifikationen des 387-Koprozessors.
-
-