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

Thomas Schmitt
Fri, 24 Mar 2017 20:46:13 -0000

Hi,

MartinS wrote:
> Well... I'm not quite following you.

We only differ whether CX is illfully non-zero and some other register
content caused the CBIOS decision, or whether CX was returned rightfully
non-zero by David's INT 13 AH 41 with a bit other than bit 0 being set.
In my theory, the forcing of pseudo-CBIOS pushed this non-zero CX, which
"andw 1,%cx" converts to 0 in the non-forced case before it gets
pushed.

Whatever, we can see that the first successful test of David was with
EBIOS assumption in isolinux.bin, by the texts "CHDD" and
"EHDD" of the
isolinux.bin messages which David reported in his mail
  Date: Thu, 23 Mar 2017 17:23:51 -0700
  Message-ID: <f7735ce8-c912-fdfc-504e-b1de2f6d86c0 at holgerdanske.com>

Failure was with unforced CBIOS in MBR (to my theory with andw reached),
popped CX = 0, thus C/H/S addressing:
  ISOLINUX 6.03 20150819 CHDDisolinux: Image checksum error, sorry...

Success was with forced CBIOS in MBR, popped CX != 0, thus LBA addressing:
  ISOLINUX 6.03 20150819 EHDD Copyright (C) 1994-2014 H. Peter Anvin et al

As stated, it is stunning that David's BIOS does LBA addressing fine,
but does not advertise it properly in bit 0 of CX by INT 13 AH 41 without
possibly other confusing register contents.

------------------------------------------------------------------------

> Thus a new patch that corrects the order of pushes (instead of
> offsets) _and_ setting CX to zero if EBIOS detection fails. Apply it
> to orginal syslinux code.

Let's cross fingers that this is without unexpected new side effects.

It is appealing, of course, to do all changes in the MBR.
It has the same block address 0 in all ISOs. Thus a description how
to repair them by a better MBR will be about as complicated as how to
copy them onto an USB stick.


> <http://www.ludd.ltu.se/~ams/tmp/isohdpfx.bin.170324>

May it solve all known C/H/S problems !!!

(I downloaded it and am ready to rename it to "isohdpfx_chs_fix.bin"
 as soon as its success is confirmed.)


> <http://www.ludd.ltu.se/~ams/tmp/isodavid.tgz>
> It won't boot anything, but it will:
>  * CX

I place my bet on CX value 4. :))
(Or will it say by value 2 that it can eject the stick ?)


Have a nice day :)

Thomas