[Back to HARDWARE SWAG index] [Back to Main SWAG index] [Original]
{
> I was wondering if anywone could tell me how to read
> the partition table off of a hard drive directly through the BIOS.
This routine should work for any sector. It returns zero if no errors.
}
FUNCTION ReadSector(drive, head, track, sector : Byte;
buff : Pointer): Byte;
{ drive = 0 for drive A:, 1 = B:, }
{ 80h = first hard drive. }
BEGIN
ASM
mov [@result], 0 { setup for no error }
mov ax, 0201h { read 1 sector }
les bx, [buff] { es:bx -> buffer }
mov ch, [track]
mov cl, [sector]
mov dh, [head]
mov dl, [drive]
int 13h
jnc @@NoErr
mov [@result], ah
@@NoErr:
END
END;
VAR
buffer : Array[0..511] OF Byte;
BEGIN
WriteLn('Result is ', ReadSector($80, 0, 0, 1, @buffer));
ReadLn;
END.
[Back to HARDWARE SWAG index] [Back to Main SWAG index] [Original]