-
Notifications
You must be signed in to change notification settings - Fork 156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OED (Oxford English Dictionary) 1.0 error message #565
Comments
The trace doesn't show the crash. |
Hm... I'll try again... |
My apologies. I confused the issue. Here are the relevant facts.
https://www.dropbox.com/s/ecyw1stl9n6rfte/trace.7z?dl=1 EDIT: item 4 removed because of irrelevance. |
I don't know what's happening but this trace doesn't show the crash either. The trace output should have the crash dump in it including the registers and stack backtrace. Is what you posted above exactly what it prints on the console? If so, something went really wrong because "ESP:A9FO,EBP:AA(X),ESI:0031,EDI:(XX>0" is nonsense. |
Again, the error that I posted in the first message is NOT what happens when I run OED.EXE (the 16-bit app). That error is what happens when I run OEDXP.EXE, the small app that launches the 16-bit one under 32-bit Windows. I know I've confused the issue by trying both. But the trace is from OED.EXE (the 16-bit app), which crashes when I run it. I'll try this again tomorrow and will report back after using the console version of winevdm.. Again, the error message with the nonsense in the first message (now removed) is NOT really relevant, because it's produced when I run the OEDXP.EXE launcher app, not the OED.EXE app itself. The error message in my (now-deleted) first post did NOT appear when I ran OED.EXE. I've edited my earlier posts in the hope of clarifying this. Does the trace that i posted above show a crash at all? If I've confused the issue beyond recovery, maybe I should just start again with a different bug report? |
Perhaps the trace is broken because the process terminated without stderr being flushed. |
OK, I downloaded the latest appveyor version with the flush-stderr fix, and made a new trace. Here is what happened: When I started OED.exe, it opened its main window and stalled. I couldn't use the menus, so I closed winevdm from the Windows task manager. The link below contains the trace.txt file and a DEBUG file that seems to be created by the OED app, and which is probably useless, but here it is anyway: https://www.dropbox.com/s/uaeyktlnjxpdwmx/OED-Trace.7z?dl=1 If there's any way to get more information, I'll be glad to try. |
It seems to hang while trying to a display a MessageBox with "Error: 33400" in it which is the same error as the debug file. There's no obvious reason for the error in the trace that I can see. |
Is there anything else I can do to get more information? There may be ten people in the world still using this program, so it really doesn't call for an enormous amount of effort. |
The program appears to use a library called XVT and it calls PrinterDlg just before the error so I'd suspect the error to be related to this, http://forums.peachtreeusers.com/showthread.php?t=12565. What printers do you have installed? Maybe try installing a generic printer driver and make it the default. |
Well, you clearly figured it out, and some more research shows that it's not enough to choose a generic print driver to make this program work - I have to disable the print spooler service while the program launches, and then turn it on again after the program runs. I've made two traces: https://www.dropbox.com/s/gj5e98ybeukwlsk/OED.7z?dl=1 trace-crash.txt is a trace made while the Windows Generic/Text Only driver was the default printer driver. trace-spoolOff.txt is a trace made with the print spooler service stopped, when the program runs normally. Question: I know that I can set up an AutoIt script or an elevated batch file or something similar to turn off the spool service, launch the program, and then turn on the spool service again, but is it worth the effort to make winevdm intercept the XVT library and turn off the print spooler while launching a program that uses it? It sounds like a lot of work, but that PeachTree forum post suggests that it might help quite a few other users. Thanks again for the work you've been putting into this one. |
Optimal solution would be to find out what about printdlg makes it unhappy and change it to avoid the problem which would require disassembling a program which uses xvt. That might not be possible though. I'd strongly prefer not to runtime patch programs (other than real mode windows programs which do all kinds of nasty things). |
If it is worth the effort for you, I would be happy to send you the program. But the solution of turning off the print spooler seems to be the best workaround. |
Willmaker 5 (https://archive.org/details/SoftKey_WillMaker_v5_Win31_1996_Eng) gives the same error when opening the printer setup dialog. It happens when the devmodea.dmdriverextra field, https://docs.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-devmodea, is greater than 0x2bc. It might be okay to set it to 0 since there's unlikely to be any win16 program which will be able to use anything from that with modern printer drivers. |
I created a draft pr for you to test. It fixes that error in Willmaker but it blows up when trying to print. It also fails in ntvdm too so the problem there might be different. If the program runs it would be good to actually try printing if you have a printer or a pdf generator. |
I downloaded the latest appveyor version ("zero dmdriverextra because some programs don't like large values there") - is that what you meant by a "draft pr"? The program runs with no errors except when I try to print. It has a Print/Setup menu item and a Print/Entry item (which prints the selected entry from the dictionary). The results are intermittent. The Print/Setup menu mostly produces an error message "Can't get printer information"; but sometimes (unpredictably) it gives me a Windows printer-selection dialog, with my current default ("Generic / Text Only") displayed. But when I try to print, it gives me a "Cannot Print" or "Unable to print" error. I changed my default printer to a PCL driver, and also got the "Unable to print" message. In all cases, the program continues to run after giving the error message. I think it's asking too much to ask for printing from this app, and I'm very grateful to be able to use the program at all! |
What happened with the print dialog before when you stopped and started the spooler? I'd guess it would just printer error 33400 and exit but it'd be interesting to know, If you look through the bug reports here you'll find lots of printing issues (look for printer name too long) and most/all of those also fail in ntvdm. Seems like Microsoft gave up on backward compatibility for printing at some point. |
I reinstalled the earlier build of winevdm to find out. Yes, as you thought: any attempt to print or setup printing produces error 33400 and exit. I have a 32-bit Windows 10 setup that I can boot to, and will try it in the next day or two. Will report what happens in ntvdm. I've never tried printing from this program before... |
Another program that seems to show the same behavior: WordSearch (which I can't find...): http://discussions.virtualdr.com/showthread.php?51039-NT-Workstation-Application-error |
Under Win10-32 NTVDM, I get the same Error 33400 if I do anything that involves printing, including an attempt to select a Generic / Text Only printer driver. |
For some reason, the recommended-build for this update isn't available on the appveyor site. There's a note saying that the build failed. Is it possible to try it again? EDIT: Fixed now. Thank you. |
I tried to install the OED version 2 (so, not OP's version, which is version 1) using the latest experimental recommended build of winedvm (which is build 2293). The OED program did not work; it installs, but when run I get a hang. Nor do I see any way to enable the workaround - to do with printer drivers - discussed above. I see a console with this output:
EDIT: oh, and subsequently a little Win 3.1 box pops up saying 'CD-ROM not found', and the program exits. |
Do you mean this one https://archive.org/details/oxford-english-dictionary-second-edition because it works for me. Need a trace. |
I do mean that one. Please tell me how to make this trace of which you speak. Thanks. |
Thanks. However, just how those instructions apply to the present case is unclear. But here is what I did - having already, and without a trace, installed the OED program. As you can see, I have failed to get the trace to work:
I think I am doing something stupid but at present I do not know what it is. |
Do you have winevdm installed with the inf file so you can run win16 programs directly? If not you need to add otvdm.exe to the commandline. Or are you running that command prompt elevated? |
Ah: I had forgotten that I had uninstalled otvdm. I have reinstalled it. But now, whilst the OED program runs - and hangs - the trace file is empty, and that is so whether I run the OED program as admin or not, and whether I run it from cmd or from powershell. (EDITED.) |
When running a trace the program runs slower so as long as the trace file isn't empty it's potentially useful. |
Sorry: my previous post was mistyped; I had meant to say, but did not say, that the trace file was empty. (I have now corrected my previous comment.) Just now I tried the procedure again and the trace file is still empty. For, things went as follows.
Thank you for trying to help. Thank you too for your software. |
Seems this doesn't work in powershell for whatever reason. You need to use cmd. |
@LinuxOnTheDesktop - There may be some confusion here. The iso image on Archive.org is of the OED Second Edition, version 1.13, It is not OED Second Edition version 2.0. The confusion results from the fact that all VERSIONS of the OED are versions of OED Second Edition, and have version numbers from 1 to 4. The file dates that you post are those of OED Second Edition version 1.13. Version 2.0 dates from 2000. According to this page - http://xywrite.org/xywwweb/oed.shtml - version 1.11 is the last that doesn't require a disk image. That's what I've been using with otvdm. |
@emendelson: thank you. With the help of that 'XyWWWeb' page that you mentioned I managed to get things working - as follows. I located a copy of version 1.14 of the OED software. Here is a direct link to that version. (I could not find version 1.11.) But that instance of the software (1.14) - at least the particular instance of it that I had obtained - contained only It does seem that OED version 1.14 needs to be run from a real CD. My PC does have a CD drive. However, I ended up installing to my hard drive anyway - as follows. As recommended by the XyWWWeb page, I obtained the program ImgBurn (from here). I used ImgBurn to turn the aforementioned dat file into an iso file. Then I mounted that file using the native Windows Files/Explorer program. (The XyWWWeb page recommends ImgBurn and, also, two third-party tools that one can use for the mounting; but Windows 10 can do the mounting itself.) Then I executed After the installation, I ran My thanks to both @emendelson and @otya128. |
Let me add the following. Getting the OED to run can remain a problem - because one needs to have the aforementioned ISO file mounted as a (virtual) drive; one needs that drive to exist every time one runs the program. To that end, each time one wants to run the program, one can manually mount the ISO, and then run the executable (and the executable is not within the mounted drive). To get around this chore, one can write a script that mounts the drive automatically and (still in the script) runs the executable. I wrote such a script in PowerShell - so then I had to create a shortcut that could run the PowerShell script. It is all rather involved, but I'm happy to provide the details and the code if anyone wants it. |
Removed because of irrelevance. See the post that begins "My apologies" below.
The text was updated successfully, but these errors were encountered: