source: trunk/BOOTCODE/BLDLEVEL.INC@ 51

Last change on this file since 51 was 51, checked in by Ben Rietbroek, 11 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: 4.6 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; OS/2 BLDLEVEL Information.
25;
26
27
28;
29; The version values in here are derived from the AiR-BOOT versions
30; as defined in VERSION.INC.
31;
32
33;
34; For some reason JWasm and Tasm don't accept 'EN' for instance, but need
35; it to be split-up. While 'iEN' does work. So all the strings that were not
36; accepted are split-up.
37;
38; Changed langid to be just one letter in build-level, conforming to the
39; AiR-BOOT signature.
40;
41
42; Vendor
43BLDLVL_VENDOR EQU 'KIEWITZ'
44; Version
45BLDLVL_MAJOR_VERSION EQU AB_MAJOR_VERSION + '0'
46BLDLVL_MIDDLE_VERSION EQU AB_MIDDLE_VERSION + '0'
47BLDLVL_MINOR_VERSION EQU AB_MINOR_VERSION + '0'
48; Build date
49BLDLVL_YEAR EQU (AB_YEAR SHR 12 AND 0Fh)+'0',(AB_YEAR SHR 8 AND 0Fh)+'0',(AB_YEAR SHR 4 AND 0Fh)+'0',(AB_YEAR AND 0Fh)+'0'
50BLDLVL_MONTH EQU (AB_MONTH SHR 4)+'0',(AB_MONTH AND 0Fh)+'0'
51BLDLVL_DAY EQU (AB_DAY SHR 4)+'0',(AB_DAY AND 0Fh)+'0'
52; Build time
53BLDLVL_HOURS EQU (AB_HOURS SHR 4)+'0',(AB_HOURS AND 0Fh)+'0'
54BLDLVL_MINUTES EQU (AB_MINUTES SHR 4)+'0',(AB_MINUTES AND 0Fh)+'0'
55BLDLVL_SECONDS EQU (AB_SECONDS SHR 4)+'0',(AB_SECONDS AND 0Fh)+'0'
56; Build machine (16 chars max ?)
57;BLDLVL_MACHINE EQU 'ecs-devbox'
58BLDLVL_MACHINE EQU '*UNKNOWN*'
59; Build language
60IFDEF WASM
61 ; Wasm can only process the reference to 'lang' in pass 2 because it comes
62 ; from an included file which it has not processed yet at pass 1.
63 IF2
64 BLDLVL_LANGUAGE EQU TXT_LanguageID
65 ENDIF
66; The other assemblers process 'lang' correctly in pass 1.
67ELSE
68 BLDLVL_LANGUAGE EQU TXT_LanguageID
69ENDIF
70; Description
71BLDLVL_DESCRIPTION EQU 'AiR-BOOT Boot Manager'
72
73
74
75;~ bliep struct
76 ;~ db '@#'
77 ;~ db BLDLVL_VENDOR
78 ;~ db ':'
79 ;~ db BLDLVL_MAJOR_VERSION
80 ;~ db '.'
81 ;~ db BLDLVL_MIDDLE_VERSION
82 ;~ db '.'
83 ;~ db BLDLVL_MINOR_VERSION
84 ;~ db '#@##1## '
85;~ bld_level_date_start db BLDLVL_YEAR
86 ;~ db '/'
87 ;~ db BLDLVL_MONTH
88 ;~ db '/'
89 ;~ db BLDLVL_DAY
90 ;~ db ' '
91 ;~ db BLDLVL_HOURS
92 ;~ db ':'
93 ;~ db BLDLVL_MINUTES
94 ;~ db ':'
95 ;~ db BLDLVL_SECONDS
96;~ bld_level_date_end db ' '
97 ;~ db BLDLVL_MACHINE
98 ;~ db '::'
99 ;~ ; Wasm can only process the reference to 'lang' in pass 2 because it
100 ;~ ;comes from an included file which it has not processed yet at pass 1.
101 ;~ IFDEF WASM
102 ;~ IF2
103 ;~ db BLDLVL_LANGUAGE
104 ;~ ENDIF
105 ;~ ; The other assemblers process 'lang' correctly in pass 1.
106 ;~ ELSE
107 ;~ db BLDLVL_LANGUAGE
108 ;~ ENDIF
109 ;~ db '::'
110 ;~ db BLDLVL_MINOR_VERSION
111 ;~ db '::@@'
112 ;~ db BLDLVL_DESCRIPTION
113 ;~ db 0
114;~ bliep ends
115
116
117;
118; This macro inserts the BLDLEVEL string at the place where it is invoked.
119;
120InsertBuildLevel MACRO
121 db '@#'
122 db BLDLVL_VENDOR
123 db ':'
124 db BLDLVL_MAJOR_VERSION
125 db '.'
126 db BLDLVL_MIDDLE_VERSION
127 db '.'
128 db BLDLVL_MINOR_VERSION
129 db '#@##1## '
130bld_level_date_start:
131 db BLDLVL_YEAR
132 db '/'
133 db BLDLVL_MONTH
134 db '/'
135 db BLDLVL_DAY
136 db ' '
137 db BLDLVL_HOURS
138 db ':'
139 db BLDLVL_MINUTES
140 db ':'
141 db BLDLVL_SECONDS
142bld_level_date_end:
143 db ' '
144 db BLDLVL_MACHINE
145 db '::'
146 ; Wasm can only process the reference to 'lang' in pass 2 because it comes
147 ; from an included file which it has not processed yet at pass 1.
148 IFDEF WASM
149 IF2
150 db BLDLVL_LANGUAGE
151 ENDIF
152 ; The other assemblers process 'lang' correctly in pass 1.
153 ELSE
154 db BLDLVL_LANGUAGE
155 ENDIF
156 db '::'
157 db BLDLVL_MINOR_VERSION
158 db '::@@'
159 db BLDLVL_DESCRIPTION
160 db 0
161ENDM
162
Note: See TracBrowser for help on using the repository browser.