Jump to content


New Members
  • Content Count

  • Joined

  • Last visited

Everything posted by apc

  1. https://github.com/FujiNetWIFI/fujinet-pc - UART hot fixed
  2. @Pins, I believe you did all properly but I suspect the merge I did (last Tuesday) into repo introduced buggy behavior when serial port is used. Sorry for that. Let me fix it and I will send an update here about new code ready for build.
  3. At the moment FujiNet PC on Windows can be run via a) Linux binary in WSL or b) work in progress Windows native port. For b) the priority is to get it working on 64-bits first. The answer is: most likely not, not yet. If anyone would like to experiment and/or to contribute, use "mingw" branch from repo https://github.com/FujiNetWIFI/fujinet-pc.git Check https://github.com/FujiNetWIFI/fujinet-pc/blob/mingw/Windows.md for instructions. Jan
  4. Yes! Current netsio.atdevice works with 3.90 and 4.00-testNN (same custom device file). The things has changed slightly with Altirra 4.00 release. It stopped to work in 4.00 release due to small workaround for 3.90: @phaeron not sure, if I am doing something wrong ^^^ It looks like thread in 3.90 is created but not switched into, waiting for next switch. Thread.sleep() helped me to switch. But this is guarded now 🙂 Any idea for better solution? @a8isa1 For quick fix you can edit the netsio.atdevice file and comment out "Thread.sleep(400)" on lines 265 and 271: If I will not find a better way, I will prepare netsio.atdevice in two versions, for 3.90 and for 4.00. Jan
  5. Yes, FujiNet is correct. The code is prepared for both FujiNet-PC as well for the hardware FujiNet 🙂 The firmware with this code has not been released yet. Coming soon ...
  6. The windows port is most challenging one for me. Lack of programming experience in windows, many traps I enter. But I'm still learning and making progress slowly. 🙂 Jan
  7. Maybe you can connect other 2 PINs of your FTDI based adapter, COMMAND and PROCEED. Then you can use hi-speed SIO and you can play with FujiNet too 🙂
  8. SIO communication looks OK, no issue there. How did you get there? Was the CONFIG working for some time to allow you to select the WiFi+password? Could you mount some known ATR disk image as D1: via web interface and then press "Option" on Atari to try to boot into it. If booted after pressing Option key the issue could be with setting up the display at CONFIG startup... interesting, no others reported this, AFAIK. Anyone with A800/48K can check and report? Jan
  9. Happy emulating with 4.00-test39 🙂 CUSTOMDEV: Hi CUSTOMDEV: event CMD ON 58910483 CUSTOMDEV: thread CMD ON 58910484 CUSTOMDEV: event CMD OFF 58917924 CUSTOMDEV: thread CMD OFF 58917925 CUSTOMDEV: event CMD ON 58976893 CUSTOMDEV: thread CMD ON 58976894 CUSTOMDEV: event CMD OFF 58983871 CUSTOMDEV: thread CMD OFF 58983872
  10. Take care when making your TNFS server reachable from wild world. Ensure only UDP port 16384 is exposed. In general, follow security practices: - restrict TNFS to vm/container/jail/chroot/etc. - run it with dedicated user - limit the permissions on files/dirs to allow only read access - be prepared, bad ass will exploit it - do backups I am not security expert, I'm sure someone can add more rulz
  11. Time to move to 4.00 🙂 Thanks a lot for helping on this topic! Jan
  12. It looks like a bug in tnfs/tnfsd/datagram.c I can trigger crazy tnfsd output with netcat (or telnet) to TCP port 16384 (which is open by tnfsd): $ nc localhost 16384 # just hit ctrl+c to close the connection ^C $ And you will get: DEBUG: rx of tcpmsg: 0 bytes: � DEBUG: rx of tcpmsg: 0 bytes: � DEBUG: rx of tcpmsg: 0 bytes: � DEBUG: rx of tcpmsg: 0 bytes: � ... Currently, if you are running any network probes to the TCP port 16384 (network scanning or service monitoring) it will make tnfsd very unhappy.
  13. I am calling $sio.enable_raw(true) in cold_reset (only there). I believe, it is running in raw mode, the waits are working. The output corresponds to SIO activities. It is not like one shot and stop (by VM). Only $timestamp is not updated. Running this test... function void command_thread_handler() { Debug.log("Hi"); loop { $sio.wait_command(); Debug.log_int("thread CMD ON ", $timestamp); $sio.wait_command_off(); Debug.log_int("thread CMD OFF ", $timestamp); } } event "sio_command_changed": function { if ($sio.command_asserted()) { Debug.log_int("event CMD ON ", $timestamp); } else { Debug.log_int("event CMD OFF ", $timestamp); } }; ...is producing result like this. Only $timestamp in thread is not changing but waits in thread corresponds with command level changes captured by event handler. CUSTOMDEV: Hi CUSTOMDEV: event CMD ON 82819965 CUSTOMDEV: thread CMD ON 46135568 CUSTOMDEV: event CMD OFF 82828552 CUSTOMDEV: thread CMD OFF 46135568 CUSTOMDEV: event CMD ON 82870396 CUSTOMDEV: thread CMD ON 46135568 CUSTOMDEV: event CMD OFF 82877359 CUSTOMDEV: thread CMD OFF 46135568 ... Maybe it is expected behavior. From help: Ok, I see.
  14. Wait, in sample device rverter.atdevice in "network_interrupt" handler the send_raw_byte() is called. I am confused now. Is network_interrupt handler different from other handlers as the source of the event is not emulator (but device server)?
  15. $timestamp variable was not changing when used in thread, not sure what can be wrong: function void command_thread_handler() { loop { $sio.wait_command(); $network.post_message($11, 0); Debug.log_int("CMD ON ", $timestamp); $sio.wait_command_off(); $network.post_message($10, 0); Debug.log_int("CMD OFF ", $timestamp); } } OK. Oops, I have to fix my "network_interrupt" handler which is calling send_raw_byte() directly! (but it was working somehow). I assume to set a PIN with set_proceed() or set_command() should be fine from event handler.
  16. It will not help in this case, ... tnfs/tnfsd/datagram.c printf("DEBUG: rx of tcpmsg: %d bytes: %s\n", sz, buf); I am wondering are you connecting to or listening on TCP? NTFS runs usually over UDP. Edit: Hmm, tnfsd seems to be listening always on both, UDP and TCP. The question is what triggers TCP handler in your case (as there is 0 bytes available from your logs)? Strange select()?
  17. I am trying to debug and understand some timing issues. @phaeron I have a dilemma, better to use event handler, like "sio_command_changed" or separate thread with loop doing $sio.wait_command(); ... $sio.wait_command_off(); ... ? To be able to use $timestamp I switched from thread/loop to event handler... not sure is there any significant difference between above two methods. Event handler blocks the emulator execution, thread based handler does not? Jan
  18. Missing hardware buttons on fujinet-pc ... at least I added Restart button into web interface. 2021-08-23_20-26-12.mp4 If interested, pick the code from GitHub, build it and run it with: ./run-fujinet run-fujinet is simple wrapper script to start fujinet executable and to restart it if it previously exited with specific exit code. 🙂 Jan
  19. Command line option was added -u URL , to specify URL the web server should listen on. Updated code is available as usually on https://github.com/FujiNetWIFI/fujinet-pc After new build, you can start fujinet with -u option like this: # to serve web on all available interfaces/addresses, on port 8881 ./fujinet -u # to serve web interface only on specific interface/address, on port 8882 ./fujinet -u # to limit the web interface only for machine which is running fujinet ./fujinet -u # or ./fujinet -u http://localhost:8000 :-)
  20. @phaeron I started to play with this. Found your sampledevices and deviceservers (+ Altirra help) very helpful to make first steps. Thanks for it! I am dealing now with serial port speed change and how to detect it. Altirra always provides proper output bytes to custom device - provided output does not depend on speed. On FujiNet side the toggle between standard speed and high speed is based on detecting checksum errors in received frames - but this does not happen with custom device. Do you have some idea how to detect the serial output speed change in custom device? Then it would be possible to notify the receiver to toggle its speed too. Jan
  21. quick & dirty attempt: It's proof of concept, trying to make SIO over UDP exposed by Altirra custom device and FujiNet connected to this "NetSIO bus". 🙂 Jan
  22. I guess you are running some older version. HTTP protocol handler was added later in April. Try it with latest code https://github.com/FujiNetWIFI/fujinet-pc As a bonus APOD - http://www.newbreedsoftware.com/fujinet-apod/ should work too 🙂 Jan
  • Create New...