Hi all,
Dne 7.6.2015 v 02:12 Vladimir napsal(a):
> Thank you very much for solving this riddle!
> And one more question for Rudolf: please tell, are you using atomDis
> utility to disassemble atombios into C code? Or there are some other
> special tools, which probably have more recent versions? (latest version of
> atomDis is already 4 years old...)
I think there was some effort to make VGA BIOS from scratch. I think the guys
used a script to rewrite it to C. I don't remember anymore.
Thats all I know,
Thanks
Rudolf
>
> On 3 June 2015 at 20:27, Rudolf Marek <r.marek(a)assembler.cz> wrote:
>
>> Hi all,
>>
>> First byte after IBM is usually a checksum. So in fact only two bytes
>> differ.
>> Now you may ask what it is... and it is a IOBASE :)
>>
>> typedef struct _ATOM_ROM_HEADER
>> {
>> ATOM_COMMON_TABLE_HEADER sHeader;
>> UCHAR> uaFirmWareSignature[4]; /*Signature to distinguish between
>> Atombios
>> and non-atombios,atombios should init it as "ATOM", don't change the
>> position */
>> USHORT usBiosRuntimeSegmentAddress;
>> USHORT usProtectedModeInfoOffset;
>> USHORT usConfigFilenameOffset;
>> USHORT usCRC_BlockOffset;
>> USHORT usBIOS_BootupMessageOffset;
>> USHORT usInt10Offset;
>> USHORT usPciBusDevInitCode;
>> USHORT usIoBaseAddress; <---------------this changes
>>
>> I guess IOBASE of PCI device changes also...
>>
>> USHORT usSubsystemVendorID;
>> USHORT usSubsystemID;
>> USHORT usPCI_InfoOffset;.
>> USHORT usMasterCommandTableOffset; /*Offset for SW to get all command
>> table
>> offsets, Don't change the position */
>> USHORT usMasterDataTableOffset; /*Offset for SW to get all data table
>> offsets, Don't change the position */
>> UCHAR ucExtendedFunctionCode;
>> UCHAR ucReserved;
>> }ATOM_ROM_HEADER;
>>
>> You can use atomDis to dump it I guess (Did not check if it dumps also the
>> header.
>>
>> Thanks
>> Rudolf
>>
>
>
>