DOS и Windows98 прерывания
От: MALnew  
Дата: 12.04.02 13:24
Оценка:
Здрасте
Есть досовкая прога которая при помощи
програмного прерывания моргает LEDами
Теперь эту прогу надо под 98ми заставить работать
Перехватил в досе программное прерывание
Из виндов могу моргать LEDами. Вопрос как теперь это все связать ?
Re: DOS и Windows98 прерывания
От: Adil Россия  
Дата: 12.04.02 13:45
Оценка:
Здравствуйте MALnew, Вы писали:

MAL>Здрасте

MAL>Есть досовкая прога которая при помощи
MAL>програмного прерывания моргает LEDами
MAL>Теперь эту прогу надо под 98ми заставить работать
MAL>Перехватил в досе программное прерывание
MAL>Из виндов могу моргать LEDами. Вопрос как теперь это все связать ?

Что имеется ввиду под "программным" прерыванием? А вообще тема гиблая. Путем длительных изысканий и изысков, я получил, что реальны 2 путя для лова аппарвтного прерывания под Win32 —
1. писать драйвер (по-сложнее, по-дольше, но правильнее ),
2. писать Win16 приложение (по-проще), где прерывание ловишь, как под ДОС, а потом тем или иным способом (через MESSAGE, например) сообщаешь Win32приложению о происходящем беспределе.
Удачи.
Удачи.
Re[2]: DOS и Windows98 прерывания
От: MALnew  
Дата: 12.04.02 13:55
Оценка:
Здравствуйте Adil, Вы писали:

A>Что имеется ввиду под "программным" прерыванием? А вообще тема гиблая. Путем длительных изысканий и изысков, я получил, что реальны 2 путя для лова аппарвтного прерывания под Win32 -

A>1. писать драйвер (по-сложнее, по-дольше, но правильнее ),
A>2. писать Win16 приложение (по-проще), где прерывание ловишь, как под ДОС, а потом тем или иным способом (через MESSAGE, например) сообщаешь Win32приложению о происходящем беспределе.

В проге в чужой — написано int86(0x65,&regs,&regs); в регистрах какой LED зажигать.
Я его ловлю а вот и как его винде отправить ?
Re[3]: DOS и Windows98 прерывания
От: Sergey Россия  
Дата: 12.04.02 15:00
Оценка:
Здравствуйте MALnew, Вы писали:

MAL>Здравствуйте Adil, Вы писали:


A>>Что имеется ввиду под "программным" прерыванием? А вообще тема гиблая. Путем длительных изысканий и изысков, я получил, что реальны 2 путя для лова аппарвтного прерывания под Win32 -

A>>1. писать драйвер (по-сложнее, по-дольше, но правильнее ),
A>>2. писать Win16 приложение (по-проще), где прерывание ловишь, как под ДОС, а потом тем или иным способом (через MESSAGE, например) сообщаешь Win32приложению о происходящем беспределе.

MAL>В проге в чужой — написано int86(0x65,&regs,&regs); в регистрах какой LED зажигать.

MAL>Я его ловлю а вот и как его винде отправить ?

А зачем его ловить и отправлять? Лампочки можно и с помощью SendInput зажечь.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re: DOS и Windows98 прерывания
От: Dutchman Беларусь http://blogs.rsdn.org/ikemefula
Дата: 12.04.02 15:07
Оценка:
Здравствуйте MALnew, Вы писали:

MAL>Здрасте

MAL>Есть досовкая прога которая при помощи
MAL>програмного прерывания моргает LEDами
MAL>Теперь эту прогу надо под 98ми заставить работать
MAL>Перехватил в досе программное прерывание
MAL>Из виндов могу моргать LEDами. Вопрос как теперь это все связать ?

Ты хочешь из WIN32 моргать или из ДОС под Win98 ?
Если второе, то никаких проблем. Если первое, то не на много сложенее. WIN98 не виртуализирует эти порты, на сколько я это помню.

Я эмулировал как то последовательный порт — очень удобно отлаживать ДОС аппликации из под WIN98/95.
Если тебя интересует ДОС под WIN98, то могу подсказать все, что угодно(в пределах разумного). Можно даже сделать прогу для обмена данными между различными ДОС окнами. Сидишь в BC31 к примеру, и получаешь список всех окон ДОС. Или делаешь прозрачный клипборд для всех ДОС окон. И тд и тд.

