Changeset 421 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Menus


Ignore:
Timestamp:
May 9, 2012, 7:12:53 PM (12 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Addressing modes are now NORMAL, LARGE and LBA.
  • L-CHS parameters are now generated differently for drives with 8192 or less cylinders.
Location:
trunk/XTIDE_Universal_BIOS/Src/Menus/BootMenu
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Menus/BootMenu/BootMenuPrint.asm

    r399 r421  
    202202    push    dx                      ; Magnitude character
    203203
    204     test    di, di
     204    test    di, di                  ; Zero if foreign drive
    205205    jz      SHORT BootMenuPrint_RefreshInformation.FormatRelay
    206206
     
    229229;       CX
    230230;--------------------------------------------------------------------
    231 GetTotalSectorCount:
    232     test    BYTE [di+DPT.bFlagsLow], FLG_DRVNHEAD_LBA
    233     jnz     SHORT .ReturnFullCapacity
    234     jmp     AH15h_GetSectorCountToBXDXAX
    235 .ReturnFullCapacity:
    236     jmp     AccessDPT_GetLbaSectorCountToBXDXAX
     231%ifdef MODULE_EBIOS
     232GetTotalSectorCount     EQU     AccessDPT_GetLbaSectorCountToBXDXAX
     233%else
     234GetTotalSectorCount     EQU     AH15h_GetSectorCountToBXDXAX
     235%endif
  • trunk/XTIDE_Universal_BIOS/Src/Menus/BootMenu/BootMenuPrintCfg.asm

    r400 r421  
    4343    eMOVZX  ax, [di+DPT.bIdevarsOffset]
    4444    xchg    bx, ax                      ; CS:BX now points to IDEVARS
    45     ; Fall to .PushAndFormatCfgString
     45    ; Fall to .PushAddressingMode
    4646
    4747;--------------------------------------------------------------------
    48 ; PushAddressingMode
     48; .PushAddressingMode
    4949;   Parameters:
    5050;       DS:DI:  Ptr to DPT
     
    5353;       Nothing (jumps to next push below)
    5454;   Corrupts registers:
    55 ;       AX, CX
     55;       AX, CX, DX
    5656;--------------------------------------------------------------------
    5757.PushAddressingMode:
    58     AccessDPT_GetUnshiftedAddressModeToALZF
     58    ACCESSDPT__GET_UNSHIFTED_ADDRESS_MODE_TO_AXZF
    5959    ;;
    6060    ;; This multiply both shifts the addressing mode bits down to low order bits, and
     
    6262    ;; with AL clear, and so we exchange AL and AH after the multiply for the final result.
    6363    ;;
    64     mov     cl,(1<<(8-ADDRESSING_MODE_FIELD_POSITION)) * g_szAddressingModes_Displacement
    65     mul     cl
    66     xchg    al,ah
    67     add     ax,g_szAddressingModes
     64    mov     cx, g_szAddressingModes_Displacement << (8-ADDRESSING_MODE_FIELD_POSITION)
     65    mul     cx
     66    xchg    al, ah      ; AL = always zero after above multiplication
     67    add     ax, g_szAddressingModes
    6868    push    ax
     69    ; Fall to .PushBlockMode
    6970
    7071;--------------------------------------------------------------------
    71 ; PushBlockMode
     72; .PushBlockMode
    7273;   Parameters:
    7374;       DS:DI:  Ptr to DPT
Note: See TracChangeset for help on using the changeset viewer.