VOGONS


First post, by Cepsia

User metadata
Rank Newbie
Rank
Newbie

I recently acquired an old Hitachi HL 500 and am now faced with the challenge of getting the hard drive to function. Originally, this model came with either a 20 or 40 MB hard drive. However, an 80 MB drive was retrofitted around 1991. Unfortunately, I am unable to make any settings for the hard drive geometry in the BIOS. there are only two presets for 20 and 40 MB (0 and 1 as default). If I enter other values, for example 9, the hard drive is recognized as 36 MB, even though that was never an intended option. Does anyone have any idea how I can find the correct setting without trying everything from 0 to 99?

Thanks in advance,
Cepsia

Reply 1 of 1, by Ryccardo

User metadata
Rank Member
Rank
Member

Who says the firmware supported the disk directly and an option ROM or DDO (ie software-loaded option ROM, like the modern "XTIDE Universal BIOS" and "optromloader") was not being used? 😀

Anyway - how the numbered presets work is that the information is stored somewhere in memory (computer's ROM or drive controller's option ROM) in this format: http://www.minuszerodegrees.net/misc/at_fdpt.pdf and by the time the OS is launched, interrupt 0x41 points at the appropriate preset for the first HDD
So a possible approach would be to select type 1, find out what address interrupt 41 is pointing at (if I did the math right, that would be found at 0000:0208, so you read 8 bytes from there to find the address, then you read 16 bytes from there to read out the settings for type 1), repeat for type 2, then dump the appropriate ROM and try to find those bytes there, hopefully they're consecutive...

I'm fairly sure there's a program that automates this but I can't find it 🙁 , or rather I have found https://aeb.win.tue.nl/linux/hdtypes/hdtypes-1.html which seems to do that but isn't the one I remember and running Linux on that PC will probably be a bit hard 😀
Update - it seems to be GSETUP

There won't be 99 settings I hope, 46 (minus one, as "15" is used to indicate "look at another SRAM byte to find the 16-or-higher setting) was traditionally the maximum before most firmwares gave up and added custom type 47 😀
In fact, could it be that your firmware only supports 2 types and the following ones are reading from other-purpose-bytes in the ROM?