VirtualBox

Changeset 36731 in vbox for trunk/src/VBox/Devices/PC


Ignore:
Timestamp:
Apr 19, 2011 3:51:47 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
71257
Message:

BIOS: Corrected EDD checksum calculation - two's complement is not one's complement.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/BIOS/rombios.c

    r36704 r36731  
    58865886        checksum=0;
    58875887        for (i=0; i<15; i++) checksum+=read_byte(ebda_seg, (&EbdaData->ata.dpte) + i);
    5888         checksum = ~checksum;
     5888        checksum = -checksum;
    58895889        write_byte(ebda_seg, &EbdaData->ata.dpte.checksum, checksum);
    58905890        }
     
    59345934        checksum=0;
    59355935        for (i=30; i<64; i++) checksum+=read_byte(DS, SI + i);
    5936         checksum = ~checksum;
     5936        checksum = -checksum;
    59375937        write_byte(DS, SI+(Bit16u)&Int13DPT->checksum, checksum);
    59385938        }
     
    62346234        checksum=0;
    62356235        for (i=0; i<15; i++) checksum+=read_byte(ebda_seg, (&EbdaData->ata.dpte) + i);
    6236         checksum = ~checksum;
     6236        checksum = -checksum;
    62376237        write_byte(ebda_seg, &EbdaData->ata.dpte.checksum, checksum);
    62386238        }
     
    62826282        checksum=0;
    62836283        for (i=30; i<64; i++) checksum+=read_byte(DS, SI + i);
    6284         checksum = ~checksum;
     6284        checksum = -checksum;
    62856285        write_byte(DS, SI+(Bit16u)&Int13DPT->checksum, checksum);
    62866286        }
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette