Open JoeC4281 opened 2 years ago
@JoeC4281 As I mentioned in the linked thread, the program can be run directly inside the PowerBasic IDE if the file c:\utils\clipmon.$$$ does not exist or that it is not read-only. I tried the linked PowerBasic 3.5 in both MS-DOS 7.10 and MS-DOS 6.22 and if I run the test program directly without the PowerBasic IDE, the program may not appear to do anything but will cause the DOS system to be unstable, and this behavior is exactly the same in MS-DOS 7.10 and 6.22. On the other hand, it will show a popup if run from the PowerBasic IDE, either in real MS-DOS or in DOSBox-X, as long as the file c:\utils\clipmon.$$$ does not exist or that it is not read-only.
Jos is also working on this for vDos.
https://vdos.proboards.com/thread/504/text-editor-program-ems-memory
This is the thread on the PowerBASIC Forum.
Joe
Hi @Wengier, I launched DosBox-X.exe with -debug -console, and found the following upon launching popup.exe, which is a TSR compiled with PowerBASIC 3.5 for DOS;
LOG: 1422337188 DEBUG EXEC:Parsing command line: popup.exe
LOG: 1422337191 EXEC:Execute popup.exe 0
LOG: 1422337191 FILES:file open command 0 file popup.exe
LOG: 1422337191 DEBUG DOSMISC:DOS_AllocateMemory(blocks=0x0046) = 0x0701-0x0746
LOG: 1422337191 DEBUG DOSMISC:DOS_AllocateMemory(blocks=0x98b7) = 0x0748-0x9ffe
LOG: 1422340692 DEBUG DOSMISC:DOS:INT 2F Unhandled call AX=160A
LOG: 1422341323 DEBUG DOSMISC:DOS_ResizeMemory(seg=0x0748) blocks=0xffff
LOG: 1422341328 DEBUG DOSMISC:DOS_ResizeMemory(seg=0x0748) blocks=0x98b7
LOG: 1422925773 DEBUG DOSMISC:DOS_ResizeMemory(seg=0x0748) blocks=0x1594
LOG: 1422925778 DEBUG DOSMISC:DOS_ResizeMemory(seg=0x0748) blocks=0x1594
Why is INF 2F AX=160A being called? That interrupt, to my understanding, is to identify Windows version and type.
Is this a mis-communication between DosBox-x.exe and popup.exe?
The attached file, which contains popup.exe, is via https://vdos.proboards.com/post/3210 PopupSuff.zip
The instructions for using popup.exe are in the message at https://vdos.proboards.com/post/3210
Joe
@JoeC4281 From the log message it appears that the program checks if Windows is running, and perhaps does something if so. It is not a mis-communication, but just what the program actually does.
Note that unlike vDos/Plus, DOSBox-X supports both the built-in DOS environment and actual DOS installations. Have you tried booting into MS-DOS inside DOSBox-X and run the program there? I tried and POPUP did stay in memory:
Hi @Wengier, Here's what Jos says is happening in vDos;
The problem with the PB POPUP SLEEP statement is that after inquiring the inDOS flag location, PB searches in the same segment for one of two possible combinations of instructions. A DOS emulator has no DOS code in the virtual machine. So that is not found, and you get the “ Error 5 at pgm-ctr: xxx” error. The same applies to Windows 7 NTVDM, though DOS code, no such code sequence.
It’s not that hard to fool PB, but that doesn’t do it.
Your POPUP example hooks into several interrupts, as INT 9 (IRQ1), the keyboard handler. vDos however doesn’t emulate that, so the code testing for Ctrl-Alt is never executed.
Furthermore at executing a DOS command (F10…) your OPEN program seems to just drop to the command shell. Then it expects EXECOM
to be pushed as keyboard input. That also doesn’t work, in vDos the command shell is then just sitting there, awaiting input.
I do not use vDos, so just showing the conversation between Keith and Jos.
Joe
Code of Conduct & Contributing Guidelines
Have you checked that no other similar bug report(s) already exists?
What operating system(s) this bug have occurred on?
Windows 10 21H1 (OS Build 19043.1348)
What version(s) of DOSBox-X have this bug?
0.83.19 (SDL1, 64-bit), Nov 1, 2021
Describe the bug
This is the same problem that I had with vDosPlus, in that PowerBASIC for DOS TSRs would error, and not work.
Here is the link to the thread from 2017;
https://sourceforge.net/p/vdosplus/discussion/general/thread/8825bf7e/#0b31
I would like to use some of my old PowerBASIC 3.5 TSRs in DosBox-X, but have run into a few problems.
Here is a bare-bones "do nothing" example that demonstrates my problem;
This example works in MS-DOS 6.22, but gives the error;
...at startup in DosBox-X, which is the line;
I have tried using;
...with the same resulting error. I have confirmed that the c:\utils directory exists.
A copy of PB35 can be obtained from https://winworldpc.com/product/powerbasic/3x if you wish to test this. I am using the PB35 that I purchased last century from PowerBASIC, so I do not know the accurary of this download.
Constructive suggestions appreciated.
Joe
Expected behavior
I expect that a TSR created in PowerBASIC for DOS runs properly in DosBox-X, as it does in MS-DOS 6.22
Steps to reproduce the behaviour
As indicated above in "Describe the bug".
Used configuration
Emulator log
No response
Additional context
This is the response from @Wengier in 2017;
Hi Joe,
I have tested it and doubt it has anything to do with the reported DOS version. Also, I noticed that your program reports the same error when it runs inside DOSBox or original vDos, which are what vDosPlus is based on. This means that the problem is not vDosPlus-specific and I am not yet sure about the exact cause since I am not really familar with PowerBasic. However, the program can be run directly inside the PowerBasic IDE if the file c:\utils\clipmon.$$$ does not exist or that it is not read-only.
Wengier