When the battery died and reset the system, could this have reverted the
BIOS to an earlier version that did not support the hard drive?
No. BIOS is a motherboard firmware program which is usually written to a ROM, PROM, EPROM or EEPROM. It does not a working battery to maintain the information stored in this fixed memory.
It does store volatile information in a place which needs power. But the actual BIOS program is not changed when the battery runs out. Only its settings are lost.
How can I get the BIOS to detect the hard drive (as it once did)?
Assuming the drive still works (e.g. no oils inside it which have turned into thick sludge), then all you should need to do is to power up the computer, press the relevant hotkey to inter the BIOS setup (usually ESC or DEL and enter the correct values. For ancient drives (say 40MiB) you manually entered the relevant values (using drive type 47) or selected one of the predefined drive types. For anything over 200MiB the system usually could auto detect.
And with the huge (1.28GB) drive you mentioned auto detect is almost a certain fact. Go to the firmware (BIOS), make sure that you have the IDE controller enabled (boards from that age usually had two IDE controllers for up to 4 drives), page up and down until you find auto detect and things should just work.
If it does not, then check if the drive spins up. If not check power.
Also make sure that you have the proper master slave settings, briefly:
- For one drive, set to single.
- For two drives set one drive to master, the other to slave.
(Note that for some drives Master & single settings are identical.)
- If you have a cable select cable then set the drive to cable select. This will turn the drive at the end of the cable into the master and a drive in the middle of the cable to slave.
Potential problems here:
- If you had two drives and removed one, leaving master/slave in a wrong state.
- If you move the drive to the middle of the cable on a CS cable.
- And as previously stated, check that the drive still spins up. 20 years is a long time. It might very well either not spin or not be able to move its heads.
Edit: given the questions in the comments and the lack of markup them I am adding this:
Early PCs (80286 era, about 1983) had some preprogrammed information for a number of harddisks. In the BIOS you could set a disk to:
"not installed" (aka type 0),
or to one to the predefined ones. As shown below
Write Landing
Type Cyls Hds precomp Zone Capacity
1 306 4 128 305 10M
2 615 4 300 615 21M
3 615 6 300 615 32M
...
Or to type 47: User inputted values
In addition to these types more modern computers (starting circa 80486 era) also had options called "auto" (for autodect) and LBA.
As for user input: Often a BIOS would limit the number which you could enter, even though the IDE standard supported bigger nummber. E.g. many motherboards had a BIOS which only allowed you to enter up to 16 heads. Since the size of a drive was defined by #heads * #tracks * #sectors_per_track this limited the maximum supported drive size.
If you are curious you can read more on that here, here2 or Google for it.
This means that you computer may not have worked with a drive larger than 504MiB (16 heads, 1024 tracks, 63 sectors/track). At the time there were three ways to work around that:
- Buy an IDE card with its own firmware (or buy a more modern motherboard).
- Use a small drive to boot from and let the OS discover the large drive after booting.
- Or install a custom overlay and let the disk appear differently, rewriting values as needed. Given the comment about an overlay I suspect that this is the case