* SYSLINUX: "unix" installer now uses Linux ioctls instead of
using libfat.
* New MBR which can boot from logical partitions.
+ * SYSLINUX: Fix bug in detecting special extensions which was
+ introduced in 3.35 :(
Changes in 3.35:
* MEMDISK: New "safeint" mode.
DataArea resd 1 ; Location of data area
RootDirSize resd 1 ; Root dir size in sectors
TotalSectors resd 1 ; Total number of sectors
-EndSector resd 1 ; Location of filesystem end
ClustSize resd 1 ; Bytes/cluster
ClustMask resd 1 ; Sectors/cluster - 1
CopySuper resb 1 ; Distinguish .bs versus .bss
.have_secs:
mov [TotalSectors],edx
- add edx,eax
- mov [EndSector],edx
-
mov eax,[bxResSectors]
mov [FAT],eax ; Beginning of FAT
mov edx,[bxFATsecs]
; FAT12, FAT16 or FAT28^H^H32? This computation is fscking ridiculous.
;
getfattype:
- mov eax,[EndSector]
+ mov eax,[TotalSectors]
sub eax,[DataArea]
shr eax,cl ; cl == ClustShift
mov cl,nextcluster_fat12-(nextcluster+2)
mov [KernelCNameLen],di
popa
-%if IS_SYSLINUX || IS_MDSLINUX
- mov ecx,[KernelName+7]
- mov cl,'.'
-%else
push di
push ax
mov di,KernelName+4*IS_PXELINUX
.one_step: mov ecx,[di-4] ; 4 bytes before end
pop ax
pop di
-%endif
;
; At this point, DX:AX contains the size of the kernel, and SI contains
je is_bss_sector
cmp ecx,'.bin'
je is_bootsector
-%if IS_SYSLINUX || IS_MDSLINUX
- cmp ecx,'.bs '
- je is_bootsector
- cmp ecx,'.0 '
- je is_bootsector
-%else
shr ecx,8
cmp ecx,'.bs'
je is_bootsector
shr ecx,8
cmp cx,'.0'
je is_bootsector
-%endif
+
; Otherwise Linux kernel
section .bss