Jump to content
tschak909

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

Recommended Posts

Yeah, i'm amazed really, most everything seems to work, and those that don't seem to not work consistently across Altirra, and SDrive-Max, so..maybe either bad dumps or....something we're all missing? more investigation needed. 

 

e.g. 

 

Rescue on Fractalus v4.1 (Epyx)

and Dimension X, which is a funny one, because the protection fails and it immediately tries to format the disk. :)

  • Like 1

Share this post


Link to post
Share on other sites

#Atari8bit #FujiNet Here, we use #FujiNet to load a copy of Shamus in ATX format, which preserves its copy protection. This version of the game contains the bug in Steve Hales' music player which causes the game to crash, requiring the Translator software on my XL.


 

  • Like 4

Share this post


Link to post
Share on other sites
On 8/30/2020 at 11:52 PM, tschak909 said:

yup, that's where it is now. I am working on a branch that has peeled away the relocator for now, so I can debug.

-Thom

 

Ok, well there's no point in trying to optimize the driver until the code is stable.

Share this post


Link to post
Share on other sites
6 minutes ago, Alfred said:

 

Ok, well there's no point in trying to optimize the driver until the code is stable.

Yup, I'll keep you posted, it's literally my current primary task to get N: into shape. :) Right now am wrestling with getting EOF behavior correct.

 

-Thom

Share this post


Link to post
Share on other sites

#FujiNet #Atari8bit with @omf's latest commit fixing sector length for missing/partial sectors, all of the tests on DJayBee's ATX test suite now pass! This brings compatibility to 99%, leaving only protection bugs. Let this really sink in, an #Atari8bit can now load perfectly preserved copy protected software, OVER THE INTERNET.

 

  • Like 7

Share this post


Link to post
Share on other sites

Fantastic! And congrats - it's only been like a week since the first builds with any ATX support were made available to non-core team folks. That's amazing. :)

 

Now when you guys plug in some basic .CAS (no audio track) support, we can retire our SDrive-MAX units or relegate them to backup duty. 

  • Like 1

Share this post


Link to post
Share on other sites
9 hours ago, mozzwald said:

Updated firmware again with the latest ATX fixes

I meant to post earlier but forgot - with this new firmware, the ATX of Rescue on Fractalus from the A8 Software Preservation Initiative works. :) It failed with the prior version. 

  • Like 1

Share this post


Link to post
Share on other sites
46 minutes ago, DrVenkman said:

I meant to post earlier but forgot - with this new firmware, the ATX of Rescue on Fractalus from the A8 Software Preservation Initiative works. :) It failed with the prior version. 

Ummm... that's news to me. It's one of the ones on the list to look into in more detail.  Can you provide the actual ATX file or its checksum?  Are you still testing on your Incognito 800, or something else?

 

Share this post


Link to post
Share on other sites

Wait, WHAT? Testing again! :)

 

yeah, the Epyx release breaks here. I'm assuming you mean the Activision (UK PAL) release? 

 

The Epyx version has a bug in its loader which relies on the disk drive sending an ACK at just the right time.

 

-Thom

 

3 hours ago, DrVenkman said:

I meant to post earlier but forgot - with this new firmware, the ATX of Rescue on Fractalus from the A8 Software Preservation Initiative works. :) It failed with the prior version. 

 

Edited by tschak909

Share this post


Link to post
Share on other sites

Status:

 

* @jeffpiep is working on the CAS support. :)

* @mozzwald is satisfied with v1.1 testing, and is now tracking down quiet audio noise artifacts that can occur.

* @jamm is taking care of real life stuff at the moment, but will continue tweaking ATX support when he gets the chance in the next few days.

* @bocianu is working on a new turn-based strategy game in MAD Pascal

* and me? 

 

Well, that's a bit more complicated. We have most of the functionality we want in place, the last big chunk is N:

 

N: is a behemoth of a device, it is a universal network to CIO adapter, creating a character (stream) oriented interface to the internet.

 

As such, while I have been able to prove it can work, and people have successfully used it, it has bugs. holy jeebus truck nuts, does it have bugs.

 

I need to solve a few fundamental issues:

 

* Error handling that makes sense

* Handling EOF issues, which differ from protocol to protocol (e.g. TCP should EOF when connection drops, file based protocols should EOF when we reach the end of the file, and UDP has no such concept)

* Make sure interrupts fire when they need to, and only when they need to, to avoid hammering the SIO bus unnecessarily

 

