Closed emendelson closed 4 years ago
Maybe it doesn't look into COMSPEC? Try copying command.com to C:
That was the first thing I tried. It had no effect. I also tried copying command.com to c: and changing the COMSPEC variable; also no luck.
I used to have a 32-bit Windows system that booted from Drive F: and WPDOS had no trouble finding command.com there.
This was not a problem in original DOSEMU, because I wrote some WP macros that used the DOS command feature to run a "unix" command that launched a shell script. I was trying out those macros and came across this issue.
I think you need to run dosemu with the -D+d
debug flag and collect the boot.log, as that way you will be able to search the log for command.com and deduce where it's looking for it.
I moved my .dosemurc, and started dosemu with the default configuration. I ran these commands: CD WP51 WP and then Ctrl-F1, Go to DOS (brief blink in the window), then Ctrl-F1, DOS Command, VER {Enter), again no result.
Here is the boot.log:
I'm afraid it doesn't tell me anything. I can't see anything about command.com after WP loads, but probably I'm not looking for the right things.
I'm afraid it doesn't tell me anything. I can't see anything about command.com after WP loads,
Me neither!
Can you try using FreeDOS's command.com instead?
Works perfectly with FreeDOS's command.com, version 0.84-pre2. I copied it to drive_c, started the emulator, entered
SET COMSPEC=C:\COMMAND.COM
and WP shelled to DOS correctly.
EDIT: And it works correctly without the SET COMSPEC command. dosemu seems to find the C:\COMMAND.COM and uses it automatically as the command processor. (You knew that, of course; I didn't.)
Yes, we knew that, but you didn't ask. :) I think it will even set COMSPEC to C in that case, so it will still be correct. What is very strange though, is that it depends on command.com itself. What if, for example, you replace comcom32 with freecom on drive G rather than on C? By copying it to /usr/share/comcom32/command.com, and removing it from C. Will it agree to run freecom even from G?
Works perfectly, following the procedure you described.
I'm testing now with default settings, so comcom32 and command.com are in F:. I renamed the command.com (which I see is a link to comcom32.exe) in /usr/share/comcom32 and copied the FreeDOS command.com into the same folder. I renamed command.com in ~/.dosemu/drive_c. When I started dosemu, The SET command produces COMSPEC=F:\COMMAND.COM
When I ran WPDOS 5.1 and 6.2, both were able to shell to DOS and run DOS commands as they should.
Does this help in sorting out why comcom32.exe doesn't work with WPDOS?
Does this help in sorting out why comcom32.exe doesn't work with WPDOS?
Its not like it doesn't work. Its more like WP doesn't even try to run it, as we don't see it does, in the log.
Here's a log, for what it's worth (which may be nothing).
And for me DOS shell works perfectly in WP 6.2:
Type 'EXIT' to return to program
C:\WP62>ver /r
comcom32 v0.1
Source Control Revision ID: alpha-1-64-g4657294
Reported DOS version (Int21.3000): 5.00 OEM: FDh
Reported true DOS version (Int21.3306): 7.10
Version string (Int21.33FF): FDPP kernel 1.0rc2 [GIT: ] (compiled May 10 2020)
Type 'EXIT' to return to program
C:\WP62>set
USERDRV=C
SHELLDRV=L
DOSEMUDRV=J
FDPP_AUTOEXEC=J:\FDPPAUTO.BAT
FREEDOSDRV=M
COMSPEC=L:\COMMAND.COM
PATH=J:\dosemu;L:\;M:\bin;M:\gnu;
TEMP=C:\tmp
PROMPT=Type 'EXIT' to return to program$_$P$G
BLASTER=A220 I5 D1 H5 P330 T6
MIDI=SYNTH:2 MAP:E MODE:0
ERRORLEVEL=0
DOSEMU_VERSION=2.0pre8-20200512-1848-gc3c71a6b8
Type 'EXIT' to return to program
Once again, there must be something that you have on your system that I don't have. I'm running Ubuntu 20.04 installed in a VMware machine with nested virtualization turned on, and only the steps that I listed in the wiki. So I'm completely baffled.
Last time something worked for you but not for me, it was because I hadn't installed qemu-kvm. Is there any other possibility?
By the way, the same no-shell problem occurs in Ubuntu 18.04 running in Parallels Desktop on a Mac.
See ver /r
, maybe it will indicate some differences.
By the way, the same no-shell problem occurs in Ubuntu 18.04 running in Parallels Desktop on a Mac.
Is WP installation done each time, or is it file copied between them? I'm just wondering if some setting comcom32 doesn't like is being transferred.
I didn't re-install anything too. Just extracted WP from provided archive.
If you mean "ver /r" at the dosemu command line, this is what I get with the comcom32 command.com
C:\UP51>ver /r comcom32 v0.1
Reported DOS version (Int21.3000): 5.00 OEM: FDh
Reported true DOS version (Int21.3306): 7.10
Version string (Int21.33FF): FDPP kernel 1.0rc2 [GIT: ] (compiled May 10 2020)
I also deleted all the SET files (where WP stores its settings) and tried again, with the same result - no shelling to DOS under the comcom32 command.com.
I may try this on real hardware and also reinstall under VMware and will report.
Where is comcom32 version? Mine was
comcom32 v0.1
Source Control Revision ID: alpha-1-64-g4657294
How do it get a version string from comcom32?? I'm sorry to be so ignorant, but I can't figure out how to get that output. Do I get it from the Linux terminal or the dosemu command line? And what command do I type to produce that output (I see that it should be ver /r, but what do I type to get a command line where I can enter "ver /r")?
Again, apologies for being so ignorant.
Try this comcom32.
Put it to C and symlink to command.com.
Then do ver /r
in DOS.
I wonder if you have a really old version of comcom32, as before this
C. Masloch 2019-05-02 12:03:42 +0200
the source revision id wasn't reported.
Well, I'm probably being very confused, but after copying comcom32.exe to drive_c and then (in the drive_c folder) running "ln -s comcom32.exe command.com", and then starting dosemu and entering ver, I get
concom32 v0.1
If I enter ver/r I get the same output I posted above.
If it helps, comcom32.exe is 66,945 bytes.
How can I get a current version? I ran sudo apt upgrade before testing any of this.
comcom32 I provided above, is 233984 bytes, and 119120 bytes compressed. You are doing something very, very wrong.
Perhaps you need to rule out multiple copies lying around?
find / -name comcom32.exe -ls 2>/dev/null
find / -name command.com -ls 2>/dev/null
BTW, my comcom32 from Ubuntu PPA is
177664 May 10 23:16 /usr/share/comcom32/comcom32.exe
A second thought it that perhaps you have uppercase and lower case versions?
Sorry - the number I reported was wrong, not the file. I have only two copies of comcom32.exe, one in /usr/share/comcom32, 177664 bytes, the other (copied from the first) in ~/.dosemu/drive_c
Now that I've cleared the trash, the only command.com's I have are the links to comcom32.exe in ~/.dosemu/drive_c and and in /usr/share/comcom32
I think some old links were getting in the way before. When I run ver /r in dosemu, with command.com symlinked to comcom32.exe, I get:
comcom,32 v0.1
`
Reported DOS version etc.,etc., `
BUT I do not see anything about source control. So probably I have an old version? If so, how do I install a new one?
So since your file size was identical to mine, I tried running ver /r
on my Ubuntu 18.04 system
C:\>ver/r
comcom32 v0.1
Reported DOS version (Int21.3000): 5.00 OEM: FDh
Reported true DOS version (Int21.3306): 7.10
Version string (Int21.33FF): FDPP kernel 1.0rc2 [GIT: rc-2] (compiled May 8 2020)
So you can see the source id version string is missing there too. @stsp is it being built on launchpad, perhaps the build repo is not git?
A second thought it that perhaps you have uppercase and lower case versions?
No upper-case versions anywhere.
It was build locally, but I uploaded it, and obviously @emendelson still plays with another one!
Well, I installed Ubuntu this week and installed dosemu and comcom32 the same day, using the commands I listed on the wiki. Is there some other source that I should have tried?
When I ran sudo apt upgrade, I saw the new version of the dosemu conf file getting installed, but nothing happened to update comcom32.
I think @emendelson's version of comcom32 matches mine (at least with file size) from the PPA, neither display the source id.
$ dpkg -s comcom32
Package: comcom32
Status: install ok installed
Priority: optional
Section: contrib/otherosfs
Installed-Size: 184
Maintainer: Stas Sergeev <stsp@users.sourceforge.net>
Architecture: amd64
Version: 0.1~alpha1-102-aae9c24+202005102216~ubuntu18.04.1
Description: 32-bit command.com
comcom32 is a 32-bit command.com.
Homepage: http://www.github.com/stsp/comcom32
So what? I uploaded the one that I tried, and it worked.
I think we've gone off down a rabbit hole thinking he has some rogue old broken version, purely because the 'source id' string is missing from ver/r
, which isn't the case as its display is conditional on it having length
commit d94e467b5f35b6a64be54d9fd3138a0a29827d16
Author: C. Masloch <pushbx@38.de>
Date: Thu May 2 12:03:42 2019 +0200
in perform_ver, display revisionid
diff --git a/command.c b/command.c
index 2fd9cb3..78a5716 100644
--- a/command.c
+++ b/command.c
@@ -2740,6 +2740,10 @@ static void perform_type(const char *arg)
static void perform_ver(const char *arg)
{
printf("comcom32 v0.1\n");
+ if (strlen(revisionid))
+ {
+ printf(" Source Control Revision ID: %s\n", revisionid);
+ }
}
For some reason the comcom32 in the PPA has no source id.
The fact that your just compiled version works is very interesting, but I don't know what the git hash 4657294
is as it's not in the public repo?
Seems not.
commit 4657294ec8489fcd9a3e31bc6ab357eadb01e29a
Author: Stas Sergeev <stsp@users.sourceforge.net>
Date: Fri Apr 3 22:23:50 2020 +0300
makefile fixes
But it seems private indeed.
I just now downloaded the source from
https://github.com/dosemu2/comcom32/releases
and built it, and copied it into /usr/share/comcom32. I deleted the copy (and symlink) in c:\ , started up dosemu, ran WP, and shelling worked correctly.
I think this may mean that a user needs to run sudo apt install comcom32 after visiting the instructions on this page:
https://github.com/dosemu2/comcom32/releases
But I'm not certain.
@stsp didn't you recently switch the compiler used to build comcom32 from your own PPA ppa:stsp-0/djgpp
to ppa:jwt27/djgpp-toolchain
, could that be the difference?
@emendelson since you just built a working copy which djgpp package do you have?
dpkg -s djgpp
@emendelson since you just built a working copy which djgpp package do you have?
dpkg -s djgpp
@andrewbird - As I wrote in my post up above, I built comcom32.exe (and only comcom32.exe) by downloading the source from this page
https://github.com/dosemu2/comcom32/releases
and running build.sh - I didn't build anything else.
The dpkg command that you asked for produces a message saying that djgpp is not installed.
As I wrote in my post up above, I built comcom32.exe
You are not to know this, but since djgpp (compiler) isn't installed build.sh didn't actually build anything from source it only copied a pre-compiled (by stsp) exe to the target directory.
It's still useful to know that though! :smile:
Very unlikely, as the pre-compiled binary was removed after djgpp deployment on LP.
Very unlikely, as the pre-compiled binary was removed after djgpp deployment on LP.
Incorrect, @emendelson is talking about how he downloaded source and compiled it to create a working comcom32.exe; but he doesn't have djgpp compiler so how did he create it? I just checked and the pre-compiled binary is still in the source .tar.gz. I just tried ver /r
on it and it looks to be really old. See comcom32-alpha-1/tmp/comcom32.exe
in the tar.gz on the releases page.
Ah, release instead of git, or instead of trying the one I uploaded... I think there is a mis-communication here.
Ah. @andrewbird is right - I downloaded the archive (dated last month) from the Releases page. It did occur to me that "build.sh" was working suspiciously quickly, but the exe file appeared, so I didn't look into it any further.
But the exe file certainly works with WPDOS, and the file size seems to be close to (or identical with) the file size that @stsp mentioned earlier in this thread.
Apologies again for making things complicated through my ignorance.
Ah, release instead of git, or instead of trying the one I uploaded... I think there is a mis-communication here.
Where can I find "the one that I uploaded"?
Right in this thread, by scrolling it upwards.
Right in this thread, by scrolling it upwards.
As usual, the answer is right in front of my eyes, when I'm looking for it somewhere else.
Works perfectly. Thank you.
Should now be fixed.
Thank you! This means that if I use "sudo apt" to update dosemu2 tomorrow, the fixed version will get installed?
I updated the package repository.
I updated the package repository.
And I just installed it. Thank you.
Describe the bug In WordPerfect for DOS (5.1 or 6.2), the Go to DOS and DOS Command features cannot find COMMAND.COM and therefore don't function. This is with default settings; COMSPEC is defined in the environment as G:\COMMAND.COM (which exists).
To Reproduce Run any version of WPDOS. Use Ctrl-F1, Go to DOS. The window goes blank for a moment, then returns. To see exactly what the problem is, use Ctrl-F1, DOS Command, and enter "pause" or "dir" or any other command; WP 6.2 returns a message "Can't find COMMAND.COM"; WP 5.1 displays the "Press any key to continue" message but doesn't run the command.