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

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

Changes to Configurator v2:

  • Integrated XT-CFv3 support by James Pearce.
File size: 9.2 KB
RevLine 
[57]1; Project name : XTIDE Universal BIOS Configurator v2
2; Description : Main menu structs and functions.
3
[376]4;
[525]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.
[525]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
[525]16; GNU General Public License for more details.
[376]17; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
[525]18;
[376]19
[57]20; Section containing initialized data
21SECTION .data
22
23ALIGN WORD_ALIGN
24g_MenupageForMainMenu:
25istruc MENUPAGE
26 at MENUPAGE.fnEnter, dw MainMenu_EnterMenuOrModifyItemVisibility
[206]27 at MENUPAGE.fnBack, dw ExitToDosFromBackButton
[371]28 at MENUPAGE.wMenuitems, dw 9
[57]29iend
30
[525]31g_MenuitemMainMenuLicense:
[57]32istruc MENUITEM
[336]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
[525]37 at MENUITEM.bFlags, db FLG_MENUITEM_VISIBLE
[206]38 at MENUITEM.bType, db TYPE_MENUITEM_ACTION
[57]39iend
[525]40
[57]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
[59]73 at MENUITEM.fnActivate, dw ConfigurationMenu_EnterMenuOrModifyItemVisibility
[57]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
[59]83 at MENUITEM.fnActivate, dw FlashMenu_EnterMenuOrModifyItemVisibility
[57]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
[525]91g_MenuitemMainMenuSaveFile:
[371]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
[525]99iend
[371]100
[336]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
[57]110
[525]111g_MenuitemMainMenuHomePage:
[336]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
[525]117 at MENUITEM.bFlags, db FLG_MENUITEM_VISIBLE
[336]118 at MENUITEM.bType, db TYPE_MENUITEM_ACTION
[525]119iend
[336]120
121
[57]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
[525]141 call .EnableOrDisableSave
[57]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
[371]213;--------------------------------------------------------------------
214; .EnableOrDisableSave
215; Parameters:
216; DS: CFGVARS segment
217; Returns:
218; Nothing
219; Corrupts registers:
220; Nothing
221;--------------------------------------------------------------------
[525]222ALIGN JUMP_ALIGN
223.EnableOrDisableSave:
[371]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
[57]228
[525]229ALIGN JUMP_ALIGN
[371]230.DisableSave:
231 and BYTE [g_MenuitemMainMenuSaveFile+MENUITEM.bFlags], ~FLG_MENUITEM_VISIBLE
232 ret
[525]233
[57]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
[206]244ExitToDosSelectedFromMenu:
[525]245 JMP_MENU_LIBRARY CloseMenuIfExitEventAllows
[57]246
247
248ALIGN JUMP_ALIGN
249LoadBiosFromFile:
[59]250 call Buffers_SaveChangesIfFileLoaded
[57]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
[525]262ExitToDosFromBackButton:
[57]263 ret
264
265
266ALIGN JUMP_ALIGN
267LoadXtideUniversalBiosFromRom:
[59]268 call Buffers_SaveChangesIfFileLoaded
[68]269 call EEPROM_LoadXtideUniversalBiosFromRomToRamBufferAndReturnSizeInDXCX
[57]270 mov ax, FLG_CFGVARS_ROMLOADED
[68]271 call Buffers_NewBiosWithSizeInDXCXandSourceInAXhasBeenLoadedForConfiguration
272 mov dx, g_szDlgMainLoadROM
[118]273 call Dialogs_DisplayNotificationFromCSDX
274 jmp MainMenu_EnterMenuOrModifyItemVisibility
[57]275
276
277ALIGN JUMP_ALIGN
278LoadOldSettingsFromEeprom:
[59]279 call Buffers_SaveChangesIfFileLoaded
[57]280 call EEPROM_LoadOldSettingsFromRomToRamBuffer
[546]281 call Buffers_SetUnsavedChanges
[68]282 mov dx, g_szDlgMainLoadStngs
283 jmp Dialogs_DisplayNotificationFromCSDX
[336]284
Note: See TracBrowser for help on using the repository browser.