Форум: "Основная";
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];
ВнизDOS & int25 Найти похожие ветки
← →
sevylor (2002-03-08 05:14) [0]Не подскажет ли кто, как прочесть сектор (TP7):
var buf:array [0..511] of byte;
asm
push bx
push ds
mov al,disk
mov cx,1
mov dx,0
lea bx,buf
int $25
pop dx
pop ds
pop bx
end; -> в al=7. Что происходит? (кстати, через asm то же самое)
← →
Cobalt (2002-03-08 12:57) [1]Дело в том, что Windows не позволяет кому угодно обращаться напрямую к диску.
Тем более, что пользуешься ты Dos-методом, т.е. используешь сегменты и смещения , в то время как в Windows только селекторы и смещения (я надеюсь, ты знаешь разницу между ними).
Месяцев 5 тому назад видел подобный вопрос. Сказали, что надо переходить в режим Виртуальной Дос-машины (как - уже не помню).
Если очень надо - ищи Devices Driver Kit.
← →
Anatoly Podgoretsky (2002-03-08 21:18) [2]Здесь не достаточно информации для диагноза, надо знать еще состояния CY, AH
но судя по вызову ты пытаешься прочитать логический сектор 0, а это сделать данной функцией нельзя. Читай спецификацию по данному прерыванию
← →
sevylor (2002-03-09 06:11) [3]>2 Cobalt В том-то и дело, что надобно это в голом Дос. Под Виндой все прекрасно, читается/пишется любой сектор через DeviceIOControl.
Мерси всем. Вышел из клинча. INT 25 не читает FAT32. Может, кому пригодится: надо пользовать Int 21h Function 7305h Ext_ABSDiskReadWrite, значения регистров те же, что для INT 25/26 для дисков >32, si=0 для чтения, для записи бит 0=1, остальные биты - в зависимости от записываемых данных. Allows absolute disk read/write to FAT32, FAT16, and FAT12 drives. This call replaces Int 25h/26h.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c