source: trunk/BOOTCODE/SETUP/MENUS.ASM@ 54

Last change on this file since 54 was 51, checked in by Ben Rietbroek, 12 years ago

AiR-BOOT v1.0.8-rc3 build-20120909 [2012-09-10]

With Git one can easily hop-skip-and-jump between branches.
So I use Git for my local repos and make use of this easy branching.
Because SVN can only handle lineair history, these branches had to be
rebased before committing them to Netlabs. So, this commit contains a
multitude of changes which makes it a bit hairy.

New

o Display LVM drive-letters in the main menu

A populair request was to show drive-letter information in the menu.
Drive-letters however, are OS specific and AiR-BOOT cannot
accurately predict what drive-letter other operating systems would
assign to what partition. eCS LVM drive-letters however are stored
in the LVM-record and can thus be displayed.

o Added 'Show LVM Drive Letters' option in SETUP/BASIC

This will toggle the display of LVM drive-letters in the main menu.
By default this option is enabled.

o Show popup message when BIOS INT13X extensions are not available

The system is halted.

o Show 'DEL to Power Off' in the bottom left corner

This tries to power-off the system, but it may not work for you.

o Simple interactive debugger

Outputs to the serial port with a few one-letter commands to dump
internal tables and state. (Only available in debug builds)

o Enhanced drive-letter feature

Enable multiple eCS installations using the same drive-letter.
This makes it possible to clone a system with the command
'XCOPY /h /o /t /s /e /r /v /e' to another drive and have that boot
from the same drive-letter.
(Or installing to the same drive by hiding the other system)

Changes

o Reduced MBR protection-image from 1024 to 768 bytes

Luckily the MBR Protection Image code does not exceed 768 bytes,
so that gives us another 256 bytes of precious code-space.
Now the non-EN versions are happy again.
Note that the alignment for the image changed from 512 to 256 bytes.
MBR-PROT.ASM, FIXCODE.C, PARTMAIN.ASM and AIR-BOOT.ASM have been
adjusted for this change.
The fight for code-space continues...

o Updating from v1.06 now also copies over drive-letters

When the user has forced drive-letters in v1.06 these will be copied
over to the v1.0.8 configuration when upgrading.
Because the drive-letter feature is broken in v1.07,
the drive-letter table does not get copied over when upgrading
from v1.07.

o Made FX-code optional to compile in

The FX-code supplies the shifting screen-effects when 'Cooper Bars'
is enabled in the setup. With the current enhancements made however,
there is a continuous lack of code-space, especially when debug-code
is included during development. The FX-code occupies some
1200 bytes, a space that can be put to better use. Therefore the
inclusion of the FX-code has been made conditional to make room for
either debugging or future new features.

o Also rewrite PBR on HPFS

Earlier, a fix was made to write a modified PBR back in case JFS was
used. This was done to enable the drive-letter feature on JFS, since
the PBR JFS-bootcode does not use the supplied PBR in memory.
With the enhancements in the drive-letter feature, the HPFS PBR
needs to be updated on disk also, to cope with zero drive-letters in
the HPFS PBR. This potentially fixes a missing drive-letter in the
PBR when the system is restored from an archive. You might need the
drive-letter feature to force the correct drive-letter on the first
boot, after which the feature can be disabled.

o Added extra MBR protection

When AiR-BOOT is active, it is only AiR-BOOT that writes to the MBR.
To protect the MBR from programming errors, like the one below,
any write to the MBR is now checked for validity.
In essence this is protecting your MBR from bad programming done
by me...

Fixes

o Fixed a minor bug with displaying LVM drive-letters

When more partitions that can be displayed were present, scrolling
the menu would not scroll the drive-letter. Fixed.

o Fixed a bug with regard to the drive-letter feature

When partitions were deleted, and some partitions above the deleted
partition(s) had a drive-letter forced, these partitions would lose
this assignment. This bug is also present in v1.06.

Note

The AIRBOOT.HIS file mentions a DOCU directory with the AiR-BOOT
documentation etc. However, this is not present in this commit and
will be provided at a later time.

