Changeset 36 for trunk


Ignore:
Timestamp:
Jan 13, 2013, 9:29:14 AM (13 years ago)
Author:
Ben Rietbroek
Message:

## RC1 ## -- Various Fixes and Enhancements [2012-01-25]

Fixes

o Fixed BootManager chaining

Chainloaing IBM BootManager would did now work because it was not
supplied with the correct information. It needs some special
signatures and data setup, especially when it is located above the
8 MiB boundary. In addidtion, when IBM BootManager is located on the
secon harddisk, a copy of the 1st harddisk MBR needs to be
at 0000:7E00 before relinguishing control to IBM-BM.

o Fixed Boot from Floppy

This did not work because Int13X was used to access the floppy
instead of the classic Int13 interface. On fresh installations the
booot from floppy menu-item is now enabled by default.

o Fixed drive-letter feature for when using JFS

The JFS boot-strap code does not use the boot-sector passed to it
in memory. Instead is uses the one that resides on disk. This made
the drive-letter feature disfunctional on JFS. Now, when using the
dl-feature on JFS, a modified PBR with the new drive-letter is
written to disk so the JFS boot-strap code uses the new
drive-letter.

o Fixed bug in LVM label editing

When editing an LVM-label, it was padded with spaces instead of
zero's. Labels in the PBR need to be space padded to 8 chars, LVM
labels need to be zero padded to 32-chars in the LVM-record.

o Fixed stuck Phase #1 indicator

When an eCS installation is taking place, and somehow this
installation passed a wrong volume-name or was aborted, the Phase #1
indicator would not be reset on next reboot, causing AiR-BOOT to
skip the menu and try to boot the partition that was being
installed, but has no system due to incorrect name or user abort.

Changes

o Show LVM Volume Label instead of LVM Partition Label

This makes the display of the labels more consistent with IBM-BM.
Since most systems will be partitioned with MiniLVM, which sets
both to the same name, this change will not be noted on the majority
of installations.

o Synchronize LVM-labels

When editing the LVM-lavel from AiR-BOOT SETUP, the LVM Partition
Label is synced with the new LVM Volume Label. This synchronization
only occurs when both were the same before the edit. It they were
different, only the LVM V-label is changed and the P-label remains
untouched.

o Protect type 0x35 partitions from label editing

These are spanned volumes and are not bootable anyway.
The normal eCS Volume Management tools should be used to change
the labels of these partition types.

Note

This commit and all following commits upto and including the RC3
commit [2012-09-09] are delayed commits from a local repository.
Also, the RC (Release Candidate) naming of the corresponding commits
is a bit misleading. One would label a revision with RC when near to
a final release. Since many things have changed between RC1,RC2 & RC3,
these RC's should be interpreted as mile-stones.

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 ABOVE COMMITS!!

Location:
trunk
Files:
28 edited

Legend:

