VirtualBox

Changeset 49286 in vbox for trunk


Ignore:
Timestamp:
Oct 25, 2013 10:09:21 AM (11 years ago)
Author:
vboxsync
Message:

BIOS: Added invalid opcode handler.

Location:
trunk/src/VBox/Devices/PC/BIOS
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/BIOS/Makefile.kmk

    r48069 r49286  
    5353        serial.c \
    5454        system.c \
     55        invop.c \
    5556        timepci.c \
    5657        ps2mouse.c \
  • trunk/src/VBox/Devices/PC/BIOS/makefile

    r48069 r49286  
    3131
    3232OBJS =  bios.obj print.obj ata.obj floppy.obj floppyt.obj eltorito.obj &
    33         boot.obj keyboard.obj disk.obj serial.obj system.obj &
     33        boot.obj keyboard.obj disk.obj serial.obj system.obj invop.obj &
    3434        timepci.obj logo.obj ps2mouse.obj parallel.obj scsi.obj &
    3535        ahci.obj apm.obj apm_pm.obj pcibios.obj pciutil.obj vds.obj &
  • trunk/src/VBox/Devices/PC/BIOS/notes.txt

    r48069 r49286  
    7373  thinks it counts as real mode. Same ENTER/LEAVE problem as above.
    7474
     75- AIX 1.3 is a rare user of INT 15h/89h (switch to protected mode) service.
     76
     77- IBM OS/2 1.0/1.1 (but not other versions!) attempt to execute a 286 LOADALL
     78  instruction. LOADALL must be emulated for OS/2 to work properly. HIMEM.SYS
     79  version 2.03 and later also contains 286 LOADALL code but this will not be
     80  executed on 386+ processors.
     81
    7582
    7683 Notes on BIOS implementation
  • trunk/src/VBox/Devices/PC/BIOS/orgs.asm

    r48446 r49286  
    127127extrn           _keyboard_init:near
    128128extrn           _print_bios_banner:near
     129extrn           _inv_op_handler:near
    129130
    130131
     
    381382                ;; set up various service vectors
    382383                ;; TODO: This should use the table at FEF3h instead
     384                SET_INT_VECTOR 06h, BIOSSEG, int06_handler
    383385                SET_INT_VECTOR 11h, BIOSSEG, int11_handler
    384386                SET_INT_VECTOR 12h, BIOSSEG, int12_handler
     
    979981
    980982;; --------------------------------------------------------
     983;; INT 06h handler - Invalid Opcode Exception
     984;; --------------------------------------------------------
     985
     986int06_handler:
     987                pusha
     988                push    es
     989                push    ds
     990                C_SETUP
     991                call    _inv_op_handler
     992                pop     ds
     993                pop     es
     994                popa
     995                iret
     996
     997;; --------------------------------------------------------
    981998;; INT 13h handler - Diskette service
    982999;; --------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.

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