These are not easy issues to solve, as what I am doing is a variation of the turnstile problem, trying to synchronize the input and output of two different systems running at different rates.

 

This is one of those boogerbears of problems that I would kill to have help on, but there just aren't that many people who have experience writing CIO drivers.

 

-Thom

  • Like 4

Share this post


Link to post
Share on other sites
1 hour ago, tschak909 said:

Well, that's a bit more complicated. We have most of the functionality we want in place, the last big chunk is N:

 

N: is a behemoth of a device, it is a universal network to CIO adapter, creating a character (stream) oriented interface to the internet.

 

As such, while I have been able to prove it can work, and people have successfully used it, it has bugs. holy jeebus truck nuts, does it have bugs.

Makes you appreciate the work that went into SIO and the whole IOCB implementation. Joe and the gang were truly ahead of their time.

 

Good luck on your progress, and I'm sure based on what I've seen you all accomplish in a relatively few months that you'll also get the N: device behind you.

 

  • Like 2

Share this post


Link to post
Share on other sites

#Atari8bit #FujiNet - @jeffpiep has successfully ported the cassette code from the SDrive, and gotten it to boot a game! Now we need to hook it into the device slot machinery to make it usable.


 

  • Like 7

Share this post


Link to post
Share on other sites

#Atari8bit Shown here is @Savetz 's Connect Four game, written in Turbo BASIC XL, for the #Fujinet. We have two Atari computers successfully playing a game over the network!

 

  • Like 8

Share this post


Link to post
Share on other sites

#FujiNet with the latest fix from @jamm, Atari Planetarium (a copy protected 1050 ED disk) now works. It relied on a drive error returning the last known good sector read.

image.thumb.png.3177b6fe6ffd92cbc3d802e0472a885a.png 

 

  • Like 6

Share this post


Link to post
Share on other sites

A game thrown together in a roughly half a day, yes, it's buggy, but I did this to show a simple design to prove the power and flexibility of the N: device. Perhaps @Savetz can improve it. :)

Program is on atari-apps in n-handler, fujicycles.atr.

  • Like 4

Share this post


Link to post
Share on other sites

Working on the N: filesystem protocols:

 

The directory code has been completely rewritten to be much more reliable and consistent in implementation. 

 

Opening a directory on N: is the same as on D:, with the addition of the protocol, e.g. in BASIC:

 

OPEN #1,6,0,"N:TNFS://HOMESOFT.IRATA.ONLINE/C/*":REM OR ANY WILDCARD, IF NONE SPECIFIED, * is ASSUMED.

or in e.g. OS/A+, DOS XL, or SpartaDOS:

D1:NCD N:TNFS://HOMESOFT.IRATA.ONLINE/C/

D1:DIR N:

If the AUX2 value is 0, then filenames in DOS 2 directory format (8.3 + sector count) is returned for each entry.

 

  FILE1    DOC 001
  FILE2    DOC 001
  FILE3    DOC 003
443 FREE SECTORS

Directories have the file extension DIR.

 

If AUX2 value is 128, then long filenames are shown. This is the same AUX2 value used by SpartaDOS, so a DIR command in SpartaDOS will show the long directory by default, while DIRS shows the short form:

C-64 Adventure.xex               15K
Calamanis.xex                    24K
California Gold.xex              26K
California Run.xex               19K
Callisto.xex                     22K
...
999+FREE SECTORS

D1:

Any filenames longer than 36 characters, are shown on multiple lines.

 

To make file translation happen, the filename is truncated to 8.3 format. Any 3 character extension after the dot is retained, and the filename is truncated, with the last two characters of the filename turned into an 8-bit wrap-around checksum value derived by the file name, e.g. given:

California Gold.xex                  26K

This is translated (crunched) into:

  CALIFO83XEX 107

Either the long filename or the crunched filename can be passed to CIO, #FujiNet will try to resolve crunched filenames to their original names internally, so either the following will work:

XIO 44,#1,0,0,"N:TNFS://HOMESOFT.IRATA.ONLINE/C/":REM SET PREFIX, in DOS use NCD

OPEN #1,4,0,"N:California Gold.xex":CLOSE #1:REM THE LONG FORM

OPEN #1,4,0,"N:CALIFO83.XEX":CLOSE #1:REM THE SHORT FORM

or in the DUP, the short form makes the COPY command happy...

D1:NCD N:TNFS://HOMESOFT.IRATA.ONLINE/C/

