[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