Temat: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

On behalf of Thom Cherryhomes I would like to start here a new thread.
Thomas appreciates polish Atari community very much and he would like to share information about the open source #Fujinet project, he is maintaining.
My assumption is that Thomas will post the news in English (and perhaps Google translations to polish).
In the upcoming Atari Fan #7 (http://atarifan.pl/) there will be an article about #Fujinet.
Who knows - maybe somebody will get interested and join the project development team?

W imieniu Thom-a Cherryhomes-a chciałbym rozpocząć nowy wątek.
Thomas docenia polską scenę Atari i chciałby podzielić się informacjami o otwartym projekcie #Fujinet, którym się opiekuje.
Zakładam, że Thomas będzie wklejał tu nowinki w języku angielskim (i być może tłumaczenie Googla na język polski).
W nadchodzącym numerze Atari Fan #7 (http://atarifan.pl/) pojawi się artykuł o #Fujinet.
Kto wie - może kogoś z Was to zainteresuje i dołączy do zespołu programistów?

Ostatnio edytowany przez Montezuma (2020-03-12 20:08:31)

ATARI 65XE + SIO2BT
http://atari.pl/hsc/ad.php?i=22.3

2

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

Good to hear it. I'm first followers! :-)  Tom. Did you consider to make #Fujinet and sell it as full developed device? I'll be very happy to use it... Thanks @Montezuma for announcement.

Ostatnio edytowany przez pancio.net (2020-03-12 20:49:55)

https://systemembedded.eu/
"...Mówił mi to jeden facet, który znał się na atari i takich różnych rzeczach. On mówił, że procesor 6502 to był początkowo procesor wojskowy. On ma tajne funkcje, nie wiadomo w ogóle, co one mogą robić..."
ABBUC Member #319. Preferowana forma kontaktu: email

3

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

Oto oficjalne ogłoszenie:

#Kod FujiNet jest tutaj w GitHub:

https://github.com/FujiNetWIFI/atariwifi

Strona Patreon tutaj:

https://www.patreon.com/user?u=8255002 (środki tutaj są wykorzystywane na pokrycie kosztów operacyjnych, takich jak koszty wysyłki tam i z powrotem).

Co to jest #FujiNet?

#FujiNet (dawniej znany pod #AtariWiFi) to karta sieciowa, która podłącza się do portu SIO (Peripheral) 8-bitowego systemu Atari. Obecnie (od Rev3) składa się z urządzenia NodeMCU 1.0 podłączonego do płytki interfejsu, które elektrycznie dołącza NodeMCU do magistrali SIO i zapewnia potrzebne złącza SIO.

Co on zapewnia?

#FujiNet ma zapewnić następującą funkcjonalność:

* "D:" Emulacja, do wirtualnego montażu, odczytu i zapisu obrazów dysków ATR na protokole zapożyczonym od społeczności Spectranet o nazwie TNFS.
* "R:" Emulacja, aby zapewnić wirtualny modem Wi-Fi do użytku z istniejącymi programami komunikacyjnymi takimi jak Ice-T, BobTerm, AMODEM i PLATOTERM.
* "P:" Emulacja, emulująca typowe typy drukarek, generująca dane wyjściowe PDF w locie do nowoczesnych drukarek.
* "N:" Nowe urządzenie do nawiązywania komunikacji TCP i UDP z innymi hostami, a także do sterowania adapterem (ustawianie konfiguracji, montowanie obrazów, itp.).
* Większa funkcjonalność, która będzie dostępna dzięki przyszłym aktualizacjom oprogramowania sprzętowego w trybie over-the-air (OTA), takim jak drukowanie IPP.

Kto może z niej korzystać?

Miejmy nadzieję, że wszyscy! Emulacja "D:" umożliwia natychmiastowe użycie nieużywanej obudowy do montowania dysków w sieci, niezależnie od tego, jaka sieć istnieje, np. lokalna, lub hosta internetowego. Kontroler "R:" pozwoli każdemu, kto chce zadzwonić na internetowe BBSy i usługi takie jak IRATA.ONLINE, natychmiast korzystać z urządzenia, a urządzenie "N:" pozwoli na napisanie zupełnie nowych programów, które mogą natywnie obsługiwać ruch sieciowy!

Kiedy będzie ono dostępne?

#FujiNet (od marca 2020) rozwija się szybko. Przeszliśmy od napisania wstępnych przypadków testowych w Arduino, do napisania finalnego firmware'u produkcyjnego w PLATFORM.IO, łącząc wszystkie poszczególne testy razem pod jednym firmware'em. Szacujemy, że mniej więcej reszta tego roku zostanie przeznaczona na debugowanie i udoskonalanie opisanego powyżej zestawu funkcji.

