Hello, OKUJI! > > Apprarently, get_diskinfo_standard (INT 13 AH=8h) returns success for > > every drive (Intel 440ZX, Award BIOS) > > Can you test this patch? Your patch doesn't work, but I like your style :-) Award BIOS returns zero values for the geometry, but it doesn't consider this as an error. This means that the carry flag is not set for non-existing disks. Number of sectors may not be 0 for a valid disk, because sectors are numbered beginning with 1. Following patch works for me: Index: asm.S =================================================================== RCS file: /gd/gnu/anoncvsroot/grub/stage2/asm.S,v retrieving revision 1.3 diff -u -r1.3 asm.S --- asm.S 1999/06/27 08:34:45 1.3 +++ asm.S 1999/07/30 06:32:44 @@ -596,6 +596,14 @@ .code16 movb $0x8, %ah int $0x13 /* do the operation */ + testb %ah, %ah + jnz 1f + /* bogus BIOSes may not return an error number */ + testb $0x3f, %cl /* 0 sectors means no disk */ + jnz 1f /* if non-carrier, then succeed */ + /* XXX 0x60 is one of the unused error numbers */ + movb $0x60, %ah +1: movb %ah, %bl /* save return value in %bl */ /* back to protected mode */ data32 =================================================================== Pavel Roskin