| CAPI-FOSSIL-Treiber |
Von Anfang an versuchten findige Programmierer ein großes Problem mit ISDN-Karten zu lösen: Es gab viele Programme für Modems (Terminalprogramme, Mailboxprogramme usw.), die zusammen mit einer ISDN-Karte nicht mehr verwendet werden konnten. Die Idee, die die Programmierer von cFos (Chris Lüders und Martin Winkler) hatten, war folgende:
Viele Programme für Modems können so eingestellt werden, dass sie nicht direkt über die serielle Schnittstelle auf das Modem zugreifen, sondern über eine Funktion des Betriebssystems, den BIOS Interrupt 14h. Ruft das Modemprogramm eine solche Funktion auf, wird eine Routine des BIOS ausgeführt, die dann auf die serielle Schnittstelle zugreift. Nun gibt es aber die Möglichkeit für ein anderes Programm (cFos), diesen Aufruf so umzubiegen, dass nicht mehr die BIOS-Routine aufgerufen wird, sondern eine eigene Funktion.
Diesen Mechanismus nutzt ein CAPI-Fossil-Treiber, um die Daten vom Modem entgegenzunehmen und so umzusetzen, dass Befehle für die CAPI daraus werden. Umgekehrt gilt das natürlich auch. Wenn der Treiber Rückmeldungen vom CAPI bekommt, muss er dem Modemprogramm gegenüber so tun, als wäre er ein Modem. Z.B. liefert der Treiber beim Verbindungsaufbau ein CONNECT an das Modemprogramm zurück, wie es auch ein Modem tun würde. Weil sich der Treiber so verhält, nennt man den Teil des Treibers, der diese Aufgaben übernimmt auch Modememulator. Um die ISDN-spezifischen Einstellungen an der Karte vornehmen u können (z.B. das ISDN-Protokoll), muss dem CAPI-FOSSIL-Treiber eine Beschreibung beiliegen, in der steht, mit welchem AT-Befehl diese Einstellungen vorgenommen werden können. Bei cFos ist das z.B. die Datei MODEM.DOC.
Diese Idee wurde bereits vorher durch eine andere Art von Treibern, den FOSSIL-Treibern ausgenutzt. Da diese FOSSIL-Schnittstelle von der Performance wesentlich besser ist als die BIOS-Funktionen, wird diese Schnittstelle ebenfalls von vielen Modemprogrammen unterstützt. Um diese schnellere Form des Datenaustausches zu nutzen, unterstützt auch cFos diese Schnittstelle. Daher auch der Name CAPI-FOSSIL-Treiber, da sich der Treiber "nach oben" wie ein FOSSIL-Treiber benimmt und "nach unten" aber nicht die serielle Schnittstelle anspricht sondern die CAPI versorgt.
Die Schichtung der Treiber bei dieser
Konfiguration sieht so aus:
Mit Hilfe von CAPI-FOSSIL-Treibern können also DOS- und Windows-Programme für Modems verwendet werden, bei denen der Zugriff auf die serielle Schnittstelle auf BIOS int 14h oder FOSSIL eingestellt werden kann. Neben cFos gibt es auch noch andere dieser Treiber, die zum Teil auch vom Hardwarehersteller mit der ISDN-Karte ausgeliefert werden.
Diese Konfiguration funktioniert z.B. auch mit DOS-Terminalprogrammen unter OS/2. Dort wird der CAPI-FOSSIL-Treiber beim Starten der DOS-Box geladen. Dabei spielt es zuerst mal keine Rolle, ob der CAPI-Treiber ebenfalls beim Starten der DOS-Box geladen wird, oder ob ein echter OS/2-Treiber verwendet wird.