Ile to będzie kosztować?

Zbyt wcześnie, aby powiedzieć, ale biorąc pod uwagę, że jest on oparty na sprzęcie NodeMCU, a także biorąc pod uwagę, że płyta interfejsu jest w całości wypełniona pasywnymi komponentami, my (ci z nas, którzy pracują po stronie sprzętowej) oczekujemy, że koszt będzie tani, porównywalny do SDrive-MAX.

Gdzie znajduje się dokumentacja?

Na Githubie jest tworzona Wiki: https://github.com/FujiNetWIFI/atariwifi/wiki.

Czy są pokazy wideo?

A Tonne. Dosłownie zrobić Youtube wyszukiwania #FujiNet: https://www.youtube.com/results?search_query=%23fujinet&page=&utm_source=opensearch
Ostatni pokaz kodu łączonego: https://www.youtube.com/watch?v=9YVvK1DUmUE

Jak są udostępniane obrazy z dysku dla "D:" Emulacja?

Obrazy dyskowe są współdzielone za pomocą protokołu współdzielenia plików zwanego TNFS. Został on opracowany przez Dylana Smitha, człowieka, który opracował interfejs Spectranet dla ZX Spectrum. Zrozumiano, że protokoły takie jak NFS i SMB są o wiele za ciężkie do zaimplementowania na 8-bitowych mikrokomputerach, protokoły takie jak FTP i HTTP mają o wiele za dużo na głowie, a protokoły takie jak TFTP i BOOTP są zbyt proste. Tak więc opracowano ładne medium, które mapuje podstawowy system plików w prosty, łatwy do zaimplementowania protokół, który może być używany przez UDP lub TCP, który używa jednego połączenia.

Gdzie mogę dostać kopię tnfsd?

Serwer TNFSD można pobrać tutaj: http://spectrum.alioth.net/doc/index.php/TNFS_server , jest on dostępny dla systemów Windows, Mac i Linux. Dostępny jest również kod źródłowy.

Czy informacja o protokole TNFS jest dostępna?

Absolutnie, jest on używany do implementacji firmware'u Arduino: http://spectrum.alioth.net/svn/filedeta … otocol.txt.

Jakie informacje specyficzne dla Atari są wykorzystywane do wdrażania oprogramowania sprzętowego?

@phaeron's excellent Altirra Hardware Reference Manual is being used for the SIO side of things: http://www.virtualdub.org/downloads/Altirra Hardware Reference Manual.pdf

Kto nad tym pracuje?

* @tschak909 pracujący nad Firmware
* @mozzwald pracujący nad Hardware i Firmware, pierwszy przeszedł obudowę.
* @jeffpiep pracujący nad Hardware i Firmware
* @Mr Robot pracujący nad sprzętem i obudową
* @Bill Lange Helping test.
* @48kRAM help test. === @48kRAM help test.
* @a8isa1 helping test with his own board/interface
* @ivop help test with his own board/interface
* Joe Decuir będzie miał wkrótce tablicę do testów.

Jak sprzęt jest wdrażany?

Sprzęt przeszedł kilka rewizji. Obecna wersja wykorzystuje mikrokontroler ESP32-WROOM, zamontowany na płytce, który zapewnia również pasywne układy SIO, gniazdo kart SD oraz układ USB, który może być użyty do zasilania urządzenia lub do programowania nowego firmware. #FujiNet może być zasilany albo z magistrali SIO, albo przez USB.

I am the systems guy behind IRATA.ONLINE. http://irata.online/

4

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

#FujiNet What do we have here? @jeffpiep has been hard at work implementing #Atari 1020 plotter emulation! This is awesome! smile

#FujiNet Co my tu mamy? @jeffpiep ciężko pracuje nad wdrożeniem #Atari 1020 ploter emulacji! To jest niesamowite! smile

https://cdn.discordapp.com/attachments/655893902380761091/688177341100195860/unknown.png

I am the systems guy behind IRATA.ONLINE. http://irata.online/

5

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

pancio.net napisał/a:

Good to hear it. I'm first followers! :-)  Tom. Did you consider to make #Fujinet and sell it as full developed device? I'll be very happy to use it... Thanks @Montezuma for announcement.

Yes, while we will sell the device, I want it to become a standard, so we have and will continue to release all information as to how to build one. Schematics and firmware are public.

-Thom

