Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2010, 09:47   #1
tilin
Новичок
Джуниор
 
Регистрация: 28.09.2010
Сообщений: 5
По умолчанию прерывания com порта

Приложение написано под ДОС. Прекрасно работало, и под чистым досом, и под Win98. Поменялась материнская плата (была 5-6 летней давности, стала 2007 года выпуска). Под досом перестали обрабатываться прерывания ком порта (просто не вызывается обработчик и все тут), win98 на этой плате загружается только в безопасном режиме, и в этом режиме приложение опять же прекрасно работает. Куда копать???

Для информации - код настройки порта (com2):

Код:
 pc_baseAddress = 0x2f8;
 outp(pc_baseAddress+3,0x80);
 outp(pc_baseAddress+0,0x0c);
 outp(pc_baseAddress+1,0x00);
 outp(pc_baseAddress+3,0x03);
 outp(pc_baseAddress+1,0x03);
 outp(pc_baseAddress+2,0x00);
 outp(pc_baseAddress+4,0x00);
 _dos_setvect(0x0b,pc_handler);
 outp(0x21,(inp(0x21) & 0xf7));
tilin вне форума Ответить с цитированием
Старый 28.09.2010, 10:14   #2
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Странно это все. Может быть в БИОСе запрещены (отключены) COM-порты?
Должна быть полная совместимость...
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 28.09.2010, 10:53   #3
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

tilin
Мой компьютер->свойства системы->оборудование->порты (COM и LPT)->ресурсы->диаппазон ввода-вывода может быть 03F8-03FF и 02F8-02FF посмотри какой там базовый адрес (pc_baseAddress = 0x2f8 ?)
Mikl___ вне форума Ответить с цитированием
Старый 28.09.2010, 12:30   #4
tilin
Новичок
Джуниор
 
Регистрация: 28.09.2010
Сообщений: 5
По умолчанию

порты на плате включены, адреса те же.
Методом научного тыка так же установлено, что вопрос по-ходу решается отключением поддержки USB в биосе. Как с чем связано пока не нашел. На всякий случай плата на 945GSE и ICH7-M

Последний раз редактировалось tilin; 28.09.2010 в 12:46.
tilin вне форума Ответить с цитированием
Старый 28.09.2010, 12:46   #5
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

tilin
Это мое предположение -- USB использует те же прерывания (3 или 4) либо тотже диаппазон портов (02F8-02FF или 03F8-03FF)
Mikl___ вне форума Ответить с цитированием
Старый 28.09.2010, 13:46   #6
tilin
Новичок
Джуниор
 
Регистрация: 28.09.2010
Сообщений: 5
По умолчанию

Посмотрел. Нет прерывание только за ком портом, диапазон портов тоже за ним.
tilin вне форума Ответить с цитированием
Старый 29.09.2010, 03:11   #7
xrnd
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 18
По умолчанию

Может глючит плата в реальном режиме, а в защищённом винда эмулирует прерывание, поэтому работает?
xrnd вне форума Ответить с цитированием
Старый 29.09.2010, 08:40   #8
tilin
Новичок
Джуниор
 
Регистрация: 28.09.2010
Сообщений: 5
По умолчанию

В dos сеансе под Windows тоже самое, работает только при отключенной поддержке усб.
tilin вне форума Ответить с цитированием
Старый 29.09.2010, 08:46   #9
xrnd
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 18
По умолчанию

А почему используется именно COM2?
Возможно там один Com-порт на плате, а второй с юсб как-то связан.
xrnd вне форума Ответить с цитированием
Старый 29.09.2010, 09:46   #10
tilin
Новичок
Джуниор
 
Регистрация: 28.09.2010
Сообщений: 5
По умолчанию

Да нет, там вообще на одной плате 4 ком порта, на другой 8 и используются все. А com2 я просто для примера привел.

А как это может быть? : "..., а второй с юсб как-то связан."
tilin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прерывания alexdrew Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 16.05.2010 00:38
Прерывания Kn793 Общие вопросы Delphi 3 10.01.2009 18:43
прерывания sergei64_89 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 22.04.2008 13:37
Как получить данные с COM-порта или другого любого порта? DeLure Общие вопросы C/C++ 5 20.09.2007 00:50