source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/BootMenuSettingsMenu.asm @ 526

Last change on this file since 526 was 526, checked in by krille_n_@…, 11 years ago

Changes:

  • Update of the copyright notices to include the year 2013.
File size: 9.7 KB
RevLine 
[59]1; Project name  :   XTIDE Universal BIOS Configurator v2
2; Description   :   "Boot Menu Settings" menu structs and functions.
3
[376]4;
[399]5; XTIDE Universal BIOS and Associated Tools
[526]6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2013 by XTIDE Universal BIOS Team.
[376]7;
8; This program is free software; you can redistribute it and/or modify
9; it under the terms of the GNU General Public License as published by
10; the Free Software Foundation; either version 2 of the License, or
11; (at your option) any later version.
[399]12;
[376]13; This program is distributed in the hope that it will be useful,
14; but WITHOUT ANY WARRANTY; without even the implied warranty of
15; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
[399]16; GNU General Public License for more details.
[376]17; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
[399]18;
[376]19
[59]20; Section containing initialized data
21SECTION .data
22
23ALIGN WORD_ALIGN
24g_MenupageForBootMenuSettingsMenu:
25istruc MENUPAGE
26    at  MENUPAGE.fnEnter,           dw  BootMenuSettingsMenu_EnterMenuOrModifyItemVisibility
27    at  MENUPAGE.fnBack,            dw  ConfigurationMenu_EnterMenuOrModifyItemVisibility
[403]28    at  MENUPAGE.wMenuitems,        dw  6
[59]29iend
30
31g_MenuitemBootMnuStngsBackToConfigurationMenu:
32istruc MENUITEM
33    at  MENUITEM.fnActivate,        dw  ConfigurationMenu_EnterMenuOrModifyItemVisibility
34    at  MENUITEM.szName,            dw  g_szItemBackToCfgMenu
35    at  MENUITEM.szQuickInfo,       dw  g_szNfoIdeBackToCfgMenu
36    at  MENUITEM.szHelp,            dw  g_szNfoIdeBackToCfgMenu
37    at  MENUITEM.bFlags,            db  FLG_MENUITEM_VISIBLE
38    at  MENUITEM.bType,             db  TYPE_MENUITEM_PAGEBACK
39iend
40
[144]41g_MenuitemBootMnuStngsDisplayMode:
42istruc MENUITEM
43    at  MENUITEM.fnActivate,        dw  Menuitem_ActivateMultichoiceSelectionForMenuitemInDSSI
44    at  MENUITEM.fnFormatValue,     dw  MenuitemPrint_WriteLookupValueStringToBufferInESDIfromUnshiftedItemInDSSI
45    at  MENUITEM.szName,            dw  g_szItemBootDispMode
46    at  MENUITEM.szQuickInfo,       dw  g_szNfoDispMode
47    at  MENUITEM.szHelp,            dw  g_szNfoDispMode
48    at  MENUITEM.bFlags,            db  FLG_MENUITEM_VISIBLE
49    at  MENUITEM.bType,             db  TYPE_MENUITEM_MULTICHOICE
50    at  MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset,        dw  ROMVARS.wDisplayMode
51    at  MENUITEM.itemValue + ITEM_VALUE.szDialogTitle,              dw  g_szDlgBootDispMode
52    at  MENUITEM.itemValue + ITEM_VALUE.szMultichoice,              dw  g_szMultichoiceBootDispMode
53    at  MENUITEM.itemValue + ITEM_VALUE.rgwChoiceToValueLookup,     dw  g_rgwChoiceToValueLookupForDisplayModes
54    at  MENUITEM.itemValue + ITEM_VALUE.rgszValueToStringLookup,    dw  g_rgszValueToStringLookupForDisplayModes
55iend
56
[59]57g_MenuitemBootMnuStngsFloppyDrives:
58istruc MENUITEM
[108]59    at  MENUITEM.fnActivate,        dw  Menuitem_ActivateMultichoiceSelectionForMenuitemInDSSI
[59]60    at  MENUITEM.fnFormatValue,     dw  MenuitemPrint_WriteLookupValueStringToBufferInESDIfromUnshiftedItemInDSSI
61    at  MENUITEM.szName,            dw  g_szItemBootFloppyDrvs
62    at  MENUITEM.szQuickInfo,       dw  g_szNfoBootFloppyDrvs
63    at  MENUITEM.szHelp,            dw  g_szHelpBootFloppyDrvs
64    at  MENUITEM.bFlags,            db  FLG_MENUITEM_VISIBLE | FLG_MENUITEM_BYTEVALUE
[108]65    at  MENUITEM.bType,             db  TYPE_MENUITEM_MULTICHOICE
[59]66    at  MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset,        dw  ROMVARS.bMinFddCnt
67    at  MENUITEM.itemValue + ITEM_VALUE.szDialogTitle,              dw  g_szDlgBootFloppyDrvs
[108]68    at  MENUITEM.itemValue + ITEM_VALUE.szMultichoice,              dw  g_szMultichoiceBootFloppyDrvs
[199]69    at  MENUITEM.itemValue + ITEM_VALUE.rgwChoiceToValueLookup,     dw  NULL
[59]70    at  MENUITEM.itemValue + ITEM_VALUE.rgszValueToStringLookup,    dw  g_rgszValueToStringLookupForFloppyDrives
71iend
72
[399]73g_MenuitemBootMenuSerialScanDetect:
[290]74istruc MENUITEM
75    at  MENUITEM.fnActivate,        dw  Menuitem_ActivateMultichoiceSelectionForMenuitemInDSSI
76    at  MENUITEM.fnFormatValue,     dw  MenuitemPrint_WriteLookupValueStringToBufferInESDIfromShiftedItemInDSSI
77    at  MENUITEM.szName,            dw  g_szItemSerialDetect
78    at  MENUITEM.szQuickInfo,       dw  g_szNfoSerialDetect
79    at  MENUITEM.szHelp,            dw  g_szHelpSerialDetect
[403]80    at  MENUITEM.bFlags,            db  FLG_MENUITEM_FLAGVALUE
[290]81    at  MENUITEM.bType,             db  TYPE_MENUITEM_MULTICHOICE
82    at  MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset,        dw  ROMVARS.wFlags
83    at  MENUITEM.itemValue + ITEM_VALUE.szDialogTitle,              dw  g_szDlgSerialDetect
84    at  MENUITEM.itemValue + ITEM_VALUE.szMultichoice,              dw  g_szMultichoiceBooleanFlag
85    at  MENUITEM.itemValue + ITEM_VALUE.rgszValueToStringLookup,    dw  g_rgszValueToStringLookupForFlagBooleans
86    at  MENUITEM.itemValue + ITEM_VALUE.wValueBitmask,              dw  FLG_ROMVARS_SERIAL_SCANDETECT
87iend
88
89g_MenuitemBootMnuStngsDefaultBootDrive:
90istruc MENUITEM
91    at  MENUITEM.fnActivate,        dw  Menuitem_ActivateHexInputForMenuitemInDSSI
92    at  MENUITEM.fnFormatValue,     dw  MenuitemPrint_WriteHexValueStringToBufferInESDIfromItemInDSSI
93    at  MENUITEM.szName,            dw  g_szItemBootDrive
94    at  MENUITEM.szQuickInfo,       dw  g_szNfoBootDrive
95    at  MENUITEM.szHelp,            dw  g_szHelpBootDrive
[459]96    at  MENUITEM.bFlags,            db  FLG_MENUITEM_BYTEVALUE
[290]97    at  MENUITEM.bType,             db  TYPE_MENUITEM_HEX
98    at  MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset,        dw  ROMVARS.bBootDrv
99    at  MENUITEM.itemValue + ITEM_VALUE.szDialogTitle,              dw  g_szDlgBootDrive
100    at  MENUITEM.itemValue + ITEM_VALUE.wMinValue,                  dw  0
101    at  MENUITEM.itemValue + ITEM_VALUE.wMaxValue,                  dw  0FFh
102iend
103
[59]104g_MenuitemBootMnuStngsSelectionTimeout:
105istruc MENUITEM
106    at  MENUITEM.fnActivate,        dw  Menuitem_ActivateUnsignedInputForMenuitemInDSSI
107    at  MENUITEM.fnFormatValue,     dw  MenuitemPrint_WriteUnsignedValueStringToBufferInESDIfromItemInDSSI
108    at  MENUITEM.szName,            dw  g_szItemBootTimeout
109    at  MENUITEM.szQuickInfo,       dw  g_szNfoBootTimeout
110    at  MENUITEM.szHelp,            dw  g_szHelpBootTimeout
[290]111    at  MENUITEM.bFlags,            db  NULL
[59]112    at  MENUITEM.bType,             db  TYPE_MENUITEM_UNSIGNED
[136]113    at  MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset,        dw  ROMVARS.wBootTimeout
[59]114    at  MENUITEM.itemValue + ITEM_VALUE.szDialogTitle,              dw  g_szDlgBootTimeout
[290]115    at  MENUITEM.itemValue + ITEM_VALUE.wMinValue,                  dw  2
[136]116    at  MENUITEM.itemValue + ITEM_VALUE.wMaxValue,                  dw  1092
[59]117iend
118
119
[290]120g_rgwChoiceToValueLookupForEnableBootMenu:
121    dw  FALSE
122    dw  BOOT_MENU_DEFAULT_TIMEOUT
123
[144]124g_rgwChoiceToValueLookupForDisplayModes:
125    dw  DEFAULT_TEXT_MODE
126    dw  CGA_TEXT_MODE_BW40
127    dw  CGA_TEXT_MODE_CO40
128    dw  CGA_TEXT_MODE_BW80
129    dw  CGA_TEXT_MODE_CO80
130    dw  MDA_TEXT_MODE
131g_rgszValueToStringLookupForDisplayModes:
132    dw  g_szValueBootDispModeBW40
133    dw  g_szValueBootDispModeCO40
134    dw  g_szValueBootDispModeBW80
135    dw  g_szValueBootDispModeCO80
136    dw  g_szValueBootDispModeDefault
137    dw  NULL
138    dw  NULL
139    dw  g_szValueBootDispModeMono
140
[59]141g_rgszValueToStringLookupForFloppyDrives:
142    dw  g_szValueBootFloppyDrvsAuto
143    dw  g_szValueBootFloppyDrvs1
144    dw  g_szValueBootFloppyDrvs2
145    dw  g_szValueBootFloppyDrvs3
146    dw  g_szValueBootFloppyDrvs4
147
148
149; Section containing code
150SECTION .text
151
152;--------------------------------------------------------------------
153; BootMenuSettingsMenu_EnterMenuOrModifyItemVisibility
154;   Parameters:
155;       SS:BP:  Menu handle
156;   Returns:
157;       Nothing
158;   Corrupts registers:
159;       All, except BP
160;--------------------------------------------------------------------
161ALIGN JUMP_ALIGN
162BootMenuSettingsMenu_EnterMenuOrModifyItemVisibility:
163    push    cs
164    pop     ds
[459]165    call    .EnableOrDisableScanForSerialDrives
166    call    .EnableOrDisableDefaultBootDrive
167    call    .EnableOrDisableBootMenuSelectionTimeout
[59]168    mov     si, g_MenupageForBootMenuSettingsMenu
169    jmp     Menupage_ChangeToNewMenupageInDSSI
[290]170
171
172;--------------------------------------------------------------------
[459]173; .EnableOrDisableScanForSerialDrives
[290]174;   Parameters:
175;       SS:BP:  Menu handle
176;   Returns:
177;       Nothing
178;   Corrupts registers:
179;       AX, BX
180;--------------------------------------------------------------------
181ALIGN JUMP_ALIGN
[459]182.EnableOrDisableScanForSerialDrives:
183    call    Buffers_GetRomvarsFlagsToAX
184    mov     bx, g_MenuitemBootMenuSerialScanDetect
185    test    ax, FLG_ROMVARS_MODULE_SERIAL
186    jmp     SHORT .DisableMenuitemFromCSBXifZFset
[290]187
188
[459]189;--------------------------------------------------------------------
190; .EnableOrDisableDefaultBootDrive
191;   Parameters:
192;       SS:BP:  Menu handle
193;   Returns:
194;       Nothing
195;   Corrupts registers:
196;       AX, BX
197;--------------------------------------------------------------------
198ALIGN JUMP_ALIGN
199.EnableOrDisableDefaultBootDrive:
200    call    Buffers_GetRomvarsFlagsToAX
201    mov     bx, g_MenuitemBootMnuStngsDefaultBootDrive
202    test    ax, FLG_ROMVARS_MODULE_HOTKEYS
203    jmp     SHORT .DisableMenuitemFromCSBXifZFset
[290]204
205
206;--------------------------------------------------------------------
[459]207; .EnableOrDisableBootMenuSelectionTimeout
[403]208;   Parameters:
209;       SS:BP:  Menu handle
210;   Returns:
211;       Nothing
212;   Corrupts registers:
213;       AX, BX
214;--------------------------------------------------------------------
[459]215ALIGN JUMP_ALIGN
216.EnableOrDisableBootMenuSelectionTimeout:
217    call    Buffers_GetRomvarsFlagsToAX
218    mov     bx, g_MenuitemBootMnuStngsSelectionTimeout
219    test    ax, FLG_ROMVARS_MODULE_BOOT_MENU
220.DisableMenuitemFromCSBXifZFset:
221    jz      SHORT .DisableMenuitemFromCSBX
222    ; Fall to .EnableMenuitemFromCSBX
[403]223
[459]224
225;--------------------------------------------------------------------
226; .EnableMenuitemFromCSBX
227; .DisableMenuitemFromCSBX
228;   Parameters:
229;       CS:BX:  Ptr to MENUITEM
230;   Returns:
231;       Nothing
232;   Corrupts registers:
233;       Nothing
234;--------------------------------------------------------------------
235ALIGN JUMP_ALIGN
236.EnableMenuitemFromCSBX:
237    or      BYTE [cs:bx+MENUITEM.bFlags], FLG_MENUITEM_VISIBLE
[403]238    ret
239
[459]240ALIGN JUMP_ALIGN
241.DisableMenuitemFromCSBX:
242    and     BYTE [cs:bx+MENUITEM.bFlags], ~FLG_MENUITEM_VISIBLE
[403]243    ret
244
245
246;--------------------------------------------------------------------
[290]247; MENUITEM value reader functions
248;   Parameters:
249;       AX:     Value from MENUITEM.itemValue+ITEM_VALUE.wRomvarsValueOffset
250;       DS:SI:  Ptr to MENUITEM
251;       ES:DI:  Ptr to value variable
252;   Returns:
253;       AX:     Value with possible modifications
254;   Corrupts registers:
255;       Nothing
256;--------------------------------------------------------------------
257ALIGN JUMP_ALIGN
258ValueReaderForEnableBootMenu:
259    test    ax, ax
260    jz      SHORT .NoNeedToModify
261    mov     ax, TRUE<<1
262.NoNeedToModify:
263    ret
Note: See TracBrowser for help on using the repository browser.