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

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

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2010, 06:00   #1
I-Gor
 
Регистрация: 08.11.2010
Сообщений: 6
По умолчанию Драйвер ISA устройства для DOS

Помогите решить следующую программно-аппаратную задачу.

* * *
Устройство (многоканальный АЦП) подключено к шине ISA ПК. Передача данных от устройства к программе опроса происходит посредством драйвера, поставляемого вместе с устройством (находится во вложении).

Часть 1.
1. Дизассемблировать драйвер, снабдив листинг комментариями, поясняющими логику его работы.
2. Выяснить область, чрез которую драйвер передает информацию программе опроса (это может быть буфер в ОЗУ, регистры процессора, стек и т. д.).
3. Написать на любом языке высокого уровня программу под DOS, которая могла бы периодически выводить на экран в числовой форме предоставляемый драйвером результат опроса устройства.

Часть 2. Опытным путем установлено, что данный драйвер не работает в многозадачных операционных системах, как в многозадачных DOS (DR-DOS, Open DOS и т. п.), так и в эмуляции DOS под Windows 9x. Требуется модифицировать драйвер так, чтобы он мог (являясь DOS-приложением) корректно работать в многозадачной среде, обеспечив, по возможности, совместимость на уровне ввода-вывода с исходным драйвером.
* * *

Для проверки правильности выполнения задания в лаборатории имеется ПК с указанным АЦП. Ко входу АЦП подключается потенциометр, на ПК запускаются драйвер устройства и написанная в ходе выполнения задания программа опроса. Задание считается выполненным, если перемещение движка потенциометра вызывает адекватное изменение показаний программы. Проверка части 1 задания проводится под «голым» MS-DOS, части 2 – под Windows 98.
Вложения
Тип файла: zip Acp3_drv.zip (803 байт, 12 просмотров)
I-Gor вне форума Ответить с цитированием
Старый 12.11.2010, 08:17   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Могу сделать первую часть. Контакты ниже.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 12.11.2010, 09:35   #3
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Бессмысленная задача.

Привелегии ввода-вывода для НЕстандардных устройств определяются не драйвером и не MS-DOS, а ядром многозадачной ОС, под контролем VDM-подсистемы которой выполняется MS-DOS-приложение.

Поэтому решение задачи сводится к тем или иным способам установки соотв.привелегий в самой многозадачной ОС, а не в "драйвере", который в принципе не имеет доступа к этому механизму.
mss вне форума Ответить с цитированием
Старый 12.11.2010, 11:58   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

mss
ТС убежден, что "Kernel mode драйвер под NT – это, конечно, круто. Однако нужен он в данном случае не больше, чем собаке пятая нога." конечно, часть портов под Win95/98 открыта, но не все. Не плохо было бы увидеть еще и существующий exe или com-файл, который обращается к резиденту из Acp3_drv и который упоминается в пункте 3 "Написать на любом языке высокого уровня программу под DOS, которая могла бы периодически выводить на экран в числовой форме предоставляемый драйвером результат опроса устройства"
Mikl___ вне форума Ответить с цитированием
Старый 12.11.2010, 13:07   #5
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

1) Там, похоже, вопрос не в привилегиях, а в том, что этой программе для работы требуется опрашивать устройство в реальном времени. Уже много раз повторено, что Windows НЕ является операционной системой реального времени. Так что, боюсь, красивых решений не существует.

2) Непонятно, почему нельзя найти аппаратное решение данной проблемы - в простейшем случае выделенный компьютер с однозадачкой, в более сложном - микроконтроллерный опрос (вплоть до выкидывания проблемной платы вообще и замены более современным железом). Если это чисто вопро жадности, то на программных разработках Вы рискуете потерять больше.