File size: 13.4 KB
Line 
1; AiR-BOOT (c) Copyright 1998-2008 M. Kiewitz
2;
3; This file is part of AiR-BOOT
4;
5; AiR-BOOT is free software: you can redistribute it and/or modify it under
6; the terms of the GNU General Public License as published by the Free
7; Software Foundation, either version 3 of the License, or (at your option)
8; any later version.
9;
10; AiR-BOOT is distributed in the hope that it will be useful, but WITHOUT ANY
11; WARRANTY: without even the implied warranty of MERCHANTABILITY or FITNESS
12; FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13; details.
14;
15; You should have received a copy of the GNU General Public License along with
16; AiR-BOOT. If not, see <http://www.gnu.org/licenses/>.
17;
18;---------------------------------------------------------------------------
19; AiR-BOOT SETUP / MENU STRUCTURE
20;---------------------------------------------------------------------------
21
22; Format of a Menu Item:
23; =======================
24; RoutinePtr :WORD - Points to Modification/Exec-Routine
25; if 0, item is empty and will get skiped
26; VariablePtr :WORD - Points to actual Item-Data
27; if 0, no ItemPack. Is used for e.g.
28; main menu items and will exec only
29; ItemNamePtr :WORD - Points to Item-Name
30; ItemHelpPtr :WORD - Points to Item-Help Text
31; If VariablePtr>0:
32; ItemPack :BYTE*12 - Spaceholder for displaying
33;
34;
35; Example:
36; dw offset MBRS_Magic_ChangePartition, offset CFG_PartDefault
37; dw offset TXT_SETUP_DefaultPart, offset TXT_SETUPHELP_DefaultPart
38; dw 6 dup (0)
39;
40; Will be a normal item-entry (not a menu-entry).
41; If modified MBRS_Magic_ChangePartition will get called and CFG_PartDefault
42; will get modified according to the users key press.
43; The name of the item will be taken from TXT_SETUP_DefaultPart and if help is
44; requested TXT_SETUPHELP_DefaultPart will get shown.
45;
46;
47; Further Example:
48; dw offset MBRS_Routines_EnterMenu_PartitionSetup, 0
49; dw offset TXT_SETUP_PartitionSetup, offset TXT_SETUPHELP_PartitionSetup
50;
51; Will be a menu-entry (due VariablePtr==0)
52; If enter is pressed MBRS_Routines_EnterMenu_PartitionSetup will get called
53; The name of the menu-entry will be taken from TXT_SETUP_PartitionSetup and
54; if help is requested TXT_SETUPHELP_PartitionSetup will get shown.
55;
56
57IFDEF MODULE_NAMES
58DB 'MENUS',0
59ENDIF
60
61LocMENU_LenOfMenuPtrBlock equ 8
62LocMENU_LenOfItemPack equ 12
63LocMENU_RoutinePtr equ 0
64LocMENU_VariablePtr equ 2
65LocMENU_ItemNamePtr equ 4
66LocMENU_ItemHelpPtr equ 6
67LocMENU_ItemPack equ 8 ; only if VariablePtr>0
68
69SETUP_MainMenu:
70 db 0 ; Where Current Item will get saved
71 dw offset TXT_SETUPHELP_Main ; Pointer to help information
72 ; The Menu-Items start here...
73 dw offset SETUP_EnterMenu_PartitionSetup, 0
74 dw offset TXT_SETUP_PartitionSetup, offset TXT_SETUPHELP_PartitionSetup
75 dw 0, 0
76 dw 0, 0
77 dw offset SETUP_EnterMenu_BasicOptions, 0
78 dw offset TXT_SETUP_BasicOptions, offset TXT_SETUPHELP_BasicOptions
79 dw 0, 0
80 dw 0, 0
81 dw offset SETUP_EnterMenu_AdvancedOptions, 0
82 dw offset TXT_SETUP_AdvOptions, offset TXT_SETUPHELP_AdvOptions
83 dw 0, 0
84 dw 0, 0
85 dw offset SETUP_EnterMenu_ExtendedOptions, 0
86 dw offset TXT_SETUP_ExtOptions, offset TXT_SETUPHELP_ExtOptions
87
88 ; The Menu-Items of the right side start here...
89 dw offset SETUP_EnterMenu_DefineMasterPassword, 0
90 dw offset TXT_SETUP_DefMasterPwd, offset TXT_SETUPHELP_DefMasterPwd
91 dw 0, 0
92 dw 0, 0
93 dw offset SETUP_EnterMenu_DefineBootPassword, 0
94 dw offset TXT_SETUP_DefBootPwd, offset TXT_SETUPHELP_DefBootPwd
95 dw 0, 0
96 dw 0, 0
97 dw offset SETUP_EnterMenu_SaveAndExitSetup, 0
98 dw offset TXT_SETUP_SaveAndExit, offset TXT_SETUPHELP_SaveAndExit
99 dw 0, 0
100 dw 0, 0
101 dw offset SETUP_EnterMenu_ExitWithoutSaving, 0
102 dw offset TXT_SETUP_JustExit, offset TXT_SETUPHELP_JustExit
103
104SETUP_BasicOptions:
105 db 0 ; Where Current Item will get saved
106 dw offset TXT_SETUPHELP_SubMenu ; Pointer to help info
107 ; The Menu-Items start here...
108 dw offset SETUPMAGIC_ChangeDefaultSelection, offset CFG_PartDefault
109 dw offset TXT_SETUP_DefaultSelection, offset TXT_SETUPHELP_DefaultSelection
110 dw 6 dup (0)
111 ; ATTENTION: ChangeDefaultSelection is redrawn hardcoded in
112 ; SETUPMAGIC_ChangeFloppyDisplay.
113 dw offset SETUPMAGIC_EnableDisable, offset CFG_TimedBoot
114 dw offset TXT_SETUP_TimedBoot, offset TXT_SETUPHELP_TimedBoot
115 dw 6 dup (0)
116 dw offset SETUPMAGIC_ChangeBootDelay, offset CFG_TimedSecs
117 dw offset TXT_SETUP_TimedBootDelay, offset TXT_SETUPHELP_TimedBootDelay
118 dw 6 dup (0)
119 dw offset SETUPMAGIC_ChangeTimedKeyHandling, offset CFG_TimedKeyHandling
120 dw offset TXT_SETUP_TimedKeyHandling, offset TXT_SETUPHELP_TimedKeyHandling
121 dw 6 dup (0)
122 dw offset SETUPMAGIC_EnableDisable, offset CFG_TimedBootLast
123 dw offset TXT_SETUP_BootLastIfTimed, offset TXT_SETUPHELP_BootLastIfTimed
124 dw 6 dup (0)
125 dw offset SETUPMAGIC_EnableDisable, offset CFG_RememberBoot
126 dw offset TXT_SETUP_RememberLastBoot, offset TXT_SETUPHELP_RememberLastBoot
127 dw 6 dup (0)
128 dw offset SETUPMAGIC_EnableDisable, offset CFG_RememberTimed
129 dw offset TXT_SETUP_RememberTimedBoot, offset TXT_SETUPHELP_RememberTimeBoot
130 dw 6 dup (0)
131 ; The Menu-Items of the right side start here...
132 dw offset SETUPMAGIC_ChangeFloppyDisplay, offset CFG_IncludeFloppy
133 dw offset TXT_SETUP_IncludeFloppy, offset TXT_SETUPHELP_IncludeFloppy
134 dw 6 dup (0)
135
136 ; Show LVM Drive Letters or not
137 dw offset SETUPMAGIC_EnableDisable, offset CFG_MiscFlags
138 dw offset TXT_SETUP_ShowLVMDriveLetters, offset TXT_SETUPHELP_ShowLVMDriveLetters
139 dw 6 dup (0)
140
141 ;~ dw 0, 0
142 ;~ dw 0, 0
143
144
145 dw offset SETUPMAGIC_EnableDisable, offset CFG_ProtectMBR
146 dw offset TXT_SETUP_MbrProtection, offset TXT_SETUPHELP_MbrProtection
147 dw 6 dup (0)
148 dw offset SETUPMAGIC_EnableDisable, offset CFG_IgnoreWriteToMBR
149 dw offset TXT_SETUP_IgnoreMbrWrites, offset TXT_SETUPHELP_IgnoreMbrWrites
150 dw 6 dup (0)
151 dw 0, 0
152 dw 0, 0
153 dw offset SETUPMAGIC_EnableDisable, offset CFG_MakeSound
154 dw offset TXT_SETUP_MakeSounds, offset TXT_SETUPHELP_MakeSounds
155 dw 6 dup (0)
156 dw offset SETUPMAGIC_EnableDisable, offset CFG_CooperBars
157 dw offset TXT_SETUP_CooperBars, offset TXT_SETUPHELP_CooperBars
158 dw 6 dup (0)
159
160SETUP_AdvancedOptions:
161 db 0 ; Where Current Item will get saved
162 dw offset TXT_SETUPHELP_SubMenu ; Pointer to help info
163 ; The Menu-Items start here...
164 dw offset SETUPMAGIC_ChangeBootMenu, offset CFG_BootMenuActive
165 dw offset TXT_SETUP_BootMenu, offset TXT_SETUPHELP_BootMenu
166 dw 6 dup (0)
167 dw offset SETUPMAGIC_EnableDisable, offset CFG_PartitionsDetect
168 dw offset TXT_SETUP_PartAutoDetect, offset TXT_SETUPHELP_PartAutoDetect
169 dw 6 dup (0)
170 dw 0, 0
171 dw 0, 0
172 ; Separator Line
173 dw 0, 0
174 dw offset TXT_SETUP_SecurityOptions, 0
175 dw offset SETUPMAGIC_EnableDisable, offset CFG_PasswordSetup
176 dw offset TXT_SETUP_PasswordedSetup, offset TXT_SETUPHELP_PasswordedSetup
177 dw 6 dup (0)
178 dw offset SETUPMAGIC_EnableDisable, offset CFG_PasswordSystem
179 dw offset TXT_SETUP_PasswordedSystem, offset TXT_SETUPHELP_PasswordedSystem
180 dw 6 dup (0)
181 dw offset SETUPMAGIC_EnableDisable, offset CFG_PasswordChangeBoot
182 dw offset TXT_SETUP_PasswordedChangeBoot, offset TXT_SETUPHELP_PasswordedBoot
183 dw 6 dup (0)
184 ; The Menu-Items of the right side start here...
185 dw offset SETUPMAGIC_EnableDisable, offset CFG_FloppyBootGetName
186 dw offset TXT_SETUP_GetFloppyName, offset TXT_SETUPHELP_GetFloppyName
187 dw 6 dup (0)
188 dw offset SETUPMAGIC_EnableDisable, offset CFG_FloppyBootGetTimer
189 dw offset TXT_SETUP_GetFloppyName2Sec, offset TXT_SETUPHELP_GetFloppyName2Sec
190 dw 6 dup (0)
191 dw offset SETUPMAGIC_EnableDisable, offset CFG_DetectVirus
192 dw offset TXT_SETUP_VirusDetect, offset TXT_SETUPHELP_VirusDetect
193 dw 6 dup (0)
194 dw offset SETUPMAGIC_EnableDisable, offset CFG_DetectStealth
195 dw offset TXT_SETUP_StealthDetect, offset TXT_SETUPHELP_StealthDetect
196 dw 6 dup (0)
197 dw offset SETUPMAGIC_EnableDisable, offset CFG_DetectVIBR
198 dw offset TXT_SETUP_VIBRdetect, offset TXT_SETUPHELP_VIBRdetect
199 dw 6 dup (0)
200 dw 0, 0
201 dw 0, 0
202 dw offset SETUPMAGIC_ChangeBIOSbootSeq, offset CFG_ResumeBIOSbootSeq
203 dw offset TXT_SETUP_ContinueBIOSboot, offset TXT_SETUPHELP_ContinueBIOSboot
204 dw 6 dup (0)
205
206
207SETUP_ExtendedBootOptions:
208 db 0 ; Where Current Item will get saved
209 dw offset TXT_SETUPHELP_SubMenu ; Pointer to help information
210 ; The Menu-Items start here...
211; [Linux support removed since v1.02]
212; dw offset SETUPMAGIC_ChangeLinuxKernelPart, offset CFG_LinuxKrnlPartition
213; dw offset TXT_SETUP_LinuxKernelPart, offset TXT_SETUPHELP_LinuxKernelPart
214; dw 6 dup (0)
215; dw offset SETUPMAGIC_ChangeLinuxDefaultKernel, offset CFG_LinuxDefaultKernel
216; dw offset TXT_SETUP_LinuxDefaultKernel, offset TXT_SETUPHELP_LinuxDefaultKrnl
217; dw 6 dup (0)
218; dw offset SETUPMAGIC_ChangeLinuxRootPart, offset CFG_LinuxRootPartition
219; dw offset TXT_SETUP_LinuxRootPart, offset TXT_SETUPHELP_LinuxRootPart
220; dw 6 dup (0)
221 dw offset SETUPMAGIC_EnableDisable, offset CFG_IgnoreLVM
222 dw offset TXT_SETUP_IgnoreLVM, offset TXT_SETUPHELP_IgnoreLVM
223 dw 6 dup (0)
224
225 ;~ dw offset SETUPMAGIC_EnableDisable, offset CFG_ForceLBAUsage
226 ;~ dw offset TXT_SETUP_ForceLBAUsage, offset TXT_SETUPHELP_ForceLBAUsage
227 ;~ dw 6 dup (0)
228
229 dw 0, 0 ; added for removal of force-lba
230 dw 0, 0 ; added for removal of force-lba
231
232 dw offset SETUPMAGIC_EnableDisable, offset CFG_ExtPartitionMShack
233 dw offset TXT_SETUP_ExtPartMShack, offset TXT_SETUPHELP_ExtPartMShack
234 dw 6 dup (0)
235
236
237
238 dw 0, 0
239 dw 0, 0
240 dw 0, 0
241 dw 0, 0
242 dw 0, 0
243 dw 0, 0
244 dw 0, 0
245 dw 0, 0
246 ; The Menu-Items of the right side start here...
247 dw 0, 0
248 dw 0, 0
249; [Linux support removed since v1.02]
250 dw 0, 0
251 dw 0, 0
252; dw offset SETUP_EnterMenu_LinuxCommandLine, 0
253; dw offset TXT_SETUP_DefLinuxCmd, offset TXT_SETUPHELP_DefLinuxCmd
254 dw 0, 0
255 dw 0, 0
256 dw 0, 0
257 dw 0, 0
258 dw 0, 0
259 dw 0, 0
260 dw 0, 0
261 dw 0, 0
262 dw 0, 0
263 dw 0, 0
Note: See TracBrowser for help on using the repository browser.