Re: FAT32 HELP!
- Posted by bytebrain <bytebrain at MINDSPRING.COM> Aug 19, 1999
- 434 views
-------Phoenix-Boundary-07081998- Content-type: text/plain; charset=ISO-8859-1 Content-transfer-encoding: Quoted-printable Hi Wes Hamilton, you wrote on 8/19/99 6:24:15 PM: ><SNIPPED>...I'll be busy tonight working on the 'dir' parse >kludge >in case I can't ever get a work-around on this... > >Wes ><CODE SNIPPED> Good luck with the 'dir' method. I don't have a solution yet either (though not for lack of hair pulling), but I do have a little more info and some questions. I got tired of finding zip for information on the 'net, so I ran command.com through a dissassembler and found that there is indeed a call to int #21/ax=3D#7303 inside there. That seems to indicate that you were correct in your choice of function, but also that Bernie was correct about it needing a real mode execution. However, it may not require all the machine code Jacques used, at least not for this one task. I found some interrupts which claim to be for exactly that purpose (simulating real mode ints), and that brings me to my questions. As part of the process, the interrupts require that ES:EDI be loaded with the address of a call structure. So, 1) Am I correct in assuming that Euphoria uses EDI (by way of regs[REG_DI]) automatically, since it's in protected mode=3F 2) I first set ES to be the segment of the call structure address--floor(addressVar/16)--but the code bombed, so I am wondering if the segment should have been the current code or data segment. That doesn't make sense to me, since the address was allocated low, but I dunno . . . Also, one of the interrupts I am trying is a CauseWay interrupt, int #31/ax=3DFF01 I think. So far all it has produced are some impressively solid system lock-ups. Is there something inherently unstable about using a CauseWay interrupt from within Euphoria or (more likely) am I just mangling the application somehow=3F Any help would be appreciated since, in addition to helping Wes, I've got to figure this out at some point in order to update diskutil.e. I realize that it would help if I could offer some source code. Unfortunately, I left it at work; this is because I am an idiot. I'm in a twelve step program for that, but I keep forgetting to go to the meetings, getting lost on the way, etc . . . If this proves to be insufficient info for anybody to offer any help with, I'll post some code so maybe somebody can spot what I'm screwing up. By the way, Wes, what I'm trying to do is set up a routine for calling real mode interrupts so that in your code (or anyone's) you can do this: regs =3D dosInterruptReal32(#21,regs) or regs =3D dosInterruptReal16(#21,regs) and go about your business normally. I'll be gone for a few days, so I'll be delayed responding to any posts directed toward me; talk to you guys later. (first real vacation in six years, WAHOOOOOOO!) Craig ------------------------------------------------- I understand mathematics, I just can't do proofs. --Anonymous -------Phoenix-Boundary-07081998---