3) И напоследок - почему я лично не буду решать Вашу проблему. Потому что на нее надо убить уйму времени, которое при Вашем подходе явно не будет оплачено. Судя по вашему посту, Вы собираетесь оплатить готовое решение, а кто мне заплатит за его поиск? Задача интересная, но заниматься ее решением мне не по карману.
Black Fregat вне форума Ответить с цитированием
Старый 12.11.2010, 13:26   #6
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Black Fregat
Судя по тому, что резидентная программа использует 1Ch прерывание -- опрос происходит не чаще 18,2 раза в секунду, так что Windows вполне подходит
Mikl___ вне форума Ответить с цитированием
Старый 12.11.2010, 13:29   #7
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
Сообщение от Mikl___ Посмотреть сообщение
mss
ТС убежден, что "Kernel mode драйвер под NT – это, конечно, круто. Однако нужен он в данном случае не больше, чем собаке пятая нога." конечно, часть портов под Win95/98 открыта, но не все. Не плохо было бы увидеть еще и существующий exe или com-файл, который обращается к резиденту из Acp3_drv и который упоминается в пункте 3 "Написать на любом языке высокого уровня программу под DOS, которая могла бы периодически выводить на экран в числовой форме предоставляемый драйвером результат опроса устройства"
А кто говорил про кернел-драйвер ?
Я про него не говорил, равно как и про Win95/98, это твой досужий вымысел.
mss вне форума Ответить с цитированием
Старый 12.11.2010, 13:35   #8
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

mss
О кернел-драйвере говорил я в разделе Assembler, там же и ответ ТС, про Win95/98 следует из тз

Последний раз редактировалось Mikl___; 12.11.2010 в 13:43.
Mikl___ вне форума Ответить с цитированием
Старый 13.11.2010, 01:28   #9
I-Gor
 
Регистрация: 08.11.2010
Сообщений: 6
По умолчанию

Цитата:
Не плохо было бы увидеть еще и существующий exe или com-файл, который обращается к резиденту из Acp3_drv...
Выпросил в универе фирменную программу опроса (во вложении). Исходник, естественно, является собственностью разработчиков прибора, и его нет даже у преподов (по их словам), а вот com-файл - пожалуйста. Судя по всему, написан на Turbo C++. Кому интересно, смотрите.

P. S. Были бы исходники - я бы вообще не стал выкладывать эту задачу для всеобщего обсуджения. Сам бы сделал, по крайней мере, первую часть.
Вложения
Тип файла: zip Acp_test.zip (34.7 Кб, 12 просмотров)

Последний раз редактировалось I-Gor; 13.11.2010 в 02:04.
I-Gor вне форума Ответить с цитированием
Старый 13.11.2010, 04:35   #10
I-Gor
 
Регистрация: 08.11.2010
Сообщений: 6
По умолчанию Ответ Black Fregat'у

Black Fregat:
«Непонятно, почему нельзя найти аппаратное решение данной проблемы - в простейшем случае выделенный компьютер с однозадачкой, в более сложном - микроконтроллерный опрос (вплоть до выкидывания проблемной платы вообще и замены более современным железом). Если это чисто вопро жадности, то на программных разработках Вы рискуете потерять больше».

На производстве давно бы так и сделали. Скорее всего, пошли бы по последнему пути, т. е. выкинули бы древнюю плату к чертовой бабушке и заменили ее чем-то более пристойным. Хотя я не уверен, что на каком-то уважающем себя производстве такой антиквариат еще сохранился. (Для справки: прибор был изготовлен в 2000-м году на советской элементной базе 1991 года).

Так ведь задача-то учебная, черт побери! И если в учебных целях до сих пор заморачиваются.такой фигней, так это уже не жадность. Это, скорее, маразм.
I-Gor вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Драйвер ISA устройства для DOS I-Gor Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 12.11.2010 06:49
Драйвер для hp laserjet 1010 для windows 7 Юзер7 Общие вопросы C/C++ 6 04.08.2010 09:17
драйвер мыши для C++3.0 for dos masta777 Общие вопросы C/C++ 3 20.06.2009 17:31
Разработка драйвер USB-HID устройства _dx Win Api 5 10.06.2009 18:34
Для кадого ли устройства есть свой контроллер? Elm0 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 21.06.2007 20:42