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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2010, 19:59   #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 байт, 17 просмотров)
I-Gor вне форума Ответить с цитированием
Старый 09.11.2010, 04:18   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

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

Часть 2. Опытным путем установлено, что данный драйвер не работает в многозадачных операционных системах, как в многозадачных DOS (DR-DOS, Open DOS и т. п.), так и в эмуляции DOS под Windows 9x. Требуется модифицировать драйвер так, чтобы он мог (являясь DOS-приложением) корректно работать в многозадачной среде, обеспечив, по возможности, совместимость на уровне ввода-вывода с исходным драйвером.
Что мы имеем? У нас в руках железяка без принципиальной схемы -- иначе зачем нам выяснять область, чрез которую драйвер передает информацию программе опроса (это может быть буфер в ОЗУ, регистры процессора, стек и т. д.)? У нас есть драйвер, но без исходного текста -- иначе зачем дизассемблировать драйвер и снабжать листинг комментариями, поясняющими логику его работы? Все вместе представляет собой неработающую конструкцию, так как опытным путем установлено, что данный драйвер не работает в многозадачных операционных системах, а кто может сказать, он до этого работал? Скажу больше, под Windows NT обращения к портам ввода/вывода являются привилегированными операциями, выполнить которые можно только из драйвера режима ядра, ну а драйвер, конечно же, нужно написать на халяву, под видом помощи написания "лабораторной работы"

Последний раз редактировалось Mikl___; 09.11.2010 в 13:42.
Mikl___ вне форума Ответить с цитированием
Старый 09.11.2010, 09:08   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...это стиль такой, вывалил и пусть думают.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 09.11.2010, 22:04   #4
I-Gor
 
Регистрация: 08.11.2010
Сообщений: 6
По умолчанию

Цитата:
А ты понимаешь, что задачи подобного рода не должны делаться бесплатно?
Вопрос к преподу, который такую вещь замутил. Как-нибудь надо будет спросить при случае...
Цитата:
Что мы имеем? У нас в руках железяка без принципиальной схемы -- иначе зачем нам выяснять область, чрез которую драйвер передает информацию программе опроса (это может быть буфер в ОЗУ, регистры процессора, стек и т. д.)? У нас есть драйвер, но без исходного текста...
Конечно, на кафедре наверняка есть и принципиалка этой железяки (благо, она собрана на советских микросхемах, а техника советского образца, изготавливаемая «по инерции» до начала 2000-х, документировалась неплохо), и исходные тексты сопутствующего ПО, и много чего еще. И уж точно есть готовые решения этой задачи (и не одно), ранее выполненные студентами. Другой вопрос – что все это хозяйство фиг кто даст… Следовательно, нужно додумываться самому.
Цитата:
...а кто может сказать, он до этого работал?
Сам видел прибор в лаборатории. С данным драйвером отлично пашет под DOSом.
Цитата:
... под Windows NT обращения к портам ввода/вывода являются привилегированными операциями, выполнить которые можно только из драйвера режима ядра, ну а драйвер, конечно же, нужно написать...
В задании и речи не шло, чтобы СОЗДАТЬ драйвер под винду. Преподы тоже не инквизиторы, и прекрасно понимают, что написать 32-битный драйвер под Win9x (а тем более под NT-системы) – гемор еще тот. Они бы еще под Linux драйвер написать предложили – это был бы последний гвоздь в крышку гроба студентов.
Смысл второй части задания – МОДИФИЦИРОВАТЬ досовкий (real-mode 16-битный, написанный, по словам препа, на «голом» ASMе) драйвер, чтобы он мог нормально работать в режиме мультитаскинга, как это делает, например досовкий драйвер мыши (mouse.com) или CD-ROMа (oakcdrom.sys). Вы, наверное, в курсе, что винда – не единственное семейство многозадачных ОС. Есть еще и многозадачные DOS. Не от Майкрософт, разумеется.
Цитата:
...это стиль такой, вывалил и пусть думают.
В таком «стиле» преподы «вываливают» студентам большинство СРС (если это, конечно, не платный вуз – там исходные данные (обычно) «разжевывают» по максимуму). Задание было запостено в том виде (с сохранением орфографии, пунктуации и проч.), как оно было дано в универе. Так, что цитату г-на raxp, по-моему, есть смысл изготовить в виде транспаранта и повесить возле дверей кафедр большинства вузов.
А все-таки, я думаю, такие вещи выкладываются на форуме не для того, чтобы их кто-то «от и до» выполнил «за того парня» (для этого есть фрилансеры), а для обсуждения, чтобы желающие могли поразмышлять, что там и как….

Последний раз редактировалось I-Gor; 09.11.2010 в 22:48.
I-Gor вне форума Ответить с цитированием
Старый 10.11.2010, 04:47   #5
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

I-Gor
А как ты сам поступал бы на месте того, кто должен тратить на тебя своё время и ничего не получать взамен?
Цитата:
Сообщение от I-Gor
А все-таки, я думаю, такие вещи выкладываются на форуме не для того, чтобы их кто-то «от и до» выполнил «за того парня» (для этого есть фрилансеры), а для обсуждения, чтобы желающие могли поразмышлять, что там и как….
Что-то я не вижу обсуждений с твоей стороны, не вижу работы которую проделал ты сам, зато очень хорошо видно ничем не прикрытое желание поживиться за чужой счет. raxp прав, студент "вывалил задание, а остальные пусть думают за него" здесь таких 98%
Mikl___ вне форума Ответить с цитированием
Старый 10.11.2010, 11:04   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

