Changeset 96 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Boot


Ignore:
Timestamp:
Jan 28, 2011, 4:29:42 PM (13 years ago)
Author:
aitotat
google:author:
aitotat
Message:

Changes to XTIDE Universal BIOS:

  • Cleaned boot loader code some more.
Location:
trunk/XTIDE_Universal_BIOS/Src/Boot
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm

    r92 r96  
    1919BootMenuPrint_TitleStrings:
    2020    mov     si, ROMVARS.szTitle
    21     call    PrintNullTerminatedStringFromCSSIandSetCF
    22     call    BootMenuPrint_Newline
     21    call    BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
     22    CALL_DISPLAY_LIBRARY PrintNewlineCharacters
    2323    mov     si, ROMVARS.szVersion
    24     jmp     PrintNullTerminatedStringFromCSSIandSetCF
    25 
    26 
    27 ;--------------------------------------------------------------------
    28 ; BootMenuPrint_Newline
     24    jmp     BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
     25
     26
     27;--------------------------------------------------------------------
     28; BootMenuPrint_ClearScreen
    2929;   Parameters:
    3030;       Nothing
     
    3535;--------------------------------------------------------------------
    3636ALIGN JUMP_ALIGN
    37 BootMenuPrint_Newline:
    38     CALL_DISPLAY_LIBRARY PrintNewlineCharacters
    39     ret
    40 
    41 
    42 ;--------------------------------------------------------------------
    43 ; BootMenuPrint_ClearScreen
    44 ;   Parameters:
    45 ;       Nothing
    46 ;   Returns:
    47 ;       Nothing
    48 ;   Corrupts registers:
    49 ;       AX
    50 ;--------------------------------------------------------------------
    51 ALIGN JUMP_ALIGN
    5237BootMenuPrint_ClearScreen:
    53     push    di
    5438    mov     ax, ' ' | (MONO_NORMAL<<8)
    5539    CALL_DISPLAY_LIBRARY ClearScreenWithCharInALandAttrInAH
    56     pop     di
    57     ret
    58 
    59 
    60 ;--------------------------------------------------------------------
    61 ; Translates and prints drive number.
    62 ;
    63 ; BootMenuPrint_TranslatedDriveNumber
    64 ;   Parameters:
    65 ;       DL:     Untranslated drive number
    66 ;       DS:     RAMVARS segment
    67 ;   Returns:
    68 ;       Nothing
    69 ;   Corrupts registers:
    70 ;       AX, DI
    71 ;--------------------------------------------------------------------
    72 ALIGN JUMP_ALIGN
    73 BootMenuPrint_TranslatedDriveNumber:
    74     push    dx
    75     push    bx
    76 
    77     call    DriveXlate_ToOrBack
    78     eMOVZX  ax, dl      ; Drive number to AL
    79     CALL_DISPLAY_LIBRARY PrintWordFromAXwithBaseInBX
    80     mov     al, ' '     ; Print space
    81     CALL_DISPLAY_LIBRARY PrintCharacterFromAL
    82 
    83     pop     bx
    84     pop     dx
    8540    ret
    8641
     
    155110.HardDiskMenuitemForForeignDrive:
    156111    mov     si, g_szforeignHD
    157     jmp     PrintNullTerminatedStringFromCSSIandSetCF
     112    jmp     BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
    158113
    159114
     
    365320
    366321;--------------------------------------------------------------------
    367 ; PrintNullTerminatedStringFromCSSIandSetCF
     322; BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
    368323;   Parameters:
    369324;       CS:SI:  Ptr to NULL terminated string to print
     
    374329;--------------------------------------------------------------------
    375330ALIGN JUMP_ALIGN
    376 PrintNullTerminatedStringFromCSSIandSetCF:
     331BootMenuPrint_NullTerminatedStringFromCSSIandSetCF:
    377332    CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI
    378333    stc
  • trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrintCfg.asm

    r88 r96  
    2020ALIGN JUMP_ALIGN
    2121BootMenuPrintCfg_ForOurDrive:
    22     call    BootMenuPrintCfg_HeaderAndChangeLine
     22    mov     si, g_szCfgHeader
     23    call    BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
    2324    call    BootMenuPrintCfg_GetPointers
    24     call    BootMenuPrintCfg_PushAndFormatCfgString
    25     jmp     BootMenuPrint_Newline
     25    ; Fall to PushAndFormatCfgString
    2626
    2727
    2828;--------------------------------------------------------------------
    29 ; Prints configuration header and changes for printing values.
    30 ;
    31 ; BootMenuPrintCfg_HeaderAndChangeLine
    32 ;   Parameters:
    33 ;       Nothing
    34 ;   Returns:
    35 ;       Nothing
    36 ;   Corrupts registers:
    37 ;       AX, SI, DI
    38 ;--------------------------------------------------------------------
    39 ALIGN JUMP_ALIGN
    40 BootMenuPrintCfg_HeaderAndChangeLine:
    41     mov     si, g_szCfgHeader
    42     call    PrintNullTerminatedStringFromCSSIandSetCF
    43     jmp     BootMenuPrint_Newline
    44 
    45 
    46 ;--------------------------------------------------------------------
    47 ; Return all necessary pointers to drive information structs.
    48 ;
    49 ; BootMenuPrintCfg_GetPointers
    50 ;   Parameters:
    51 ;       DS:DI:  Ptr to DPT
    52 ;   Returns:
    53 ;       DS:DI:  Ptr to DPT
    54 ;       ES:BX:  Ptr to BOOTNFO
    55 ;       CS:SI:  Ptr to IDEVARS
    56 ;   Corrupts registers:
    57 ;       AX, DL
    58 ;--------------------------------------------------------------------
    59 ALIGN JUMP_ALIGN
    60 BootMenuPrintCfg_GetPointers:
    61     mov     dl, [di+DPT.bDrvNum]        ; Load Drive number to DL
    62     call    BootInfo_GetOffsetToBX      ; ES:BX now points...
    63     LOAD_BDA_SEGMENT_TO es, ax          ; ...to BOOTNFO
    64     mov     al, [di+DPT.bIdeOff]
    65     xchg    si, ax                      ; CS:SI now points to IDEVARS
    66     ret
    67 
    68 
    69 ;--------------------------------------------------------------------
    70 ; Pushes all string formatting parameters and prints
    71 ; formatted configuration string.
    72 ;
    73 ; BootMenuPrintCfg_PushAndFormatCfgString
     29; PushAndFormatCfgString
    7430;   Parameters:
    7531;       DS:DI:  Ptr to DPT
     
    8238;--------------------------------------------------------------------
    8339ALIGN JUMP_ALIGN
    84 BootMenuPrintCfg_PushAndFormatCfgString:
     40PushAndFormatCfgString:
    8541    push    bp
    86 
    8742    mov     bp, sp
    8843    ; Fall to first push below
     
    9752;       Nothing (jumps to next push below)
    9853;   Corrupts registers:
    99 ;       AX, DX
     54;       AX
    10055;--------------------------------------------------------------------
    10156PushAddressingMode:
    102     mov     dx, bx              ; Backup BX to DX
     57    xchg    ax, bx
    10358    mov     bx, MASK_DPT_ADDR   ; Load addressing mode mask
    10459    and     bl, [di+DPT.bFlags] ; Addressing mode now in BX
    10560    push    WORD [cs:bx+.rgszAddressingModeString]
    106     mov     bx, dx
     61    xchg    bx, ax
    10762    jmp     SHORT .NextPush
    10863ALIGN WORD_ALIGN
     
    208163
    209164;--------------------------------------------------------------------
    210 ; Prints formatted configuration string from parameters pushed to stack.
    211 ;
    212 ; BootMenuPrintCfg_ValuesFromStack
     165; PrintValuesFromStack
    213166;   Parameters:
    214167;       Stack:  All formatting parameters
     
    218171;       AX, SI, DI
    219172;--------------------------------------------------------------------
    220 BootMenuPrintCfg_ValuesFromStack:
     173PrintValuesFromStack:
    221174    mov     si, g_szCfgFormat
    222     jmp     PrintNullTerminatedStringFromCSSIandSetCF
     175    jmp     BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
     176
     177
     178;--------------------------------------------------------------------
     179; BootMenuPrintCfg_GetPointers
     180;   Parameters:
     181;       DS:DI:  Ptr to DPT
     182;   Returns:
     183;       DS:DI:  Ptr to DPT
     184;       ES:BX:  Ptr to BOOTNFO
     185;       CS:SI:  Ptr to IDEVARS
     186;   Corrupts registers:
     187;       AX, DL
     188;--------------------------------------------------------------------
     189ALIGN JUMP_ALIGN
     190BootMenuPrintCfg_GetPointers:
     191    mov     dl, [di+DPT.bDrvNum]        ; Load Drive number to DL
     192    call    BootInfo_GetOffsetToBX      ; ES:BX now points...
     193    LOAD_BDA_SEGMENT_TO es, ax          ; ...to BOOTNFO
     194    mov     al, [di+DPT.bIdeOff]
     195    xchg    si, ax                      ; CS:SI now points to IDEVARS
     196    ret
  • trunk/XTIDE_Universal_BIOS/Src/Boot/BootVars.asm

    r90 r96  
    6262    cli                                 ; Disable interrupts
    6363    LOAD_BDA_SEGMENT_TO ss, sp
    64 ;   eLSS    sp, ss:BOOTVARS.dwPostStack ; Expanded macro to remove
    65                                         ; unneeded CLI instruction
    6664%ifndef USE_386
    6765    mov     sp, [ss:BOOTVARS.dwPostStack]
Note: See TracChangeset for help on using the changeset viewer.