Как узнать размер свободного места на HDD в режиме эмуляции(DOS)

Тема в разделе "WASM.ASSEMBLER", создана пользователем Ateist85, 21 окт 2009.

  1. Ateist85

    Ateist85 New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2009
    Сообщения:
    5
    Ситуация следующая:
    Используется ОС Windiws XP, на ней стоит DosBox 0.73, который используется для эммулирования режима DOS.
    ТЗ:
    Написать программу под DOS(увы в режиме эмуляции под виндой) которая смогла бы посчитать размер жесткого диска. Используется(.286)

    1. Как я понимаю можно использовать прерывания ms-dos для того чтобы узнать размер жесткого диска, но сейчас жесткие диски под несколько сотен ГБ и как я понимаю результат будет неверным.
    2. Можно использовать прерывание 13h, но его не пропускает то ли сама ОС, то ли DosBox чтобы не было возможности испортить диски.

    Кто может подсказать как можно решить данную проблему?
     
  2. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Прерывания ДОС расчитаны на диски не более 8 Гбайт, т.е. средствами ДОС твою проблему не решить. Эмулятор DosBox вряд ли эмулирует железо, т.ч. этот способ отпадает. Остаются всякие прерывания БИОС, но тоже сомнительно чтобы они работали с большими дисками именно в DosBox.
    Только я не понимаю: зачем тебе большие диски. Или ты пишешь прогу под эмулятором, а работать она должна везде ?
     
  3. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    1) В ТЗ вроде четко сказано ДОС. Если у вас диск больше то это уже не корректно. Так что смело используй прерывания дос.
    2) Не верю.

    Если нужна поддержка больших дисков используй обращение через порты ввода вывода.
     
  4. Ateist85

    Ateist85 New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2009
    Сообщения:
    5
    хм.. спасибо, про порты я совсем забыл, думаю поможет
     
  5. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    ну например есть hddspeed с исходниками на паскале с асм вставками - там загружаешься с дискеты и она тебе показывает размер физического диска
    чтоб узнать сколько чего в разделах - анализируй таблицу разделов - вопрос только даст ли тебе это сделать винда с эмулятором
    варинт когда эмулятор по обращению к портам будет выдавать тебе параметры виртуального диска не исключен
     
  6. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Так может определишься со средой программирования. DosBox не эмулирует не только порты дисков, но и сами диски эмулирует довольно своеобразно. Сам DOS там тоже свой, т.ч. прерывания есть только те, которые есть.