"So, why the difference ?" :
On the box of any hard drive you may find the
phrase, " So, be aware, for
example, that a hard drive labeled as 850MB (which carries the more
detailed number of 853.6MB) is actually 814.1 binary Megabytes.
All Hard Drive manufacturers refer to their drive sizes using
what I prefer they would call "Million Bytes,"
or now even "Billion Bytes." However, they
still wish to use the same words employed by Programmers and the Memory
manufacturers: "Megabytes" and "Gigabytes" even though they are using
different values!
I want to correct some things that I've heard over the years about why one might not be able to access everything on a large drive. I once saw the following comment on a BBS:
"You have a large disk (i.e., over 528 MB) and DOS can't see that much disk space without some sort of disk driver. ...." (WRONG!)
Whether it was intended or not, the impression often given by a comment like this is that "DOS" [usually Microsoft� MS-DOS] itself caused the 528 MB problem. This is just NOT true! As usual, the reality of the situation is a bit more complex:
As long ago
as the release of MS�-DOS version 4, it was already
possible to create HD "partitions" exceeding
TWO GIGA-bytes * using the FDISK program.
*(
NOTE: This is now the HD "size barrier" for many new computer
users! There will be more about this in the next HTML
document, including an explanation and a table which lays out all of
the details. Back to the top)
The real REASON that DOS did not work with large drives for some of us [without additional software] is because our BIOS ROM chips were never updated to handle them! Today, new computers are almost always sold with what may be called a "geometry translating" BIOS.
Actually, even this is not completely true!
Microsoft� and other DOSes, along with a host of application programs, use the code in the BIOS to handle a number of hardware related actions involving your display, keyboard, I/O ports, disk drives, etc. One of these Interrupts, INT 13 (hex), has a slew of functions which include reading and writing sectors on your disks. After many years of use, the exact code embedded within the BIOS chips had become an accepted standard.
So, what's the problem? Well, it first started with the way that IBM�
designed the INT 13 subroutines to access the model XT hard drives. The
scheme, called CHS (Cyliner/Head/Sector),
was designed with some limitations. However, this alone, was not
the culprit. The BIOS code, and DOS along with it, can, in
theory, address up to almost
7.9 GIGA Bytes. (At 1 GB = 1,073,741,824
bytes, that's still quite a large number even by today's standards!!)
[ The HD size problem was destined to happen by
an all too often unfortunate
fact: that
people who should really be working together on common projects, simply do
not!
The reasons are quite varied, and may be due to competition, politics, greed,
'politics' within a company, or simply ignorance and lack of communication!
The idea of a solitary genius making breakthrough discoveries runs deep in
the American culture; just as the stories we've heard about "commitees." But
there have been many positive results, not to mention a greater consistency,
from shared efforts. And I believe the Internet
will continue to increase the opportunities for collaboration.]
Some time later, as the size of hard drives grew, some person or group within the HD manufacturing industry made another decision on HD parameters. And, even though it meant that it was now theoretically possible to access over 137 Billion bytes (137,000,000,000 !), the fact that their new scheme had to interact with the BIOS, is what caused the problem.
The Conflict Between the INT 13 BIOS
Code and a HD Manufacturer's scheme:
Do you see the problem?
The Original IBM� BIOS Code
"Maximum" Specs
The IBM� / Western
Digital� developed
(IDE/AT) HD Interface "Maximum" Specs
___1024 Cylinders (or Tracks)
___65,536 Cylinders (or 'Tracks')
____256 Heads (or 'Sides')
_____,_16 Heads (or 'Sides')
_____63 Sectors/Track
_____,256 Sectors/Track
So, we arrive at the 528 "Million-Bytes" barrier as follows:
x 63 Sectors/Track x 512 Bytes/Sector = 528,482,304 Bytes. Or, 504 MB (exactly!), using 1MB = 1,048,576 bytes. |
Daniel, "The Starman."
Revised and Edited, 12 JUL 97, for the Internet.
The next document in this series is :
What Is this New 2.1 Billion-Byte Limit ?
Back to my "Computers and Communications" Page.
Back to "The Starman's Homepage".
You are the vistor since July 18, 1998.