люди добрые , подскажите как работать с сом портом под досом С ПРЕРЫВАНИЯМИ?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
igor_m
30 сентября 2005 г. 10:27
Составить ответ
|||
Конференция
|||
Архив
Ответы
В Real-моде DOS проблем никаких! Знаем адрес своего обработчика, меняем вектор INT 14H на этот адрес и в регистре управления COM разрешаем работу по прерываниям (для COM1 это адрес 3F9H, биты 0-2 в единицу).
—
Mk-51
(30.09.2005 12:08
212.46.251.1
,
пустое
)
Для надежности адреса СОМ лучше читать из памяти BIOS 0040:0000, т.к. адреса могут быть переставлены
—
argus98
(30.09.2005 12:41
81.22.205.230
,
пустое
)
Спустя 2 часа чтения - дискутирования , начинаю врубаться
—
igor_m
(30.09.2005 12:50
62.192.178.2
,
пустое
)
Просто вы дали мало информации (+):
—
argus98
(30.09.2005 13:01
81.22.205.230
, 214 байт)
хотим просто по наличию байта в приёмнике - забирать , по освобождению передатчика - посылать для ВС31++
—
igor_m
(30.09.2005 13:11
62.192.178.2
,
пустое
)
Биты 0,1,2 порта 3F9H заставляют прерываться по приемы, выдаче и ошибке, а из порта 3FAH читаем, что это было. На каком языке пишем, роли не играет, главное завершать обработчик RETом выхода из прерывания.
—
Mk-51
(30.09.2005 13:38
212.46.253.138
,
пустое
)
Здесь ключевое слово - FOSSIL-драйвер. bnu, x00 и др. Старички помнят! :))
—
vmp
(30.09.2005 11:38
62.117.78.2
,
пустое
)
Лучше чем Moxa не напишите.
—
Elektronik
(30.09.2005 11:20
194.85.99.225
, 52 байт,
ссылка
)
Спасибо , хотим свой велосипед
—
igor_m
(30.09.2005 11:40
62.192.178.2
,
пустое
)
на - покатайся
—
-Тумблер-
(30.09.2005 16:09
194.190.161.241
,
пустое
,
ссылка
)
ну и зря
—
Elektronik
(30.09.2005 12:21
194.85.99.225
, 171 байт)
это не значит что мы сами не умеем работать с прерываниями.
—
Elektronik
(30.09.2005 12:25
194.85.99.225
, 235 байт)
Хорошо , воспользуемся настоятельной рекомендацией, хотя не мы любим чужих драйверов тем более под дос
—
igor_m
(30.09.2005 12:41
62.192.178.2
,
пустое
)
Читайте классиков, а именно - Фролова (+)
—
vinogradov alexei
(30.09.2005 10:49
195.5.37.132
, 45 байт)
спасибо!
—
igor_m
(30.09.2005 11:49
62.192.178.2
,
пустое
)
Помнится дел было так (+)
—
Котик
(30.09.2005 10:33
84.254.194.85
, 371 байт)
да , это оно , тока хотелось бы подробнее . Имена модификаторов не знаем и др мелочи
—
igor_m
(30.09.2005 11:46
62.192.178.2
,
пустое
)
Функции DOS: 35Н - прочитать вектор, 25Н - установить вектор прерывания
—
argus98
(30.09.2005 10:56
81.22.205.230
,
пустое
)
Через таблицу векторов перехватывать прерывания гораздо вкуснее (ах, милый старенький дос ...)
—
vinogradov alexei
(30.09.2005 11:56
195.5.37.132
,
пустое
)
.. и опаснее, так как в старших х86 может быть не одна таблица прерываний..
—
argus98
(30.09.2005 12:09
81.22.205.230
,
пустое
)
Да, но ведь в защищенном режиме вы все равно увидите только свою виртуальную ДОС-машину со своей таблицей. Или не так ?
—
vinogradov alexei
(30.09.2005 12:12
195.5.37.132
,
пустое
)
Если пользуешься DOS - необходимо выполнять соглашения DOS. А если занимаешься самодеятельностью - не пользуйся DOS...
—
argus98
(30.09.2005 13:12
81.22.205.230
,
пустое
)
А это все документировано.Это не моя идея ...
—
vinogradov alexei
(30.09.2005 13:49
195.5.37.132
,
пустое
)
Microsoft специально ввела 35 функцию DOS, и предупредила не пользоваться таблицей векторов напрямую в новых версиях.
—
argus98
(30.09.2005 14:07
81.22.205.230
,
пустое
)
тут просто если номер прерывания больше или равен 8, то к номеру порта при программировании надо прибавить 0x80
—
Elektronik
(30.09.2005 12:29
194.85.99.225
,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru