Changeset 90 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Initialization


Ignore:
Timestamp:
Jan 27, 2011, 11:31:31 AM (14 years ago)
Author:
Tomi Tilli
google:author:
aitotat
Message:

Changes to XTIDE Universal BIOS:

  • Removed INT 13h format and diagnostics functions.
  • Removed INT 18h callback handler.
  • Removed configuration for early/late initialization. Now XT builds always use late and AT build early initialization.
  • Reduced number of supported IDE controllers from 5 to 4.
  • Removed reserved configuration bytes.
  • Removed simple and system boot loaders.
Location:
trunk/XTIDE_Universal_BIOS/Src/Initialization
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm

    r33 r90  
    1 ; File name     :   Initialize.asm
    2 ; Project name  :   IDE BIOS
    3 ; Created date  :   23.3.2010
    4 ; Last update   :   23.8.2010
    5 ; Author        :   Tomi Tilli
     1; Project name  :   XTIDE Universal BIOS
    62; Description   :   Functions for initializing the BIOS.
    73
     
    2824    ePUSHA
    2925
     26    LOAD_BDA_SEGMENT_TO es, ax
    3027    call    Initialize_ShouldSkip
    31     jc      SHORT .ReturnFromRomInit
     28    jnz     SHORT .SkipRomInitialization
    3229
    33     ePUSH_T ax, .ReturnFromRomInit      ; Push return address
    34     test    BYTE [cs:ROMVARS.wFlags], FLG_ROMVARS_LATE
    35     jnz     SHORT Initialize_PrepareLateInitialization
    36     jmp     SHORT Initialize_AndDetectDrives
    37 
    38 ALIGN JUMP_ALIGN
    39 .ReturnFromRomInit:
     30%ifdef USE_AT   ; Early initialization on AT build
     31    call    Initialize_AndDetectDrives
     32%else           ; Late initialization on XT builds
     33    call    Int19hLate_InitializeInt19h
     34%endif
     35.SkipRomInitialization:
    4036    ePOPA
    4137    pop     ds
     
    5046; Initialize_ShouldSkip
    5147;   Parameters:
     48;       ES:     BDA segment
     49;   Returns:
     50;       ZF:     Cleared if ROM initialization is to be skipped
     51;               Set to continue ROM initialization
     52;   Corrupts registers:
    5253;       Nothing
    53 ;   Returns:
    54 ;       CF:     Set if ROM initialization is to be skipped
    55 ;               Cleared to continue ROM initialization
    56 ;   Corrupts registers:
    57 ;       AX, DS
    5854;--------------------------------------------------------------------
    5955ALIGN JUMP_ALIGN
    6056Initialize_ShouldSkip:
    61     sti                         ; Enable interrupts
    62     LOAD_BDA_SEGMENT_TO ds, ax
    63     mov     al, [BDA.bKBFlgs1]  ; Load shift flags
    64     eSHR_IM al, 3               ; Set CF if CTRL is held down
     57    sti                                     ; Enable interrupts
     58    test    BYTE [es:BDA.bKBFlgs1], (1<<2)  ; Clear ZF if CTRL is held down
    6559    ret
    66 
    67 
    68 ;--------------------------------------------------------------------
    69 ; Installs INT 19h boot loader handler for late initialization.
    70 ;
    71 ; Initialize_PrepareLateInitialization
    72 ;   Parameters:
    73 ;       Nothing
    74 ;   Returns:
    75 ;       Nothing
    76 ;   Corrupts registers:
    77 ;       BX, SI, ES
    78 ;--------------------------------------------------------------------
    79 ALIGN JUMP_ALIGN
    80 Initialize_PrepareLateInitialization:
    81     LOAD_BDA_SEGMENT_TO es, bx
    82     mov     bl, INTV_BOOTSTRAP
    83     mov     si, Int19h_LateInitialization
    84     jmp     Interrupts_InstallHandlerToVectorInBXFromCSSI
    8560
    8661
     
    9065; Initialize_AndDetectDrives
    9166;   Parameters:
    92 ;       Nothing
     67;       ES:     BDA Segment
    9368;   Returns:
    9469;       Nothing
     
    10176    call    RamVars_Initialize
    10277    call    RamVars_GetSegmentToDS
    103     LOAD_BDA_SEGMENT_TO es, ax
    10478    call    Interrupts_InitializeInterruptVectors
    10579    call    DetectDrives_FromAllIDEControllers
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/Interrupts.asm

    r86 r90  
    1 ; Project name  :   IDE BIOS
     1; Project name  :   XTIDE Universal BIOS
    22; Description   :   Functions for initializing the BIOS.
    33
     
    6666ALIGN JUMP_ALIGN
    6767Interrupts_InitializeInt19h:
    68     eMOVZX  bx, [cs:ROMVARS.bBootLdrType]   ; Load boot loader type
    69     mov     si, INTV_BOOTSTRAP              ; 19h
    70     xchg    bx, si                          ; SI=Loader type, BX=19h
    71     jmp     [cs:si+.rgwSetupBootLoader]     ; Jump to install selected loader
    72 ALIGN WORD_ALIGN
    73 .rgwSetupBootLoader:
    74     dw      .SetupBootMenuLoader        ; BOOTLOADER_TYPE_MENU
    75     dw      .SetupSimpleLoader          ; BOOTLOADER_TYPE_SIMPLE
    76     dw      .SetupBootMenuLoader        ; reserved
    77     dw      .NoBootLoader               ; BOOTLOADER_TYPE_NONE
    78 
    79 ALIGN JUMP_ALIGN
    80 .NoBootLoader:
    81     test    BYTE [cs:ROMVARS.wFlags], FLG_ROMVARS_LATE
    82     jnz     SHORT .SetupSimpleLoader    ; Boot loader required for late initialization
    83     ret
    84 ALIGN JUMP_ALIGN
    85 .SetupSimpleLoader:
    86     mov     si, Int19h_SimpleBootLoader
    87     jmp     Interrupts_InstallHandlerToVectorInBXFromCSSI
    88 ALIGN JUMP_ALIGN
    89 .SetupBootMenuLoader:
     68    mov     bx, INTV_BOOTSTRAP
    9069    mov     si, Int19hMenu_BootLoader
    9170    jmp     Interrupts_InstallHandlerToVectorInBXFromCSSI
Note: See TracChangeset for help on using the changeset viewer.