Hallo !
Von direkten Zugriffen auf Ports und Interrupts kann ich nur abraten. In jedem Multitaskingsystem kriegt man da leicht Zeitprobleme. Spaetestens ab Win2k oder NT ist mit _outp &Co sowieso Schluss, da der Zugriff auf Hardware generell nur von Treibern aus erfolgt. Bei Win9x klappt das noch, mit dem Manko, dass man je nach Rechnerauslastung Werte verliert, weil der betreffende Task eventuell gerade nicht dran ist, wenn ein Wert auf die Schnittstelle kommt. Das sowas bei Linux gehen soll ist mir unverstaendlich.
Unter Win9x, Win2K und NT kannst Du ueber die Systemtreiber sauber bis 115k auf der seriellen Schnittstelle uebertragen:
Du oeffnest die Schnittstelle mit CreateFile (Dateiname= COM1 oder COM2 …)
Dann kannst Du mit SetCommState, SetCommMask und SetCommTimeouts die Eigenschaften der Com einstellen.
Mit ReadFile und WriteFile kann man dann die Daten auf die Schnittstelle schreiben oder davon lesen.
Ist also alles sehr einfach und ohne Wissen ueber die Hardware zu machen.
Unter Linux (und wahrscheinlich auch anderen Unixen) ist es fast noch einfacher.
Hier sind die Schnittstellen einfache Blockdevices (glaube ttyS0 usw.)
Die machst du mit open auf und kannst dann mit irgendeiner Funktion die Eigenschaften einstellen.
Dann wird mit read und write gelesen und geschrieben. Auch hier sollte der Zugriff dann zeitunkritisch sein, da ueber die Kernel-Treiber gearbeitet wird.
Fuer beide Systeme habe ich jeweils ein kurzes Beispiel parat.
Tschuess !
Andreas