VirtualBox

Changeset 84502 in vbox


Ignore:
Timestamp:
May 25, 2020 2:30:24 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
138231
Message:

BIOS: Use a different heuristic for determining whether INT 19h needs to reset or not.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/BIOS/orgs.asm

    r82968 r84502  
    15921592; The approach used is faking a warm reboot (which just skips showing the
    15931593; logo), which is a bit more than what we need, but hey, it's fast.
    1594                 mov     bp, sp
    1595                 mov     ax, [bp+2]      ; TODO: redundant? address via sp?
    1596                 cmp     ax, BIOSSEG     ; check caller's segment
    1597                 jz      bios_initiated_boot
    1598 
     1594;
     1595; Initially we checked if the caller is in the F000h segment, i.e. the
     1596; system BIOS. But option ROMs can also legitimately invoke INT 19h so
     1597; we need different heuristics.
    15991598                xor     ax, ax
    16001599                mov     ds, ax
     1600                mov     es, ax
     1601                cld
     1602                ; Check if the boot sector area is untouched
     1603                mov     cx, 256
     1604                mov     di, 7C00h
     1605                repe scasw
     1606                jcxz    bios_initiated_boot
     1607
    16011608                mov     ax, 1234h
    16021609                mov     ds:[472], ax
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