Ignore:
Timestamp:
Jan 27, 2011, 11:31:31 AM (13 years ago)
Author:
aitotat
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.
File:
1 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
Note: See TracChangeset for help on using the changeset viewer.