Mail Archives: djgpp/2002/04/21/13:15:22.1
On Sun, 21 Apr 2002 23:40:16 +0800, "Jacky Luk"
<luckie AT netvigator DOT com> wrote:
>"Jacky Luk" <luckie AT netvigator DOT com> ¼¶¼g©ó¶l¥ó·s»D
>:a9umfc$rgq3 AT imsp212 DOT netvigator DOT com...
>> INT 13 - DISK - READ SECTOR(S) INTO MEMORY
>> AH = 02h
>> AL = number of sectors to read (must be nonzero)
>> CH = low eight bits of cylinder number
>> CL = sector number 1-63 (bits 0-5)
>> high two bits of cylinder (bits 6-7, hard disk only)
>> DH = head number
>> DL = drive number (bit 7 set for hard disk)
>> ES:BX -> data buffer
>> Return: CF set on error
>> if AH = 11h (corrected ECC error), AL = burst length
>> CF clear if successful
>> AH = status (see #00234)
>> AL = number of sectors transferred (only valid if CF set for some
>> BIOSes)
>> Notes: errors on a floppy may be due to the motor failing to spin up
>quickly
>> enough; the read should be retried at least three times, resetting
>> the disk with AH=00h between attempts
>> most BIOSes support "multitrack" reads, where the value in AL
>> exceeds the number of sectors remaining on the track, in which
>> case any additional sectors are read beginning at sector 1 on
>> the following head in the same cylinder; the MSDOS CONFIG.SYS command
>> MULTITRACK (or the Novell DOS DEBLOCK=) can be used to force DOS to
>> split disk accesses which would wrap across a track boundary into two
>> separate calls
>> the IBM AT BIOS and many other BIOSes use only the low four bits of
>> DH (head number) since the WD-1003 controller which is the standard
>> AT controller (and the controller that IDE emulates) only supports
>> 16 heads
>> AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
>> than 1024 cylinders by placing bits 10 and 11 of the cylinder number
>> into bits 6 and 7 of DH
>> under Windows95, a volume must be locked (see INT 21/AX=440Dh/CX=084Bh)
>> in order to perform direct accesses such as INT 13h reads and writes
>> all versions of MS-DOS (including v7 [Win95]) have a bug which prevents
>> booting on hard disks with 256 heads, so many modern BIOSes provide
>> mappings with at most 255 heads
>> SeeAlso: AH=03h,AH=0Ah,AH=06h"V10DISK.SYS",AH=21h"PS/1",AH=42h"IBM"
>> SeeAlso: INT 21/AX=440Dh/CX=084Bh,INT 4D/AH=02h
>>
>> According to the above, how do you setup the registers for loading boot
>> sector to memory (GAS or GCC)?
>boot sector of hard disk C:
zeros in all args except # sectors AL and high bit of drive # DL
--
Thanks. Take care, Brian Inglis Calgary, Alberta, Canada
Brian DOT Inglis AT CSi DOT com (Brian dot Inglis at SystematicSw dot ab dot ca)
fake address use address above to reply
tosspam AT aol DOT com abuse AT aol DOT com abuse AT yahoo DOT com abuse AT hotmail DOT com abuse AT msn DOT com abuse AT sprint DOT com abuse AT earthlink DOT com abuse AT cadvision DOT com abuse AT ibsystems DOT com uce AT ftc DOT gov
spam traps
- Raw text -