I am the systems guy behind IRATA.ONLINE. http://irata.online/

6

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

Status na lata 2020-03-14:

* @jeffpiep jest ciężko pracować wdrażając emulację ploterową Atari 1020. Emulacja ta jest wyjątkowa w tym sensie, że wyjście nie jest plikiem PDF, ale SVG.

* Wyskakuje jeszcze kilka testerów płyt ESP32 i pojawiają się raporty o błędach.

* Implementacja systemu plików TNFS przypadkowo odsyła sukcesy, gdy wszystkie próby zostały wyczerpane. Pochodzi to z niespójnego błędnego dopasowania wartości zwrotnych, które nastąpiło podczas przenoszenia kodu do standardowego API Arduino FS. Whoops.

* Dodatkowo, czas retry'u TNFS musi być dalej dostrajany, ponieważ obecnie jest więcej prób retry'u niż czasu w SIO timeout przydzielonego przez system operacyjny dla większości operacji dyskowych (5 prób, 5000ms, 25 sekund, w porównaniu do 15 sekund dla systemu operacyjnego), Musimy zmniejszyć czas pomiędzy timeoutami, i zrobić więcej prób. W tym celu przesunąłem wartości timeoutów na #definiowanie stałych w lib/sio/sio.h

* N: handler jest debugowany, dużo pracy trzeba tam wykonać. OPEN działa teraz, po całkowitym przepisaniu tokenizera specyfikacji urządzenia. Inne operacje obecnie zawodzą z powodu rozbijania stosu. Muszę ponownie przemyśleć sposób przekazywania buforów pomiędzy funkcjami protokołu. Jeśli ktoś jest zainteresowany, proszę sprawdzić kod i zanurzyć się w sio/sieci* Napisałem teorię operacji na wiki, jeśli ktoś jest zainteresowany.

To jest gówno projektu, zrobiliśmy wielki szum w demach "ain't it cool?!", a teraz zakasujemy rękawy i pracujemy nad połączeniem długu technicznego i testowania funkcjonalności. Nie wspominając już o testach jednostkowych smile

I am the systems guy behind IRATA.ONLINE. http://irata.online/

7

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

I'm following Tom's work on facebook and I was always saying that true network connection is what we really missing in small Atari.
Thanks to Tom's work we will finally have it smile
As big fan of Atari computer and *nix systems I will love to see *nix on small Atari with Fujinet network card attached smile

8

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

#Atari8bit #FujiNet jedną z nowo dodanych funkcji do #platformio wersji oprogramowania firmware jest "Disk Rotate", który obraca obrazy dysków do następnego sąsiedniego gniazda napędu w prawo.

https://www.youtube.com/watch?v=Bs3mwpqh718

I am the systems guy behind IRATA.ONLINE. http://irata.online/

9

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

Ćwiczę, każdego dnia korzystając z programu #Atari Personal Fitness. Wcześniej zachowywałem swoją kopię zarówno programu jak i dysk danych, którego używałem codziennie na dwóch oddzielnych dyskietkach, ponieważ Personal Fitness obsługiwał tylko jeden dysk.

Dzięki #FujiNet mogę umieścić program i dyski danych w pierwszych dwóch slotach na dyskach i obracać je w razie potrzeby, aby uruchomić program w całości z mojego lokalnego serwera plików lub z lokalnego magazynu plików #FujiNet.

https://www.youtube.com/watch?v=0KV2aayuSFs

I am the systems guy behind IRATA.ONLINE. http://irata.online/

10

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

Jeśli ktoś chce pomóc w dostrojeniu wydajności pamięci podręcznej read cache na #FujiNet, spójrz na ten problem:

https://github.com/FujiNetWIFI/atariwifi/issues/162

Wierzę, że odczytywany cache może być bardziej inteligentnie wdrażany jako bufor pierścieniowy, który może być konsekwentnie dołączany w miarę wypychania sektorów. Szczegóły w bilecie, w tym link do kodu źródłowego aktualnej implementacji.

I am the systems guy behind IRATA.ONLINE. http://irata.online/

11

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

@tschak909 Could you please write what the constraints are?

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
jmp $e477

12

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

What constraints would you like to know?
-Thom

I am the systems guy behind IRATA.ONLINE. http://irata.online/

13

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

#FujiNet używa TNFS, który głównie komunikuje się poprzez UDP. Oznacza to, że oprogramowanie firmware musi być w stanie obsługiwać sieci w mniej niż idealnych warunkach, które mogą powodować timeouty, porzucone pakiety, a nawet duplikaty pakietów.