перенесите тему во фриланс и делов ...со стороны TC работы нуль, да и задание никак не тривиальное и чую не в универе дело
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.11.2010, 06:49   #7
I-Gor
 
Регистрация: 08.11.2010
Сообщений: 6
По умолчанию

Цитата:
Что-то я не вижу... работы которую проделал ты сам...
«Дайте мне точку опоры…» (Архимед)
Цитата:
перенесите тему во фриланс и делов...
А вот это уже не упрек. Это идея! Только при чем здесь администрация сайта? Я, как это прочитал, сам продублировал задание во фрилансе. И с чего это Mikl___ взял, что я хочу «поживиться за счет других»? Я убежден, что достойная работа должна быть не менее достойно оплачена. Между тем, я принципиально не буду покупать вещи, которые мне не нужны. Kernel mode драйвер под NT – это, конечно, круто. Однако нужен он в данном случае не больше, чем собаке пятая нога. И если кто-нибудь захочет выполнить задание «под ключ» - честь ему за это, похвала и денежная премия. Может быть, найдутся желающие заняться выяснением механизма работы драйвера под DOS НЕ НА ГОЛОМ ЭНТУЗИАЗМЕ? Жду.
Цитата:
... задание никак не тривиальное и чую не в универе дело
Чутье не обмануло Raxp’a: если универ (преп) дает студенту задание (типовое, на их взгляд), которое студент без посторонней помощи выполнить не может, то дело уж точно не в универе. Если я (как и Raxp, наверное) не могу съесть живую мышь (животное такое), а моя кошка ест ее без соли и без лука, да еще облизывается, то дело явно не в мыши. И уж тем более не в природе, мышь породившую. Так что Raxp абсолютно прав, когда говорит, что дело не в универе. Только я не понимаю, к чему это было сказано? Если он думает, что мое задание не учебное, а производственное, то глубоко ошибается: мне оно было дано именно как учебное. У производственников под такие вопросы обычно всегда есть люди и деньги. А если отсутствует первый и особенно второй критерий, то такие дела они обычно откладывают. До лучших времен.
Другое дело, что упомянутый девайс МОЖЕТ БЫТЬ использован на производстве в АСУТП, и, ВОЗМОЖНО, кто-то заключил договор с универом на исследование (конечно, не «за так»), а те, в свою очередь, «вывалили» эту ботву студентам в принудительном порядке… Ну, так это еще выяснить и доказать надо. А смысл? Можно, конечно, для прикола зайти с этим заданием на кафедру и спросить завкафа по-Лермонтовски: «Скажи-ка, дядя, ведь не даром?» - а потом посмотреть на реакцию человека. Но что это даст?
А вот утверждать о нетривиальности, по-моему, вообще не к месту. Во-первых, форум посещают не самые последние в программировании люди. Во вторых – ну, раз уж дали такое задание…. Выбирать не пришлось.
Цитата:
Разговаривают два навозных червя. Отец и сын. Сын спрашивает отца:
- Пап, а могли бы мы жить в яблоке?
- Конечно, могли.
- А в груше?
- И в груше могли бы.
- Так почему же мы живем в дерьме?
- Родину не выбирают, сынок.
И кто же виноват, что теперь студентам дают выполнять в одиночку такие вещи, которые лет сорок назад делало целое подразделение какого-нибудь НИИ? Это тенденция такая, господин Raxp. Тренд, батенька.
И у нас в универе так глумятся не только над технарями. Экономистам тоже приходится не сладко.
Попробуйте, например, найти инфу по теме «Разработка критериев сдельной оплаты труда операторов ЭВМ» (курсовая работа). Сколько бы Вы желали платить (или получать), к примеру, за N тысяч символов набранного текста? (Ответ обосновать.) Хорошо, если текст на русском или на латинице. А если на татарском или на арабском? В условии предполагается, что фронт работы операторов обеспечен стабильно. Это сильно упрощает задачу. Но даже с такой оговоркой, - это сколько же нюансов нужно учесть, если делать все «с нуля»! Сам ради смеха пытался найти сабж в Рунете. Искал долго и упорно. Использовал Гугл, Рамблер, Яндекс, а также впридачу Бинг, Апорт и Yahoo! (других поисковиков общего применения, кажется, не осталось). Абсолютный нуль! Не нашел не только методику разработки, но и сами критерии.
Хотя ни для кого не секрет, что такие схемы оплаты широко применяются как у «буржуев», так и у нас (конечно, у тех наших коммерсов, кто свои деньги научился считать). Такой подход, в частности, «автоматом» снимает ряд вопросов, решаемых обычно не самыми простыми техническими средствами (например, контроль трафика) – при такой форме оплаты у оператора просто не будет желания «висеть» в рабочее время в социальных сетях или заниматься прочей ерундой. Естественно, для тех, кто научился свои деньги считать, алгоритмы этого счета – коммерческая тайна. То есть инфа имеется, но вот выдернуть ее проблематично. Это как в том анекдоте: «Съест-то он съест, но кто ж ему даст?» Поневоле начинаешь сочувствовать нелегкой жизни шпионов, выуживающих военные тайны…
Самое смешное, что затронутой теме – в обед двадцать с лишним лет. Фундамент этого дела был создан в СССР еще в конце восьмидесятых («за бугром», конечно, раньше), когда вычислительные центры предприятий (в нашей стране) стали переходить на хозрасчет. Вот и приходится будущим экономистам «шерстить» далеко не электронные библиотеки, выискивая по теме публикации времен Горбачева. А более поздние просто недоступны по причине, названной выше. И кто такую задачу сочтет тривиальной?

Последний раз редактировалось I-Gor; 12.11.2010 в 23:59.
I-Gor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Драйвер для 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