Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Драйвер консоли 
:(
    Опции темы
antonkonikov
Дата 29.3.2010, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 22.3.2009
Где: Украна, Донецк

Репутация: нет
Всего: нет



Мне нужно простестировать драйвер консоли написанный на асме инициализация работает а вот команда ввода и вывода нет(
Подскажите что нужно сделать. 

Сброшу архив с драйвером и программой.

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  Driver.rar 299,77 Kb
PM MAIL WWW ICQ   Вверх
ФедосеевПавел
Дата 29.3.2010, 21:50 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 7.2.2009

Репутация: нет
Всего: 10



Мне кажется, что ты витеевато пытаешься компилировать, а затем и проверять.
Когда я читал книгу Лея, то пользовался компилятором масм 6.11 (эта версия не работает под XP) и примером из masm (ATOMS).
Код
REM Batch file for making SIMPLE.SYS
ml -FeSimple.SYS -Fl -Sn simple.asm

Сейчас, навскидку не вспомню значение параметров.
Для tasm это будет скорее всего
Код

tasm simple.asm
tlink simple.obj
exe2bin simple.exe simple.sys

Т.е. понадобится ещё и утилита exe2bin.exe.
Далее для проверки нужно прописать полученный драйвер в файле config.sys
Код

device=d:\first\second\simple.sys

И перегрузить компьютер. Если драйвер завесит систему, то загрузится по-шагам (нажимать F8 перед загрузкой) - это при чистом DOS - и отказаться загружать собственный драйвер.
Теперь драйвер в памяти. Его нужно протестировать. Т.к. это драйвер символьного устройства, то для проверки его открывают как файл. На паскале
Код

VAR
  f:Text;
BEGIN
..............
  Assign(f,'simple');
  Reset(f);
  Write(f,'gghgsdkhkjsdhf');
..............

Правда, у меня ощущение, что в далёком прошлом я делал не так, а просто на asm-вставках скопировал обращения из С-шного примера ATOMS.
Настоятельно рекомендую найти в примерах к масму проект ATOMS (\masm\samples\DOSDEV) и внимательно почитать его. Там не только драйвер но и пример обращения к нему из ЯВУ (конкретно из C).

Чтобы не искать exe2bin и пример...

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  sample.zip 23,40 Kb
PM   Вверх
antonkonikov
Дата 30.3.2010, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 22.3.2009
Где: Украна, Донецк

Репутация: нет
Всего: нет



Ну это задание для курсового проекта. Я вот написал тест, вот если запустить test1.exe, и нажать 1, то команда инициализации работает! А вот команда ввода и вывода- на них виснет, может что-то не так в драйвере, или в тесте. Мне нужно чтобы оно вывело данные как для инициализации. В этом у меня вся трудность.
PM MAIL WWW ICQ   Вверх
ФедосеевПавел
Дата 30.3.2010, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 7.2.2009

Репутация: нет
Всего: 10



Ну давай я ещё раз повторю. Драйвер после компиляции должен быть прописан в config.sys, далее компьютер перезагружен (в чистом ДОС) - чтобы драйвер заработал. Тестовая программа - сама по себе - не включает ни одной строки кода драйвера. Обращение к драйверу - только через системные вызовы ОС - как к файлу.

Раз уж в витееватом коде есть обращение напрямую к драйверу, то заполняй полностью всю структуру rh, т.е. rh4.rh4_buf_ofs, rh4.rh4_buf_seg должны указывать на буфер и т.д. и т.п. Для команды вывода в этом буфере должны быть данные, указана длина - в общем те данные, которые соответствующая подпрограмма в драйвере обрабатывает.

Ещё раз повторю: в примере к масм хорошее описание для работы с драйверами и их тестирования.
PM   Вверх
antonkonikov
Дата 30.3.2010, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 22.3.2009
Где: Украна, Донецк

Репутация: нет
Всего: нет



Понимаете ФедосеевПавел, мне нужно на TASMe.
Вот то что я сегодня сделал. 
Это то что и требовалось. Только один "бок" у меня, когда выбераем 2 и 3 пункты меню, после выполнения этих команд вылетает тест.

Как это устранить?

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  TP.rar 7,22 Kb
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.1054 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.