atarionline.pl #FujiNet - karta sieciowa SIO dla Atari 8-Bit. - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

  1.  
    #Kod FujiNet jest tutaj w GitHubie:

    ->link<-

    Strona Patreon tutaj:

    ->link<- (ś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 montażu dysków w sieci, niezależnie od tego, jaka to sieć, np. lokalna, czy host internetowy. 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: ->link<-

    Czy są pokazy wideo?

    A Tonne. Dosłownie zrobić Youtube wyszukiwania #FujiNet: ->link<-
    Ostatni pokaz kodu łączonego:


    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: ->link<- , 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: ->link<-

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

    Czy ten projekt jest publiczny?

    Tak. Całkowicie tak. Sprzęt, oprogramowanie, firmware itp. są opracowywane w sposób jawny, i podczas gdy my sami będziemy sprzedawać urządzenia, zachęcamy każdego do wzięcia schematów i zbudowania własnego sprzętu, dla siebie lub dla innych, jeśli jest taka chęć.
    • 2:
       
      CommentAuthorpirx
    • CommentTime12 Mar 2020
     
    jeśli to google translate, to jestem pod coraz większym wrażeniem. parę lat temu ledwie się dawało coś zrozumieć, teraz wygląda to nieźle!
  2.  
    Deepl. But please, let's not derail the topic. :)
    -Thom
    • 4: CommentAuthormono
    • CommentTime12 Mar 2020
     
    Fantastyczna rzecz. Chętnie zanabędę interfejs i oprogramowanie.
    • 5:
       
      CommentAuthorKaz
    • CommentTime12 Mar 2020
     
    Super sprawa! Dzięki za szczegółowe info. Też chętnie zakupię.
    • 6: CommentAuthorpin
    • CommentTime13 Mar 2020
     
    .. no i wreszcie hardware z sensownym oprogramowaniem a nie jak jakieś wifiprime, czy coś tam takiego ;)
  3.  
    Ktoś ma pytania? Chętnie na nie odpowiem.
    • 8: CommentAuthorpin
    • CommentTime13 Mar 2020 zmieniony
     
    Bardzo przydatny byłby klient FTP, lub FTP montowany pod urządzenie Dx:. Daje to możliwość dość prostego przenoszenia plików z sieci internet wprost na HDD (IdePlus, KMK j.z., SIDE itd.). Czy rozwój oprogramowania w tą stronę jest przewidywany?
  4.  
    Urządzenie N: będzie ostatecznie służyło temu celowi. Filozofią jest odciążenie ESP w jak największym stopniu i zapewnienie prostego, znakowego interfejsu we/wy do Atari, który SIO i CIO mogą wykorzystać. Ostatecznie oznacza to, że nawet SSH i HTTPS mogą być obsługiwane. Pomyślcie o tym! :)

    Teoria działania jest opisana tutaj:
    ->link<-
  5.  
    Tymczasem urządzenie D: pozwoli na montowanie obrazów dysków z serwerów TNFS.
    • 11: CommentAuthorpin
    • CommentTime13 Mar 2020
     
    Z jaką maksymalną prędkością można przesyłać dane?
    • 12: CommentAuthorpin
    • CommentTime13 Mar 2020
     
    Montowanie *.ATR z serwera TNFS? Hmmm.. zaczekam na FTP jednak :)
  6.  
    Praktycznie wszystkie moje filmy to pokazują, np:


    Prędkość danych jest całkowicie związana z samym SIO, np. szybkie procedury SIO Mathy'ego współpracują z #FujiNet, aby uzyskać dostęp do zamontowanych Dx: napędów z TNFS z prędkością do 127Kbps.

    Urządzenie N: może pracować również z tą prędkością, jest to raczej funkcja łącząca szybkie procedury SIO z urządzeniami N: (0x70 do 0x78).

    Obsługa FTP może być dodana do urządzenia N:, ale znów, jak już wspomniałem, są o wiele lepsze opcje. (Pokazałem nawet N: używając HTTP).

    -Thom .
  7.  
    An example of HTTP over N:


    Another example, binary loading:


    Using the N: device to do TCP communication:
    • 15: CommentAuthorZuluGula
    • CommentTime13 Mar 2020
     
    Thomas, do you have any "quick start guide" similar to SDrive-MAX one at ->link<- that could help beginner to build hardware and try software?
    What is the difference between NodeMCU and NodeMCU32? Which is better supported in the project? Which module to buy? What we need and how to program it? Is there any simple SIO interface that can be build on a protoboard. Do we need a SD card and for what? What we need to use #Fujinet hardware? Do we need a server at home or we can connect to "something" over the Internet?
    The thread on AtariAge is pretty lengthy and technical and might be difficult to catch up.
  8.  
    We have shifted the development of firmware to ESP32 (aka NodeMCU32), away from the 8266 hardware, mostly because we need the additional I/O and RAM.

    The current schematic can be seen here:


    There really isn't much in the way of hardware, it's the ESP, some passive components to hook it to the bus, and an SD Card slot.

    There are currently two TNFS servers that are on-line for public use for #FujiNet users:

    * Fujinet.online
    * tnfs.atari8bit.net

    And the tnfsd software can be gotten here:
    ->link<-

    The source code for tnfsd is part of the Spectranet project:
    ->link<-

    And the protocol information for TNFS can be found here:
    ->link<-

    Once built, the interface can be programmed over USB using PLATFORM.IO, The board bring-up can be found here: ->link<-
    • 17: CommentAuthorZuluGula
    • CommentTime13 Mar 2020
     
    Does it matter which version of ESP32 board we use? ->link<-
  9.  
    That will work.
    -Thom
  10.  
    #FujiNet What do we have here? @jeffpiep has been hard at work implementing #Atari 1020 plotter emulation! This is awesome! :)

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

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

    • 20: CommentAuthorpgru
    • CommentTime14 Mar 2020
     
    Jak rozumiem to będę mógł drukować teksty i obrazki z Atari na prawie każdej współczesnej drukarce którą w jakiś sposób podłączę do sieci?
  11.  
    Tak. W tej chwili generowany jest plik PDF, który może być wydrukowany na dowolnej nowoczesnej drukarce. Od tego momentu będziemy rozszerzać funkcjonalność.
  12.  
    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 :)
    • 23:
       
      CommentAuthorpirx
    • CommentTime15 Mar 2020
     
    poezja
  13.  
    #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.

    • 25: CommentAuthortebe
    • CommentTime17 Mar 2020
     
    #22 "to jest gówno projektu"

    ??? co to jest ???
    • 26: CommentAuthorpin
    • CommentTime17 Mar 2020
     
    Przecie napisane ;)
    • 27:
       
      CommentAuthorpirx
    • CommentTime17 Mar 2020
     
    This is the muck of the project...
    Trochę może za dosłownie przetłumaczyło, chodzi raczej o to, że to jest najtrudniejsza/najbardziej uciążliwa część projektu. Reszta zdania jest przetłumaczona zadziwiająco dobrze.
    • 28:
       
      CommentAuthorMontezuma
    • CommentTime17 Mar 2020
     
    ROLF :)

    Odwrotnie też może być śmiesznie:

    piłka - a ball
    A teraz uważajcie: DO METALU
  14.  
    Ć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.

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

    ->link<-

    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.
  16.  
    #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!
    • 32:
       
      CommentAuthorKaz
    • CommentTime22 Mar 2020
     
    Thanks Tom for keeping us updated. Great thing! Especially changing floppy images impressed me.

    Thank you also for the effort you put into doing it in Polish. I suggest, however, to write in English because the translation algorithms are still not perfect and some statements are misleading ("what did the author mean?"). Almost everyone understands English or basic English here. Moreover, it would be difficult to quote such a misleading text to ask you to specify what you meant. Because the text is in Polish and you do not know where this lack of precision is... :)
  17.  
    Ok.

    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:
    ->link<-

    Given a sector number coming into sio_read():
    ->link<-

    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.
  18.  
    #FujiNet Currently for development, disk image selection is very simplistic. No subdirectories, and a max of 16 entries returned. What should we do going forward? How should it look to the user? Who can help make a better implementation?

  19.  
    @jeffpiep has been hard at work implementing the unique sideways printing mode present on the Atari 820. Due to the unique orientation, it's implemented as a custom sideways font. Shown here is actual printed output vs the emulated PDF.



  20.  
    #FujiNet - Shown here is a picture of my local TNFS server that I use for my own file storage. While there are internet-accessible public TNFS file servers, this one is for my own files.

    It is a Raspberry Pi 3, inside a FLiRC case, with 64GB of flash, running Raspbian Lite, and the tnfsd software as a systemd service. I am powering it off one of the USB connectors on my power strip.

    Total setup time: 30 minutes.

    Instructions to set up, are here:
    ->link<-
  21.  
    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. :)
    • 38: CommentAuthorzbyti
    • CommentTime26 Mar 2020
     
    Google Translator potrafi poprawić humor :]
  22.  
    #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.
    • 40:
       
      CommentAuthorKaz
    • CommentTime28 Mar 2020
     
    Impressive!
  23.  
    The CONFIG program now has an info screen that shows network information, like the FCONFIG program in fnc-tools.
  24.  
    #FujiNet got a wonderful write-up in the latest ABBUC newsletter!
  25.  
    #FujiNet #Atari8bit Showing how the TCP listen/unlisten functionality was added to the #FujiNet firmware, so that BBS software works, and tools to use it.

    ->link<-
    • 44:
       
      CommentAuthorKaz
    • CommentTime3 Apr 2020
     
    Great, will read it! Thanks Tomas for info.
    • 45: CommentAuthoronosendai
    • CommentTime4 Apr 2020
     
    Thanks Thomas! I have created one for myself! Great stuff!
  26.  
    Dude, that puts a HUGE smile on my face! :)

    If you can help others build theirs, please do. Let's get this thing out there. :)

    -Thom

    MEANWHILE:

    #Atari8Bit #FujiNet The N: device comes in two parts, a CIO handler on the #Atari, and the SIO code running on the #FujiNet. Made a video showing how am debugging the SIO code using test programs running on the Atari.



    ---

    #Atari8Bit #FujiNet N: urządzenie składa się z dwóch części, CIO Handler na #Atari i kodu SIO działającego na #FujiNet. Stworzył film video pokazujący jak debugować kod SIO za pomocą programów testowych uruchomionych na Atari.
  27.  
    @Jeffpiep has been hard at work improving the printing emulation, which now embeds the fonts into the PDF, so it can be printed or read as intended on any device or printer. Jeff designed a new font for the 822 emulation based on printed specimens provided by Bill Lange from his 822 printer. :)

    You can grab specimens here, from the 822 emulation:
    ->link<- (test 74)
    ->link<- (test 76)

    It looks great printed out, too!
  28.  
    I have spent a considerable amount of time building the plumbing required to handle different TCP/IP protocols using very abstracted interfaces that the Atari can efficiently handle. Here you see the same test programs being used to send via both the TCP and UDP protocols.

    • 49:
       
      CommentAuthorKaz
    • CommentTime11 Apr 2020
     
    Impressive!
  29.  
    #FujiNet #Atari8bit @Jeffpiep took a break from implementing printer support to fold in Sebastian Macke's C port of S.A.M. speech synth into #FujiNet, integrating it as a P: device, which makes it available at any time. And without screen blanking!