Unmodified
Added
Removed
  • trunk/BOOTCODE/AIR-BOOT.ASM

    r35 r36  
    1717;
    1818
    19 ; -------------------
    20 ; Rousseau: # Fixes #
    21 ; -------------------
     19
     20
     21; ---------------------------------
     22; Rousseau: Fixes and Enhancements
     23; ---------------------------------
    2224;
    2325; v1.0.8
    2426; ------
    25 ; - Changed version format to be more WarpIN compatible.
    26 ;   This is a cosmetic change only.
    27 ; - Fixed driveletter feature which was broken in v1.07.
    28 ; - Reworked MBR-code to provide two I13X signatures.
    29 ; - Fixed booting older eCS installations on HPFS
    30 ; - Fixed booting Windows when installed in logical partition
    31 ;   with loader on FAT32.
    32 ; - Corrected contact links.
    33 ; - Location of AUX parameters has changed.
    34 ; - Fixed DOS installer (AIRBOOT.COM)
     27; # Changed version format to be more WarpIN compatible #
     28;   This is a cosmetic change only, the internal format has not changed.
     29;
     30; # Show LVM VolumeName instead of LVM PartitionName #
     31;   Previous versions of AiR-BOOT used the LVM PartitionName as the Label
     32;   if LVM-info was present for the partition.
     33;   This is inconsistent with MiniLVM which shows the LVM VolumeName.
     34;   Starting with v1.0.8 the LVM VolumeName is displayed.
     35;
     36; # LVM Partition and Volume name Synchronization #
     37;   Changing the Label of a partition with LVM-info now synchronizes
     38;   the LVM Partition Name with the LVM Volume Name.
     39;   This is the same behavior as MiniLVM.
     40;   Note however that the Label can only be changed when both the
     41;   LVM PartitionName and LVM VolumeName are the same.
     42;   See protected editing below.
     43;
     44; # Protected editing of the Label when LVM-info is present #
     45;   When the LVM VolumeName differs from the LVM PartitionName, the user can
     46;   edit the label but it will not be saved to the LVM record on disk.
     47;   This is to protect configurations created with the classic LVM tool.
     48;   Since MiniLVM assigns the same name to both the Partition and the Volume,
     49;   the Label can be edited and will be saved for such partitions.
     50;   To further protect a given configuration, LVM volumes with type 0x35
     51;   cannot be edited at all. This is to ensure that the LVM PartitionNames
     52;   remain unique when Spanning Volumes are used.
     53;
     54; # Editing the Label appended spaces #
     55;   When editing and changing the Label of a System using SETUP,
     56;   trailing spaces were stored in the LVM Volume and Partition names.
     57;   These labels need to be padded with zero's.
     58;   This has been fixed.
     59;   This bug is also present in v1.06.
     60;
     61; # Reworked Primary Partition <-> LVM-info association #
     62;   The previous way was to use a 1:1 correspondence between the PT-index
     63;   and the LVM-index. However, when the PT is cross-linked, lower entries
     64;   pointing to higher locations on the disk, or vice-versa, incorrect
     65;   LVM-info was associated. Such a cross-linked PT is sometimes generated
     66;   by the LVM engine when creating or deleting multiple partitions at once.
     67;   Best is to intermediately save after creating or deleting a partition
     68;   with (Mini)LVM.
     69;   The new way is to search the LVM-entries for the partition requested.
     70;
     71; # Reworked MBR-code to provide two I13X signatures #
     72;   The normal LVM MBR-code uses a special setup to indicate Int13X capability.
     73;   It contains the instruction, MOV EAX,'X31I', and some software checks
     74;   for the presence of the 'I13X' string in the MBR.
     75;   However, the location of this instruction differs between eCS 1.x and
     76;   eCS 2.x LVM MBR-code.
     77;   For compatibility, the v1.0.8 MBR has the 'I13X' string at both locations.
     78;
     79; # Fixed booting older eCS installations on HPFS #
     80;   When restoring systems from archive or otherwise generated systems,
     81;   the HPFS BPB sometimes lacked information that AiR-BOOT did not fill in.
     82;   The result was that a wrong partition was booted or that booting
     83;   stalled with the "unable to operate harddisk" message.
     84;   This has been fixed.
     85;
     86; # Fixed booting Windows from a logical partition with loader on FAT32 #
     87;   Depending on the configuration, sometimes the NTLDR could not be found.
     88;   This has been fixed.
     89;
     90; # Fixed drive-letter feature which was broken in v1.07 #
     91;   a)  v1.07 did remember the drive-letter feature was active for a partition,
     92;       but it failed to store the drive-letter because too few configuration
     93;       sectors were saved. This resulted in arbitrary values to be assigned
     94;       to the drive-letter for the partition.
     95;   b)  The JFS PBR-code does not use the in-memory BPB but uses the one
     96;       that is on disk. This prevented AiR-BOOT from passing the user assigned
     97;       drive-letter. AiR-BOOT now inserts the drive-letter in the BPB on disk,
     98;       but only if the partition is JFS.
     99;       AB v1.06 is also unable to use the drive-letter feature on JFS.
     100;   As a convenience, a drive-letter in the dl-feature pop-up can now be set
     101;   to "Disabled" by pressing backspace.
     102;   (As opposed to arrowing up/down to get to the "Disabled" entry)
     103;
     104; # Fixed stuck phase1 indicator when wrong name entered #
     105;   When using SET(A)BOOT /4:NAME with the MEMDRIVE env-var set,
     106;   and NAME being a non-existing partition, the phase1 indicator
     107;   would stay stuck between reboots.
     108;   This has been fixed.
     109;
     110; # Fixed DOS installer (AIRBOOT.COM) #
     111;   Behavior should now be the same as the eCS and WIN installers.
     112;   This re-enables the use of a bootable floppy or usb-stick
     113;   to install AiR-BOOT.
     114;
     115; # Fixed booting from FloppyDrive #
     116;   This is actually also broken in v1.06 when Int13X is forced on.
     117;   Now regular BIOS calls are used when booting from floppydrive.
     118;   A fresh AiR-BOOT installation now includes the floppydrive menu entry.
     119;
     120; # Fixed chainloading IBM Boot Manager #
     121;   AiR-BOOT v1.06 could chainload IBM-BM but only when it resided on
     122;   the first disk and was located below the 1024 cylinder and forced Int13X
     123;   extensions were disabled.
     124;   AiR-BOOT v1.0.8 can now chainload IBM-BM with forced Int13X extensions
     125;   enabled (the default) and if IBM-BM resides above the 1024 cylinder limit.
     126;   Also, chainloading IBM-BM from the second disk is supported.
     127;   Do not use chainloading IBM-BM unless you really have a need to.
     128;   See the AiR-BOOT Manual for "gotcha's" when using both AiR-BOOT and IBM-BM.
     129;
     130; # Corrected contact links #
     131;   Version 1.07 still presented the old contact links to the sourceforge
     132;   repository and the original author.
     133;   This caused confusion with regard to issues with v1.07.
     134;   This has been corrected.
    35135;
    36136; NOTE:
    37137;   AB v1.07 had a bug with saving and loading the correct size of the
    38 ;   configuration. Therefore the CRC over the config was also calculated
    39 ;   wrongly.
     138;   configuration. This broke the drive-letter feature.
     139;   As a result, the CRC over the config was also calculated wrongly.
    40140;   While AB v1.0.8 fixes this, it has to use the v1.07 way of CRC calculation.
    41 ;   Otherwise SET(A)BOOT from the eCS v2.1 would break because it sees
    42 ;   a corrupt AiR-BOOT configuration.
     141;   Otherwise SET(A)BOOT from the eCS v2.1 would break on AB v1.0.8 because it
     142;   sees a corrupt AiR-BOOT configuration.
    43143;   This means that the CRC over the AB config is calculated over 5 sectors
    44144;   instead of 7, just like in v1.07.
     
    53153; -----
    54154; # Huge Drives and LVM #
    55 ; When using disks >512GB under eComStation, the drive geometry changes to
    56 ; 127 or 255 sectors per track. Since LVM-info is written at the last sector
    57 ; of a track, and AiR-BOOT uses the geometry of the MBR, it cannot find the
    58 ; LVM-info and the eCS partition / volume bootsector.
    59 ; This has been fixed.
    60 ; Now, when an eCS-partition is discovered and the drive is >512GB, AiR-BOOT
    61 ; will use the eCS geometry to locate the LVM-info and the bootsector.
     155;   When using disks >512GB under eComStation, the drive geometry changes to
     156;   127 or 255 sectors per track. Since LVM-info is written at the last sector
     157;   of a track, and AiR-BOOT uses the geometry of the MBR, it cannot find the
     158;   LVM-info and the eCS partition / volume bootsector.
     159;   This has been fixed.
     160;   Now, when an eCS-partition is discovered and the drive is >512GB, AiR-BOOT
     161;   will use the eCS geometry to locate the LVM-info and the bootsector.
    62162;
    63163; # Special loader handling #
    64 ; The special handling of partition boot-loaders has been enhanced to
    65 ; enable booting of legacy sysems on huge drives with or without OS/2
    66 ; extended geometry.
     164;   The special handling of partition boot-loaders has been enhanced to
     165;   enable booting of legacy systems on huge drives with or without OS/2
     166;   extended geometry.
    67167;
    68168; # eComStation boot-through after phase 1 #
    69 ; A special functionality is implemented to directly boot the newly
    70 ; installed system ; when installing eCS without showing the Boot Menu,
    71 ; independant of user settings.
    72 ; This works in conjuntion with the OS/2 specific SETABOOT.EXE program,
    73 ; also part of this AiR-BOOT package.
     169;   Special functionality is implemented to directly boot a newly
     170;   installed eCS system after completing phase 1 of the installation.
     171;   This works in conjuntion with the OS/2 specific SET(A)BOOT.EXE program,
     172;   also part of the AiR-BOOT package.
    74173;
    75174; # Math, Debug, Conv and Aux modules #
    76 ; These are used for 32-bit arithmatic on 16-bit code,
    77 ; debug the booting process, converting between data-types
    78 ; and outputting log-data to the com-port.
     175;   These are used for 32-bit arithmatic on 16-bit code,
     176;   debug the booting process, converting between data-types
     177;   and outputting log-data to the com-port.
    79178;
    80179;
     
    84183; It serves as the base for the versions above.
    85184; Please do not post your feedback on sourceforge or bother Martin with
    86 ; regard to the above versions.
    87 ; Use the eCS bug-tracker or the Trac project-page at netlabs.
    88 ; See the documentation for the correct contact information.
     185; regard to issues with the above versions.
     186; Use the eCS bug-tracker or the Trac project-page at netlabs and see the
     187; documentation of this newer versions for the relevant contact information.
    89188
    90189
     
    95194
    96195
    97 ; ----------------------------
    98 ; Rousseau: # JUMPS disabled #
    99 ; ----------------------------
     196; -------------------------
     197; Rousseau: JUMPS disabled
     198; -------------------------
    100199; We actually don't want to use this directive because it generates extra
    101200; NOP instructions that we can do without.
     
    204303
    205304; Special line-drawing characters
    206 TextChar_WinLineRight       equ       0C4h ; 'Ä'
    207 TextChar_WinLineDown        equ       0B3h ; '³'
    208 TextChar_WinRep1            equ       0D1h ; 'Ñ'
    209 TextChar_WinRep2            equ       0C5h ; 'Å'
    210 TextChar_WinRep3            equ       0CFh ; 'Ï'
    211 TextChar_WinRep4            equ       0B5h ; 'µ'
    212 TextChar_WinRep5            equ       0C6h ; 'Æ'
    213 TextChar_WinRep6            equ       0D8h ; 'Ø'
     305TextChar_WinLineRight       equ       0C4h ; 'Ä'
     306TextChar_WinLineDown        equ       0B3h ; '³'
     307TextChar_WinRep1            equ       0D1h ; 'Ñ'
     308TextChar_WinRep2            equ       0C5h ; 'Ã
     309'
     310TextChar_WinRep3            equ       0CFh ; 'Ï'
     311TextChar_WinRep4            equ       0B5h ; 'µ'
     312TextChar_WinRep5            equ       0C6h ; 'Æ'
     313TextChar_WinRep6            equ       0D8h ; 'Ø'
    214314
    215315; Offsets for Partition-Entries in MBR/EPRs
     
    387487              db      0EBh                ; JMP-Short -> MBR_Start
    388488              ; Uses the 'A' as the displacement !
    389               db      'AiRBOOT', 20h, 01h, 20h, 12h, 01h, 08h, TXT_LanguageID
     489              db      'AiRBOOT', 24h, 01h, 20h, 12h, 01h, 08h, TXT_LanguageID
    390490
    391491              ; ID String, Date (DD,MM,CC,YY), Version Number, Language ID
     
    604704              ; [v1.05+]
    605705              ; Signature for IBM's LVM to detect our "powerful" features ;)
    606               ; [v1.08+]
     706              ; [v1.0.8+]
    607707              ; Reworked MBR code to be able to create a double 'I13X' signature.
    608708              ; MBR's created with LVM eCS v1.x have the signature at 0d5h
     
    678778
    679779                           ; Disk Signature
     780                           ; Note that in an LVM 2.x MBR this collides
     781                           ; with the dummy PTE that it used to look for IBM-BM
     782                           ; on the second harddisk.
    680783                           db    'DSIG'
    681784
    682                            ; Unused word
     785                           ; Unused word at 01BCh
     786                           ; An LVM 2.x MBR puts 'CC33' here.
    683787                           dw    '$$'
    684788
     
    727831                        ; 01h -> Boot-Able
    728832                        ; 10h -> FAT32 - Name Getting Scheme
    729                         ; 20h -> No Name To Get (use Partition Name)
     833                        ; 20h -> No Name To Get (use Partition Name from IPT)
    730834                        ; 40h -> 'L' flag possible
    731835                db      'AiRSYS-TABLE'
     
    753857                db      '        ', '        ', '        ', '        '
    754858                db      '        ', 'Kernel  ', '        ', '0V-Award'
    755                 db      'OS/2 Man', 'via BIOS', 'Floppy  ', 'Unknown '
     859;                db      'OS/2 Man', 'via BIOS', 'Floppy  ', 'Unknown '
     860                db      'OS2-BMGR', 'via BIOS', 'Floppy  ', 'Unknown '
    756861                         ; -> 44 Partition-Types
    757862
     
    797902
    798903
    799 AiR_BOOT_Start:  nop
     904AiR_BOOT_Start:
     905
     906
     907
     908        ;
     909        ; Since v1.0.8, AiR-BOOT is able to chainload IBM-BM.
     910        ; When IBM-BM resides above the 1024-cylinder limit, the 'I13X'
     911        ; signature is required at 3000:0000, FS needs to contain 3000h
     912        ; and the 32-bit LBA address needs to follow the 'I13X' signature.
     913        ; For booting IBM-BM from the second disk, a copy of the MBR of the
     914        ; first disk is also required at 0000:7E00.
     915        ; This information is derived from the eCS 2.x LVM MBR.
     916        ;
     917        ; So, now is a good time to copy the MBR of the first disk to
     918        ; 0000:7E00 in case the partition that will be started is IBM-BM.
     919        ; This copy is located at 8000:0000 and DS already points to this
     920        ; segment.
     921        ;
     922        pusha
     923        push    es
     924        xor     ax,ax
     925        mov     es,ax
     926        mov     si,offset BootBasePtr
     927        mov     di,7e00h
     928        mov     cx,100h
     929        cld
     930        rep     movsw
     931        pop     es
     932        popa
     933
     934
    800935
    801936               ;jmp skip
     
    840975
    841976                 ;
    842                  ; Enumberate Bootable Systemen by name
    843                  ; And prepare Phase 1 if active
     977                 ; Enumberate Bootable Systems by name
     978                 ; and prepare Phase 1 if active.
     979                 ;
     980                 ; This can also be implemented using the
     981                 ; Installable LVM-flag I think.
     982                 ; But at the time I had lesser knowledge about LVM...
    844983                 ;
    845984                 mov     si, offset PartitionTable
     
    855994                 jnc     MBR_Parts_NI
    856995
    857                  ; install volume
     996                 ; Install Volume
    858997                 mov     al,' '
    859998                 mov     bl,7
     
    8791018                 shr     ah, 6                        ; move ZF to LSB
    8801019                 mov     [CFG_AutomaticBoot], ah      ; automatic boot if phase 1 is active
    881                  mov     [eCS_InstallVolume], 0       ; disable phase 1 for next boot
     1020
    8821021
    8831022                 add     al,'1'
     
    9071046                 ;call    MBR_Teletype
    9081047
    909                  mov     al, [CFG_PartAutomatic]
    910                  add     al, 31h
    911                  mov     ah, 09h
    912                  mov     bx, 15
    913                  mov     cx, 1
     1048                 ;mov     al, [CFG_PartAutomatic]
     1049                 ;add     al, 31h
     1050                 ;mov     ah, 09h
     1051                 ;mov     bx, 15
     1052                 ;mov     cx, 1
    9141053                 ;int     10h
    9151054
    916                  mov     al, [CFG_PartAutomatic]
    917                  add     al, 31h
    918                  mov     ah, 0eh
    919                  mov     bx, 15
    920                  mov     cx, 1
     1055                 ;mov     al, [CFG_PartAutomatic]
     1056                 ;add     al, 31h
     1057                 ;mov     ah, 0eh
     1058                 ;mov     bx, 15
     1059                 ;mov     cx, 1
    9211060                 ;int     10h
    9221061
     
    9261065                 call    MBR_TeletypeNL
    9271066
    928                  mov    ax,[BIOS_AuxParms]
     1067                 ;mov    ax,[BIOS_AuxParms]
    9291068                 ;call   VideoIO_SyncPos
    930                  push   ax
    931                  add    al,'0'
    932                  mov     bl,7
    933                  mov     ah, 0eh
     1069                 ;push   ax
     1070                 ;add    al,'0'
     1071                 ;mov     bl,7
     1072                 ;mov     ah, 0eh
    9341073                 ;int     10h
    935                  pop    ax
    936                  xchg   al,ah
    937                  sub    al,0a2h
    938                  mov     bl,7
    939                  mov     ah, 0eh
     1074                 ;pop    ax
     1075                 ;xchg   al,ah
     1076                 ;sub    al,0a2h
     1077                 ;mov     bl,7
     1078                 ;mov     ah, 0eh
    9401079                 ;int     10h
    9411080
     
    9901129                 ; Moved here to fix that Esc out of SETUP would also save.
    9911130                 ; So moved above the MBR_Main_ReEnterSetup label.
     1131                 mov     [eCS_InstallVolume], 0       ; disable phase 1 for next boot
    9921132                 call    DriveIO_SaveConfiguration
    9931133
     
    11701310size_math = $-b_math
    11711311
    1172 b_conv:
    1173 Include REGULAR\CONV.ASM         ; Various conversion routines
    1174 size_conv = $-b_conv
     1312
    11751313
    11761314IFDEF AuxDebug
     
    12601398size_charset = $-b_charset
    12611399
    1262 
    1263 ;
    1264 ; Here is room for more code.
    1265 ; Let's move the special modules here...
    1266 ; The come from the previous section.
    1267 ;
     1400b_conv:
     1401Include REGULAR\CONV.ASM                 ; Various conversion routines
     1402size_conv = $-b_conv
     1403
    12681404b_virus:
    12691405Include SPECiAL\ViRUS.asm                ; Virus Detection / Anti-Virus
     
    12881424size_fx = $-b_fx
    12891425
    1290 ;b_lvm:
    1291 ;Include SPECiAL\LVM.asm                  ; LVM-specific code
    1292 ;size_lvm = $-b_lvm
    1293 
    1294 
    1295 
    1296 
    12971426
    12981427;
     
    13321461
    13331462
     1463
    13341464Configuration:               ; THERE IS AN INVISIBLE CHAR HERE !!
     1465                             ; Your editor may not display the invisible
     1466                             ; character at the end if the 'AiRCFG-TABLE'
     1467                             ; string. When this character get's deleted,
     1468                             ; AiR-BOOT will not function because it cannot
     1469                             ; find the config-signature which includes this
     1470                             ; invisible character. The code is: 0x0ad.
    13351471                             db 'AiRCFG-TABLE­'
    13361472                             db 01h, 07h, 'U' ; "Compressed" ID String
     
    13541490
    13551491CFG_PartLast                 db     0    ; Which Partition was booted last time ? (Base=0)
    1356 CFG_TimedBoot                db     0    ; Timed Boot Enable (for REAL Enable look TimedBootEnable)
     1492CFG_TimedBoot                db     1    ; Timed Boot Enable (for REAL Enable look TimedBootEnable)
    13571493CFG_TimedSecs                db    15    ; Timed Boot - How Many Seconds Till Boot
    13581494CFG_TimedDelay               dw   123    ; Timed Boot - Delay
     
    13601496CFG_RememberBoot             db     1    ; Remember Manual Boot Choice
    13611497CFG_RememberTimed            db     0    ; Remember if Timed Boot (if both disabled: Boot Default)
    1362 CFG_IncludeFloppy            db     0    ; Include Floppy Drives in Boot-Menu
     1498CFG_IncludeFloppy            db     1    ; Include Floppy Drives in Boot-Menu
    13631499CFG_BootMenuActive           db     1    ; Display Boot-Menu (if Disabled: Boot Default)
    13641500                                         ; v0.29+ -> 2 - Detailed Bootmenu
     
    15411677                ; --------------------> 34 Bytes (total maximum partition-entries = 30)
    15421678
    1543    db (partition_count * 34) dup ('P')
     1679   db (partition_count * 34) dup ('0')
    15441680
    15451681eos56:
     
    15841720                                         ; Drive-Letter : BYTE (80h-C:, 81h-D:)
    15851721                                         ; --------------------> 1 Byte * 30
     1722
     1723        ;
     1724        ; There is some room here, but this is the configuration section.
     1725        ; So not available for code.
     1726        ;
     1727
    15861728eos58:
    15871729eoipt:
     
    16211763AirBootRocks                 db     'AiR-BOOT Rocks!',0
    16221764
     1765                             db 512-($-sohid)-2  dup(0)
     1766
    16231767eos60:
    16241768eohid:
    16251769
    16261770; Check for overlap
    1627 slack12 = eoab - eohid
     1771slack12 = eoab - eohid -2
    16281772IF slack12 LT 0
    16291773   .ERR2 "Location Overlap slack12 !"
     
    16511795BeginOfVariables:
    16521796PartitionSector              db   512 dup (?) ; Temporary Sector for Partition
     1797JfsPBR                       db   512 dup (?) ; Temporary Sector for JFS PBR writeback
    16531798LVMSector:                   db   512 dup (?) ; Temporary Sector for LVM
    16541799TmpSector:                   db   512 dup (?) ; Temporary Sector
     
    16781823ExtendedAbsPosSet            db     ?           ; If Absolute Position set
    16791824
    1680 CurPartition_Location        dw     4 dup (?)   ; Where did current partition came from?
     1825CurPartition_Location        dw     4 dup (?)   ; Where did current partition come from?
    16811826CurIO_UseExtension           db     ?           ; 1-Use INT 13h EXTENSIONS
    16821827                                                ; (filled out by PreCrap)
  • trunk/BOOTCODE/MAKE.BAT

    r32 r36  
    4242if errorlevel 1 goto Failed
    4343
     44@ren air-boot.LST air-boot.tsl
     45@ren air-boot.tsl AIR-BOOT.LST
     46
    4447..\tools\internal\fixcode.com
    4548
    46 copy AIR-BOOT.com ..\RELEASE\BOOTCODE\AIRBT-%1.bin
     49copy AIR-BOOT.COM ..\RELEASE\BOOTCODE\AIRBT-%1.BIN
    4750
    4851copy AIR-BOOT.COM AIRBOOT.BIN
    4952
    5053rem Cleanup
    51 del AiR-BOOT.com
    52 del AiR-BOOT.exe
    53 del AiR-BOOT.obj
     54del AiR-BOOT.COM
     55del AiR-BOOT.EXE
     56del AiR-BOOT.OBJ
    5457goto ExitMe
    5558
  • trunk/BOOTCODE/MBR-PROT/MAKE.BAT

    r30 r36  
    88%exe2bin% mbr_prot.exe mbr_prot.com
    99if errorlevel 1 goto Failed
    10 copy mbr_prot.com fixcode.com
    11 if errorlevel 1 goto Failed
     10rem copy mbr_prot.com fixcode.com
     11rem if errorlevel 1 goto Failed
     12
     13@ren mbr_prot.LST mbr_prot.TSL
     14@ren mbr_prot.TSL MBR_PROT.LST
     15@ren mbr_prot.com mbr_prot.moc
     16@ren mbr_prot.moc MBR_PROT.COM
     17
    1218
    1319rem Cleanup
    14 ::del mbr_prot.exe
    15 ::del mbr_prot.obj
     20del mbr_prot.exe
     21del mbr_prot.obj
    1622goto ExitMe
    1723
  • trunk/BOOTCODE/REGULAR/DRIVEIO.ASM

    r34 r36  
    179179         jc      DIOILUT_Error
    180180         and     cl, 111111b    ; Isolate lower 6 bits of CL -> sector count
    181 
    182          ; huge disk 127 sec/track on <1TB using DANI
    183 ;         mov     cl, 07Fh
    184181
    185182         ;movzx   ax, cl
     
    668665; #########################################################################
    669666DriveIO_LoadSector              Proc Near  Uses ax bx ds si es di
    670    test     cs:[CurIO_UseExtension], 1
    671    jz       DIOLS_UseNormal
    672    ; Are we forced do use LBA via Setting? ; Rousseau: LBA
    673    jnz      DIOLS_UseExtension
    674667   ; Is the drive not a harddrive?
    675668   cmp      dl, 80h
    676669   jb       DIOLS_UseNormal
     670
     671   test     cs:[CurIO_UseExtension], 1
     672   jz       DIOLS_UseNormal
     673   ; Are we forced do use LBA via Setting?
     674   jnz      DIOLS_UseExtension
     675
    677676   ; Upper 8 bits of LBA-address set? -> Use LBA (maximum boundary is FB0400h)
    678677   or       bh, bh
     
    757756      int     13h
    758757
    759       ; Looking goot so far
     758      ; Looking good so far
    760759      jnc     DriveIO_LoadSectorLBA_succes1
    761760
     
    864863
    865864; ------------------------------------------------------
    866 ; Rousseau: # Load the master LVM-sector is one exists #
     865; Rousseau: # Load the master LVM-sector if one exists #
    867866; ------------------------------------------------------
    868867; Load the master LVM-sector to get the number of sectors per track as eCS views the drive.
     
    884883        pusha
    885884
    886         mov      si,offset db_lmlvm
     885        ;mov      si,offset db_lmlvm
    887886        ;call     AuxIO_Print
    888887
     
    12401239secs_per_track_table:   db    63,127,255,255,255,255
    12411240
    1242 db_lmlvm:   db 'Load Master LVM -- disk: ',0
     1241;db_lmlvm:   db 'Load Master LVM -- disk: ',0
  • trunk/BOOTCODE/REGULAR/OTHER.ASM

    r32 r36  
    289289   endif
    290290
    291    call    PRECRAP_CheckFor13extensions
     291
     292    ; This sets [CurIO_UseExtension] flag.
     293    call    PRECRAP_CheckFor13extensions
     294
     295
    292296
    293297   IFNDEF ReleaseCode
     
    295299   ENDIF
    296300
     301
    297302   call    PRECRAP_CheckConfiguration
     303
    298304
    299305   ; =======================================
  • trunk/BOOTCODE/REGULAR/PARTMAIN.ASM

    r34 r36  
    753753;        In: DL - Number of partition (filtered view)
    754754;       Out: No Return...
    755 ; Destroyed: None, due no return ;-)
     755; Destroyed: None, due to no return ;-)
    756756;     Logic: - Harddrive: loads partition Table
    757757;                         sets partition active
     
    768768   local BootPartNo:byte
    769769   local PhysDiskBpbIndex:word    ; Index into BPB to field of phys-disk
     770   local FSType:byte                ; The FS used on the loaded BPB
     771                                    ; Only used for FAT/HPFS/JFS
     772
    770773   ; Get Partition-Pointer (SI) to Partition-To-Boot (DL)
    771774   call    PART_GetPartitionPointer
     
    787790      ; Copy Partition-Name to BootingNow area for display purposes
    788791         add     si, LocIPT_Name
     792
     793
     794;pusha
     795;call    MBR_Teletype
     796;mov     si,offset TXT_BootingNowPartName
     797;call    MBR_Teletype
     798;popa
     799
    789800         mov     cx, 11
    790801         call    GetLenOfName
     
    800811;      cmp     dh, 0FDh
    801812;      je      PSP_IsKernel
     813
     814;pusha
     815;call    MBR_Teletype
     816;mov     si,offset TXT_BootingNowPartName
     817;call    MBR_Teletype
     818;popa
     819
     820
    802821      or      dl, dl
    803822      jnz     PSP_IsHarddisc
    804823      ; When booting floppy/CD-ROM/etc., we got other text to be displayed...
    805824      mov     si, offset TXT_BootingNowPartName
    806       call    MBR_Teletype
     825      call    MBR_TeletypeVolName
    807826      jmp     PSP_IsFloppyCDROMetc
    808827
     
    821840      IFDEF ReleaseCode
    822841         ; Save configuration on HDD boots (save CFG_PartLast)
    823          call    DriveIO_SaveConfiguration                                       ; Rouaaseu: SAVE CONFIGURATION !
     842         call    DriveIO_SaveConfiguration                                       ; Rousseau: SAVE CONFIGURATION !
    824843      ENDIF
    825       call    MBR_Teletype     ; Prints out BootingNow2 including PartitionName
     844      ;call    MBR_Teletype     ; Prints out BootingNow2 including PartitionName
     845      mov     si, offset TXT_BootingNowPartName
     846      call    MBR_TeletypeVolName
    826847      mov     si, offset TXT_BootingNowPartition
    827848      call    MBR_Teletype
     
    834855   mov     dl, [si+LocIPT_Drive]
    835856
     857
     858
     859   ; This loads the MBR in case of PRI or the EBR in case of LOG partitions.
    836860   call    DriveIO_LoadPartition         ; Load Table...                [LOAD]
     861
     862
    837863
    838864   ; --------------------------------------------------- MODIFY PARTITION TABLE
     
    878904   ENDIF
    879905
     906
     907
    880908   ; ---------------------------------------------------------- OS/2 / eCS I13X
    881909   ; Now check if the partition to get booted is above 8 GB.
    882910   ;  If yes, set magic bytes 'I13X' at 3000:0 for boot-loader to recognize.
    883911   ;  This method is (c) by IBM <g>
     912   ; Rousseau: Booting IBM-BM also requires the LBA address of the IBM-BM
     913   ; partitionafter the 'I13X' signature.
     914   ; Also, FS needs to be set to 3000H.
     915   ; This info was obtained by examining the LVM 2,x MBR-code.
    884916   mov     ax, wptr [si+LocIPT_AbsoluteBegin+0]
    885917   mov     bx, wptr [si+LocIPT_AbsoluteBegin+2]
     
    893925   cmp     bx, 00FBh
    894926   jb      PSP_NoI13X
     927
     928
    895929  PSP_ForceI13X:
    896    push    es di si
    897       mov     ax, 3000h
    898       mov     es, ax
    899       xor     di, di
    900       ; Blokkeert starten van IBM BM !!
    901       mov     wptr es:[di], '1I'
    902       mov     wptr es:[di+2], 'X3'
    903 
    904       ;mov      si,3000h
    905       ;call     AuxIO_DumpSector
    906 
    907    pop     si di es
     930        push    es di si
     931
     932        ; Setup ES and FS.
     933        ; FS needs to keep this address.
     934        mov     ax, 3000h
     935        mov     es, ax
     936        ; mov fs,ax
     937        db  08eh
     938        db  0e0h
     939
     940        ; Insert signature
     941        xor     di, di
     942        mov     wptr es:[di+00], '1I'
     943        mov     wptr es:[di+02], 'X3'
     944
     945        ;mov     wptr es:[di], 0
     946        ;mov     wptr es:[di+2], 0
     947
     948        ; Insert LBA address.
     949        mov     ax, wptr [si+LocIPT_AbsoluteBegin+0]
     950        mov     wptr es:[di+04], ax
     951        mov     ax, wptr [si+LocIPT_AbsoluteBegin+2]
     952        mov     wptr es:[di+06], ax
     953
     954        pop     si di es
     955
     956
     957
    908958  PSP_NoI13X:
    909959
     
    10281078   mov     dh, [si+LocIPT_LocationBegin+0]
    10291079   mov     dl, [si+LocIPT_Drive]
     1080
     1081   ; This loads the PBR of the partition.
    10301082   call    DriveIO_LoadPartition         ; Loads boot-sector...   [PARTBOOTSEC]
     1083
     1084    ;
     1085    ; The JFS PBR-code does not use the passed BPB in memory but uses the BPB
     1086    ; on disk. This breaks the drive-letter feature on JFS.
     1087    ; So we make a copy of the PBR in memory, and if the partition is JFS
     1088    ; we later adjust the physical-disk and boot-drive-letter in this
     1089    ; copy and write it back to disk.
     1090    ; Then the JFS PBR-code will see the correct boot-drive-letter.
     1091    ;
     1092    pusha
     1093    mov     si,offset PartitionSector
     1094    mov     di,offset JfsPBR
     1095    mov     cx,100h
     1096    cld
     1097    rep     movsw
     1098    popa
     1099
     1100
     1101
     1102   ; Check if the disk is a harddisk or a floppy.
     1103   mov     dl,[si+LocIPT_Drive]
     1104   cmp      dl, 80h
     1105   jae      is_harddisk
     1106
     1107   ;
     1108   ; This is a dirty hack to fix booting from a floppy.
     1109   ; With all the modifications made since v1.06 this feature was broken
     1110   ; because Int13X is used implicitly now, and that does not work
     1111   ; for diskette access.
     1112   ; This jumps to the code that loads and starts the pbr-code.
     1113   ; Note that it also skips virus checking !
     1114   ; This will be fixed at a later date.
     1115   jmp     boot_from_floppy
     1116
     1117
     1118
     1119
     1120  ;
     1121  ; The disk is a harddisk so we need to do various checks and fixes.
     1122  ;
     1123  is_harddisk:
    10311124
    10321125   test    CFG_DetectVIBR, 1
     
    11141207        ; Display volume-name in bold
    11151208        ; Just before booting the selected partition
    1116         pushf
    1117         pusha
    1118         push    si
    1119         add     si, LocIPT_Name
    1120         call    MBR_TeletypeVolName
    1121         xor     si,si
    1122         call    MBR_TeletypeNL
    1123         pop     si
    1124         popa
    1125         popf
    1126 
    1127 
    1128         ; Locate cursor for output of debug-info
    1129         pusha
    1130         mov     ch,7
    1131         mov     cl,0
    1132         call    VideoIO_Color
    1133         mov     ch,6
    1134         mov     cl,1
    1135         call    VideoIO_Locate
    1136         popa
     1209        ;pushf
     1210        ;pusha
     1211        ;push    si
     1212        ;add     si, LocIPT_Name
     1213        ;call    MBR_TeletypeVolName
     1214        ;xor     si,si
     1215        ;call    MBR_TeletypeNL
     1216        ;pop     si
     1217        ;popa
     1218        ;popf
     1219
     1220
     1221
    11371222
    11381223
     
    11511236
    11521237        ;
    1153         ; At this point, SI points to IPT and SI points to the PBR from disk.
     1238        ; At this point, SI points to IPT and DI points to the PBR from disk.
    11541239        ; Depending on the type of BPB used, the physical disk field is at
    11551240        ; different locations: 24h for old-style (OS/2) BPB's and 40h for
     
    11771262        mov     bx,ax
    11781263
     1264        ; Locate cursor for output of debug-info
    11791265        pusha
     1266        mov     ch,7
     1267        mov     cl,0
     1268        call    VideoIO_Color
     1269        mov     ch,6
     1270        mov     cl,1
     1271        call    VideoIO_Locate
     1272        popa
     1273
     1274        ; Debug display physdisk, ptype and physdisk offset in BPB
     1275        pusha
     1276        mov     ah,[si+LocIPT_Drive]
     1277        mov     al,[si+LocIPT_SystemID]
     1278        call    VideoIO_PrintHexWord
     1279        mov     ax,bx
    11801280        call    VideoIO_PrintHexWord
    11811281        popa
    11821282
     1283
     1284        ;
     1285        ; If the partition is IBM-BM we skip all the BPB adjustments.
     1286        ; IBM-BM does no need them.
     1287        ;
     1288        cmp     byte ptr [si+LocIPT_SystemID], 0ah
     1289        jnz     no_os2_bm
     1290        jmp     chainload_ibm_bm
     1291
     1292
     1293    no_os2_bm:
     1294
     1295        ;
    11831296        ; Update the phys-drive field
     1297        ;
    11841298        mov     al,byte ptr [si+LocIPT_Drive]
    11851299        mov     es:[di+bx],al
    1186         mov     al,al
    1187 
    1188         pusha
    1189         call    VideoIO_PrintHexByte
    1190         popa
     1300
     1301
     1302        ;
     1303        ; Legacy systems do not put the correct values in the "hidden sectors"
     1304        ; field. Also, this field will be incorrect if a partition is moved on
     1305        ; disk by a disktool not accounting for this field.
     1306        ; Linux does not have a BPB at all, and does not use this field.
     1307        ; So we set the correct value here obtained by the partition scanner.
     1308        ; This fixing is done by OS/2 BM as well, according to Martin.
     1309        ;
    11911310
    11921311        ;
     
    12021321
    12031322
     1323
     1324
     1325
    12041326        ;
    12051327        ; Check partitions to see if boot-drive-letter fixing is needed.
     
    12181340        ; AL will be <> 0 and the boot-drive-letter can be tested / fixed.
    12191341        mov     al,0
     1342
     1343
     1344        ; FIXME:
     1345        ; The PBR is already loaded, no need to load it again in the
     1346        ; calls below.
     1347        ;
     1348        ; Better use the already done discovery to determine the system.
     1349        ;
    12201350
    12211351        ; When FAT12/FAT16/HPFS/JFS then boot-drive-letter can be tested
     
    12291359        mov     ah,al
    12301360
    1231         pusha
    1232         mov     al,'='
    1233         call    VideoIO_PrintSingleChar
    1234         mov     al,ah
    1235         call    VideoIO_PrintHexByte
    1236         mov     al,'='
    1237         call    VideoIO_PrintSingleChar
    1238         popa
    1239 
    1240         ; See if boot-drive-letter fix is needed depending on FS used.
     1361        ; Store for later reference.
     1362        mov     [FSType],al
     1363
     1364
     1365        ;
     1366        ; When the phys-disk byte (80h) is put in this BPB in RAM,
     1367        ; Windows will not find it's loader if Windows itself
     1368        ; is installed in a logical partition but the loader is on FAT
     1369        ; in a primary.
     1370        ; This goes for all NT-based versions ?
     1371        ;
     1372
     1373
     1374        ;
     1375        ; See if phys-disk / boot-drive-letter fix is needed
     1376        ; depending on FS used.
    12411377        ; AL will be 0 for any file-system other than FAT12/FAT16/HPFS/JFS.
     1378        ;
    12421379        test    al,al
    12431380        jz      bdl_ok
     1381
     1382
    12441383
    12451384        ; Check if the boot-drive-letter is non-zero.
     
    12611400        mov     bx,[si+LocIPT_AbsoluteBegin+02h]
    12621401        call    LVM_GetDriveLetter
     1402
    12631403        ; Save the status for later use
    12641404        pushf
    1265         ; Save drive-letter in AH
    1266         mov     ah,al
    12671405
    12681406        ; See if the drive-letter feature is active.
    12691407        ; If active, we force the drive-letter from the user.
    12701408        test    byte ptr [si+LocIPT_Flags], Flags_DriveLetter
     1409
    12711410        ; Nope, it's not so we don't force the boot-drive-letter
    12721411        ; using field 25h.
     
    12811420        mov     al, bptr [DriveLetters+bx]
    12821421        sub     al,3dh      ; Convert BIOS notation to ASCII drive-letter
    1283         pusha
    1284         mov     al,'!'
    1285         call    VideoIO_PrintSingleChar
    1286         popa
     1422
     1423
     1424
    12871425    PSP_NoLogicalSupport:
    12881426
     
    12901428        ; Save it in AH.
    12911429        mov     ah,al
    1292         pusha
    1293         mov     al,'+'
    1294         call    VideoIO_PrintSingleChar
    1295         mov     al,ah
    1296         call    VideoIO_PrintHexByte
    1297         mov     al,'+'
    1298         call    VideoIO_PrintSingleChar
    1299         popa
     1430
    13001431
    13011432        ; Restore the status whether an LVM drive-letter could be obtained
     
    13031434
    13041435
     1436        ;
    13051437        ; No valid LVM-info if no info found or drive-letter is zero.
     1438        ;
    13061439        jnc     no_valid_lvm_info
    13071440        test    al,al
     
    13161449        add     al,3dh
    13171450
    1318         ; Fix the boot-drive-letter field in the BPB
    1319         mov     bx,PhysDiskBpbIndex
    1320         inc     bx
    1321         mov     es:[di+bx],al
    1322 
    1323         pusha
    1324         call    VideoIO_PrintHexByte
    1325         popa
    1326 
    1327         jmp     bdl_ok
    1328 
    1329 
    1330     no_valid_lvm_info:
    1331         ; HERE SHOULD COME AN ERROR POP-UP ABOUT NO BOOT-DRIVE.
    1332         ; WE CONTINUE BOOTING BUT OS/2 - eCS WILL MOST PROBABLY FAIIL TO BOOT.
    1333 
    1334         mov     ah,07h
    1335         mov     si,offset CheckID_MBR
    1336         call    VideoIO_Print
    1337 
    1338     hang:
    1339         jmp     hang
    1340 
    1341 
    1342     bdl_ok:
    1343 
    1344 
    1345 
    1346         ;xor     ax,ax
    1347         ;int     16h
    1348 
    1349 
    1350 
    1351 
    1352 
    1353         ; Check FS-types
    1354         ; Adjust fields
    1355 
    1356 
    1357 
    1358 
    1359 
    1360         ; Rousseau: # Boot Logical Partitions)
    1361         ; FreeDOS and eCS on extpart on non-huge needs special support.
    1362         ; (old ja jump)
    1363         ; PC-DOS7 on huge pri fat16 2G works with both (XP too) when at start of disk.
    1364         ; (also when offset at 20MiB)
    1365         ; PCD7 bonkt vast als in 2GiB log at start of space.
    1366         ; "Starting PC DOS..." verschijnt. PCD Loader probleem.
    1367         ; Offset van start-of-disk bij PCD7 niet meer dan 2GiB maken.
    1368         ; Special is needed to boot ECS-CXXVAC (log-part) on Douwskie Box with 40G disk.
    1369         ; FreeDOS 20G PRI SOD op 400G start niet met special.
    1370         ; Heeft drive-id op 26h (36d) van 0dh !
    1371         ; WinXP werkt met special en not-special op 400G normal geo.
    1372         ; eCS op PRI op 2G met os2 ext geo werkt ook met beide.
    1373         ; eCS LOG werkt niet zonder special op 400G.
    1374         ; (hidden secs op 3F en moet 3F00 zijn; BM staat ervoor, 3F00=255*63+63)
    1375         ; Laatste 63 is MBR.
    1376         ;
    1377 
    1378 
    1379 
    1380 
    1381         ;
    1382         ; When the phys-disk byte (80h) is put in this BPB in RAM,
    1383         ; Windows will not find it's loader if Windows itself
    1384         ; is installed in a logical partition but the loader is on FAT
    1385         ; in a primary.
    1386         ; This goes for all NT-based versions ?
    1387         ;
    1388         ; Get saved value of phys drive from BPB on disk.
    1389         ; See if it's high nibble is above 9, which would indicate
    1390         ; FreeDOS or WinBMGR/Loader on FAT32. (0FBh)
    1391         ; In that case we don't write the phys-disk number to the BPB.
    1392         ;
    1393 
    1394 
    1395 
    1396 
    1397 
    1398 
    1399 
    1400 
    1401         ;
    1402         ; Legacy systems do not put the correct values in the "hidden sectors"
    1403         ; field. Also, this field will be incorrect if a partition is moved on
    1404         ; disk by a disktool not accounting for this field.
    1405         ; Linux does not have a BPB at all, and does not use this field.
    1406         ; So we set the correct value here obtained by the partition scanner.
    1407         ; This fixing is done by OS/2 BM as well, according to Martin.
    1408         ;
    1409 
    1410 
    1411 
    1412 
    1413     ; ----------------------------------------------- LOGICAL PARTITION SUPPORT
    1414 
    1415 
    1416         ;
    1417         ; OS/2 uses this field to indicate the boot-drive for the system.
     1451
     1452        ;
     1453        ; OS/2 uses this field to indicate the boot-drive-letter for the system.
    14181454        ; It is in BIOS notation where 80h='C', 81h='D' ... 97h='Z'.
    14191455        ; This is the field that get's forced to a specific value when the
     
    14241460        ; See issues #3067 and #3119 on http://bugs.ecomstation.nl
    14251461        ;
     1462
     1463
     1464        ; Fix the boot-drive-letter field in the BPB
     1465        mov     bx,PhysDiskBpbIndex
     1466        ; Advance to field for drive-letter in BIOS notation (OS/2 - eCS)
     1467        inc     bx
     1468        mov     es:[di+bx],al
     1469
     1470
     1471        jmp     bdl_ok
     1472
     1473
     1474    no_valid_lvm_info:
     1475        ; HERE SHOULD COME AN ERROR POP-UP ABOUT NO BOOT-DRIVE OR NO LVM-INFO.
     1476        ; WE CONTINUE BOOTING BUT OS/2 - eCS WILL MOST PROBABLY FAIL TO BOOT.
     1477
     1478        ;mov     ah,07h
     1479        ;mov     si,offset CheckID_MBR
     1480        ;call    VideoIO_Print
     1481
     1482    hang:
     1483        ;jmp     hang
     1484
     1485
     1486    ;
     1487    ; Boot DriveLetter OK.
     1488    ;
     1489    bdl_ok:
     1490
     1491
     1492        ;
     1493        ; If the partition getting booted is a JFS partition then write-back
     1494        ; the modified PBR to the disk.
     1495        ; Note that it's not the in-memory PBR that get's written back, but
     1496        ; a copy of the original where only the phys-disk and boot-drive-letter
     1497        ; are adjusted.
     1498        ;
     1499        pusha
     1500        mov     al,[FSType]
     1501        cmp     al,04h      ; JFS
     1502        jnz     no_jfs_pbr
     1503
     1504        ; Save IPT pointer
     1505        push    si
     1506
     1507        ; Copy the boot-drive and boot-drive-letter fields.
     1508        mov     si,offset PartitionSector
     1509        mov     di,offset JfsPBR
     1510        mov     al,[si+24h]
     1511        mov     [di+24h],al
     1512        mov     al,[si+25h]
     1513        mov     [di+25h],al
     1514
     1515        ; Restore IPT pointer
     1516        pop     si
     1517
     1518        ; Setup the registers for the partition location.
     1519        mov     ax, wptr [si+LocIPT_AbsoluteBegin+0]
     1520        mov     bx, wptr [si+LocIPT_AbsoluteBegin+2]
     1521        mov     cx, [si+LocIPT_LocationBegin+1]
     1522        mov     dh, [si+LocIPT_LocationBegin+0]
     1523        mov     dl, [si+LocIPT_Drive]
     1524
     1525        ; Write the adjusted JFS PBR to disk.
     1526        mov     si, offset JfsPBR
     1527        call    DriveIO_SaveSector
     1528
     1529    no_jfs_pbr:
     1530        popa
     1531
     1532
     1533        ;xor     ax,ax
     1534        ;int     16h
     1535
     1536
     1537
     1538
     1539
     1540
     1541
     1542
     1543
     1544
     1545
     1546
     1547
     1548
     1549
     1550
     1551
     1552    ; ----------------------------------------------- LOGICAL PARTITION SUPPORT
     1553
     1554
     1555
    14261556        ; AiR-BOOT now works around it by using the LVM-info (DLAT) of
    14271557        ; the partiton if present.
     
    14391569
    14401570
    1441 
    1442 
    1443         ;
    1444         ; At this point it's possible that a system is being booted from
    1445         ; HPFS with the boot-drive field (25h) set to zero.
    1446         ; This will result in OS/2 - eCS being unable to boot the system.
    1447         ; So we're gonna check this byte here and if it's zero we will
    1448         ; replace it with information found in LVM DLAT info.
    1449         ;
    1450 
    1451 
    1452 
    1453 
    1454 
    1455     ; <<<< KNIP >>>> LVM STUFF
    1456 
    1457 
    1458 
    1459 
    1460 
    1461 
    1462         ;
    1463         ; Here we copy the prepared partition boot-record to 7C00h
     1571    ;
     1572    ; Control is transferred to this point if we are booting IBM-BM.
     1573    ; IBM-BM does not need the BPB fixes.
     1574    ; It does require a other special stuff, which is already taken care of.
     1575    ;
     1576    chainload_ibm_bm:
     1577
     1578    ;
     1579    ; Control is transferred to this point if we are booting a floppy.
     1580    ; Booting from floppy skips all the harddisk related stuff.
     1581    ; This is a dirty hack to fix the boot from floppy feature.
     1582    ;
     1583    boot_from_floppy:
     1584
     1585        ;
     1586        ; Here we copy the prepared partition boot-record to 0000:7C00h
    14641587        ; to give it control later on.
    14651588        ;
     1589        push    es
    14661590        push    si
    14671591        mov     ax, StartBaseSeg
     
    14701594        mov     si, offset PartitionSector
    14711595        mov     di, StartBasePtr
     1596        cld
    14721597        rep     movsw
    14731598        pop     si
     1599        pop     es
    14741600
    14751601    ; --------------------------------------------------- NOW START BOOT-RECORD
     
    14881614;
    14891615
     1616    ; Skip wait-for-key
     1617    jmp start_pbr
     1618
    14901619        ;
    14911620        ; Wait for keypress
     
    15001629        jne      start_pbr
    15011630
     1631        ;xor     ax,ax
     1632        ;mov     [CurPartition_Location+00],ax
     1633        ;mov     [CurPartition_Location+02],ax
     1634        ;mov     [CurPartition_Location+04],ax
     1635        ;mov     [CurPartition_Location+06],ax
     1636
     1637        ;pusha
     1638        ;xor     al,al
     1639        ;mov     di,si
     1640        ;add     di,LocIPT_Name
     1641        ;mov     cx,12
     1642        ;cld
     1643        ;rep     stosb
     1644        ;popa
     1645
     1646
     1647        ;push    ds
     1648        ;pop     es
     1649
    15021650        ; Yep, Reenter bootmenu
    15031651        jmp      MBR_Main_ReEnterBootMenuPre
     
    15091657;
    15101658start_pbr:
     1659
     1660        ; Debug display index
     1661        ;pusha
     1662        ;mov     al, cs:[si+LocIPT_Drive]        ; Drive Physical No
     1663        ;mov     ah, cs:[si+LocIPT_SystemID]     ; SystemID
     1664        ;call    VideoIO_PrintHexWord
     1665        ;xor     ax, ax
     1666        ;int     16h
     1667        ;popa
     1668
     1669
     1670        ; About 1.5 seconds
     1671        mov     al,30
     1672        call    TIMER_WaitTicCount
    15111673
    15121674        ;
     
    15171679        xor     cx, cx
    15181680        mov     ds, ax
    1519         mov     es, ax                        ; DS == ES == 0
    1520         xor     dh, dh                        ; Drive supported by BIOS
     1681        mov     es, ax
     1682        xor     dh, dh
    15211683        mov     dl, cs:[si+LocIPT_Drive]      ; Drive Physical No
     1684
     1685
    15221686
    15231687        ;
  • trunk/BOOTCODE/REGULAR/PARTSCAN.ASM

    r32 r36  
    311311      stosw
    312312                              ; Set Serial-Field to LVM-VolumeID
     313
    313314      push     di
    314       add     si, LocLVM_PartitionName
    315 
     315      add     si, LocLVM_VolumeName     ; Use LVM VolumeName
     316      ;add     si, LocLVM_PartitionName  ; Use LVM PartitionName
    316317      mov     cx, 5
    317318      rep     movsw                      ; Copy LVM-PartitionName to Temp Space
    318319      movsb                               ;  (11 bytes in total)
    319 
    320320      pop   di
     321
     322
     323      ; Check if this is an IBM-BM partition
    321324      cmp   PartSystemID, 0ah
    322 
    323325      jne   PCCTP_NoIbmBm
     326
     327      ; It is, so override the name given by IBM-BM by one that
     328      ; fits in 11 chars.
    324329      mov   si, offset ibm_bm_name
    325330      mov   cx,5
     
    330335
    331336   PCCTP_NoIbmBm:
    332 
    333 
    334337   pop     di si dx ax
    335338   mov     si, offset MBR_NoName_Patched
     
    660663   cmp     NewPartitions, LocIPT_MaxPartitions
    661664   jbe     PCCTP_NotTooManyPartitions
     665
    662666   mov     si, offset TXT_TooManyPartitions
    663667   call    MBR_Teletype
    664668   jmp     MBR_HaltSystem
     669
    665670
    666671  PCCTP_NotTooManyPartitions:
     
    693698   ret
    694699PARTSCAN_CheckThisPartition     EndP
     700
     701stop_scanning   db  0
    695702
    696703; ===================
     
    805812PARTSCAN_SyncHideConfigWithXref EndP
    806813
    807 ibm_bm_name:   db 'IBM BootMan',0
     814ibm_bm_name:   db 'OS2 BootMgr',0
    808815;win_bm_name:   db 'BOOTMGR',0
  • trunk/BOOTCODE/REGULAR/STD_TEXT.ASM

    r35 r36  
    3737;Copyright             db ' AiR-BOOT v1.07 - (c) 1998-2011 M. Kiewitz, Dedicated to Gerd Kiewitz', 0
    3838;Copyright             db ' AiR-BOOT v1.0.8 - (c) 1998-2011 M. Kiewitz, Dedicated to Gerd Kiewitz', 0
     39
    3940;Copyright             db ' AiR-BOOT v1.0.8-internal-beta - ** !! NOT FOR DISTRIBUTION !! **', 0
    40 Copyright             db ' AiR-BOOT v1.0.8 - (c) 1998-2012 M. Kiewitz, Dedicated to Gerd Kiewitz', 0
     41;Copyright             db ' AiR-BOOT v1.0.8 - (c) 2012 M. Kiewitz    <<Release Candidate>>    (build: #18)', 0
     42Copyright             db ' AiR-BOOT v1.0.8 - (c) 2012 M. Kiewitz  <<Release Candidate 1>> (bld: 20120124)', 0
     43;Copyright             db ' AiR-BOOT v1.0.8 - (c) 1998-2012 M. Kiewitz, Dedicated to Gerd Kiewitz', 0
    4144
    4245; Rousseau: switch around
    43 BootEndMsg           db 'This is GPLv3+ software. Please visit: http://www.gnu.org/licenses/gpl.txt', 0
    44 BootEndMsg2          db 'http://svn.netlabs.org/air-boot', 0
     46BootEndMsg           db 'This is GPLv3+ software, please visit: http://www.gnu.org/licenses/gpl.txt', 0
     47BootEndMsg2          db 'To obtain the sources,   please visit: http://svn.netlabs.org/air-boot', 0
    4548
    4649AuxInitMsg           db 'Initializing Serial Communications on COM',0
     
    5053
    5154; Colors for special words hard-coded. Keep all 0s.
    52 TXT_SETUP_LowerMessage      db 'This software is released under ', 0, 'GPLv3+.', 0
     55TXT_SETUP_LowerMessage      db 'This software is released under ', 0, 'GPLv3+', 0
    5356                            db 'http://www.gnu.org/licenses/gpl.txt', 0
    54                             db 'For more information and source, please visit', 0
     57                            db 'For more information and source, please visit:', 0
    5558                            db 'http://svn.netlabs.org/air-boot', 0
    5659                            db 'Contact via e-mail: ', 0, 'airboot@ecomstation.com', 0
  • trunk/BOOTCODE/REGULAR/VIDEOIO.ASM

    r34 r36  
    853853
    854854ShowMenu:         db "Press TAB to return to the AiR-BOOT Menu",0
    855 ShowBootLog:      db "Press TAB to see the Boot Log...",0
     855;ShowBootLog:      db "Press TAB to see the Boot Log...",0
    856856
    857857Yes:              db "YES",0
  • trunk/BOOTCODE/SETUP/PART_SET.ASM

    r31 r36  
    600600   pop     dx
    601601   jnc     PSCPN_LVMGotError             ; Not Found? -> display error and halt
     602
     603    ;
     604    ; While AiR-BOOT v1.0.8+ displays the LVM VolumeName, the LVM PartitionName
     605    ; is used here to compare to the IPT.
     606    ; The IPT has the LVM VolumeName, so if they differ the compare will fail
     607    ; and the user-entry will noy be written to the LVM-info sector.
     608    ;
    602609   add     si, LocLVM_PartitionName
     610
     611
    603612   xchg    si, di                        ; SI-IPTEntry, DI-LVM PartName
    604613   jmp     PSCPN_CheckPartName           ; Check, if match...
     
    606615  PSCPN_LVMGotError:
    607616   jmp     MBR_LoadError
     617
     618
    608619
    609620;   mov     si, di                        ; Restore SI and bootrecord fall-back
     
    619630      call    DriveIO_LoadPartition
    620631   pop     dx
     632
    621633   ; We seek to Partition Label within boot-record here
    622634   mov     di, offset PartitionSector
     635
    623636   push    si
    624637      mov     al, [si+LocIPT_SystemID]
     
    626639      ; Replies AH - FileSysFlags, AL - UnhiddenID, SI - FileSysNamePtr
    627640   pop     si
     641
    628642   test    ah, FileSysFlags_NoName       ; If NoName by FileSysFlag
    629643   jnz     PSCPN_LetUserEditPartName     ;  -> don't put it into BR at anytime
    630644   test    ah, FileSysFlags_FAT32        ; FAT32 specific name getting
    631645   jz      PSCPN_ResumeNormal
    632    add     di, 1Ch                       ; Fix fr FAT 32, shit
     646   add     di, 1Ch                       ; Fix for FAT 32, shit
    633647  PSCPN_ResumeNormal:
    634    add     di, 2Bh                       ; ES:DI - Name der Partition
     648   add     di, 2Bh                       ; ES:DI - Name of Partition
     649
     650
     651
     652
    635653
    636654   ; This code is used for BR and LVM checking
     655   ; Rousseau: Because AiR-BOOT v1.0.8 uses the LVM_VolumeName, which is copied
     656   ; to the IPT, this compare fails when the LVM_PartitionName is not
     657   ; the same as the LVM_VolumeName.
     658   ; This is a protection against editing the Label when these names differ.
     659   ; MiniLVM assigns the same value to both, so partitions created with MiniLVM
     660   ; can be edited.
    637661  PSCPN_CheckPartName:
     662
     663  ; SI = IPT_Enty
     664
     665        ; If the partition is an LVM partition then disable editing completely.
     666        cmp     byte ptr [si+LocIPT_SystemID], 035h
     667        jnz     no_type_35h
     668        jmp     PSCPN_AllDone
     669    no_type_35h:
     670
    638671   mov     cx, 11                        ; Partition-Name-Length = 11 Bytes
    639672   push    si di
     
    642675   pop     di si
    643676   jne     PSCPN_LetUserEditPartName     ; -> No BR/LVM Changing/Saving
     677
    644678   mov     ChangePartNameSave, 1         ; Remember, so we will save to BR
    645679
     
    662696   cmp     [PartitionVolumeLetters+bx], 0 ; ==0 means not supported by LVM
    663697   je      PSCPN_SaveBootRecord
    664    ; -------------------------------------------------------------[LVM SAVE]---
    665    ; Copy 11 bytes from IPT into LVM-Sector also fill 9 bytes with NUL
     698
     699
     700   ; Make DI point to LVM VolumeName in LVM-entry
     701   sub     di,20
     702
     703   ; -------------------------------------------------[LVM SAVE VOLUME NAME]---
     704   ; Copy 11 bytes from IPT into LVM VolumeName, back-padd with zero's
    666705   mov     cx, 11
    667706   push    si
     
    671710   mov     cx, 9
    672711   rep     stosb
     712
     713
     714        ;
     715        ; The AiR-BOOT Label Editor inserts spaces when a label is edited
     716        ; and characters are backspaced.
     717        ; This is fine for filesystem labels, which are space padded,
     718        ; but the LVM VolumeName and PartitionName need to be zero padded.
     719        ; So, below we replace all trailing spaces with zero's.
     720        ;
     721        ; Correct LVM VolumeName
     722        ;
     723        push    di
     724        mov     cx,20
     725    vn_padd_next:
     726        jcxz    vn_padded
     727        dec     di
     728        dec     cx
     729        mov     al,[di]
     730        test    al,al
     731        jz      vn_padd_next
     732        cmp     al,' '
     733        jnz     vn_padded
     734        mov     byte ptr [di],0
     735        jmp     vn_padd_next
     736    vn_padded:
     737        pop     di
     738
     739
     740
     741
     742   ; ----------------------------------------------[LVM SAVE PARTITION NAME]---
     743   ; Copy 11 bytes from IPT into LVM PartitonName, back-padd with zero's
     744   mov     cx, 11
     745   push    si
     746      rep     movsb
     747   pop     si
     748   xor     al, al
     749   mov     cx, 9
     750   rep     stosb
     751
     752
     753        ;
     754        ; The AiR-BOOT Label Editor inserts spaces when a label is edited
     755        ; and characters are backspaced.
     756        ; This is fine for filesystem labels, which are space padded,
     757        ; but the LVM VolumeName and PartitionName need to be zero padded.
     758        ; So, below we replace all trailing spaces with zero's.
     759        ;
     760        ; Correct LVM PartitionName
     761        ;
     762        push    di
     763        mov     cx,20
     764    pn_padd_next:
     765        jcxz    pn_padded
     766        dec     di
     767        dec     cx
     768        mov     al,[di]
     769        test    al,al
     770        jz      pn_padd_next
     771        cmp     al,' '
     772        jnz     pn_padded
     773        mov     byte ptr [di],0
     774        jmp     pn_padd_next
     775    pn_padded:
     776        pop     di
     777
     778
    673779   ; Update LVM-CRC now...
    674780   mov     si, offset LVMSector
  • trunk/BOOTCODE/SPECIAL/LVM.ASM

    r34 r36  
    249249        ; From here we look for an LVM entry for the partition.
    250250        ; If one is found, based on it's LBA-start, it's driveletter is used
    251         ; in case byte 25h is zero.
     251        ; in case byte 25h in the BPB is zero.
    252252        ;
    253253
  • trunk/BOOTCODE/TEXT/DE/MENUS.ASM

    r29 r36  
    323323TXT_SETUP_PasswordIncorrect    db 'Altes Passwort inkorrekt, Sorry', 0
    324324TXT_SETUP_PasswordMismatch     db 'Nicht gleich, altes Passwort beibehalten', 0
    325 TXT_SETUP_PasswordDisabled     db 'Kein Passwort/Schutz Deaktiviert', 0
     325TXT_SETUP_PasswordDisabled     db 'Kein Passwort -> Schutz Deaktiviert', 0
    326326TXT_SETUP_PasswordMatched      db '** Neues Passwort Gesetzt **', 0
    327327
  • trunk/BOOTCODE/TEXT/DE/OTHER.ASM

    r29 r36  
    5656TXT_BrokenPartitionTable:      db 13, 10, ' - Mindestens einer Ihrer Partitionseintr„ge ist ungltig oder Ihre Festplatte'
    5757                               db 13, 10, '   beinhaltet defekte Sektoren. System angehalten.', 0
    58 TXT_TooManyPartitions:         db 13, 10, ' - Zuviele Partitionen gefunden. AiR-BOOT untersttzt maximal 30.', 0
     58TXT_TooManyPartitions:         db 13, 10, ' - Zuviele Partitionen gefunden. AiR-BOOT untersttzt maximal 45.', 0
    5959TXT_NoBootAble:                db 13, 10, ' - Keine bootbare Partition definiert. System angehalten.', 0
    6060TXT_BIOSchanged:               db 13, 10, ' - BIOS HAT SICH VERŽNDERT. šberprfen Sie ihr System auf Viren.'
     
    7878TXT_BootingNow1:               db 'Booten des Systems durch ', 0
    7979; DO NOT MODIFY HERE
    80 TXT_BootingNow2:               db ''''
     80TXT_BootingNow2:               db '''', 0
    8181TXT_BootingNowPartName:        db 12 dup (0) ; Space for BootThisPart-Name
    8282; DO NOT MODIFY TILL HERE
    83 TXT_BootingNowPartition:       db ''' Partition', 0
    84 TXT_BootingNowKernel:          db ''' Kernel', 0
     83TXT_BootingNowPartition:       db ' Partition', 0
     84TXT_BootingNowKernel:          db ' Kernel', 0
    8585TXT_BootingNow3:               db '''', 0
    8686TXT_BootingHide:               db '; Hide aktiv', 0
  • trunk/BOOTCODE/TEXT/EN/MENUS.ASM

    r29 r36  
    325325TXT_SETUP_PasswordIncorrect    db 'Old Password Incorrect, Sorry', 0
    326326TXT_SETUP_PasswordMismatch     db 'Mismatched, Old Password Retained', 0
    327 TXT_SETUP_PasswordDisabled     db 'No Password/Protection Disabled', 0
     327TXT_SETUP_PasswordDisabled     db 'No Password -> Protection Disabled', 0
    328328TXT_SETUP_PasswordMatched      db '** Matched, New Password Set **', 0
    329329
  • trunk/BOOTCODE/TEXT/EN/OTHER.ASM

    r30 r36  
    5757TXT_BrokenPartitionTable:      db 13, 10, ' - Your system has at least one broken partition table entry or your harddrive'
    5858                               db 13, 10, '   contains bad sectors. System halted.', 0
    59 TXT_TooManyPartitions:         db 13, 10, ' - Too many partitions found. AiR-BOOT is supporting up to 30.', 0
     59TXT_TooManyPartitions:         db 13, 10, ' - Too many partitions found. AiR-BOOT is supporting up to 45.', 0
    6060TXT_NoBootAble:                db 13, 10, ' - No bootable partition defined. System halted.', 0
    6161TXT_BIOSchanged:               db 13, 10, ' - BIOS CHANGED, please check your system for any virus, just to be sure.'
     
    7878TXT_BootingNow1:               db 'Booting the system using ', 0
    7979; DO NOT MODIFY HERE
    80 TXT_BootingNow2:               db ''''
     80TXT_BootingNow2:               db '''', 0
    8181TXT_BootingNowPartName:        db 12 dup (0) ; Space for BootThisPart-Name
    8282; DO NOT MODIFY TILL HERE
    83 TXT_BootingNowPartition:       db ''' partition', 0
    84 TXT_BootingNowKernel:          db ''' kernel', 0
     83TXT_BootingNowPartition:       db ' partition', 0
     84TXT_BootingNowKernel:          db ' kernel', 0
    8585TXT_BootingHide:               db '; hide active', 0
    8686TXT_BootingWait:               db '; please wait...', 13, 10, 13, 10, 0
  • trunk/BOOTCODE/TEXT/FR/MENUS.ASM

    r29 r36  
    334334TXT_SETUP_PasswordIncorrect    db 'Ancien Mot de Passe Incorrect, D‚sol‚', 0
    335335TXT_SETUP_PasswordMismatch     db 'Diff‚rents!!! Ancient Mot de passe Conserv‚', 0
    336 TXT_SETUP_PasswordDisabled     db 'Pas de Mot de Passe/Protection D‚sactiv‚', 0
     336TXT_SETUP_PasswordDisabled     db 'Pas de Mot de Passe -> Protection D‚sactiv‚', 0
    337337TXT_SETUP_PasswordMatched      db '** Identiques, Nouveau Mot de Passe Activ‚ **', 0
    338338
  • trunk/BOOTCODE/TEXT/FR/OTHER.ASM

    r29 r36  
    5656TXT_BrokenPartitionTable:      db 13, 10, ' - Votre systŠme a au moins d''une entr‚e mauvaise de table de partition, ou'
    5757                               db 13, 10, '   la disque d–r a des cass‚e secteurs. SystŠme arrˆt‚.', 0
    58 TXT_TooManyPartitions:         db 13, 10, ' - Trop de partitions trouv‚es. AiR-BOOT supporte un maximum de 30.', 0
     58TXT_TooManyPartitions:         db 13, 10, ' - Trop de partitions trouv‚es. AiR-BOOT supporte un maximum de 45.', 0
    5959TXT_NoBootAble:                db 13, 10, ' - Aucune partition amor‡able d‚finie. SystŠme arrˆt‚.', 0
    6060TXT_BIOSchanged:               db 13, 10, ' - BIOS CHANG! Veuillez v‚rifier votre systŠme contre un virus.'
     
    7777TXT_BootingNow1:               db 'Amor‡age du systŠme avec ', 0
    7878; DO NOT MODIFY HERE
    79 TXT_BootingNow2:               db ''''
     79TXT_BootingNow2:               db '''', 0
    8080TXT_BootingNowPartName:        db 12 dup (0) ; Space for BootThisPart-Name
    8181; DO NOT MODIFY TILL HERE
    82 TXT_BootingNowPartition:       db '''', 0
    83 TXT_BootingNowKernel:          db '''', 0
     82TXT_BootingNowPartition:       db '', 0
     83TXT_BootingNowKernel:          db '', 0
    8484TXT_BootingHide:               db '; cach‚ actif', 0
    8585TXT_BootingWait:               db '; veuillez patienter...', 13, 10, 13, 10, 0
  • trunk/BOOTCODE/TEXT/IT/MENUS.ASM

    r29 r36  
    338338TXT_SETUP_PasswordIncorrect    db 'Password Precedente Errata, Spiacente.', 0
    339339TXT_SETUP_PasswordMismatch     db 'Incorretta, Mantenuta la Password Precedente.', 0
    340 TXT_SETUP_PasswordDisabled     db 'Nessuna Password/Protezione Disabilitata.', 0
     340TXT_SETUP_PasswordDisabled     db 'Nessuna Password -> Protezione Disabilitata.', 0
    341341TXT_SETUP_PasswordMatched      db '** Corretta, Nuova Password Attivata **', 0
    342342
  • trunk/BOOTCODE/TEXT/IT/OTHER.ASM

    r29 r36  
    5656TXT_BrokenPartitionTable:      db 13, 10, ' - Il sistema ha almeno una partizione corrotta nel tuo hard-disk contiene'
    5757                               db 13, 10, '   settori danneggiati. Sistema bloccato.', 0
    58 TXT_TooManyPartitions:         db 13, 10, ' - Trovate troppe partizioni. AiR-BOOT ne supporta fino a 30.', 0
     58TXT_TooManyPartitions:         db 13, 10, ' - Trovate troppe partizioni. AiR-BOOT ne supporta fino a 45.', 0
    5959TXT_NoBootAble:                db 13, 10, ' - Nessuna partizione avviabile definita. Sistema bloccato.', 0
    6060TXT_BIOSchanged:               db 13, 10, ' - BIOS MODIFICATO! Controllare il sistema contro eventuali virus.'
     
    8080TXT_BootingNowPartName:        db 12 dup (0) ; Space for BootThisPart-Name
    8181; DO NOT MODIFY TILL HERE
    82 TXT_BootingNowPartition:       db '''', 0
    83 TXT_BootingNowKernel:          db ''' kernel', 0
     82TXT_BootingNowPartition:       db '', 0
     83TXT_BootingNowKernel:          db ' kernel', 0
    8484TXT_BootingHide:               db '; part. attiva nascosta', 0
    8585TXT_BootingWait:               db '; attendere, prego...', 13, 10, 13, 10, 0
  • trunk/BOOTCODE/TEXT/NL/MENUS.ASM

    r30 r36  
    343343TXT_SETUP_PasswordIncorrect    db 'Vorig wachtwoord niet juist. Jammer!', 0
    344344TXT_SETUP_PasswordMismatch     db 'Klopt niet! Het vorig wachtwoord wordt opnieuw ingesteld', 0
    345 TXT_SETUP_PasswordDisabled     db 'Er werd geen wachtwoord ingesteld.', 0
     345TXT_SETUP_PasswordDisabled     db 'Er werd geen wachtwoord ingesteld -> Beveiliging uitgeschakeld', 0
    346346TXT_SETUP_PasswordMatched      db '** Klopt! Het nieuwe wachtwoord werd ingesteld **', 0
    347347
  • trunk/BOOTCODE/TEXT/NL/OTHER.ASM

    r30 r36  
    5656TXT_BrokenPartitionTable:      db 13, 10, ' - U hard disk bevat minstens 1 beschadigde paritietabel element of u hard disk'
    5757                               db 13, 10, '   bevat bad sector. Systeem is gestopt.', 0
    58 TXT_TooManyPartitions:         db 13, 10, ' - Er zijn teveel partities aanwezig. Het maximum is 30.', 0
     58TXT_TooManyPartitions:         db 13, 10, ' - Er zijn teveel partities aanwezig. Het maximum is 45.', 0
    5959TXT_NoBootAble:                db 13, 10, ' - Geen opstartpartitie beschikbaar. Systeem is gestopt.', 0
    6060TXT_BIOSchanged:               db 13, 10, ' - Het BIOS werd gewijzigd! Controleer eerst op virussen.'
     
    7777TXT_BootingNow1:               db 'Er wordt nu opgestart van de ', 0
    7878; DO NOT MODIFY HERE
    79 TXT_BootingNow2:               db ''''
     79TXT_BootingNow2:               db '''', 0
    8080TXT_BootingNowPartName:        db 12 dup (0) ; Space for BootThisPart-Name
    8181; DO NOT MODIFY TILL HERE
    82 TXT_BootingNowPartition:       db ''' partitie', 0
    83 TXT_BootingNowKernel:          db ''' kernel', 0
     82TXT_BootingNowPartition:       db ' partitie', 0
     83TXT_BootingNowKernel:          db ' kernel', 0
    8484TXT_BootingHide:               db '; actieve verbergen', 0
    8585TXT_BootingWait:               db '; Wachten graag...', 13, 10, 13, 10, 0
  • trunk/BOOTCODE/TEXT/RU/MENUS.ASM

    r29 r36  
    333333TXT_SETUP_PasswordIncorrect    db '‘â àë© ¯ à®«ì ­¥¢¥à¥­', 0
    334334TXT_SETUP_PasswordMismatch     db '¥á®¢¯ €¥­š¥! ‚®ááâ ­®¢«¥­ áâ àë© ¯ à®«ì', 0
    335 TXT_SETUP_PasswordDisabled     db '¥â ¯ à®«ï/§ éšâ  ®âª«î祭 ', 0
     335TXT_SETUP_PasswordDisabled     db '¥â ¯ à®«ï -> § éšâ  ®âª«î祭 ', 0
    336336TXT_SETUP_PasswordMatched      db '** ®€â¢¥àŠ€¥­®! ‡ € ­ ­®¢ë© ¯ à®«ì **', 0
    337337
  • trunk/BOOTCODE/TEXT/RU/OTHER.ASM

    r29 r36  
    5656TXT_BrokenPartitionTable:      db 13, 10, ' - Ž¡­ à㊥­ ¬š­š¬ã¬ ®€š­ šá¯®à祭­ë© à §€¥«, «š¡® â ¡«šæ  à §€¥«®¢ ᮀ¥àŠšâ'
    5757                               db 13, 10, '   á¡®©­ë¥ ¡«®ªš. ‘šá⥬  ®áâ ­®¢«¥­ .', 0
    58 TXT_TooManyPartitions:         db 13, 10, ' - ‘«šèª®¬ ¬­®£® à §€¥«®¢ ­ ©€¥­®. AiR-BOOT ¯®€€¥àŠš¢ ¥â €® 30.', 0
     58TXT_TooManyPartitions:         db 13, 10, ' - ‘«šèª®¬ ¬­®£® à §€¥«®¢ ­ ©€¥­®. AiR-BOOT ¯®€€¥àŠš¢ ¥â €® 45.', 0
    5959TXT_NoBootAble:                db 13, 10, ' - ¥ ­ ©€¥­® § £à㊠¥¬ëå à §€¥«®¢. ‘šá⥬  ®áâ ­®¢«¥­ .', 0
    6060TXT_BIOSchanged:               db 13, 10, ' - BIOS ˆ‡Œ
     
    8686TXT_BootingNow1:               db '‡ £à㧪  ášá⥬ë, šá¯®«ì§ãï ', 0
    8787; DO NOT MODIFY HERE
    88 TXT_BootingNow2:               db ''''
     88TXT_BootingNow2:               db '''', 0
    8989TXT_BootingNowPartName:        db 12 dup (0) ; Space for BootThisPart-Name
    9090; DO NOT MODIFY TILL HERE
    91 TXT_BootingNowPartition:       db ''' à §€¥«', 0
    92 TXT_BootingNowKernel:          db ''' ï€à®', 0
     91TXT_BootingNowPartition:       db ' à §€¥«', 0
     92TXT_BootingNowKernel:          db ' ï€à®', 0
    9393TXT_BootingHide:               db '; ᮪àë⚥  ªâ𢭮', 0
    9494TXT_BootingWait:               db '; ¯®Š «ã©áâ , ¯®€®Š€šâ¥...', 13, 10, 13, 10, 0
  • trunk/BOOTCODE/TEXT/SW/MENUS.ASM

    r29 r36  
    349349TXT_SETUP_PasswordIncorrect    db 'Gammalt L”senord Inte Korrekt, Ledsen', 0
    350350TXT_SETUP_PasswordMismatch     db 'Matchar Inte, Gammalt L”senord Beh†lls', 0
    351 TXT_SETUP_PasswordDisabled     db 'Inget L”senord/Skydd Avaktiverat', 0
     351TXT_SETUP_PasswordDisabled     db 'Inget L”senord -> Skydd Avaktiverat', 0
    352352TXT_SETUP_PasswordMatched      db '** Matchar, Nytt L”senord Satt **', 0
    353353
  • trunk/BOOTCODE/TEXT/SW/OTHER.ASM

    r29 r36  
    5656TXT_BrokenPartitionTable:      db 13, 10, ' - Ditt system har minst en bruten partitionstabellspost eller har din h†rddisk'
    5757                               db 13, 10, '   trasiga sektorer. Systemet haltat.', 0
    58 TXT_TooManyPartitions:         db 13, 10, ' - F”r m†nga partitioner hittades. AiR-BOOT st”der endast upp till 30.', 0
     58TXT_TooManyPartitions:         db 13, 10, ' - F”r m†nga partitioner hittades. AiR-BOOT st”der endast upp till 45.', 0
    5959TXT_NoBootAble:                db 13, 10, ' - Ingen bootningsbar partition definierad. Systemet haltat.', 0
    6060TXT_BIOSchanged:               db 13, 10, ' - BIOS ŽNDRAT, var v„nlig kontrollera ditt system efter virus, f”r att vara s„ker.'
     
    7777TXT_BootingNow1:               db 'Bootar systemet anv„ndande ', 0
    7878; DO NOT MODIFY HERE
    79 TXT_BootingNow2:               db ''''
     79TXT_BootingNow2:               db '''', 0
    8080TXT_BootingNowPartName:        db 12 dup (0) ; Space for BootThisPart-Name
    8181; DO NOT MODIFY TILL HERE
    82 TXT_BootingNowPartition:       db ''' partition', 0
    83 TXT_BootingNowKernel:          db ''' k„rna', 0
     82TXT_BootingNowPartition:       db ' partition', 0
     83TXT_BootingNowKernel:          db ' k„rna', 0
    8484TXT_BootingHide:               db '; d”lj aktiv', 0
    8585TXT_BootingWait:               db '; var v„nlig v„nta...', 13, 10, 13, 10, 0
  • trunk/INSTALL/C/INSTALL.C

    r32 r36  
    400400   USHORT SectorCount = 0;
    401401
     402   /*
     403   // Note that the 'AiRCFG-TABLE' string includes the invisible 0xAD char.
     404   */
    402405   if (strncmp(ConfigSectorPtr, "AiRCFG-TABLE­", 13)==0) {
    403406      // AiR-BOOT signature found...
     
    798801      StatusCode = STATUS_IMPOSSIBLE;
    799802      if (!Option_CID) {
    800          ImpossibleCause = "unable to install\n   Your harddisc does not have at least 62 sectors per track.";
     803         ImpossibleCause = "unable to install\n   Your harddisc does not have at least 63 sectors per track.";
    801804      }
    802805    }
     
    981984            printf("\n");
    982985            printf("Your copy of AiR-BOOT is now fully functional.\n");
    983             printf("Please hit ESC to exit AiR-BOOT installer or ENTER to reboot your system...\n");
     986            if (!Option_Silent) {
     987                printf("Please hit ESC to exit AiR-BOOT installer or ENTER to reboot your system...\n");
     988            }
    984989         }
    985990         if (Option_Silent || Option_CID) {
    986991            // Silent operation? Always reboot system (shall we do this really?)
    987             UserKey = 0x0D;
     992            // No, otherwise installing from MiniLVM will reboot the system
     993            // which is not what the user would expect.
     994            //UserKey = 0x0D;
     995            UserKey = 0x1B;
    988996          } else {
    989997            do {
     
    10361044    }
    10371045
    1038    if (ExitOnly) {
    1039       if (!Option_CID) {
    1040          printf("\n");
    1041          printf("Please hit ENTER to exit AiR-BOOT installer...\n");
    1042       }
    1043       if (!Option_Silent || !Option_CID) {
    1044          while (getch()!=0x0D);
    1045        }
     1046    if (ExitOnly) {
     1047        if (!(Option_CID || Option_Silent)) {
     1048            printf("\n");
     1049            printf("Please hit ENTER to exit AiR-BOOT installer...\n");
     1050            while (getch()!=0x0D);
     1051        }
    10461052    }
    10471053   return 0;
  • trunk/INSTALL/DOS/MAKE.BAT

    r30 r36  
    1010copy airboot.com ..\..\RELEASE\DOS\airboot.com
    1111
     12@ren airboot.LST airboot.TSL
     13@ren airboot.TSL AIRBOOT.LST
     14
    1215rem Cleanup
    1316del airboot.com
  • trunk/INSTALL/INST_X86/INSTALL.INC

    r35 r36  
    514514   mov     si, offset TXT_Language_EN
    515515   je      ISL_Done
    516    cmp     al, 'D'
     516   cmp     al, 'N'
    517517   mov     si, offset TXT_Language_NL
    518518   je      ISL_Done
     
    989989MBR_EZSETUPCodeSig              db '528+Mbyte(C)1993,94 Micro House Int',39,'l',0
    990990MBR_EZSETUPCodeSigLen          equ 38
    991 MBR_AiRBOOTConfigSig            db 'AiRCFG-TABLE­'
     991MBR_AiRBOOTConfigSig            db 'AiRCFG-TABLE­'  ; Contains invisible 0adh character !
    992992MBR_AiRBOOTConfigSigLen        equ 13
    993993
Note: See TracChangeset for help on using the changeset viewer.