[syslinux] A bug in syslinux boot code

j1borries at online.de j1borries at online.de
Sun Feb 6 05:50:17 PST 2011


I used syslinux 4.03 for my brand new usb-stick (16GB FAT32, no Partition Table). It works, but on some computers i get "boot error".
My investigation reveals three bugs in the boot code. 

Int 13 function 8 destroys the contents of register ES. Ah, now it is corrected in version 4.04 pre 5. Well done. I am happy now.
But there are still other bugs.

Look on version 4.04 pre 5, core/bootdisc.inc, line 224: Int 13 function 8 ist called with DL = 0 (in my case), not with DL = Drive. This is because at label "harddisk" a segment address was loaded into DX. So int 13 returns wrong values.

Now look on version 4.04 pre 5, core/bootdisc.inc, line 165 ("mov [di-76+8],cl"): 
I think the intention was "mov [di-12+4],cl" This is the place of the sector count in the disk drive parameter table.

Juergen




More information about the Syslinux mailing list