[syslinux] COMBOOT API: Add calls for directory functions; Implement for FAT

Gene Cumm gene.cumm at gmail.com
Wed Jan 14 12:50:57 PST 2009


On Wed, Jan 14, 2009 at 3:32 PM, Gene Cumm <gene.cumm at gmail.com> wrote:
> On Wed, Jan 14, 2009 at 12:17 AM, H. Peter Anvin <hpa at zytor.com> wrote:
>> Gene Cumm wrote:
>>>
>>> Well, I'm trying it and CF keeps getting set and it seems as if it
>>> runs over the end of the table without matching results.  I've tried
>>> ensuring DF is unset, changing CX and even letting it return the data
>>> into AL, regardless of the desired CF value.  I think I need to take a
>>> better look tomorrow.
>>>
>>
>> Double-check that ES == 0 in the context you're running.
>>
>
> Thanks for catching that.  ES had the extra segment address for the
> COMBOOT/COM32 environment not syslinux.  After reading around quite a
> bit I was able to find a way to work it.  Limitations on stos* forced
> me to read up and use another two registers in a function, since I
> need to use ES for ucs2_to_cp and to store the name (FS and BP) on two
> different segments.
>
> -Gene
>

Very nice.  It definitely works with anything I can quickly throw at
it, including non-ASCII on my OEM codepage in UCS-2.  Not too much
change in my code (from my last patch, aside from your changes).  I
think it's a functional long term solution.  The only thing I may
consider is to check if it's under U+0080 and then just copy rather
than looking it up and maybe alter the function you just made (or make
a new one) that only bothers with higher UCS-2 values.  Considering
the speed of machines that might run this, I don't think it's really
worth it.

-Gene




More information about the Syslinux mailing list