Changeset 204 in xtideuniversalbios for trunk


Ignore:
Timestamp:
Dec 5, 2011, 11:23:22 AM (13 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to Configurator v2:

  • Number of IDE controllers can now be properly configured for lite mode.
Location:
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Buffers.asm

    r145 r204  
    229229
    230230;--------------------------------------------------------------------
     231; Buffers_GetIdeControllerCountToCX
     232;   Parameters:
     233;       SS:BP:  Menu handle
     234;   Returns:
     235;       CX:     Number of IDE controllers to configure
     236;       ES:DI:  Ptr to file buffer
     237;   Corrupts registers:
     238;       AX
     239;--------------------------------------------------------------------
     240ALIGN JUMP_ALIGN
     241Buffers_GetIdeControllerCountToCX:
     242    call    Buffers_GetFileBufferToESDI
     243    mov     al, [es:di+ROMVARS.bIdeCnt]
     244
     245    ; Limit controller count for lite mode
     246    test    BYTE [es:di+ROMVARS.wFlags], FLG_ROMVARS_FULLMODE
     247    jnz     SHORT .ReturnControllerCountInCX
     248    MIN_U   al, MAX_LITE_MODE_CONTROLLERS
     249
     250.ReturnControllerCountInCX:
     251    cbw     ; A maximum of 127 controllers should be sufficient
     252    xchg    cx, ax
     253    ret
     254
     255
     256;--------------------------------------------------------------------
    231257; Buffers_GetFileBufferToESDI
    232258; Buffers_GetFlashComparisonBufferToESDI
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/ConfigurationMenu.asm

    r181 r204  
    106106g_MenuitemConfigurationIdeControllers:
    107107istruc MENUITEM
    108     at  MENUITEM.fnActivate,        dw  Menuitem_ActivateUnsignedInputForMenuitemInDSSI
     108    at  MENUITEM.fnActivate,        dw  ActivateInputForNumberOfIdeControllersMenuitemInDSSI
    109109    at  MENUITEM.fnFormatValue,     dw  MenuitemPrint_WriteUnsignedValueStringToBufferInESDIfromItemInDSSI
    110110    at  MENUITEM.szName,            dw  g_szItemCfgIdeCnt
    111111    at  MENUITEM.szQuickInfo,       dw  g_szNfoCfgIdeCnt
    112112    at  MENUITEM.szHelp,            dw  g_szNfoCfgIdeCnt
    113     at  MENUITEM.bFlags,            db  FLG_MENUITEM_MODIFY_MENU | FLG_MENUITEM_BYTEVALUE
     113    at  MENUITEM.bFlags,            db  FLG_MENUITEM_VISIBLE | FLG_MENUITEM_BYTEVALUE
    114114    at  MENUITEM.bType,             db  TYPE_MENUITEM_UNSIGNED
    115115    at  MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset,        dw  ROMVARS.bIdeCnt
    116116    at  MENUITEM.itemValue + ITEM_VALUE.szDialogTitle,              dw  g_szDlgCfgIdeCnt
    117117    at  MENUITEM.itemValue + ITEM_VALUE.wMinValue,                  dw  1
    118     at  MENUITEM.itemValue + ITEM_VALUE.wMaxValue,                  dw  4
     118    at  MENUITEM.itemValue + ITEM_VALUE.wMaxValue,                  dw  MAX_ALLOWED_IDE_CONTROLLERS
    119119iend
    120120
     
    139139    call    .EnableIdeControllerMenuitemsBasedOnConfiguration
    140140    call    .EnableOrDisableKiBtoStealFromRAM
    141     call    .EnableOrDisableIdeControllerCount
     141    call    LimitIdeControllersForLiteMode
    142142    mov     si, g_MenupageForConfigurationMenu
    143143    jmp     Menupage_ChangeToNewMenupageInDSSI
     
    151151;       Nothing
    152152;   Corrupts registers:
    153 ;       AX, BX, CX
     153;       AX, BX, CX, DI, ES
    154154;--------------------------------------------------------------------
    155155ALIGN JUMP_ALIGN
     
    166166ALIGN JUMP_ALIGN
    167167.EnableIdeControllerMenuitemsBasedOnConfiguration:
    168     call    .GetIdeControllerCountToCX
     168    call    Buffers_GetIdeControllerCountToCX
    169169    dec     cx          ; Primary always enabled
    170     jz      .PrimaryControllerAlreadyEnabled
     170    jz      SHORT .PrimaryControllerAlreadyEnabled
    171171    mov     bx, g_MenuitemConfigurationSecondaryIdeController
    172172ALIGN JUMP_ALIGN
     
    178178    ret
    179179
    180 ;--------------------------------------------------------------------
    181 ; .GetIdeControllerCountToCX
    182 ;   Parameters:
    183 ;       SS:BP:  Menu handle
    184 ;   Returns:
    185 ;       CX:     Number of IDE controllers to configure
    186 ;   Corrupts registers:
    187 ;       AX, BX
    188 ;--------------------------------------------------------------------
    189 ALIGN JUMP_ALIGN
    190 .GetIdeControllerCountToCX:
    191     call    Buffers_GetRomvarsFlagsToAX
    192     test    ax, FLG_ROMVARS_FULLMODE
    193     mov     al, 1   ; Assume lite mode
    194     jz      SHORT .AllowOnlyOneIdeControllerInLiteMode
    195 
    196     mov     bx, ROMVARS.bIdeCnt
    197     call    Buffers_GetRomvarsValueToAXfromOffsetInBX
    198 ALIGN JUMP_ALIGN
    199 .AllowOnlyOneIdeControllerInLiteMode:
    200     cbw     ; A maximum of 127 controllers should be sufficient
    201     xchg    cx, ax
    202     ret
    203180
    204181;--------------------------------------------------------------------
     
    217194    test    ax, FLG_ROMVARS_FULLMODE
    218195    jz      SHORT .DisableMenuitemFromCSBX
    219     jmp     SHORT .EnableMenuitemFromCSBX
    220 
    221 ;--------------------------------------------------------------------
    222 ; .EnableOrDisableKiBtoStealFromRAM
    223 ;   Parameters:
    224 ;       SS:BP:  Menu handle
    225 ;   Returns:
    226 ;       Nothing
    227 ;   Corrupts registers:
    228 ;       AX, BX
    229 ;--------------------------------------------------------------------
    230 ALIGN JUMP_ALIGN
    231 .EnableOrDisableIdeControllerCount:
    232     call    Buffers_GetRomvarsFlagsToAX
    233     mov     bx, g_MenuitemConfigurationIdeControllers
    234     test    ax, FLG_ROMVARS_FULLMODE
    235     jnz     SHORT .EnableMenuitemFromCSBX
    236 
    237     ; Limit controller count for lite mode
    238     call    Buffers_GetFileBufferToESDI
    239     mov     BYTE [es:di+ROMVARS.bIdeCnt], MAX_LITE_MODE_CONTROLLERS
    240     jmp     SHORT .DisableMenuitemFromCSBX
     196    ; Fall to .EnableMenuitemFromCSBX
     197
    241198
    242199;--------------------------------------------------------------------
     
    295252    call    IdeControllerMenu_InitializeToIdevarsOffsetInBX
    296253    jmp     IdeControllerMenu_EnterMenuOrModifyItemVisibility
     254
     255
     256ALIGN JUMP_ALIGN
     257ActivateInputForNumberOfIdeControllersMenuitemInDSSI:
     258    call    Menuitem_ActivateUnsignedInputForMenuitemInDSSI
     259    ; Fall to LimitIdeControllersForLiteMode
     260
     261;--------------------------------------------------------------------
     262; LimitIdeControllersForLiteMode
     263;   Parameters:
     264;       SS:BP:  Menu handle
     265;   Returns:
     266;       Nothing
     267;   Corrupts registers:
     268;       AX, CX, DI
     269;--------------------------------------------------------------------
     270ALIGN JUMP_ALIGN
     271LimitIdeControllersForLiteMode:
     272    push    es
     273    call    Buffers_GetIdeControllerCountToCX
     274    mov     [es:di+ROMVARS.bIdeCnt], cl
     275    CALL_MENU_LIBRARY GetHighlightedItemToAX
     276    CALL_MENU_LIBRARY RefreshItemFromAX
     277    pop     es
     278    ret
Note: See TracChangeset for help on using the changeset viewer.