ADTPro / adtpro

Apple Disk Transfer ProDOS (ADTPro)
http://adtpro.com
GNU General Public License v2.0
132 stars 19 forks source link

No network detected under Windows 10/x64/build 1803 & Java 1.8 build 221 #78

Open amishrabbit opened 5 years ago

amishrabbit commented 5 years ago

I'm using ADTPro 2.0.3 on an Apple IIe that has an ethernet card.

When run on OSX client laptops. the IIe can see the server and the server app shows the local IP address in the title bar of the application. Tested send/receive and it works perfectly.

However, using a Windows laptop, the server application does not display the IP address in the title bar, and does not seem to be serving, well, anything. The IIe cannot see the server when I manually enter the correct IP address into the Confi(G) interface.

I have had to modify the command line to the following in order to get Java to run correctly. In the absence of these changes, Java errors out with the message that "Windows cannot find '-Xms128m'" (screenshot attached) presumably because more recent Java for Windows requires a slightly different way of using the CLI flags than it used to.

start "C:\Program Files\Java\jre1.8.0_221\bin\javaw.exe -Xms128m -Xmx256m -jar" "%ADTPRO_HOME%\lib\ADTPro-2.0.3.jar" %ADTPRO_EXTRA_JAVA_PARMS% -cp;"%ADTPRO_HOME%lib\rxtx\%RXTX_PATH%\RXTXcomm.jar";"%ADTPRO_HOME%lib\AppleCommander\AppleCommander-1.3.5.13-ac.jar" org.adtpro.ADTPro %*

I am running the batch script, with this modified start line, from an elevated/Administrator command prompt window. Windows does not do the normal prompting for firewall passthrough that I would expect, so I suspect that Java is not actually opening a listening socket, but I have no evidence of that.

I've been looking around for solutions to this particular problem, specifically involving using network for transfer, and I've come up empty handed. Do you have any suggested remedies?

amishrabbit commented 5 years ago

windows cannot find Xms128m

amishrabbit commented 5 years ago

adtpro windows 10

david-schmidt commented 5 years ago

I'd like you to go back to the default 2.0.3 batch script and post what shows in the command prompt window that is "behind" the server GUI. That should provide some clues as to what is going on.

amishrabbit commented 5 years ago

Hi David. Thanks for the quick reply.

So, I tried running the original version of the batch file but I realized it doesn't display any useful data with the /min flag set after the START command, so I only modified it slightly to get rid of that, and this is the output.

standard CLI

This instance also ran without me configuring the MY_JAVA_HOME variable, and as a consequence, it runs from a different location than the other one did (I didn't even realize that Java had installed itself to this path)

java path

I used both a netstat -a command and the Windows utility TCPView and I could not see any listening port opened by Java. What port number does this server normally listen on? Am I correct that it uses UDP?

david-schmidt commented 5 years ago

ADTPro for Uthernet uses UDP, and assigns port 6502 by default (but is settable in the config file that is left behind).

What shows in the window when you push the "Ethernet" button?

Of the "surprising" install of Java, what bit-width is that one? What about setting ADTPRO_HOME to a value you expect, ensuring it's 64-bit?

Do you have multiple Ethernet interfaces on your Windows machine? It will have trouble deciding which to use if so.

david-schmidt commented 5 years ago

Closing due to age.

spikesophos commented 5 years ago

Hi there. Sorry for not following up until now.

The Java version is 32-bit in that screenshot above.

There is another copy of the Java executable here, which is 64-bit. 64bit java

I only have one physical Ethernet interface built-in but this computer has used a USB Ethernet adapter in the past. It is not currently installed.

Clicking the Ethernet button causes the button to go from grey to white but has no other outward effect adtpro ethernet selected

david-schmidt commented 5 years ago

Ok, cool. You'll for sure want to use the 64-bit java, and uninstall the 32-bit one to make sure it doesn't interfere. It looks to me as if it's not getting too far with the Ethernet interface - if it figured out what IP address to use, that would show up in the title bar. So any messages in the console log would be instructive. If nothing's there, time to enable tracing and hit the Ethernet button and take a look at the debug log.

spikesophos commented 5 years ago

Where does the app store those logs? How do I enable tracing?

david-schmidt commented 5 years ago

From the menu: File->Activate Trace It's a toggle; when the checkmark is beside the Activate Trace menu item, it's tracing. The output goes to the same place as where you "installed" ADTPro - ADTProTrace.txt is in the filesystem alongside ADTPro itself.

amishrabbit commented 5 years ago

Ran the program and then activated trace, and clicked Ethernet button:

8/29/19 8:53:11 AM Gui.getWorkingDirectory(): E:\Downloads\ADTPro-2.0.3\ADTPro-2.0.3\disks\ 8/29/19 8:53:11 AM Gui.actionPerformed() exit. 8/29/19 8:53:13 AM Gui.actionPerformed() entry, responding to Ethernet; previous button is Disconnect 8/29/19 8:53:13 AM Gui.actionPerformed acting on the ethernet button. 8/29/19 8:53:13 AM Gui.startComms() entry. 8/29/19 8:53:13 AM Gui.startComms() didn't have an old thread to stop. 8/29/19 8:53:22 AM Gui.MenuAction.actionPerformed() responding to Quit 8/29/19 8:53:22 AM Gui.getWorkingDirectory(): E:\Downloads\ADTPro-2.0.3\ADTPro-2.0.3\disks\

david-schmidt commented 5 years ago

Looks like nothing exciting happened. Anything in the command prompt window?

amishrabbit commented 5 years ago

Nothing happened at all, which has been the case from the beginning. It isn't clear that the app actually is fully running.

I did an experiment and installed the RXTX and that seems to load and execute properly, but I haven't tested it as I don't have a serial cable to try to connect to the device.

david-schmidt commented 5 years ago

This isn't something I've run across before. rxtx can be problematic if you have a 32/64 bit mismatch between Java and OS, but Ethernet "just works."