[syslinux] Problem with opening a file
Marc Haisenko
haisenko at webport.de
Fri Feb 13 03:33:22 PST 2004
On Wednesday 11 February 2004 13:18, H. Peter Anvin wrote:
> Marc Haisenko wrote:
> > Hi folks,
> > I've got a problem with COMBoot (16 bit) in SYSLINUX 2.06: while the
> > write string call (ax=2, int 22h) works just fine, the open file call
> > (ax=6, int 22h) does nothing at all. Calling that function doesn't modify
> > any register, and doesn't modify the carry flag.
>
> Get 2.08, or better yet, 2.09-pre11.
>
> -hpa
Okay, so I've tested 2.08 and 2.09-pre11 as well, with the same result. And I
did some debugging and here is what I've found out so far:
comapi_open is executed and works fine, it really finds my file if I give the
correct name as argument. However the results i.e. changed registers don't
make it back to my program.
If, for instance, I call ax=0Ah, int 22h (get derivate info) it really changes
my ax register to 31h. But whatever I try, ax=6, int 22h does not. I even
tried changing comapi_open so it changes P_AX to some magic values before
returning so that the ax register should be changed for sure, with no effect
whatsoever.
I really know that comapi_open works just fine since I've added calls do
debugging routines that I've included in comboot.inc, so that when
comapi_open fails it prints a "$" to the screen and when it succeeds it
prints a "*" to the screen.
The question is why don't the changed registers propagate back to my test
program (which I've included again) ? And why does this only happen for ax=6
in int 22h, not for example for ax=0Ah ?
C'ya,
Marc
--
Marc Haisenko
Systemspezialist
Webport IT-Services GmbH
mailto: haisenko at webport.de
More information about the Syslinux
mailing list