|
Post by ednt on May 5, 2021 14:55:09 GMT 1
Hi,
I just tested the new version of vDOS and after login our app crashes vDOS completely. I tracked it down to the following code (vdostest.prg):
Befehl = "! date" &Befehl
If you compile this code and start it with
foxr vdostest.fxp vDOS simply terminates.
Strange thing is, when I start the app from the foxpro GUI, it does not crash.
The code works in all older versions of vDOS.
date is only to show the behaviour.
|
|
|
Post by Jos on May 5, 2021 15:48:28 GMT 1
I can’t replicate this (another FoxProX version?). But it will be caused by:
1. The internal TLB table is now cleared when a DOS program terminates, so COMMAND.COM. 2. Emulating POP register(s) off the stack, vDos optimistically doesn’t check if the virtual SS:ESP page is already translated to a physical one and stored in the T:B table. Normally that SS:ESP would already be used by pushing the register onto the stack. But as the TLB cache is now cleared, that doesn’t apply anymore.
This has been fixed, I’ll replace the installation program vDosSetup coming weekend.
Jos
|
|
|
Post by johngoebel on May 5, 2021 17:49:13 GMT 1
Hello Jos, I can confirm that in vDOS 2021.05.01 (some?) calls to command.com from FoxProX 2.6 now make vDOS silently close. This was not a problem in vDOS 2020.03.01. I planned to write test program for you tonight, now I will wait and see if the new version fixes the problem.
Otherwise I like the new version, I have no empirical tests but it does seem like FoxProX is a little "snappier" in vDOS 2021.05.01.
|
|
|
Post by Jos on May 5, 2021 18:28:04 GMT 1
It will depend on whether the virtual page of SS:ESP is addressed in some other way before the offending POP instruction. Then the TLB table entry gets populated again.
Jos
|
|
|
Post by johngoebel on May 11, 2021 23:28:34 GMT 1
Jos, I was able to solve the problem with older version 2021.05.01 by adding "SET COMSPEC=C:\WINDOWS\SYSTEM32\cmd.exe" to autoexec.exe Based on a quick test the newest version of vDOS 2021.05.01 solved my problem without having to SET COMSPEC in autoexec.txt. Thank you very much for the quick fix. Regards, John
|
|
|
Post by Jos on May 12, 2021 22:04:55 GMT 1
Although vDos allows you to set a non-standard (COMSPEC=) command line processor, seemingly even one that isn’t DOS based, the build-in one is advised (no SET COMSPEC=).
Could be starting and exiting some ‘alien’ program confused vDos in the past. Especially to FoxProX virtual memory paging mode…
Jos
|
|