Ничего сложного, если ты знаком ДОСом изнутри. А WIN95/98 на самом деле ДОС и есть.
Re[4]: DOS и Windows98 прерывания
От: MALnew  
Дата: 13.04.02 11:33
Оценка:
Здравствуйте Sergey, Вы писали:

MAL>>В проге в чужой — написано int86(0x65,&regs,&regs); в регистрах какой LED зажигать.

MAL>>Я его ловлю а вот и как его винде отправить ?

S> А зачем его ловить и отправлять? Лампочки можно и с помощью SendInput зажечь.

Я не могу изменять чужую программу — она Досовская
Re[2]: DOS и Windows98 прерывания
От: MALnew  
Дата: 13.04.02 12:10
Оценка:
Здравствуйте Dutchman, Вы писали:

D>Ты хочешь из WIN32 моргать или из ДОС под Win98 ?

D>Если второе, то никаких проблем. Если первое, то не на много сложенее. WIN98 не виртуализирует эти порты, на сколько я это помню.

D>Я эмулировал как то последовательный порт — очень удобно отлаживать ДОС аппликации из под WIN98/95.

D>Если тебя интересует ДОС под WIN98, то могу подсказать все, что угодно(в пределах разумного). Можно даже сделать прогу для обмена данными между различными ДОС окнами. Сидишь в BC31 к примеру, и получаешь список всех окон ДОС. Или делаешь прозрачный клипборд для всех ДОС окон. И тд и тд.

Давайте по подробнее обьясню.
Есть программа(досовская) которая раньше включала выключала ЛЕДы на специальной клаве.Программу менять нельзя.
Но можно в дос сессии этой проги перехватить намерение проги управлять ЛЕДами с помощью TSR программки и перехватывания int86(0x65,&regs,&regs)
Сейчас поменялось железо — эта спецализированная клава со множестом ЛЕДов.Теперь эта клава работает через USB.
В Винпроге я могу управлять ЛЕДами примерно так:
HANDLE h = CreateFile("\\\\.\\usbpanel",ляля-не важно);
hresult = DeviceIOControl(h,IOCTL_SET_LED,ляля-не важно);
Короче ЛЕДами управляю. А дальше затык — идеи нету.
И еще досовская прога работает в текстовом режиме.
"Можно даже сделать прогу для обмена данными между различными ДОС окнами. " — А как допустим между дос сесией и вин32 приложением или между дос сесией и драйвером если Вынь98 и есть ДОС ? :)
Re[3]: DOS и Windows98 прерывания
От: Dutchman Беларусь http://blogs.rsdn.org/ikemefula
Дата: 15.04.02 07:10
Оценка:
Здравствуйте MALnew, Вы писали:

MAL>Давайте по подробнее обьясню.

MAL>Есть программа(досовская) которая раньше включала выключала ЛЕДы на специальной клаве.Программу менять нельзя.
MAL>Но можно в дос сессии этой проги перехватить намерение проги управлять ЛЕДами с помощью TSR программки и перехватывания int86(0x65,&regs,&regs)
MAL>Сейчас поменялось железо — эта спецализированная клава со множестом ЛЕДов.Теперь эта клава работает через USB.
MAL>В Винпроге я могу управлять ЛЕДами примерно так:
MAL>HANDLE h = CreateFile("\\\\.\\usbpanel",ляля-не важно);
MAL>hresult = DeviceIOControl(h,IOCTL_SET_LED,ляля-не важно);
MAL>Короче ЛЕДами управляю. А дальше затык — идеи нету.
MAL>И еще досовская прога работает в текстовом режиме.
MAL>"Можно даже сделать прогу для обмена данными между различными ДОС окнами. " — А как допустим между дос сесией и вин32 приложением или между дос сесией и драйвером если Вынь98 и есть ДОС ?


Запросто ! В 95/98 ты можешь использовать DPMI. Но это фигня, ты можешь использовать виндошный буфер обмена из ДОС. Как точно это сделать, я не знаю — это прерывание кажется 2F. Но вот ДОС Навигатор это умеет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.