Image Map Image Map
Results 1 to 9 of 9

Thread: BIOS cylinders

  1. #1

    Default BIOS cylinders

    I noticed that there is sometimes an issue where the BIOS reports the number of cylinders as X, but what it really means is X+1. A long time ago I had a disk tool that would do an extra cylinder check if you asked it to, and I noticed that the powerquest line of tools had an option for this /CEC which is to check for extra cylinders. Is there a definitive way to find out (besides trying to read that cylinder and seeing if you get an error)? The way the /CEC is worded makes me think they actually tried to detect more than one extra cylinder... This is probably just for standard int13 (not extended which gives the number of sectors/LBA).

  2. #2
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    27,669
    Blog Entries
    20

    Default

    There was some confusion in reporting the disk parameters in the early days. Did one report the number of cylinders or the maximum cylinder number? Not everyone agreed.

  3. #3

    Default

    yeah the dos BIOS would work with cylinders calculated from 1, but heads calculated from 0 etc, drives calculated from 0... I dont know why cylinders was the odd one out calced from 1.

  4. #4
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    27,669
    Blog Entries
    20

    Default

    Not so--it was the sector number that was based at 1. Cylinders were always 0-based.

  5. #5

    Default

    Why they would do it one way (heads, cylinders start at 0) and sectors start at 1 is baffling, but I'm sure there is some old story about it.

    As far as whether the cylinders represents the maximum cylinder or the number of cylinders, is there a good way to test this? It seems like I was trying to read that block as a test once and it would lock up on some systems - is there a better way?

  6. #6

    Default

    doh, your right. my bad memory!

  7. #7
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    27,669
    Blog Entries
    20

    Default

    Quote Originally Posted by alank2 View Post
    Why they would do it one way (heads, cylinders start at 0) and sectors start at 1 is baffling, but I'm sure there is some old story about it.

    As far as whether the cylinders represents the maximum cylinder or the number of cylinders, is there a good way to test this? It seems like I was trying to read that block as a test once and it would lock up on some systems - is there a better way?
    The answer to the first question is "tradition". Even on common floppy disks, the first sector is 1--but there are exceptions where the first sector is something other than 1, say 192. At least in ST506-format disks, this is neither a controller nor a disk issue, as one can write ID headers with just about any 8 bit value in this field--the numbering doesn't even have to be consecutive. The convention is strictly a BIOS issue. IDE drives, of course have the convention embedded in their firmware. SCSI drives are LBA-addressed, so not applicable--if a SCSI drive is mapped to a CHS-type addressing, it's done by software.

    As to the second question, it depends on the interface. IDE and ESDI drives will strictly enforce the highest addressable cylinder. In ST506-interface drives, it's again a BIOS convention. So long as the drive is mechanically and electrically able to position to a cylinder, it can be accessed--any limits are again due to the BIOS.

    A few years ago, I posted a little program that accessed the (ST506-interface) controller directly to determine what the actual limits were, via a binary-search type algorithm. You start by trying to address cylinder 1023; if that doesn't work, then cylinder 511. If that works, try cylinder 767 and so on. It doesn't take too many hits (maximum 10) to figure out what the cylinder geometry is.

  8. #8

    Default

    Isn't this BIOS behavior related to the last track being reserved for heads parking zone?
    This would make perfect sense: if there's 1000 tracks, BIOS reports to the OS that there's 999, so that the OS doesn't use the last one, potentially damaged by landing heads.

  9. #9
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    27,669
    Blog Entries
    20

    Default

    Usually, the "parking zone' isn't counted in the cylinder count.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •