Changeset 49 for trunk/BOOTCODE/SETUP


Ignore:
Timestamp:
Apr 12, 2014, 12:13:57 PM (12 years ago)
Author:
Ben Rietbroek
Message:

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

WARNING!!

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

Fixes

o Bug Description

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

o Quick Fix

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BOOTCODE/SETUP/PART_SET.ASM

    r46 r49  
    922922
    923923IFDEF   AUX_DEBUG
    924         pusha
    925         mov     al,dl   ; Partition the hiding is set for.
    926         call    AuxIO_TeletypeHexByte
    927         call    AuxIO_TeletypeNL
    928         popa
     924        ;~ pusha
     925        ;~ mov     al,dl   ; Partition the hiding is set for.
     926        ;~ call    AuxIO_TeletypeHexByte
     927        ;~ call    AuxIO_TeletypeNL
     928        ;~ popa
    929929ENDIF
    930930
     
    946946
    947947IFDEF   AUX_DEBUG
    948         pusha
    949         mov     al,dl   ; Index of partition to set Special Marker on.
    950         call    AuxIO_TeletypeHexByte
    951         call    AuxIO_TeletypeNL
    952         popa
     948        ;~ pusha
     949        ;~ mov     al,dl   ; Index of partition to set Special Marker on.
     950        ;~ call    AuxIO_TeletypeHexByte
     951        ;~ call    AuxIO_TeletypeNL
     952        ;~ popa
    953953ENDIF
    954954
     
    14011401
    14021402    IFDEF   AUX_DEBUG
    1403         pushf
    1404         pusha
    1405         push    ax
    1406         mov     al,dl
    1407         call    AuxIO_TeletypeHexByte
    1408         mov     al,':'
    1409         call    AuxIO_Teletype
    1410         mov     ax,bx
    1411         call    AuxIO_TeletypeHexWord
    1412         mov     al,':'
    1413         call    AuxIO_Teletype
    1414         mov     ax,bp
    1415         call    AuxIO_TeletypeHexWord
    1416         mov     al,':'
    1417         call    AuxIO_Teletype
    1418         mov     ax,sp
    1419         call    AuxIO_TeletypeHexWord
    1420         mov     al,':'
    1421         call    AuxIO_Teletype
    1422         pop     ax
    1423         call    AuxIO_TeletypeHexByte
    1424         call    AuxIO_TeletypeNL
    1425         popa
    1426         popf
     1403        ;~ pushf
     1404        ;~ pusha
     1405        ;~ push    ax
     1406        ;~ mov     al,dl
     1407        ;~ call    AuxIO_TeletypeHexByte
     1408        ;~ mov     al,':'
     1409        ;~ call    AuxIO_Teletype
     1410        ;~ mov     ax,bx
     1411        ;~ call    AuxIO_TeletypeHexWord
     1412        ;~ mov     al,':'
     1413        ;~ call    AuxIO_Teletype
     1414        ;~ mov     ax,bp
     1415        ;~ call    AuxIO_TeletypeHexWord
     1416        ;~ mov     al,':'
     1417        ;~ call    AuxIO_Teletype
     1418        ;~ mov     ax,sp
     1419        ;~ call    AuxIO_TeletypeHexWord
     1420        ;~ mov     al,':'
     1421        ;~ call    AuxIO_Teletype
     1422        ;~ pop     ax
     1423        ;~ call    AuxIO_TeletypeHexByte
     1424        ;~ call    AuxIO_TeletypeNL
     1425        ;~ popa
     1426        ;~ popf
    14271427    ENDIF
    14281428
Note: See TracChangeset for help on using the changeset viewer.