[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