From owner-freebsd-hackers Sat Jan 6 03:49:04 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id DAA14455 for hackers-outgoing; Sat, 6 Jan 1996 03:49:04 -0800 (PST) Received: from relay5.UU.NET (relay5.UU.NET [192.48.96.15]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id DAA14444 for ; Sat, 6 Jan 1996 03:48:49 -0800 (PST) Received: from uucp1.UU.NET by relay5.UU.NET with SMTP id QQzxil24978; Sat, 6 Jan 1996 06:48:45 -0500 (EST) Received: from uanet.UUCP by uucp1.UU.NET with UUCP/RMAIL ; Sat, 6 Jan 1996 06:48:46 -0500 Received: by crocodil.monolit.kiev.ua; Sat, 6 Jan 96 13:43:59 +0200 Received: (from dk@localhost) by dog.farm.org (8.6.11/dk#3) id NAA12788; Sat, 6 Jan 1996 13:15:22 +0200 Date: Sat, 6 Jan 1996 13:15:22 +0200 From: Dmitry Kohmanyuk Message-Id: <199601061115.NAA12788@dog> To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch) Cc: freebsd-hackers@freebsd.org Subject: Re: HELP!!! THIS IS AN EMERGENCY (fwd) Newsgroups: cs-monolit.gated.lists.freebsd.hackers Reply-To: dk+@ua.net X-Newsreader: TIN [version 1.2 PL2] Sender: owner-hackers@freebsd.org Precedence: bulk In article you wrote: > > c = 10 bits = 2^10 = 1024. Not 65536. > This is the BIOS-visible part. BSD can go beyond this, even for disks > where the first part must be accessible to the BIOS (like boot disks). ooh, but when I have >=1024 c disk with non-BSD occupying the first part of it, I still _cannot_ boot BSD without installing some lame s/w like diskmanager (which I hate to use and don't have anyway - and I have LBA drive and LBA IDE controller). Or is there LBA support in the works? Or should I still answer "no" to people with big drives asking can FreeBSD do the same as OS/2 (e.g.) does? > No. Register 0x1f6 does only use bits 0 through 3 for head addressing > (16 heads), bit 4 selects the primary/secondary drive, bits 5/6 select > the sector size, bit 7 is used for ECC usage. (van Gilluwe, p 525). > Both are irrelevant for us, since they belong to DOS. > The INT 0x13 interface traditionally used 10 bits for cylinder > numbers, and an entire byte for head numbers, though the hardware > registers limit the head number to 0..15. hmm, not so precisely. Any AWARD or AMI BIOS since '93 (or '94?) supports the 12-bit cylinder addressing. Read Ralf Brown's Interrupt List for details. or I would just quote it here: --------B-1302------------------------------- 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 #0138) AL = number of sectors transferred 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 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 SeeAlso: AH=03h,AH=0Ah,AH=06h"V10DISK.SYS",AH=21h"PS/1" - > van Gilluwe claims that the topmost two bits of %dh could be used as > an extended cylinder number. Dunno which BIOSes support this. -- "Emacs is a fine O/S, but I still prefer UNIX." - Tom Christiansen