Ostatni tydzień spędziłem na refaktoringu kodu TNFS, aby go uprościć i zapewnić jedną ścieżkę kodu do wysyłania pakietów, odbierania odpowiedzi i obsługi timeoutów. Pozwoliło mi to lepiej zobaczyć co się dzieje i zmienić logikę retry w ciągu ostatniego półtora dnia, aby uczynić ją bardziej solidną, używając sieci testowej hojnie dostarczonej przez użytkownika, który zbudował swój własny #FujiNet!

Wkrótce pojawi się więcej raportów o stanie!

I am the systems guy behind IRATA.ONLINE. http://irata.online/

14

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

For anyone who wants to contribute, another easy enhancement is needed to improve TNFS network performance when the cache is off (e.g. during development):

An enhancement ticket:

https://github.com/FujiNetWIFI/atariwifi/issues/165

Given a sector number coming into sio_read():
https://github.com/FujiNetWIFI/atariwif … sk.cpp#L44

Determine if the sector to be read is the very next sector. If yes, DO NOT SEEK, otherwise perform a seek.

Sector size needs to be taken into account, as well (first three sectors 128 bytes, we do not currently account for 256 byte or 512 byte sectors).

For TNFS, this will remove one round trip communication, and speed up network access.

I am the systems guy behind IRATA.ONLINE. http://irata.online/

15

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

2020-03-26 Sprawozdanie o stanie prac:

do programistów swędzących o projekt lub sposób na pomoc: Naprawdę przydałaby mi się pomoc przy próbie zaimplementowania wsparcia dla ATX-a, ponieważ jestem zajęty próbą podparcia innych części kodu.

Ostatni tydzień spędziłem pracując nad kodem TNFS:

* Usuń kod recachingowy, bo to był buggy, w przygotowaniu do refactora.
* Poprawić logikę refactora, żeby zduplikowane pakiety nie powodowały problemów, są ignorowane.
* Refaktor poprawnie obsługuje timeouty i zawiedzie tylko wtedy, gdy wszystkie próby ponownej analizy zakończą się niepowodzeniem.
* Zaimplementować komendę SIO dla polecenia Napisz z weryfikacją (już nie tylko alias dla P).
* Implementuj optymalizację wyszukiwania, poszukuj tylko wtedy, gdy jest to konieczne, zmniejszając w ten sposób znacznie liczbę pakietów uruchomień UDP w trybie round trip dla odczytów liniowych.

Rick Lopez pracował nad kodem R:, rozbierając go na części, aby go zrozumieć, i wprowadzając ulepszenia. Jego obecny zestaw eksperymentów wykorzystuje Altirra R: handler i osadza go w firmware #FujiNet, który jest przekazywany przez sondę typu 1. (Mamy pozwolenie od @phaeron)
Usprawnienia w zakresie buforowania są również starane zrekompensować charakterystycznie małe bufory RX określone przez Atari w trybie równoległym przez większość programów MODEM, starając się uzyskać większość programów modemowych, aby móc pracować z większą prędkością.
Pomysł, który tutaj zaproponowałem, to modyfikacja R: handler, aby wyemitować dodatkową komendę przed komendą STREAM, która zwraca rozmiar żądanej długości bufora IOCB. Może to być użyte jako dodatkowy bufor, wypełniany tylko po opróżnieniu, aby zdławić połączenie nawet przy większych szybkościach transmisji, gdy bufor jest o wiele za mały, aby obsłużyć większe szybkości transmisji.

Przechodzimy dalej przez błoto. smile

I am the systems guy behind IRATA.ONLINE. http://irata.online/

16

Odp: #FujiNet - a WIP SIO Network Adapter (karta sieciowa)

#FujiNet @jeffpiep is checking in the last of the #Atari 822 printing emulation, which provides graphics support! The secret? Using SIO command 'P' instead of the usual 'W', which causes the printer to accept 1 bit per pixel monochrome bitmap data in the same format as a GRAPHICS 8 screen. This was previously undocumented.

---

#FujiNet @jeffpiep sprawdza w ostatniej emulacji druku #Atari 822, która zapewnia wsparcie graficzne! Tajemnica? Użycie polecenia SIO 'P' zamiast zwykłego 'W', które powoduje, że drukarka akceptuje 1 bit na piksel monochromatycznych danych bitmapy w tym samym formacie co ekran GRAPHICS 8. To było wcześniej nieudokumentowane.

https://i.imgur.com/oa9P4Y2.png

I am the systems guy behind IRATA.ONLINE. http://irata.online/