apply to that specific program only; other changes apply to all of
them.
+Changes in 3.40:
+ * New keywords allow the type of file to be specified in the
+ configuration file.
+ * It is now supported to load a different configuration file
+ with the CONFIG keyword.
+
+ Changes in 3.36:
+ * MEMDISK: Disable EDD by default on floppy disks. EDD can be
+ enabled with the "edd" option and disabled with "noedd".
+ This (hopefully) should make Ghost work again.
+ * 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 :(
+ * PXELINUX: Unbreak chainbooting FreeBSD (and possibly others.)
+
Changes in 3.35:
* MEMDISK: New "safeint" mode.
* MEMDISK: Be more compliant with the PnP BIOS spec.
.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
-; the file handle/cluster pointer.
+; At this point, DX:AX contains the size of the kernel, SI contains
+; the file handle/cluster pointer, and ECX contains the extension (if any.)
;
+ movzx di,byte [KernelType]
+ add di,di
+ jmp [kerneltype_table+di]
+
+is_unknown_filetype:
or ecx,20202000h ; Force lower case (except dot)
cmp ecx,'.com'
shr ecx,8
cmp cx,'.0'
je is_bootsector
- %endif
+
; Otherwise Linux kernel
+ jmp is_linux_kernel
+
+is_config_file:
+ call openfd
+ call reset_config
+ jmp load_config_file
+
+; This is an image type we can't deal with
+is_bad_image:
+ mov si,err_badimage
+ call cwritestr
+ jmp enter_command
+
+%if IS_SYSLINUX || IS_MDSLINUX
+ ; ok
+%else
+is_bss_sector equ is_bad_image
+%endif
+%if IS_ISOLINUX
+ ; ok
+%else
+is_disk_image equ is_bad_image
+%endif
+
+ section .data
+err_badimage db 'Invalid image type for this media type!', CR, LF, 0
+
+ align 2, db 0
+kerneltype_table:
+ dw is_unknown_filetype ; VK_KERNEL
+ dw is_linux_kernel ; VK_LINUX
+ dw is_bootsector ; VK_BOOT
+ dw is_bss_sector ; VK_BSS
+ dw is_disk_image ; VK_FDIMAGE
+ dw is_comboot_image ; VK_COMBOOT
+ dw is_com32_image ; VK_COM32
+ dw is_config_file ; VK_CONFIG
section .bss
alignb 4