source: xtideuniversalbios/trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/MainMenu.asm@ 578

Last change on this file since 578 was 546, checked in by aitotat@…, 12 years ago

Changes to Configurator v2:

  • Integrated XT-CFv3 support by James Pearce.
File size: 9.2 KB
Line 
1; Project name : XTIDE Universal BIOS Configurator v2
2; Description : Main menu structs and functions.
3
4;
5; XTIDE Universal BIOS and Associated Tools
6; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2013 by XTIDE Universal BIOS Team.
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.
12;
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
16; GNU General Public License for more details.
17; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
18;
19
20; Section containing initialized data
21SECTION .data
22
23ALIGN WORD_ALIGN
24g_MenupageForMainMenu:
25istruc MENUPAGE
26 at MENUPAGE.fnEnter, dw MainMenu_EnterMenuOrModifyItemVisibility
27 at MENUPAGE.fnBack, dw ExitToDosFromBackButton
28 at MENUPAGE.wMenuitems, dw 9
29iend
30
31g_MenuitemMainMenuLicense:
32istruc MENUITEM
33 at MENUITEM.fnActivate, dw Menuitem_DisplayHelpMessageFromDSSI
34 at MENUITEM.szName, dw g_szItemMainLicense
35 at MENUITEM.szQuickInfo, dw g_szNfoMainLicense
36 at MENUITEM.szHelp, dw g_szHelpMainLicense
37 at MENUITEM.bFlags, db FLG_MENUITEM_VISIBLE
38 at MENUITEM.bType, db TYPE_MENUITEM_ACTION
39iend
40
41g_MenuitemMainMenuLoadBiosFromFile:
42istruc MENUITEM
43 at MENUITEM.fnActivate, dw LoadBiosFromFile
44 at MENUITEM.szName, dw g_szItemMainLoadFile
45 at MENUITEM.szQuickInfo, dw g_szNfoMainLoadFile
46 at MENUITEM.szHelp, dw g_szNfoMainLoadFile
47 at MENUITEM.bFlags, db FLG_MENUITEM_VISIBLE
48 at MENUITEM.bType, db TYPE_MENUITEM_ACTION
49iend
50
51g_MenuitemMainMenuLoadXtideUniversalBiosFromRom:
52istruc MENUITEM
53 at MENUITEM.fnActivate, dw LoadXtideUniversalBiosFromRom
54 at MENUITEM.szName, dw g_szItemMainLoadROM
55 at MENUITEM.szQuickInfo, dw g_szNfoMainLoadROM
56 at MENUITEM.szHelp, dw g_szNfoMainLoadROM
57 at MENUITEM.bFlags, db NULL
58 at MENUITEM.bType, db TYPE_MENUITEM_ACTION
59iend
60
61g_MenuitemMainMenuLoadOldSettingsFromEeprom:
62istruc MENUITEM
63 at MENUITEM.fnActivate, dw LoadOldSettingsFromEeprom
64 at MENUITEM.szName, dw g_szItemMainLoadStngs
65 at MENUITEM.szQuickInfo, dw g_szNfoMainLoadStngs
66 at MENUITEM.szHelp, dw g_szNfoMainLoadStngs
67 at MENUITEM.bFlags, db NULL
68 at MENUITEM.bType, db TYPE_MENUITEM_ACTION
69iend
70
71g_MenuitemMainMenuConfigureXtideUniversalBios:
72istruc MENUITEM
73 at MENUITEM.fnActivate, dw ConfigurationMenu_EnterMenuOrModifyItemVisibility
74 at MENUITEM.szName, dw g_szItemMainConfigure
75 at MENUITEM.szQuickInfo, dw g_szNfoMainConfigure
76 at MENUITEM.szHelp, dw g_szNfoMainConfigure
77 at MENUITEM.bFlags, db NULL
78 at MENUITEM.bType, db TYPE_MENUITEM_PAGENEXT
79iend
80
81g_MenuitemMainMenuFlashEeprom:
82istruc MENUITEM
83 at MENUITEM.fnActivate, dw FlashMenu_EnterMenuOrModifyItemVisibility
84 at MENUITEM.szName, dw g_szItemMainFlash
85 at MENUITEM.szQuickInfo, dw g_szNfoMainFlash
86 at MENUITEM.szHelp, dw g_szNfoMainFlash
87 at MENUITEM.bFlags, db NULL
88 at MENUITEM.bType, db TYPE_MENUITEM_PAGENEXT
89iend
90
91g_MenuitemMainMenuSaveFile:
92istruc MENUITEM
93 at MENUITEM.fnActivate, dw BiosFile_SaveUnsavedChanges
94 at MENUITEM.szName, dw g_szItemMainSave
95 at MENUITEM.szQuickInfo, dw g_szNfoMainSave
96 at MENUITEM.szHelp, dw g_szNfoMainSave
97 at MENUITEM.bFlags, db NULL
98 at MENUITEM.bType, db TYPE_MENUITEM_ACTION
99iend
100
101g_MenuitemMainMenuExitToDos:
102istruc MENUITEM
103 at MENUITEM.fnActivate, dw ExitToDosSelectedFromMenu
104 at MENUITEM.szName, dw g_szItemMainExitToDOS
105 at MENUITEM.szQuickInfo, dw g_szNfoMainExitToDOS
106 at MENUITEM.szHelp, dw g_szNfoMainExitToDOS
107 at MENUITEM.bFlags, db FLG_MENUITEM_VISIBLE
108 at MENUITEM.bType, db TYPE_MENUITEM_ACTION
109iend
110
111g_MenuitemMainMenuHomePage:
112istruc MENUITEM
113 at MENUITEM.fnActivate, dw Menuitem_DisplayHelpMessageFromDSSI
114 at MENUITEM.szName, dw g_szItemMainHomePage
115 at MENUITEM.szQuickInfo, dw g_szNfoMainHomePage
116 at MENUITEM.szHelp, dw g_szNfoMainHomePage
117 at MENUITEM.bFlags, db FLG_MENUITEM_VISIBLE
118 at MENUITEM.bType, db TYPE_MENUITEM_ACTION
119iend
120
121
122; Section containing code
123SECTION .text
124
125;--------------------------------------------------------------------
126; MainMenu_EnterMenuOrModifyItemVisibility
127; Parameters:
128; SS:BP: Menu handle
129; Returns:
130; Nothing
131; Corrupts registers:
132; All, except BP
133;--------------------------------------------------------------------
134ALIGN JUMP_ALIGN
135MainMenu_EnterMenuOrModifyItemVisibility:
136 push cs
137 pop ds
138 call .EnableOrDisableXtideRomItems
139 call .EnableOrDisableConfigureXtideUniversalBios
140 call .EnableOrDisableFlashEeprom
141 call .EnableOrDisableSave
142 mov si, g_MenupageForMainMenu
143 jmp Menupage_ChangeToNewMenupageInDSSI
144
145;--------------------------------------------------------------------
146; .EnableOrDisableXtideRomItems
147; Parameters:
148; DS: CFGVARS segment
149; Returns:
150; Nothing
151; Corrupts registers:
152; AX, BX, CX, SI, DI, ES
153;--------------------------------------------------------------------
154ALIGN JUMP_ALIGN
155.EnableOrDisableXtideRomItems:
156 call EEPROM_FindXtideUniversalBiosROMtoESDI
157 jnc SHORT .DisableAllRomItems
158 or BYTE [g_MenuitemMainMenuLoadXtideUniversalBiosFromRom+MENUITEM.bFlags], FLG_MENUITEM_VISIBLE
159 call Buffers_IsXtideUniversalBiosLoaded
160 jne SHORT .DisableLoadSettingFromRom
161 or BYTE [g_MenuitemMainMenuLoadOldSettingsFromEeprom+MENUITEM.bFlags], FLG_MENUITEM_VISIBLE
162 ret
163
164ALIGN JUMP_ALIGN
165.DisableAllRomItems:
166 and BYTE [g_MenuitemMainMenuLoadXtideUniversalBiosFromRom+MENUITEM.bFlags], ~FLG_MENUITEM_VISIBLE
167.DisableLoadSettingFromRom:
168 and BYTE [g_MenuitemMainMenuLoadOldSettingsFromEeprom+MENUITEM.bFlags], ~FLG_MENUITEM_VISIBLE
169 ret
170
171;--------------------------------------------------------------------
172; .EnableOrDisableConfigureXtideUniversalBios
173; Parameters:
174; DS: CFGVARS segment
175; Returns:
176; Nothing
177; Corrupts registers:
178; CX, SI, DI, ES
179;--------------------------------------------------------------------
180ALIGN JUMP_ALIGN
181.EnableOrDisableConfigureXtideUniversalBios:
182 call Buffers_IsXtideUniversalBiosLoaded
183 jne SHORT .DisableConfigureXtideUniversalBios
184 or BYTE [g_MenuitemMainMenuConfigureXtideUniversalBios+MENUITEM.bFlags], FLG_MENUITEM_VISIBLE
185 ret
186
187ALIGN JUMP_ALIGN
188.DisableConfigureXtideUniversalBios:
189 and BYTE [g_MenuitemMainMenuConfigureXtideUniversalBios+MENUITEM.bFlags], ~FLG_MENUITEM_VISIBLE
190 ret
191
192;--------------------------------------------------------------------
193; .EnableOrDisableFlashEeprom
194; Parameters:
195; DS: CFGVARS segment
196; Returns:
197; Nothing
198; Corrupts registers:
199; Nothing
200;--------------------------------------------------------------------
201ALIGN JUMP_ALIGN
202.EnableOrDisableFlashEeprom:
203 test WORD [g_cfgVars+CFGVARS.wFlags], FLG_CFGVARS_FILELOADED | FLG_CFGVARS_ROMLOADED
204 jz SHORT .DisableFlashEeprom
205 or BYTE [g_MenuitemMainMenuFlashEeprom+MENUITEM.bFlags], FLG_MENUITEM_VISIBLE
206 ret
207
208ALIGN JUMP_ALIGN
209.DisableFlashEeprom:
210 and BYTE [g_MenuitemMainMenuFlashEeprom+MENUITEM.bFlags], ~FLG_MENUITEM_VISIBLE
211 ret
212
213;--------------------------------------------------------------------
214; .EnableOrDisableSave
215; Parameters:
216; DS: CFGVARS segment
217; Returns:
218; Nothing
219; Corrupts registers:
220; Nothing
221;--------------------------------------------------------------------
222ALIGN JUMP_ALIGN
223.EnableOrDisableSave:
224 test WORD [g_cfgVars+CFGVARS.wFlags], FLG_CFGVARS_FILELOADED
225 jz SHORT .DisableSave
226 or BYTE [g_MenuitemMainMenuSaveFile+MENUITEM.bFlags], FLG_MENUITEM_VISIBLE
227 ret
228
229ALIGN JUMP_ALIGN
230.DisableSave:
231 and BYTE [g_MenuitemMainMenuSaveFile+MENUITEM.bFlags], ~FLG_MENUITEM_VISIBLE
232 ret
233
234;--------------------------------------------------------------------
235; MENUITEM activation functions (.fnActivate)
236; Parameters:
237; SS:BP: Ptr to MENU
238; Returns:
239; Nothing
240; Corrupts registers:
241; All, except segments
242;--------------------------------------------------------------------
243ALIGN JUMP_ALIGN
244ExitToDosSelectedFromMenu:
245 JMP_MENU_LIBRARY CloseMenuIfExitEventAllows
246
247
248ALIGN JUMP_ALIGN
249LoadBiosFromFile:
250 call Buffers_SaveChangesIfFileLoaded
251 mov cx, FILE_DIALOG_IO_size
252 call Memory_ReserveCXbytesFromStackToDSSI
253 call Dialogs_DisplayFileDialogWithDialogIoInDSSI
254 cmp BYTE [si+FILE_DIALOG_IO.bUserCancellation], TRUE
255 je SHORT .CancelFileLoading
256
257 add si, BYTE FILE_DIALOG_IO.szFile
258 call BiosFile_LoadFileFromDSSItoRamBuffer
259 call MainMenu_EnterMenuOrModifyItemVisibility
260.CancelFileLoading:
261 add sp, BYTE FILE_DIALOG_IO_size
262ExitToDosFromBackButton:
263 ret
264
265
266ALIGN JUMP_ALIGN
267LoadXtideUniversalBiosFromRom:
268 call Buffers_SaveChangesIfFileLoaded
269 call EEPROM_LoadXtideUniversalBiosFromRomToRamBufferAndReturnSizeInDXCX
270 mov ax, FLG_CFGVARS_ROMLOADED
271 call Buffers_NewBiosWithSizeInDXCXandSourceInAXhasBeenLoadedForConfiguration
272 mov dx, g_szDlgMainLoadROM
273 call Dialogs_DisplayNotificationFromCSDX
274 jmp MainMenu_EnterMenuOrModifyItemVisibility
275
276
277ALIGN JUMP_ALIGN
278LoadOldSettingsFromEeprom:
279 call Buffers_SaveChangesIfFileLoaded
280 call EEPROM_LoadOldSettingsFromRomToRamBuffer
281 call Buffers_SetUnsavedChanges
282 mov dx, g_szDlgMainLoadStngs
283 jmp Dialogs_DisplayNotificationFromCSDX
284
Note: See TracBrowser for help on using the repository browser.