Ignore:
Timestamp:
May 6, 2011, 4:25:19 AM (14 years ago)
Author:
Ben Rietbroek
Message:

AiR-BOOT v1.07 -- As released with eCS v2.1. [2011-05-06]
Signature-date: 2006-03-13. (incorrect)
Trunk contains buildable v1.07 version as distributed with eCS v2.1.
Directory 'tags' contains v1.06 & v1.07 reference versions
built for all languages. Note that language ID for 'Dutch' changed
from 'DT' to 'NL' in v1.07 and that the v1.06 reference version also
uses 'NL' for 'Dutch'.
Also note that helper programs like the installer and setaboot are
are only modified for the OS/2 versions in v1.07.
The signature-date for v1.07 incorrectly states the same
date as for v1.06. The signature-version is correct.
Removed other binaries. (cd-rom images, old releases, etc.)
The tags serve as reference versions:

  • v1.06: rebuilt from source. (tags/v1.06r)
  • v1.07: built as released with eCS v2.1. (tags/v1.07r)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BOOTCODE/REGULAR/PARTSCAN.ASM

    r29 r30  
    2020;---------------------------------------------------------------------------
    2121
     22
     23IFDEF ModuleNames
     24DB 'PARTSCAN',0
     25ENDIF
     26
    2227; Note: This is complex code. So make sure that you know what you are doing in
    2328;        here.
     
    4853   mov     si, offset NewPartTable
    4954   mov     di, offset PartitionTable
    50    movzx   ax, NewPartitions
     55   ;movzx   ax, NewPartitions
     56   mov   al,NewPartitions
     57   mov   ah,0
     58
    5159   mov     CFG_Partitions, al
    5260   mov     bl, LocIPT_LenOfIPT
     
    5866   mov     si, offset NewDriveLetters
    5967   mov     di, offset DriveLetters
    60    mov     cx, LocIPT_MaxPartitions/2
    61    rep     movsw
     68   mov     cx, LocIPT_MaxPartitions
     69   rep     movsb
    6270
    6371; [Linux support removed since v1.02]
     
    8290   or      dl, dl
    8391   jz      PSSFP_NoAutoDriveLetter
    84    movzx   cx, CFG_Partitions
     92   ;movzx   cx, CFG_Partitions
     93   mov   cl,CFG_Partitions
     94   mov   ch,0
     95
    8596   or      cx, cx
    8697   jz      PSSFP_NoAutoDriveLetter
     
    118129   mov     wptr [ExtendedAbsPos+2], ax
    119130  PSSDFP_LoadThisPartition:
    120    call    DriveIO_LoadPartition
     131
     132   call    DriveIO_LoadPartition                                                 ; Rousseau: load a partition record
     133
    121134   jc      PSSDFP_InvalidPartition
     135
    122136   ; LVM Support - Reads LVM Information Sector
    123    call    DriveIO_LoadLVMSector
     137   call    DriveIO_LoadLVMSector                                                 ; Rousseau: load LVM sector
     138
    124139   call    PARTSCAN_ScanPartition
    125140   IFDEF ReleaseCode
     
    223238   add     ax, wptr [CurPartition_Location+0] ; +Partition-Absolute
    224239   adc     bx, wptr [CurPartition_Location+2] ;  sectors
    225    call    DriveIO_LoadTmpSector         ; Loads Boot record
     240   call    DriveIO_LoadTmpSector         ; Loads Boot record                     ; Rousseau: LOAD PARTITION BOOT RECORD !!
    226241   ; Sets up DS:SI - TmpSector
    227242
     
    249264   cmp     PartSystemID, 07h          ; We got IFS here?
    250265   jne     PCCTP_IFSdone
    251    ; Check, if 'JFS ' is at DWORD offset 36h
     266   ; Check, if 'JFS ' is at DWORD offset 36h                                     ; Rousseau: JFS check (LVM / IPT?)
    252267   cmp     wptr [si+36h], 'FJ'
    253268   jne     PCCTP_IFSnoJFS
     
    284299     PCCTP_HasVolumeLetter:
    285300      ; Save VolumeLetter in separate table
    286       movzx   bx, NewPartitions          ; NewPartitions is one behind here, so
     301      ;movzx   bx, NewPartitions          ; NewPartitions is one behind here, so
     302      mov   bl,NewPartitions          ; NewPartitions is one behind here, so
     303      mov   bh,0
     304
    287305      mov     [PartitionVolumeLetters+bx], al ; it's already a zero-based offset
    288306      ; Now copy VolumeID and VolumeName to temporary space
     
    291309      stosw
    292310      mov     ax, [si+LocLVM_PartitionID+2]
    293       stosw                              ; Set Serial-Field to LVM-VolumeID
     311      stosw
     312                              ; Set Serial-Field to LVM-VolumeID
     313      push     di
    294314      add     si, LocLVM_PartitionName
     315
    295316      mov     cx, 5
    296317      rep     movsw                      ; Copy LVM-PartitionName to Temp Space
    297       movsb                              ;  (11 bytes in total)
     318      movsb                               ;  (11 bytes in total)
     319
     320      pop   di
     321      cmp   PartSystemID, 0ah
     322
     323      jne   PCCTP_NoIbmBm
     324      mov   si, offset ibm_bm_name
     325      mov   cx,5
     326      rep   movsw
     327      movsb
     328
     329
     330
     331   PCCTP_NoIbmBm:
     332
     333
    298334   pop     di si dx ax
    299335   mov     si, offset MBR_NoName_Patched
     
    304340   pop     di si dx ax
    305341   test    ah, FileSysFlags_NoName       ; No-Name-Flag ? -> No Partition Name
    306    jnz     PCCTP_ThereIsNoName           ;                    available
     342
     343   jz      PCCTP_ThereIsAName
     344   jmp     PCCTP_ThereIsNoName           ;                    available
     345
     346   PCCTP_ThereIsAName:
     347
    307348      ; We check for NTFS (got detected a little bit earlier in this routine)
    308349      cmp     PartSystemID, 08h          ; We got IFS/NTFS here?
     
    312353      add     si, 2Bh                    ; DS:SI - Partition-Name
    313354      test    ah, FileSysFlags_FAT32     ; FAT32 specific name getting ?
     355
    314356      jz      PCCTP_ResumeNormal
     357
    315358      add     si, 1Ch                    ; Fix for FAT 32, shiat
    316359     PCCTP_ResumeNormal:
    317360      mov     cx, 11                     ;         11 bytes length
    318361      call    PART_CheckForValidPartName
    319       jnc     PCCTP_ThereIsNoName
     362      jc    PCCTP_ThereIsAName2
     363
     364      jmp     PCCTP_ThereIsNoName
     365
     366   PCCTP_ThereIsAName2:
     367
    320368      sub     si, 4                      ; DS:SI -> Serial&Name (15-Bytes)
    321369      xor     ah, ah                     ; no Flags_NoPartName
     
    343391            repz    cmpsb
    344392         pop     di si
    345          je      PCCTP_Match
     393
     394         jne   PCCTP_NoMatchYet
     395
     396         jmp      PCCTP_Match
     397
     398      PCCTP_NoMatchYet:
     399
    346400        PCCTP_SerialNameAlreadyFound:
    347401         add     di, LocIPT_LenOfIPT
     
    477531     PCCTP_LocCompFailed:
    478532      jmp     PCCTP_CompareFailed
    479      
     533
    480534   ; ==================================
    481535   ; =MATCH=, found partition in IPT...
     
    557611   ; Calculate Pointer to IPT
    558612   mov     di, offset NewPartTable       ; ES:DI - NewPartTable
    559    movzx   ax, NewPartitions
     613   ;movzx   ax, NewPartitions
     614   mov   al,NewPartitions
     615   mov   ah,0
     616
    560617   mov     bl, LocIPT_LenOfIPT
    561618   mul     bl
     
    575632   stosb
    576633   mov     al, cl                        ; Partition-Flags from register...
    577    stosb 
     634   stosb
    578635   mov     ax, PartCRC                   ; BootRecordCRC...
    579636   stosw
     
    620677
    621678   ; Calculate Size of this partition and put it into separate table...
    622    movzx   ax, NewPartitions
     679   ;movzx   ax, NewPartitions
     680   mov   al,NewPartitions
     681   mov   ah,0
     682
    623683   dec     ax
    624684   mov     bx, ax
     
    658718; Destroyed: None
    659719PARTSCAN_DefXref                Proc Near   Uses ax bx cx dx si di
    660    movzx   bx, dl
     720   ;movzx   bx, dl
     721   mov   bl,dl
     722   mov   bh,0
     723
    661724   mov     bptr [PartitionXref+bx], dh      ; X-Reference
    662725   ; Copy Hide-Config of IPT partition to new location in new table
     
    673736   rep     movsb                            ; Copy Hide-Config to NewHideTable
    674737   ; Process Logical-Drive-Letter table as well...
    675    movzx   bx, dl
     738   ;movzx   bx, dl
     739   mov   bl,dl
     740   mov   bh,0
     741
    676742   mov     al, bptr [DriveLetters+bx]       ; Get Drv-Letter from org. pos
    677    movzx   bx, dh
     743   ;movzx   bx, dh
     744   mov   bl,dl
     745   mov   bh,0
     746
    678747   mov     bptr [NewDriveLetters+bx], al    ; Put Drv-Letter to new pos
    679748   ret
     
    684753; Destroyed: None
    685754PARTSCAN_GetXref                Proc Near   Uses bx
    686    movzx   bx, dl
     755   ;movzx   bx, dl
     756   mov   bl,dl
     757   mov   bh,0
     758
    687759   mov     dh, bptr [PartitionXref+bx]      ; X-Reference
    688760   ret
     
    702774         cmp     al, 0FFh
    703775         je      PSSHCWX_SyncEmpty
    704          movzx   bx, al
     776         ;movzx   bx, al
     777         mov   bl,al
     778         mov   bh,0
     779
    705780         mov     al, [PartitionXref+bx]     ; Translate it
    706781         cmp     al, 0FFh
     
    729804   ret
    730805PARTSCAN_SyncHideConfigWithXref EndP
     806
     807ibm_bm_name:   db 'IBM BootMan',0
Note: See TracChangeset for help on using the changeset viewer.