Changeset 121 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers


Ignore:
Timestamp:
Feb 28, 2011, 5:13:38 PM (13 years ago)
Author:
aitotat
google:author:
aitotat
Message:

Changes to XTIDE Universal BIOS:

  • Endianness is now corrected for ATA device names.
  • Converted all BootVars.asm functions to macros in BootVars.inc.
  • Display library is now initialized second time before trying to display boot menu.
File:
1 edited

Legend:

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

    r96 r121  
    1818ALIGN JUMP_ALIGN
    1919Int19hMenu_BootLoader:
     20    ; Store POST stack pointer
    2021    LOAD_BDA_SEGMENT_TO ds, ax
    21     call    BootVars_StorePostStackPointer
     22    STORE_POST_STACK_POINTER
    2223
    2324    ; Install new INT 19h handler now that BOOTVARS has been initialized
     
    3536ALIGN JUMP_ALIGN
    3637DisplayBootMenu:
    37     call    BootVars_SwitchToBootMenuStack
     38    SWITCH_TO_BOOT_MENU_STACK
     39    CALL_DISPLAY_LIBRARY InitializeDisplayContext
    3840    call    RamVars_GetSegmentToDS
    3941    ; Fall to .ProcessMenuSelectionsUntilBootable
     
    5254    call    BootSector_TryToLoadFromDriveDL
    5355    jnc     SHORT .ProcessMenuSelectionsUntilBootable   ; Boot failure, show menu again
    54     call    BootVars_SwitchBackToPostStack
     56    SWITCH_BACK_TO_POST_STACK
    5557    ; Fall to JumpToBootSector
    5658
     
    6870    push    bx                              ; Push boot sector offset
    6971    call    ClearSegmentsForBoot
    70     xor     dh, dh                          ; Device supported by INT 13h
    7172    retf
    7273
     
    8182ALIGN JUMP_ALIGN
    8283Int19hMenu_RomBoot:
    83     call    BootVars_SwitchBackToPostStack
     84    SWITCH_BACK_TO_POST_STACK
    8485    call    ClearSegmentsForBoot
    8586    int     INTV_BOOT_FAILURE       ; Never returns
     
    9192;       Nothing
    9293;   Returns:
     94;       DX:     Zero
    9395;       DS=ES:  Zero
    9496;   Corrupts registers:
    95 ;       AX
     97;       Nothing
    9698;--------------------------------------------------------------------
    9799ALIGN JUMP_ALIGN
    98100ClearSegmentsForBoot:
    99     xor     ax, ax
    100     mov     ds, ax
    101     mov     es, ax
     101    xor     dx, dx                  ; Device supported by INT 13h
     102    mov     ds, dx
     103    mov     es, dx
    102104    ret
Note: See TracChangeset for help on using the changeset viewer.