Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DOS & int25


sevylor ©   (2002-03-08 05:14:00) 

Не подскажет ли кто, как прочесть сектор (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 то же самое)


sevylor   (2002-03-09 06:11:00) [1]

>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.


Anatoly Podgoretsky   (2002-03-08 21:18:00) [2]

Здесь не достаточно информации для диагноза, надо знать еще состояния CY, AH

но судя по вызову ты пытаешься прочитать логический сектор 0, а это сделать данной функцией нельзя. Читай спецификацию по данному прерыванию


Cobalt   (2002-03-08 12:57:00) [3]

Дело в том, что Windows не позволяет кому угодно обращаться напрямую к диску.
Тем более, что пользуешься ты Dos-методом, т.е. используешь сегменты и смещения , в то время как в Windows только селекторы и смещения (я надеюсь, ты знаешь разницу между ними).

Месяцев 5 тому назад видел подобный вопрос. Сказали, что надо переходить в режим Виртуальной Дос-машины (как - уже не помню).
Если очень надо - ищи Devices Driver Kit.


Наверх

Титульная страница Поиск, карта сайта Написать письмо