source: trunk/BOOTCODE/AIR-BOOT.HIS@ 54

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

Preparing for v1.1.0 [2013-04-05]

During v1.0.8 it was decided that odd minor numbers will be
test-versions. Since v1.0.8 was actually a test-version with several
test-releases but with an even minor number, it was decided to bump the
final release to v1.1.0.

Thus, v1.1.1 will be the next test-version after the upcoming official
v1.1.0 release. When such test-versions are published, for instance to
get feedback, or solve a particular issue, the build-date and BLDLEVEL
information will identify such a test-release. This information can be
viewed by pressing the TAB-key while the Main Menu is displayed. Such
test-releases will also have a slightly different visual appearance to
distinguish them from official releases.

Because all test-versions between official releases identify themselves
with the same version number, upgrading from one test-release to another
requires the /forcecode option on the Installer.

Following this scheme, v1.1.2 will be the next official release after
the upcoming v1.1.0 release.

It is possible however, that major changes break compatibility with
previous releases, in which case the middle number will be incremented
to reflect this.

Note that this commit still identifies as v1.0.8.

Changes

o Bumped version information to v1.1.0
o Updated version dependent code in the Installers and SETABOOT.EXE

File size: 21.0 KB
Line 
1;
2; AiR-BOOT (c) Copyright 1998-2008 M. Kiewitz
3;
4; This file is part of AiR-BOOT
5;
6; AiR-BOOT is free software: you can redistribute it and/or modify it under
7; the terms of the GNU General Public License as published by the Free
8; Software Foundation, either version 3 of the License, or (at your option)
9; any later version.
10;
11; AiR-BOOT is distributed in the hope that it will be useful, but WITHOUT ANY
12; WARRANTY: without even the implied warranty of MERCHANTABILITY or FITNESS
13; FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14; details.
15;
16; You should have received a copy of the GNU General Public License along with
17; AiR-BOOT. If not, see <http://www.gnu.org/licenses/>.
18;
19
20
21
22
23; ------------------------------------------------
24; Rousseau: Fixes, Enhancements and fresh bugs :-)
25; ------------------------------------------------
26;
27; v1.1.0-pre
28; ----------
29; # Updated textual version information from v1.0.8 to v1.1.0
30; This does not include the version identifiers.
31; During v1.0.8 is was decided that odd minor versions will be test-versions.
32; Since v1.0.8 was a test-version all the way, the final stuff has been
33; bumped to v1.1.0, including the version of the configuration.
34; v1.1.1 will be any following test-version, with build-dates separating
35; test-releases. Version 1.1.2 would be a next release.
36;
37; # Fixed Virus Regression
38; Using the enhanced drive-letter feature to boot eCS installations using
39; the same drive-letter caused the PBR-virus protection to activate.
40; This was caused by a missing update to the PBR CRC in the AB configuration.
41; This has been fixed.
42;
43; v1.0.8-rc3-bld20120909
44; ----------------------
45; # Added Show LVM Drive Letters in SETUP/BASIC #
46; This will toggle the display of LVM drive-letters in the main menu.
47; By default this option is enabled.
48;
49; # Reduced MBR Protection Image from 1024 bytes to 768 bytes #
50; The fight for code-space continues...
51; Luckily the MBR Protection Image code does not exceed 768 bytes,
52; so that gives us another 256 bytes of precious code-space.
53; Now the non-EN versions are happy again.
54; Note that the alignment for the image changed from 512 to 256 bytes.
55; MBR-PROT.ASM, FIXCODE.C, PARTMAIN.ASM and AIR-BOOT.ASM have been
56; adjusted for this change.
57;
58; # Updating from v1.06 now also copies over drive-letters #
59; When the user has forced drive-letters in v1.06 these will be copied over
60; to the v1.0.8 configuration when upgrading.
61; Because the drive-letter feature is broken in v1.07, the drive-letter
62; table does not get copied over when upgrading from v1.07.
63;
64; # Fixed a minor bug with displaying LVM drive-letters #
65; When more partitions that can be displayed were present, scrolling the
66; menu would not scroll the drive-letter. Fixed.
67;
68; # Added DOCU directory for documentation #
69; This contains the AiR-BOOT User Manual in Open Office .odt-format.
70; To also have OS/2 INF format, a transformation script and sheet have been
71; created to convert the .odt document to an ipf-source that can be compiled
72; with Watcoms wipfc ipf compiler. (IBM ipfc does not work correctly)
73; This makes it possible to write documentation in OOo Writer and export that
74; to PDF and INF format.
75;
76; # Fixed a bug with regard to the drive-letter feature #
77; When partitions were deleted, and some partitions above the deleted
78; partition(s) had a drive-letter forced, these partitions would lose this
79; assignment. This bug is also present in v1.06.
80;
81; # Implemented a very simple interactive debugger #
82; Making use of the main menu-loop, pressing a digit or a letter activates
83; some debugging routine. Mostly such a routine dumps a part of the internal
84; state to the com-port. Other purposes are the interrogation of certain
85; BIOS functions, as these can differ substantially between machines.
86;
87; # Made FX-code optional to compile in #
88; The FX-code supplies the shifting screen-effects when 'Cooper Bars' is
89; enabled in the setup. With the current enhancements made however,
90; there is a continuous lack of code-space, especially when debug-code is
91; included during development. The FX-code occupies some 1200 bytes, a space
92; that can be put to better use. Therefore inclusion the FX-code has been
93; made conditional to make room for either debugging or future new features.
94;
95; # Also write PBR to HPFS #
96; Earlier, a fix was made to write a modified PBR back in case JFS was used.
97; This was done to enable the drive-letter feature on JFS, since the PBR
98; JFS-bootcode does not use the supplied PBR in memory.
99; With the enhancements in the drive-letter feature, the HPFS PBR needs to
100; be updated on disk also, to cope with zero drive-letters in the HPFS PBR.
101;
102; # Added drive-letters in display for LVM volumes #
103; A populair request was to show drive-letter information in the menu.
104; Drive-letters however, are OS specific and AiR-BOOT cannot accurately
105; predict what drive-letter DOS would assign to what partition.
106; eCS LVM drive-letters however are stored in the LVM-record and can thus
107; be displayed. This has been implemented.
108;
109; # Enhanced drive-letter feature #
110; Enable multiple eComStation installations using the same drive-letter
111; This makes it possible to clone a system with XCOPY /h /e /s /t /r /v
112; to another drive and have that boot from the same drive-letter.
113; (Or installing to the same drive by hiding the other system)
114;
115; # Removed Force LBA Usage from Setup #
116; When AiR-BOOT is installed on an USB-stick, there is a possibility that
117; the CHS-geometry varies between different machines where the stick is
118; booted. This would invalidate the CHS-values in the partition table
119; and also the values that were stored in the AiR-BOOT's internal partition
120; table, the IPT.
121; To prevent more nasty things like below from happening, LBA-addressing
122; is now always used and the setting has been removed from the setup-menu.
123; While this may prevent AiR-BOOT from running on very old systems,
124; the focus of AiR-BOOT development is geared towards the future.
125; Such old systems can use v1.06.
126;
127; # Added extra MBR protection #
128; When AiR-BOOT is active, it is only AiR-BOOT that writes to the MBR.
129; To protect the MBR from programming errors, like the one below,
130; any write to the MBR is now checked for validity.
131; In essence this is protecting your MBR from bad programming done by me...
132;
133;!## Fixed a very very nasty bug that can destroy the MBR on multiple disks ##!
134; When Force BIOS-LBA usage is disabled (the default is enabled), and the
135; the driveletter feature is being set, and valid LVM information is present,
136; then the MBR of the disk containing the partition of which the driveletter
137; is changed will be overwritten with the LVM sector !
138; In addition, if the driveletter was already in use by another partition
139; on another disk, the MBR of that disk will be overwritten too !!
140;
141; # Fixed a nasty bug when eCS phase1 is active #
142; When creating a partition in a free space between partitions for
143; eCS installation, the phase1 boot-through code would calculate the
144; wrong index for the new partition. As a result the next partition
145; would be auto-booted instead of the newly installed system.
146; This has been fixed.
147; This bug is also present in v1.07 and does not apply to previous versions.
148;
149; v1.0.8-rc2-bld20120423
150; ----------------------
151; # Fixed some minor Installer bugs with SPT < 63 #
152; Some extra var StatusCode was used instead of Status_Code.
153; This caused too few tracks not to be reported.
154; No installation was done however.
155; This bug is also present in the v1.06 code.
156;
157; # Fixed Installer to handle packed hideparttable #
158; Implemented upgrading from v1.06 directly to v1.0.8.
159; Fixed minor stuff when upgrading from v1.06 to v1.07.
160; Hide partition configuration is now preserved when upgrading.
161; Fixed minor display bug when SPT < 63.
162;
163; # Implemented DOS code in C cross-platform installer
164; There is now one C source for 4 platforms:
165; DOS,WIN32,OS2 and LINUX (Linux portion not ready yet)
166; This obsoletes AIRBOOT.ASM/AIRBOOT.COM.
167; DOS Installer is now AIRBOOTD.EXE.
168;
169; # Merged 16-bit Assembler bitfield code to the Installer #
170; The installer needs to handle the v1.0.8 configuration.
171; This requires access to the 6-bit packed 'hideparttable'.
172; To 'not-reinvent-the-wheel', by coding this in C, the Assembler
173; bitfield functions are integrated using Open Watcom's '_asm' capability.
174; It may not be pretty and the functions themselves are limited,
175; but this method prevents maintaining seperate Asm and C implementations.
176; Will be improved later.
177;
178; # Implemented BLDLEVEL support #
179; AIRBOOT.BIN, the Installers and SET(A)BOOT now support OS/2 BLDLEVEL
180; information. This enhances identification and problem tracking/solving.
181; While BLDLEVEL is an OS/2 command, the BLDLEVEL information itself can
182; be embedded in any binary. Invoking BLDLEVEL from within OS/2 on, let's
183; say, the AIRBOOTL.ELF Linux executable, will also show the BLDLEVEL info.
184; A slight deficiency of BLDLEVEL is that is forces a format on the version.
185; So, AiR-BOOT v1.0.8 will be shown as v1.00.8.
186;
187; # Added support for Masm6 and Wasm v1.9 -- Experimental use only #
188; Trying to assemble with Masm6 or Wasm v1.9 reveiled some interesting
189; behavior aspects in general. While this version can now be assembled with
190; Masm6 and Wasm too, this was only done to get a 'cross-feeling' for this
191; project. Future versions will drop support for Tasm, Masm6 and Wasm since
192; much conditional assembly is needed to support all of them. This was an
193; experimental excercise only. JWasm is the assembler of choise for this
194; project and any future versions.
195;
196; # Implemented stop scanning when max. partitions limit exceeded #
197; Previous versions halted the system when the maximum number of partitions
198; that can be handled (45) was exceeded.
199; This required the user to boot from alternate media to correct the problem.
200; Now, when the partition limit is exceeded, AiR-BOOT displays a pop-up
201; and waits for a key-press. When the user presses a key, AiR-BOOT continues
202; and the boot-menu is shown, enabling the user to boot a system to correct
203; the problem. To indicate this situation, the color of the selection-bar
204; is displayed in red.
205;
206; # Fixed hiding partitions above old max 30-partitions limit #
207; Hiding partitions is a per partition setting and it is kept in a table
208; in the AiR-BOOT image on disk. In previous versions, including v1.0.8-rc1,
209; this table still held the old number of maximum partitions (30).
210; So configuring a hide-setting for partitions >30 or hiding more than
211; 30 partitions per partition would not work properly.
212; Unfortunately, there was no room to expand this table, since it resides
213; just below the MBR backup, at the end of the AiR-BOOT image.
214; To work around this, the table now uses a 6-bits packed format and the
215; drive-letter array, which followed this table has been moved elsewhere.
216; This is a change in the configuration layout since the previous version,
217; so the config-version has been bumped to v1.0.8.
218; TODO: Add upgrade-code to the installer to cope with this.
219;
220; # Removed requirement for LVM P and V name to be the same to edit #
221; However, when both are the same before the edit, the V name will be
222; synved to the P name to have them both the same again after the edit.
223; If they differ, only the V name is updated.
224;
225; # Trying to edit the label of a type 0x35 partition now shows a popup #
226; The user is informed that type 0x35 labels cannot be edited.
227;
228; # Type 0x35 partitions cannot be added to the AB-menu anymore #
229; They are not bootable anyway. The user is informed by a popup.
230;
231; # De-tasemized the Assembler sources for JWasm compatibility #
232; AiR-BOOT can now be built using JWasm, which is the preferred
233; assembler as of this release. Tasm support will be dropped in the future.
234;
235; # Completely reworked the build-system #
236; Everything is now done with Makefiles using WMake, Wlink and the
237; C/C++ Compilers from the Open Watcom development tools together with JWasm.
238; This obsoletes tasm, tlink and exe2bin.
239;
240; # Cross-Platform support #
241; AiR-BOOT and it's helpers can now be built on: DOS, Win32, OS/2 and Linux.
242;
243; # Rewrote FIXCODE.ASM in C so the tool-chain is not dependent on a DOS .COM #
244; Now FIXCODE is built platform-specific and takes care of the embedding
245; of MPR-protection image.
246;
247; # Created FIXCODE bash-script to accomplish embedding of MBR-protection #
248; Building on Linux requires that no DOS-tools are used in the tool-chain.
249; This script essentially performs the same functionality but does not check
250; certain conditions, like image-too-big, etc.
251; It is a 'quick-hack' until the Linux version of FIXCODE is operational.
252;
253; v1.0.8-rc1-bld20120124
254; ----------------------
255; # Changed version format to be more WarpIN compatible #
256; This is a cosmetic change only, the internal format has not changed.
257;
258; # Show LVM VolumeName instead of LVM PartitionName #
259; Previous versions of AiR-BOOT used the LVM PartitionName as the Label
260; if LVM-info was present for the partition.
261; This is inconsistent with MiniLVM which shows the LVM VolumeName.
262; Starting with v1.0.8 the LVM VolumeName is displayed.
263;
264; # LVM Partition and Volume name Synchronization #
265; Changing the Label of a partition with LVM-info now synchronizes
266; the LVM Partition Name with the LVM Volume Name.
267; This is the same behavior as MiniLVM.
268; Note however that the Label can only be changed when both the
269; LVM PartitionName and LVM VolumeName are the same.
270; See protected editing below.
271;
272; # Protected editing of the Label when LVM-info is present #
273; When the LVM VolumeName differs from the LVM PartitionName, the user can
274; edit the label but it will not be saved to the LVM record on disk.
275; This is to protect configurations created with the classic LVM tool.
276; Since MiniLVM assigns the same name to both the Partition and the Volume,
277; the Label can be edited and will be saved for such partitions.
278; To further protect a given configuration, LVM volumes with type 0x35
279; cannot be edited at all. This is to ensure that the LVM PartitionNames
280; remain unique when Spanning Volumes are used.
281;
282; # Editing the Label appended spaces #
283; When editing and changing the Label of a System using SETUP,
284; trailing spaces were stored in the LVM Volume and Partition names.
285; These labels need to be padded with zero's.
286; This has been fixed.
287; This bug is also present in v1.06.
288;
289; # Reworked Primary Partition <-> LVM-info association #
290; The previous way was to use a 1:1 correspondence between the PT-index
291; and the LVM-index. However, when the PT is cross-linked, lower entries
292; pointing to higher locations on the disk, or vice-versa, incorrect
293; LVM-info was associated. Such a cross-linked PT is sometimes generated
294; by the LVM engine when creating or deleting multiple partitions at once.
295; Best is to intermediately save after creating or deleting a partition
296; with (Mini)LVM.
297; The new way is to search the LVM-entries for the partition requested.
298;
299; # Reworked MBR-code to provide two I13X signatures #
300; The normal LVM MBR-code uses a special setup to indicate Int13X capability.
301; It contains the instruction, MOV EAX,'X31I', and some software checks
302; for the presence of the 'I13X' string in the MBR.
303; However, the location of this instruction differs between eCS 1.x and
304; eCS 2.x LVM MBR-code.
305; For compatibility, the v1.0.8 MBR has the 'I13X' string at both locations.
306;
307; # Fixed booting older eCS installations on HPFS #
308; When restoring systems from archive or otherwise generated systems,
309; the HPFS BPB sometimes lacked information that AiR-BOOT did not fill in.
310; The result was that a wrong partition was booted or that booting
311; stalled with the "unable to operate harddisk" message.
312; This has been fixed.
313;
314; # Fixed booting Windows from a logical partition with loader on FAT32 #
315; Depending on the configuration, sometimes the NTLDR could not be found.
316; This has been fixed.
317;
318; # Fixed drive-letter feature which was broken in v1.07 #
319; a) v1.07 did remember the drive-letter feature was active for a partition,
320; but it failed to store the drive-letter because too few configuration
321; sectors were saved. This resulted in arbitrary values to be assigned
322; to the drive-letter for the partition.
323; b) The JFS PBR-code does not use the in-memory BPB but uses the one
324; that is on disk. This prevented AiR-BOOT from passing the user assigned
325; drive-letter. AiR-BOOT now inserts the drive-letter in the BPB on disk,
326; but only if the partition is JFS.
327; AB v1.06 is also unable to use the drive-letter feature on JFS.
328; As a convenience, a drive-letter in the dl-feature pop-up can now be set
329; to "Disabled" by pressing backspace.
330; (As opposed to arrowing up/down to get to the "Disabled" entry)
331;
332; # Fixed stuck phase1 indicator when wrong name entered #
333; When using SET(A)BOOT /4:NAME with the MEMDRIVE env-var set,
334; and NAME being a non-existing partition, the phase1 indicator
335; would stay stuck between reboots.
336; This has been fixed.
337;
338; # Fixed DOS installer (AIRBOOT.COM) #
339; Behavior should now be the same as the eCS and WIN installers.
340; This re-enables the use of a bootable floppy or usb-stick
341; to install AiR-BOOT.
342;
343; # Fixed booting from FloppyDrive #
344; This is actually also broken in v1.06 when Int13X is forced on.
345; Now regular BIOS calls are used when booting from floppydrive.
346; A fresh AiR-BOOT installation now includes the floppydrive menu entry.
347;
348; # Fixed chainloading IBM Boot Manager #
349; AiR-BOOT v1.06 could chainload IBM-BM but only when it resided on
350; the first disk and was located below the 1024 cylinder and forced Int13X
351; extensions were disabled.
352; AiR-BOOT v1.0.8 can now chainload IBM-BM with forced Int13X extensions
353; enabled (the default) and if IBM-BM resides above the 1024 cylinder limit.
354; Also, chainloading IBM-BM from the second disk is supported.
355; Do not use chainloading IBM-BM unless you really have a need to.
356; See the AiR-BOOT Manual for "gotcha's" when using both AiR-BOOT and IBM-BM.
357;
358; # Corrected contact links #
359; Version 1.07 still presented the old contact links to the sourceforge
360; repository and the original author.
361; This caused confusion with regard to issues with v1.07.
362; This has been corrected.
363;
364; NOTE:
365; AB v1.07 had a bug with saving and loading the correct size of the
366; configuration. This broke the drive-letter feature.
367; As a result, the CRC over the config was also calculated wrongly.
368; While AB v1.0.8 fixes this, it has to use the v1.07 way of CRC calculation.
369; Otherwise SET(A)BOOT from the eCS v2.1 would break on AB v1.0.8 because it
370; sees a corrupt AiR-BOOT configuration.
371; This means that the CRC over the AB config is calculated over 5 sectors
372; instead of 7, just like in v1.07.
373;
374; NOTE:
375; Because of space constraints most of the debug code has been commented
376; out in this version.
377; Possibly it will be re-enabled after code cleanup and changing to JWasm.
378;
379;
380; v1.07-final
381; ===========
382; # Huge Drives and LVM #
383; When using disks >512GB under eComStation, the drive geometry changes to
384; 127 or 255 sectors per track. Since LVM-info is written at the last sector
385; of a track, and AiR-BOOT uses the geometry of the MBR, it cannot find the
386; LVM-info and the eCS partition / volume bootsector.
387; This has been fixed.
388; Now, when an eCS-partition is discovered and the drive is >512GB, AiR-BOOT
389; will use the eCS geometry to locate the LVM-info and the bootsector.
390;
391; # Special loader handling #
392; The special handling of partition boot-loaders has been enhanced to
393; enable booting of legacy systems on huge drives with or without OS/2
394; extended geometry.
395;
396; # eComStation boot-through after phase 1 #
397; Special functionality is implemented to directly boot a newly
398; installed eCS system after completing phase 1 of the installation.
399; This works in conjuntion with the OS/2 specific SET(A)BOOT.EXE program,
400; also part of the AiR-BOOT package.
401;
402; # Math, Debug, Conv and Aux modules #
403; These are used for 32-bit arithmatic on 16-bit code,
404; debug the boot process, converting between data-types
405; and outputting log-data to the com-port.
406;
407;
408; v1.06
409; =====
410; This is the last version developed by Martin Kiewitz.
411; It serves as the base for the versions above.
412; Please do not post your feedback on sourceforge or bother Martin with
413; regard to issues with the above versions.
414; Use the eCS bug-tracker or the Trac project-page at netlabs and see the
415; documentation of this newer versions for the relevant contact information.
416
Note: See TracBrowser for help on using the repository browser.