Ignore:
Timestamp:
Nov 19, 2010, 10:59:52 AM (13 years ago)
Author:
aitotat
google:author:
aitotat
Message:

Changes to Configuration Program v2:

  • Menu structure should now be complete.
File:
1 edited

Legend:

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

    r57 r59  
    22; Project name  :   XTIDE Universal BIOS Configurator v2
    33; Created date  :   5.10.2010
    4 ; Last update   :   2.11.2010
     4; Last update   :   19.11.2010
    55; Author        :   Tomi Tilli
    66; Description   :   Functions for accessing MENUITEM structs.
     
    88; Section containing code
    99SECTION .text
    10 
    11 ;--------------------------------------------------------------------
    12 ; Menuitem_SetVisibleFromDSSI
    13 ; Menuitem_SetInvisibleFromDSSI
    14 ;   Parameters:
    15 ;       DS:SI:  Ptr to MENUITEM
    16 ;   Returns: (Menuitem_IsVisibleFromDSSI only)
    17 ;       ZF:     Clear if visible
    18 ;               Set if not visible
    19 ;   Corrupts registers:
    20 ;       Nothing
    21 ;--------------------------------------------------------------------
    22 ALIGN JUMP_ALIGN
    23 Menuitem_SetVisibleFromDSSI:
    24     or      BYTE [si+MENUITEM.bFlags], FLG_MENUITEM_VISIBLE
    25     ret
    26 
    27 ALIGN JUMP_ALIGN
    28 Menuitem_SetInvisibleFromDSSI:
    29     and     BYTE [si+MENUITEM.bFlags], ~FLG_MENUITEM_VISIBLE
    30     ret
    31 
    3210
    3311;--------------------------------------------------------------------
     
    173151    ja      SHORT .InvalidItemType
    174152
    175     call    Buffers_GetFileBufferToESDI
     153    call    GetConfigurationBufferToESDIforMenuitemInDSSI
    176154    add     di, [si+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset]
    177155    jmp     [cs:bx+.rgfnJumpToStoreValueBasedOnItemType]
     
    259237ALIGN JUMP_ALIGN
    260238.SetUnsavedChanges:
     239    test    BYTE [si+MENUITEM.bFlags], FLG_MENUITEM_PROGRAMVAR
     240    jnz     SHORT .NoUnsavedChangesForProgramVariables
    261241    call    Buffers_SetUnsavedChanges
     242.NoUnsavedChangesForProgramVariables:
    262243    test    BYTE [si+MENUITEM.bFlags], FLG_MENUITEM_MODIFY_MENU
    263244    jnz     SHORT .ModifyItemVisibility
     
    291272ALIGN JUMP_ALIGN
    292273Menuitem_GetValueToAXfromMenuitemInDSSI:
    293     mov     bx, [si+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset]
    294     call    Buffers_GetRomvarsValueToAXfromOffsetInBX
     274    call    .GetMenuitemValueToAX
    295275    test    BYTE [si+MENUITEM.bFlags], FLG_MENUITEM_BYTEVALUE
    296276    jnz     SHORT .ConvertWordToByteValue
     
    300280
    301281ALIGN JUMP_ALIGN
     282.GetMenuitemValueToAX:
     283    push    es
     284    push    di
     285    call    GetConfigurationBufferToESDIforMenuitemInDSSI
     286    add     di, [si+MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset]
     287    mov     ax, [es:di]
     288    pop     di
     289    pop     es
     290    ret
     291
     292ALIGN JUMP_ALIGN
    302293.ConvertWordToByteValue:
    303294    xor     ah, ah
     
    314305    mov     ax, TRUE<<1     ; Shift for lookup
    315306    ret
     307
     308
     309;--------------------------------------------------------------------
     310; GetConfigurationBufferToESDIforMenuitemInDSSI
     311;   Parameters:
     312;       DS:SI:  Ptr to MENUITEM
     313;   Returns:
     314;       ES:DI:  Ptr to configuration buffer
     315;   Corrupts registers:
     316;       Nothing
     317;--------------------------------------------------------------------
     318ALIGN JUMP_ALIGN
     319GetConfigurationBufferToESDIforMenuitemInDSSI:
     320    test    BYTE [si+MENUITEM.bFlags], FLG_MENUITEM_PROGRAMVAR
     321    jnz     SHORT .ReturnCfgvarsInESDI
     322    jmp     Buffers_GetFileBufferToESDI
     323ALIGN JUMP_ALIGN
     324.ReturnCfgvarsInESDI:
     325    push    cs
     326    pop     es
     327    mov     di, g_cfgVars
     328    ret
Note: See TracChangeset for help on using the changeset viewer.