1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
Скрыть объявление

Уважаемый Гость, в 23:30 по мск форум будет закрыт на профилактику на 1,5 часа до 01:00 24.10.2017

Dos: Проблема При Работе С Файлами Из Tsr-программы

Тема в разделе "Другие", создана пользователем -, 27 ноя 2011.

  1. Гость

    Репутация:
    0
    Здравствуйте. Пишу на C и ассемблере (tcc/tasm) резидентную программу под DOS, которая должна перехватывать прерывание клавиатуры и сохранять на диске файл. На виртуальной машине Windows ntvdm всё работает, а на VMware Player (который, как я понял, ближе к реальному DOS) виснет при попытке создать файл. Пробовал работать с файлами как с помощью стандартных библиотечных функций C, так и напрямую вызывать функции DOS int 21h.

    В обработчике прерываний сохраняю все регистры (pusha/popa), устанавливаю свой ds и свой стек (потом естественно возвращаю обратно). Кроме этого, устанавливаю свой ID процесса (адрес PSP) с помощью функции DOS 50h. И всё равно виснет.

    Установил, что виснет при вызове функции DOS создания файла. Может быть я что-то ещё забыл инициализировать в обработчике прерывания?
     
  2. rrrFer

    rrrFer Гость

    Репутация:
    0
    Зойберг
    руками файл создать получается?
     
  3. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Как на счет DOSBox? В ней не пробовал? Считаю что для испытания твоей программы она подойдет не хуже VMware.
     
  4. Гость

    Репутация:
    0
    r04
    Совсем вручную не пробовал,но пробовал создавать таким же образом (с помощью int 21h) из основной программы, не TSR - всё работает нормально.

    lazybiz
    DOSBox посмотрю, о результатах отпишусь.
     
  5. Гость

    Репутация:
    0
    Попробовал DosBox - там работает нормально. Но всё же как ntvdm, так и DosBox используют по сути Windows-овскую файловую систему. А VMware - чистый досовский FAT. Значит всё-таки принципиально работа с файловой системой DOS всё же неверна.
     
Загрузка...

Поделиться этой страницей