Jezis
Ak chces pracovat priamo s portom na lowlevel urovni, tak si najprv musis zohnat pokec registrov ktore tam su a ako sa k nim pristupuje a precitat si to cele, a aj ako sa s tym kusom hardwaru pracuje. Napr. tu http://www.captain.at/serial-port-registers.php
alebo googlom: serial port registers
760 je standardna base address pre COM2 (hexadecimalne 2F8).
Standardny controller serioveho portu ma 8 zakladnych registrov, pristupuje sa k nim priamo cez I/O porty, t.j. u COM2 ak je na 2F8h na porty decimalne: 760 az 767, popis mas napr. na tej stranke co som ti dal link.
Dolezity je napr. status register (base address +5, t.j. pre COM2 je to port 765), ktorym ti radic oznamuje ci nejaky bajt prijal (az ked nejaky bajt prijal tak mozes precitat prijaty byte z portu 760), a hlavne aj pred vysielanim kazdeho bytu musis testovat bit 5 alebo 6, inac ti to nic neposle
P.S. a musis tie data stihat vyberat vtedy ked prichadzaju, ptz. controller serioveho port ti tie bajty nebude drzat v uschove. Dnesne controllery maju sice FIFO ale len 16byte a zvycajne je defaultne vypnute v DOSe (tusim).
Atd. na to nestaci jeden prispevok aby som to cele tu popisoval.
Dalsia vec je prerusenie od toho portu (tiez sa nastavuje v jednom z registrov), ak by OS povolil prerusenia tak ti bude OS kradnut znaky (DOS ale tusim prerusenia COM portov nepovoloval takze to by malo byt ok)
Aky si mal vlastne problem s tym fopen("COM2:baud,...", ...)? Skusal si to co som pisal (s tym UNBUFFERED parametrom)?