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


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

Changes to XTIDE Universal BIOS:

  • Display library now gets initialized.
  • Small optimizations.
  • Something is still broken.
Location:
trunk/XTIDE_Universal_BIOS/Src/Initialization
Files:
4 edited

Legend:

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

    r98 r120  
    6868StartDetectionWithDriveSelectByteInBHandStringInAX:
    6969    call    DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP
    70     call    ReadAtaInfoFromDrive    ; Assume hard disk
    71     jnc     SHORT CreateBiosTablesForHardDisk
    72     ;call   ReadAtapiInfoFromDrive  ; Assume CD-ROM (not yet implemented)
    73     ;jnc    SHORT _CreateBiosTablesForCDROM
    74     jmp     DetectPrint_DriveNotFound
    75 
     70    ; Fall to .ReadAtaInfoFromHardDisk
    7671
    7772;--------------------------------------------------------------------
    78 ; ReadAtaInfoFromDrive
     73; .ReadAtaInfoFromHardDisk
    7974;   Parameters:
    8075;       BH:     Drive Select byte for Drive and Head Register
     
    8984;       AX, BL, CX, DX, DI
    9085;--------------------------------------------------------------------
    91 ReadAtaInfoFromDrive:
     86.ReadAtaInfoFromHardDisk:
    9287    mov     bl, [cs:bp+IDEVARS.bBusType]; Load BUS type
    9388    mov     dx, [cs:bp+IDEVARS.wPort]   ; Load IDE Base Port address
    9489    mov     di, BOOTVARS.rgbAtaInfo     ; ES:DI now points to ATA info location
    9590    call    AH25h_GetDriveInfo
    96     mov     si, di                      ; ES:SI now points to ATA information
    97     ret
     91    jnc     SHORT CreateBiosTablesForHardDisk
     92    ; Fall to .ReadAtapiInfoFromDrive
     93
     94.ReadAtapiInfoFromDrive:                ; Not yet implemented
     95    ;call   ReadAtapiInfoFromDrive      ; Assume CD-ROM
     96    ;jnc    SHORT _CreateBiosTablesForCDROM
     97    jmp     DetectPrint_DriveNotFound
    9898
    9999
     
    103103;       BH:     Drive Select byte for Drive and Head Register
    104104;       CS:BP:  Ptr to IDEVARS for the drive
    105 ;       ES:SI   Ptr to ATA information for the drive
     105;       ES:DI   Ptr to ATA information for the drive
    106106;       DS:     RAMVARS segment
    107107;       ES:     BDA/Bootnfo segment
     
    112112;--------------------------------------------------------------------
    113113CreateBiosTablesForHardDisk:
     114    mov     si, di                  ; ES:SI now points to ATA information
    114115    call    CreateDPT_FromAtaInformation
    115116    jc      SHORT .InvalidAtaInfo
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm

    r98 r120  
    1414;       Nothing
    1515;   Corrupts registers:
    16 ;       AX, SI
     16;       AX, SI, DI
    1717;--------------------------------------------------------------------
    1818DetectPrint_RomFoundAtSegment:
     
    3333;       Nothing
    3434;   Corrupts registers:
    35 ;       AX, SI
     35;       AX, SI, DI
    3636;--------------------------------------------------------------------
    3737DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP:
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm

    r98 r120  
    7070;--------------------------------------------------------------------
    7171Initialize_AndDetectDrives:
     72    CALL_DISPLAY_LIBRARY InitializeDisplayContext
    7273    call    DetectPrint_RomFoundAtSegment
    7374    call    RamVars_Initialize
  • trunk/XTIDE_Universal_BIOS/Src/Initialization/Interrupts.asm

    r97 r120  
    142142;--------------------------------------------------------------------
    143143Interrupts_InstallHandlerToVectorInBXFromCSSI:
    144     eSHL_IM bx, 2                   ; Shift for DWORD offset
     144    shl     bx, 1
     145    shl     bx, 1                   ; Shift for DWORD offset
    145146    mov     [es:bx], si             ; Store offset
    146147    mov     [es:bx+2], cs           ; Store segment
Note: See TracChangeset for help on using the changeset viewer.