Mail Archives: djgpp/2011/03/15/06:41:48
> From: Jim Michaels <jmichae3 AT yahoo DOT com>
> Newsgroups: comp.os.msdos.djgpp
> Date: Tue, 15 Mar 2011 00:37:06 -0700 (PDT)
> > dosmemget(adr, sizeof(extFAT32FreeSpaceStructure), pds);
> >
> > (assuming `pds' is correct, and you remove `wastedspace' from the
> > structure, because it makes you fetch data beyond what DOS fills in).
> >
> > Or you could use __tb+STRUCT_OFS instead of `adr', because my reading
> > of RBIL is that DOS fills the buffer whose address you passed to it in
> > ES:DI when you called __dpmi_int. Per the FAQ, you should have put
> > the segment and offset of __tb in ES:DI before invoking __dpmi_int, so
> > the buffer filled by DOS is in the transfer buffer, and __tb is its
> > address.
>
> doesn't work.
What does that mean, exactly? What do you get in the struct after
__dpmi_int returns? Or does the program crash? Or something else?
> I already check the carry flag, which If I am not
> mistaken is r.x.flags & 1.
Yes, that's the CF flag. I take it that it's cleared? If so, what is
the value of r.x.ax after __dpmi_int returns?
> I am not a total idiot.
There was no word "idiot" in my message. People do make honest
mistakes, you. If you can assume that the basic infrastructure of
DJGPP doesn't work because "DJ forgot to include" something, I can
certainly assume that someone who asks trivial questions about
low-level programming with DJGPP forgot something, too.
> the reason why I padded the struct to size 0x30 was because some of
> the djgpp dos memory access functions require accessing memory in 16-
> byte chunks (0x10), or segment size chunks.
Don't. dosmemget doesn't require any such roundups.
> I think I may have to take this problem to the freedos folks and see
> why 7303h doesn't seem to work on their OS when they are supposed to
> support it.
>
> I am still learning. but I need to get solid code so I can say to the
> freedos folk, "your OS is broken, here's how", or, I can have a
> working program that works on freedos which uses FAT32 and maybe
> windows 98.
You could simply ask them if they support 7303. From what you say I'm
beginning to think they don't. Asking such a question does not need
any code to show: since this function is not in the standard DOS, and
is documented in RBIL to be supported only by Windows 9X (not even DOS
7 when Windows is not up and running), it's quite reasonable to ask if
FreeDOS does support it.
- Raw text -