VirtualBox

Changeset 69025 in vbox


Ignore:
Timestamp:
Oct 10, 2017 3:10:39 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
118299
Message:

BIOS: Set INT 41h/46h in ATA setup rather than in assembler startup code.

Location:
trunk/src/VBox/Devices/PC/BIOS
Files:
2 edited

Legend:

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

    r63562 r69025  
    529529            if (device < 2)
    530530            {
    531                 uint8_t         sum, i;
    532                 fdpt_t __far    *fdpt;
    533 
    534                 if (device == 0)
     531                uint8_t             sum, i;
     532                fdpt_t __far        *fdpt;
     533                void __far * __far  *int_vec;
     534
     535                if (device == 0) {
    535536                    fdpt = ebda_seg :> &EbdaData->fdpt0;
    536                 else
     537                    int_vec = MK_FP(0, 0x41 * sizeof(void __far *));
     538                }
     539                else {
    537540                    fdpt = ebda_seg :> &EbdaData->fdpt1;
     541                    int_vec = MK_FP(0, 0x46 * sizeof(void __far *));
     542                }
     543                /* Set the INT 41h or 46h pointer. */
     544                *int_vec = fdpt;
    538545
    539546                /* Update the DPT for drive 0/1 pointed to by Int41/46. This used
  • trunk/src/VBox/Devices/PC/BIOS/orgs.asm

    r68611 r69025  
    582582                SET_INT_VECTOR 13h, BIOSSEG, int13_handler
    583583                SET_INT_VECTOR 76h, BIOSSEG, int76_handler
    584                 ;; INT 41h/46h: hard disk 0/1 dpt
    585                 ; TODO: This should be done from the code which
    586                 ; builds the DPTs?
    587                 SET_INT_VECTOR 41h, EBDA_SEG, 3Dh
    588                 SET_INT_VECTOR 46h, EBDA_SEG, 4Dh
     584                ;; The ATA init code sets up INT 41h/46h FDPT pointers
    589585                ret
    590586
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