VirtualBox

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


Ignore:
Timestamp:
Jun 6, 2012 7:04:57 PM (13 years ago)
Author:
vboxsync
Message:

BIOS: More compatible IVT initialization.

File:
1 edited

Legend:

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

    r41084 r41603  
    256256;               jmp     normal_post
    257257
     258
     259                ;; routine to write the pointer in DX:AX to memory starting
     260                ;; at DS:BX (repeat CX times)
     261                ;; - modifies BX, CX
     262set_int_vects   proc    near
     263
     264                mov     [bx], ax
     265                mov     [bx+2], dx
     266                add     bx, 4
     267                loop    set_int_vects
     268                ret
     269
     270set_int_vects   endp
     271
    258272normal_post:
    259273                ;; shutdown code 0: normal startup
     
    306320                call    pmode_setup
    307321
    308                 ;; set all interrupts to default handler
     322                ;; set all interrupts in 00h-5Fh range to default handler
    309323                xor     bx, bx
    310324                mov     ds, bx
    311                 mov     cx, 78h         ; leave the rest as zeros
     325                mov     cx, 60h         ; leave the rest as zeros
    312326                mov     ax, dummy_iret
    313327                mov     dx, BIOSSEG
    314 
    315 post_default_ints:
    316                 mov     [bx], ax
    317                 mov     [bx+2], dx
    318                 add     bx, 4
    319                 loop    post_default_ints
    320 
    321                 ;; set vector 79h to zero
    322                 ;; this is used by 'guardian angel' protection system
    323                 ;; TODO: Really? Why?
    324 
     328                call    set_int_vects
     329
     330                ;; also set 68h-77h to default handler; note that the
     331                ;; 60h-67h range must contain zeros for certain programs
     332                ;; to function correctly
     333                mov     bx, 68h * 4
     334                mov     cx, 10h
     335                call    set_int_vects
     336               
    325337                ;; base memory in K to 40:13
    326338                mov     ax, BASE_MEM_IN_K
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