Changeset 612 in xtideuniversalbios


Ignore:
Timestamp:
May 26, 2021, 1:42:14 PM (3 years ago)
Author:
krille_n_
Message:

Changes:

  • BIOSDRVS builds again (broken since r609). Also removed the last remnants of RESERVE_DIAGNOSTIC_CYLINDER from BIOSDRVS that I missed in r606.
  • Put in a limit on the P-CHS cylinder count in an attempt to improve compatibility with some CF cards that violates the ATA specification. The limit applies only to the BIOS. BIOSDRVS will continue to show the true cylinder count since we might want to add code later to warn the user when encountering incompatible drives like these.
  • Optimized the bug fix in r611.
  • Updated the copyright notices in XTIDECFG and BIOSDRVS.
Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/BIOS_Drive_Information_Tool/Src/AtaInfo.asm

    r592 r612  
    243243    mov     dx, TRANSLATEMODE_AUTO
    244244    call    AtaGeometry_GetLCHStoAXBLBHfromAtaInfoInESSIwithTranslateModeInDX
    245     dec     ax                  ; Reserve diagnostics cylinder
    246245    MIN_U   ax, MAX_LCHS_CYLINDERS
    247246    jmp     Print_ModeFromDLandCHSfromAXLBH
  • trunk/BIOS_Drive_Information_Tool/Src/Strings.asm

    r592 r612  
    2222
    2323g_szProgramName:    db  "BIOS Drive Information Tool v1.0.3",CR,LF
    24                     db  "(C) 2012-2018 by XTIDE Universal BIOS Team",CR,LF
     24                    db  "(C) 2012-2021 by XTIDE Universal BIOS Team",CR,LF
    2525                    db  "Released under GNU GPL v2",CR,LF
    2626                    db  "http://xtideuniversalbios.org/",CR,LF,NULL
  • trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeCommand.asm

    r611 r612  
    173173    ; Output Sector Address High (only used by LBA48)
    174174%ifdef MODULE_EBIOS
    175     eMOVZX  ax, [bp+IDEPACK.bLbaLowExt]     ; Zero sector count
    176     xchg    al, ah      ; LBA low ext to AH, zero sectors to AL
     175    mov     ah, [bp+IDEPACK.bLbaLowExt]
     176    xor     al, al                          ; Zero sector count
    177177    mov     cx, [bp+IDEPACK.wLbaMiddleAndHighExt]
    178178    call    OutputSectorCountAndAddress
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH8h_HParams.asm

    r606 r612  
    102102AH8h_GetDriveParameters:
    103103    call    AccessDPT_GetLCHStoAXBLBH
    104     call    AH8h_LimitAXtoMaximumLCylinders
     104    call    AtaGeometry_LimitAXtoMaximumLCylinders
    105105    ; Fall to .PackReturnValues
    106106
     
    136136    eSHR_IM bl, FLGH_DPT_SERIAL_FLOPPY_TYPE_FIELD_POSITION
    137137%endif
    138     ret
    139 
    140 
    141 ;--------------------------------------------------------------------
    142 ; AH8h_LimitAXtoMaximumLCylinders
    143 ;   Parameters:
    144 ;       AX:     Number of total L-CHS cylinders (1...1027)
    145 ;   Returns:
    146 ;       AX:     Number of usable L-CHS cylinders (1...1024)
    147 ;   Corrupts registers:
    148 ;       Nothing
    149 ;--------------------------------------------------------------------
    150 AH8h_LimitAXtoMaximumLCylinders:
    151     MIN_U   ax, MAX_LCHS_CYLINDERS
    152138    ret
    153139
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AtaGeometry.asm

    r609 r612  
    8484    dec     dx                      ; Set ZF if TRANSLATEMODE_LARGE, SF if TRANSLATEMODE_NORMAL
    8585    jns     SHORT .CheckIfLargeTranslationWanted
    86     call    AH8h_LimitAXtoMaximumLCylinders ; TRANSLATEMODE_NORMAL maximum cylinders
     86    call    AtaGeometry_LimitAXtoMaximumLCylinders  ; TRANSLATEMODE_NORMAL maximum cylinders
    8787    inc     dx
    8888.CheckIfLargeTranslationWanted:
     
    239239    mov     bl, [es:si+ATA1.wHeadCnt]   ; Heads (1...16)
    240240    mov     bh, [es:si+ATA1.wSPT]       ; Sectors per Track (1...63)
     241%ifndef EXCLUDE_FROM_BIOSDRVS   ; We want the true value in BIOSDRVS
     242    ; Some CF cards (for example Sandisk Ultra 16/32 GB) violates
     243    ; the ATA specification by reporting more than 16383 cylinders.
     244    MIN_U   ax, MAX_PCHS_CYLINDERS      ; Limit the count to avoid problems.
     245%endif
    241246    ret
    242247
     
    360365    ret
    361366
     367
     368;--------------------------------------------------------------------
     369; AtaGeometry_LimitAXtoMaximumLCylinders
     370;   Parameters:
     371;       AX:     Number of total L-CHS cylinders (1...1027)
     372;   Returns:
     373;       AX:     Number of usable L-CHS cylinders (1...1024)
     374;   Corrupts registers:
     375;       Nothing
     376;--------------------------------------------------------------------
     377AtaGeometry_LimitAXtoMaximumLCylinders:
     378    MIN_U   ax, MAX_LCHS_CYLINDERS
     379    ret
     380
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/CompatibleDPT.asm

    r589 r612  
    9696FillToESDIusingDPTfromDSSI:
    9797    mov     ax, [si+DPT.wLchsCylinders]
    98     call    AH8h_LimitAXtoMaximumLCylinders
     98    call    AtaGeometry_LimitAXtoMaximumLCylinders
    9999    test    BYTE [si+DPT.bFlagsLow], MASKL_DPT_TRANSLATEMODE
    100100    jz      SHORT FillStandardDPTtoESDIfromDPTinDSSI
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Strings.asm

    r605 r612  
    9292g_szNfoMainFlash:       db  "Flash loaded BIOS image to EEPROM.",NULL
    9393g_szNfoMainSave:        db  "Save BIOS changes back to original file from which it was loaded.",NULL
    94 g_szNfoMainLicense:     db  "XTIDE Universal BIOS and XTIDECFG Copyright (C) 2009-2010 by Tomi Tilli, 2011-2019 by XTIDE Universal BIOS Team."
     94g_szNfoMainLicense:     db  "XTIDE Universal BIOS and XTIDECFG Copyright (C) 2009-2010 by Tomi Tilli, 2011-2021 by XTIDE Universal BIOS Team."
    9595                        db  " Released under GNU GPL v2, with ABSOLUTELY NO WARRANTY. Press ENTER for more details...",NULL
    9696g_szNfoMainHomePage:    db  "Visit http://xtideuniversalbios.org (home page) and http://vcfed.org/forum (support)",NULL
    9797
    9898g_szHelpMainLicense:    db  "XTIDE Universal BIOS and XTIDECFG Configuration program are Copyright 2009-2010 by Tomi Tilli,"
    99                         db  " 2011-2019 by XTIDE Universal BIOS Team. Released under GNU GPL v2. This software comes with ABSOLUTELY NO WARRANTY."
     99                        db  " 2011-2021 by XTIDE Universal BIOS Team. Released under GNU GPL v2. This software comes with ABSOLUTELY NO WARRANTY."
    100100                        db  " This is free software, and you are welcome to redistribute it under certain conditions."
    101101                        db  " See the LICENSE.TXT file that was included with this distribution,"
Note: See TracChangeset for help on using the changeset viewer.