Co dela Borland C s koprocesorem



Inicializace

Vlastni inicializace je popsana v souboru : crtl/EMU/fpinit.asm
Je pro nas dulezita rutina:

    int2handler proc far
Coz je vlastne obsluha preruseni NMI (02h), ktere osetruje chybu koprocesoru. Nastaveni vektoru preruseni se take provadi v tomto souboru. O emulaci koprocesoru se nemusime starat, protoze predpokladame alespon 80387. Pouziti toho souboru by bylo mozne, kdyby se zmenily slyzby nastaveni preruseni z dosovske varianty na tuoxovskou variantu.

Tohleto nas samozrejme nezajima, protoze si volani preruseni koprocesoru zakazeme.


Osetreni chyby uzivatelem

Pokud chce uzivatel osetrit chybu koprocesoru, tak musi provest implementaci teto funkce:
    int matherr (struct exception *a)
V pripade, ze se nam podari osetrit chybu, tak vratime 1, jinak vratime 0. Tohle to se vola jak u preruseni, tak i pri matematickych funkci(cos,tan,sqrt). Pro nase potreby nam zcela postacuje, kdyz bude metoda vypadat takto:
    int matherr (struct exception *a) {
      return 1;
    }
V pripade, ze neprovedeme zaimplementovani,tak se nam na stderr vypisuje chybova hlaska, navrat=0.

Poznamky

Spravne funkcnost koprocesoru by se mela jeste testnout v ostre distribuci tuoxu, protoze je mozne, ze Borlandi tam provadeji jeste jine zbesilosti.