VMware Communities
HartmutG
Contributor
Contributor

Bug in DOS-Function FindFirst / FindNext File

I have several DOS programs which run excellent under real Win XP, but under virtual XP they run faulty. These Programs find existing files, but report some of them twice (instead of once).

To find existing files they use DOS Intr 21H, AH=4E (FindFirst) and 4F (FindNext). Under virtual XP typically the first 7 or 8 files or directories are reported twice, the rest is then ok. On drive C: the bug does not exist, only on the other drives, which are mapped to the host network like.

An old Norton Utilities Tool shows exactly the same bug. Under real XP everything is perfect.

Please can anybody help?

Host is Win 7 SP1 Home Premium 64 bit

Guest ist Win XP SP3

VMware is 5.0.2

Logfile shows nothing at that time.

Tags (2)
0 Kudos
9 Replies
Samquejo
Commander
Commander

Tell me which version of NU are you using to test in my lab

All of this api are deprecated, like int 13h (vga) or 33h (mouse)

Mensaje editado por: Samquejo 13h is for disk, 10h is vga, sorry

Si esta u otra respuesta es util, por favor marca su correspondiente notificador. Gracias/Regards
0 Kudos
HartmutG
Contributor
Contributor

Version of NU is 4.0, I could supply one of them (16 KB) to you if you want and tell me how.

Thanks for looking after this problem.

0 Kudos
Samquejo
Commander
Commander

Ok

I have it. Give me 2 days

Si esta u otra respuesta es util, por favor marca su correspondiente notificador. Gracias/Regards
0 Kudos
Samquejo
Commander
Commander

Hi

I've the same error in both environments (yes, I've a very old Piv with XP at home)

Captura1.PNG

With debug.exe

Captura2.PNG

Captura3.PNG

Captura4.PNG

Si esta u otra respuesta es util, por favor marca su correspondiente notificador. Gracias/Regards
0 Kudos
Samquejo
Commander
Commander

Look in Troubleshooting MS-DOS-based programs in Windows XP and Troubleshooting MS-DOS-Based Programs in Windows

Smiley Sad All of this are deprecated and shoudn't run in a NT family os

  • All MS-DOS functions except task-switching APIs (program programming interface functions) are supported.
  • Block mode device drivers are not supported. (Block devices are not supported, so MS-DOS IOCTL APIs that deal with block devices and SETDPB functions are not supported.)
  • Interrupt 10 function 1A returns 0; all other functions are passed to read-only memory (ROM).
  • Interrupt 13 calls that deal with prohibited disk access are not supported.
  • Interrupt 18 (ROM BASIC) generates a message that says ROM BASIC is not supported.
  • Interrupt 19 will not reboot the computer, but will cleanly terminate the current virtual DOS machine (VDM).
  • Interrupt 2F dealing with the DOSKEY program call outs (AX = 4800) is not supported.
  • Microsoft CD-ROM Extensions (MSCDEX) functions 2, 3, 4, 5, 8, E, and F are not supported.
  • The 16-bit Windows subsystem on an x86 computer supports enhanced mode programs; it does not, however, support 16-bit VxDs (virtual device drivers). The subsystem on a non-x86 computer emulates the Intel 40486 instruction set, which lets the computer run Enhanced-mode programs, such as Microsoft Visual Basic, on RISC computers.
Si esta u otra respuesta es util, por favor marca su correspondiente notificador. Gracias/Regards
0 Kudos
HartmutG
Contributor
Contributor

You show NU.exe 4.5 is not running (probably because of accessing Track 0 of the disk). My example is fi.exe of NU 4.0 which runs excellent under real XP und has under virtual XP exactly the same bug I reported here. I can pass fi.exe to you (16 KB) if you tell me how.

The microsoft list of deprecated interrupts does not contain INT 21h, AH=4E and 4F, which has the problem.

I'm not shure what are you telling me. Can the bug be fixed?

Thanks a lot

0 Kudos
Samquejo
Commander
Commander

Ok, sendme it and i'll try this weekend

Sorry, I have some old software, but not all Smiley Sad (I was convinced to have a 4.0)

Si esta u otra respuesta es util, por favor marca su correspondiente notificador. Gracias/Regards
0 Kudos
HartmutG
Contributor
Contributor

Here comes fi.exe. Just call it without parameters and (like DIR) it lists the files of the current directory. Under virtual XP you'll see the bug, that typically 7 or 8 of the first 10 files are listed twice. This is exactly the same bug several of my old DOS programs show. Under real XP this bug does not appear.

0 Kudos
HartmutG
Contributor
Contributor

Hi Samquejo,

Did you make advantages? Could you reproduce the bug with "fi.exe" I send you?

0 Kudos