[syslinux] "isolinux.bin missing or corrupt" when booting USB flash drive in old PC

Thomas Schmitt scdbackup at gmx.net
Wed Mar 22 04:06:12 PDT 2017


Hi,

given the fact that the conversion has the factor HC*SH = "secpercyl",
which is invariant under swapping, there remains as suspect in
read_sector_cbios only this division:

  	divb	(sectors)

There is a suspicious discrepancy in the code:

  heads		= (stack-16)
  sectors	= (stack-18)

  ...
	/* here we computer CHS values or just do some dummy computation for EBIOS */
	andw	$0x3f, %cx	/* Sector count */
	popw	%bx		/* EBIOS flag */
	pushw	%cx		/* -16: Save sectors on the stack */
	movzbw	%dh, %ax	/* dh = max head */
	incw	%ax		/* From 0-based max to count */
	pushw	%ax		/* -18: Save heads on the stack */
	mulw	%cx		/* Heads*sectors -> sectors per cylinder */

Does "-16: Save sectors on the stack" contradict "sectors = (stack-18)" ?


Have a nice day :)

Thomas



More information about the Syslinux mailing list