|
Post by rtozzi on Feb 1, 2024 20:01:22 GMT 1
Hi, I'm currently trying to make a filemaker pro database work with vDOS, but one of the fp programs (rclerk.exe) is giving me an error me a memory error: "The instruction at 0048792c referenced memory at ffffffffoThe memory could not be read from". In Windows 10 32-bit, the "Use Legacy console" option is required. Is there any way to work around this?
Robert T.
|
|
|
Post by Jos on Feb 1, 2024 20:14:09 GMT 1
Can you send a test environment to reproduce the error? So rclerk.exe and eventually required files.
Jos
|
|
|
Post by rtozzi on Feb 2, 2024 1:13:43 GMT 1
|
|
|
Post by Jos on Feb 2, 2024 7:52:01 GMT 1
rclerk.exe is a Windows program that runs outside vDos.
You could start CMD manually with Run as Administrator, then in its System menu - Properties - Options - check Use legacy consoleā¦ and close the CMD window.
Though no idea if this fixes your issue like in Windows 10. Could be rclerk.exe relies on some content in the console window.
Jos
|
|
|
Post by rtozzi on Feb 2, 2024 15:54:27 GMT 1
I don't think it's a windows program, but just opens the error in another DOS box. I just discovered that this error happens even in the working environment if rclerk or rreport is run directly.
Here I attached the working copy of FP, configured to the root C: drive. To test, run C:\DOS\FPStart.bat using the shortcut (has cmd environment "Use legacy console" & Layout of 80x25 configured) in 32-bit windows, choose a menu item like Dividend, Owners, or Interred from the main menu. Then from the next screen, choose Add, or Find, or Print a Record.
When it functions correctly, you will get the message "there are no filePro files".
drive.google.com/file/d/1-6rLexXXlh6gb6Awm3DDsKtxBHqIsxzn/
Robert T.
|
|
|
Post by Jos on Feb 2, 2024 16:58:34 GMT 1
rclerk and the other executables in the FP directory are actual Windows CLI programs. To however present the menus, some simple DOS programs are used. To finally start rclerk/rreport. At the Windows command prompt try for instance: set dirfp= set filefp= set pfdir= set pfmenu= set PFDIR=\data\PROFILE\ocean set PFMENU=f:\DATA\PROFILE\ocean\menus set user= set path=%path%;f:\dos;c:\;c:\dos;c:\fp; set PFDSK=F set PFDATA=f: set PFPROG=C: set PFCMARK=50 set PFGLOB= set PFCONFIG= set PFVER=ON set PFNET=ON set PFTMP=C:\TEMP rclerk a -s1 -b -xa -h "A D D I N G R E C O R D S" -u You first would have to figure out the logic of fpstart.bat and addfindx.bat. - Then replace the DOS programs by Windows equivalents;
- Or start by hand (or some other automated system) rclerk/rreport with the correct parameters of a task;
- Or move parts (like the set commands) of fpstart.bat and addfindx.bat to a separate batch (.cmd) file. Run those first two modified (stripped down) batch files batch files in vDos. That then starts the cmd file.
Jos
|
|
|
Post by rtozzi on Feb 2, 2024 18:31:28 GMT 1
This is interesting.
I just confirmed you are correct by inspecting the exe files (with InspectExe by Silurian Software). Some of these files say they are "a Console Program for Intel 386 (32bit) computers designed for O.S. version 1.11 and one of the properties said "Optional Header Type: NT 32bit".
I double-checked this by installing DOS 6.22 on a VM and running the software. Instead of getting that memory error, the next screen just wouldn't open.
So do you think a Windows 3.1 emulator might be the best option, or is that something that can be put loading into vDOS, or do you know of another 16-bit & 32-bit emulator that could handle this code?
Robert T.
|
|
|
Post by Jos on Feb 2, 2024 19:17:55 GMT 1
I doubt the Windows exe files will run in Win 3.1. Most straight forward would be a virtual Windows XP, second a virtual Windows 10, both 32 Bit.
A DOS emulator confines the two batch files to that environment. So you would have to start a separate batch file that is executed by Windows (vDos CMD). That batch file has to prepare the Windows environment by the lot of SET commands and start rclerk/rreport with the appropriate parameters.
Jos
|
|
|
Post by rtozzi on Feb 2, 2024 20:12:30 GMT 1
I think Windows 10 will probably be the lowest version that will support the current network authentication to access the data folder on the server.
The strange thing is that if I directly run the following from the working machine, I get the same memory error in the current command prompt window. -> rclerk a -s1 -b -xa -h "A D D I N G R E C O R D S" -u
Robert T.
|
|
|
Post by Jos on Feb 2, 2024 21:02:12 GMT 1
You didn't set beforehand the environment variables?
set dirfp= ... set PFTMP=C:\TEMP
Jos
|
|
|
Post by rtozzi on Feb 2, 2024 22:10:30 GMT 1
dirp is set to null on all of the working versions. I have the TEMP folder in the C:\DOS folder now, so PMTMP=C:\DOS\TEMP and is working on Windows 10 x32. Too bad there isn't an easier fix, but thanks for the help!
Robert T.
|
|
|
Post by Jos on Feb 3, 2024 15:38:05 GMT 1
I meant what I listed before with "At the Windows command prompt try for instance:" I then get: Jos
|
|