02H read sectors
Input: DL = drive number (0=drive A...; 80H=hard disk 0; 81H=hard disk 1)
DH = read/write head number
CH = track (cylinder) number (0-n) ◄═╗
CL = sector number (1-n) ◄═══════════╩══ See note below.
AL = sector count (no more than 1 cylinder's worth of sectors)
ES:BX => caller's buffer address
0:0078 => Diskette Parameter Table (for diskette operations)
0:0104 => Hard Disk Parameter Table (for hard disk operations)
Output: Carry Flag=CY=1 if error occurred and disk error code in AH.
ES:BX buffer contains data read from disk
Note: Sector values are 6-bits and Cylinder values are 10-bits:
1 1 1 1 1 1
╓5┬4┬3┬2┬1┬0┬9┬8╥7┬6┬5┬4┬3┬2┬1┬0╖
CX: ║c c c c c c c c C c S s s s s s║
╙─┴─┴─┴─┴─┴─┴─┴─╨─┴─┴─┴─┴─┴─┴─┴─╜
╚═╩═══> used as high bits of cylinder number
Загрузка файла с флэшки с помощью int 0x13
Может ли загрузка идти не так из-за этого? Если да, то каким прерыванием надо пользоваться?
Для моей флэшки
размер: 256Мб, 503521 секторов
63 сектора на трек
255 поверхностей
Значения взяты из бутсектора после форматирования флэшки.
Заранее спасибо за помощь
пользуй EDD .
А есть ли какая-нибудь документация по этой "загадочной аббревеатуре"?
Цилиндрам в размере 1024
Секторов на трек 63
Головокам 256
Около 8ГБайт
Головок было до 0-15 - было до тех пор пока диски были маленькими. После этого стали придумывать. И придумали в биусе завели виртуальные головки цилинды, секотра. Так что ты можешь использовать это прерывание.
Код:
Насчет EDD его тоже можно использовать если биус поддерживает.
BIOS Enhanced Disk Drive Services (EDD)
Прерывание тоже int 13h а вот функции для работы имеют номера 41-48.