I noticed that Locate runs a Borland extender call 32rtm.exe, which then loads
dpmi32vm.ovl. DPMI is turned on, so I increased it's memory to 16MBytes. Now
the program gives me "Invalid entrypoint". I tested this program in a pure DOS
6.22 environment and it works fine.
Running the dosemu (BTW, I have also used .99.13 and it does the same thing) in
debug mode, I find the following buried deep.
DPMI: realmode hlt: 0xfc82d
DPMI: Return from DOS Interrupt 0x21
DPMI: calling interrupthandler 0x21 at 0x00d7:0x00006241
DPMI: int31, ax=0007 ,ebx=000000ff ,ecx=0000400f ,edx=400fc828
edi=00027000 ,esi=00028000
DPMI: SetSegmentBaseAddress[0x001f;0x00ff] 0x400fc828
DPMI: default protected mode interrupthandler 0x21 called
DPMI: calling real mode interrupt 0x21, ax=0x5000
INT21 (0) at f800:482d: AX=5000, BX=108a, CX=0400, DX=0000, DS=d500, ES=d500
int 0x21, ax=0x5000
DPMI: realmode hlt: 0xfc82d
DPMI: Return from DOS Interrupt 0x21
DPMI: do_cpu_exception(0x03) at 0xd7:0x25b9
eip: 0x000025b9 esp: 0x00036000 eflags: 0x00000206
trapno: 0x03 errorcode: 0x00000000 cr2: 0x00000000
cs: 0x00d7 ds: 0x00df es: 0x00df ss: 0x00df fs: 0x00ff gs: 0x0000
EAX: 00410000 EBX: 00036000 ECX: 00400000 EDX: 0003a000
ESI: 00028000 EDI: 00027000 EBP: 000003d2
OPS : 40 57 51 50 e8 2c 4b 00 00 cc -> c7 05 b4 78 01 00 01 00 00 00
STACK: 00 00 d7 00 00 00 06 02 00 00 -> 00 00 00 00 00 00 00 00 00 00
DPMI: Return from client exception hander
DPMI: calling interrupthandler 0x21 at 0x00d7:0x00006241
DPMI: default protected mode interrupthandler 0x21 called
DPMI: base address 0x400d5000 of sel 0xd7 > DOS limit
DPMI: calling real mode interrupt 0x21, ax=0x0900
Any ideas, o great DPMI wizards?