Changeset 359 in xtideuniversalbios for trunk/BIOS_Drive_Information_Tool/Src/Main.asm


Ignore:
Timestamp:
Mar 19, 2012, 2:22:17 PM (12 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to BIOS Drive Information Tool:

  • L-CHS variables generated by XTIDE Universal BIOS are now displayed.
File:
1 edited

Legend:

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

    r332 r359  
    77%define INCLUDE_KEYBOARD_LIBRARY
    88%include "AssemblyLibrary.inc"  ; Assembly Library. Must be included first!
    9 %include "ATA_ID.inc"
    10 %include "Int13h.inc"
    11 %include "EBIOS.inc"
     9%include "Version.inc"          ; From XTIDE Universal BIOS
     10%include "ATA_ID.inc"           ; From XTIDE Universal BIOS
     11%include "Int13h.inc"           ; From XTIDE Universal BIOS
     12%include "EBIOS.inc"            ; From XTIDE Universal BIOS
     13FLG_DRVNHEAD_DRV    EQU (1<<4)  ; Required by CustomDPT.inc
     14%include "CustomDPT.inc"        ; From XTIDE Universal BIOS
    1215
    1316
     
    2225; Include library and other sources
    2326%include "AssemblyLibrary.asm"
     27%include "LbaAssist.asm"        ; From XTIDE Universal BIOS
    2428%include "Strings.asm"
    2529%include "Bios.asm"
     
    3337StartBiosDriveInformationTool:
    3438    CALL_DISPLAY_LIBRARY    InitializeDisplayContext
    35     mov     bl, ATTRIBUTES_NOT_USED
    36     mov     ax, Print_DosCharOut
    37     CALL_DISPLAY_LIBRARY    SetCharOutputFunctionFromAXwithAttribFlagInBL
     39    call    Print_SetCharacterOutputToSTDOUT
    3840
    3941    mov     si, g_szProgramName
     
    6062    call    Print_NullTerminatedStringFromSI
    6163    call    Keyboard_GetKeystrokeToAXandWaitIfNecessary
     64
    6265.DisplayFirstDrive:
    6366    mov     si, g_szHeaderDrive
     
    126129    mov     si, g_szLBA48
    127130    call    Print_NullTerminatedStringFromSI
     131    mov     si, bx
    128132    mov     ax, [bx+ATA6.qwLBACnt]
    129133    mov     dx, [bx+ATA6.qwLBACnt+2]
    130134    mov     bx, [bx+ATA6.qwLBACnt+4]
    131135    call    Print_TotalSectorsFromBXDXAX
     136    mov     bx, si
    132137.SkipLBA48:
     138
     139    ; Print L-CHS generated by XTIDE Universal BIOS
     140    mov     ax, g_szXTUBversion
     141    mov     si, g_szXTUB
     142    call    Print_VersionStringFromAXusingFormatStringInSI
     143    call    DisplayXTUBcompatibilityInfoUsingAtaInfoFromDSBX
     144
    133145.SkipAtaInfoSinceError:
    134146    pop     dx
    135147    pop     cx
     148    ret
     149
     150
     151ALIGN JUMP_ALIGN
     152DisplayXTUBcompatibilityInfoUsingAtaInfoFromDSBX:
     153    test    WORD [bx+ATA1.wCaps], A1_wCaps_LBA
     154    jz      SHORT .LbaNotSupported
     155    test    WORD [bx+ATA6.wSetSup83], A6_wSetSup83_LBA48
     156    jz      SHORT .LoadLba28SectorCount
     157
     158    ; Load LBA48 Sector Count
     159    mov     ax, [bx+ATA6.qwLBACnt]
     160    mov     dx, [bx+ATA6.qwLBACnt+2]
     161    mov     bx, [bx+ATA6.qwLBACnt+4]
     162    jmp     SHORT .ConvertLbaToLCHS
     163.LoadLba28SectorCount:
     164    mov     ax, [bx+ATA1.dwLBACnt]
     165    mov     dx, [bx+ATA1.dwLBACnt+2]
     166    xor     bx, bx
     167
     168.ConvertLbaToLCHS:
     169    call    LbaAssist_ConvertSectorCountFromBXDXAXtoLbaAssistedCHSinDXAXBLBH
     170    LIMIT_LBA_CYLINDERS_IN_DXAX_TO_LCHS_CYLINDERS
     171    xchg    cx, ax
     172    eMOVZX  dx, bl
     173    eMOVZX  ax, bh
     174    call    Print_CHSfromCXDXAX
     175.LbaNotSupported:
    136176    ret
    137177
Note: See TracChangeset for help on using the changeset viewer.