On 7/23/2014 1:33 AM, Enrico Lazzerini wrote:
Thanks to Jim, a world was opened for me. Using the
original BIOS of my IBM
AT type1 motherboard that consists of 2 PROM each with 32KB I used BIOSUTIL
to add the geometry of my hard disk to position 15 (the 1st free position)
by recalculating the checksum with BIOSUTIL (this time understanding how it
works) . The difference between the original BIOS and the BIOS modified
compared with WinHex is as follows:
Offsets: hexadec.
E4F1: 00 68 0368h=872cylinders
E4F2: 00 03
E4F3: 00 10 Head=16
E4F6: 00 FF
E4F7: 00 FF
E4FD: 00 68 0368h=872landing zone
E4FE: 00 03
E4FF: 00 24 36 sector/track
FFFF: AD A5
9 difference (s) found.
The table with the disk's descriptions begins with disk 1 from E400
ending with the disc 47 to E6EF while from E4F1 to E4FF were inserted the
values of the new Hard Disk. BIOSUTIL has taken steps to
change just only the byte FFFF from AD (1010 0101) to A5 (1010 1101) so that
the checksum of the file with the modified bios is identical (?) to
the contents of the original file of the PROM.
All to means: BIOSUTUL works fine with original IBM BIOS but NOT with AMI
BIOS.
The problem seems to be solved for the table discs, but as with the original
BIOS to power had always the same datas: date, time, type drive A, 512KB
DRAM, now all these values ​​vary at each switch on (eg, the
base memory is to 0KB instead 512KB).
How can I insert data into the BIOS for to have the correct ones stable for
final configuration of the machine that I have?
Enrico
You cannot use a utility that assumes the 47 entry bios table. The
table in the AT bios only has 16 entries, if i recall.
A lot of these utilities defaulted the "47" type entry to some value so
that you didn't have to enter the disk geometry info when you selected
type 47. some were brain damaged and used the 47 entry type when they
didn't even have 47 entries. It is afterall just a number that the bios
can use as it pleases.
You need to write a utility in the tool of your choice to:
take the image of each prom in as data.
Locate the table entry in the AT table you wish to overwrite.
Compute the checksum of the bytes. If I recall when you total the byte
sum of the bios, throwing away the overflows, you get 0
Alter that entry, keeping in mind that the two rom images you have are
even and odd bytes.
Alter a byte in the bios somewhere to bring the byte checksum back to
0. As you saw with the snippet of code, you just need a 0 result when
the bios or ROS values are summed. You can pick an area near the end of
the image and just change a byte to get the 0 sum.
Write the even and odd values to eproms that are compatable with the AT
motherboard.
The clone AT builders were clever and made the motherboards eprom
friendly The roms used on the AT were not so friendly, and didn't lend
themselves, and have been discussed extensively in other posts.
Buy or obtain an ISA Post card to be sure your AT is crashing with that
code. If you also read the code there is an output to port 80 on a
frequent basis, and the one for the ROS checksum being wrong.
For a crude and hacked test, you could also locate the code for this,
since you have the listing and no-op out the section of the sum test
that causes it to fail, so this test always passes.
Jim