source: trunk/BOOTCODE/VERSION.INC@ 49

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

Fixed a nasty bug when eCS phase1 is active [2012-05-13]

WARNING!!

All commits upto and including the commit of [2012-05-13] contain
a severe bug!! Building from these sources and then disabling
the 'force LBA' feature while also using the drive-letter feature or
editing the label can DESTROY THE MBR on ALL ATTACHED DISKS!!
DO NOT DISABLE 'FORCE LBA USAGE' WHEN BUILT FROM THE THESE COMMITS!!

Fixes

o Bug Description

When creating a partition in a free space between partitions for
eCS installation, the phase1 boot-through code would calculate the
wrong index for the new partition. As a result the next partition
would be auto-booted instead of the newly installed system.
This bug is also present in v1.07.

o Quick Fix

Run PARTSCAN_ScanForPartitions for a second time when eCS phase1
is active. This resyncs the PartitionXref table.

File size: 1.6 KB
Line 
1;
2; AiR-BOOT Version Information.
3;
4
5;
6; First we define the numeric (BCD) AiR-BOOT version information.
7; This is used to derive ASCII and other representations.
8;
9
10; AiR-BOOT version conform WarpIN format with implicit 0 as fourth number.
11; Note that the config-version is managed manually.
12AB_MAJOR_VERSION EQU 1
13AB_MIDDLE_VERSION EQU 0
14AB_MINOR_VERSION EQU 8
15
16; The Year, Month and Day in BCD so we can easily extract nibbles.
17AB_YEAR EQU 2012h
18AB_MONTH EQU 05h
19AB_DAY EQU 13h
20
21; The Hours, Minutes and Seconds, again in BCD for easy manipulation.
22AB_HOURS EQU 00h
23AB_MINUTES EQU 25h
24AB_SECONDS EQU 00h
25
26; The AiR-BOOT signature uses big-endian so we shuffle some bits around.
27AB_SIG_VERSION EQU (((AB_MIDDLE_VERSION SHL 4) OR AB_MINOR_VERSION) SHL 8) OR AB_MAJOR_VERSION
28AB_SIG_YEAR EQU ((AB_YEAR SHR 8) OR (AB_YEAR SHL 8) AND 0FFFFh)
29AB_SIG_DATE EQU (AB_MONTH SHL 8) OR AB_DAY
30
31
32;
33; This macro inserts the AiR-BOOT signature at the place where it is invoked.
34;
35InsertAirbootSignature MACRO lang
36 db 'AiRBOOT'
37 dw AB_SIG_DATE
38 dw AB_SIG_YEAR
39 dw AB_SIG_VERSION
40 ; Wasm can only process the reference to 'lang' in pass 2 because it comes
41 ; from an included file which it has not processed yet at pass 1.
42 IFDEF WASM
43 IF2
44 db lang
45 ENDIF
46 ; The other assemblers process 'lang' correctly in pass 1.
47 ELSE
48 db lang
49 ENDIF
50ENDM
Note: See TracBrowser for help on using the repository browser.