Здравствуйте! Ситуация следующая. Работаю под DOS. Есть UPS, который работает по протоколу Megatec (http://networkupstools.org/protocols/megatec.html). Подключен он через порт COM1. Использую для "общения" прерывание int 14H. Вот кусочек кода: Код (Text): xor DX, DX xor AH, AH ;èíèöèàëèçèðóåì ïîðò mov AL, 10100011B ;BAUD RATE..................... : 2400 bps ;DATA LENGTH................... : 8 bits ;STOP BIT...................... : 1 bit ;PARITY........................ : NONE int 14H ;UPS äîëæåí îòîçâàòüñÿ â ðåãèñòð AX: ;AH = ñòàòóñ ëèíèè AL = ñòàòóñ ìîäåìà ;--------------------------------------------------- ;bit 7: timeout bit 7: received line detect signal ;bit 6: trans shift reg empty bit 6: ring indicator ;bit 5: trans holding reg empty bit 5: data set ready ;bit 4: break detect bit 4: clear to send ;bit 3: framing error bit 3: delta recv line signal detect ;bit 2: parity error bit 2: trailing edge ring detector ;bit 1: overrun error bit 1: delta data set ready ;bit 0: data ready status bit 0: delta clear to send mov AH, 01H mov AL, "T" int 14H test AH, 10000000B jnz tst_1 Всё делаю согласно Megatec... При инициализации прерывание возвращает мне в AX 6000H (т.е. установленные биты 5 и 6 в статусе линии, AH). После этого что бы я не пытался сделать - получить или послать символ - мне в ответ уведомление об ошибке (установленный бит 7 AH при посылке байта и ненулевой AH при получении). И в чём проблема - не пойму (( При запросе статуса порта мне в ответ опять приходит 6000H в регистре AX. Пытался исследовать ситуацию программкой Advanced Serial Port Monitor. Всё работает замечательно, упс реагирует согласно протоколу: Прошу помощи... спасибо заранее!
А может, ну его это int 14h? Какое-то оно мутное, никогда в моей практике нормально не работало... Легче чисто на портах...
мне на другом форуме посоветовали действительно забить на int 14H, т.к. Так что буду работать с портами, думаю, всё выйдет (никак пока не могу время выкроить).
Мысль интересная, я и не знал. Тогда получается это прерывание бесполезно, в таком случае и в самом деле надо на него забить. А жаль.