浜様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様融 V 2 4 - D R I V E R D L L - I n t e r f a c e 麺様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様郵 Copyright (C) 1993 by Vision Systems GmbH, Norderstedt, Germany All rights reserved 麺様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様郵 Treiber-Routinen zur Ansteuerung von COM-Schnittstellen. Es werden max. 8 Com-Ports bedient, wobei Interrupt-Sharing und FIFOs untersttzt werden. Die Routinen arbeiten - mit einigen Einschrnkungen - auch im Polling-Mode. Als Handshake-Mglichkeiten (nur im Interrupt-Modus) stehen zur Verfgung: Output: CTS und/oder XOn/XOff Input : RTS und/oder XOn/XOff Um die Verknpfung von Code und Daten bersichtlich zu gestalten, wurde eine Object-orientierte Schreibweise gewhlt. Um jedoch das Benutzer- Interface so allgemein wie mglich zu gestalten und die Kapselung als DLL zu ermglichen, gibt es eine Schicht von Nicht-Object-orientierten Einsprngen. Die Interrupt-Routinen wurden in Assembler Inline geschrieben; es gibt keine Call-Backs zum Pascal-Teil. Da ein Rechner der AT-Klasse mit '286 oder hher vorausgesetzt wird, werden '286er Befehle benutzt und das Vorhandensein von 2 kaskadierten Interrupt- Controllern vorausgesetzt. Das Modul V24DRV.INC ist selbst nicht kompilier-fhig sondern mu von einem Pascal-Programm, einer Pascal-Unit oder einer Protected-Mode Library included werden. Dabei sind folgende Coompiler Defines zu setzen: DLL : zur Erzeugung einer Protected Mode DLL USEDLL : zur Erzeugung einer Interface Unit, die die DLL aufruft TSR : zur Erzeugung eines TSRs USETSR : zur Erzeugung einer Interface Unit, die das TSR aufruft 麺様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様郵 19.Oct.93 WW: 1st release. Author: Winfried Wolf 19.Nov.93 WW: Interrupt Sharing 24.Mar.94 WK: Auslagerung der DIRECT-Routinen nach V24DRV.SRC 14.Apr.94 WK: Umsetzung DLL-Interface (EXPORTs) nach C-Header 藩様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様夕 Set_IntVect TSR-Interface initialisieren (Software-Interrupt) Init_V24 Initialisieren mit Nummer, Adresse, IRQ und Buffersize Exit_V24 De-Initialisieren IntLog Interruptstatus ermitteln Set_BaudRate bertragungsrate setzen Set_BaudDivisor - " - -"- durch Teiler-Programmierung SendBuffer Anzahl Zeichen senden RecvBuffer Anzahl Zeichen empfangen Set_LineParam bertragungsparameter setzen ClearInpBuffer Empfangs- und ClearOutBuffer Sendebuffer lschen Get_InpUsed Anzahl empfangener Zeichen Get_OutFree Platz im Sendebuffer Get_MSR Modemstatus-Register abfragen Get_LSR Linestatus-Register abfragen Get_MCR Modemcontrol-Register abfragen Set_Handshake Handshake-Modus definieren Set_MCR Modemcontrol-Register setzen Uart_Class Baustein-Typ ermitteln (s. Pascal-Source) All_Sent Alle Zeichen gesendet ?