Jump to content
IGNORED

#FujiNet - a WIP SIO Network Adapter for the Atari 8-bit


tschak909

Recommended Posts

Thankfully, it's not the SIO timing (you can see that PLATOTERM's output is perfect, due to the status calls cleanly tracking the interrupt transitions.). I've been successfully using divisor zero for disk traffic, for months, with no errors. The issue is that I need to change how I am coordinating how many bytes to receive over SIO and deriving when to signal to the CIO handler that an EOF has occurred. The method that I am currently employing, works at 19200 baud, but faster rates are much too fast (status calls are happening too fast against the input FIFO)... this will take some thought and experimentation.

 

-Thom

  • Like 3
Link to comment
Share on other sites

are you using both an end of record and an end of file marker?

since your saying everything is perfect but somehow your getting nulls in the directories and not seeing the end of files,

is the assumption the errors in the frog screen are because it's just overwriting data as it continues to stream in until it finally gives up or determines EOF has occurred?

Edited by _The Doctor__
Link to comment
Share on other sites

Currently EOF asserted to CIO if either:

 

* Connection is disconnected, or

* two status calls return zero bytes available.

 

For TNFS, the total number of bytes is used to determine when the disconnect flag is asserted. This is required because TNFS is over UDP, and is therefore connection-less. 

 

For protocols like FTP and HTTP, the disconnect flag is asserted via the opening and closing of the data socket (FTP has a separate data socket, whereas HTTP does its transaction and immediately disconnects.)

 

Errors in the frog screen will require further investigation, as I am not sure what actually happened there...that was literally the first time that happened.

 

-Thom

Link to comment
Share on other sites

17 minutes ago, Fierodoug5 said:

Ran All Tests

All Tests Passed with Expected Results

Homemade ESP32Wroom Fujinet using external usb power

Stock 800XL

 

Looks like Epson 80 print emulation is now working perfect, great job Jeffpiep

 

CCI06102020.jpg

Looks like you have a lot of tests coming up!  ?

  • Like 3
Link to comment
Share on other sites

#Atari8bit #FujiNet I have checked in the code for a FujiNet NOS here (N: device only, no D:): https://github.com/FujiNetWIFI/atariwifi/tree/master/n-handler/nos

And the documentation for how the CP should work, here: https://github.com/FujiNetWIFI/atariwifi/blob/master/n-handler/nos/README.md 

 

If anybody can help write the command processor for what happens AFTER DOS is typed, please let me know. I have attached a mock-up of the DOS CP.

nosdos.jpg

Link to comment
Share on other sites

I need to take a small break (two weeks or so) from active coding, as I have been going full steam for 6 months (with considerable amounts of caffeine and ephedrine), and it has taken its toll on my body.

 

N: also needs a drastic re-think in implementation (not interface), because there currently is no effective way to pre-process the data (needed for filesystem views with directories, and things like CR/LF translation), as I need to be able to present exactly how many bytes will be available to read when the SIO READ happens, this means shifting the actual reading into the STATUS call, and calling any pre-processing before returning the 4 status bytes.

 

I will be helping the other team members do bits and pieces, and help stitching everything together.

 

Meanwhile as of just a few seconds ago, @jamm has successfully booted the first version of the firmware with ZERO Arduino dependencies (it's built entirely on the vendor ESP-IDF framework), which will have profoundly positive long term consequences in terms of performance and code footprint.

 

-Thom

Edited by tschak909
  • Like 10
Link to comment
Share on other sites

37 minutes ago, _The Doctor__ said:

is the transport padding the zeros to make a full packet for transmission and then not stripping them at arrival?

No. The data coming in from fnTCP (which is basically a wrapper around bsd socket functions) is sent almost as is to the Atari. SIO transactions have to have the # of bytes to deal with in the SIO request beforehand (this is why I use aux1/2 in the command frame to specify # of bytes to read/write, repeating the dbyt value to SIOV), so basically any pre-processing that has to happen, has to happen before the status command value is returned to the Atari, which is before the actual read command. (which gets the # of bytes available in the RX buffer).

 

-Thom

Edited by tschak909
Link to comment
Share on other sites

Sorry.

 

 two things to note:

 

(1) There will be more. This is the first run to test production.

(2) Once the money is made back, we'll be releasing all the build source material for the hardware parts of the production unit, so that it will always be possible to build #FujiNets, even when we can no longer do so. (and so others in other regions can help fulfill demand)

 

-Thom

  • Like 3
Link to comment
Share on other sites

I was very lucky that I started a new project at work yesterday, and after a 10 hour day, my brain was too fried to think too much and just kept clicking around the net. I think I saw @mozzwald’s post within 2 - 3 minutes after he made it. I signed up immediately before I had time to second-guess myself and miss out.

  • Haha 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...