Ignore:
Timestamp:
Jun 8, 2013, 10:32:10 AM (11 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Standard boot procedure (INT 19h) works again.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13hBiosInit.asm

    r552 r553  
    2828    LOAD_BDA_SEGMENT_TO ds, ax
    2929
    30     ; Restore system INT 13h handler that we backuped
    31     les     ax, [TEMPORARY_VECTOR_FOR_SYSTEM_INT13h*4]
    32     mov     [BIOS_DISK_INTERRUPT_13h*4], ax
    33     mov     [BIOS_DISK_INTERRUPT_13h*4+2], es
    34 
    3530    ; Now install our handler and call 19h since non-standard motherboard BIOS did not
    3631    ; do that or our INT 19h hander was replaced by other BIOS.
     
    3833    mov     [BIOS_BOOT_LOADER_INTERRUPT_19h*4+2], cs
    3934    int     BIOS_BOOT_LOADER_INTERRUPT_19h  ; Does not return
     35
     36
     37;--------------------------------------------------------------------
     38; Int13hBiosInit_RestoreSystemHandler
     39;   Parameters:
     40;       Nothing
     41;   Returns:
     42;       Nothing
     43;   Corrupts registers:
     44;       AX, DS, ES
     45;--------------------------------------------------------------------
     46Int13hBiosInit_RestoreSystemHandler:
     47    LOAD_BDA_SEGMENT_TO ds, ax
     48
     49    ; Is our very late init handler in place
     50    cmp     WORD [BIOS_DISK_INTERRUPT_13h*4], Int13hBiosInit_Handler
     51    jne     SHORT .SystemHandlerAlreadyInPlace
     52
     53    les     ax, [TEMPORARY_VECTOR_FOR_SYSTEM_INT13h*4]
     54    mov     [BIOS_DISK_INTERRUPT_13h*4], ax
     55    mov     [BIOS_DISK_INTERRUPT_13h*4+2], es
     56.SystemHandlerAlreadyInPlace:
     57    ret
Note: See TracChangeset for help on using the changeset viewer.