VirtualBox

Ignore:
Timestamp:
Jul 10, 2023 1:46:21 PM (22 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
158203
Message:

BIOS: Added a way for the APM BIOS to halt the virtual CPU through port I/O instead of HLT to solve problems with obstinate guests (see bugref:6549).

File:
1 edited

Legend:

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

    r98103 r100456  
    3838public          apm_pm16_entry
    3939
     40;
     41; This module is for protected mode only and therefore
     42; 286+ only
     43;
    4044SET_DEFAULT_CPU_286
    4145
     
    8286
    8387apmf_idle:                              ; function 05h
     88if 1
     89                ; Port I/O based HLT equivalent using a custom BIOS I/O port.
     90                ; Works in situations where HLT can't be used, such as Windows 3.1
     91                ; in Standard mode or DR-DOS 5.0/6.0 EMM386.SYS.
     92                push    si
     93                push    cx
     94                push    dx
     95
     96                mov     dx, 40Fh
     97                mov     si, offset hlt_string
     98                mov     cx,8
     99                rep outsb
     100
     101                pop     dx
     102                pop     cx
     103                pop     si
     104
     105                jmp     apmw_success
     106
     107hlt_string      db      'Prochalt'
     108
     109else
    84110                ;
    85111                ; Windows 3.1 POWER.DRV in Standard mode calls into APM
     
    95121                hlt
    96122                jmp     apmw_success
     123endif
    97124
    98125apmf_busy:                              ; function 06h
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