D1:COPY CALIFO83XEX D2:CALIFO.XEX

You can of course put the long filename as part of the NCD, which works too:

D1:NCD N:TNFS://HOMESOFT.IRATA.ONLINE/C/California Gold.xex

D1:COPY N: D2:CALIFO.COM

D1:REM SAME THING, TWO DIFFERENT WAYS.

A wildcard will return the first matching file.

READY
LOAD"N:GAME*"

For bulk copies, NCOPY will need to be used, as wild-card copying is literally a hack in every single DUP on this planet.

 

With the ability of handling not only crunched filenames, but also the ability to set a specific filename to N:, it becomes possible to use N: in as many places as possible, even where it is assumed that any device other than "D:" can't support filenames (looking at you, DOS 3 Copy/Append Utility...)

 

Even though I am and will continue to zero in on as perfect integration with the existing DOSes as possible via CIO, does anyone really care? I really am curious if anyone will actually benefit from the insane amount of work I am putting in to make this all appear to just work. ;)

 

A video showing short filename usage:

 

  • Like 6

Share this post


Link to post
Share on other sites

#atari8bit #FujiNet lots of work-arounds needed for N: device. SpartaDOS only allows for a max record length of 64 characters when listing directories, requiring me to add line breaks to prevent ERROR 137 when listing directories. urgh.

WIN_20200908_13_18_47_Pro.thumb.jpg.79fd4c117617876dafda33719375c61d.jpg

 

but hey, copying of crunched filenames works as expected:

WIN_20200908_13_51_04_Pro.thumb.jpg.00125edddd0fe81d36513944c5b9fba7.jpg

Edited by tschak909

Share this post


Link to post
Share on other sites

Under MyDOS, if you copy NDEV.COM to AUTORUN.SYS and then 'N' MEM.SAV from AUTORUN.SYS, you can not only use the N: device from your language carts, but you can also use it from DUP, as well! With the crunched filename support in place, copying files becomes really easy.

 

Binary load isn't in yet (XIO command 39 must be implemented.), but once it is, you'll be able to binary load from MyDOS DUP, as well.

 

  • Like 1

Share this post


Link to post
Share on other sites

Hello Thom

 

If you're still using AUTORUN.SYS, you are using an older version of MyDOS.  The newer ones use the *.ARx system that you might know from IIRC smartDOS.

 

*.ARx means you don't have to append anything.  Just call the first file you want MyDOS to autorun *.AR0, the next *.AR1, etc.  Don't skip a number!

 

Sincerely

 

Mathy

Share this post


Link to post
Share on other sites
5 minutes ago, Mathy said:

Hello Thom

 

If you're still using AUTORUN.SYS, you are using an older version of MyDOS.  The newer ones use the *.ARx system that you might know from IIRC smartDOS.

 

*.ARx means you don't have to append anything.  Just call the first file you want MyDOS to autorun *.AR0, the next *.AR1, etc.  Don't skip a number!

 

Sincerely

 

Mathy

Yes, you're right, I realized this after I typed this out.. fingers outrunning brain.

Honestly, I'm just glad that MyDOS doesn't clobber over my handler (yet. I have to re-apply the relocator)

-Thom

  • Like 1

Share this post


Link to post
Share on other sites

 

4 hours ago, Mathy said:

Hello Thom

 

Would it be possible to control modern Home Automation devices via FujiNet?

 

Sincerely

 

Mathy   (who's just being curious after reading the thread: "Atari 800 Home Automation")

@Mathy is there a protocol? is it published? if so, yes., FujiNet can not only deal with HTTP and HTTPS, it can deal with raw TCP and UDP sockets.

Share this post


Link to post
Share on other sites

#Atari8bit #FujiNet has a built in XML parser, and is being used here to parse the WEBDAV response from a local web server to provide a usable directory listing!

 

(and yes, it works over HTTPS too.)

 

WIN_20200908_23_09_07_Pro.thumb.jpg.cdf890e8a35742ba7de1ccda91200c73.jpg

Share this post


Link to post
Share on other sites

Hello Thom

 

3 hours ago, tschak909 said:

 

@Mathy is there a protocol? is it published? if so, yes., FujiNet can not only deal with HTTP and HTTPS, it can deal with raw TCP and UDP sockets.

 

"Probably", "I don't know" and "The idea popped into my head when I read the thread I mentioned".

 

Sincerely

 

Mathy

 

 

Share this post


Link to post
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.

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...