Эмуляция жесткого диска USB / флэш-накопителя через BIOS

Я пытаюсь читать / записывать жесткие диски USB и флешки для приложения DOS.

Я прочитал спецификацию EDD и упоминает, что функция Int13 (Fn = 48h) может использоваться для получения пути к интерфейсу и пути к устройству для конкретного диска. Это также включает интерфейс USB и интерфейс ATA.

Теперь эта функция также возвращает таблицу расширения таблицы параметров устройства (DPTE), которая дает адреса ввода-вывода, через которые программное обеспечение, минуя Int13h, может использовать его для чтения / записи устройства. Но эта таблица только для ATA afaik.

Я хочу читать / писать на USB-диск / флеш-накопители без использования Int 13h. Возможно ли это?

На самом деле это приложение, чувствительное к вводу-выводу диска в защищенном режиме. Таким образом, использование Int13h повлечет за собой серьезные потери производительности из-за переключения режимов. Итак, я стараюсь избегать использования Int13h.

Инициализирует ли BIOS USB-накопители, чтобы они тоже выглядели как диски ATA. Если это так, то я могу использовать DPTE для получения базовых адресов ввода-вывода командного блока и блока управления, а затем получить доступ к USB-накопителям, как к ATA-накопителям. Я прав?

Спасибо


person jacks    schedule 28.08.2012    source источник


Ответы (1)


Этот конкретный вопрос подробно обсуждался в сообществе FreeDOS. Лучшее руководство по всей проблеме - это техническая заметка FreeDOS "USB с DOS"

person bugmagnet    schedule 10.03.2014