VOGONS


Add BIOS to AHA-1510B

Topic actions

First post, by wasup

User metadata
Rank Newbie
Rank
Newbie

Hi all.

I have an Adaptec AHA-1510B scsi card and wanted to convert it to a AHA-1520B. As i understand the AHA-1510B and AHA-1520B are the same, except the AHA-1510B is missing the bios.
I have compared the two cards and fitted the missing components. All that was missing is 1 x 0 ohm resistor, 2 x 10k resistors, a ls245 and the BIOS rom + socket. I have used the AHA-1520B 1.15 BIOS.

After adjusting the dip switch to the correct positions (from the AHA-1520B) the card is able load the BIOS correctly but the BIOS reports that it is unable to find a AHA-1520B/AHA-1522B in the system. I suspect that the controller IC on each variant of this card is programmed with a unique identifier or model number so that config software and or BIOS knows what features the card has.

To make this work i am guessing either the controller chip needs this identifier/model number reprogrammed, or the BIOS to be modified. Reprogramming the controller chip is likely to be the harder of the two.

Does anyone have more knowledge than me, which is very little, about the inner workings of the BIOS rom? I am thinking that the BIOS code probes the system for a known card (in this case a AHA-1520B/AHA-1522B), the card sends its identifier back and the BIOS code either matches that and carries on loading or doesn't and reports the card as unable to be found. Assuming this is how it works, i expect it would be possible to patch this check to be able to accept the response that the AHA-1510B returns instead.

Is anyone able to help with this, or point me in the right direction to able to do this myself? I have opened the BIOS bin file up in a hex editor an can see that the error message is located at address 74BE. I have searched for this location though out the rest of the file in the hope that i could see what calls this message and possibly reverse engineer whats going on from there, but i was unable to find it, so its obviously not called directly.

Thanks.

Reply 1 of 1, by Predator99

User metadata
Rank l33t
Rank
l33t

If really the BIOS detection is the reason for this behaviour this should not be a difficult task.

Convert the ROM to a.COM-file to make debugging easier. Its located in RAM then and breakpoints can be set.

Remove the BIOS from the AHA-1520B, load the .COM in the debugger, execute the code step by step and try to get the message that the adapter is detected.

Do the same for the AHA-1510B (also without BIOS) and note where the code execution differs.

With this method you can trace the location where detection is done and patch the BIOS accordingly.